@syncfusion/ej2-dropdowns 26.2.9 → 26.2.11

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.
@@ -7029,6 +7029,39 @@ let DropDownTree = class DropDownTree extends Component {
7029
7029
  input: this.filterChangeHandler.bind(this)
7030
7030
  });
7031
7031
  this.filterObj.appendTo('#' + this.element.id + '_filter');
7032
+ this.keyboardModule = new KeyboardEvents(this.filterObj.element, {
7033
+ keyAction: this.filterKeyAction.bind(this),
7034
+ keyConfigs: this.keyConfigs,
7035
+ eventName: 'keydown'
7036
+ });
7037
+ }
7038
+ filterKeyAction(e) {
7039
+ const eventArgs = {
7040
+ cancel: false,
7041
+ event: e
7042
+ };
7043
+ this.trigger('keyPress', eventArgs, (observedArgs) => {
7044
+ if (!observedArgs.cancel) {
7045
+ switch (e.action) {
7046
+ case 'altUp':
7047
+ if (this.isPopupOpen) {
7048
+ this.hidePopup();
7049
+ }
7050
+ break;
7051
+ case 'shiftTab':
7052
+ addClass([this.inputWrapper], [INPUTFOCUS]);
7053
+ break;
7054
+ case 'moveDown':
7055
+ e.preventDefault();
7056
+ this.filterObj.element.blur();
7057
+ let focusedElement = this.treeObj.element.querySelector('li');
7058
+ if (focusedElement) {
7059
+ focusedElement.focus();
7060
+ }
7061
+ break;
7062
+ }
7063
+ }
7064
+ });
7032
7065
  }
