@syncfusion/ej2-navigations 21.1.39 → 21.2.4

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 (50) hide show
  1. package/CHANGELOG.md +32 -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 +71 -53
  6. package/dist/es6/ej2-navigations.es2015.js.map +1 -1
  7. package/dist/es6/ej2-navigations.es5.js +71 -53
  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 +11 -11
  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 +27 -15
  16. package/src/common/v-scroll.js +1 -1
  17. package/src/tab/tab.d.ts +1 -0
  18. package/src/tab/tab.js +37 -32
  19. package/src/treeview/treeview.js +5 -5
  20. package/styles/bootstrap-dark.css +35 -16
  21. package/styles/bootstrap.css +35 -16
  22. package/styles/bootstrap4.css +35 -16
  23. package/styles/bootstrap5-dark.css +35 -16
  24. package/styles/bootstrap5.css +35 -16
  25. package/styles/fabric-dark.css +35 -16
  26. package/styles/fabric.css +35 -16
  27. package/styles/fluent-dark.css +35 -16
  28. package/styles/fluent.css +35 -16
  29. package/styles/highcontrast-light.css +35 -16
  30. package/styles/highcontrast.css +37 -17
  31. package/styles/material-dark.css +35 -16
  32. package/styles/material.css +35 -16
  33. package/styles/tailwind-dark.css +35 -16
  34. package/styles/tailwind.css +35 -16
  35. package/styles/treeview/_theme.scss +20 -10
  36. package/styles/treeview/bootstrap-dark.css +35 -16
  37. package/styles/treeview/bootstrap.css +35 -16
  38. package/styles/treeview/bootstrap4.css +35 -16
  39. package/styles/treeview/bootstrap5-dark.css +35 -16
  40. package/styles/treeview/bootstrap5.css +35 -16
  41. package/styles/treeview/fabric-dark.css +35 -16
  42. package/styles/treeview/fabric.css +35 -16
  43. package/styles/treeview/fluent-dark.css +35 -16
  44. package/styles/treeview/fluent.css +35 -16
  45. package/styles/treeview/highcontrast-light.css +35 -16
  46. package/styles/treeview/highcontrast.css +37 -17
  47. package/styles/treeview/material-dark.css +35 -16
  48. package/styles/treeview/material.css +35 -16
  49. package/styles/treeview/tailwind-dark.css +35 -16
  50. 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) => {
@@ -1586,7 +1587,9 @@ let MenuBase = class MenuBase extends Component {
1586
1587
  this.navIdx.pop();
1587
1588
  if (!this.isMenu) {
1588
1589
  EventHandler.remove(ul, 'keydown', this.keyHandler);
1589
- this.keyType = '';
1590
+ if (this.keyType === 'right') {
1591
+ this.keyType = '';
1592
+ }
1590
1593
  }
1591
1594
  }
1592
1595
  this.updateReactTemplate();
@@ -1807,9 +1810,29 @@ let MenuBase = class MenuBase extends Component {
1807
1810
  else {
1808
1811
  this.uList = this.element;
1809
1812
  this.uList.style.zIndex = getZindexPartial(target ? target : this.element).toString();
1810
- this.triggerBeforeOpen(li, this.uList, item, e, top, left, 'none');
1813
+ if (isNullOrUndefined(e)) {
1814
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1815
+ const ev = document.createEvent('MouseEvents');
1816
+ ev.initEvent("click", true, false);
1817
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1818
+ let targetEvent = this.copyObject(ev, {});
1819
+ targetEvent.target = targetEvent.srcElement = target;
1820
+ targetEvent.currentTarget = target;
1821
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1822
+ this.triggerBeforeOpen(li, this.uList, item, targetEvent, top, left, 'none');
1823
+ }
1824
+ else {
1825
+ this.triggerBeforeOpen(li, this.uList, item, e, top, left, 'none');
1826
+ }
1811
1827
  }
1812
1828
  }
1829
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1830
+ copyObject(source, destination) {
1831
+ for (const prop in source) {
1832
+ destination[`${prop}`] = source[`${prop}`];
1833
+ }
1834
+ return destination;
1835
+ }
1813
1836
  calculateIndentSize(ul, li) {
1814
1837
  const liStyle = getComputedStyle(li);
1815
1838
  let liIndent = parseInt(liStyle.textIndent, 10);
@@ -2950,7 +2973,7 @@ let MenuBase = class MenuBase extends Component {
2950
2973
  }
2951
2974
  idx = navIdx.pop();
2952
2975
  ul = this.getUlByNavIdx(navIdx.length);
2953
- if (ul) {
2976
+ if (ul && !isNullOrUndefined(idx)) {
2954
2977
  if (enable) {
2955
2978
  if (this.isMenu) {
2956
2979
  ul.children[idx].classList.remove(disabled);
@@ -3012,20 +3035,10 @@ let MenuBase = class MenuBase extends Component {
3012
3035
  ul = this.getUlByNavIdx(navIdx.length);
3013
3036
  if (ul) {
3014
3037
  if (ishide) {
3015
- if (Browser.isDevice && !ul.classList.contains('e-contextmenu')) {
3016
- ul.children[index + 1].classList.add(HIDE);
3017
- }
3018
- else {
3019
- ul.children[index].classList.add(HIDE);
3020
- }
3038
+ ul.children[index].classList.add(HIDE);
3021
3039
  }
3022
3040
  else {
3023
- if (Browser.isDevice && !ul.classList.contains('e-contextmenu')) {
3024
- ul.children[index + 1].classList.remove(HIDE);
3025
- }
3026
- else {
3027
- ul.children[index].classList.remove(HIDE);
3028
- }
3041
+ ul.children[index].classList.remove(HIDE);
3029
3042
  }
3030
3043
  }
3031
3044
  }
@@ -7543,12 +7556,9 @@ let Tab = class Tab extends Component {
7543
7556
  const count = this.hdrEle.children.length;
7544
7557
  const hdrItems = [];
7545
7558
  for (let i = 0; i < count; i++) {
7546
- hdrItems.push(this.hdrEle.children.item(i).innerHTML);
7559
+ hdrItems.push(this.hdrEle.children.item(i));
7547
7560
  }
7548
7561
  if (count > 0) {
7549
- while (this.hdrEle.firstElementChild) {
7550
- detach(this.hdrEle.firstElementChild);
7551
- }
7552
7562
  const tabItems = this.createElement('div', { className: CLS_ITEMS$1 });
7553
7563
  this.hdrEle.appendChild(tabItems);
7554
7564
  hdrItems.forEach((item, index) => {
@@ -7557,7 +7567,7 @@ let Tab = class Tab extends Component {
7557
7567
  className: CLS_ITEM$2, id: CLS_ITEM$2 + this.tabId + '_' + index
7558
7568
  };
7559
7569
  const txt = this.createElement('span', {
7560
- className: CLS_TEXT, innerHTML: item, attrs: { 'role': 'presentation' }
7570
+ className: CLS_TEXT, attrs: { 'role': 'presentation' }
7561
7571
  }).outerHTML;
7562
7572
  const cont = this.createElement('div', {
7563
7573
  className: CLS_TEXT_WRAP, innerHTML: txt + this.btnCls.outerHTML
@@ -7566,6 +7576,7 @@ let Tab = class Tab extends Component {
7566
7576
  className: CLS_WRAP, innerHTML: cont,
7567
7577
  attrs: { role: 'tab', tabIndex: '-1', 'aria-selected': 'false', 'aria-controls': CLS_CONTENT$1 + this.tabId + '_' + index, 'aria-disabled': 'false' }
7568
7578
  });
7579
+ wrap.querySelector('.' + CLS_TEXT).appendChild(item);
7569
7580
  tabItems.appendChild(this.createElement('div', attr));
7570
7581
  selectAll('.' + CLS_ITEM$2, tabItems)[index].appendChild(wrap);
7571
7582
  });
@@ -8559,6 +8570,9 @@ let Tab = class Tab extends Component {
8559
8570
  const icon = (isNullOrUndefined(this.items[index].header) ||
8560
8571
  isNullOrUndefined(this.items[index].header.iconCss)) ? '' : this.items[index].header.iconCss;
8561
8572
  const textVal = this.items[index].headerTemplate || this.items[index].header.text;
8573
+ if (properties[j] === 'headerTemplate') {
8574
+ this.clearTabTemplate(hdrItem, properties[j], CLS_TB_ITEM);
8575
+ }
8562
8576
  if ((textVal === '') && (icon === '')) {
8563
8577
  this.removeTab(index);
8564
8578
  }
@@ -8590,7 +8604,8 @@ let Tab = class Tab extends Component {
8590
8604
  document.body.appendChild(this.element.querySelector(oldVal)).style.display = 'none';
8591
8605
  cntItem.innerHTML = newVal;
8592
8606
  }
8593
- else if (this.isReact) {
8607
+ else if (this.isAngular || this.isReact) {
8608
+ this.clearTabTemplate(cntItem, properties[j], CLS_ITEM$2);
8594
8609
  cntItem.innerHTML = '';
8595
8610
  this.templateCompile(cntItem, newVal, index);
8596
8611
  }
@@ -8641,6 +8656,30 @@ let Tab = class Tab extends Component {
8641
8656
  }
8642
8657
  }
8643
8658
  }
8659
+ clearTabTemplate(templateEle, templateName, className) {
8660
+ if (this.registeredTemplate && this.registeredTemplate[templateName]) {
8661
+ const registeredTemplates = this.registeredTemplate;
8662
+ for (let index = 0; index < registeredTemplates[templateName].length; index++) {
8663
+ const registeredItem = registeredTemplates[templateName][index].rootNodes[0];
8664
+ const closestItem = closest(registeredItem, '.' + className);
8665
+ if (!isNullOrUndefined(closestItem) && closestItem === templateEle) {
8666
+ this.clearTemplate([templateName], [registeredTemplates[templateName][index]]);
8667
+ break;
8668
+ }
8669
+ }
8670
+ }
8671
+ else if (this.portals && this.portals.length > 0) {
8672
+ const portals = this.portals;
8673
+ for (let index = 0; index < portals.length; index++) {
8674
+ const portalItem = portals[index];
8675
+ const closestItem = closest(portalItem.containerInfo, '.' + className);
8676
+ if (!isNullOrUndefined(closestItem) && closestItem === templateEle) {
8677
+ this.clearTemplate([templateName], index);
8678
+ break;
8679
+ }
8680
+ }
8681
+ }
8682
+ }
8644
8683
  initializeDrag(target) {
8645
8684
  let dragObj = new Draggable(target, {
8646
8685
  dragArea: this.dragArea,
@@ -8984,6 +9023,10 @@ let Tab = class Tab extends Component {
8984
9023
  const removeArgs = { removedItem: trg, removedIndex: index, cancel: false };
8985
9024
  this.trigger('removing', removeArgs, (tabRemovingArgs) => {
8986
9025
  if (!tabRemovingArgs.cancel) {
9026
+ const header = select('#' + CLS_ITEM$2 + this.tabId + '_' + this.extIndex(trg.id), select('.' + CLS_TB_ITEMS, this.element));
9027
+ if (!isNullOrUndefined(header)) {
9028
+ this.clearTabTemplate(header, 'headerTemplate', CLS_TB_ITEM);
9029
+ }
8987
9030
  this.tbObj.removeItems(index);
8988
9031
  if (this.allowDragAndDrop && (index !== Array.prototype.indexOf.call(this.itemIndexArray, trg.id))) {
8989
9032
  index = Array.prototype.indexOf.call(this.itemIndexArray, trg.id);
@@ -8994,32 +9037,7 @@ let Tab = class Tab extends Component {
8994
9037
  this.refreshActiveBorder();
8995
9038
  const cntTrg = select('#' + CLS_CONTENT$1 + this.tabId + '_' + this.extIndex(trg.id), select('.' + CLS_CONTENT$1, this.element));
8996
9039
  if (!isNullOrUndefined(cntTrg)) {
8997
- const registeredTemplate = this.registeredTemplate;
8998
- const portal = this.portals;
8999
- if (registeredTemplate && registeredTemplate.content) {
9000
- var templateToClear = [];
9001
- for (let i = 0; i < registeredTemplate.content.length; i++) {
9002
- let registeredItem = registeredTemplate.content[i].rootNodes[0];
9003
- let closestItem = closest(registeredItem, '.' + CLS_ITEM$2);
9004
- if (!isNullOrUndefined(registeredItem) && closestItem === cntTrg) {
9005
- templateToClear.push(registeredTemplate.content[i]);
9006
- break;
9007
- }
9008
- }
9009
- if (templateToClear.length > 0) {
9010
- this.clearTemplate(['content'], templateToClear);
9011
- }
9012
- }
9013
- /* else if (portal) {
9014
- for (var i = 0; i < portal.length; i++) {
9015
- var portalItem = portal[i];
9016
- var closestItem = closest(portalItem.containerInfo, '.' + CLS_ITEM);
9017
- if (!isNullOrUndefined(portalItem) && closestItem === cntTrg) {
9018
- this.clearTemplate(['content'], i);
9019
- break;
9020
- }
9021
- }
9022
- } */
9040
+ this.clearTabTemplate(cntTrg, 'content', CLS_ITEM$2);
9023
9041
  detach(cntTrg);
9024
9042
  }
9025
9043
  this.trigger('removed', tabRemovingArgs);
@@ -12130,10 +12148,10 @@ let TreeView = TreeView_1 = class TreeView extends Component {
12130
12148
  return endNode;
12131
12149
  }
12132
12150
  setFocus(preNode, nextNode) {
12133
- removeClass([preNode], [HOVER, FOCUS]);
12151
+ removeClass([preNode], FOCUS);
12134
12152
  preNode.setAttribute("tabindex", "-1");
12135
12153
  if (!nextNode.classList.contains('e-disable') && !nextNode.classList.contains(PREVENTSELECT)) {
12136
- addClass([nextNode], [HOVER, FOCUS]);
12154
+ addClass([nextNode], FOCUS);
12137
12155
  nextNode.setAttribute('tabindex', '0');
12138
12156
  nextNode.focus();
12139
12157
  EventHandler.add(nextNode, 'blur', this.focusOut, this);
@@ -12152,7 +12170,7 @@ let TreeView = TreeView_1 = class TreeView extends Component {
12152
12170
  if (!this.mouseDownStatus) {
12153
12171
  let focusedElement = this.getFocusedNode();
12154
12172
  focusedElement.setAttribute("tabindex", "0");
12155
- addClass([focusedElement], [HOVER, FOCUS]);
12173
+ addClass([focusedElement], FOCUS);
12156
12174
  EventHandler.add(focusedElement, 'blur', this.focusOut, this);
12157
12175
  }
12158
12176
  this.mouseDownStatus = false;
@@ -12160,7 +12178,7 @@ let TreeView = TreeView_1 = class TreeView extends Component {
12160
12178
  focusOut(event) {
12161
12179
  let focusedElement = this.getFocusedNode();
12162
12180
  if (event.target == focusedElement) {
12163
- removeClass([focusedElement], [HOVER, FOCUS]);
12181
+ removeClass([focusedElement], FOCUS);
12164
12182
  EventHandler.remove(focusedElement, 'blur', this.focusOut);
12165
12183
  }
12166
12184
  }
@@ -12370,7 +12388,7 @@ let TreeView = TreeView_1 = class TreeView extends Component {
12370
12388
  removeClass([liEle], EDITING);
12371
12389
  liEle.focus();
12372
12390
  EventHandler.add(liEle, 'blur', this.focusOut, this);
12373
- addClass([liEle], HOVER);
12391
+ addClass([liEle], FOCUS);
12374
12392
  }
12375
12393
  if (this.allowTextWrap) {
12376
12394
  this.calculateWrap(liEle);