@syncfusion/ej2-navigations 24.2.8 → 25.1.37

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 (133) hide show
  1. package/CHANGELOG.md +9 -34
  2. package/dist/ej2-navigations.min.js +2 -2
  3. package/dist/ej2-navigations.umd.min.js +2 -2
  4. package/dist/ej2-navigations.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-navigations.es2015.js +165 -137
  6. package/dist/es6/ej2-navigations.es2015.js.map +1 -1
  7. package/dist/es6/ej2-navigations.es5.js +165 -137
  8. package/dist/es6/ej2-navigations.es5.js.map +1 -1
  9. package/dist/global/ej2-navigations.min.js +2 -2
  10. package/dist/global/ej2-navigations.min.js.map +1 -1
  11. package/dist/global/index.d.ts +1 -1
  12. package/package.json +12 -12
  13. package/src/accordion/accordion-model.d.ts +3 -2
  14. package/src/accordion/accordion.d.ts +3 -2
  15. package/src/accordion/accordion.js +7 -7
  16. package/src/breadcrumb/breadcrumb.js +2 -1
  17. package/src/common/menu-base-model.d.ts +3 -2
  18. package/src/common/menu-base.d.ts +3 -2
  19. package/src/common/menu-base.js +101 -101
  20. package/src/menu/menu-model.d.ts +3 -2
  21. package/src/menu/menu.d.ts +3 -2
  22. package/src/menu/menu.js +1 -1
  23. package/src/stepper/stepper.js +1 -2
  24. package/src/tab/tab-model.d.ts +7 -21
  25. package/src/tab/tab.d.ts +7 -21
  26. package/src/tab/tab.js +5 -5
  27. package/src/toolbar/toolbar.d.ts +1 -0
  28. package/src/toolbar/toolbar.js +35 -13
  29. package/src/treeview/treeview-model.d.ts +4 -7
  30. package/src/treeview/treeview.d.ts +3 -3
  31. package/src/treeview/treeview.js +15 -9
  32. package/styles/accordion/_bds-definition.scss +180 -0
  33. package/styles/accordion/_material-definition.scss +1 -1
  34. package/styles/accordion/icons/_bds.scss +17 -0
  35. package/styles/accordion/material.css +1 -1
  36. package/styles/appbar/_bds-definition.scss +27 -0
  37. package/styles/bootstrap-dark.css +12 -4
  38. package/styles/bootstrap.css +12 -4
  39. package/styles/bootstrap4.css +12 -4
  40. package/styles/bootstrap5-dark.css +12 -4
  41. package/styles/bootstrap5.css +12 -4
  42. package/styles/breadcrumb/_bds-definition.scss +60 -0
  43. package/styles/breadcrumb/icons/_bds.scss +25 -0
  44. package/styles/carousel/_bds-definition.scss +27 -0
  45. package/styles/carousel/_layout.scss +5 -0
  46. package/styles/carousel/bootstrap-dark.css +6 -0
  47. package/styles/carousel/bootstrap.css +6 -0
  48. package/styles/carousel/bootstrap4.css +6 -0
  49. package/styles/carousel/bootstrap5-dark.css +6 -0
  50. package/styles/carousel/bootstrap5.css +6 -0
  51. package/styles/carousel/fabric-dark.css +6 -0
  52. package/styles/carousel/fabric.css +6 -0
  53. package/styles/carousel/fluent-dark.css +6 -0
  54. package/styles/carousel/fluent.css +6 -0
  55. package/styles/carousel/highcontrast-light.css +6 -0
  56. package/styles/carousel/highcontrast.css +6 -0
  57. package/styles/carousel/icons/_bds.scss +30 -0
  58. package/styles/carousel/material-dark.css +6 -0
  59. package/styles/carousel/material.css +6 -0
  60. package/styles/carousel/material3-dark.css +6 -0
  61. package/styles/carousel/material3.css +6 -0
  62. package/styles/carousel/tailwind-dark.css +6 -0
  63. package/styles/carousel/tailwind.css +6 -0
  64. package/styles/context-menu/_bds-definition.scss +65 -0
  65. package/styles/context-menu/icons/_bds.scss +33 -0
  66. package/styles/fabric-dark.css +12 -4
  67. package/styles/fabric.css +12 -4
  68. package/styles/fluent-dark.css +12 -4
  69. package/styles/fluent.css +12 -4
  70. package/styles/h-scroll/_bds-definition.scss +83 -0
  71. package/styles/h-scroll/icons/_bds.scss +49 -0
  72. package/styles/highcontrast-light.css +12 -4
  73. package/styles/highcontrast.css +12 -4
  74. package/styles/material-dark.css +12 -4
  75. package/styles/material.css +13 -5
  76. package/styles/material3-dark.css +12 -4
  77. package/styles/material3.css +12 -4
  78. package/styles/menu/_bds-definition.scss +66 -0
  79. package/styles/menu/icons/_bds.scss +134 -0
  80. package/styles/pager/_bds-definition.scss +152 -0
  81. package/styles/pager/icons/_bds.scss +50 -0
  82. package/styles/sidebar/_bds-definition.scss +45 -0
  83. package/styles/stepper/_bds-definition.scss +79 -0
  84. package/styles/stepper/_layout.scss +1 -0
  85. package/styles/stepper/bootstrap-dark.css +3 -0
  86. package/styles/stepper/bootstrap.css +3 -0
  87. package/styles/stepper/bootstrap4.css +3 -0
  88. package/styles/stepper/bootstrap5-dark.css +3 -0
  89. package/styles/stepper/bootstrap5.css +3 -0
  90. package/styles/stepper/fabric-dark.css +3 -0
  91. package/styles/stepper/fabric.css +3 -0
  92. package/styles/stepper/fluent-dark.css +3 -0
  93. package/styles/stepper/fluent.css +3 -0
  94. package/styles/stepper/highcontrast-light.css +3 -0
  95. package/styles/stepper/highcontrast.css +3 -0
  96. package/styles/stepper/icons/_bds.scss +5 -0
  97. package/styles/stepper/material-dark.css +3 -0
  98. package/styles/stepper/material.css +3 -0
  99. package/styles/stepper/material3-dark.css +3 -0
  100. package/styles/stepper/material3.css +3 -0
  101. package/styles/stepper/tailwind-dark.css +3 -0
  102. package/styles/stepper/tailwind.css +3 -0
  103. package/styles/tab/_bds-definition.scss +701 -0
  104. package/styles/tab/icons/_bds.scss +92 -0
  105. package/styles/tailwind-dark.css +14 -6
  106. package/styles/tailwind.css +12 -4
  107. package/styles/toolbar/_bds-definition.scss +215 -0
  108. package/styles/toolbar/_layout.scss +6 -7
  109. package/styles/toolbar/bootstrap-dark.css +3 -4
  110. package/styles/toolbar/bootstrap.css +3 -4
  111. package/styles/toolbar/bootstrap4.css +3 -4
  112. package/styles/toolbar/bootstrap5-dark.css +3 -4
  113. package/styles/toolbar/bootstrap5.css +3 -4
  114. package/styles/toolbar/fabric-dark.css +3 -4
  115. package/styles/toolbar/fabric.css +3 -4
  116. package/styles/toolbar/fluent-dark.css +3 -4
  117. package/styles/toolbar/fluent.css +3 -4
  118. package/styles/toolbar/highcontrast-light.css +3 -4
  119. package/styles/toolbar/highcontrast.css +3 -4
  120. package/styles/toolbar/icons/_bds.scss +16 -0
  121. package/styles/toolbar/material-dark.css +3 -4
  122. package/styles/toolbar/material.css +3 -4
  123. package/styles/toolbar/material3-dark.css +3 -4
  124. package/styles/toolbar/material3.css +3 -4
  125. package/styles/toolbar/tailwind-dark.css +3 -4
  126. package/styles/toolbar/tailwind.css +3 -4
  127. package/styles/treeview/_bds-definition.scss +132 -0
  128. package/styles/treeview/_tailwind-definition.scss +1 -1
  129. package/styles/treeview/_theme.scss +1 -1
  130. package/styles/treeview/icons/_bds.scss +43 -0
  131. package/styles/treeview/tailwind-dark.css +2 -2
  132. package/styles/v-scroll/_bds-definition.scss +49 -0
  133. package/styles/v-scroll/icons/_bds.scss +27 -0