7033
7066
  filterChangeHandler(args) {
7034
7067
  if (!isNullOrUndefined(args.value)) {
@@ -7520,7 +7553,6 @@ let DropDownTree = class DropDownTree extends Component {
7520
7553
  }
7521
7554
  break;
7522
7555
  case 'shiftTab':
7523
- case 'tab':
7524
7556
  if (this.isPopupOpen) {
7525
7557
  this.hidePopup();
7526
7558
  }
@@ -8061,10 +8093,10 @@ let DropDownTree = class DropDownTree extends Component {
8061
8093
  }
8062
8094
  else {
8063
8095
  if (this.showCheckBox) {
8064
- const difference = this.value.filter((e) => {
8096
+ const difference = this.value.length !== this.treeObj.checkedNodes.length || this.value.filter((e) => {
8065
8097
  return this.treeObj.checkedNodes.indexOf(e) === -1;
8066
- });
8067
- if (difference.length > 0 || this.treeSettings.autoCheck) {
8098
+ }).length > 0;
8099
+ if (difference || this.treeSettings.autoCheck) {
8068
8100
  this.treeObj.checkedNodes = this.value.slice();
8069
8101
  this.treeObj.dataBind();
8070
8102
  this.setMultiSelect();
@@ -8232,13 +8264,16 @@ let DropDownTree = class DropDownTree extends Component {
8232
8264
  }
8233
8265
  else {
8234
8266
  const oldFocussedNode = this.treeObj.element.querySelector('.e-node-focus');
8235
- focusedElement = this.treeObj.element.querySelector('li:not(.e-disable):not(.e-prevent)');
8267
+ focusedElement = this.treeObj.element.querySelector('li[tabindex="0"]:not(.e-disable):not(.e-prevent)') ||
8268
+ this.treeObj.element.querySelector('li:not(.e-disable):not(.e-prevent)');
8236
8269
  if (oldFocussedNode && oldFocussedNode !== focusedElement) {
8237
8270
  oldFocussedNode.setAttribute('tabindex', '-1');
8238
8271
  removeClass([oldFocussedNode], 'e-node-focus');
8239
8272
  }
8240
8273
  }
8241
- focusedElement.focus();
8274
+ if (!this.allowFiltering) {
8275
+ focusedElement.focus();
8276
+ }
8242
8277
  addClass([focusedElement], ['e-node-focus']);
8243
8278
  }
8244
8279
  if (this.treeObj.checkedNodes.length > 0) {
@@ -14623,6 +14658,12 @@ let MultiSelect = class MultiSelect extends DropDownBase {
14623
14658
  if (this.enabled && !this.readonly) {
14624
14659
  let temp;
14625
14660
  if (this.value && this.value.length > 0) {
14661
+ if (this.allowFiltering) {
14662
+ this.refreshListItems(null);
14663
+ if (this.mode === 'CheckBox' && this.targetInputElement) {
14664
+ this.targetInputElement.value = '';
14665
+ }
14666
+ }
14626
14667
  const liElement = this.list && this.list.querySelectorAll('li.e-list-item');
14627
14668
  if (liElement && liElement.length > 0) {
14628
14669
  this.selectAllItems(false, e);
@@ -14640,6 +14681,11 @@ let MultiSelect = class MultiSelect extends DropDownBase {
14640
14681
  this.clearAllCallback(e);
14641
14682
  }
14642
14683
  this.checkAndResetCache();
14684
+ Input.createSpanElement(this.overAllWrapper, this.createElement);
14685
+ this.calculateWidth();
14686
+ if (!isNullOrUndefined(this.overAllWrapper) && !isNullOrUndefined(this.overAllWrapper.getElementsByClassName('e-ddl-icon')[0] && this.overAllWrapper.getElementsByClassName('e-float-text-content')[0] && this.floatLabelType !== 'Never')) {
14687
+ this.overAllWrapper.getElementsByClassName('e-float-text-content')[0].classList.add('e-icon');
14688
+ }
14643
14689
  if (this.enableVirtualization) {
14644
14690
  this.updateInitialData();
14645
14691
  if (this.chipCollectionWrapper) {
@@ -14708,11 +14754,13 @@ let MultiSelect = class MultiSelect extends DropDownBase {
14708
14754
  }
14709
14755
  }
14710
14756
  resetValueHandler(e) {
14711
- const formElement = closest(this.inputElement, 'form');
14712
- if (formElement && e.target === formElement) {
14713
- const textVal = (this.element.tagName === this.getNgDirective()) ?
14714
- null : this.element.getAttribute('data-initial-value');
14715
- this.text = textVal;
14757
+ if (!isNullOrUndefined(this.inputElement)) {
14758
+ const formElement = closest(this.inputElement, 'form');
14759
+ if (formElement && e.target === formElement) {
14760
+ const textVal = (this.element.tagName === this.getNgDirective()) ?
14761
+ null : this.element.getAttribute('data-initial-value');
14762
+ this.text = textVal;
14763
+ }
14716
14764
  }
14717
14765
  }
14718
14766
  wireEvent() {
@@ -17822,13 +17870,21 @@ class CheckBoxSelection {
17822
17870
  setSearchBoxPosition() {
17823
17871
  const searchBoxHeight = this.filterInput.parentElement.getBoundingClientRect().height;
17824
17872
  let selectAllHeight = 0;
17873
+ let footerHeight = 0;
17874
+ let headerHeight = 0;
17825
17875
  if (this.checkAllParent) {
17826
17876
  selectAllHeight = this.checkAllParent.getBoundingClientRect().height;
17827
17877
  }
17878
+ if (this.parent.header) {
17879
+ headerHeight = this.parent.header.getBoundingClientRect().height;
17880
+ }
17881
+ if (this.parent.footer) {
17882
+ footerHeight = this.parent.footer.getBoundingClientRect().height;
17883
+ }
17828
17884
  this.parent.popupObj.element.style.maxHeight = '100%';
17829
17885
  this.parent.popupObj.element.style.width = '100%';
17830
- this.parent.list.style.maxHeight = (window.innerHeight - searchBoxHeight - selectAllHeight) + 'px';
17831
- this.parent.list.style.height = (window.innerHeight - searchBoxHeight - selectAllHeight) + 'px';
17886
+ this.parent.list.style.maxHeight = (window.innerHeight - searchBoxHeight - selectAllHeight - headerHeight - footerHeight) + 'px';
17887
+ this.parent.list.style.height = (window.innerHeight - searchBoxHeight - selectAllHeight - headerHeight - footerHeight) + 'px';
17832
17888
  const clearElement = this.filterInput.parentElement.querySelector('.' + clearIcon);
17833
17889
  detach(this.filterInput);
17834
17890
  clearElement.parentElement.insertBefore(this.filterInput, clearElement);
@@ -21804,7 +21860,13 @@ let Mention = class Mention extends DropDownBase {
21804
21860
  range.insertNode(frag);
21805
21861
  if (lastNode) {
21806
21862
  range = range.cloneRange();
21807
- range.setStartAfter(lastNode);
21863
+ if (this.isRTE) {
21864
+ range.setStart(lastNode, 0);
21865
+ range.setEnd(lastNode, lastNode.textContent.length);
21866
+ }
21867
+ else {
21868
+ range.setStartAfter(lastNode);
21869
+ }
21808
21870
  range.collapse(true);
21809
21871
  selection.removeAllRanges();
21810
21872
  selection.addRange(range);