@syncfusion/ej2-navigations 21.1.38 → 21.2.3

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 (86) hide show
  1. package/CHANGELOG.md +30 -0
  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 +68 -54
  6. package/dist/es6/ej2-navigations.es2015.js.map +1 -1
  7. package/dist/es6/ej2-navigations.es5.js +68 -54
  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 -15
  13. package/src/common/h-scroll.js +1 -0
  14. package/src/common/menu-base.d.ts +1 -0
  15. package/src/common/menu-base.js +26 -20
  16. package/src/common/v-scroll.js +1 -1
  17. package/src/tab/tab.d.ts +1 -0
  18. package/src/tab/tab.js +35 -28
  19. package/src/treeview/treeview.js +5 -5
  20. package/styles/bootstrap-dark.css +35 -26
  21. package/styles/bootstrap.css +35 -26
  22. package/styles/bootstrap4.css +35 -26
  23. package/styles/bootstrap5-dark.css +44 -35
  24. package/styles/bootstrap5.css +44 -35
  25. package/styles/context-menu/_bootstrap5-definition.scss +1 -1
  26. package/styles/context-menu/bootstrap5-dark.css +4 -4
  27. package/styles/context-menu/bootstrap5.css +4 -4
  28. package/styles/fabric-dark.css +35 -26
  29. package/styles/fabric.css +35 -26
  30. package/styles/fluent-dark.css +35 -26
  31. package/styles/fluent.css +35 -26
  32. package/styles/highcontrast-light.css +35 -26
  33. package/styles/highcontrast.css +37 -27
  34. package/styles/material-dark.css +35 -26
  35. package/styles/material.css +35 -26
  36. package/styles/menu/_bootstrap5-definition.scss +1 -1
  37. package/styles/menu/bootstrap5-dark.css +5 -5
  38. package/styles/menu/bootstrap5.css +5 -5
  39. package/styles/tab/_icons.scss +0 -8
  40. package/styles/tab/bootstrap-dark.css +0 -10
  41. package/styles/tab/bootstrap.css +0 -10
  42. package/styles/tab/bootstrap4.css +0 -10
  43. package/styles/tab/bootstrap5-dark.css +0 -10
  44. package/styles/tab/bootstrap5.css +0 -10
  45. package/styles/tab/fabric-dark.css +0 -10
  46. package/styles/tab/fabric.css +0 -10
  47. package/styles/tab/fluent-dark.css +0 -10
  48. package/styles/tab/fluent.css +0 -10
  49. package/styles/tab/highcontrast-light.css +0 -10
  50. package/styles/tab/highcontrast.css +0 -10
  51. package/styles/tab/icons/_bootstrap-dark.scss +0 -8
  52. package/styles/tab/icons/_bootstrap.scss +0 -8
  53. package/styles/tab/icons/_bootstrap4.scss +0 -12
  54. package/styles/tab/icons/_bootstrap5.scss +0 -12
  55. package/styles/tab/icons/_fabric-dark.scss +0 -8
  56. package/styles/tab/icons/_fabric.scss +0 -8
  57. package/styles/tab/icons/_fluent.scss +0 -8
  58. package/styles/tab/icons/_fusionnew.scss +0 -12
  59. package/styles/tab/icons/_highcontrast-light.scss +0 -12
  60. package/styles/tab/icons/_highcontrast.scss +0 -12
  61. package/styles/tab/icons/_material-dark.scss +0 -12
  62. package/styles/tab/icons/_material.scss +0 -12
  63. package/styles/tab/icons/_material3.scss +0 -12
  64. package/styles/tab/icons/_tailwind.scss +0 -12
  65. package/styles/tab/material-dark.css +0 -10
  66. package/styles/tab/material.css +0 -10
  67. package/styles/tab/tailwind-dark.css +0 -10
  68. package/styles/tab/tailwind.css +0 -10
  69. package/styles/tailwind-dark.css +35 -26
  70. package/styles/tailwind.css +35 -26
  71. package/styles/treeview/_theme.scss +20 -10
  72. package/styles/treeview/bootstrap-dark.css +35 -16
  73. package/styles/treeview/bootstrap.css +35 -16
  74. package/styles/treeview/bootstrap4.css +35 -16
  75. package/styles/treeview/bootstrap5-dark.css +35 -16
  76. package/styles/treeview/bootstrap5.css +35 -16
  77. package/styles/treeview/fabric-dark.css +35 -16
  78. package/styles/treeview/fabric.css +35 -16
  79. package/styles/treeview/fluent-dark.css +35 -16
  80. package/styles/treeview/fluent.css +35 -16
  81. package/styles/treeview/highcontrast-light.css +35 -16
  82. package/styles/treeview/highcontrast.css +37 -17
  83. package/styles/treeview/material-dark.css +35 -16
  84. package/styles/treeview/material.css +35 -16
  85. package/styles/treeview/tailwind-dark.css +35 -16
  86. package/styles/treeview/tailwind.css +35 -16