@@ -1288,9 +1288,9 @@ let MenuBase = class MenuBase extends Component {
1288
1288
  }
1289
1289
  this.targetElement = target;
1290
1290
  if (!this.isMenu) {
1291
- EventHandler.add(this.targetElement, 'mousewheel DOMMouseScroll', this.scrollHandler, this);
1291
+ EventHandler.add(this.targetElement, 'scroll', this.scrollHandler, this);
1292
1292
  for (const parent of getScrollableParent(this.targetElement)) {
1293
- EventHandler.add(parent, 'mousewheel DOMMouseScroll', this.scrollHandler, this);
1293
+ EventHandler.add(parent, 'scroll', this.scrollHandler, this);
1294
1294
  }
1295
1295
  }
1296
1296
  }
@@ -2058,9 +2058,11 @@ let MenuBase = class MenuBase extends Component {
2058
2058
  }
2059
2059
  li.focus();
2060
2060
  cul = this.getUlByNavIdx();
2061
- const index = this.isValidLI(cul.children[0], 0, this.action);
2062
- cul.children[index].classList.add(FOCUSED);
2063
- cul.children[index].focus();
2061
+ if (cul) {
2062
+ const index = this.isValidLI(cul.children[0], 0, this.action);
2063
+ cul.children[index].classList.add(FOCUSED);
2064
+ cul.children[index].focus();
2065
+ }
2064
2066
  }
2065
2067
  });
2066
2068
  }
@@ -2375,107 +2377,103 @@ let MenuBase = class MenuBase extends Component {
2375
2377
  }
2376
2378
  }
