@syncfusion/ej2-navigations 33.2.7 → 33.2.10

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 (102) hide show
  1. package/dist/ej2-navigations.min.js +2 -2
  2. package/dist/ej2-navigations.umd.min.js +2 -2
  3. package/dist/ej2-navigations.umd.min.js.map +1 -1
  4. package/dist/es6/ej2-navigations.es2015.js +60 -3
  5. package/dist/es6/ej2-navigations.es2015.js.map +1 -1
  6. package/dist/es6/ej2-navigations.es5.js +60 -3
  7. package/dist/es6/ej2-navigations.es5.js.map +1 -1
  8. package/dist/global/ej2-navigations.min.js +2 -2
  9. package/dist/global/ej2-navigations.min.js.map +1 -1
  10. package/dist/global/index.d.ts +1 -1
  11. package/package.json +2 -2
  12. package/src/accordion/accordion.d.ts +3 -0
  13. package/src/accordion/accordion.js +27 -2
  14. package/src/common/menu-base.js +3 -0
  15. package/src/sidebar/sidebar.d.ts +1 -0
  16. package/src/sidebar/sidebar.js +9 -1
  17. package/src/tab/tab.d.ts +1 -0
  18. package/src/tab/tab.js +21 -0
  19. package/styles/accordion/_layout.scss +10 -4
  20. package/styles/accordion/_material3-dark-definition.scss +1 -1
  21. package/styles/accordion/_material3-definition.scss +1 -1
  22. package/styles/accordion/_tailwind3-definition.scss +1 -1
  23. package/styles/accordion/_theme.scss +0 -4
  24. package/styles/accordion/bds.css +8 -8
  25. package/styles/accordion/bootstrap-dark.css +8 -8
  26. package/styles/accordion/bootstrap.css +8 -8
  27. package/styles/accordion/bootstrap4.css +8 -8
  28. package/styles/accordion/bootstrap5-dark.css +8 -8
  29. package/styles/accordion/bootstrap5.3.css +8 -8
  30. package/styles/accordion/bootstrap5.css +8 -8
  31. package/styles/accordion/fabric-dark.css +8 -8
  32. package/styles/accordion/fabric.css +8 -8
  33. package/styles/accordion/fluent-dark.css +8 -8
  34. package/styles/accordion/fluent.css +8 -8
  35. package/styles/accordion/fluent2.css +8 -16
  36. package/styles/accordion/highcontrast-light.css +8 -8
  37. package/styles/accordion/highcontrast.css +8 -8
  38. package/styles/accordion/material-dark.css +8 -8
  39. package/styles/accordion/material.css +8 -8
  40. package/styles/accordion/material3-dark.css +8 -8
  41. package/styles/accordion/material3.css +8 -8
  42. package/styles/accordion/tailwind-dark.css +8 -8
  43. package/styles/accordion/tailwind.css +8 -8
  44. package/styles/accordion/tailwind3.css +8 -16
  45. package/styles/bds-lite.css +8 -8
  46. package/styles/bds.css +8 -8
  47. package/styles/bootstrap-dark-lite.css +8 -8
  48. package/styles/bootstrap-dark.css +9 -9
  49. package/styles/bootstrap-lite.css +8 -8
  50. package/styles/bootstrap.css +9 -9
  51. package/styles/bootstrap4-lite.css +8 -8
  52. package/styles/bootstrap4.css +8 -8
  53. package/styles/bootstrap5-dark-lite.css +8 -8
  54. package/styles/bootstrap5-dark.css +8 -8
  55. package/styles/bootstrap5-lite.css +8 -8
  56. package/styles/bootstrap5.3-lite.css +8 -8
  57. package/styles/bootstrap5.3.css +8 -8
  58. package/styles/bootstrap5.css +8 -8
  59. package/styles/fabric-dark-lite.css +8 -8
  60. package/styles/fabric-dark.css +9 -9
  61. package/styles/fabric-lite.css +8 -8
  62. package/styles/fabric.css +9 -9
  63. package/styles/fluent-dark-lite.css +8 -8
  64. package/styles/fluent-dark.css +8 -8
  65. package/styles/fluent-lite.css +8 -8
  66. package/styles/fluent.css +8 -8
  67. package/styles/fluent2-lite.css +8 -16
  68. package/styles/fluent2.css +8 -16
  69. package/styles/highcontrast-light-lite.css +8 -8
  70. package/styles/highcontrast-light.css +9 -9
  71. package/styles/highcontrast-lite.css +8 -8
  72. package/styles/highcontrast.css +9 -9
  73. package/styles/material-dark-lite.css +9 -9
  74. package/styles/material-dark.css +10 -10
  75. package/styles/material-lite.css +9 -9
  76. package/styles/material.css +10 -10
  77. package/styles/material3-dark-lite.css +8 -8
  78. package/styles/material3-dark.css +8 -8
  79. package/styles/material3-lite.css +8 -8
  80. package/styles/material3.css +8 -8
  81. package/styles/tailwind-dark-lite.css +8 -8
  82. package/styles/tailwind-dark.css +8 -8
  83. package/styles/tailwind-lite.css +8 -8
  84. package/styles/tailwind.css +8 -8
  85. package/styles/tailwind3-lite.css +8 -16
  86. package/styles/tailwind3.css +8 -16
  87. package/styles/treeview/_bootstrap-dark-definition.scss +1 -1
  88. package/styles/treeview/_bootstrap-definition.scss +1 -1
  89. package/styles/treeview/_fabric-dark-definition.scss +1 -1
  90. package/styles/treeview/_fabric-definition.scss +1 -1
  91. package/styles/treeview/_highcontrast-definition.scss +1 -1
  92. package/styles/treeview/_highcontrast-light-definition.scss +1 -1
  93. package/styles/treeview/_material-dark-definition.scss +2 -2
  94. package/styles/treeview/_material-definition.scss +2 -2
  95. package/styles/treeview/bootstrap-dark.css +1 -1
  96. package/styles/treeview/bootstrap.css +1 -1
  97. package/styles/treeview/fabric-dark.css +1 -1
  98. package/styles/treeview/fabric.css +1 -1
  99. package/styles/treeview/highcontrast-light.css +1 -1
  100. package/styles/treeview/highcontrast.css +1 -1
  101. package/styles/treeview/material-dark.css +2 -2
  102. package/styles/treeview/material.css +2 -2
