@syncfusion/ej2-navigations 33.2.6 → 33.2.8

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 (117) hide show
  1. package/dist/ej2-navigations.min.js +1 -10
  2. package/dist/ej2-navigations.umd.min.js +1 -10
  3. package/dist/ej2-navigations.umd.min.js.map +1 -1
  4. package/dist/es6/ej2-navigations.es2015.js +92 -13
  5. package/dist/es6/ej2-navigations.es2015.js.map +1 -1
  6. package/dist/es6/ej2-navigations.es5.js +92 -13
  7. package/dist/es6/ej2-navigations.es5.js.map +1 -1
  8. package/dist/global/ej2-navigations.min.js +1 -10
  9. package/dist/global/ej2-navigations.min.js.map +1 -1
  10. package/dist/global/index.d.ts +0 -9
  11. package/package.json +2 -2
  12. package/src/accordion/accordion.d.ts +3 -0
  13. package/src/accordion/accordion.js +34 -10
  14. package/src/sidebar/sidebar.d.ts +1 -0
  15. package/src/sidebar/sidebar.js +9 -1
  16. package/src/tab/tab.d.ts +1 -0
  17. package/src/tab/tab.js +36 -2
  18. package/src/toolbar/toolbar.js +7 -0
  19. package/src/treeview/treeview.js +6 -0
  20. package/styles/accordion/_layout.scss +10 -4
  21. package/styles/accordion/_material3-dark-definition.scss +1 -1
  22. package/styles/accordion/_material3-definition.scss +1 -1
  23. package/styles/accordion/_tailwind3-definition.scss +1 -1
  24. package/styles/accordion/_theme.scss +0 -4
  25. package/styles/accordion/bds.css +8 -8
  26. package/styles/accordion/bootstrap-dark.css +8 -8
  27. package/styles/accordion/bootstrap.css +8 -8
  28. package/styles/accordion/bootstrap4.css +8 -8
  29. package/styles/accordion/bootstrap5-dark.css +8 -8
  30. package/styles/accordion/bootstrap5.3.css +8 -8
  31. package/styles/accordion/bootstrap5.css +8 -8
  32. package/styles/accordion/fabric-dark.css +8 -8
  33. package/styles/accordion/fabric.css +8 -8
  34. package/styles/accordion/fluent-dark.css +8 -8
  35. package/styles/accordion/fluent.css +8 -8
  36. package/styles/accordion/fluent2.css +8 -16
  37. package/styles/accordion/highcontrast-light.css +8 -8
  38. package/styles/accordion/highcontrast.css +8 -8
  39. package/styles/accordion/material-dark.css +8 -8
  40. package/styles/accordion/material.css +8 -8
  41. package/styles/accordion/material3-dark.css +8 -8
  42. package/styles/accordion/material3.css +8 -8
  43. package/styles/accordion/tailwind-dark.css +8 -8
  44. package/styles/accordion/tailwind.css +8 -8
  45. package/styles/accordion/tailwind3.css +8 -16
  46. package/styles/bds-lite.css +10 -10
  47. package/styles/bds.css +10 -10
  48. package/styles/bootstrap-dark-lite.css +10 -10
  49. package/styles/bootstrap-dark.css +11 -11
  50. package/styles/bootstrap-lite.css +12 -12
  51. package/styles/bootstrap.css +13 -13
  52. package/styles/bootstrap4-lite.css +10 -10
  53. package/styles/bootstrap4.css +10 -10
  54. package/styles/bootstrap5-dark-lite.css +10 -10
  55. package/styles/bootstrap5-dark.css +10 -10
  56. package/styles/bootstrap5-lite.css +10 -10
  57. package/styles/bootstrap5.3-lite.css +10 -10
  58. package/styles/bootstrap5.3.css +10 -10
  59. package/styles/bootstrap5.css +10 -10
  60. package/styles/fabric-dark-lite.css +10 -10
  61. package/styles/fabric-dark.css +11 -11
  62. package/styles/fabric-lite.css +10 -10
  63. package/styles/fabric.css +11 -11
  64. package/styles/fluent-dark-lite.css +10 -10
  65. package/styles/fluent-dark.css +10 -10
  66. package/styles/fluent-lite.css +10 -10
  67. package/styles/fluent.css +10 -10
  68. package/styles/fluent2-lite.css +13 -21
  69. package/styles/fluent2.css +13 -21
  70. package/styles/highcontrast-light-lite.css +10 -10
  71. package/styles/highcontrast-light.css +11 -11
  72. package/styles/highcontrast-lite.css +12 -12
  73. package/styles/highcontrast.css +13 -13
  74. package/styles/material-dark-lite.css +11 -11
  75. package/styles/material-dark.css +12 -12
  76. package/styles/material-lite.css +11 -11
  77. package/styles/material.css +12 -12
  78. package/styles/material3-dark-lite.css +10 -10
  79. package/styles/material3-dark.css +10 -10
  80. package/styles/material3-lite.css +10 -10
  81. package/styles/material3.css +10 -10
  82. package/styles/tailwind-dark-lite.css +10 -10
  83. package/styles/tailwind-dark.css +10 -10
  84. package/styles/tailwind-lite.css +10 -10
  85. package/styles/tailwind.css +10 -10
  86. package/styles/tailwind3-lite.css +10 -18
  87. package/styles/tailwind3.css +10 -18
  88. package/styles/treeview/_bootstrap-dark-definition.scss +1 -1
  89. package/styles/treeview/_bootstrap-definition.scss +1 -1
  90. package/styles/treeview/_fabric-dark-definition.scss +1 -1
  91. package/styles/treeview/_fabric-definition.scss +1 -1
  92. package/styles/treeview/_highcontrast-definition.scss +1 -1
  93. package/styles/treeview/_highcontrast-light-definition.scss +1 -1
  94. package/styles/treeview/_material-dark-definition.scss +2 -2
  95. package/styles/treeview/_material-definition.scss +2 -2
  96. package/styles/treeview/_theme.scss +4 -4
  97. package/styles/treeview/bds.css +2 -2
  98. package/styles/treeview/bootstrap-dark.css +3 -3
  99. package/styles/treeview/bootstrap.css +5 -5
  100. package/styles/treeview/bootstrap4.css +2 -2
  101. package/styles/treeview/bootstrap5-dark.css +2 -2
  102. package/styles/treeview/bootstrap5.3.css +2 -2
  103. package/styles/treeview/bootstrap5.css +2 -2
  104. package/styles/treeview/fabric-dark.css +3 -3
  105. package/styles/treeview/fabric.css +3 -3
  106. package/styles/treeview/fluent-dark.css +2 -2
  107. package/styles/treeview/fluent.css +2 -2
  108. package/styles/treeview/fluent2.css +5 -5
  109. package/styles/treeview/highcontrast-light.css +3 -3
  110. package/styles/treeview/highcontrast.css +5 -5
  111. package/styles/treeview/material-dark.css +4 -4
  112. package/styles/treeview/material.css +4 -4
  113. package/styles/treeview/material3-dark.css +2 -2
  114. package/styles/treeview/material3.css +2 -2
  115. package/styles/treeview/tailwind-dark.css +2 -2
  116. package/styles/treeview/tailwind.css +2 -2
  117. package/styles/treeview/tailwind3.css +2 -2
