@syncfusion/ej2-navigations 20.4.43 → 20.4.48

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 (34) hide show
  1. package/CHANGELOG.md +35 -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 +72 -23
  6. package/dist/es6/ej2-navigations.es2015.js.map +1 -1
  7. package/dist/es6/ej2-navigations.es5.js +81 -32
  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/index.d.ts +1 -1
  14. package/src/common/index.js +1 -1
  15. package/src/common/menu-base.js +11 -2
  16. package/src/menu/menu.js +1 -0
  17. package/src/sidebar/sidebar.js +1 -1
  18. package/src/tab/tab.js +8 -4
  19. package/src/toolbar/toolbar.js +15 -3
  20. package/src/treeview/treeview.d.ts +13 -0
  21. package/src/treeview/treeview.js +44 -21
  22. package/styles/bootstrap4.css +1 -1
  23. package/styles/bootstrap5-dark.css +1 -41
  24. package/styles/bootstrap5.css +1 -41
  25. package/styles/context-menu/_theme-mixin.scss +16 -12
  26. package/styles/context-menu/bootstrap5-dark.css +0 -24
  27. package/styles/context-menu/bootstrap5.css +0 -24
  28. package/styles/menu/bootstrap5-dark.css +0 -16
  29. package/styles/menu/bootstrap5.css +0 -16
  30. package/styles/treeview/_bootstrap4-definition.scss +1 -1
  31. package/styles/treeview/_bootstrap5-definition.scss +1 -1
  32. package/styles/treeview/bootstrap4.css +1 -1
  33. package/styles/treeview/bootstrap5-dark.css +1 -1
  34. package/styles/treeview/bootstrap5.css +1 -1
@@ -1592,11 +1592,15 @@ let MenuBase = class MenuBase extends Component {
1592
1592
  closedLi = trgtpopUp.querySelector('[id="' + trgtliId + '"]');
1593
1593
  trgtLi = (liElem && trgtpopUp.querySelector('[id="' + liElem.id + '"]'));
1594
1594
  }
1595
+ else if (trgtpopUp) {
1596
+ closedLi = trgtpopUp.querySelector('.e-menu-item.e-selected');
1597
+ trgtLi = (liElem && trgtpopUp.querySelector('[id="' + liElem.id + '"]'));
1598
+ }
1595
1599
  const submenus = liElem && liElem.querySelectorAll('.e-menu-item');
1596
1600
  if (isOpen && this.hamburgerMode && ulIndex && !(submenus.length)) {
1597
1601
  this.afterCloseMenu(e);
1598
1602
  }
1599
- else if (isOpen && !this.hamburgerMode && this.navIdx.length && closedLi && !trgtLi && this.keyType !== 'left') {
1603
+ else if (isOpen && !this.hamburgerMode && closedLi && !trgtLi && this.keyType !== 'left' && (this.navIdx.length || !this.isMenu && this.navIdx.length === 0)) {
1600
1604
  let ele = (e && e.target.classList.contains('e-vscroll'))
1601
1605
  ? closest(e.target, '.e-menu-wrapper') : null;
1602
1606
  if (ele) {
@@ -1610,7 +1614,7 @@ let MenuBase = class MenuBase extends Component {
1610
1614
  }
1611
1615
  }
1612
1616
  else if (isOpen && !isIterated && !ulIndex && ((this.hamburgerMode && this.navIdx.length) ||
1613
- this.navIdx.length === 1)) {
1617
+ this.navIdx.length === 1 && liElem && trgtpopUp !== liElem.parentElement)) {
1614
1618
  this.closeMenu(null, e);
1615
1619
  }
1616
1620
  else if (isOpen && isNullOrUndefined(ulIndex) && this.navIdx.length) {
@@ -2635,6 +2639,11 @@ let MenuBase = class MenuBase extends Component {
2635
2639
  navIdx.length = 0;
2636
2640
  }
2637
2641
  }
2642
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2643
+ if (this.isReact && this.template) {
2644
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2645
+ this.portals = [];
2646
+ }
2638
2647
  break;
2639
2648
  }
2640
2649
  }