@@ -1266,6 +1266,9 @@ let MenuBase = class MenuBase extends Component {
1266
1266
  }
1267
1267
  }
1268
1268
  this.defaultOption = this.showItemOnClick;
1269
+ if (isNullOrUndefined(this.animation)) {
1270
+ this.animation = new Animation({});
1271
+ }
1269
1272
  }
1270
1273
  renderItems() {
1271
1274
  if (!this.items.length) {
@@ -6122,6 +6125,7 @@ const CLS_ACRDN_ROOT = 'e-acrdn-root';
6122
6125
  const CLS_ROOT$2 = 'e-accordion';
6123
6126
  const CLS_ITEM$1 = 'e-acrdn-item';
6124
6127
  const CLS_ITEMFOCUS = 'e-item-focus';
6128
+ const CLS_KEYBOARDFOCUS = 'e-focused';
6125
6129
  const CLS_ITEMHIDE = 'e-hide';
6126
6130
  const CLS_HEADER = 'e-acrdn-header';
6127
6131
  const CLS_HEADERICN = 'e-acrdn-header-icon';
@@ -6215,6 +6219,7 @@ let Accordion = class Accordion extends Component {
6215
6219
  */
6216
6220
  constructor(options, element) {
6217
6221
  super(options, element);
6222
+ this.isKeyboardNavigation = false;
6218
6223
  /**
6219
6224
  * Contains the keyboard configuration of the Accordion.
6220
6225
  */
@@ -6327,6 +6332,9 @@ let Accordion = class Accordion extends Component {
6327
6332
  }
6328
6333
  unWireEvents() {
6329
6334
  EventHandler.remove(this.element, 'click', this.clickHandler);
6335
+ EventHandler.remove(this.element, 'keydown', this.keyDownHandler);
6336
+ EventHandler.remove(document, 'keydown', this.keyDownHandler);
6337
+ EventHandler.remove(this.element, 'mousedown', this.mouseDownHandler);
6330
6338
  if (!isNullOrUndefined(this.keyModule)) {
6331
6339
  this.keyModule.destroy();
6332
6340
  }
@@ -6337,6 +6345,9 @@ let Accordion = class Accordion extends Component {
6337
6345
  }
6338
6346
  wireEvents() {
6339
6347
  EventHandler.add(this.element, 'click', this.clickHandler, this);
6348
+ EventHandler.add(this.element, 'keydown', this.keyDownHandler, this);
6349
+ EventHandler.add(document, 'keydown', this.keyDownHandler, this);
6350
+ EventHandler.add(this.element, 'mousedown', this.mouseDownHandler, this);
6340
6351
  if (!this.isNested && !this.isDestroy) {
6341
6352
  this.removeRippleEffect = rippleEffect(this.element, { selector: '.' + CLS_HEADER });
6342
6353
  }
@@ -6381,10 +6392,27 @@ let Accordion = class Accordion extends Component {
6381
6392
  return this.itemTemplateFn;
6382
6393
  }
6383
6394
  focusIn(e) {
6384
- e.target.parentElement.classList.add(CLS_ITEMFOCUS);
6395
+ const targetItem = e.target.parentElement;
6396
+ targetItem.classList.add(CLS_ITEMFOCUS);
6397
+ if (this.isKeyboardNavigation) {
6398
+ targetItem.classList.add(CLS_KEYBOARDFOCUS);
6399
+ this.isKeyboardNavigation = false;
6400
+ }
6385
6401
  }
6386
6402
  focusOut(e) {
6387
- e.target.parentElement.classList.remove(CLS_ITEMFOCUS);
6403
+ const targetItem = e.target.parentElement;
6404
+ targetItem.classList.remove(CLS_ITEMFOCUS);
6405
+ targetItem.classList.remove(CLS_KEYBOARDFOCUS);
6406
+ }
6407
+ keyDownHandler(e) {
6408
+ if (e.key === 'Tab' || e.key === 'ArrowUp' || e.key === 'ArrowDown') {
6409
+ this.isKeyboardNavigation = true;
6410
+ }
6411
+ }
6412
+ mouseDownHandler(e) {
6413
+ this.isKeyboardNavigation = false;
6414
+ const targetItem = e.target.parentElement;
6415
+ targetItem.classList.remove(CLS_KEYBOARDFOCUS);
6388
6416
  }
6389
6417
  ctrlTemplate() {
6390
6418
  this.ctrlTem = this.element.cloneNode(true);
@@ -8123,6 +8151,7 @@ let Tab = class Tab extends Component {
8123
8151
  refreshOverflow() {
8124
8152
  if (!isNullOrUndefined(this.tbObj)) {
8125
8153
  this.tbObj.refreshOverflow();
8154
+ this.updatePopupIconAriaLabel();
8126
8155
  }
8127
8156
  }
8128
8157
  /**
@@ -8287,6 +8316,7 @@ let Tab = class Tab extends Component {
8287
8316
  this.hdrEle.setAttribute('aria-labelledby', this.element.getAttribute('aria-labelledby'));
8288
8317
  this.element.removeAttribute('aria-labelledby');
8289
8318
  }
8319
+ this.updatePopupIconAriaLabel();
8290
8320
  this.setCloseButton(this.showCloseButton);
8291
8321
  const toolbarHeader = this.tbObj.element.querySelector('.' + CLS_TB_ITEMS);
8292
8322
  if (!isNullOrUndefined(toolbarHeader)) {
@@ -8295,6 +8325,21 @@ let Tab = class Tab extends Component {
8295
8325
  }
8296
8326
  }
8297
8327
  }
8328
+ updatePopupIconAriaLabel() {
8329
+ if (isNullOrUndefined(this.hdrEle) || isNullOrUndefined(this.tbObj) || this.tbObj.overflowMode !== 'Popup') {
8330
+ return;
8331
+ }
8332
+ const nav = this.hdrEle.querySelector('.' + CLS_HOR_NAV);
8333
+ if (isNullOrUndefined(nav)) {
8334
+ return;
8335
+ }
8336
+ const raw = window.getComputedStyle(nav, '::before').getPropertyValue('content');
8337
+ const beforeText = (raw || '').trim().replace(/^['"]|['"]$/g, '').replace(/\\(["'])/g, '$1').replace(/\\\\/g, '\\');
8338
+ const label = (beforeText && beforeText !== 'none' && beforeText !== 'normal')
8339
+ ? beforeText
8340
+ : 'overflow';
8341
+ nav.setAttribute('aria-label', label);
8342
+ }
8298
8343
  createContentElement(index) {
8299
8344
  const contentElement = this.createElement('div', {
8300
8345
  id: CLS_CONTENT$1 + this.tabId + '_' + index, className: CLS_ITEM$2,
@@ -9728,11 +9773,13 @@ let Tab = class Tab extends Component {
9728
9773
  this.trigger('adding', addArgs, (tabAddingArgs) => {
9729
9774
  if (!tabAddingArgs.cancel) {
9730
9775
  this.addingTabContent(items, index);
9776
+ this.updatePopupIconAriaLabel();
9731
9777
  }
9732
9778
  });
9733
9779
  }
9734
9780
  else {
9735
9781
  this.addingTabContent(items, index);
9782
+ this.updatePopupIconAriaLabel();
9736
9783
  }
9737
9784
  if (this.isReact) {
9738
9785
  this.renderReactTemplates();
@@ -10172,6 +10219,7 @@ let Tab = class Tab extends Component {
10172
10219
  this.tbObj.overflowMode = newProp.overflowMode;
10173
10220
  this.tbObj.dataBind();
10174
10221
  this.refreshActiveTabBorder();
10222
+ this.updatePopupIconAriaLabel();
10175
10223
  break;
10176
10224
  case 'heightAdjustMode':
10177
10225
  this.setContentHeight(false);
@@ -10340,6 +10388,7 @@ let Tab = class Tab extends Component {
10340
10388
  this.select(this.getEleIndex(activeEle));
10341
10389
  }
10342
10390
  this.refreshActiveBorder();
10391
+ this.updatePopupIconAriaLabel();
10343
10392
  }
10344
10393
  };
10345
10394
  __decorate$7([
@@ -16343,6 +16392,7 @@ let Sidebar = class Sidebar extends Component {
16343
16392
  super(options, element);
16344
16393
  this.documentClickContext = this.documentclickHandler.bind(this);
16345
16394
  this.resizeHandler = this.resize.bind(this);
16395
+ this.preventClose = false;
16346
16396
  }
16347
16397
  preRender() {
16348
16398
  this.setWidth();
@@ -16537,6 +16587,10 @@ let Sidebar = class Sidebar extends Component {
16537
16587
  setTimeout(() => this.setTimeOut(), 50);
16538
16588
  }
16539
16589
  EventHandler.add(this.element, 'transitionend', this.transitionEnd, this);
16590
+ this.preventClose = false;
16591
+ }
16592
+ else {
16593
+ this.preventClose = true;
16540
16594
  }
16541
16595
  });
16542
16596
  }
@@ -16792,9 +16846,12 @@ let Sidebar = class Sidebar extends Component {
16792
16846
  case 'type':
16793
16847
  this.checkType(false);
16794
16848
  removeClass([this.element], [VISIBILITY]);
16795
- this.addClass();
16849
+ if (!this.preventClose) {
16850
+ this.addClass();
16851
+ }
16796
16852
  addClass([this.element], this.type === 'Auto' ? (Browser.isDevice ? ['e-over'] :
16797
16853
  ['e-push']) : ['e-' + this.type.toLowerCase()]);
16854
+ this.setType(this.type);
16798
16855
  break;
16799
16856
  case 'position':
16800
16857
  this.element.style.transform = '';