@syncfusion/ej2-navigations 19.3.57 → 19.4.38

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 (254) hide show
  1. package/.github/PULL_REQUEST_TEMPLATE/Bug.md +63 -0
  2. package/.github/PULL_REQUEST_TEMPLATE/feature.md +39 -0
  3. package/CHANGELOG.md +33 -0
  4. package/dist/ej2-navigations.umd.min.js +2 -2
  5. package/dist/ej2-navigations.umd.min.js.map +1 -1
  6. package/dist/es6/ej2-navigations.es2015.js +499 -136
  7. package/dist/es6/ej2-navigations.es2015.js.map +1 -1
  8. package/dist/es6/ej2-navigations.es5.js +506 -137
  9. package/dist/es6/ej2-navigations.es5.js.map +1 -1
  10. package/dist/global/ej2-navigations.min.js +2 -2
  11. package/dist/global/ej2-navigations.min.js.map +1 -1
  12. package/dist/global/index.d.ts +1 -1
  13. package/package.json +11 -11
  14. package/src/accordion/accordion-model.d.ts +5 -5
  15. package/src/accordion/accordion.d.ts +5 -5
  16. package/src/accordion/accordion.js +2 -19
  17. package/src/breadcrumb/breadcrumb-model.d.ts +23 -11
  18. package/src/breadcrumb/breadcrumb.d.ts +33 -10
  19. package/src/breadcrumb/breadcrumb.js +320 -78
  20. package/src/common/v-scroll.js +1 -1
  21. package/src/tab/tab-model.d.ts +14 -6
  22. package/src/tab/tab.d.ts +26 -15
  23. package/src/tab/tab.js +56 -27
  24. package/src/toolbar/toolbar-model.d.ts +7 -7
  25. package/src/toolbar/toolbar.d.ts +6 -6
  26. package/src/toolbar/toolbar.js +81 -13
  27. package/src/treeview/treeview-model.d.ts +10 -0
  28. package/src/treeview/treeview.d.ts +13 -0
  29. package/src/treeview/treeview.js +48 -0
  30. package/styles/accordion/_bootstrap-dark-definition.scss +4 -0
  31. package/styles/accordion/_bootstrap-definition.scss +4 -0
  32. package/styles/accordion/_bootstrap4-definition.scss +4 -0
  33. package/styles/accordion/_bootstrap5-definition.scss +39 -35
  34. package/styles/accordion/_fabric-dark-definition.scss +4 -0
  35. package/styles/accordion/_fabric-definition.scss +4 -0
  36. package/styles/accordion/_fluent-definition.scss +85 -0
  37. package/styles/accordion/_highcontrast-definition.scss +5 -1
  38. package/styles/accordion/_highcontrast-light-definition.scss +4 -0
  39. package/styles/accordion/_layout.scss +6 -14
  40. package/styles/accordion/_material-dark-definition.scss +4 -0
  41. package/styles/accordion/_material-definition.scss +4 -0
  42. package/styles/accordion/_tailwind-definition.scss +83 -79
  43. package/styles/accordion/_theme.scss +12 -11
  44. package/styles/accordion/bootstrap4.css +1 -2
  45. package/styles/accordion/bootstrap5-dark.css +11 -2
  46. package/styles/accordion/bootstrap5.css +11 -2
  47. package/styles/accordion/highcontrast-light.css +0 -4
  48. package/styles/accordion/highcontrast.css +1 -5
  49. package/styles/accordion/icons/_fluent.scss +17 -0
  50. package/styles/accordion/icons/_tailwind.scss +17 -17
  51. package/styles/bootstrap-dark.css +317 -84
  52. package/styles/bootstrap.css +316 -83
  53. package/styles/bootstrap4.css +317 -76
  54. package/styles/bootstrap5-dark.css +339 -75
  55. package/styles/bootstrap5.css +341 -77
  56. package/styles/breadcrumb/_bootstrap-dark-definition.scss +14 -0
  57. package/styles/breadcrumb/_bootstrap-definition.scss +13 -0
  58. package/styles/breadcrumb/_bootstrap4-definition.scss +13 -0
  59. package/styles/breadcrumb/_bootstrap5-definition.scss +15 -2
  60. package/styles/breadcrumb/_fabric-dark-definition.scss +13 -0
  61. package/styles/breadcrumb/_fabric-definition.scss +13 -0
  62. package/styles/breadcrumb/_fluent-definition.scss +59 -0
  63. package/styles/breadcrumb/_highcontrast-definition.scss +13 -0
  64. package/styles/breadcrumb/_highcontrast-light-definition.scss +13 -0
  65. package/styles/breadcrumb/_layout.scss +171 -22
  66. package/styles/breadcrumb/_material-dark-definition.scss +13 -0
  67. package/styles/breadcrumb/_material-definition.scss +13 -0
  68. package/styles/breadcrumb/_tailwind-dark-definition.scss +13 -0
  69. package/styles/breadcrumb/_tailwind-definition.scss +13 -0
  70. package/styles/breadcrumb/_theme.scss +27 -8
  71. package/styles/breadcrumb/bootstrap-dark.css +194 -17
  72. package/styles/breadcrumb/bootstrap.css +194 -17
  73. package/styles/breadcrumb/bootstrap4.css +194 -17
  74. package/styles/breadcrumb/bootstrap5-dark.css +198 -24
  75. package/styles/breadcrumb/bootstrap5.css +198 -24
  76. package/styles/breadcrumb/fabric-dark.css +197 -20
  77. package/styles/breadcrumb/fabric.css +197 -20
  78. package/styles/breadcrumb/highcontrast-light.css +200 -22
  79. package/styles/breadcrumb/highcontrast.css +200 -22
  80. package/styles/breadcrumb/icons/_bootstrap-dark.scss +2 -1
  81. package/styles/breadcrumb/icons/_bootstrap.scss +2 -1
  82. package/styles/breadcrumb/icons/_bootstrap4.scss +2 -1
  83. package/styles/breadcrumb/icons/_bootstrap5.scss +2 -1
  84. package/styles/breadcrumb/icons/_fabric-dark.scss +2 -1
  85. package/styles/breadcrumb/icons/_fabric.scss +2 -1
  86. package/styles/breadcrumb/icons/_fluent.scss +25 -0
  87. package/styles/breadcrumb/icons/_highcontrast-light.scss +2 -1
  88. package/styles/breadcrumb/icons/_highcontrast.scss +2 -1
  89. package/styles/breadcrumb/icons/_material-dark.scss +2 -1
  90. package/styles/breadcrumb/icons/_material.scss +2 -1
  91. package/styles/breadcrumb/icons/_tailwind-dark.scss +2 -1
  92. package/styles/breadcrumb/icons/_tailwind.scss +2 -1
  93. package/styles/breadcrumb/material-dark.css +186 -13
  94. package/styles/breadcrumb/material.css +186 -13
  95. package/styles/breadcrumb/tailwind-dark.css +195 -22
  96. package/styles/breadcrumb/tailwind.css +195 -22
  97. package/styles/context-menu/_bootstrap-dark-definition.scss +1 -1
  98. package/styles/context-menu/_bootstrap-definition.scss +1 -1
  99. package/styles/context-menu/_bootstrap4-definition.scss +1 -1
  100. package/styles/context-menu/_bootstrap5-definition.scss +5 -5
  101. package/styles/context-menu/_fluent-definition.scss +52 -0
  102. package/styles/context-menu/_material-dark-definition.scss +1 -1
  103. package/styles/context-menu/_material-definition.scss +1 -1
  104. package/styles/context-menu/_tailwind-definition.scss +1 -1
  105. package/styles/context-menu/bootstrap-dark.css +1 -1
  106. package/styles/context-menu/bootstrap.css +1 -1
  107. package/styles/context-menu/bootstrap4.css +1 -1
  108. package/styles/context-menu/bootstrap5-dark.css +5 -5
  109. package/styles/context-menu/bootstrap5.css +6 -6
  110. package/styles/context-menu/icons/_fluent.scss +32 -0
  111. package/styles/context-menu/material-dark.css +1 -1
  112. package/styles/context-menu/material.css +1 -1
  113. package/styles/context-menu/tailwind-dark.css +1 -1
  114. package/styles/context-menu/tailwind.css +1 -1
  115. package/styles/fabric-dark.css +305 -41
  116. package/styles/fabric.css +308 -44
  117. package/styles/h-scroll/_fluent-definition.scss +78 -0
  118. package/styles/h-scroll/_tailwind-definition.scss +78 -78
  119. package/styles/h-scroll/_theme.scss +1 -1
  120. package/styles/h-scroll/bootstrap-dark.css +1 -1
  121. package/styles/h-scroll/bootstrap.css +1 -1
  122. package/styles/h-scroll/bootstrap4.css +1 -1
  123. package/styles/h-scroll/bootstrap5-dark.css +1 -1
  124. package/styles/h-scroll/bootstrap5.css +1 -1
  125. package/styles/h-scroll/fabric-dark.css +1 -1
  126. package/styles/h-scroll/fabric.css +1 -1
  127. package/styles/h-scroll/highcontrast-light.css +1 -1
  128. package/styles/h-scroll/highcontrast.css +1 -1
  129. package/styles/h-scroll/icons/_fluent.scss +49 -0
  130. package/styles/h-scroll/icons/_tailwind.scss +49 -49
  131. package/styles/h-scroll/material-dark.css +1 -1
  132. package/styles/h-scroll/material.css +1 -1
  133. package/styles/h-scroll/tailwind-dark.css +1 -1
  134. package/styles/h-scroll/tailwind.css +1 -1
  135. package/styles/highcontrast-light.css +317 -47
  136. package/styles/highcontrast.css +322 -52
  137. package/styles/material-dark.css +295 -32
  138. package/styles/material.css +296 -33
  139. package/styles/menu/_fluent-definition.scss +68 -0
  140. package/styles/menu/_layout.scss +1 -1
  141. package/styles/menu/_theme.scss +9 -0
  142. package/styles/menu/bootstrap-dark.css +1 -1
  143. package/styles/menu/bootstrap.css +1 -1
  144. package/styles/menu/bootstrap4.css +1 -1
  145. package/styles/menu/bootstrap5-dark.css +4 -4
  146. package/styles/menu/bootstrap5.css +5 -5
  147. package/styles/menu/icons/_fluent.scss +133 -0
  148. package/styles/menu/material-dark.css +1 -1
  149. package/styles/menu/material.css +1 -1
  150. package/styles/menu/tailwind-dark.css +1 -1
  151. package/styles/menu/tailwind.css +1 -1
  152. package/styles/sidebar/_bootstrap5-definition.scss +5 -5
  153. package/styles/sidebar/_fluent-definition.scss +5 -0
  154. package/styles/sidebar/_theme.scss +4 -2
  155. package/styles/sidebar/bootstrap5-dark.css +0 -1
  156. package/styles/sidebar/bootstrap5.css +0 -1
  157. package/styles/sidebar/tailwind-dark.css +0 -1
  158. package/styles/sidebar/tailwind.css +0 -1
  159. package/styles/tab/_bootstrap-dark-definition.scss +10 -1
  160. package/styles/tab/_bootstrap-definition.scss +10 -1
  161. package/styles/tab/_bootstrap4-definition.scss +9 -1
  162. package/styles/tab/_bootstrap5-definition.scss +401 -401
  163. package/styles/tab/_fabric-dark-definition.scss +10 -0
  164. package/styles/tab/_fabric-definition.scss +10 -0
  165. package/styles/tab/_fluent-definition.scss +409 -0
  166. package/styles/tab/_highcontrast-definition.scss +10 -0
  167. package/styles/tab/_highcontrast-light-definition.scss +10 -0
  168. package/styles/tab/_layout.scss +145 -0
  169. package/styles/tab/_material-dark-definition.scss +10 -0
  170. package/styles/tab/_material-definition.scss +10 -0
  171. package/styles/tab/_tailwind-definition.scss +431 -420
  172. package/styles/tab/_theme.scss +188 -113
  173. package/styles/tab/bootstrap-dark.css +43 -18
  174. package/styles/tab/bootstrap.css +42 -17
  175. package/styles/tab/bootstrap4.css +47 -28
  176. package/styles/tab/bootstrap5-dark.css +53 -30
  177. package/styles/tab/bootstrap5.css +53 -30
  178. package/styles/tab/fabric-dark.css +43 -20
  179. package/styles/tab/fabric.css +46 -23
  180. package/styles/tab/highcontrast-light.css +52 -19
  181. package/styles/tab/highcontrast.css +56 -23
  182. package/styles/tab/icons/_bootstrap-dark.scss +2 -2
  183. package/styles/tab/icons/_fabric-dark.scss +2 -2
  184. package/styles/tab/icons/_fluent.scss +140 -0
  185. package/styles/tab/icons/_tailwind.scss +140 -140
  186. package/styles/tab/material-dark.css +42 -15
  187. package/styles/tab/material.css +42 -15
  188. package/styles/tab/tailwind-dark.css +42 -17
  189. package/styles/tab/tailwind.css +42 -17
  190. package/styles/tailwind-dark.css +313 -50
  191. package/styles/tailwind.css +313 -50
  192. package/styles/toolbar/_bootstrap-dark-definition.scss +7 -1
  193. package/styles/toolbar/_bootstrap-definition.scss +7 -1
  194. package/styles/toolbar/_bootstrap4-definition.scss +8 -2
  195. package/styles/toolbar/_bootstrap5-definition.scss +104 -86
  196. package/styles/toolbar/_fabric-dark-definition.scss +7 -0
  197. package/styles/toolbar/_fabric-definition.scss +7 -0
  198. package/styles/toolbar/_fluent-definition.scss +149 -0
  199. package/styles/toolbar/_highcontrast-definition.scss +7 -0
  200. package/styles/toolbar/_highcontrast-light-definition.scss +7 -0
  201. package/styles/toolbar/_layout.scss +27 -72
  202. package/styles/toolbar/_material-dark-definition.scss +7 -1
  203. package/styles/toolbar/_material-definition.scss +7 -1
  204. package/styles/toolbar/_tailwind-definition.scss +149 -143
  205. package/styles/toolbar/_theme.scss +12 -15
  206. package/styles/toolbar/bootstrap-dark.css +17 -46
  207. package/styles/toolbar/bootstrap.css +17 -46
  208. package/styles/toolbar/bootstrap4.css +12 -26
  209. package/styles/toolbar/bootstrap5-dark.css +6 -7
  210. package/styles/toolbar/bootstrap5.css +6 -7
  211. package/styles/toolbar/fabric-dark.css +4 -0
  212. package/styles/toolbar/fabric.css +4 -0
  213. package/styles/toolbar/highcontrast-light.css +4 -1
  214. package/styles/toolbar/highcontrast.css +4 -1
  215. package/styles/toolbar/icons/_fluent.scss +16 -0
  216. package/styles/toolbar/icons/_tailwind.scss +16 -16
  217. package/styles/toolbar/material-dark.css +4 -1
  218. package/styles/toolbar/material.css +5 -2
  219. package/styles/toolbar/tailwind-dark.css +8 -6
  220. package/styles/toolbar/tailwind.css +8 -6
  221. package/styles/treeview/_bootstrap-dark-definition.scss +11 -0
  222. package/styles/treeview/_bootstrap-definition.scss +11 -0
  223. package/styles/treeview/_bootstrap4-definition.scss +11 -0
  224. package/styles/treeview/_bootstrap5-definition.scss +120 -109
  225. package/styles/treeview/_fabric-dark-definition.scss +11 -0
  226. package/styles/treeview/_fabric-definition.scss +11 -0
  227. package/styles/treeview/_fluent-definition.scss +120 -0
  228. package/styles/treeview/_highcontrast-definition.scss +11 -0
  229. package/styles/treeview/_highcontrast-light-definition.scss +11 -0
  230. package/styles/treeview/_layout.scss +116 -20
  231. package/styles/treeview/_material-dark-definition.scss +13 -0
  232. package/styles/treeview/_material-definition.scss +11 -0
  233. package/styles/treeview/_tailwind-definition.scss +12 -0
  234. package/styles/treeview/_theme.scss +5 -5
  235. package/styles/treeview/bootstrap-dark.css +60 -0
  236. package/styles/treeview/bootstrap.css +60 -0
  237. package/styles/treeview/bootstrap4.css +60 -0
  238. package/styles/treeview/bootstrap5-dark.css +61 -1
  239. package/styles/treeview/bootstrap5.css +61 -1
  240. package/styles/treeview/fabric-dark.css +60 -0
  241. package/styles/treeview/fabric.css +60 -0
  242. package/styles/treeview/highcontrast-light.css +60 -0
  243. package/styles/treeview/highcontrast.css +60 -0
  244. package/styles/treeview/icons/_bootstrap5.scss +43 -43
  245. package/styles/treeview/icons/_fluent.scss +43 -0
  246. package/styles/treeview/icons/_tailwind-dark.scss +43 -43
  247. package/styles/treeview/material-dark.css +60 -0
  248. package/styles/treeview/material.css +60 -0
  249. package/styles/treeview/tailwind-dark.css +65 -1
  250. package/styles/treeview/tailwind.css +65 -1
  251. package/styles/v-scroll/_fluent-definition.scss +49 -0
  252. package/styles/v-scroll/_tailwind-definition.scss +49 -49
  253. package/styles/v-scroll/icons/_fluent.scss +26 -0
  254. package/styles/v-scroll/icons/_tailwind.scss +26 -26