@@ -3616,8 +3625,11 @@ let Toolbar = class Toolbar extends Component {
3616
3625
  if (popObj && closest(trgt, '.e-popup')) {
3617
3626
  const popEle = popObj.element;
3618
3627
  const popFrstEle = popEle.firstElementChild;
3619
- if ((value === 'previous' && popFrstEle === clst) || (value === 'next' && popEle.lastElementChild === clst)) {
3620
- return;
3628
+ if ((value === 'previous' && popFrstEle === clst)) {
3629
+ popEle.lastElementChild.firstChild.focus();
3630
+ }
3631
+ else if (value === 'next' && popEle.lastElementChild === clst) {
3632
+ popFrstEle.firstChild.focus();
3621
3633
  }
3622
3634
  else {
3623
3635
  this.eleFocus(clst, value);
@@ -3711,7 +3723,7 @@ let Toolbar = class Toolbar extends Component {
3711
3723
  }
3712
3724
  }
3713
3725
  eleContains(el) {
3714
- return el.classList.contains(CLS_SEPARATOR) || el.classList.contains(CLS_DISABLE$2) || el.getAttribute('disabled') || el.classList.contains(CLS_HIDDEN) || !isVisible(el);
3726
+ return el.classList.contains(CLS_SEPARATOR) || el.classList.contains(CLS_DISABLE$2) || el.getAttribute('disabled') || el.classList.contains(CLS_HIDDEN) || !isVisible(el) || !el.classList.contains(CLS_ITEM);
3715
3727
  }
3716
3728
  eleFocus(closest$$1, pos) {
3717
3729
  const sib = Object(closest$$1)[pos + 'ElementSibling'];
@@ -3750,6 +3762,15 @@ let Toolbar = class Toolbar extends Component {
3750
3762
  }
3751
3763
  }
3752
3764
  }
3765
+ else if (!isNullOrUndefined(closest$$1)) {
3766
+ const tbrItems = this.element.querySelectorAll('.' + CLS_ITEMS + ' .' + CLS_ITEM + ':not(.' + CLS_SEPARATOR + ')' + ':not(.' + CLS_DISABLE$2 + ')' + ':not(.' + CLS_HIDDEN + ')');
3767
+ if (pos === 'next' && tbrItems) {
3768
+ this.elementFocus(tbrItems[0]);
3769
+ }
3770
+ else if (pos === 'previous' && tbrItems) {
3771
+ this.elementFocus(tbrItems[tbrItems.length - 1]);
3772
+ }
3773
+ }
3753
3774
  }
3754
3775
  clickHandler(e) {
3755
3776
  const trgt = e.target;
@@ -6951,6 +6972,7 @@ let Menu = class Menu extends MenuBase {
6951
6972
  catch (e) {
6952
6973
  /* action on catch */
6953
6974
  }
6975
+ this.updateMenuItems(this.items);
6954
6976
  }
6955
6977
  else {
6956
6978
  this.updateMenuItems(this.items);
@@ -7536,6 +7558,14 @@ let Tab = class Tab extends Component {
7536
7558
  this.tbObj.createElement = this.createElement;
7537
7559
  this.tbObj.appendTo(this.hdrEle);
7538
7560
  attributes(this.hdrEle, { role: 'tablist' });
7561
+ if (!isNullOrUndefined(this.element.getAttribute('aria-label'))) {
7562
+ this.hdrEle.setAttribute('aria-label', this.element.getAttribute('aria-label'));
7563
+ this.element.removeAttribute('aria-label');
7564
+ }
7565
+ else if (!isNullOrUndefined(this.element.getAttribute('aria-labelledby'))) {
7566
+ this.hdrEle.setAttribute('aria-labelledby', this.element.getAttribute('aria-labelledby'));
7567
+ this.element.removeAttribute('aria-labelledby');
7568
+ }
7539
7569
  this.setCloseButton(this.showCloseButton);
7540
7570
  const toolbarHeader = this.tbObj.element.querySelector('.' + CLS_TB_ITEMS);
7541
7571
  if (!isNullOrUndefined(toolbarHeader)) {
@@ -8202,10 +8232,6 @@ let Tab = class Tab extends Component {
8202
8232
  return;
8203
8233
  }
8204
8234
  if (!this.isTemplate) {
8205
- const prev = this.tbItem[this.prevIndex];
8206
- if (!isNullOrUndefined(prev)) {
8207
- prev.firstElementChild.removeAttribute('aria-controls');
8208
- }
8209
8235
  attributes(trg.firstElementChild, { 'aria-controls': CLS_CONTENT$1 + this.tabId + '_' + value });
8210
8236
  }
8211
8237
  const id = trg.id;
@@ -9664,6 +9690,7 @@ let TreeView = TreeView_1 = class TreeView extends Component {
9664
9690
  // Specifies whether the node is dropped or not
9665
9691
  this.isNodeDropped = false;
9666
9692
  this.isInteracted = false;
9693
+ this.isRightClick = false;
9667
9694
  this.mouseDownStatus = false;
9668
9695
  }
9669
9696
  /**
@@ -10965,6 +10992,9 @@ let TreeView = TreeView_1 = class TreeView extends Component {
10965
10992
  }
10966
10993
  }
10967
10994
  }
10995
+ if (event.originalEvent.which === 3) {
10996
+ this.isRightClick = true;
10997
+ }
10968
10998
  this.triggerClickEvent(event.originalEvent, li);
10969
10999
  }
10970
11000
  }
@@ -11395,7 +11425,7 @@ let TreeView = TreeView_1 = class TreeView extends Component {
11395
11425
  if (this.isLoaded) {
11396
11426
  eventArgs = this.getSelectEvent(li, 'select', e);
11397
11427
  this.trigger('nodeSelecting', eventArgs, (observedArgs) => {
11398
- if (!observedArgs.cancel && !observedArgs.node.classList.contains(PREVENTSELECT)) {
11428
+ if ((!observedArgs.cancel) && !observedArgs.node.classList.contains(PREVENTSELECT)) {
11399
11429
  this.nodeSelectAction(li, e, observedArgs, multiSelect);
11400
11430
  }
11401
11431
  });
@@ -11435,6 +11465,7 @@ let TreeView = TreeView_1 = class TreeView extends Component {
11435
11465
  eventArgs.nodeData = this.getNodeData(li);
11436
11466
  this.trigger('nodeSelected', eventArgs);
11437
11467
  }
11468
+ this.isRightClick = false;
11438
11469
  }
11439
11470
  unselectNode(li, e) {
11440
11471
  let eventArgs;
@@ -12255,7 +12286,7 @@ let TreeView = TreeView_1 = class TreeView extends Component {
12255
12286
  newText = observedArgs.cancel ? observedArgs.oldText : observedArgs.newText;
12256
12287
  this.updateText(liEle, txtEle, newText, isInput);
12257
12288
  if (observedArgs.oldText !== newText) {
12258
- this.triggerEvent();
12289
+ this.triggerEvent('nodeEdited', [this.getNode(liEle)]);
12259
12290
  }
12260
12291
  });
12261
12292
  }
@@ -12568,6 +12599,8 @@ let TreeView = TreeView_1 = class TreeView extends Component {
12568
12599
  let level;
12569
12600
  let drop = false;
12570
12601
  let dragInstance;
12602
+ let nodeData = [];
12603
+ let liArray = [];
12571
12604
  dragInstance = e.dragData.draggable;
12572
12605
  for (let i = 0; i < dragInstance.ej2_instances.length; i++) {
12573
12606
  if (dragInstance.ej2_instances[i] instanceof TreeView_1) {
@@ -12579,6 +12612,7 @@ let TreeView = TreeView_1 = class TreeView extends Component {
12579
12612
  let dragTarget = dragObj.dragTarget;
12580
12613
  let dragLi = (closest(dragTarget, '.' + LISTITEM));
12581
12614
  let dropLi = (closest(dropTarget, '.' + LISTITEM));
12615
+ liArray.push(dragLi);
12582
12616
  if (dropLi == null && dropTarget.classList.contains(ROOT)) {
12583
12617
  dropLi = dropTarget.firstElementChild;
12584
12618
  }
@@ -12592,6 +12626,7 @@ let TreeView = TreeView_1 = class TreeView extends Component {
12592
12626
  }
12593
12627
  if (dragObj.allowMultiSelection && dragLi.classList.contains(ACTIVE)) {
12594
12628
  let sNodes = selectAll('.' + ACTIVE, dragObj.element);
12629
+ liArray = sNodes;
12595
12630
  if (e.target.offsetHeight <= 33 && offsetY > e.target.offsetHeight - 10 && offsetY > 6) {
12596
12631
  for (let i = sNodes.length - 1; i >= 0; i--) {
12597
12632
  if (dropLi.isSameNode(sNodes[i]) || this.isDescendant(sNodes[i], dropLi)) {
@@ -12618,13 +12653,16 @@ let TreeView = TreeView_1 = class TreeView extends Component {
12618
12653
  if (this.fields.dataSource instanceof DataManager === false) {
12619
12654
  this.preventExpand = false;
12620
12655
  }
12656
+ for (var i = 0; i < liArray.length; i++) {
12657
+ nodeData.push(this.getNode(liArray[i]));
12658
+ }
12621
12659
  this.trigger('nodeDropped', this.getDragEvent(e.event, dragObj, dropTarget, e.target, e.dragData.draggedElement, null, level, drop));
12622
12660
  if (dragObj.element.id !== this.element.id) {
12623
- dragObj.triggerEvent();
12661
+ dragObj.triggerEvent('nodeDropped', nodeData);
12624
12662
  this.isNodeDropped = true;
12625
12663
  this.fields.dataSource = this.treeData;
12626
12664
  }
12627
- this.triggerEvent();
12665
+ this.triggerEvent('nodeDropped', nodeData);
12628
12666
  }
12629
12667
  appendNode(dropTarget, dragLi, dropLi, e, dragObj, offsetY) {
12630
12668
  let checkWrapper = closest(dropTarget, '.' + CHECKBOXWRAP);
@@ -13443,9 +13481,16 @@ let TreeView = TreeView_1 = class TreeView extends Component {
13443
13481
  }
13444
13482
  return removedData;
13445
13483
  }
13446
- triggerEvent() {
13484
+ triggerEvent(action, node) {
13447
13485
  this.renderReactTemplates();
13448
- let eventArgs = { data: this.treeData };
13486
+ if (action === 'addNodes') {
13487
+ let nodeData = [];
13488
+ for (let i = 0; i < node.length; i++) {
13489
+ nodeData.push(this.getNode(this.getElement(isNullOrUndefined(node[i][this.fields.id]) ? getValue(this.fields.id, node[i]).toString() : null)));
13490
+ }
13491
+ node = nodeData;
13492
+ }
13493
+ let eventArgs = { data: this.treeData, action: action, nodeData: node };
13449
13494
  this.trigger('dataSourceChanged', eventArgs);
13450
13495
  }
13451
13496
  wireInputEvents(inpEle) {
@@ -13820,8 +13865,10 @@ let TreeView = TreeView_1 = class TreeView extends Component {
13820
13865
  }
13821
13866
  }
13822
13867
  deleteSuccess(nodes) {
13868
+ let nodeData = [];
13823
13869
  for (let i = 0, len = nodes.length; i < len; i++) {
13824
13870
  let liEle = this.getElement(nodes[i]);
13871
+ nodeData.push(this.getNode(liEle));
13825
13872
  if (isNullOrUndefined(liEle)) {
13826
13873
  continue;
13827
13874
  }
@@ -13831,7 +13878,7 @@ let TreeView = TreeView_1 = class TreeView extends Component {
13831
13878
  if (this.dataType === 1) {
13832
13879
  this.groupedData = this.getGroupedData(this.treeData, this.fields.parentID);
13833
13880
  }
13834
- this.triggerEvent();
13881
+ this.triggerEvent('removeNode', nodeData);
13835
13882
  }
13836
13883
  editSucess(target, newText, prevent) {
13837
13884
  let liEle = this.getElement(target);
@@ -13847,12 +13894,12 @@ let TreeView = TreeView_1 = class TreeView extends Component {
13847
13894
  proxy.renderChildNodes(dropLi, null, () => {
13848
13895
  dropUl = dropLi.querySelector('.' + PARENTITEM);
13849
13896
  proxy.addGivenNodes(nodes, dropLi, index, true, dropUl);
13850
- proxy.triggerEvent();
13897
+ proxy.triggerEvent('addNodes', nodes);
13851
13898
  });
13852
13899
  }
13853
13900
  else {
13854
13901
  this.addGivenNodes(nodes, dropLi, index, true);
13855
- this.triggerEvent();
13902
+ this.triggerEvent('addNodes', nodes);
13856
13903
  }
13857
13904
  }
13858
13905
  dmFailure(e, target, prevent) {
@@ -14062,7 +14109,7 @@ let TreeView = TreeView_1 = class TreeView extends Component {
14062
14109
  }
14063
14110
  if ((this.fields.dataSource instanceof DataManager === false)) {
14064
14111
  this.preventExpand = false;
14065
- this.triggerEvent();
14112
+ this.triggerEvent('addNodes', nodes);
14066
14113
  }
14067
14114
  }
14068
14115
  /**
@@ -14214,11 +14261,13 @@ let TreeView = TreeView_1 = class TreeView extends Component {
14214
14261
  */
14215
14262
  moveNodes(sourceNodes, target, index, preventTargetExpand) {
14216
14263
  let dropLi = this.getElement(target);
14264
+ let nodeData = [];
14217
14265
  if (isNullOrUndefined(dropLi)) {
14218
14266
  return;
14219
14267
  }
14220
14268
  for (let i = 0; i < sourceNodes.length; i++) {
14221
14269
  let dragLi = this.getElement(sourceNodes[i]);
14270
+ nodeData.push(this.getNode(dragLi));
14222
14271
  if (isNullOrUndefined(dragLi) || dropLi.isSameNode(dragLi) || this.isDescendant(dragLi, dropLi)) {
14223
14272
  continue;
14224
14273
  }
@@ -14228,7 +14277,7 @@ let TreeView = TreeView_1 = class TreeView extends Component {
14228
14277
  if (this.fields.dataSource instanceof DataManager === false) {
14229
14278
  this.preventExpand = false;
14230
14279
  }
14231
- this.triggerEvent();
14280
+ this.triggerEvent('moveNodes', nodeData);
14232
14281
  }
14233
14282
  /**
14234
14283
  * Refreshes a particular node of the TreeView.
@@ -14332,7 +14381,7 @@ let TreeView = TreeView_1 = class TreeView extends Component {
14332
14381
  addClass([liEle], ACTIVE);
14333
14382
  }
14334
14383
  this.isRefreshed = false;
14335
- this.triggerEvent();
14384
+ this.triggerEvent('refreshNode', [this.getNode(liEle)]);
14336
14385
  }
14337
14386
  /**
14338
14387
  * Removes the collection of TreeView nodes by passing the array of node details as argument to this method.
@@ -14711,7 +14760,7 @@ let Sidebar = class Sidebar extends Component {
14711
14760
  }
14712
14761
  destroyBackDrop() {
14713
14762
  const sibling = document.querySelector('.e-main-content') || this.targetEle;
14714
- if (this.target && this.showBackdrop && sibling) {
14763
+ if (this.target && this.showBackdrop && sibling && !isNullOrUndefined(this.defaultBackdropDiv)) {
14715
14764
  removeClass([this.defaultBackdropDiv], DEFAULTBACKDROP);
14716
14765
  }
14717
14766
  else if (this.showBackdrop && this.modal) {
@@ -17221,5 +17270,5 @@ AppBar = __decorate$12([
17221
17270
  * Navigation all modules
17222
17271
  */
17223
17272
 
17224
- export { MenuAnimationSettings, MenuItem, HScroll, VScroll, addScrolling, destroyScroll, Item, Toolbar, AccordionActionSettings, AccordionAnimationSettings, AccordionItem, Accordion, ContextMenu, Menu, TabActionSettings, TabAnimationSettings, Header, TabItem, Tab, FieldsSettings, ActionSettings, NodeAnimationSettings, TreeView, Sidebar, BreadcrumbItem, Breadcrumb, CarouselItem, Carousel, AppBar };
17273
+ export { MenuAnimationSettings, MenuItem, FieldSettings, HScroll, VScroll, addScrolling, destroyScroll, Item, Toolbar, AccordionActionSettings, AccordionAnimationSettings, AccordionItem, Accordion, ContextMenu, Menu, TabActionSettings, TabAnimationSettings, Header, TabItem, Tab, FieldsSettings, ActionSettings, NodeAnimationSettings, TreeView, Sidebar, BreadcrumbItem, Breadcrumb, CarouselItem, Carousel, AppBar };
17225
17274
  //# sourceMappingURL=ej2-navigations.es2015.js.map