@syncfusion/ej2-navigations 33.1.46 → 33.1.49

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.
@@ -1143,6 +1143,7 @@ let MenuBase = class MenuBase extends Component {
1143
1143
  this.isAnimationNone = false;
1144
1144
  this.isKBDAction = false;
1145
1145
  this.skipNextArrowDown = false;
1146
+ this.isCmenuOpened = false;
1146
1147
  }
1147
1148
  /**
1148
1149
  * Initialized third party configuration settings.
@@ -1314,26 +1315,31 @@ let MenuBase = class MenuBase extends Component {
1314
1315
  new Touch(target, { tapHold: this.touchHandler.bind(this) });
1315
1316
  }
1316
1317
  else {
1317
- EventHandler.add(target, 'contextmenu', this.cmenuHandler, this);
1318
+ this.delegateContextMenuHandler = this.cmenuHandler.bind(this);
1319
+ EventHandler.add(target, 'contextmenu', this.delegateContextMenuHandler, this);
1318
1320
  }
1319
1321
  }
1320
1322
  }
1321
1323
  this.targetElement = target;
1322
1324
  if (!this.isMenu) {
1323
1325
  EventHandler.add(this.targetElement, 'scroll', this.scrollHandler, this);
1324
- for (const parent of getScrollableParent(this.targetElement)) {
1325
- EventHandler.add(parent, 'scroll', this.scrollHandler, this);
1326
+ this.scrollParents = getScrollableParent(this.targetElement).slice();
1327
+ this.delegateParentScrollHandler = this.scrollHandler.bind(this);
1328
+ for (const parent of this.scrollParents) {
1329
+ EventHandler.add(parent, 'scroll', this.delegateParentScrollHandler, this);
1326
1330
  }
1327
1331
  }
1328
1332
  }
1329
1333
  if (!Browser.isDevice) {
1330
1334
  this.delegateMoverHandler = this.moverHandler.bind(this);
1331
1335
  this.delegateMouseDownHandler = this.mouseDownHandler.bind(this);
1336
+ this.delegateDomKeyHandler = this.domKeyHandler.bind(this);
1332
1337
  EventHandler.add(this.isMenu ? document : wrapper, 'mouseover', this.delegateMoverHandler, this);
1333
1338
  EventHandler.add(document, 'mousedown', this.delegateMouseDownHandler, this);
1334
- EventHandler.add(document, 'keydown', this.domKeyHandler, this);
1339
+ EventHandler.add(document, 'keydown', this.delegateDomKeyHandler, this);
1335
1340
  if (!this.isMenu && !this.target) {
1336
- EventHandler.add(document, 'scroll', this.scrollHandler, this);
1341
+ this.delegateScrollHandler = this.scrollHandler.bind(this);
1342
+ EventHandler.add(document, 'scroll', this.delegateScrollHandler, this);
1337
1343
  }
1338
1344
  }
1339
1345
  this.delegateClickHandler = this.clickHandler.bind(this);
@@ -1342,7 +1348,8 @@ let MenuBase = class MenuBase extends Component {
1342
1348
  this.rippleFn = rippleEffect(wrapper, { selector: '.' + ITEM });
1343
1349
  if (!this.isMenu && this.enableScrolling) {
1344
1350
  this.enableTouchScroll(wrapper);
1345
- document.addEventListener('touchstart', this.touchOutsideHandler.bind(this), { passive: true });
1351
+ this.delegateTouchOutsideHandler = this.touchOutsideHandler.bind(this);
1352
+ document.addEventListener('touchstart', this.delegateTouchOutsideHandler, { passive: true });
1346
1353
  }
1347
1354
  }
1348
1355
  wireKeyboardEvent(element) {
@@ -1647,6 +1654,7 @@ let MenuBase = class MenuBase extends Component {
1647
1654
  if (this.isCMenu) {
1648
1655
  if (this.canOpen(e.target)) {
1649
1656
  this.openMenu(null, null, this.pageY, this.pageX, e);
1657
+ this.isCmenuOpened = true;
1650
1658
  }
1651
1659
  this.isCMenu = false;
1652
1660
  }
@@ -3023,32 +3031,58 @@ let MenuBase = class MenuBase extends Component {
3023
3031
  }
3024
3032
  }
3025
3033
  else {
3026
- EventHandler.remove(target, 'contextmenu', this.cmenuHandler);
3034
+ if (this.delegateContextMenuHandler) {
3035
+ EventHandler.remove(target, 'contextmenu', this.delegateContextMenuHandler);
3036
+ this.delegateContextMenuHandler = null;
3037
+ }
3027
3038
  }
3028
3039
  }
3029
3040
  }
3030
3041
  if (!this.isMenu) {
3031
3042
  EventHandler.remove(this.targetElement, 'scroll', this.scrollHandler);
3032
- for (const parent of getScrollableParent(this.targetElement)) {
3033
- EventHandler.remove(parent, 'scroll', this.scrollHandler);
3043
+ if (this.scrollParents) {
3044
+ for (const parent of this.scrollParents) {
3045
+ EventHandler.remove(parent, 'scroll', this.delegateParentScrollHandler);
3046
+ }
3047
+ this.delegateParentScrollHandler = null;
3048
+ this.scrollParents.length = 0;
3049
+ this.scrollParents = null;
3034
3050
  }
3035
3051
  }
3036
3052
  }
3037
3053
  if (!Browser.isDevice) {
3038
- EventHandler.remove(this.isMenu ? document : wrapper, 'mouseover', this.delegateMoverHandler);
3039
- EventHandler.remove(document, 'mousedown', this.delegateMouseDownHandler);
3040
- EventHandler.remove(document, 'keydown', this.domKeyHandler);
3054
+ if (this.delegateMoverHandler) {
3055
+ EventHandler.remove(this.isMenu ? document : wrapper, 'mouseover', this.delegateMoverHandler);
3056
+ this.delegateMoverHandler = null;
3057
+ }
3058
+ if (this.delegateMouseDownHandler) {
3059
+ EventHandler.remove(document, 'mousedown', this.delegateMouseDownHandler);
3060
+ this.delegateMouseDownHandler = null;
3061
+ }
3062
+ if (this.delegateDomKeyHandler) {
3063
+ EventHandler.remove(document, 'keydown', this.delegateDomKeyHandler);
3064
+ this.delegateDomKeyHandler = null;
3065
+ }
3041
3066
  if (!this.isMenu && !this.target) {
3042
- EventHandler.remove(document, 'scroll', this.scrollHandler);
3067
+ if (this.delegateScrollHandler) {
3068
+ EventHandler.remove(document, 'scroll', this.delegateScrollHandler);
3069
+ this.delegateScrollHandler = null;
3070
+ }
3043
3071
  }
3044
3072
  }
3045
- EventHandler.remove(document, 'click', this.delegateClickHandler);
3073
+ if (this.delegateClickHandler) {
3074
+ EventHandler.remove(document, 'click', this.delegateClickHandler);
3075
+ this.delegateClickHandler = null;
3076
+ }
3046
3077
  this.unWireKeyboardEvent(wrapper);
3047
3078
  this.rippleFn();
3048
3079
  if (!this.isMenu && this.enableScrolling) {
3049
3080
  wrapper.removeEventListener('touchstart', this.touchStartFn);
3050
3081
  wrapper.removeEventListener('touchmove', this.touchMoveFn);
3051
- document.removeEventListener('touchstart', this.touchOutsideHandler);
3082
+ if (this.delegateTouchOutsideHandler) {
3083
+ document.removeEventListener('touchstart', this.delegateTouchOutsideHandler);
3084
+ this.delegateTouchOutsideHandler = null;
3085
+ }
3052
3086
  }
3053
3087
  }
3054
3088
  unWireKeyboardEvent(element) {
@@ -3483,6 +3517,17 @@ let MenuBase = class MenuBase extends Component {
3483
3517
  const wrapper = this.getWrapper();
3484
3518
  if (wrapper) {
3485
3519
  this.unWireEvents();
3520
+ this.delegateClickHandler = null;
3521
+ this.delegateMoverHandler = null;
3522
+ this.delegateMouseDownHandler = null;
3523
+ this.delegateDomKeyHandler = null;
3524
+ this.delegateScrollHandler = null;
3525
+ this.delegateTouchOutsideHandler = null;
3526
+ this.delegateParentScrollHandler = null;
3527
+ if (this.delegateContextMenuHandler) {
3528
+ EventHandler.remove(this.targetElement, 'contextmenu', this.delegateContextMenuHandler);
3529
+ this.delegateContextMenuHandler = null;
3530
+ }
3486
3531
  if (!this.isMenu) {
3487
3532
  this.clonedElement.style.display = '';
3488
3533
  if (this.clonedElement.tagName === 'EJS-CONTEXTMENU') {
@@ -3526,7 +3571,31 @@ let MenuBase = class MenuBase extends Component {
3526
3571
  wrapper.parentNode.insertBefore(this.element, wrapper);
3527
3572
  this.clonedElement = null;
3528
3573
  }
3574
+ if (this.popupObj) {
3575
+ this.popupObj.destroy();
3576
+ this.popupObj = null;
3577
+ }
3578
+ this.currentTarget = null;
3579
+ this.targetElement = null;
3580
+ if (this.animation) {
3581
+ this.animation.destroy();
3582
+ this.animation = null;
3583
+ }
3584
+ if (!this.isMenu && !this.isCmenuOpened && this.element) {
3585
+ const elementInstance = getValue('ej2_instances', this.element);
3586
+ if (elementInstance && Array.isArray(elementInstance)) {
3587
+ elementInstance.length = 0;
3588
+ setValue('ej2_instances', elementInstance, this.element);
3589
+ }
3590
+ }
3529
3591
  detach(wrapper);
3592
+ if (this.uList && !document.body.contains(this.uList)) {
3593
+ const ulInstance = getValue('ej2_instances', this.uList);
3594
+ if (ulInstance && Array.isArray(ulInstance)) {
3595
+ ulInstance.length = 0;
3596
+ setValue('ej2_instances', ulInstance, this.uList);
3597
+ }
3598
+ }
3530
3599
  super.destroy();
3531
3600
  if (this.template) {
3532
3601
  this.clearTemplate(['template']);
@@ -6249,6 +6318,10 @@ let Accordion = class Accordion extends Component {
6249
6318
  if (!isNullOrUndefined(this.keyModule)) {
6250
6319
  this.keyModule.destroy();
6251
6320
  }
6321
+ const headerEles = [].slice.call(this.element.querySelectorAll('.' + CLS_HEADER));
6322
+ for (const hdr of headerEles) {
6323
+ EventHandler.clearEvents(hdr);
6324
+ }
6252
6325
  }
6253
6326
  wireEvents() {
6254
6327
  EventHandler.add(this.element, 'click', this.clickHandler, this);
@@ -7160,6 +7233,10 @@ let Accordion = class Accordion extends Component {
7160
7233
  this.clearTemplate();
7161
7234
  }
7162
7235
  [].slice.call(this.element.querySelectorAll('.' + CLS_ITEM$1)).forEach((el) => {
7236
+ const hdr = select('.' + CLS_HEADER, el);
7237
+ if (hdr) {
7238
+ EventHandler.clearEvents(hdr);
7239
+ }
7163
7240
  detach(el);
7164
7241
  });
7165
7242
  }
@@ -15002,6 +15079,18 @@ let TreeView = TreeView_1 = class TreeView extends Component {
15002
15079
  this.wireExpandOnEvent(false);
15003
15080
  EventHandler.remove(this.element, 'mouseover', this.onMouseOver);
15004
15081
  EventHandler.remove(this.element, 'mouseout', this.onMouseLeave);
15082
+ const liElements = selectAll('.' + LISTITEM, this.element);
15083
+ for (let i = 0; i < liElements.length; i++) {
15084
+ const li = liElements[parseInt(i.toString(), 10)];
15085
+ EventHandler.remove(li, 'focus', this.focusIn);
15086
+ EventHandler.remove(li, 'blur', this.focusOut);
15087
+ const frame = select('.' + CHECKBOXFRAME, li);
15088
+ if (frame) {
15089
+ EventHandler.remove(frame, 'mousedown', this.frameMouseHandler);
15090
+ EventHandler.remove(frame, 'mouseup', this.frameMouseHandler);
15091
+ EventHandler.remove(frame, 'mouseleave', this.frameMouseHandler);
15092
+ }
15093
+ }
15005
15094
  if (!this.disabled) {
15006
15095
  this.keyboardModule.destroy();
15007
15096
  }
@@ -16203,6 +16292,7 @@ let Sidebar = class Sidebar extends Component {
16203
16292
  constructor(options, element) {
16204
16293
  super(options, element);
16205
16294
  this.documentClickContext = this.documentclickHandler.bind(this);
16295
+ this.resizeHandler = this.resize.bind(this);
16206
16296
  }
16207
16297
  preRender() {
16208
16298
  this.setWidth();
@@ -16605,11 +16695,12 @@ let Sidebar = class Sidebar extends Component {
16605
16695
  }
16606
16696
  wireEvents() {
16607
16697
  this.setEnableGestures();
16608
- EventHandler.add(window, 'resize', this.resize, this);
16698
+ EventHandler.add(window, 'resize', this.resizeHandler);
16609
16699
  }
16610
16700
  unWireEvents() {
16611
- EventHandler.remove(window, 'resize', this.resize);
16701
+ EventHandler.remove(window, 'resize', this.resizeHandler);
16612
16702
  EventHandler.remove(document, 'mousedown touchstart', this.documentclickHandler);
16703
+ EventHandler.remove(this.element, 'transitionend', this.transitionEnd);
16613
16704
  if (this.mainContentEle) {
16614
16705
  this.mainContentEle.destroy();
16615
16706
  }
@@ -17479,7 +17570,7 @@ let Breadcrumb = class Breadcrumb extends Component {
17479
17570
  detach(this.popupObj.element);
17480
17571
  }
17481
17572
  }
17482
- resize() {
17573
+ resize(e) {
17483
17574
  this._maxItems = this.maxItems;
17484
17575
  this.initPvtProps();
17485
17576
  this.reRenderItems();
@@ -17569,7 +17660,8 @@ let Breadcrumb = class Breadcrumb extends Component {
17569
17660
  this.delegateClickHanlder = this.documentClickHandler.bind(this);
17570
17661
  EventHandler.add(document, 'click', this.delegateClickHanlder, this);
17571
17662
  EventHandler.add(this.element, 'click', this.clickHandler, this);
17572
- window.addEventListener('resize', this.resize.bind(this));
17663
+ this.resizeHandler = this.resize.bind(this);
17664
+ window.addEventListener('resize', this.resizeHandler);
17573
17665
  }
17574
17666
  popupWireEvents() {
17575
17667
  EventHandler.add(this.popupObj.element, 'click', this.clickHandler, this);
@@ -17578,7 +17670,8 @@ let Breadcrumb = class Breadcrumb extends Component {
17578
17670
  unWireEvents() {
17579
17671
  EventHandler.remove(document, 'click', this.delegateClickHanlder);
17580
17672
  EventHandler.remove(this.element, 'click', this.clickHandler);
17581
- window.removeEventListener('resize', this.resize.bind(this));
17673
+ window.removeEventListener('resize', this.resizeHandler);
17674
+ this.resizeHandler = null;
17582
17675
  if (this.popupObj) {
17583
17676
  EventHandler.remove(this.popupObj.element, 'click', this.clickHandler);
17584
17677
  EventHandler.remove(this.popupObj.element, 'keydown', this.popupKeyDownHandler);
@@ -19643,12 +19736,20 @@ let Stepper = class Stepper extends StepperBase {
19643
19736
  }
19644
19737
  }
19645
19738
  wireEvents() {
19646
- EventHandler.add(window, 'resize', this.updateResize, this);
19647
- EventHandler.add(window, 'click', this.updateStepFocus, this);
19739
+ this.windowEventHandlers = {};
19740
+ this.windowEventHandlers.resize = this.updateResize.bind(this);
19741
+ this.windowEventHandlers.click = this.updateStepFocus.bind(this);
19742
+ EventHandler.add(window, 'resize', this.windowEventHandlers.resize);
19743
+ EventHandler.add(window, 'click', this.windowEventHandlers.click);
19648
19744
  }
19649
19745
  unWireEvents() {
19650
- EventHandler.remove(window, 'resize', this.updateResize);
19651
- EventHandler.remove(window, 'click', this.updateStepFocus);
19746
+ EventHandler.remove(window, 'resize', this.windowEventHandlers && this.windowEventHandlers.resize);
19747
+ EventHandler.remove(window, 'click', this.windowEventHandlers && this.windowEventHandlers.click);
19748
+ if (this.windowEventHandlers) {
19749
+ this.windowEventHandlers.resize = null;
19750
+ this.windowEventHandlers.click = null;
19751
+ this.windowEventHandlers = null;
19752
+ }
19652
19753
  }
19653
19754
  updateResize() {
19654
19755
  if (this.stepperItemList && this.progressbar && this.element.classList.contains(HORIZSTEP$1)) {