@@ -579,7 +579,7 @@ let VScroll = class VScroll extends Component {
579
579
  }
580
580
  scrollBar.appendChild(scrollCnt);
581
581
  ele.appendChild(scrollBar);
582
- scrollBar.style.overflowY = 'hidden';
582
+ scrollBar.style.overflow = 'hidden';
583
583
  this.scrollEle = scrollBar;
584
584
  this.scrollItems = scrollCnt;
585
585
  }
@@ -3156,6 +3156,7 @@ var __decorate$3 = (undefined && undefined.__decorate) || function (decorators,
3156
3156
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
3157
3157
  return c > 3 && r && Object.defineProperty(target, key, r), r;
3158
3158
  };
3159
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3159
3160
  const CLS_VERTICAL = 'e-vertical';
3160
3161
  const CLS_ITEMS = 'e-toolbar-items';
3161
3162
  const CLS_ITEM = 'e-toolbar-item';
@@ -4131,9 +4132,15 @@ let Toolbar = class Toolbar extends Component {
4131
4132
  }
4132
4133
  tbarPopupHandler(isOpen) {
4133
4134
  if (this.overflowMode === 'Extended') {
4134
- isOpen ? this.add(this.element, CLS_EXTENDEDPOPOPEN) : this.remove(this.element, CLS_EXTENDEDPOPOPEN);
4135
+ if (isOpen) {
4136
+ this.add(this.element, CLS_EXTENDEDPOPOPEN);
4137
+ }
4138
+ else {
4139
+ this.remove(this.element, CLS_EXTENDEDPOPOPEN);
4140
+ }
4135
4141
  }
4136
4142
  }