@@ -137,6 +137,7 @@ let HScroll = class HScroll extends Component {
137
137
  ele.style.display = '';
138
138
  ele.classList.remove(CLS_ROOT);
139
139
  ele.classList.remove(CLS_DEVICE);
140
+ ele.classList.remove(CLS_RTL);
140
141
  const nav = selectAll('.e-' + ele.id + '_nav.' + CLS_HSCROLLNAV, ele);
141
142
  const overlay = selectAll('.' + CLS_OVERLAY, ele);
142
143
  [].slice.call(overlay).forEach((ele) => {
@@ -609,7 +610,7 @@ let VScroll = class VScroll extends Component {
609
610
  destroy() {
610
611
  const el = this.element;
611
612
  el.style.display = '';
612
- removeClass([this.element], [CLS_ROOT$1, CLS_DEVICE$1]);
613
+ removeClass([this.element], [CLS_ROOT$1, CLS_DEVICE$1, CLS_RTL$1]);
613
614
  const navs = selectAll('.e-' + el.id + '_nav.' + CLS_VSCROLLNAV, el);
614
615
  const overlays = selectAll('.' + CLS_OVERLAY$1, el);
615
616
  [].slice.call(overlays).forEach((ele) => {
@@ -1283,9 +1284,9 @@ let MenuBase = class MenuBase extends Component {
1283
1284
  }
1284
1285
  this.targetElement = target;
1285
1286
  if (!this.isMenu) {
1286
- EventHandler.add(this.targetElement, 'scroll', this.scrollHandler, this);
1287
+ EventHandler.add(this.targetElement, 'mousewheel DOMMouseScroll', this.scrollHandler, this);
1287
1288
  for (const parent of getScrollableParent(this.targetElement)) {
1288
- EventHandler.add(parent, 'scroll', this.scrollHandler, this);
1289
+ EventHandler.add(parent, 'mousewheel DOMMouseScroll', this.scrollHandler, this);
1289
1290
  }
1290
1291
  }
1291
1292
  }
@@ -1325,6 +1326,13 @@ let MenuBase = class MenuBase extends Component {
1325
1326
  this.closeMenu(this.isMenu ? null : this.navIdx.length, e);
1326
1327
  }
1327
1328
  }
1329
+ keyHandler(e) {
1330
+ if (e.keyCode === 38 || e.keyCode === 40) {
1331
+ if (e.target && (e.target.classList.contains('e-contextmenu') || e.target.classList.contains('e-menu-item'))) {
1332
+ e.preventDefault();
1333
+ }
1334
+ }
1335
+ }
1328
1336
  keyBoardHandler(e) {
1329
1337
  let actionName = '';
1330
1338
  const trgt = e.target;
@@ -1577,6 +1585,12 @@ let MenuBase = class MenuBase extends Component {
1577
1585
  closeArgs = { element: ul, parentItem: item, items: items };
1578
1586
  this.trigger('onClose', closeArgs);
1579
1587
  this.navIdx.pop();
1588
+ if (!this.isMenu) {
1589
+ EventHandler.remove(ul, 'keydown', this.keyHandler);
1590
+ if (this.keyType === 'right') {
1591
+ this.keyType = '';
1592
+ }
1593
+ }
1580
1594
  }
1581
1595
  this.updateReactTemplate();
1582
1596
  let trgtliId;
@@ -2128,10 +2142,10 @@ let MenuBase = class MenuBase extends Component {
2128
2142
  if (!args.curData[args.fields[fields.id]]) {
2129
2143
  args.curData[args.fields[fields.id]] = getUniqueID('menuitem');
2130
2144
  }
2131
- args.curData.htmlAttributes = {
2132
- role: 'menuitem',
2133
- tabindex: '-1'
2134
- };
2145
+ if (isNullOrUndefined(args.curData.htmlAttributes)) {
2146
+ args.curData.htmlAttributes = {};
2147
+ }
2148
+ Object.assign(args.curData.htmlAttributes, { role: 'menuitem', tabindex: '-1' });
2135
2149
  if (this.isMenu && !args.curData[this.getField('separator', level)]) {
2136
2150
  args.curData.htmlAttributes['aria-label'] = args.curData[args.fields.text] ?
2137
2151
  args.curData[args.fields.text] : args.curData[args.fields.id];
@@ -2733,9 +2747,9 @@ let MenuBase = class MenuBase extends Component {
2733
2747
  }
2734
2748
  }
2735
2749
  if (!this.isMenu) {
2736
- EventHandler.remove(this.targetElement, 'scroll', this.scrollHandler);
2750
+ EventHandler.remove(this.targetElement, 'mousewheel DOMMouseScroll', this.scrollHandler);
2737
2751
  for (const parent of getScrollableParent(this.targetElement)) {
2738
- EventHandler.remove(parent, 'scroll', this.scrollHandler);
2752
+ EventHandler.remove(parent, 'mousewheel DOMMouseScroll', this.scrollHandler);
2739
2753
  }
2740
2754
  }
2741
2755
  }
@@ -2804,6 +2818,9 @@ let MenuBase = class MenuBase extends Component {
2804
2818
  element: ul, parentItem: item, items: item ? item.items : this.items
2805
2819
  };
2806
2820
  this.trigger('onOpen', eventArgs);
2821
+ if (!this.isMenu) {
2822
+ EventHandler.add(ul, 'keydown', this.keyHandler, this);
2823
+ }
2807
2824
  }
2808
2825
  end(ul, isMenuOpen) {
2809
2826
  if (isMenuOpen) {
@@ -2998,20 +3015,10 @@ let MenuBase = class MenuBase extends Component {
2998
3015
  ul = this.getUlByNavIdx(navIdx.length);
2999
3016
  if (ul) {
3000
3017
  if (ishide) {
3001
- if (Browser.isDevice && !ul.classList.contains('e-contextmenu')) {
3002
- ul.children[index + 1].classList.add(HIDE);
3003
- }
3004
- else {
3005
- ul.children[index].classList.add(HIDE);
3006
- }
3018
+ ul.children[index].classList.add(HIDE);
3007
3019
  }
3008
3020
  else {
3009
- if (Browser.isDevice && !ul.classList.contains('e-contextmenu')) {
3010
- ul.children[index + 1].classList.remove(HIDE);
3011
- }
3012
- else {
3013
- ul.children[index].classList.remove(HIDE);
3014
- }
3021
+ ul.children[index].classList.remove(HIDE);
3015
3022
  }
3016
3023
  }
3017
3024
  }
@@ -8381,7 +8388,7 @@ let Tab = class Tab extends Component {
8381
8388
  }
8382
8389
  else {
8383
8390
  this.isPopup = false;
8384
- if (!isNullOrUndefined(trgParent) && (trgIndex !== this.selectedItem || trgIndex !== this.prevIndex)) {
8391
+ if (!isNullOrUndefined(trgParent) && (trgIndex !== this.selectedItem)) {
8385
8392
  this.selectTab(trgIndex, args.originalEvent, true);
8386
8393
  }
8387
8394
  }
@@ -8545,6 +8552,9 @@ let Tab = class Tab extends Component {
8545
8552
  const icon = (isNullOrUndefined(this.items[index].header) ||
8546
8553
  isNullOrUndefined(this.items[index].header.iconCss)) ? '' : this.items[index].header.iconCss;
8547
8554
  const textVal = this.items[index].headerTemplate || this.items[index].header.text;
8555
+ if (properties[j] === 'headerTemplate') {
8556
+ this.clearTabTemplate(hdrItem, properties[j], CLS_TB_ITEM);
8557
+ }
8548
8558
  if ((textVal === '') && (icon === '')) {
8549
8559
  this.removeTab(index);
8550
8560
  }
@@ -8576,7 +8586,8 @@ let Tab = class Tab extends Component {
8576
8586
  document.body.appendChild(this.element.querySelector(oldVal)).style.display = 'none';
8577
8587
  cntItem.innerHTML = newVal;
8578
8588
  }
8579
- else if (this.isReact) {
8589
+ else if (this.isAngular || this.isReact) {
8590
+ this.clearTabTemplate(cntItem, properties[j], CLS_ITEM$2);
8580
8591
  cntItem.innerHTML = '';
8581
8592
  this.templateCompile(cntItem, newVal, index);
8582
8593
  }
@@ -8627,6 +8638,30 @@ let Tab = class Tab extends Component {
8627
8638
  }
8628
8639
  }
8629
8640
  }
8641
+ clearTabTemplate(templateEle, templateName, className) {
8642
+ if (this.registeredTemplate && this.registeredTemplate[templateName]) {
8643
+ const registeredTemplates = this.registeredTemplate;
8644
+ for (let index = 0; index < registeredTemplates[templateName].length; index++) {
8645
+ const registeredItem = registeredTemplates[templateName][index].rootNodes[0];
8646
+ const closestItem = closest(registeredItem, '.' + className);
8647
+ if (!isNullOrUndefined(closestItem) && closestItem === templateEle) {
8648
+ this.clearTemplate([templateName], [registeredTemplates[templateName][index]]);
8649
+ break;
8650
+ }
8651
+ }
8652
+ }
8653
+ else if (this.portals && this.portals.length > 0) {
8654
+ const portals = this.portals;
8655
+ for (let index = 0; index < portals.length; index++) {
8656
+ const portalItem = portals[index];
8657
+ const closestItem = closest(portalItem.containerInfo, '.' + className);
8658
+ if (!isNullOrUndefined(closestItem) && closestItem === templateEle) {
8659
+ this.clearTemplate([templateName], index);
8660
+ break;
8661
+ }
8662
+ }
8663
+ }
8664
+ }
8630
8665
  initializeDrag(target) {
8631
8666
  let dragObj = new Draggable(target, {
8632
8667
  dragArea: this.dragArea,
@@ -8970,6 +9005,10 @@ let Tab = class Tab extends Component {
8970
9005
  const removeArgs = { removedItem: trg, removedIndex: index, cancel: false };
8971
9006
  this.trigger('removing', removeArgs, (tabRemovingArgs) => {
8972
9007
  if (!tabRemovingArgs.cancel) {
9008
+ const header = select('#' + CLS_ITEM$2 + this.tabId + '_' + this.extIndex(trg.id), select('.' + CLS_TB_ITEMS, this.element));
9009
+ if (!isNullOrUndefined(header)) {
9010
+ this.clearTabTemplate(header, 'headerTemplate', CLS_TB_ITEM);
9011
+ }
8973
9012
  this.tbObj.removeItems(index);
8974
9013
  if (this.allowDragAndDrop && (index !== Array.prototype.indexOf.call(this.itemIndexArray, trg.id))) {
8975
9014
  index = Array.prototype.indexOf.call(this.itemIndexArray, trg.id);
@@ -8980,32 +9019,7 @@ let Tab = class Tab extends Component {
8980
9019
  this.refreshActiveBorder();
8981
9020
  const cntTrg = select('#' + CLS_CONTENT$1 + this.tabId + '_' + this.extIndex(trg.id), select('.' + CLS_CONTENT$1, this.element));
8982
9021
  if (!isNullOrUndefined(cntTrg)) {
8983
- const registeredTemplate = this.registeredTemplate;
8984
- const portal = this.portals;
8985
- if (registeredTemplate && registeredTemplate.content) {
8986
- var templateToClear = [];
8987
- for (let i = 0; i < registeredTemplate.content.length; i++) {
8988
- let registeredItem = registeredTemplate.content[i].rootNodes[0];
8989
- let closestItem = closest(registeredItem, '.' + CLS_ITEM$2);
8990
- if (!isNullOrUndefined(registeredItem) && closestItem === cntTrg) {
8991
- templateToClear.push(registeredTemplate.content[i]);
8992
- break;
8993
- }
8994
- }
8995
- if (templateToClear.length > 0) {
8996
- this.clearTemplate(['content'], templateToClear);
8997
- }
8998
- }
8999
- /* else if (portal) {
9000
- for (var i = 0; i < portal.length; i++) {
9001
- var portalItem = portal[i];
9002
- var closestItem = closest(portalItem.containerInfo, '.' + CLS_ITEM);
9003
- if (!isNullOrUndefined(portalItem) && closestItem === cntTrg) {
9004
- this.clearTemplate(['content'], i);
9005
- break;
9006
- }
9007
- }
9008
- } */
9022
+ this.clearTabTemplate(cntTrg, 'content', CLS_ITEM$2);
9009
9023
  detach(cntTrg);
9010
9024
  }
9011
9025
  this.trigger('removed', tabRemovingArgs);
@@ -12116,10 +12130,10 @@ let TreeView = TreeView_1 = class TreeView extends Component {
12116
12130
  return endNode;
12117
12131
  }
12118
12132
  setFocus(preNode, nextNode) {
12119
- removeClass([preNode], [HOVER, FOCUS]);
12133
+ removeClass([preNode], FOCUS);
12120
12134
  preNode.setAttribute("tabindex", "-1");
12121
12135
  if (!nextNode.classList.contains('e-disable') && !nextNode.classList.contains(PREVENTSELECT)) {
12122
- addClass([nextNode], [HOVER, FOCUS]);
12136
+ addClass([nextNode], FOCUS);
12123
12137
  nextNode.setAttribute('tabindex', '0');
12124
12138
  nextNode.focus();
12125
12139
  EventHandler.add(nextNode, 'blur', this.focusOut, this);
@@ -12138,7 +12152,7 @@ let TreeView = TreeView_1 = class TreeView extends Component {
12138
12152
  if (!this.mouseDownStatus) {
12139
12153
  let focusedElement = this.getFocusedNode();
12140
12154
  focusedElement.setAttribute("tabindex", "0");
12141
- addClass([focusedElement], [HOVER, FOCUS]);
12155
+ addClass([focusedElement], FOCUS);
12142
12156
  EventHandler.add(focusedElement, 'blur', this.focusOut, this);
12143
12157
  }
12144
12158
  this.mouseDownStatus = false;
@@ -12146,7 +12160,7 @@ let TreeView = TreeView_1 = class TreeView extends Component {
12146
12160
  focusOut(event) {
12147
12161
  let focusedElement = this.getFocusedNode();
12148
12162
  if (event.target == focusedElement) {
12149
- removeClass([focusedElement], [HOVER, FOCUS]);
12163
+ removeClass([focusedElement], FOCUS);
12150
12164
  EventHandler.remove(focusedElement, 'blur', this.focusOut);
12151
12165
  }
12152
12166
  }
@@ -12356,7 +12370,7 @@ let TreeView = TreeView_1 = class TreeView extends Component {
12356
12370
  removeClass([liEle], EDITING);
12357
12371
  liEle.focus();
12358
12372
  EventHandler.add(liEle, 'blur', this.focusOut, this);
12359
- addClass([liEle], HOVER);
12373
+ addClass([liEle], FOCUS);
12360
12374
  }
12361
12375
  if (this.allowTextWrap) {
12362
12376
  this.calculateWrap(liEle);