@@ -5934,6 +5934,13 @@ let Toolbar = class Toolbar extends Component {
5934
5934
  if (this.isReact && this.items[parseInt(index.toString(), 10)].template) {
5935
5935
  this.clearToolbarTemplate(itemCol[parseInt(index.toString(), 10)]);
5936
5936
  }
5937
+ if (this.element.closest('.e-richtexteditor')) {
5938
+ const btnItem = itemCol[parseInt(index.toString(), 10)].querySelector('.e-control.e-btn');
5939
+ if (!isNullOrUndefined(btnItem) && !isNullOrUndefined(btnItem.ej2_instances[0]) &&
5940
+ !(btnItem.ej2_instances[0].isDestroyed)) {
5941
+ btnItem.ej2_instances[0].destroy();
5942
+ }
5943
+ }
5937
5944
  EventHandler.remove(itemCol[parseInt(index.toString(), 10)], 'click', this.itemClick);
5938
5945
  detach(itemCol[parseInt(index.toString(), 10)]);
5939
5946
  this.tbarEle.splice(index, 1);
@@ -6115,6 +6122,7 @@ const CLS_ACRDN_ROOT = 'e-acrdn-root';
6115
6122
  const CLS_ROOT$2 = 'e-accordion';
6116
6123
  const CLS_ITEM$1 = 'e-acrdn-item';
6117
6124
  const CLS_ITEMFOCUS = 'e-item-focus';
6125
+ const CLS_KEYBOARDFOCUS = 'e-focused';
6118
6126
  const CLS_ITEMHIDE = 'e-hide';
6119
6127
  const CLS_HEADER = 'e-acrdn-header';
6120
6128
  const CLS_HEADERICN = 'e-acrdn-header-icon';
@@ -6208,6 +6216,7 @@ let Accordion = class Accordion extends Component {
6208
6216
  */
6209
6217
  constructor(options, element) {
6210
6218
  super(options, element);
6219
+ this.isKeyboardNavigation = false;
6211
6220
  /**
6212
6221
  * Contains the keyboard configuration of the Accordion.
6213
6222
  */
@@ -6320,6 +6329,9 @@ let Accordion = class Accordion extends Component {
6320
6329
  }
6321
6330
  unWireEvents() {
6322
6331
  EventHandler.remove(this.element, 'click', this.clickHandler);
6332
+ EventHandler.remove(this.element, 'keydown', this.keyDownHandler);
6333
+ EventHandler.remove(document, 'keydown', this.keyDownHandler);
6334
+ EventHandler.remove(this.element, 'mousedown', this.mouseDownHandler);
6323
6335
  if (!isNullOrUndefined(this.keyModule)) {
6324
6336
  this.keyModule.destroy();
6325
6337
  }
@@ -6330,6 +6342,9 @@ let Accordion = class Accordion extends Component {
6330
6342
  }
6331
6343
  wireEvents() {
6332
6344
  EventHandler.add(this.element, 'click', this.clickHandler, this);
6345
+ EventHandler.add(this.element, 'keydown', this.keyDownHandler, this);
6346
+ EventHandler.add(document, 'keydown', this.keyDownHandler, this);
6347
+ EventHandler.add(this.element, 'mousedown', this.mouseDownHandler, this);
6333
6348
  if (!this.isNested && !this.isDestroy) {
6334
6349
  this.removeRippleEffect = rippleEffect(this.element, { selector: '.' + CLS_HEADER });
6335
6350
  }
@@ -6374,10 +6389,27 @@ let Accordion = class Accordion extends Component {
6374
6389
  return this.itemTemplateFn;
6375
6390
  }
6376
6391
  focusIn(e) {
6377
- e.target.parentElement.classList.add(CLS_ITEMFOCUS);
6392
+ const targetItem = e.target.parentElement;
6393
+ targetItem.classList.add(CLS_ITEMFOCUS);
6394
+ if (this.isKeyboardNavigation) {
6395
+ targetItem.classList.add(CLS_KEYBOARDFOCUS);
6396
+ this.isKeyboardNavigation = false;
6397
+ }
6378
6398
  }
6379
6399
  focusOut(e) {
6380
- e.target.parentElement.classList.remove(CLS_ITEMFOCUS);
6400
+ const targetItem = e.target.parentElement;
6401
+ targetItem.classList.remove(CLS_ITEMFOCUS);
6402
+ targetItem.classList.remove(CLS_KEYBOARDFOCUS);
6403
+ }
6404
+ keyDownHandler(e) {
6405
+ if (e.key === 'Tab' || e.key === 'ArrowUp' || e.key === 'ArrowDown') {
6406
+ this.isKeyboardNavigation = true;
6407
+ }
6408
+ }
6409
+ mouseDownHandler(e) {
6410
+ this.isKeyboardNavigation = false;
6411
+ const targetItem = e.target.parentElement;
6412
+ targetItem.classList.remove(CLS_KEYBOARDFOCUS);
6381
6413
  }
6382
6414
  ctrlTemplate() {
6383
6415
  this.ctrlTem = this.element.cloneNode(true);
@@ -6625,11 +6657,6 @@ let Accordion = class Accordion extends Component {
6625
6657
  const innerEle = this.createElement('div', {
6626
6658
  className: CLS_ITEM$1, id: item.id || getUniqueID('acrdn_item')
6627
6659
  });
6628
- if (item.expanded && !isNullOrUndefined(index) && (!this.enablePersistence)) {
6629
- if (this.initExpand.indexOf(index) === -1) {
6630
- this.initExpand.push(index);
6631
- }
6632
- }
6633
6660
  if (this.headerTemplate) {
6634
6661
  const ctnEle = this.headerEleGenerate();
6635
6662
  const hdrEle = this.createElement('div', { className: CLS_HEADERCTN });
@@ -6638,9 +6665,8 @@ let Accordion = class Accordion extends Component {
6638
6665
  innerEle.appendChild(ctnEle);
6639
6666
  ctnEle.appendChild(this.toggleIconGenerate());
6640
6667
  this.add(innerEle, CLS_SLCT);
6641
- return innerEle;
6642
6668
  }
6643
- if (item.header && this.angularnativeCondiCheck(item, 'header')) {
6669
+ else if (item.header && this.angularnativeCondiCheck(item, 'header')) {
6644
6670
  let header = item.header;
6645
6671
  if (this.enableHtmlSanitizer && typeof (item.header) === 'string') {
6646
6672
  header = SanitizeHtmlHelper.sanitize(item.header);
@@ -6652,6 +6678,11 @@ let Accordion = class Accordion extends Component {
6652
6678
  innerEle.appendChild(ctnEle);
6653
6679
  }
6654
6680
  let hdr = select('.' + CLS_HEADER, innerEle);
6681
+ if (item.expanded && !isNullOrUndefined(index) && (!this.enablePersistence)) {
6682
+ if (this.initExpand.indexOf(index) === -1) {
6683
+ this.initExpand.push(index);
6684
+ }
6685
+ }
6655
6686
  if (item.cssClass) {
6656
6687
  addClass([innerEle], item.cssClass.split(' '));
6657
6688
  }
@@ -6674,7 +6705,7 @@ let Accordion = class Accordion extends Component {
6674
6705
  hdr.insertBefore(hdrIcnEle, hdr.childNodes[0]);
6675
6706
  }
6676
6707
  }
6677
- if (item.content && this.angularnativeCondiCheck(item, 'content')) {
6708
+ if (item.content && this.angularnativeCondiCheck(item, 'content') && !this.headerTemplate) {
6678
6709
  const hdrIcon = this.toggleIconGenerate();
6679
6710
  if (isNullOrUndefined(hdr)) {
6680
6711
  hdr = this.headerEleGenerate();
@@ -8117,6 +8148,7 @@ let Tab = class Tab extends Component {
8117
8148
  refreshOverflow() {
8118
8149
  if (!isNullOrUndefined(this.tbObj)) {
8119
8150
  this.tbObj.refreshOverflow();
8151
+ this.updatePopupIconAriaLabel();
8120
8152
  }
8121
8153
  }
8122
8154
  /**
@@ -8168,6 +8200,12 @@ let Tab = class Tab extends Component {
8168
8200
  this.refreshActiveBorder();
8169
8201
  });
8170
8202
  }
8203
+ if (this.isAngular && this.registeredTemplate && !isNullOrUndefined(this.registeredTemplate.headerTemplate)) {
8204
+ setTimeout(() => {
8205
+ this.refreshOverflow();
8206
+ this.refreshActiveBorder();
8207
+ }, 5);
8208
+ }
8171
8209
  }
8172
8210
  renderContainer() {
8173
8211
  const ele = this.element;
@@ -8275,6 +8313,7 @@ let Tab = class Tab extends Component {
8275
8313
  this.hdrEle.setAttribute('aria-labelledby', this.element.getAttribute('aria-labelledby'));
8276
8314
  this.element.removeAttribute('aria-labelledby');
8277
8315
  }
8316
+ this.updatePopupIconAriaLabel();
8278
8317
  this.setCloseButton(this.showCloseButton);
8279
8318
  const toolbarHeader = this.tbObj.element.querySelector('.' + CLS_TB_ITEMS);
8280
8319
  if (!isNullOrUndefined(toolbarHeader)) {
@@ -8283,6 +8322,21 @@ let Tab = class Tab extends Component {
8283
8322
  }
8284
8323
  }
8285
8324
  }
8325
+ updatePopupIconAriaLabel() {
8326
+ if (isNullOrUndefined(this.hdrEle) || isNullOrUndefined(this.tbObj) || this.tbObj.overflowMode !== 'Popup') {
8327
+ return;
8328
+ }
8329
+ const nav = this.hdrEle.querySelector('.' + CLS_HOR_NAV);
8330
+ if (isNullOrUndefined(nav)) {
8331
+ return;
8332
+ }
8333
+ const raw = window.getComputedStyle(nav, '::before').getPropertyValue('content');
8334
+ const beforeText = (raw || '').trim().replace(/^['"]|['"]$/g, '').replace(/\\(["'])/g, '$1').replace(/\\\\/g, '\\');
8335
+ const label = (beforeText && beforeText !== 'none' && beforeText !== 'normal')
8336
+ ? beforeText
8337
+ : 'overflow';
8338
+ nav.setAttribute('aria-label', label);
8339
+ }
8286
8340
  createContentElement(index) {
8287
8341
  const contentElement = this.createElement('div', {
8288
8342
  id: CLS_CONTENT$1 + this.tabId + '_' + index, className: CLS_ITEM$2,
@@ -9089,7 +9143,14 @@ let Tab = class Tab extends Component {
9089
9143
  tbPopObj.show(config);
9090
9144
  }
9091
9145
  }
9092
- bindDraggable() {
9146
+ bindDraggable(refreshDraggableItems) {
9147
+ if (refreshDraggableItems && this.draggableItems.length > 0) {
9148
+ for (let i = 0; i < this.draggableItems.length; i++) {
9149
+ this.draggableItems[i].destroy();
9150
+ this.draggableItems[i] = null;
9151
+ }
9152
+ this.draggableItems = [];
9153
+ }
9093
9154
  if (this.allowDragAndDrop) {
9094
9155
  const tabHeader = this.element.querySelector('.' + CLS_HEADER$1);
9095
9156
  if (tabHeader) {
@@ -9709,11 +9770,13 @@ let Tab = class Tab extends Component {
9709
9770
  this.trigger('adding', addArgs, (tabAddingArgs) => {
9710
9771
  if (!tabAddingArgs.cancel) {
9711
9772
  this.addingTabContent(items, index);
9773
+ this.updatePopupIconAriaLabel();
9712
9774
  }
9713
9775
  });
9714
9776
  }
9715
9777
  else {
9716
9778
  this.addingTabContent(items, index);
9779
+ this.updatePopupIconAriaLabel();
9717
9780
  }
9718
9781
  if (this.isReact) {
9719
9782
  this.renderReactTemplates();
@@ -10153,6 +10216,7 @@ let Tab = class Tab extends Component {
10153
10216
  this.tbObj.overflowMode = newProp.overflowMode;
10154
10217
  this.tbObj.dataBind();
10155
10218
  this.refreshActiveTabBorder();
10219
+ this.updatePopupIconAriaLabel();
10156
10220
  break;
10157
10221
  case 'heightAdjustMode':
10158
10222
  this.setContentHeight(false);
@@ -10164,7 +10228,7 @@ let Tab = class Tab extends Component {
10164
10228
  }
10165
10229
  break;
10166
10230
  case 'allowDragAndDrop':
10167
- this.bindDraggable();
10231
+ this.bindDraggable(true);
10168
10232
  break;
10169
10233
  case 'swipeMode':
10170
10234
  if (this.touchModule) {
@@ -10321,6 +10385,7 @@ let Tab = class Tab extends Component {
10321
10385
  this.select(this.getEleIndex(activeEle));
10322
10386
  }
10323
10387
  this.refreshActiveBorder();
10388
+ this.updatePopupIconAriaLabel();
10324
10389
  }
10325
10390
  };
10326
10391
  __decorate$7([
@@ -10468,6 +10533,7 @@ const CHECKBOXRIPPLE = 'e-ripple-container';
10468
10533
  const RIPPLE = 'e-ripple';
10469
10534
  const RIPPLEELMENT = 'e-ripple-element';
10470
10535
  const FOCUS = 'e-node-focus';
10536
+ const FOCUSED$1 = 'e-focused';
10471
10537
  const IMAGE = 'e-list-img';
10472
10538
  const BIGGER = 'e-bigger';
10473
10539
  const SMALL = 'e-small';
@@ -12774,6 +12840,7 @@ let TreeView = TreeView_1 = class TreeView extends Component {
12774
12840
  const focusedNode = this.getFocusedNode();
12775
12841
  if (focusedNode) {
12776
12842
  removeClass([focusedNode], FOCUS);
12843
+ removeClass([focusedNode], FOCUSED$1);
12777
12844
  focusedNode.setAttribute('tabindex', '-1');
12778
12845
  }
12779
12846
  addClass([li], FOCUS);
@@ -13468,9 +13535,11 @@ let TreeView = TreeView_1 = class TreeView extends Component {
13468
13535
  }
13469
13536
  setFocus(preNode, nextNode) {
13470
13537
  removeClass([preNode], FOCUS);
13538
+ removeClass([preNode], FOCUSED$1);
13471
13539
  preNode.setAttribute('tabindex', '-1');
13472
13540
  if (!nextNode.classList.contains('e-disable')) {
13473
13541
  addClass([nextNode], FOCUS);
13542
+ addClass([nextNode], FOCUSED$1);
13474
13543
  nextNode.setAttribute('tabindex', '0');
13475
13544
  nextNode.focus();
13476
13545
  EventHandler.add(nextNode, 'blur', this.focusOut, this);
@@ -13495,6 +13564,7 @@ let TreeView = TreeView_1 = class TreeView extends Component {
13495
13564
  else {
13496
13565
  focusedElement.setAttribute('tabindex', '0');
13497
13566
  addClass([focusedElement], FOCUS);
13567
+ addClass([focusedElement], FOCUSED$1);
13498
13568
  EventHandler.add(focusedElement, 'blur', this.focusOut, this);
13499
13569
  }
13500
13570
  this.mouseDownStatus = false;
@@ -13504,6 +13574,7 @@ let TreeView = TreeView_1 = class TreeView extends Component {
13504
13574
  const focusedElement = this.getFocusedNode();
13505
13575
  if (event.target === focusedElement) {
13506
13576
  removeClass([focusedElement], FOCUS);
13577
+ removeClass([focusedElement], FOCUSED$1);
13507
13578
  EventHandler.remove(focusedElement, 'blur', this.focusOut);
13508
13579
  }
13509
13580
  }
@@ -16318,6 +16389,7 @@ let Sidebar = class Sidebar extends Component {
16318
16389
  super(options, element);
16319
16390
  this.documentClickContext = this.documentclickHandler.bind(this);
16320
16391
  this.resizeHandler = this.resize.bind(this);
16392
+ this.preventClose = false;
16321
16393
  }
16322
16394
  preRender() {
16323
16395
  this.setWidth();
@@ -16512,6 +16584,10 @@ let Sidebar = class Sidebar extends Component {
16512
16584
  setTimeout(() => this.setTimeOut(), 50);
16513
16585
  }
16514
16586
  EventHandler.add(this.element, 'transitionend', this.transitionEnd, this);
16587
+ this.preventClose = false;
16588
+ }
16589
+ else {
16590
+ this.preventClose = true;
16515
16591
  }
16516
16592
  });
16517
16593
  }
@@ -16767,9 +16843,12 @@ let Sidebar = class Sidebar extends Component {
16767
16843
  case 'type':
16768
16844
  this.checkType(false);
16769
16845
  removeClass([this.element], [VISIBILITY]);
16770
- this.addClass();
16846
+ if (!this.preventClose) {
16847
+ this.addClass();
16848
+ }
16771
16849
  addClass([this.element], this.type === 'Auto' ? (Browser.isDevice ? ['e-over'] :
16772
16850
  ['e-push']) : ['e-' + this.type.toLowerCase()]);
16851
+ this.setType(this.type);
16773
16852
  break;
16774
16853
  case 'position':
16775
16854
  this.element.style.transform = '';