4143
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
4137
4144
  popupOpen(e) {
4138
4145
  const popObj = this.popObj;
4139
4146
  if (!this.isVertical) {
@@ -4179,6 +4186,7 @@ let Toolbar = class Toolbar extends Component {
4179
4186
  popObj.refreshPosition();
4180
4187
  }
4181
4188
  }
4189
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
4182
4190
  popupClose(e) {
4183
4191
  const element = this.element;
4184
4192
  const popupNav = element.querySelector('.' + CLS_TBARNAV);
@@ -4535,10 +4543,20 @@ let Toolbar = class Toolbar extends Component {
4535
4543
  const popWid = (this.isVertical ? popupNav.offsetHeight : popupNav.offsetWidth) + 'px';
4536
4544
  innerItem[2].removeAttribute('style');
4537
4545
  if (this.isVertical) {
4538
- this.enableRtl ? innerItem[2].style.top = popWid : innerItem[2].style.bottom = popWid;
4546
+ if (this.enableRtl) {
4547
+ innerItem[2].style.top = popWid;
4548
+ }
4549
+ else {
4550
+ innerItem[2].style.bottom = popWid;
4551
+ }
4539
4552
  }
4540
4553
  else {
4541
- this.enableRtl ? innerItem[2].style.left = popWid : innerItem[2].style.right = popWid;
4554
+ if (this.enableRtl) {
4555
+ innerItem[2].style.left = popWid;
4556
+ }
4557
+ else {
4558
+ innerItem[2].style.right = popWid;
4559
+ }
4542
4560
  }
4543
4561
  }
4544
4562
  if (tbarWid <= margin) {
@@ -4548,10 +4566,20 @@ let Toolbar = class Toolbar extends Component {
4548
4566
  innerItem[1].removeAttribute('style');
4549
4567
  const mrgn = ((!this.isVertical ? innerItem[0].offsetWidth : innerItem[0].offsetHeight) + value) + 'px';
4550
4568
  if (this.isVertical) {
4551
- this.enableRtl ? innerItem[1].style.marginBottom = mrgn : innerItem[1].style.marginTop = mrgn;
4569
+ if (this.enableRtl) {
4570
+ innerItem[1].style.marginBottom = mrgn;
4571
+ }
4572
+ else {
4573
+ innerItem[1].style.marginTop = mrgn;
4574
+ }
4552
4575
  }
4553
4576
  else {
4554
- this.enableRtl ? innerItem[1].style.marginRight = mrgn : innerItem[1].style.marginLeft = mrgn;
4577
+ if (this.enableRtl) {
4578
+ innerItem[1].style.marginRight = mrgn;
4579
+ }
4580
+ else {
4581
+ innerItem[1].style.marginLeft = mrgn;
4582
+ }
4555
4583
  }
4556
4584
  }
4557
4585
  tbarItemAlign(item, itemEle, pos) {
@@ -4619,7 +4647,12 @@ let Toolbar = class Toolbar extends Component {
4619
4647
  let keyVal;
4620
4648
  for (let i = 0; i < key.length; i++) {
4621
4649
  keyVal = key[i];
4622
- keyVal === 'class' ? this.add(element, attr[keyVal]) : element.setAttribute(keyVal, attr[keyVal]);
4650
+ if (keyVal === 'class') {
4651
+ this.add(element, attr[keyVal]);
4652
+ }
4653
+ else {
4654
+ element.setAttribute(keyVal, attr[keyVal]);
4655
+ }
4623
4656
  }
4624
4657
  }
4625
4658
  /**
@@ -4664,7 +4697,12 @@ let Toolbar = class Toolbar extends Component {
4664
4697
  }
4665
4698
  enable(isEnable, ele);
4666
4699
  }
4667
- isEnable ? removeClass(elements, CLS_DISABLE$2) : addClass(elements, CLS_DISABLE$2);
4700
+ if (isEnable) {
4701
+ removeClass(elements, CLS_DISABLE$2);
4702
+ }
4703
+ else {
4704
+ addClass(elements, CLS_DISABLE$2);
4705
+ }
4668
4706
  }
4669
4707
  else {
4670
4708
  if (typeof (elements) === 'number') {
@@ -4850,7 +4888,12 @@ let Toolbar = class Toolbar extends Component {
4850
4888
  }
4851
4889
  else if (itemType === 'Input') {
4852
4890
  const ele = this.createElement('input');
4853
- item.id ? (ele.id = item.id) : (ele.id = getUniqueID('tbr-ipt'));
4891
+ if (item.id) {
4892
+ ele.id = item.id;
4893
+ }
4894
+ else {
4895
+ ele.id = getUniqueID('tbr-ipt');
4896
+ }
4854
4897
  innerEle.appendChild(ele);
4855
4898
  eleObj.appendTo(ele);
4856
4899
  }
@@ -4863,7 +4906,12 @@ let Toolbar = class Toolbar extends Component {
4863
4906
  const textStr = item.text;
4864
4907
  let iconCss;
4865
4908
  let iconPos;
4866
- item.id ? (dom.id = item.id) : dom.id = getUniqueID('e-tbr-btn');
4909
+ if (item.id) {
4910
+ dom.id = item.id;
4911
+ }
4912
+ else {
4913
+ dom.id = getUniqueID('e-tbr-btn');
4914
+ }
4867
4915
  const btnTxt = this.createElement('span', { className: 'e-tbar-btn-text' });
4868
4916
  if (textStr) {
4869
4917
  btnTxt.innerHTML = this.enableHtmlSanitizer ? SanitizeHtmlHelper.sanitize(textStr) : textStr;
@@ -5130,12 +5178,27 @@ let Toolbar = class Toolbar extends Component {
5130
5178
  this.refreshOverflow();
5131
5179
  break;
5132
5180
  case 'enableRtl':
5133
- newProp.enableRtl ? this.add(tEle, CLS_RTL$2) : this.remove(tEle, CLS_RTL$2);
5181
+ if (newProp.enableRtl) {
5182
+ this.add(tEle, CLS_RTL$2);
5183
+ }
5184
+ else {
5185
+ this.remove(tEle, CLS_RTL$2);
5186
+ }
5134
5187
  if (!isNullOrUndefined(this.scrollModule)) {
5135
- newProp.enableRtl ? this.add(this.scrollModule.element, CLS_RTL$2) : this.remove(this.scrollModule.element, CLS_RTL$2);
5188
+ if (newProp.enableRtl) {
5189
+ this.add(this.scrollModule.element, CLS_RTL$2);
5190
+ }
5191
+ else {
5192
+ this.remove(this.scrollModule.element, CLS_RTL$2);
5193
+ }
5136
5194
  }
5137
5195
  if (!isNullOrUndefined(this.popObj)) {
5138
- newProp.enableRtl ? this.add(this.popObj.element, CLS_RTL$2) : this.remove(this.popObj.element, CLS_RTL$2);
5196
+ if (newProp.enableRtl) {
5197
+ this.add(this.popObj.element, CLS_RTL$2);
5198
+ }
5199
+ else {
5200
+ this.remove(this.popObj.element, CLS_RTL$2);
5201
+ }
5139
5202
  }
5140
5203
  if (this.tbarAlign) {
5141
5204
  this.itemPositioning();
@@ -5189,7 +5252,12 @@ let Toolbar = class Toolbar extends Component {
5189
5252
  ele = innerItems[eleIndex];
5190
5253
  }
5191
5254
  if (ele) {
5192
- value ? ele.classList.add(CLS_HIDDEN) : ele.classList.remove(CLS_HIDDEN);
5255
+ if (value) {
5256
+ ele.classList.add(CLS_HIDDEN);
5257
+ }
5258
+ else {
5259
+ ele.classList.remove(CLS_HIDDEN);
5260
+ }
5193
5261
  if (value && isNullOrUndefined(this.element.getAttribute('tabindex')) && !ele.classList.contains(CLS_SEPARATOR)) {
5194
5262
  if (isNullOrUndefined(ele.firstElementChild.getAttribute('tabindex'))) {
5195
5263
  ele.firstElementChild.setAttribute('tabindex', '-1');
@@ -5293,6 +5361,7 @@ var __decorate$4 = (undefined && undefined.__decorate) || function (decorators,
5293
5361
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5294
5362
  return c > 3 && r && Object.defineProperty(target, key, r), r;
5295
5363
  };
5364
+ /* eslint-disable @typescript-eslint/no-explicit-any */
5296
5365
  const CLS_ACRDN_ROOT = 'e-acrdn-root';
5297
5366
  const CLS_ROOT$2 = 'e-accordion';
5298
5367
  const CLS_ITEM$1 = 'e-acrdn-item';
@@ -5547,11 +5616,9 @@ let Accordion = class Accordion extends Component {
5547
5616
  this.itemTemplateFn = this.templateParser(this.itemTemplate);
5548
5617
  }
5549
5618
  }
5550
- /* eslint-disable */
5551
5619
  getHeaderTemplate() {
5552
5620
  return this.headerTemplateFn;
5553
5621
  }
5554
- /* eslint-disable */
5555
5622
  getItemTemplate() {
5556
5623
  return this.itemTemplateFn;
5557
5624
  }
@@ -5572,7 +5639,6 @@ let Accordion = class Accordion extends Component {
5572
5639
  innerEles = this.element.children;
5573
5640
  }
5574
5641
  const items = [];
5575
- /* eslint-disable */
5576
5642
  [].slice.call(innerEles).forEach((el) => {
5577
5643
  items.push({
5578
5644
  header: (el.childElementCount > 0 && el.children[0]) ? (el.children[0]) : '',
@@ -5580,7 +5646,6 @@ let Accordion = class Accordion extends Component {
5580
5646
  });
5581
5647
  el.parentNode.removeChild(el);
5582
5648
  });
5583
- /* eslint-enable */
5584
5649
  if (rootEle) {
5585
5650
  this.element.removeChild(rootEle);
5586
5651
  }
@@ -5605,7 +5670,6 @@ let Accordion = class Accordion extends Component {
5605
5670
  this.expandItem(true, this.initExpand[i]);
5606
5671
  }
5607
5672
  }
5608
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
5609
5673
  if (this.isReact) {
5610
5674
  this.renderReactTemplates();
5611
5675
  }
@@ -5640,7 +5704,6 @@ let Accordion = class Accordion extends Component {
5640
5704
  });
5641
5705
  }
5642
5706
  }
5643
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
5644
5707
  if (this.isReact) {
5645
5708
  this.renderReactTemplates();
5646
5709
  }
