@syncfusion/ej2-navigations 26.1.39 → 26.1.41

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.
@@ -1679,7 +1679,8 @@ let MenuBase = class MenuBase extends Component {
1679
1679
  else if (isOpen && isNullOrUndefined(ulIndex) && this.navIdx.length) {
1680
1680
  this.closeMenu(null, e);
1681
1681
  }
1682
- else if (isOpen && !this.isMenu && !ulIndex && this.navIdx.length === 0 && !this.isMenusClosed && !this.isCmenuHover) {
1682
+ else if (isOpen && !this.isMenu && !ulIndex && this.navIdx.length === 0 &&
1683
+ !this.isMenusClosed && !this.isCmenuHover) {
1683
1684
  this.isMenusClosed = true;
1684
1685
  this.closeMenu(0, e);
1685
1686
  }
@@ -3587,8 +3588,10 @@ let Toolbar = class Toolbar extends Component {
3587
3588
  this.unwireKeyboardEvent();
3588
3589
  window.removeEventListener('resize', this.resizeContext);
3589
3590
  window.removeEventListener('orientationchange', this.orientationChangeContext);
3590
- EventHandler.remove(document, 'scroll', this.docEvent);
3591
- EventHandler.remove(document, 'click', this.docEvent);
3591
+ document.removeEventListener('scroll', this.clickEvent);
3592
+ document.removeEventListener('click', this.scrollEvent);
3593
+ this.scrollEvent = null;
3594
+ this.clickEvent = null;
3592
3595
  }
3593
3596
  clearProperty() {
3594
3597
  this.tbarEle = [];
@@ -3985,6 +3988,8 @@ let Toolbar = class Toolbar extends Component {
3985
3988
  this.initialize();
3986
3989
  this.renderControl();
3987
3990
  this.wireEvents();
3991
+ this.clickEvent = this.docEvent.bind(this);
3992
+ this.scrollEvent = this.docEvent.bind(this);
3988
3993
  this.renderComplete();
3989
3994
  if (this.isReact && this.portals && this.portals.length > 0) {
3990
3995
  this.renderReactTemplates(() => {
@@ -4369,8 +4374,8 @@ let Toolbar = class Toolbar extends Component {
4369
4374
  popup.offsetX = 0;
4370
4375
  }
4371
4376
  popup.appendTo(ele);
4372
- EventHandler.add(document, 'scroll', this.docEvent.bind(this));
4373
- EventHandler.add(document, 'click ', this.docEvent.bind(this));
4377
+ document.addEventListener('scroll', this.clickEvent);
4378
+ document.addEventListener('click', this.scrollEvent);
4374
4379
  if (this.overflowMode !== 'Extended') {
4375
4380
  popup.element.style.maxHeight = popup.element.offsetHeight + 'px';
4376
4381
  }
@@ -9834,7 +9839,7 @@ const DISABLE = 'e-disable';
9834
9839
  const DROPCOUNT = 'e-drop-count';
9835
9840
  const CHECK = 'e-check';
9836
9841
  const INDETERMINATE = 'e-stop';
9837
- const CHECKBOXWRAP = 'e-checkbox-wrapper';
9842
+ const CHECKBOXWRAP = 'e-treeview-checkbox';
9838
9843
  const CHECKBOXFRAME = 'e-frame';
9839
9844
  const CHECKBOXRIPPLE = 'e-ripple-container';
9840
9845
  const RIPPLE = 'e-ripple';
@@ -9966,6 +9971,7 @@ let TreeView = TreeView_1 = class TreeView extends Component {
9966
9971
  this.isRightClick = false;
9967
9972
  this.mouseDownStatus = false;
9968
9973
  this.isDropIn = false;
9974
+ this.OldCheckedData = [];
9969
9975
  }
9970
9976
  /**
9971
9977
  * Get component name.
@@ -10036,6 +10042,7 @@ let TreeView = TreeView_1 = class TreeView extends Component {
10036
10042
  this.expandChildren = [];
10037
10043
  this.index = 0;
10038
10044
  this.setTouchClass();
10045
+ this.DDTTreeData = JSON.parse(JSON.stringify(this.fields.dataSource));
10039
10046
  if (isNullOrUndefined(this.selectedNodes)) {
10040
10047
  this.setProperties({ selectedNodes: [] }, true);
10041
10048
  }
@@ -10411,15 +10418,23 @@ let TreeView = TreeView_1 = class TreeView extends Component {
10411
10418
  updateParentCheckState() {
10412
10419
  const indeterminate = selectAll('.' + INDETERMINATE, this.element);
10413
10420
  let childCheckedElement;
10421
+ let data = this.treeData;
10422
+ if (this.element.classList.contains('e-filtering')) {
10423
+ data = this.DDTTreeData;
10424
+ }
10414
10425
  for (let i = 0; i < indeterminate.length; i++) {
10415
10426
  const node = closest(indeterminate[parseInt(i.toString(), 10)], '.' + LISTITEM);
10416
10427
  const nodeId = node.getAttribute('data-uid').toString();
10428
+ let OldCheckedNodes;
10429
+ if (this.element.classList.contains('e-filtering')) {
10430
+ OldCheckedNodes = new DataManager(this.OldCheckedData).executeLocal(new Query().where('parentID', 'equal', nodeId, true));
10431
+ }
10417
10432
  if (this.dataType === 1) {
10418
- childCheckedElement = new DataManager(this.treeData).
10433
+ childCheckedElement = new DataManager(data).
10419
10434
  executeLocal(new Query().where(this.fields.parentID, 'equal', nodeId, true));
10420
10435
  }
10421
10436
  else {
10422
- childCheckedElement = this.getChildNodes(this.treeData, nodeId);
10437
+ childCheckedElement = this.getChildNodes(data, nodeId);
10423
10438
  }
10424
10439
  let count = 0;
10425
10440
  if (childCheckedElement) {
@@ -10428,6 +10443,9 @@ let TreeView = TreeView_1 = class TreeView extends Component {
10428
10443
  if (this.checkedNodes.indexOf(childId) !== -1) {
10429
10444
  count++;
10430
10445
  }
10446
+ else if (this.element.classList.contains('e-filtering') && OldCheckedNodes.findIndex((e) => e['id'] === childId) !== -1) {
10447
+ count++;
10448
+ }
10431
10449
  }
10432
10450
  if (count === childCheckedElement.length) {
10433
10451
  const nodeCheck = node.getAttribute('data-uid');
@@ -10520,6 +10538,7 @@ let TreeView = TreeView_1 = class TreeView extends Component {
10520
10538
  beforeNodeCreate(e) {
10521
10539
  if (this.showCheckBox) {
10522
10540
  const checkboxEle = createCheckBox(this.createElement, true, { cssClass: this.touchClass });
10541
+ checkboxEle.classList.add(CHECKBOXWRAP);
10523
10542
  const icon = select('div.' + ICON, e.item);
10524
10543
  const id = e.item.getAttribute('data-uid');
10525
10544
  e.item.childNodes[0].insertBefore(checkboxEle, e.item.childNodes[0].childNodes[isNullOrUndefined(icon) ? 0 : 1]);
@@ -10705,13 +10724,28 @@ let TreeView = TreeView_1 = class TreeView extends Component {
10705
10724
  const indeterminateNodes = selectAll('.' + INDETERMINATE, ulElement);
10706
10725
  const nodes = selectAll('.' + LISTITEM, ulElement);
10707
10726
  const checkBoxEle = element.getElementsByClassName(CHECKBOXWRAP)[0];
10708
- if (nodes.length === checkedNodes.length) {
10727
+ let count = nodes.length;
10728
+ let checkedCount = checkedNodes.length;
10729
+ const dataUid = element.getAttribute('data-uid');
10730
+ if (this.element.classList.contains('e-filtering')) {
10731
+ const oldCheckedNodes = new DataManager(this.OldCheckedData).executeLocal(new Query().where('parentID', 'equal', dataUid, true));
10732
+ checkedCount = oldCheckedNodes.length;
10733
+ let childItems = [];
10734
+ if (this.dataType === 1) {
10735
+ childItems = new DataManager(this.DDTTreeData).executeLocal(new Query().where(this.fields.parentID, 'equal', dataUid, true));
10736
+ }
10737
+ else {
10738
+ childItems = this.getChildNodes(this.DDTTreeData, dataUid);
10739
+ }
10740
+ count = childItems.length;
10741
+ }
10742
+ if (count === checkedCount) {
10709
10743
  this.changeState(checkBoxEle, 'check', null, true, true);
10710
10744
  }
10711
- else if (checkedNodes.length > 0 || indeterminateNodes.length > 0) {
10745
+ else if (checkedCount > 0 || indeterminateNodes.length > 0) {
10712
10746
  this.changeState(checkBoxEle, 'indeterminate', null, true, true);
10713
10747
  }
10714
- else if (checkedNodes.length === 0) {
10748
+ else if (checkedCount === 0) {
10715
10749
  this.changeState(checkBoxEle, 'uncheck', null, true, true);
10716
10750
  }
10717
10751
  const parentUL = closest(element, '.' + PARENTITEM);
@@ -11344,6 +11378,25 @@ let TreeView = TreeView_1 = class TreeView extends Component {
11344
11378
  eventArgs.data = eventArgs.data.splice(0, eventArgs.data.length - 1);
11345
11379
  this.trigger('nodeChecked', eventArgs);
11346
11380
  }
11381
+ updateOldCheckedData(data) {
11382
+ const dataManager = new DataManager(data);
11383
+ const childItems = dataManager.executeLocal(new Query().where('isChecked', 'equal', 'true', true));
11384
+ const uncheckedItems = dataManager.executeLocal(new Query().where('isChecked', 'equal', 'false', true));
11385
+ if (uncheckedItems.length > 0) {
11386
+ const index = this.OldCheckedData.findIndex((e) => e['id'] === uncheckedItems[0]['id']);
11387
+ if (index !== -1) {
11388
+ this.OldCheckedData.splice(index, 1);
11389
+ return;
11390
+ }
11391
+ }
11392
+ if (childItems.length > 0) {
11393
+ const index = this.OldCheckedData.findIndex((e) => e['id'] === childItems[0]['id']);
11394
+ if (index === -1) {
11395
+ this.OldCheckedData.push(childItems[0]);
11396
+ return;
11397
+ }
11398
+ }
11399
+ }
11347
11400
  triggerClickEvent(e, li) {
11348
11401
  const eventArgs = {
11349
11402
  event: e,
@@ -12177,6 +12230,7 @@ let TreeView = TreeView_1 = class TreeView extends Component {
12177
12230
  this.changeState(checkWrap, isCheck ? 'uncheck' : 'check', e, true);
12178
12231
  if (this.autoCheck) {
12179
12232
  this.ensureChildCheckState(li);
12233
+ this.updateOldCheckedData([this.getNodeData(li)]);
12180
12234
  this.ensureParentCheckState(closest(closest(li, '.' + PARENTITEM), '.' + LISTITEM));
12181
12235
  let doCheck;
12182
12236
  if (eventArgs.action === 'check') {
@@ -14532,6 +14586,9 @@ let TreeView = TreeView_1 = class TreeView extends Component {
14532
14586
  this.initialRender = true;
14533
14587
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
14534
14588
  if (!this.isReact || this.isReact && !(this.fields.dataSource instanceof DataManager)) {
14589
+ if (!this.element.classList.contains('e-filtering')) {
14590
+ this.DDTTreeData = JSON.parse(JSON.stringify(this.fields.dataSource));
14591
+ }
14535
14592
  this.reRenderNodes();
14536
14593
  }
14537
14594
  this.initialRender = false;
@@ -18591,9 +18648,18 @@ let Stepper = class Stepper extends StepperBase {
18591
18648
  if (this.stepperItemList && this.progressbar && this.element.classList.contains(HORIZSTEP)) {
18592
18649
  this.setProgressPosition(this.element, true);
18593
18650
  }
18651
+ this.navigateToStep(this.activeStep, null, null, false);
18594
18652
  }, this);
18595
18653
  EventHandler.add(window, 'click', () => { this.updateStepFocus(); }, this);
18596
18654
  }
18655
+ unWireEvents() {
18656
+ EventHandler.remove(window, 'resize', () => {
18657
+ if (this.stepperItemList && this.progressbar && this.element.classList.contains(HORIZSTEP)) {
18658
+ this.setProgressPosition(this.element, true);
18659
+ }
18660
+ });
18661
+ EventHandler.remove(window, 'click', () => { this.updateStepFocus(); });
18662
+ }
18597
18663
  updateStepFocus() {
18598
18664
  if (this.isKeyNavFocus) {
18599
18665
  this.isKeyNavFocus = false;
@@ -19253,16 +19319,31 @@ let Stepper = class Stepper extends StepperBase {
19253
19319
  }
19254
19320
  this.stepperItemElements = [];
19255
19321
  }
19322
+ /**
19323
+ * Move to next step from current step in Stepper.
19324
+ *
19325
+ * @returns {void}
19326
+ */
19256
19327
  nextStep() {
19257
19328
  if (this.activeStep !== this.steps.length - 1) {
19258
19329
  this.navigateToStep(this.activeStep + 1, null, null, false);
19259
19330
  }
19260
19331
  }
19332
+ /**
19333
+ * Move to previous step from current step in Stepper.
19334
+ *
19335
+ * @returns {void}
19336
+ */
19261
19337
  previousStep() {
19262
19338
  if (this.activeStep > 0) {
19263
19339
  this.navigateToStep(this.activeStep - 1, null, null, false);
19264
19340
  }
19265
19341
  }
19342
+ /**
19343
+ * Reset the state of the Stepper and move to the first step.
19344
+ *
19345
+ * @returns {void}
19346
+ */
19266
19347
  reset() {
19267
19348
  if (this.activeStep === 0) {
19268
19349
  this.updateStepInteractions();
@@ -19272,17 +19353,30 @@ let Stepper = class Stepper extends StepperBase {
19272
19353
  this.navigateToStep(isDisabled ? -1 : 0, null, null, false);
19273
19354
  }
19274
19355
  }
19356
+ /**
19357
+ * Refreshes the position of the progress bar programmatically when the dimensions of the parent container are changed.
19358
+ *
19359
+ * @returns {void}
19360
+ */
19361
+ refreshProgressbar() {
19362
+ if (this.stepperItemList && this.progressbar) {
19363
+ this.setProgressPosition(this.element);
19364
+ }
19365
+ this.navigateToStep(this.activeStep, null, null, false);
19366
+ }
19275
19367
  updateElementClassArray() {
19276
19368
  const classArray = [RTL$3, READONLY, 'e-steps-focus', LABELAFTER, LABELBEFORE, 'e-label-top',
19277
19369
  'e-label-bottom', 'e-label-start', 'e-label-end', STEPINDICATOR, LABELINDICATOR, VERTICALSTEP, HORIZSTEP, LINEARSTEP];
19278
19370
  removeClass([this.element], classArray);
19279
19371
  }
19372
+ /**
19373
+ * Destroy the stepper control.
19374
+ *
19375
+ * @returns {void}
19376
+ */
19280
19377
  destroy() {
19281
19378
  super.destroy();
19282
- EventHandler.remove(window, 'resize', () => { if (this.stepperItemList && this.progressbar) {
19283
- this.setProgressPosition(this.element, true);
19284
- } });
19285
- EventHandler.remove(window, 'click', () => { this.updateStepFocus(); });
19379
+ this.unWireEvents();
19286
19380
  // unwires the events and detach the li elements
19287
19381
  this.removeItemElements();
19288
19382
  this.clearTemplate();