2377
2379
  clickHandler(e) {
2378
- if (this.isTapHold) {
2379
- this.isTapHold = false;
2380
+ this.isTapHold = this.isTapHold ? false : this.isTapHold;
2381
+ const wrapper = this.getWrapper();
2382
+ const trgt = e.target;
2383
+ const cli = this.cli = this.getLI(trgt);
2384
+ const regex = new RegExp('-ej2menu-(.*)-popup');
2385
+ const cliWrapper = cli ? closest(cli, '.e-' + this.getModuleName() + '-wrapper') : null;
2386
+ const isInstLI = cli && cliWrapper && (this.isMenu ? this.getIndex(cli.id, true).length > 0
2387
+ : wrapper.firstElementChild.id === cliWrapper.firstElementChild.id);
2388
+ if (Browser.isDevice && this.isMenu) {
2389
+ this.removeLIStateByClass([FOCUSED], [wrapper].concat(this.getPopups()));
2390
+ this.mouseDownHandler(e);
2380
2391
  }
2381
- else {
2382
- const wrapper = this.getWrapper();
2383
- const trgt = e.target;
2384
- const cli = this.cli = this.getLI(trgt);
2385
- const regex = new RegExp('-ej2menu-(.*)-popup');
2386
- const cliWrapper = cli ? closest(cli, '.e-' + this.getModuleName() + '-wrapper') : null;
2387
- const isInstLI = cli && cliWrapper && (this.isMenu ? this.getIndex(cli.id, true).length > 0
2388
- : wrapper.firstElementChild.id === cliWrapper.firstElementChild.id);
2389
- if (Browser.isDevice && this.isMenu) {
2390
- this.removeLIStateByClass([FOCUSED], [wrapper].concat(this.getPopups()));
2391
- this.mouseDownHandler(e);
2392
- }
2393
- if (cli && cliWrapper && this.isMenu) {
2394
- const cliWrapperId = cliWrapper.id ? regex.exec(cliWrapper.id)[1] : cliWrapper.querySelector('.e-menu-parent').id;
2395
- if (this.element.id !== cliWrapperId) {
2396
- return;
2397
- }
2392
+ if (cli && cliWrapper && this.isMenu) {
2393
+ const cliWrapperId = cliWrapper.id ? regex.exec(cliWrapper.id)[1] : cliWrapper.querySelector('.e-menu-parent').id;
2394
+ if (this.element.id !== cliWrapperId) {
2395
+ return;
2398
2396
  }
2399
- if (isInstLI && e.type === 'click' && !cli.classList.contains(HEADER)) {
2400
- this.setLISelected(cli);
2401
- const navIdx = this.getIndex(cli.id, true);
2402
- const item = this.getItem(navIdx);
2403
- const eventArgs = { element: cli, item: item, event: e };
2404
- this.trigger('select', eventArgs);
2397
+ }
2398
+ if (isInstLI && e.type === 'click' && !cli.classList.contains(HEADER)) {
2399
+ this.setLISelected(cli);
2400
+ const navIdx = this.getIndex(cli.id, true);
2401
+ const item = this.getItem(navIdx);
2402
+ const eventArgs = { element: cli, item: item, event: e };
2403
+ this.trigger('select', eventArgs);
2404
+ }
2405
+ if (isInstLI && (e.type === 'mouseover' || Browser.isDevice || this.showItemOnClick)) {
2406
+ let ul;
2407
+ if (cli.classList.contains(HEADER)) {
2408
+ ul = wrapper.children[this.navIdx.length - 1];
2409
+ this.toggleAnimation(ul);
2410
+ const sli = this.getLIByClass(ul, SELECTED);
2411
+ if (sli) {
2412
+ sli.classList.remove(SELECTED);
2413
+ }
2414
+ detach(cli.parentNode);
2415
+ this.navIdx.pop();
2405
2416
  }
2406
- if (isInstLI && (e.type === 'mouseover' || Browser.isDevice || this.showItemOnClick)) {
2407
- let ul;
2408
- if (cli.classList.contains(HEADER)) {
2409
- ul = wrapper.children[this.navIdx.length - 1];
2410
- this.toggleAnimation(ul);
2411
- const sli = this.getLIByClass(ul, SELECTED);
2412
- if (sli) {
2413
- sli.classList.remove(SELECTED);
2417
+ else {
2418
+ if (!cli.classList.contains(SEPARATOR)) {
2419
+ this.showSubMenu = true;
2420
+ const cul = cli.parentNode;
2421
+ if (isNullOrUndefined(cul)) {
2422
+ return;
2414
2423
  }
2415
- detach(cli.parentNode);
2416
- this.navIdx.pop();
2417
- }
2418
- else {
2419
- if (!cli.classList.contains(SEPARATOR)) {
2420
- this.showSubMenu = true;
2421
- const cul = cli.parentNode;
2422
- if (isNullOrUndefined(cul)) {
2423
- return;
2424
+ this.cliIdx = this.getIdx(cul, cli);
2425
+ if (this.isMenu || !Browser.isDevice) {
2426
+ const culIdx = this.isMenu ? Array.prototype.indexOf.call([wrapper].concat(this.getPopups()), closest(cul, '.' + 'e-' + this.getModuleName() + '-wrapper'))
2427
+ : this.getIdx(wrapper, cul);
2428
+ if (this.navIdx[culIdx] === this.cliIdx) {
2429
+ this.showSubMenu = false;
2424
2430
  }
2425
- this.cliIdx = this.getIdx(cul, cli);
2426
- if (this.isMenu || !Browser.isDevice) {
2427
- const culIdx = this.isMenu ? Array.prototype.indexOf.call([wrapper].concat(this.getPopups()), closest(cul, '.' + 'e-' + this.getModuleName() + '-wrapper'))
2428
- : this.getIdx(wrapper, cul);
2429
- if (this.navIdx[culIdx] === this.cliIdx) {
2430
- this.showSubMenu = false;
2431
+ if (culIdx !== this.navIdx.length && (e.type !== 'mouseover' || this.showSubMenu)) {
2432
+ const sli = this.getLIByClass(cul, SELECTED);
2433
+ if (sli) {
2434
+ sli.classList.remove(SELECTED);
2431
2435
  }
2432
- if (culIdx !== this.navIdx.length && (e.type !== 'mouseover' || this.showSubMenu)) {
2433
- const sli = this.getLIByClass(cul, SELECTED);
2434
- if (sli) {
2435
- sli.classList.remove(SELECTED);
2436
- }
2437
- this.isClosed = true;
2438
- this.keyType = 'click';
2439
- if (this.showItemOnClick) {
2440
- this.setLISelected(cli);
2441
- }
2442
- this.closeMenu(culIdx + 1, e);
2443
- if (this.showItemOnClick) {
2444
- this.setLISelected(cli);
2445
- }
2436
+ this.isClosed = true;
2437
+ this.keyType = 'click';
2438
+ if (this.showItemOnClick) {
2439
+ this.setLISelected(cli);
2440
+ }
2441
+ this.closeMenu(culIdx + 1, e);
2442
+ if (this.showItemOnClick) {
2443
+ this.setLISelected(cli);
2446
2444
  }
2447
2445
  }
2448
- if (!this.isClosed) {
2449
- this.afterCloseMenu(e);
2450
- }
2451
- this.isClosed = false;
2452
2446
  }
2447
+ if (!this.isClosed) {
2448
+ this.afterCloseMenu(e);
2449
+ }
2450
+ this.isClosed = false;
2453
2451
  }
2454
2452
  }
2455
- else {
2456
- if (this.isMenu && trgt.tagName === 'DIV' && this.navIdx.length && closest(trgt, '.e-menu-vscroll')) {
2457
- const popupEle = closest(trgt, '.' + POPUP);
2458
- const cIdx = Array.prototype.indexOf.call(this.getPopups(), popupEle) + 1;
2459
- if (cIdx < this.navIdx.length) {
2460
- this.closeMenu(cIdx + 1, e);
2461
- if (popupEle) {
2462
- this.removeLIStateByClass([FOCUSED, SELECTED], [popupEle]);
2463
- }
2453
+ }
2454
+ else {
2455
+ if (this.isMenu && trgt.tagName === 'DIV' && this.navIdx.length && closest(trgt, '.e-menu-vscroll')) {
2456
+ const popupEle = closest(trgt, '.' + POPUP);
2457
+ const cIdx = Array.prototype.indexOf.call(this.getPopups(), popupEle) + 1;
2458
+ if (cIdx < this.navIdx.length) {
2459
+ this.closeMenu(cIdx + 1, e);
2460
+ if (popupEle) {
2461
+ this.removeLIStateByClass([FOCUSED, SELECTED], [popupEle]);
2464
2462
  }
2465
2463
  }
2466
- else if (this.isMenu && this.hamburgerMode && trgt.tagName === 'SPAN'
2467
- && trgt.classList.contains('e-menu-icon')) {
2468
- this.menuHeaderClickHandler(e);
2469
- }
2470
- else {
2471
- if (trgt.tagName !== 'UL' || (this.isMenu ? trgt.parentElement.classList.contains('e-menu-wrapper') &&
2472
- !this.getIndex(trgt.querySelector('.' + ITEM).id, true).length : trgt.parentElement !== wrapper)) {
2473
- if (!cli) {
2474
- this.removeLIStateByClass([SELECTED], [wrapper]);
2475
- }
2476
- if (!cli || !cli.querySelector('.' + CARET)) {
2477
- this.closeMenu(null, e);
2478
- }
2464
+ }
2465
+ else if (this.isMenu && this.hamburgerMode && trgt.tagName === 'SPAN'
2466
+ && trgt.classList.contains('e-menu-icon')) {
2467
+ this.menuHeaderClickHandler(e);
2468
+ }
2469
+ else {
2470
+ if (trgt.tagName !== 'UL' || (this.isMenu ? trgt.parentElement.classList.contains('e-menu-wrapper') &&
2471
+ !this.getIndex(trgt.querySelector('.' + ITEM).id, true).length : trgt.parentElement !== wrapper)) {
2472
+ if (!cli) {
2473
+ this.removeLIStateByClass([SELECTED], [wrapper]);
2474
+ }
2475
+ if (!cli || !cli.querySelector('.' + CARET)) {
2476
+ this.closeMenu(null, e);
2479
2477
  }
2480
2478
  }
2481
2479
  }
@@ -2533,9 +2531,11 @@ let MenuBase = class MenuBase extends Component {
2533
2531
  li.classList.add(SELECTED);
2534
2532
  }
2535
2533
  getLIByClass(ul, classname) {
2536
- for (let i = 0, len = ul.children.length; i < len; i++) {
2537
- if (ul.children[i].classList.contains(classname)) {
2538
- return ul.children[i];
2534
+ if (ul) {
2535
+ for (let i = 0, len = ul.children.length; i < len; i++) {
2536
+ if (ul.children[i].classList.contains(classname)) {
2537
+ return ul.children[i];
2538
+ }
2539
2539
  }
2540
2540
  }
2541
2541
  return null;
@@ -2819,9 +2819,9 @@ let MenuBase = class MenuBase extends Component {
2819
2819
  }
2820
2820
  }
2821
2821
  if (!this.isMenu) {
2822
- EventHandler.remove(this.targetElement, 'mousewheel DOMMouseScroll', this.scrollHandler);
2822
+ EventHandler.remove(this.targetElement, 'scroll', this.scrollHandler);
2823
2823
  for (const parent of getScrollableParent(this.targetElement)) {
2824
- EventHandler.remove(parent, 'mousewheel DOMMouseScroll', this.scrollHandler);
2824
+ EventHandler.remove(parent, 'scroll', this.scrollHandler);
2825
2825
  }
2826
2826
  }
2827
2827
  }
@@ -3289,7 +3289,7 @@ __decorate$2([
3289
3289
  Property(false)
3290
3290
  ], MenuBase.prototype, "enableScrolling", void 0);
3291
3291
  __decorate$2([
3292
- Property(false)
3292
+ Property(true)
3293
3293
  ], MenuBase.prototype, "enableHtmlSanitizer", void 0);
3294
3294
  __decorate$2([
3295
3295
  Complex({ itemId: 'id', text: 'text', parentId: 'parentId', iconCss: 'iconCss', url: 'url', separator: 'separator', children: 'items' }, FieldSettings)
@@ -3941,16 +3941,21 @@ let Toolbar = class Toolbar extends Component {
3941
3941
  popObj.enableRtl = false;
3942
3942
  popObj.position = { X: 'right', Y: 'top' };
3943
3943
  }
3944
- popObj.dataBind();
3945
- popObj.refreshPosition();
3946
- popObj.element.style.top = this.getElementOffsetY() + 'px';
3947
3944
  if (this.overflowMode === 'Extended') {
3948
3945
  popObj.element.style.minHeight = '0px';
3946
+ popObj.width = this.getToolbarPopupWidth(this.element);
3949
3947
  }
3948
+ popObj.dataBind();
3949
+ popObj.refreshPosition();
3950
+ popObj.element.style.top = this.getElementOffsetY() + 'px';
3950
3951
  popupNav.classList.add(CLS_TBARNAVACT);
3951
3952
  popObj.show({ name: 'FadeIn', duration: 100 });
3952
3953
  }
3953
3954
  }
3955
+ getToolbarPopupWidth(ele) {
3956
+ var eleStyles = window.getComputedStyle(ele);
3957
+ return parseFloat(eleStyles.width) + ((parseFloat(eleStyles.borderRightWidth)) * 2);
3958
+ }
3954
3959
  /**
3955
3960
  * To Initialize the control rendering
3956
3961
  *
@@ -4342,13 +4347,15 @@ let Toolbar = class Toolbar extends Component {
4342
4347
  position: this.enableRtl ? { X: 'left', Y: 'top' } : { X: 'right', Y: 'top' }
4343
4348
  });
4344
4349
  if (this.overflowMode === 'Extended') {
4345
- popup.width = parseFloat(eleStyles.width) + ((parseFloat(eleStyles.borderRightWidth)) * 2);
4350
+ popup.width = this.getToolbarPopupWidth(this.element);
4346
4351
  popup.offsetX = 0;
4347
4352
  }
4348
4353
  popup.appendTo(ele);
4349
4354
  EventHandler.add(document, 'scroll', this.docEvent.bind(this));
4350
4355
  EventHandler.add(document, 'click ', this.docEvent.bind(this));
4351
- popup.element.style.maxHeight = popup.element.offsetHeight + 'px';
4356
+ if (this.overflowMode !== 'Extended') {
4357
+ popup.element.style.maxHeight = popup.element.offsetHeight + 'px';
4358
+ }
4352
4359
  if (this.isVertical) {
4353
4360
  popup.element.style.visibility = 'hidden';
4354
4361
  }
@@ -4363,7 +4370,7 @@ let Toolbar = class Toolbar extends Component {
4363
4370
  }
4364
4371
  this.popObj = popup;
4365
4372
  }
4366
- else {
4373
+ else if (this.overflowMode !== 'Extended') {
4367
4374
  const popupEle = this.popObj.element;
4368
4375
  setStyleAttribute(popupEle, { maxHeight: '', display: 'block' });
4369
4376
  setStyleAttribute(popupEle, { maxHeight: popupEle.offsetHeight + 'px', display: '' });
@@ -4390,11 +4397,13 @@ let Toolbar = class Toolbar extends Component {
4390
4397
  const toolEle = this.popObj.element.parentElement;
4391
4398
  const popupNav = toolEle.querySelector('.' + CLS_TBARNAV);
4392
4399
  popupNav.setAttribute('aria-expanded', 'true');
4393
- setStyleAttribute(popObj.element, { height: 'auto', maxHeight: '' });
4394
- popObj.element.style.maxHeight = popObj.element.offsetHeight + 'px';
4395
4400
  if (this.overflowMode === 'Extended') {
4396
4401
  popObj.element.style.minHeight = '';
4397
4402
  }
4403
+ else {
4404
+ setStyleAttribute(popObj.element, { height: 'auto', maxHeight: '' });
4405
+ popObj.element.style.maxHeight = popObj.element.offsetHeight + 'px';
4406
+ }
4398
4407
  const popupElePos = popupEle.offsetTop + popupEle.offsetHeight + calculatePosition(toolEle).top;
4399
4408
  const popIcon = popupNav.firstElementChild;
4400
4409
  popupNav.classList.add(CLS_TBARNAVACT);
@@ -4411,9 +4420,11 @@ let Toolbar = class Toolbar extends Component {
4411
4420
  break;
4412
4421
  }
4413
4422
  }
4414
- setStyleAttribute(popObj.element, { maxHeight: overflowHeight + 'px' });
4423
+ if (this.overflowMode !== 'Extended') {
4424
+ setStyleAttribute(popObj.element, { maxHeight: overflowHeight + 'px' });
4425
+ }
4415
4426
  }
4416
- else if (this.isVertical) {
4427
+ else if (this.isVertical && this.overflowMode !== 'Extended') {
4417
4428
  const tbEleData = this.element.getBoundingClientRect();
4418
4429
  setStyleAttribute(popObj.element, { maxHeight: (tbEleData.top + this.element.offsetHeight) + 'px', bottom: 0, visibility: '' });
4419
4430
  }
@@ -5285,13 +5296,25 @@ let Toolbar = class Toolbar extends Component {
5285
5296
  this.activeEle.focus();
5286
5297
  }
5287
5298
  activeEleRemove(curEle) {
5299
+ let previousEle = this.element.querySelector('.' + CLS_ITEM + ':not(.' + CLS_DISABLE$2 + ' ):not(.' + CLS_SEPARATOR + ' ):not(.' + CLS_HIDDEN + ' )');
5288
5300
  if (!isNullOrUndefined(this.activeEle)) {
5289
5301
  this.activeEle.setAttribute('tabindex', this.getDataTabindex(this.activeEle));
5302
+ if (previousEle) {
5303
+ previousEle.removeAttribute('tabindex');
5304
+ }
5305
+ previousEle = this.activeEle;
5290
5306
  }
5291
5307
  this.activeEle = curEle;
5292
5308
  if (this.getDataTabindex(this.activeEle) === '-1') {
5293
5309
  if (isNullOrUndefined(this.trgtEle) && !curEle.parentElement.classList.contains(CLS_TEMPLATE)) {
5294
- this.updateTabIndex('-1');
5310
+ if (!isNullOrUndefined(this.element.querySelector('.e-hor-nav')) && this.element.querySelector('.e-hor-nav').classList.contains('e-nav-active')) {
5311
+ this.updateTabIndex('0');
5312
+ this.getDataTabindex(previousEle) === '-1' ? previousEle.setAttribute('tabindex', '0') :
5313
+ previousEle.setAttribute('tabindex', this.getDataTabindex(previousEle));
5314
+ }
5315
+ else {
5316
+ this.updateTabIndex('-1');
5317
+ }
5295
5318
  curEle.removeAttribute('tabindex');
5296
5319
  }
5297
5320
  else {
@@ -5355,8 +5378,7 @@ let Toolbar = class Toolbar extends Component {
5355
5378
  }
5356
5379
  if (this.popObj) {
5357
5380
  if (this.overflowMode === 'Extended') {
5358
- const eleStyles = window.getComputedStyle(this.element);
5359
- this.popObj.width = parseFloat(eleStyles.width) + ((parseFloat(eleStyles.borderRightWidth)) * 2);
5381
+ this.popObj.width = this.getToolbarPopupWidth(this.element);
5360
5382
  }
5361
5383
  if (this.tbarAlign) {
5362
5384
  this.removePositioning();
@@ -6245,7 +6267,7 @@ let Accordion = class Accordion extends Component {
6245
6267
  }
6246
6268
  catch (e) {
6247
6269
  if (typeof (value) === 'string') {
6248
- ele.innerHTML = SanitizeHtmlHelper.sanitize(value);
6270
+ ele.innerHTML = this.enableHtmlSanitizer ? SanitizeHtmlHelper.sanitize(value) : value;
6249
6271
  }
6250
6272
  else if (value instanceof (HTMLElement)) {
6251
6273
  ele.appendChild(value);
@@ -6283,7 +6305,7 @@ let Accordion = class Accordion extends Component {
6283
6305
  });
6284
6306
  }
6285
6307
  else if (ele.childElementCount === 0) {
6286
- ele.innerHTML = SanitizeHtmlHelper.sanitize(value);
6308
+ ele.innerHTML = this.enableHtmlSanitizer ? SanitizeHtmlHelper.sanitize(value) : value;
6287
6309
  }
6288
6310
  if (!isNullOrUndefined(temString)) {
6289
6311
  if (this.templateEle.indexOf(value) === -1) {
@@ -6311,11 +6333,11 @@ let Accordion = class Accordion extends Component {
6311
6333
  itemcnt.appendChild(ctn);
6312
6334
  }
6313
6335
  else {
6314
- if (this.enableHtmlSanitizer && typeof (this.items[parseInt(index.toString(), 10)].content)) {
6315
- this.items[parseInt(index.toString(), 10)].content =
6316
- SanitizeHtmlHelper.sanitize(this.items[parseInt(index.toString(), 10)].content);
6336
+ let content = this.items[parseInt(index.toString(), 10)].content;
6337
+ if (this.enableHtmlSanitizer && typeof (content) === 'string') {
6338
+ content = SanitizeHtmlHelper.sanitize(content);
6317
6339
  }
6318
- itemcnt.appendChild(this.fetchElement(ctn, this.items[parseInt(index.toString(), 10)].content, index));
6340
+ itemcnt.appendChild(this.fetchElement(ctn, content, index));
6319
6341
  }
6320
6342
  return itemcnt;
6321
6343
  }
@@ -6964,7 +6986,7 @@ __decorate$4([
6964
6986
  Property('Multiple')
6965
6987
  ], Accordion.prototype, "expandMode", void 0);
6966
6988
  __decorate$4([
6967
- Property(false)
6989
+ Property(true)
6968
6990
  ], Accordion.prototype, "enableHtmlSanitizer", void 0);
6969
6991
  __decorate$4([
6970
6992
  Complex({}, AccordionAnimationSettings)
@@ -7364,7 +7386,7 @@ __decorate$6([
7364
7386
  Property('Menu')
7365
7387
  ], Menu.prototype, "title", void 0);
7366
7388
  __decorate$6([
7367
- Property(false)
7389
+ Property(true)
7368
7390
  ], Menu.prototype, "enableHtmlSanitizer", void 0);
7369
7391
  __decorate$6([
7370
7392
  Complex({ itemId: 'id', text: 'text', parentId: 'parentId', iconCss: 'iconCss', url: 'url', separator: 'separator', children: 'items' }, FieldSettings)
@@ -8130,10 +8152,10 @@ let Tab = class Tab extends Component {
8130
8152
  if (typeof val === 'string') {
8131
8153
  val = val.trim();
8132
8154
  if (this.isVue) {
8133
- templateFn = compile(SanitizeHtmlHelper.sanitize(val));
8155
+ templateFn = compile(this.enableHtmlSanitizer ? SanitizeHtmlHelper.sanitize(val) : val);
8134
8156
  }
8135
8157
  else {
8136
- ele.innerHTML = SanitizeHtmlHelper.sanitize(val);
8158
+ ele.innerHTML = this.enableHtmlSanitizer ? SanitizeHtmlHelper.sanitize(val) : val;
8137
8159
  }
8138
8160
  }
8139
8161
  else {
@@ -8333,7 +8355,7 @@ let Tab = class Tab extends Component {
8333
8355
  ele.removeChild(ele.firstChild);
8334
8356
  }
8335
8357
  }
8336
- if (this.isReact) {
8358
+ if (this.isReact || this.isAngular || this.isVue) {
8337
8359
  this.clearTemplate(['content']);
8338
8360
  }
8339
8361
  this.templateEle = [];
@@ -8505,7 +8527,7 @@ let Tab = class Tab extends Component {
8505
8527
  const tbPop = select('.e-popup.e-toolbar-pop', this.hdrEle);
8506
8528
  if (tbPop && tbPop.classList.contains('e-popup-close')) {
8507
8529
  const tbPopObj = (tbPop && tbPop.ej2_instances[0]);
8508
- tbPopObj.position.X = (this.headerPlacement === 'Left') ? 'left' : 'right';
8530
+ tbPopObj.position.X = (this.headerPlacement === 'Left' || this.element.classList.contains(CLS_RTL$4)) ? 'left' : 'right';
8509
8531
  tbPopObj.dataBind();
8510
8532
  tbPopObj.show(config);
8511
8533
  }
@@ -9699,7 +9721,7 @@ __decorate$7([
9699
9721
  Property(false)
9700
9722
  ], Tab.prototype, "enablePersistence", void 0);
9701
9723
  __decorate$7([
9702
- Property(false)
9724
+ Property(true)
9703
9725
  ], Tab.prototype, "enableHtmlSanitizer", void 0);
9704
9726
  __decorate$7([
9705
9727
  Property(false)
@@ -9927,7 +9949,6 @@ let TreeView = TreeView_1 = class TreeView extends Component {
9927
9949
  this.preventExpand = false;
9928
9950
  this.checkedElement = [];
9929
9951
  this.disableNode = [];
9930
- // eslint-disable-next-line
9931
9952
  this.validArr = [];
9932
9953
  this.validNodes = [];
9933
9954
  this.expandChildren = [];
@@ -10102,7 +10123,6 @@ let TreeView = TreeView_1 = class TreeView extends Component {
10102
10123
  this.element.setAttribute('aria-multiselectable', 'false');
10103
10124
  }
10104
10125
  }
10105
- // eslint-disable-next-line
10106
10126
  templateComplier(template) {
10107
10127
  if (template) {
10108
10128
  this.hasTemplate = true;
@@ -10126,7 +10146,6 @@ let TreeView = TreeView_1 = class TreeView extends Component {
10126
10146
  setDataBinding(changeDataSource) {
10127
10147
  this.treeList.push('false');
10128
10148
  if (this.fields.dataSource instanceof DataManager) {
10129
- /* eslint-disable */
10130
10149
  this.isOffline = this.fields.dataSource.dataSource.offline;
10131
10150
  if (this.fields.dataSource.ready) {
10132
10151
  this.fields.dataSource.ready.then((e) => {
@@ -11839,7 +11858,7 @@ let TreeView = TreeView_1 = class TreeView extends Component {
11839
11858
  this.expandOnType = (this.expandOn === 'Auto') ? (Browser.isDevice ? 'Click' : 'DblClick') : this.expandOn;
11840
11859
  }
11841
11860
  expandHandler(e) {
11842
- let target = e.originalEvent.target;
11861
+ let target = Browser.isDevice && !Browser.isIos ? document.elementFromPoint(e.originalEvent.changedTouches[0].clientX, e.originalEvent.changedTouches[0].clientY) : e.originalEvent.target;
11843
11862
  if (!target || target.classList.contains(INPUT) || target.classList.contains(ROOT) ||
11844
11863
  target.classList.contains(PARENTITEM) || target.classList.contains(LISTITEM) ||
11845
11864
  target.classList.contains(ICON) || this.showCheckBox && closest(target, '.' + CHECKBOXWRAP)) {
@@ -12391,11 +12410,17 @@ let TreeView = TreeView_1 = class TreeView extends Component {
12391
12410
  focusIn() {
12392
12411
  if (!this.mouseDownStatus) {
12393
12412
  let focusedElement = this.getFocusedNode();
12394
- focusedElement.setAttribute("tabindex", "0");
12395
- addClass([focusedElement], FOCUS);
12396
- EventHandler.add(focusedElement, 'blur', this.focusOut, this);
12413
+ if (focusedElement.classList.contains('e-disable')) {
12414
+ focusedElement.setAttribute("tabindex", "-1");
12415
+ this.navigateNode(true);
12416
+ }
12417
+ else {
12418
+ focusedElement.setAttribute("tabindex", "0");
12419
+ addClass([focusedElement], FOCUS);
12420
+ EventHandler.add(focusedElement, 'blur', this.focusOut, this);
12421
+ }
12422
+ this.mouseDownStatus = false;
12397
12423
  }
12398
- this.mouseDownStatus = false;
12399
12424
  }
12400
12425
  focusOut(event) {
12401
12426
  let focusedElement = this.getFocusedNode();
@@ -12405,6 +12430,9 @@ let TreeView = TreeView_1 = class TreeView extends Component {
12405
12430
  }
12406
12431
  }
12407
12432
  onMouseOver(e) {
12433
+ if (Browser.isDevice) {
12434
+ return;
12435
+ }
12408
12436
  let target = e.target;
12409
12437
  let classList$$1 = target.classList;
12410
12438
  let currentLi = closest(target, '.' + LISTITEM);
@@ -14845,7 +14873,7 @@ __decorate$8([
14845
14873
  Property(null)
14846
14874
  ], TreeView.prototype, "dragArea", void 0);
14847
14875
  __decorate$8([
14848
- Property(false)
14876
+ Property(true)
14849
14877
  ], TreeView.prototype, "enableHtmlSanitizer", void 0);
14850
14878
  __decorate$8([
14851
14879
  Property(false)
@@ -16104,8 +16132,9 @@ let Breadcrumb = class Breadcrumb extends Component {
16104
16132
  }
16105
16133
  beforeItemRenderChanges(prevItem, currItem, elem, isRightIcon) {
16106
16134
  const wrapElem = elem.querySelector('.e-anchor-wrap');
16107
- if (wrapElem) {
16135
+ if (wrapElem && wrapElem.querySelector('.e-home')) {
16108
16136
  wrapElem.parentElement.setAttribute('aria-label', 'home');
16137
+ wrapElem.parentElement.setAttribute('role', 'link');
16109
16138
  }
16110
16139
  if (currItem.text !== prevItem.text) {
16111
16140
  wrapElem.childNodes.forEach((child) => {
@@ -18866,8 +18895,7 @@ let Stepper = class Stepper extends StepperBase {
18866
18895
  const selectedEle = this.stepperItemElements[parseInt(this.activeStep.toString(), 10)].firstChild;
18867
18896
  let value = this.activeStep === 0 ? 0 : (selectedEle.offsetLeft - progressPos.offsetLeft + (selectedEle.offsetWidth / 2)) / progressPos.offsetWidth * 100;
18868
18897
  if (this.element.classList.contains(RTL$3)) {
18869
- const elementPos = this.stepperItemElements[0].firstChild;
18870
- value = ((progressPos.offsetWidth - selectedEle.offsetLeft) + Math.abs((elementPos.offsetLeft + elementPos.offsetWidth) - this.stepperItemList.offsetWidth)) / progressPos.offsetWidth * 100;
18898
+ value = (progressPos.getBoundingClientRect().right - selectedEle.getBoundingClientRect().right + (selectedEle.offsetWidth / 2)) / progressPos.offsetWidth * 100;
18871
18899
  this.progressbar.style.setProperty(PROGRESSVALUE$1, (value) + '%');
18872
18900
  }
18873
18901
  else {