@syncfusion/ej2-navigations 20.4.51 → 20.4.53

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.
@@ -2016,6 +2016,9 @@ let MenuBase = class MenuBase extends Component {
2016
2016
  return;
2017
2017
  }
2018
2018
  const iconLi = menu.querySelector('.e-menu-item:not(.e-blankicon):not(.e-separator)');
2019
+ if (!iconLi) {
2020
+ return;
2021
+ }
2019
2022
  const icon = iconLi.querySelector('.e-menu-icon');
2020
2023
  if (!icon) {
2021
2024
  return;
@@ -8968,6 +8971,21 @@ let Tab = class Tab extends Component {
8968
8971
  this.refreshActiveBorder();
8969
8972
  const cntTrg = select('#' + CLS_CONTENT$1 + this.tabId + '_' + this.extIndex(trg.id), select('.' + CLS_CONTENT$1, this.element));
8970
8973
  if (!isNullOrUndefined(cntTrg)) {
8974
+ const registeredTemplate = this.registeredTemplate;
8975
+ if (registeredTemplate && registeredTemplate.content) {
8976
+ var templateToClear = [];
8977
+ for (let i = 0; i < registeredTemplate.content.length; i++) {
8978
+ let registeredItem = registeredTemplate.content[i].rootNodes[0];
8979
+ let closestItem = closest(registeredItem, '.' + CLS_ITEM$2);
8980
+ if (!isNullOrUndefined(registeredItem) && closestItem === cntTrg) {
8981
+ templateToClear.push(registeredTemplate.content[i]);
8982
+ break;
8983
+ }
8984
+ }
8985
+ if (templateToClear.length > 0) {
8986
+ this.clearTemplate(['content'], templateToClear);
8987
+ }
8988
+ }
8971
8989
  detach(cntTrg);
8972
8990
  }
8973
8991
  this.trigger('removed', tabRemovingArgs);
@@ -9812,7 +9830,6 @@ let TreeView = TreeView_1 = class TreeView extends Component {
9812
9830
  }
9813
9831
  initialize() {
9814
9832
  this.element.setAttribute('role', 'tree');
9815
- this.element.setAttribute('tabindex', '0');
9816
9833
  this.element.setAttribute('aria-activedescendant', this.element.id + '_active');
9817
9834
  this.setCssClass(null, this.cssClass);
9818
9835
  this.setEnableRtl();
@@ -10249,6 +10266,8 @@ let TreeView = TreeView_1 = class TreeView extends Component {
10249
10266
  let fields = e.fields;
10250
10267
  this.addActionClass(e, fields.selected, SELECTED$1);
10251
10268
  this.addActionClass(e, fields.expanded, EXPANDED);
10269
+ e.item.setAttribute("tabindex", "-1");
10270
+ EventHandler.add(e.item, 'focus', this.focusIn, this);
10252
10271
  if (!isNullOrUndefined(this.nodeTemplateFn)) {
10253
10272
  let textEle = e.item.querySelector('.' + LISTTEXT);
10254
10273
  let dataId = e.item.getAttribute('data-uid');
@@ -10809,7 +10828,7 @@ let TreeView = TreeView_1 = class TreeView extends Component {
10809
10828
  this.setMultiSelect(this.allowMultiSelection);
10810
10829
  let firstNode = select('.' + LISTITEM, this.element);
10811
10830
  if (firstNode) {
10812
- addClass([firstNode], FOCUS);
10831
+ firstNode.setAttribute('tabindex', '0');
10813
10832
  this.updateIdAttr(null, firstNode);
10814
10833
  }
10815
10834
  if (this.allowTextWrap) {
@@ -11462,7 +11481,6 @@ let TreeView = TreeView_1 = class TreeView extends Component {
11462
11481
  this.startNode = li;
11463
11482
  this.addSelect(li);
11464
11483
  }
11465
- this.setFocusElement(li);
11466
11484
  if (this.isLoaded) {
11467
11485
  eventArgs.nodeData = this.getNodeData(li);
11468
11486
  this.trigger('nodeSelected', eventArgs);
@@ -11496,8 +11514,11 @@ let TreeView = TreeView_1 = class TreeView extends Component {
11496
11514
  let focusedNode = this.getFocusedNode();
11497
11515
  if (focusedNode) {
11498
11516
  removeClass([focusedNode], FOCUS);
11517
+ focusedNode.setAttribute("tabindex", "-1");
11499
11518
  }
11500
11519
  addClass([li], FOCUS);
11520
+ li.setAttribute('tabindex', '0');
11521
+ EventHandler.add(li, 'blur', this.focusOut, this);
11501
11522
  this.updateIdAttr(focusedNode, li);
11502
11523
  }
11503
11524
  }
@@ -11619,14 +11640,10 @@ let TreeView = TreeView_1 = class TreeView extends Component {
11619
11640
  let inpEle = target;
11620
11641
  if (e.action === 'enter') {
11621
11642
  inpEle.blur();
11622
- this.element.focus();
11623
- addClass([focusedNode], HOVER);
11624
11643
  }
11625
11644
  else if (e.action === 'escape') {
11626
11645
  inpEle.value = this.oldText;
11627
11646
  inpEle.blur();
11628
- this.element.focus();
11629
- addClass([focusedNode], HOVER);
11630
11647
  }
11631
11648
  return;
11632
11649
  }
@@ -12009,7 +12026,7 @@ let TreeView = TreeView_1 = class TreeView extends Component {
12009
12026
  }
12010
12027
  getFocusedNode() {
12011
12028
  let selectedItem;
12012
- let fNode = select('.' + LISTITEM + '.' + FOCUS, this.element);
12029
+ let fNode = select('.' + LISTITEM + '[tabindex="0"]', this.element);
12013
12030
  if (isNullOrUndefined(fNode)) {
12014
12031
  selectedItem = select('.' + LISTITEM, this.element);
12015
12032
  }
@@ -12079,8 +12096,12 @@ let TreeView = TreeView_1 = class TreeView extends Component {
12079
12096
  }
12080
12097
  setFocus(preNode, nextNode) {
12081
12098
  removeClass([preNode], [HOVER, FOCUS]);
12099
+ preNode.setAttribute("tabindex", "-1");
12082
12100
  if (!nextNode.classList.contains('e-disable') && !nextNode.classList.contains(PREVENTSELECT)) {
12083
12101
  addClass([nextNode], [HOVER, FOCUS]);
12102
+ nextNode.setAttribute('tabindex', '0');
12103
+ nextNode.focus();
12104
+ EventHandler.add(nextNode, 'blur', this.focusOut, this);
12084
12105
  this.updateIdAttr(preNode, nextNode);
12085
12106
  }
12086
12107
  }
@@ -12094,12 +12115,19 @@ let TreeView = TreeView_1 = class TreeView extends Component {
12094
12115
  }
12095
12116
  focusIn() {
12096
12117
  if (!this.mouseDownStatus) {
12097
- addClass([this.getFocusedNode()], HOVER);
12118
+ let focusedElement = this.getFocusedNode();
12119
+ focusedElement.setAttribute("tabindex", "0");
12120
+ addClass([focusedElement], [HOVER, FOCUS]);
12121
+ EventHandler.add(focusedElement, 'blur', this.focusOut, this);
12098
12122
  }
12099
12123
  this.mouseDownStatus = false;
12100
12124
  }
12101
- focusOut() {
12102
- removeClass([this.getFocusedNode()], HOVER);
12125
+ focusOut(event) {
12126
+ let focusedElement = this.getFocusedNode();
12127
+ if (event.target == focusedElement) {
12128
+ removeClass([focusedElement], [HOVER, FOCUS]);
12129
+ EventHandler.remove(focusedElement, 'blur', this.focusOut);
12130
+ }
12103
12131
  }
12104
12132
  onMouseOver(e) {
12105
12133
  let target = e.target;
@@ -12305,7 +12333,9 @@ let TreeView = TreeView_1 = class TreeView extends Component {
12305
12333
  }
12306
12334
  if (isInput) {
12307
12335
  removeClass([liEle], EDITING);
12308
- txtEle.focus();
12336
+ liEle.focus();
12337
+ EventHandler.add(liEle, 'blur', this.focusOut, this);
12338
+ addClass([liEle], HOVER);
12309
12339
  }
12310
12340
  if (this.allowTextWrap) {
12311
12341
  this.calculateWrap(liEle);
@@ -12496,7 +12526,7 @@ let TreeView = TreeView_1 = class TreeView extends Component {
12496
12526
  });
12497
12527
  this.dropObj = new Droppable(this.element, {
12498
12528
  out: (e) => {
12499
- if (!isNullOrUndefined(e) && !e.target.classList.contains(SIBLING)) {
12529
+ if (!isNullOrUndefined(e) && !e.target.classList.contains(SIBLING) && (this.dropObj.dragData.default && this.dropObj.dragData.default.helper.classList.contains(ROOT))) {
12500
12530
  document.body.style.cursor = 'not-allowed';
12501
12531
  }
12502
12532
  },
@@ -13193,15 +13223,29 @@ let TreeView = TreeView_1 = class TreeView extends Component {
13193
13223
  }
13194
13224
  }
13195
13225
  if (!refNode && ((this.sortOrder === 'Ascending') || (this.sortOrder === 'Descending'))) {
13196
- let cNodes = dropUl.childNodes;
13197
- for (let i = 0; i < li.length; i++) {
13198
- for (let j = 0; j < cNodes.length; j++) {
13199
- let returnValue = (this.sortOrder === 'Ascending') ? cNodes[j].textContent.toUpperCase() > li[i].innerText.toUpperCase() : cNodes[j].textContent.toUpperCase() < li[i].innerText.toUpperCase();
13200
- if (returnValue) {
13201
- dropUl.insertBefore(li[i], cNodes[j]);
13202
- break;
13226
+ if (dropUl.childNodes.length === 0) {
13227
+ for (let i = 0; i < li.length; i++) {
13228
+ dropUl.insertBefore(li[i], refNode);
13229
+ }
13230
+ if (this.dataType === 1 && !isNullOrUndefined(dropLi) && !isNullOrUndefined(this.element.offsetParent) && !this.element.offsetParent.parentElement.classList.contains('e-filemanager')) {
13231
+ this.preventExpand = false;
13232
+ let dropIcon = select('div.' + ICON, dropLi);
13233
+ if (dropIcon && dropIcon.classList.contains(EXPANDABLE)) {
13234
+ this.expandAction(dropLi, dropIcon, null);
13235
+ }
13236
+ }
13237
+ }
13238
+ else {
13239
+ let cNodes = dropUl.childNodes;
13240
+ for (let i = 0; i < li.length; i++) {
13241
+ for (let j = 0; j < cNodes.length; j++) {
13242
+ let returnValue = (this.sortOrder === 'Ascending') ? cNodes[j].textContent.toUpperCase() > li[i].innerText.toUpperCase() : cNodes[j].textContent.toUpperCase() < li[i].innerText.toUpperCase();
13243
+ if (returnValue) {
13244
+ dropUl.insertBefore(li[i], cNodes[j]);
13245
+ break;
13246
+ }
13247
+ dropUl.insertBefore(li[i], cNodes[cNodes.length]);
13203
13248
  }
13204
- dropUl.insertBefore(li[i], cNodes[cNodes.length]);
13205
13249
  }
13206
13250
  }
13207
13251
  }
@@ -13568,8 +13612,6 @@ let TreeView = TreeView_1 = class TreeView extends Component {
13568
13612
  if (this.expandOnType !== 'None') {
13569
13613
  this.wireExpandOnEvent(true);
13570
13614
  }
13571
- EventHandler.add(this.element, 'focus', this.focusIn, this);
13572
- EventHandler.add(this.element, 'blur', this.focusOut, this);
13573
13615
  EventHandler.add(this.element, 'mouseover', this.onMouseOver, this);
13574
13616
  EventHandler.add(this.element, 'mouseout', this.onMouseLeave, this);
13575
13617
  this.keyboardModule = new KeyboardEvents(this.element, {
@@ -13582,8 +13624,6 @@ let TreeView = TreeView_1 = class TreeView extends Component {
13582
13624
  EventHandler.remove(this.element, 'mousedown', this.mouseDownHandler);
13583
13625
  this.wireClickEvent(false);
13584
13626
  this.wireExpandOnEvent(false);
13585
- EventHandler.remove(this.element, 'focus', this.focusIn);
13586
- EventHandler.remove(this.element, 'blur', this.focusOut);
13587
13627
  EventHandler.remove(this.element, 'mouseover', this.onMouseOver);
13588
13628
  EventHandler.remove(this.element, 'mouseout', this.onMouseLeave);
13589
13629
  if (!this.disabled) {
@@ -14070,7 +14110,6 @@ let TreeView = TreeView_1 = class TreeView extends Component {
14070
14110
  destroy() {
14071
14111
  this.clearTemplate();
14072
14112
  this.element.removeAttribute('aria-activedescendant');
14073
- this.element.removeAttribute('tabindex');
14074
14113
  this.unWireEvents();
14075
14114
  this.wireEditingEvents(false);
14076
14115
  if (!this.disabled) {
@@ -15374,6 +15413,7 @@ let Breadcrumb = class Breadcrumb extends Component {
15374
15413
  */
15375
15414
  constructor(options, element) {
15376
15415
  super(options, element);
15416
+ this.isPopupCreated = false;
15377
15417
  }
15378
15418
  /**
15379
15419
  * @private
@@ -15812,13 +15852,14 @@ let Breadcrumb = class Breadcrumb extends Component {
15812
15852
  this.isExpanded = true;
15813
15853
  this.reRenderItems();
15814
15854
  }
15815
- if (e.target.classList.contains(MENUCLASS)) {
15855
+ if (e.target.classList.contains(MENUCLASS) && !this.isPopupCreated) {
15816
15856
  this.renderPopup();
15817
15857
  }
15818
15858
  }
15819
15859
  renderPopup() {
15820
15860
  const wrapper = this.createElement('div', { className: POPUPCLASS + ' ' + this.cssClass + (this.enableRtl ? ' e-rtl' : '') });
15821
15861
  document.body.appendChild(wrapper);
15862
+ this.isPopupCreated = true;
15822
15863
  this.popupObj = new Popup(wrapper, {
15823
15864
  content: this.popupUl,
15824
15865
  relateTo: this.element.querySelector(DOT + MENUCLASS),
@@ -15836,6 +15877,7 @@ let Breadcrumb = class Breadcrumb extends Component {
15836
15877
  if (this.overflowMode === 'Menu' && this.popupObj && this.popupObj.element.classList.contains('e-popup-open') && !closest(e.target, DOT + MENUCLASS)) {
15837
15878
  this.popupObj.hide();
15838
15879
  this.popupObj.destroy();
15880
+ this.isPopupCreated = false;
15839
15881
  detach(this.popupObj.element);
15840
15882
  }
15841
15883
  }