@@ -5686,7 +5749,6 @@ let Accordion = class Accordion extends Component {
5686
5749
  else {
5687
5750
  this.afterContentRender(trgt, eventArgs, acrdnItem, acrdnHdr, acrdnCtn, acrdnCtnItem);
5688
5751
  }
5689
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
5690
5752
  if (this.isReact) {
5691
5753
  this.renderReactTemplates();
5692
5754
  }
@@ -5892,7 +5954,6 @@ let Accordion = class Accordion extends Component {
5892
5954
  }
5893
5955
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
5894
5956
  fetchElement(ele, value, index, isHeader) {
5895
- /* eslint-disable */
5896
5957
  let templateFn;
5897
5958
  let temString;
5898
5959
  try {
@@ -5906,12 +5967,10 @@ let Accordion = class Accordion extends Component {
5906
5967
  catch (e) {
5907
5968
  if (typeof (value) === 'string') {
5908
5969
  ele.innerHTML = SanitizeHtmlHelper.sanitize(value);
5909
- /* eslint-disable */
5910
5970
  }
5911
5971
  else if (!isNullOrUndefined(this.trgtEle) && (value instanceof (HTMLElement))) {
5912
5972
  ele.appendChild(value);
5913
5973
  ele.firstElementChild.style.display = '';
5914
- /* eslint-enable */
5915
5974
  }
5916
5975
  else {
5917
5976
  templateFn = compile(value);
@@ -5919,7 +5978,6 @@ let Accordion = class Accordion extends Component {
5919
5978
  }
5920
5979
  let tempArray;
5921
5980
  if (!isNullOrUndefined(templateFn)) {
5922
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
5923
5981
  if (this.isReact) {
5924
5982
  this.renderReactTemplates();
5925
5983
  }
@@ -5965,7 +6023,6 @@ let Accordion = class Accordion extends Component {
5965
6023
  attributes(itemcnt, { 'aria-hidden': 'true' });
5966
6024
  const ctn = this.createElement('div', { className: CLS_CTENT });
5967
6025
  if (this.dataSource.length > 0) {
5968
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
5969
6026
  if (this.isReact) {
5970
6027
  this.renderReactTemplates();
5971
6028
  }
@@ -6112,7 +6169,7 @@ let Accordion = class Accordion extends Component {
6112
6169
  this.trigger('expanding', eventArgs, (expandArgs) => {
6113
6170
  if (!expandArgs.cancel) {
6114
6171
  this.expandedItemsPop(trgtItemEle);
6115
- trgtItemEle.classList.add(CLS_EXPANDSTATE);
6172
+ trgtItemEle.classList.remove(CLS_EXPANDSTATE);
6116
6173
  icon.classList.add(CLS_TOGANIMATE);
6117
6174
  if ((animation.name === 'None')) {
6118
6175
  this.collapseProgress('begin', icon, trgt, trgtItemEle, expandArgs);
@@ -6240,7 +6297,6 @@ let Accordion = class Accordion extends Component {
6240
6297
  }
6241
6298
  });
6242
6299
  }
6243
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
6244
6300
  if (this.isReact) {
6245
6301
  this.renderReactTemplates();
6246
6302
  }
@@ -6261,7 +6317,6 @@ let Accordion = class Accordion extends Component {
6261
6317
  * @returns {void}.
6262
6318
  */
6263
6319
  removeItem(index) {
6264
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
6265
6320
  if (this.isReact) {
6266
6321
  this.clearTemplate(['headerTemplate', 'itemTemplate'], index);
6267
6322
  }
@@ -6408,14 +6463,12 @@ let Accordion = class Accordion extends Component {
6408
6463
  this.collapse(ctn);
6409
6464
  }
6410
6465
  }
6411
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
6412
6466
  if (this.isReact) {
6413
6467
  this.renderReactTemplates();
6414
6468
  }
6415
6469
  }
6416
6470
  destroyItems() {
6417
6471
  this.restoreContent(null);
6418
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
6419
6472
  if (this.isReact) {
6420
6473
  this.clearTemplate();
6421
6474
  }
@@ -6450,12 +6503,10 @@ let Accordion = class Accordion extends Component {
6450
6503
  setTemplate(template, toElement, index) {
6451
6504
  toElement.innerHTML = '';
6452
6505
  this.templateCompile(toElement, template, index);
6453
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
6454
6506
  if (this.isReact) {
6455
6507
  this.renderReactTemplates();
6456
6508
  }
6457
6509
  }
6458
- // eslint-disable-next-line
6459
6510
  templateCompile(ele, cnt, index) {
6460
6511
  const tempEle = this.createElement('div');
6461
6512
  this.fetchElement(tempEle, cnt, index, false);
@@ -7067,6 +7118,7 @@ const CLS_VRIGHT = 'e-vertical-right';
7067
7118
  const CLS_HBOTTOM = 'e-horizontal-bottom';
7068
7119
  const CLS_FILL = 'e-fill-mode';
7069
7120
  const TABITEMPREFIX = 'tabitem_';
7121
+ const CLS_REORDER_ACTIVE_ITEM = 'e-reorder-active-item';
7070
7122
  /**
7071
7123
  * Objects used for configuring the Tab selecting item action properties.
7072
7124
  */
@@ -7156,6 +7208,7 @@ let Tab = class Tab extends Component {
7156
7208
  this.hide = {};
7157
7209
  this.maxHeight = 0;
7158
7210
  this.title = 'Close';
7211
+ this.isInteracted = false;
7159
7212
  this.lastIndex = 0;
7160
7213
  this.isAdd = false;
7161
7214
  this.isIconAlone = false;
@@ -7734,7 +7787,7 @@ let Tab = class Tab extends Component {
7734
7787
  }
7735
7788
  else {
7736
7789
  if (!isNullOrUndefined(trgParent) && trgParent.classList.contains(CLS_ACTIVE$1) === false) {
7737
- this.select(trgIndex);
7790
+ this.selectTab(trgIndex, null, true);
7738
7791
  if (!isNullOrUndefined(this.popEle)) {
7739
7792
  this.popObj.hide(this.hide);
7740
7793
  }
@@ -8006,9 +8059,20 @@ let Tab = class Tab extends Component {
8006
8059
  setActiveBorder() {
8007
8060
  const trgHdrEle = this.getTabHeader();
8008
8061
  const trg = select('.' + CLS_TB_ITEM + '.' + CLS_ACTIVE$1, trgHdrEle);
8009
- if (trg === null) {
8062
+ if (isNullOrUndefined(trg)) {
8010
8063
  return;
8011
8064
  }
8065
+ if (!this.reorderActiveTab) {
8066
+ if (trg.classList.contains(CLS_TB_POPUP) && !this.bdrLine.classList.contains(CLS_HIDDEN$1)) {
8067
+ this.bdrLine.classList.add(CLS_HIDDEN$1);
8068
+ }
8069
+ if (trgHdrEle && !trgHdrEle.classList.contains(CLS_REORDER_ACTIVE_ITEM)) {
8070
+ trgHdrEle.classList.add(CLS_REORDER_ACTIVE_ITEM);
8071
+ }
8072
+ }
8073
+ else if (trgHdrEle) {
8074
+ trgHdrEle.classList.remove(CLS_REORDER_ACTIVE_ITEM);
8075
+ }
8012
8076
  const root = closest(trg, '.' + CLS_TAB);
8013
8077
  if (this.element !== root) {
8014
8078
  return;
@@ -8042,11 +8106,11 @@ let Tab = class Tab extends Component {
8042
8106
  setStyleAttribute(bar, { 'left': 'auto', 'right': 'auto' });
8043
8107
  }
8044
8108
  }
8045
- if (!isNullOrUndefined(this.bdrLine)) {
8109
+ if (!isNullOrUndefined(this.bdrLine) && !trg.classList.contains(CLS_TB_POPUP)) {
8046
8110
  this.bdrLine.classList.remove(CLS_HIDDEN$1);
8047
8111
  }
8048
8112
  }
8049
- setActive(value, skipDataBind = false) {
8113
+ setActive(value, skipDataBind = false, isInteracted = false) {
8050
8114
  this.tbItem = selectAll('.' + CLS_TB_ITEM, this.getTabHeader());
8051
8115
  const trg = this.tbItem[value];
8052
8116
  if (value < 0 || isNaN(value) || this.tbItem.length === 0) {
@@ -8117,7 +8181,8 @@ let Tab = class Tab extends Component {
8117
8181
  selectedItem: trg,
8118
8182
  selectedIndex: value,
8119
8183
  selectedContent: select('#' + CLS_CONTENT$1 + this.tabId + '_' + this.selectingID, this.content),
8120
- isSwiped: this.isSwipeed
8184
+ isSwiped: this.isSwipeed,
8185
+ isInteracted: isInteracted
8121
8186
  };
8122
8187
  this.trigger('selected', eventArg);
8123
8188
  }
@@ -8208,7 +8273,7 @@ let Tab = class Tab extends Component {
8208
8273
  else {
8209
8274
  this.isPopup = false;
8210
8275
  if (!isNullOrUndefined(trgParent) && (trgIndex !== this.selectedItem || trgIndex !== this.prevIndex)) {
8211
- this.select(trgIndex, args.originalEvent);
8276
+ this.selectTab(trgIndex, args.originalEvent, true);
8212
8277
  }
8213
8278
  }
8214
8279
  }
@@ -8223,7 +8288,7 @@ let Tab = class Tab extends Component {
8223
8288
  if (e.swipeDirection === 'Right' && this.selectedItem !== 0) {
8224
8289
  for (let k = this.selectedItem - 1; k >= 0; k--) {
8225
8290
  if (!this.tbItem[k].classList.contains(CLS_HIDDEN$1)) {
8226
- this.select(k);
8291
+ this.selectTab(k, null, true);
8227
8292
  break;
8228
8293
  }
8229
8294
  }
@@ -8231,7 +8296,7 @@ let Tab = class Tab extends Component {
8231
8296
  else if (e.swipeDirection === 'Left' && (this.selectedItem !== selectAll('.' + CLS_TB_ITEM, this.element).length - 1)) {
8232
8297
  for (let i = this.selectedItem + 1; i < this.tbItem.length; i++) {
8233
8298
  if (!this.tbItem[i].classList.contains(CLS_HIDDEN$1)) {
8234
- this.select(i);
8299
+ this.selectTab(i, null, true);
8235
8300
  break;
8236
8301
  }
8237
8302
  }
@@ -8309,7 +8374,7 @@ let Tab = class Tab extends Component {
8309
8374
  }
8310
8375
  refreshActElePosition() {
8311
8376
  const activeEle = select('.' + CLS_TB_ITEM + '.' + CLS_TB_POPUP + '.' + CLS_ACTIVE$1, this.element);
8312
- if (!isNullOrUndefined(activeEle)) {
8377
+ if (!isNullOrUndefined(activeEle) && this.reorderActiveTab) {
8313
8378
  this.select(this.getEleIndex(activeEle));
8314
8379
  }
8315
8380
  this.refreshActiveBorder();
@@ -8649,7 +8714,7 @@ let Tab = class Tab extends Component {
8649
8714
  else {
8650
8715
  this.dragItem.querySelector('.' + CLS_WRAP).style.visibility = '';
8651
8716
  removeClass([this.tbItems.querySelector('.' + CLS_INDICATOR)], CLS_HIDDEN$1);
8652
- this.select(this.droppedIndex);
8717
+ this.selectTab(this.droppedIndex, null, true);
8653
8718
  }
8654
8719
  }
8655
8720
  });
@@ -8657,8 +8722,8 @@ let Tab = class Tab extends Component {
8657
8722
  /**
8658
8723
  * Enables or disables the specified Tab item. On passing value as `false`, the item will be disabled.
8659
8724
  *
8660
- * @param {number} index - Index value of target Tab item.
8661
- * @param {boolean} value - Boolean value that determines whether the command should be enabled or disabled.
8725
+ * @param {number} index - Index value of target Tab item.
8726
+ * @param {boolean} value - Boolean value that determines whether the command should be enabled or disabled.
8662
8727
  * By default, isEnable is true.
8663
8728
  * @returns {void}.
8664
8729
  */
@@ -8687,8 +8752,8 @@ let Tab = class Tab extends Component {
8687
8752
  /**
8688
8753
  * Adds new items to the Tab that accepts an array as Tab items.
8689
8754
  *
8690
- * @param {TabItemModel[]} items - An array of item that is added to the Tab.
8691
- * @param {number} index - Number value that determines where the items to be added. By default, index is 0.
8755
+ * @param {TabItemModel[]} items - An array of item that is added to the Tab.
8756
+ * @param {number} index - Number value that determines where the items to be added. By default, index is 0.
8692
8757
  * @returns {void}.
8693
8758
  */
8694
8759
  addTab(items, index) {
@@ -8771,7 +8836,7 @@ let Tab = class Tab extends Component {
8771
8836
  /**
8772
8837
  * Removes the items in the Tab from the specified index.
8773
8838
  *
8774
- * @param {number} index - Index of target item that is going to be removed.
8839
+ * @param {number} index - Index of target item that is going to be removed.
8775
8840
  * @returns {void}.
8776
8841
  */
8777
8842
  removeTab(index) {
@@ -8810,8 +8875,8 @@ let Tab = class Tab extends Component {
8810
8875
  /**
8811
8876
  * Shows or hides the Tab that is in the specified index.
8812
8877
  *
8813
- * @param {number} index - Index value of target item.
8814
- * @param {boolean} value - Based on this Boolean value, item will be hide (false) or show (true). By default, value is true.
8878
+ * @param {number} index - Index value of target item.
8879
+ * @param {boolean} value - Based on this Boolean value, item will be hide (false) or show (true). By default, value is true.
8815
8880
  * @returns {void}.
8816
8881
  */
8817
8882
  hideTab(index, value) {
@@ -8871,12 +8936,16 @@ let Tab = class Tab extends Component {
8871
8936
  this.tbObj.refreshOverflow();
8872
8937
  }
8873
8938
  }
8939
+ selectTab(args, event = null, isInteracted = false) {
8940
+ this.isInteracted = isInteracted;
8941
+ this.select(args, event);
8942
+ }
8874
8943
  /**
8875
8944
  * Specifies the index or HTMLElement to select an item from the Tab.
8876
8945
  *
8877
- * @param {number | HTMLElement} args - Index or DOM element is used for selecting an item from the Tab.
8946
+ * @param {number | HTMLElement} args - Index or DOM element is used for selecting an item from the Tab.
8878
8947
  * @param {Event} event - An event which takes place in DOM.
8879
- * @returns {void}.
8948
+ * @returns {void}
8880
8949
  */
8881
8950
  select(args, event) {
8882
8951
  const tabHeader = this.getTabHeader();
@@ -8913,20 +8982,22 @@ let Tab = class Tab extends Component {
8913
8982
  selectingContent: !isNullOrUndefined(this.content) ?
8914
8983
  select('#' + CLS_CONTENT$1 + this.tabId + '_' + this.selectingID, this.content) : null,
8915
8984
  isSwiped: this.isSwipeed,
8985
+ isInteracted: this.isInteracted,
8916
8986
  cancel: false
8917
8987
  };
8918
8988
  if (!this.initRender) {
8919
8989
  this.trigger('selecting', eventArg, (selectArgs) => {
8920
8990
  if (!selectArgs.cancel) {
8921
- this.selectingContent(args);
8991
+ this.selectingContent(args, this.isInteracted);
8922
8992
  }
8923
8993
  });
8924
8994
  }
8925
8995
  else {
8926
- this.selectingContent(args);
8996
+ this.selectingContent(args, this.isInteracted);
8927
8997
  }
8998
+ this.isInteracted = false;
8928
8999
  }
8929
- selectingContent(args) {
9000
+ selectingContent(args, isInteracted) {
8930
9001
  if (typeof args === 'number') {
8931
9002
  if (!isNullOrUndefined(this.tbItem[args]) && (this.tbItem[args].classList.contains(CLS_DISABLE$4) ||
8932
9003
  this.tbItem[args].classList.contains(CLS_HIDDEN$1))) {
@@ -8942,8 +9013,8 @@ let Tab = class Tab extends Component {
8942
9013
  }
8943
9014
  if (this.tbItem.length > args && args >= 0 && !isNaN(args)) {
8944
9015
  this.prevIndex = this.selectedItem;
8945
- if (this.tbItem[args].classList.contains(CLS_TB_POPUP)) {
8946
- this.setActive(this.popupHandler(this.tbItem[args]));
9016
+ if (this.tbItem[args].classList.contains(CLS_TB_POPUP) && this.reorderActiveTab) {
9017
+ this.setActive(this.popupHandler(this.tbItem[args]), null, isInteracted);
8947
9018
  if ((!isNullOrUndefined(this.items) && this.items.length > 0) && this.allowDragAndDrop) {
8948
9019
  this.tbItem = selectAll('.' + CLS_TB_ITEMS + ' .' + CLS_TB_ITEM, this.hdrEle);
8949
9020
  let item = this.items[args];
@@ -8952,15 +9023,15 @@ let Tab = class Tab extends Component {
8952
9023
  }
8953
9024
  }
8954
9025
  else {
8955
- this.setActive(args);
9026
+ this.setActive(args, null, isInteracted);
8956
9027
  }
8957
9028
  }
8958
9029
  else {
8959
- this.setActive(0);
9030
+ this.setActive(0, null, isInteracted);
8960
9031
  }
8961
9032
  }
8962
9033
  else if (args instanceof (HTMLElement)) {
8963
- this.setActive(this.getEleIndex(args));
9034
+ this.setActive(this.getEleIndex(args), null, isInteracted);
8964
9035
  }
8965
9036
  }
8966
9037
  /**
@@ -9041,6 +9112,9 @@ let Tab = class Tab extends Component {
9041
9112
  case 'showCloseButton':
9042
9113
  this.setCloseButton(newProp.showCloseButton);
9043
9114
  break;
9115
+ case 'reorderActiveTab':
9116
+ this.refreshActElePosition();
9117
+ break;
9044
9118
  case 'selectedItem':
9045
9119
  this.selectedItem = oldProp.selectedItem;
9046
9120
  this.select(newProp.selectedItem);
@@ -9234,6 +9308,9 @@ __decorate$7([
9234
9308
  __decorate$7([
9235
9309
  Property(false)
9236
9310
  ], Tab.prototype, "showCloseButton", void 0);
9311
+ __decorate$7([
9312
+ Property(true)
9313
+ ], Tab.prototype, "reorderActiveTab", void 0);
9237
9314
  __decorate$7([
9238
9315
  Property()
9239
9316
  ], Tab.prototype, "scrollStep", void 0);
@@ -9300,6 +9377,8 @@ const COLLAPSIBLE = 'e-icon-collapsible';
9300
9377
  const EXPANDABLE = 'e-icon-expandable';
9301
9378
  const LISTITEM = 'e-list-item';
9302
9379
  const LISTTEXT = 'e-list-text';
9380
+ const LISTWRAP = 'e-text-wrap';
9381
+ const IELISTWRAP = 'e-ie-wrap';
9303
9382
  const PARENTITEM = 'e-list-parent';
9304
9383
  const HOVER = 'e-hover';
9305
9384
  const ACTIVE = 'e-active';
@@ -9452,6 +9531,7 @@ let TreeView = TreeView_1 = class TreeView extends Component {
9452
9531
  this.isFieldChange = false;
9453
9532
  this.changeDataSource = false;
9454
9533
  this.hasTemplate = false;
9534
+ this.isFirstRender = false;
9455
9535
  this.mouseDownStatus = false;
9456
9536
  }
9457
9537
  /**
@@ -9574,6 +9654,7 @@ let TreeView = TreeView_1 = class TreeView extends Component {
9574
9654
  this.setCssClass(null, this.cssClass);
9575
9655
  this.setEnableRtl();
9576
9656
  this.setFullRow(this.fullRowSelect);
9657
+ this.setTextWrap();
9577
9658
  this.nodeTemplateFn = this.templateComplier(this.nodeTemplate);
9578
9659
  }
9579
9660
  setDisabledMode() {
@@ -10558,11 +10639,36 @@ let TreeView = TreeView_1 = class TreeView extends Component {
10558
10639
  addClass([firstNode], FOCUS);
10559
10640
  this.updateIdAttr(null, firstNode);
10560
10641
  }
10642
+ if (this.allowTextWrap) {
10643
+ this.updateWrap();
10644
+ }
10561
10645
  this.renderReactTemplates();
10562
10646
  this.hasPid = this.rootData[0] ? this.rootData[0].hasOwnProperty(this.fields.parentID) : false;
10563
10647
  this.doExpandAction();
10564
10648
  }
10565
10649
  }
10650
+ setTextWrap() {
10651
+ (this.allowTextWrap ? addClass : removeClass)([this.element], LISTWRAP);
10652
+ if (Browser.isIE) {
10653
+ (this.allowTextWrap ? addClass : removeClass)([this.element], IELISTWRAP);
10654
+ }
10655
+ }
10656
+ updateWrap(ulEle) {
10657
+ if (!this.fullRowSelect) {
10658
+ return;
10659
+ }
10660
+ const liEle = ulEle ? selectAll('.' + LISTITEM, ulEle) : this.liList;
10661
+ const length = liEle.length;
10662
+ for (let i = 0; i < length; i++) {
10663
+ this.calculateWrap(liEle[i]);
10664
+ }
10665
+ }
10666
+ calculateWrap(liEle) {
10667
+ const element = select('.' + FULLROW, liEle);
10668
+ if (element && element.nextElementSibling) {
10669
+ element.style.height = this.allowTextWrap ? element.nextElementSibling.offsetHeight + 'px' : '';
10670
+ }
10671
+ }
10566
10672
  doExpandAction() {
10567
10673
  let eUids = this.expandedNodes;
10568
10674
  if (this.isInitalExpand && eUids.length > 0) {
@@ -10798,6 +10904,10 @@ let TreeView = TreeView_1 = class TreeView extends Component {
10798
10904
  currLi.style.height = '';
10799
10905
  removeClass([icon], PROCESS);
10800
10906
  this.addExpand(currLi);
10907
+ if (this.allowTextWrap && this.isLoaded && this.isFirstRender) {
10908
+ this.updateWrap(currLi);
10909
+ this.isFirstRender = false;
10910
+ }
10801
10911
  if (this.isLoaded && this.expandArgs && !this.isRefreshed) {
10802
10912
  this.expandArgs = this.getExpandEvent(currLi, null);
10803
10913
  this.trigger('nodeExpanded', this.expandArgs);
@@ -11298,6 +11408,7 @@ let TreeView = TreeView_1 = class TreeView extends Component {
11298
11408
  this.expandNode(currLi, icon);
11299
11409
  }
11300
11410
  else {
11411
+ this.isFirstRender = true;
11301
11412
  this.renderChildNodes(currLi, expandChild, callback);
11302
11413
  let liEles = selectAll('.' + LISTITEM, currLi);
11303
11414
  for (let i = 0; i < liEles.length; i++) {
@@ -11990,6 +12101,9 @@ let TreeView = TreeView_1 = class TreeView extends Component {
11990
12101
  removeClass([liEle], EDITING);
11991
12102
  txtEle.focus();
11992
12103
  }
12104
+ if (this.allowTextWrap) {
12105
+ this.calculateWrap(liEle);
12106
+ }
11993
12107
  }
11994
12108
  getElement(ele) {
11995
12109
  if (isNullOrUndefined(ele)) {
@@ -13576,6 +13690,10 @@ let TreeView = TreeView_1 = class TreeView extends Component {
13576
13690
  this.setMultiSelect(this.allowMultiSelection);
13577
13691
  this.addMultiSelect(this.allowMultiSelection);
13578
13692
  break;
13693
+ case 'allowTextWrap':
13694
+ this.setTextWrap();
13695
+ this.updateWrap();
13696
+ break;
13579
13697
  case 'checkedNodes':
13580
13698
  if (this.showCheckBox) {
13581
13699
  this.checkedNodes = oldProp.checkedNodes;
@@ -13627,6 +13745,10 @@ let TreeView = TreeView_1 = class TreeView extends Component {
13627
13745
  case 'fullRowSelect':
13628
13746
  this.setFullRow(this.fullRowSelect);
13629
13747
  this.addFullRow(this.fullRowSelect);
13748
+ if (this.allowTextWrap) {
13749
+ this.setTextWrap();
13750
+ this.updateWrap();
13751
+ }
13630
13752
  break;
13631
13753
  case 'loadOnDemand':
13632
13754
  if (this.loadOnDemand === false && !this.onLoaded) {
@@ -14065,6 +14187,9 @@ __decorate$8([
14065
14187
  __decorate$8([
14066
14188
  Property(false)
14067
14189
  ], TreeView.prototype, "allowMultiSelection", void 0);
14190
+ __decorate$8([
14191
+ Property(false)
14192
+ ], TreeView.prototype, "allowTextWrap", void 0);
14068
14193
  __decorate$8([
14069
14194
  Complex({}, NodeAnimationSettings)
14070
14195
  ], TreeView.prototype, "animation", void 0);
@@ -14904,6 +15029,15 @@ var __decorate$10 = (undefined && undefined.__decorate) || function (decorators,
14904
15029
  const ICONRIGHT = 'e-icon-right';
14905
15030
  const ITEMTEXTCLASS = 'e-breadcrumb-text';
14906
15031
  const ICONCLASS = 'e-breadcrumb-icon';
15032
+ const MENUCLASS = 'e-breadcrumb-menu';
15033
+ const ITEMCLASS = 'e-breadcrumb-item';
15034
+ const POPUPCLASS = 'e-breadcrumb-popup';
15035
+ const WRAPMODECLASS = 'e-breadcrumb-wrap-mode';
15036
+ const SCROLLMODECLASS = 'e-breadcrumb-scroll-mode';
15037
+ const TABINDEX = 'tabindex';
15038
+ const DISABLEDCLASS = 'e-disabled';
15039
+ const ARIADISABLED = 'aria-disabled';
15040
+ const DOT = '.';
14907
15041
  class BreadcrumbItem extends ChildProperty {
14908
15042
  }
14909
15043
  __decorate$10([
@@ -14915,6 +15049,9 @@ __decorate$10([
14915
15049
  __decorate$10([
14916
15050
  Property(null)
14917
15051
  ], BreadcrumbItem.prototype, "iconCss", void 0);
15052
+ __decorate$10([
15053
+ Property(false)
15054
+ ], BreadcrumbItem.prototype, "disabled", void 0);
14918
15055
  /**
14919
15056
  * Breadcrumb is a graphical user interface that helps to identify or highlight the current location within a hierarchical structure of websites.
14920
15057
  * The aim is to make the user aware of their current position in a hierarchy of website links.
@@ -14966,20 +15103,48 @@ let Breadcrumb = class Breadcrumb extends Component {
14966
15103
  if (this.enableRtl) {
14967
15104
  this.element.classList.add('e-rtl');
14968
15105
  }
14969
- this.setWidth();
15106
+ if (this.disabled) {
15107
+ this.element.classList.add(DISABLEDCLASS);
15108
+ this.element.setAttribute(ARIADISABLED, 'true');
15109
+ }
15110
+ if (this.overflowMode === 'Wrap') {
15111
+ this.element.classList.add(WRAPMODECLASS);
15112
+ }
15113
+ else if (this.overflowMode === 'Scroll') {
15114
+ this.element.classList.add(SCROLLMODECLASS);
15115
+ }
14970
15116
  this.initItems();
14971
15117
  this.initPvtProps();
14972
15118
  }
14973
15119
  initPvtProps() {
14974
- if (this.overflowMode === 'Default' && this._maxItems > 0) {
14975
- this.startIndex = this.items.length - (this._maxItems - 1);
14976
- this.endIndex = this.items.length - 1;
15120
+ if (this.overflowMode === 'Hidden' && this._maxItems > 0) {
15121
+ this.endIndex = this.getEndIndex();
15122
+ this.startIndex = this.endIndex + 1 - (this._maxItems - 1);
15123
+ }
15124
+ if (this.overflowMode === 'Menu') {
15125
+ if (this._maxItems >= 0) {
15126
+ this.startIndex = this._maxItems > 1 ? 1 : 0;
15127
+ this.endIndex = this.getEndIndex();
15128
+ this.popupUl = this.createElement('ul', { attrs: { TABINDEX: '0', 'role': 'menu' } });
15129
+ }
15130
+ else {
15131
+ this.startIndex = this.endIndex = null;
15132
+ }
14977
15133
  }
14978
15134
  }
14979
- setWidth() {
14980
- if (this.width) {
14981
- this.element.style.width = this.width;
15135
+ getEndIndex() {
15136
+ let endIndex;
15137
+ if (this.activeItem) {
15138
+ this.items.forEach((item, idx) => {
15139
+ if (item.url === this.activeItem || item.text === this.activeItem) {
15140
+ endIndex = idx;
15141
+ }
15142
+ });
15143
+ }
15144
+ else {
15145
+ endIndex = this.items.length - 1;
14982
15146
  }
15147
+ return endIndex;
14983
15148
  }
14984
15149
  initItems() {
14985
15150
  if (!this.items.length) {
@@ -14987,7 +15152,7 @@ let Breadcrumb = class Breadcrumb extends Component {
14987
15152
  let uri;
14988
15153
  const items = [];
14989
15154
  if (this.url) {
14990
- const url = new URL(this.url);
15155
+ const url = new URL(this.url, window.location.origin);
14991
15156
  baseUri = url.origin + '/';
14992
15157
  uri = url.href.split(baseUri)[1].split('/');
14993
15158
  }
@@ -15013,13 +15178,19 @@ let Breadcrumb = class Breadcrumb extends Component {
15013
15178
  if (itemsLength) {
15014
15179
  let isActiveItem;
15015
15180
  let isLastItem;
15181
+ let isLastItemInPopup;
15016
15182
  let j = 0;
15183
+ let wrapDiv;
15017
15184
  const len = (itemsLength * 2) - 1;
15018
- const ol = this.createElement('ol');
15185
+ let isItemCancelled = false;
15186
+ const ol = this.createElement('ol', { className: this.overflowMode === 'Wrap' ? 'e-breadcrumb-wrapped-ol' : '' });
15187
+ const firstOl = this.createElement('ol', { className: this.overflowMode === 'Wrap' ? 'e-breadcrumb-first-ol' : '' });
15019
15188
  const showIcon = this.hasField(items, 'iconCss');
15020
- const isDisabled = this.element.classList.contains('e-disabled');
15021
- const isCollasped = (this.overflowMode === 'Collapsed' && this._maxItems > 0 && itemsLength > this.maxItems && !this.isExpanded);
15022
- const isDefaultOverflowMode = (this.overflowMode === 'Default' && this._maxItems > 0);
15189
+ const isCollasped = (this.overflowMode === 'Collapsed' && this._maxItems > 0 && itemsLength > this._maxItems && !this.isExpanded);
15190
+ const isDefaultOverflowMode = (this.overflowMode === 'Hidden' && this._maxItems > 0);
15191
+ if (this.overflowMode === 'Menu' && this.popupUl) {
15192
+ this.popupUl.innerHTML = '';
15193
+ }
15023
15194
  const listBaseOptions = {
15024
15195
  moduleName: this.getModuleName(),
15025
15196
  showIcon: showIcon,
@@ -15028,7 +15199,9 @@ let Breadcrumb = class Breadcrumb extends Component {
15028
15199
  const isLastItem = args.curData.isLastItem;
15029
15200
  if (isLastItem && args.item.children.length && !this.itemTemplate) {
15030
15201
  delete args.curData.isLastItem;
15031
- args.item.innerHTML = this.createElement('span', { className: ITEMTEXTCLASS, innerHTML: args.item.children[0].innerHTML }).outerHTML;
15202
+ if (!isLastItemInPopup && !this.enableActiveItemNavigation) {
15203
+ args.item.innerHTML = this.createElement('span', { className: ITEMTEXTCLASS, innerHTML: args.item.children[0].innerHTML }).outerHTML;
15204
+ }
15032
15205
  }
15033
15206
  if (args.curData.iconCss && !args.curData.text && !this.itemTemplate) {
15034
15207
  args.item.classList.add('e-icon-item');
@@ -15036,41 +15209,40 @@ let Breadcrumb = class Breadcrumb extends Component {
15036
15209
  if (isDefaultOverflowMode) {
15037
15210
  args.item.setAttribute('item-index', j.toString());
15038
15211
  }
15039
- if (args.item.querySelector('.' + ITEMTEXTCLASS)) {
15040
- EventHandler.add(args.item.querySelector('.' + ITEMTEXTCLASS), 'focus', () => {
15041
- args.item.classList.add('e-focus');
15042
- }, this);
15043
- EventHandler.add(args.item.querySelector('.' + ITEMTEXTCLASS), 'focusout', () => {
15044
- args.item.classList.remove('e-focus');
15045
- }, this);
15046
- }
15047
15212
  const eventArgs = {
15048
15213
  item: extend({}, args.curData.properties ?
15049
- args.curData.properties : args.curData), element: args.item
15214
+ args.curData.properties : args.curData), element: args.item, cancel: false
15050
15215
  };
15051
15216
  this.trigger('beforeItemRender', eventArgs);
15052
- const isItemDisabled = isDisabled || eventArgs.element.classList.contains('e-disabled');
15217
+ isItemCancelled = eventArgs.cancel;
15053
15218
  const containsRightIcon = (isIconRight || eventArgs.element.classList.contains(ICONRIGHT));
15054
15219
  if (containsRightIcon && args.curData.iconCss && !this.itemTemplate) {
15055
- args.item.querySelector('.e-anchor-wrap').append(args.item.querySelector('.' + ICONCLASS));
15220
+ args.item.querySelector('.e-anchor-wrap').appendChild(args.item.querySelector(DOT + ICONCLASS));
15221
+ }
15222
+ if (eventArgs.item.disabled) {
15223
+ args.item.setAttribute(ARIADISABLED, 'true');
15224
+ args.item.classList.add(DISABLEDCLASS);
15056
15225
  }
15057
- if (isItemDisabled) {
15058
- args.item.setAttribute('aria-disabled', 'true');
15226
+ if ((eventArgs.item.disabled || this.disabled) && args.item.children.length && !this.itemTemplate) {
15227
+ args.item.children[0].setAttribute(TABINDEX, '-1');
15059
15228
  }
15060
15229
  if (args.curData.isEmptyUrl) {
15061
15230
  args.item.children[0].removeAttribute('href');
15062
- if ((!isLastItem || (isLastItem && this.enableActiveItemNavigation)) && !isItemDisabled) {
15063
- args.item.children[0].setAttribute('tabindex', '0');
15231
+ if ((!isLastItem || (isLastItem && this.enableActiveItemNavigation)) && !(eventArgs.item.disabled || this.disabled)) {
15232
+ args.item.children[0].setAttribute(TABINDEX, '0');
15064
15233
  EventHandler.add(args.item.children[0], 'keydown', this.keyDownHandler, this);
15065
15234
  }
15066
15235
  }
15236
+ if (isLastItem) {
15237
+ args.item.setAttribute('data-active-item', '');
15238
+ }
15067
15239
  if (!this.itemTemplate) {
15068
15240
  this.beforeItemRenderChanges(args.curData, eventArgs.item, args.item, containsRightIcon);
15069
15241
  }
15070
15242
  }
15071
15243
  };
15072
15244
  for (let i = 0; i < len; i % 2 && j++, i++) {
15073
- isActiveItem = (this.activeItem && this.activeItem === items[j].url);
15245
+ isActiveItem = (this.activeItem && (this.activeItem === items[j].url || this.activeItem === items[j].text));
15074
15246
  if (isCollasped && i > 1 && i < len - 2) {
15075
15247
  continue;
15076
15248
  }
@@ -15080,10 +15252,11 @@ let Breadcrumb = class Breadcrumb extends Component {
15080
15252
  }
15081
15253
  if (i % 2) {
15082
15254
  // separator item
15255
+ wrapDiv = this.createElement('div', { className: 'e-breadcrumb-item-wrapper' });
15083
15256
  listBaseOptions.template = this.separatorTemplate ? this.separatorTemplate : '/';
15084
15257
  listBaseOptions.itemClass = 'e-breadcrumb-separator';
15085
15258
  isSingleLevel = false;
15086
- item = [{ previousItem: item.pop(), nextItem: items[j] }];
15259
+ item = [{ previousItem: items[j], nextItem: items[j + 1] }];
15087
15260
  }
15088
15261
  else {
15089
15262
  // list item
@@ -15100,47 +15273,129 @@ let Breadcrumb = class Breadcrumb extends Component {
15100
15273
  if (!item[0].url && !this.itemTemplate) {
15101
15274
  item = [extend({}, item[0], { isEmptyUrl: true, url: '#' })];
15102
15275
  }
15103
- isLastItem = isDefaultOverflowMode && (j === this.endIndex);
15104
- if ((((i === len - 1 || isLastItem) && !this.itemTemplate) || isActiveItem) && !this.enableActiveItemNavigation) {
15276
+ isLastItem = (isDefaultOverflowMode || this.overflowMode === 'Menu') && (j === this.endIndex);
15277
+ if (((i === len - 1 || isLastItem) && !this.itemTemplate) || isActiveItem) {
15105
15278
  item[0].isLastItem = true;
15106
15279
  }
15107
15280
  }
15108
- append(ListBase.createList(this.createElement, item, listBaseOptions, isSingleLevel, this)
15109
- .childNodes, ol);
15281
+ let parent = ol;
15282
+ const lastPopupItemIdx = this.startIndex + this.endIndex - this._maxItems;
15283
+ if (this.overflowMode === 'Menu' && ((j >= this.startIndex && (j <= lastPopupItemIdx && (i % 2 ? !(j === lastPopupItemIdx) : true)) && this.endIndex >= this._maxItems && this._maxItems > 0) || this._maxItems === 0)) {
15284
+ if (i % 2) {
15285
+ continue;
15286
+ }
15287
+ else {
15288
+ parent = this.popupUl;
15289
+ if (isLastItem) {
15290
+ isLastItemInPopup = true;
15291
+ }
15292
+ }
15293
+ }
15294
+ else if (this.overflowMode === 'Wrap') {
15295
+ if (i === 0) {
15296
+ parent = firstOl;
15297
+ }
15298
+ else {
15299
+ parent = wrapDiv;
15300
+ }
15301
+ }
15302
+ const li = ListBase.createList(this.createElement, item, listBaseOptions, isSingleLevel, this).childNodes;
15303
+ if (!isItemCancelled) {
15304
+ append(li, parent);
15305
+ }
15306
+ else if (isDefaultOverflowMode || isCollasped || this.overflowMode === 'Menu' || this.overflowMode === 'Wrap') {
15307
+ items.splice(j, 1);
15308
+ this.initPvtProps();
15309
+ return this.reRenderItems();
15310
+ }
15311
+ else if ((i === len - 1 || isLastItem)) {
15312
+ remove(parent.lastElementChild);
15313
+ }
15314
+ if (this.overflowMode === 'Wrap' && i !== 0 && i % 2 === 0) {
15315
+ ol.appendChild(wrapDiv);
15316
+ }
15110
15317
  if (isCollasped && i === 1) {
15111
- const li = this.createElement('li', { className: 'e-icons e-breadcrumb-collapsed', attrs: { 'tabindex': '0' } });
15318
+ const li = this.createElement('li', { className: 'e-icons e-breadcrumb-collapsed', attrs: { TABINDEX: '0' } });
15112
15319
  EventHandler.add(li, 'keyup', this.expandHandler, this);
15113
- ol.append(li);
15320
+ ol.appendChild(li);
15321
+ }
15322
+ if (this.overflowMode === 'Menu' && this.startIndex === i && this.endIndex >= this._maxItems && this._maxItems >= 0) {
15323
+ const menu = this.getMenuElement();
15324
+ EventHandler.add(menu, 'keyup', this.keyDownHandler, this);
15325
+ ol.appendChild(menu);
15114
15326
  }
15115
15327
  if (isActiveItem || isLastItem) {
15116
15328
  break;
15117
15329
  }
15330
+ if (isItemCancelled) {
15331
+ i++;
15332
+ }
15118
15333
  }
15119
15334
  if (this.isReact) {
15120
15335
  this.renderReactTemplates();
15121
15336
  }
15122
- this.element.append(ol);
15337
+ if (this.overflowMode === 'Wrap') {
15338
+ this.element.appendChild(firstOl);
15339
+ }
15340
+ this.element.appendChild(ol);
15123
15341
  this.calculateMaxItems();
15124
15342
  }
15125
15343
  }
15126
15344
  calculateMaxItems() {
15127
- if (!this._maxItems) {
15128
- if (this.overflowMode === 'Default' || this.overflowMode === 'Collapsed') {
15129
- const width = this.element.offsetWidth;
15130
- let liWidth = this.element.children[0].children[0].offsetWidth;
15131
- const liElems = [].slice.call(this.element.children[0].children).reverse();
15132
- for (let i = 0; i < liElems.length; i++) {
15133
- if (liWidth > width) {
15134
- this._maxItems = Math.ceil((i - 1) / 2) + 1;
15345
+ if (this.overflowMode === 'Hidden' || this.overflowMode === 'Collapsed' || this.overflowMode === 'Menu') {
15346
+ let maxItems;
15347
+ const width = this.element.offsetWidth;
15348
+ const liElems = [].slice.call(this.element.children[0].children).reverse();
15349
+ let liWidth = this.overflowMode === 'Menu' ? 0 : liElems[liElems.length - 1].offsetWidth + (liElems[liElems.length - 2] ? liElems[liElems.length - 2].offsetWidth : 0);
15350
+ if (this.overflowMode === 'Menu') {
15351
+ const menuEle = this.getMenuElement();
15352
+ this.element.appendChild(menuEle);
15353
+ liWidth += menuEle.offsetWidth;
15354
+ remove(menuEle);
15355
+ }
15356
+ for (let i = 0; i < liElems.length - 2; i++) {
15357
+ if (liWidth > width) {
15358
+ maxItems = Math.ceil((i - 1) / 2) + ((this.overflowMode === 'Menu' && i <= 2) ? 0 : 1);
15359
+ if (((this.maxItems > maxItems && !(this.maxItems > -1 && maxItems == -1)) || this.maxItems == -1) && this._maxItems != maxItems) {
15360
+ this._maxItems = maxItems;
15135
15361
  this.initPvtProps();
15136
15362
  return this.reRenderItems();
15137
15363
  }
15138
15364
  else {
15365
+ break;
15366
+ }
15367
+ }
15368
+ else {
15369
+ if (this.overflowMode === 'Menu' && i === 2) {
15370
+ liWidth += liElems[liElems.length - 1].offsetWidth + liElems[liElems.length - 2].offsetWidth;
15371
+ if (liWidth > width) {
15372
+ this._maxItems = 1;
15373
+ this.initPvtProps();
15374
+ return this.reRenderItems();
15375
+ }
15376
+ }
15377
+ if (!(this.overflowMode === 'Menu' && liElems[i].classList.contains(MENUCLASS))) {
15139
15378
  liWidth += liElems[i].offsetWidth;
15140
15379
  }
15141
15380
  }
15142
15381
  }
15143
15382
  }
15383
+ else if ((this.overflowMode === 'Wrap' || this.overflowMode === 'Scroll') && this._maxItems > 0) {
15384
+ let width = 0;
15385
+ const liElems = this.element.querySelectorAll(DOT + ITEMCLASS);
15386
+ if (liElems.length > this._maxItems + this._maxItems - 1) {
15387
+ for (let i = this.overflowMode === 'Wrap' ? 1 : 0; i < this._maxItems + this._maxItems - 1; i++) {
15388
+ width += liElems[i].offsetWidth;
15389
+ }
15390
+ width = width + 5 + (parseInt(getComputedStyle(this.element.children[0]).paddingLeft, 10) * 2);
15391
+ if (this.overflowMode === 'Wrap') {
15392
+ this.element.querySelector('.e-breadcrumb-wrapped-ol').style.width = width + 'px';
15393
+ }
15394
+ else {
15395
+ this.element.style.width = width + 'px';
15396
+ }
15397
+ }
15398
+ }
15144
15399
  }
15145
15400
  hasField(items, field) {
15146
15401
  for (let i = 0, len = items.length; i < len; i++) {
@@ -15150,6 +15405,9 @@ let Breadcrumb = class Breadcrumb extends Component {
15150
15405
  }
15151
15406
  return false;
15152
15407
  }
15408
+ getMenuElement() {
15409
+ return this.createElement('li', { className: 'e-icons e-breadcrumb-menu', attrs: { TABINDEX: '0' } });
15410
+ }
15153
15411
  beforeItemRenderChanges(prevItem, currItem, elem, isRightIcon) {
15154
15412
  const wrapElem = elem.querySelector('.e-anchor-wrap');
15155
15413
  if (currItem.text !== prevItem.text) {
@@ -15159,15 +15417,15 @@ let Breadcrumb = class Breadcrumb extends Component {
15159
15417
  }
15160
15418
  });
15161
15419
  }
15162
- if (currItem.iconCss !== prevItem.iconCss) {
15163
- const iconElem = elem.querySelector('.' + ICONCLASS);
15420
+ if (currItem.iconCss !== prevItem.iconCss && wrapElem) { // wrapElem - for checking it is item not a separator
15421
+ const iconElem = elem.querySelector(DOT + ICONCLASS);
15164
15422
  if (iconElem) {
15165
15423
  if (currItem.iconCss) {
15166
15424
  removeClass([iconElem], prevItem.iconCss.split(' '));
15167
15425
  addClass([iconElem], currItem.iconCss.split(' '));
15168
15426
  }
15169
15427
  else {
15170
- iconElem.remove();
15428
+ remove(iconElem);
15171
15429
  }
15172
15430
  }
15173
15431
  else if (currItem.iconCss) {
@@ -15197,31 +15455,85 @@ let Breadcrumb = class Breadcrumb extends Component {
15197
15455
  this.renderItems(this.items);
15198
15456
  }
15199
15457
  clickHandler(e) {
15200
- const li = closest(e.target, '.e-breadcrumb-item');
15201
- if (li && (closest(e.target, '.' + ITEMTEXTCLASS) || this.itemTemplate)) {
15202
- let idx = [].slice.call(li.parentElement.children).indexOf(li);
15203
- idx = Math.floor(idx / 2);
15204
- if (this.overflowMode === 'Default' && this._maxItems > 0 && this.endIndex !== 0) {
15458
+ const li = closest(e.target, DOT + ITEMCLASS + ':not(.e-breadcrumb-separator)');
15459
+ if (!this.enableNavigation) {
15460
+ e.preventDefault();
15461
+ }
15462
+ if (li && (closest(e.target, DOT + ITEMTEXTCLASS) || this.itemTemplate)) {
15463
+ let idx;
15464
+ if (this.overflowMode === 'Wrap') {
15465
+ idx = [].slice.call(this.element.querySelectorAll(DOT + ITEMCLASS)).indexOf(li);
15466
+ }
15467
+ else {
15468
+ idx = [].slice.call(li.parentElement.children).indexOf(li);
15469
+ }
15470
+ if (this.overflowMode === 'Menu') {
15471
+ if (closest(e.target, DOT + POPUPCLASS)) {
15472
+ idx += this.startIndex;
15473
+ this.endIndex = idx;
15474
+ if (e.type === 'keydown') {
15475
+ this.documentClickHandler(e);
15476
+ }
15477
+ }
15478
+ else if (this.element.querySelector(DOT + MENUCLASS)) {
15479
+ if (idx > [].slice.call(this.element.children[0].children).indexOf(this.element.querySelector(DOT + MENUCLASS))) {
15480
+ idx += (this.popupUl.childElementCount * 2) - 2;
15481
+ idx = Math.floor(idx / 2);
15482
+ this.endIndex = idx;
15483
+ }
15484
+ else {
15485
+ this.startIndex = this.endIndex = idx;
15486
+ }
15487
+ }
15488
+ else {
15489
+ idx = Math.floor(idx / 2);
15490
+ this.startIndex = this.endIndex = idx;
15491
+ }
15492
+ }
15493
+ else {
15494
+ idx = Math.floor(idx / 2);
15495
+ }
15496
+ if (this.overflowMode === 'Hidden' && this._maxItems > 0 && this.endIndex !== 0) {
15205
15497
  idx = parseInt(li.getAttribute('item-index'), 10);
15206
15498
  if (this.startIndex > 1) {
15207
15499
  this.startIndex -= (this.endIndex - idx);
15208
15500
  }
15209
15501
  this.endIndex = idx;
15210
- this.reRenderItems();
15211
15502
  }
15212
15503
  this.trigger('itemClick', { element: li, item: this.items[idx], event: e });
15213
- if (this.items[idx].url) {
15214
- this.activeItem = this.items[idx].url;
15215
- this.dataBind();
15216
- }
15217
- }
15218
- if (!this.enableNavigation) {
15219
- e.preventDefault();
15504
+ this.activeItem = this.items[idx].url || this.items[idx].text;
15505
+ this.dataBind();
15220
15506
  }
15221
15507
  if (e.target.classList.contains('e-breadcrumb-collapsed')) {
15222
15508
  this.isExpanded = true;
15223
15509
  this.reRenderItems();
15224
15510
  }
15511
+ if (e.target.classList.contains(MENUCLASS)) {
15512
+ this.renderPopup();
15513
+ }
15514
+ }
15515
+ renderPopup() {
15516
+ const wrapper = this.createElement('div', { className: POPUPCLASS + ' ' + this.cssClass + (this.enableRtl ? ' e-rtl' : '') });
15517
+ document.body.appendChild(wrapper);
15518
+ this.popupObj = new Popup(wrapper, {
15519
+ content: this.popupUl,
15520
+ relateTo: this.element.querySelector(DOT + MENUCLASS),
15521
+ enableRtl: this.enableRtl,
15522
+ position: { X: 'left', Y: 'bottom' },
15523
+ collision: { X: 'fit', Y: 'flip' },
15524
+ open: () => {
15525
+ this.popupUl.focus();
15526
+ }
15527
+ });
15528
+ this.popupWireEvents();
15529
+ this.popupObj.show();
15530
+ }
15531
+ documentClickHandler(e) {
15532
+ if (this.overflowMode === 'Menu' && this.popupObj && this.popupObj.element.classList.contains('e-popup-open') && !closest(e.target, DOT + MENUCLASS)) {
15533
+ this.popupObj.hide();
15534
+ this.popupObj.destroy();
15535
+ detach(this.popupObj.element);
15536
+ }
15225
15537
  }
15226
15538
  resize() {
15227
15539
  this._maxItems = this.maxItems;
@@ -15239,6 +15551,11 @@ let Breadcrumb = class Breadcrumb extends Component {
15239
15551
  this.clickHandler(e);
15240
15552
  }
15241
15553
  }
15554
+ popupKeyDownHandler(e) {
15555
+ if (e.key === 'Escape') {
15556
+ this.documentClickHandler(e);
15557
+ }
15558
+ }
15242
15559
  /**
15243
15560
  * Called internally if any of the property value changed.
15244
15561
  *
@@ -15250,26 +15567,37 @@ let Breadcrumb = class Breadcrumb extends Component {
15250
15567
  onPropertyChanged(newProp, oldProp) {
15251
15568
  for (const prop of Object.keys(newProp)) {
15252
15569
  switch (prop) {
15253
- case 'activeItem':
15254
15570
  case 'items':
15255
15571
  case 'enableActiveItemNavigation':
15256
15572
  this.reRenderItems();
15257
15573
  break;
15574
+ case 'activeItem':
15575
+ this._maxItems = this.maxItems;
15576
+ this.initPvtProps();
15577
+ this.reRenderItems();
15578
+ break;
15258
15579
  case 'overflowMode':
15259
15580
  case 'maxItems':
15581
+ this._maxItems = this.maxItems;
15260
15582
  this.initPvtProps();
15261
15583
  this.reRenderItems();
15584
+ if (oldProp.overflowMode === 'Wrap') {
15585
+ this.element.classList.remove(WRAPMODECLASS);
15586
+ }
15587
+ else if (newProp.overflowMode === 'Wrap') {
15588
+ this.element.classList.add(WRAPMODECLASS);
15589
+ }
15590
+ if (oldProp.overflowMode === 'Scroll') {
15591
+ this.element.classList.remove(SCROLLMODECLASS);
15592
+ }
15593
+ else if (newProp.overflowMode === 'Scroll') {
15594
+ this.element.classList.add(SCROLLMODECLASS);
15595
+ }
15262
15596
  break;
15263
15597
  case 'url':
15264
15598
  this.initItems();
15265
15599
  this.reRenderItems();
15266
15600
  break;
15267
- case 'width':
15268
- this.setWidth();
15269
- this._maxItems = this.maxItems;
15270
- this.initPvtProps();
15271
- this.reRenderItems();
15272
- break;
15273
15601
  case 'cssClass':
15274
15602
  if (oldProp.cssClass) {
15275
15603
  removeClass([this.element], oldProp.cssClass.split(' '));
@@ -15286,16 +15614,31 @@ let Breadcrumb = class Breadcrumb extends Component {
15286
15614
  case 'enableRtl':
15287
15615
  this.element.classList.toggle('e-rtl');
15288
15616
  break;
15617
+ case 'disabled':
15618
+ this.element.classList.toggle(DISABLEDCLASS);
15619
+ this.element.setAttribute(ARIADISABLED, newProp.disabled + '');
15620
+ break;
15289
15621
  }
15290
15622
  }
15291
15623
  }
15292
15624
  wireEvents() {
15625
+ this.delegateClickHanlder = this.documentClickHandler.bind(this);
15626
+ EventHandler.add(document, 'click', this.delegateClickHanlder, this);
15293
15627
  EventHandler.add(this.element, 'click', this.clickHandler, this);
15294
15628
  window.addEventListener('resize', this.resize.bind(this));
15295
15629
  }
15630
+ popupWireEvents() {
15631
+ EventHandler.add(this.popupObj.element, 'click', this.clickHandler, this);
15632
+ EventHandler.add(this.popupObj.element, 'keydown', this.popupKeyDownHandler, this);
15633
+ }
15296
15634
  unWireEvents() {
15635
+ EventHandler.remove(document, 'click', this.delegateClickHanlder);
15297
15636
  EventHandler.remove(this.element, 'click', this.clickHandler);
15298
15637
  window.removeEventListener('resize', this.resize.bind(this));
15638
+ if (this.popupObj) {
15639
+ EventHandler.remove(this.popupObj.element, 'click', this.clickHandler);
15640
+ EventHandler.remove(this.popupObj.element, 'keydown', this.popupKeyDownHandler);
15641
+ }
15299
15642
  }
15300
15643
  /**
15301
15644
  * Get the properties to be maintained in the persisted state.
@@ -15320,11 +15663,31 @@ let Breadcrumb = class Breadcrumb extends Component {
15320
15663
  * @returns {void}
15321
15664
  */
15322
15665
  destroy() {
15323
- this.unWireEvents();
15324
- this.element.innerHTML = '';
15666
+ let classes = [];
15667
+ let attributes$$1 = ['aria-label'];
15325
15668
  if (this.cssClass) {
15326
- removeClass([this.element], this.cssClass.split(' '));
15669
+ classes.concat(this.cssClass.split(' '));
15327
15670
  }
15671
+ if (this.enableRtl) {
15672
+ classes.push('e-rtl');
15673
+ }
15674
+ if (this.disabled) {
15675
+ classes.push(DISABLEDCLASS);
15676
+ attributes$$1.push(ARIADISABLED);
15677
+ }
15678
+ if (this.overflowMode === 'Wrap') {
15679
+ classes.push(WRAPMODECLASS);
15680
+ }
15681
+ else if (this.overflowMode === 'Scroll') {
15682
+ classes.push(SCROLLMODECLASS);
15683
+ }
15684
+ this.unWireEvents();
15685
+ this.element.innerHTML = '';
15686
+ removeClass([this.element], classes);
15687
+ attributes$$1.forEach((attribute) => {
15688
+ this.element.removeAttribute(attribute);
15689
+ });
15690
+ super.destroy();
15328
15691
  }
15329
15692
  };
15330
15693
  __decorate$10([
@@ -15337,17 +15700,14 @@ __decorate$10([
15337
15700
  Property('')
15338
15701
  ], Breadcrumb.prototype, "activeItem", void 0);
15339
15702
  __decorate$10([
15340
- Property(0)
15703
+ Property(-1)
15341
15704
  ], Breadcrumb.prototype, "maxItems", void 0);
15342
15705
  __decorate$10([
15343
- Property('Default')
15706
+ Property('Menu')
15344
15707
  ], Breadcrumb.prototype, "overflowMode", void 0);
15345
15708
  __decorate$10([
15346
15709
  Property('')
15347
15710
  ], Breadcrumb.prototype, "cssClass", void 0);
15348
- __decorate$10([
15349
- Property('')
15350
- ], Breadcrumb.prototype, "width", void 0);
15351
15711
  __decorate$10([
15352
15712
  Property(null)
15353
15713
  ], Breadcrumb.prototype, "itemTemplate", void 0);
@@ -15360,6 +15720,9 @@ __decorate$10([
15360
15720
  __decorate$10([
15361
15721
  Property(false)
15362
15722
  ], Breadcrumb.prototype, "enableActiveItemNavigation", void 0);
15723
+ __decorate$10([
15724
+ Property(false)
15725
+ ], Breadcrumb.prototype, "disabled", void 0);
15363
15726
  __decorate$10([
15364
15727
  Property('')
15365
15728
  ], Breadcrumb.prototype, "locale", void 0);