@syncfusion/ej2-dropdowns 28.1.38 → 28.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.
Files changed (87) hide show
  1. package/dist/ej2-dropdowns.min.js +2 -2
  2. package/dist/ej2-dropdowns.umd.min.js +2 -2
  3. package/dist/ej2-dropdowns.umd.min.js.map +1 -1
  4. package/dist/es6/ej2-dropdowns.es2015.js +84 -33
  5. package/dist/es6/ej2-dropdowns.es2015.js.map +1 -1
  6. package/dist/es6/ej2-dropdowns.es5.js +85 -33
  7. package/dist/es6/ej2-dropdowns.es5.js.map +1 -1
  8. package/dist/global/ej2-dropdowns.min.js +2 -2
  9. package/dist/global/ej2-dropdowns.min.js.map +1 -1
  10. package/dist/global/index.d.ts +1 -1
  11. package/package.json +8 -8
  12. package/src/combo-box/combo-box.js +2 -2
  13. package/src/common/interface.d.ts +1 -0
  14. package/src/common/virtual-scroll.js +1 -0
  15. package/src/drop-down-base/drop-down-base.js +3 -1
  16. package/src/drop-down-list/drop-down-list.d.ts +1 -0
  17. package/src/drop-down-list/drop-down-list.js +19 -4
  18. package/src/drop-down-tree/drop-down-tree.d.ts +1 -0
  19. package/src/drop-down-tree/drop-down-tree.js +13 -9
  20. package/src/list-box/list-box.js +1 -1
  21. package/src/mention/mention.js +3 -1
  22. package/src/multi-select/multi-select.d.ts +4 -2
  23. package/src/multi-select/multi-select.js +43 -15
  24. package/styles/bds-lite.css +8 -0
  25. package/styles/bds.css +8 -0
  26. package/styles/bootstrap-dark-lite.css +8 -0
  27. package/styles/bootstrap-dark.css +8 -0
  28. package/styles/bootstrap-lite.css +8 -0
  29. package/styles/bootstrap.css +8 -0
  30. package/styles/bootstrap4-lite.css +8 -0
  31. package/styles/bootstrap4.css +8 -0
  32. package/styles/bootstrap5-dark-lite.css +8 -0
  33. package/styles/bootstrap5-dark.css +8 -0
  34. package/styles/bootstrap5-lite.css +8 -0
  35. package/styles/bootstrap5.3-lite.css +8 -0
  36. package/styles/bootstrap5.3.css +8 -0
  37. package/styles/bootstrap5.css +8 -0
  38. package/styles/drop-down-list/_layout.scss +8 -0
  39. package/styles/drop-down-list/bds.css +8 -0
  40. package/styles/drop-down-list/bootstrap-dark.css +8 -0
  41. package/styles/drop-down-list/bootstrap.css +8 -0
  42. package/styles/drop-down-list/bootstrap4.css +8 -0
  43. package/styles/drop-down-list/bootstrap5-dark.css +8 -0
  44. package/styles/drop-down-list/bootstrap5.3.css +8 -0
  45. package/styles/drop-down-list/bootstrap5.css +8 -0
  46. package/styles/drop-down-list/fabric-dark.css +8 -0
  47. package/styles/drop-down-list/fabric.css +8 -0
  48. package/styles/drop-down-list/fluent-dark.css +8 -0
  49. package/styles/drop-down-list/fluent.css +8 -0
  50. package/styles/drop-down-list/fluent2.css +8 -0
  51. package/styles/drop-down-list/highcontrast-light.css +8 -0
  52. package/styles/drop-down-list/highcontrast.css +8 -0
  53. package/styles/drop-down-list/material-dark.css +8 -0
  54. package/styles/drop-down-list/material.css +8 -0
  55. package/styles/drop-down-list/material3-dark.css +8 -0
  56. package/styles/drop-down-list/material3.css +8 -0
  57. package/styles/drop-down-list/tailwind-dark.css +8 -0
  58. package/styles/drop-down-list/tailwind.css +8 -0
  59. package/styles/drop-down-list/tailwind3.css +8 -0
  60. package/styles/fabric-dark-lite.css +8 -0
  61. package/styles/fabric-dark.css +8 -0
  62. package/styles/fabric-lite.css +8 -0
  63. package/styles/fabric.css +8 -0
  64. package/styles/fluent-dark-lite.css +8 -0
  65. package/styles/fluent-dark.css +8 -0
  66. package/styles/fluent-lite.css +8 -0
  67. package/styles/fluent.css +8 -0
  68. package/styles/fluent2-lite.css +8 -0
  69. package/styles/fluent2.css +8 -0
  70. package/styles/highcontrast-light-lite.css +8 -0
  71. package/styles/highcontrast-light.css +8 -0
  72. package/styles/highcontrast-lite.css +8 -0
  73. package/styles/highcontrast.css +8 -0
  74. package/styles/material-dark-lite.css +8 -0
  75. package/styles/material-dark.css +8 -0
  76. package/styles/material-lite.css +8 -0
  77. package/styles/material.css +8 -0
  78. package/styles/material3-dark-lite.css +8 -0
  79. package/styles/material3-dark.css +8 -0
  80. package/styles/material3-lite.css +8 -0
  81. package/styles/material3.css +8 -0
  82. package/styles/tailwind-dark-lite.css +8 -0
  83. package/styles/tailwind-dark.css +8 -0
  84. package/styles/tailwind-lite.css +8 -0
  85. package/styles/tailwind.css +8 -0
  86. package/styles/tailwind3-lite.css +8 -0
  87. package/styles/tailwind3.css +8 -0
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 28.1.38
3
+ * version : 28.1.41
4
4
  * Copyright Syncfusion Inc. 2001 - 2024. All rights reserved.
5
5
  * Use of this code is subject to the terms of our license.
6
6
  * A copy of the current license can be obtained at any time by e-mailing
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "_from": "@syncfusion/ej2-dropdowns@*",
3
- "_id": "@syncfusion/ej2-dropdowns@28.1.37",
3
+ "_id": "@syncfusion/ej2-dropdowns@28.1.39",
4
4
  "_inBundle": false,
5
- "_integrity": "sha512-YBUYysD/7B2KQkM3EFVWMJW0Wlnc1qsEtsjZwWGung4kILvAZXjeI5IDuAkNp+L1cMn+rcUf+5stmZW2U4dHJA==",
5
+ "_integrity": "sha512-//F+3tKpHvooXKrEpdaelWdehcgo92MbgKaI4QOyCn3zBaXTAH4CJ3pEqUNCTz4ML3EhOvDFyRFYWMemRFCP1g==",
6
6
  "_location": "/@syncfusion/ej2-dropdowns",
7
7
  "_phantomChildren": {},
8
8
  "_requested": {
@@ -36,8 +36,8 @@
36
36
  "/@syncfusion/ej2-spreadsheet",
37
37
  "/@syncfusion/ej2-vue-dropdowns"
38
38
  ],
39
- "_resolved": "https://nexus.syncfusioninternal.com/repository/ej2-hotfix-new/@syncfusion/ej2-dropdowns/-/ej2-dropdowns-28.1.37.tgz",
40
- "_shasum": "071a9760d7254c4da9114cd668922351f4b6c64a",
39
+ "_resolved": "https://nexus.syncfusioninternal.com/repository/ej2-hotfix-new/@syncfusion/ej2-dropdowns/-/ej2-dropdowns-28.1.39.tgz",
40
+ "_shasum": "2502edc8b2aaac370eb276fbec8f3ab0ae2b0702",
41
41
  "_spec": "@syncfusion/ej2-dropdowns@*",
42
42
  "_where": "/jenkins/workspace/elease-automation_release_28.1.1/packages/included",
43
43
  "author": {
@@ -47,11 +47,11 @@
47
47
  "dependencies": {
48
48
  "@syncfusion/ej2-base": "~28.1.33",
49
49
  "@syncfusion/ej2-data": "~28.1.33",
50
- "@syncfusion/ej2-inputs": "~28.1.37",
50
+ "@syncfusion/ej2-inputs": "~28.1.41",
51
51
  "@syncfusion/ej2-lists": "~28.1.37",
52
- "@syncfusion/ej2-navigations": "~28.1.37",
52
+ "@syncfusion/ej2-navigations": "~28.1.41",
53
53
  "@syncfusion/ej2-notifications": "~28.1.33",
54
- "@syncfusion/ej2-popups": "~28.1.38"
54
+ "@syncfusion/ej2-popups": "~28.1.39"
55
55
  },
56
56
  "deprecated": false,
57
57
  "description": "Essential JS 2 DropDown Components",
@@ -76,7 +76,7 @@
76
76
  "module": "./index.js",
77
77
  "name": "@syncfusion/ej2-dropdowns",
78
78
  "typings": "index.d.ts",
79
- "version": "28.1.38",
79
+ "version": "28.1.41",
80
80
  "sideEffects": false,
81
81
  "homepage": "https://www.syncfusion.com/javascript-ui-controls"
82
82
  }
@@ -662,7 +662,7 @@ var ComboBox = /** @class */ (function (_super) {
662
662
  this.onChangeEvent(e);
663
663
  }
664
664
  }
665
- if (e.action === 'enter' && this.inputElement.value.trim() === '') {
665
+ if (e.action === 'enter' && this.inputElement.value === '') {
666
666
  this.clearAll(e);
667
667
  }
668
668
  else if (this.isTyped && !this.isSelected && isNullOrUndefined(li)) {
@@ -708,7 +708,7 @@ var ComboBox = /** @class */ (function (_super) {
708
708
  this.onChangeEvent(null);
709
709
  }
710
710
  }
711
- else if (this.inputElement.value.trim() !== '') {
711
+ else if (this.inputElement.value !== '') {
712
712
  var previousValue_1 = this.value;
713
713
  if (isNullOrUndefined(value)) {
714
714
  var value_1 = this.inputElement.value === '' ? null : this.inputElement.value;
@@ -111,4 +111,5 @@ export interface IDropdownlist extends Component<HTMLElement> {
111
111
  findListElement(list: HTMLElement, findNode: string, attribute: string, value: string | boolean | number): HTMLElement;
112
112
  scrollStop(e?: Event): void;
113
113
  targetElement(): string;
114
+ checkMaxSelection(): void;
114
115
  }
@@ -322,6 +322,7 @@ var VirtualScroll = /** @class */ (function () {
322
322
  }
323
323
  if (this.component === 'multiselect') {
324
324
  this.parent.updatevirtualizationList();
325
+ this.parent.checkMaxSelection();
325
326
  }
326
327
  this.parent.getSkeletonCount();
327
328
  this.parent.skeletonCount = this.parent.totalItemCount !== 0 && this.parent.totalItemCount < this.parent.itemCount * 2 &&
@@ -1176,8 +1176,10 @@ var DropDownBase = /** @class */ (function (_super) {
1176
1176
  DropDownBase.prototype.scrollStop = function (e, isDownkey) {
1177
1177
  var target = !isNullOrUndefined(e) ? e.target : this.list;
1178
1178
  var computedHeight = getComputedStyle(this.getValidLi(), null).getPropertyValue('height');
1179
+ var computedMarginValue = getComputedStyle(this.getValidLi(), null).getPropertyValue('margin-bottom');
1180
+ var marginValue = parseInt(computedMarginValue, 10);
1179
1181
  var liHeight = this.getModuleName() === 'multiselect' ? parseFloat(computedHeight) : parseInt(computedHeight, 10);
1180
- var topIndex = Math.round(target.scrollTop / liHeight);
1182
+ var topIndex = Math.round(target.scrollTop / (liHeight + marginValue));
1181
1183
  var liCollections = this.list.querySelectorAll('li' + ':not(.e-hide-listitem)');
1182
1184
  var virtualListCount = this.list.querySelectorAll('.e-virtual-list').length;
1183
1185
  var count = 0;
@@ -121,6 +121,7 @@ export declare class DropDownList extends DropDownBase implements IInput {
121
121
  private isUpdateHeaderHeight;
122
122
  private isUpdateFooterHeight;
123
123
  private filterArgs;
124
+ private isReactTemplateUpdate;
124
125
  /**
125
126
  * Sets CSS classes to the root element of the component that allows customization of appearance.
126
127
  *
@@ -93,6 +93,7 @@ var DropDownList = /** @class */ (function (_super) {
93
93
  _this.autoFill = false;
94
94
  _this.isUpdateHeaderHeight = false;
95
95
  _this.isUpdateFooterHeight = false;
96
+ _this.isReactTemplateUpdate = false;
96
97
  return _this;
97
98
  }
98
99
  /**
@@ -357,7 +358,9 @@ var DropDownList = /** @class */ (function (_super) {
357
358
  };
358
359
  };
359
360
  DropDownList.prototype.setEnableRtl = function () {
360
- Input.setEnableRtl(this.enableRtl, [this.inputElement.parentElement]);
361
+ if (!isNullOrUndefined(this.inputElement) && !isNullOrUndefined(this.inputElement.parentElement)) {
362
+ Input.setEnableRtl(this.enableRtl, [this.inputElement.parentElement]);
363
+ }
361
364
  if (this.popupObj) {
362
365
  this.popupObj.enableRtl = this.enableRtl;
363
366
  this.popupObj.dataBind();
@@ -1463,6 +1466,7 @@ var DropDownList = /** @class */ (function (_super) {
1463
1466
  setTimeout(function () {
1464
1467
  proxy_1.cloneElements();
1465
1468
  proxy_1.isSecondClick = true;
1469
+ proxy_1.isSecondClick = proxy_1.isReact && proxy_1.isFiltering() && proxy_1.dataSource instanceof DataManager && !proxy_1.list.querySelector('ul') ? false : true;
1466
1470
  }, duration);
1467
1471
  }
1468
1472
  }
@@ -2302,6 +2306,7 @@ var DropDownList = /** @class */ (function (_super) {
2302
2306
  if (this.getInitialData) {
2303
2307
  this.updateActionCompleteDataValues(ulElement, list);
2304
2308
  this.getInitialData = false;
2309
+ this.isReactTemplateUpdate = true;
2305
2310
  this.searchLists(this.filterArgs);
2306
2311
  return;
2307
2312
  }
@@ -2737,6 +2742,9 @@ var DropDownList = /** @class */ (function (_super) {
2737
2742
  addClass([_this.inputWrapper.container], [dropDownListClasses.iconAnimation]);
2738
2743
  }
2739
2744
  _this.renderReactTemplates();
2745
+ if (_this.isReact && _this.isFiltering() && _this.dataSource instanceof DataManager && _this.list.querySelector('ul') && !_this.isSecondClick) {
2746
+ _this.executeCloneElements();
2747
+ }
2740
2748
  if (!isNullOrUndefined(_this.popupObj)) {
2741
2749
  _this.popupObj.show(new Animation(eventArgs.animation), (_this.zIndex === 1000) ? _this.element : null);
2742
2750
  }
@@ -2834,6 +2842,10 @@ var DropDownList = /** @class */ (function (_super) {
2834
2842
  _this.destroyPopup();
2835
2843
  if (_this.isFiltering() && _this.actionCompleteData.list && _this.actionCompleteData.list.length > 0) {
2836
2844
  _this.isActive = true;
2845
+ if (_this.isReactTemplateUpdate && _this.isReact && _this.itemTemplate && !_this.enableVirtualization) {
2846
+ _this.actionCompleteData.ulElement = _this.renderItems(_this.actionCompleteData.list, _this.fields);
2847
+ _this.isReactTemplateUpdate = false;
2848
+ }
2837
2849
  if (_this.enableVirtualization) {
2838
2850
  _this.onActionComplete(_this.ulElement, _this.listData, null, true);
2839
2851
  }
@@ -3299,6 +3311,9 @@ var DropDownList = /** @class */ (function (_super) {
3299
3311
  };
3300
3312
  DropDownList.prototype.updateInitialData = function () {
3301
3313
  var currentData = this.selectData;
3314
+ if (isNullOrUndefined(currentData)) {
3315
+ return;
3316
+ }
3302
3317
  var ulElement = this.renderItems(currentData, this.fields);
3303
3318
  this.list.scrollTop = 0;
3304
3319
  this.virtualListInfo = {
@@ -3331,7 +3346,7 @@ var DropDownList = /** @class */ (function (_super) {
3331
3346
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
3332
3347
  this.list.getElementsByClassName('e-virtual-ddl')[0].style = this.GetVirtualTrackHeight();
3333
3348
  }
3334
- else if (!this.list.querySelector('.e-virtual-ddl')) {
3349
+ else if (!this.list.querySelector('.e-virtual-ddl') && this.list.parentElement) {
3335
3350
  var virualElement = this.createElement('div', {
3336
3351
  id: this.element.id + '_popup', className: 'e-virtual-ddl', styles: this.GetVirtualTrackHeight()
3337
3352
  });
@@ -4089,7 +4104,7 @@ var DropDownList = /** @class */ (function (_super) {
4089
4104
  if (this.isReact && this.isFiltering() && this.itemTemplate != null) {
4090
4105
  setTimeout(function () {
4091
4106
  proxy.cloneElements();
4092
- proxy.isSecondClick = true;
4107
+ proxy.isSecondClick = proxy.isReact && proxy.isFiltering() && proxy.dataSource instanceof DataManager && !proxy.list.querySelector('ul') ? false : true;
4093
4108
  }, duration);
4094
4109
  }
4095
4110
  };
@@ -4146,7 +4161,7 @@ var DropDownList = /** @class */ (function (_super) {
4146
4161
  if (isSelectVal && this.enableVirtualization && this.selectedLI.classList) {
4147
4162
  isSelectVal = this.selectedLI.classList.contains('e-active');
4148
4163
  }
4149
- if (this.inputElement && this.inputElement.value.trim() === '' && !this.isInteracted && (this.isSelectCustom ||
4164
+ if (this.inputElement && this.inputElement.value === '' && !this.isInteracted && (this.isSelectCustom ||
4150
4165
  isSelectVal && this.inputElement.value !== dataItem.text)) {
4151
4166
  this.isSelectCustom = false;
4152
4167
  this.clearAll(e);
@@ -878,6 +878,7 @@ export declare class DropDownTree extends Component<HTMLElement> implements INot
878
878
  private removeChip;
879
879
  private resetValue;
880
880
  private clearCheckAll;
881
+ private setOldValue;
881
882
  private selectAllItems;
882
883
  private updateTreeSettings;
883
884
  private updateCheckBoxState;
@@ -347,7 +347,7 @@ var DropDownTree = /** @class */ (function (_super) {
347
347
  if (firstUl && firstUl.getAttribute('aria-multiselectable')) {
348
348
  firstUl.removeAttribute('aria-multiselectable');
349
349
  }
350
- this.oldValue = this.value;
350
+ this.setOldValue();
351
351
  if (!this.isRemoteData) {
352
352
  this.isInitialized = true;
353
353
  }
@@ -775,7 +775,7 @@ var DropDownTree = /** @class */ (function (_super) {
775
775
  this.triggerChangeEvent(event);
776
776
  }
777
777
  this.removeValue = false;
778
- this.oldValue = this.value;
778
+ this.setOldValue();
779
779
  this.trigger('blur');
780
780
  };
781
781
  DropDownTree.prototype.updateView = function () {
@@ -808,7 +808,7 @@ var DropDownTree = /** @class */ (function (_super) {
808
808
  element: this.element
809
809
  };
810
810
  this.trigger('change', eventArgs);
811
- this.oldValue = this.value;
811
+ this.setOldValue();
812
812
  }
813
813
  };
814
814
  DropDownTree.prototype.ddtCompareValues = function (oldValue, newValue) {
@@ -1297,6 +1297,7 @@ var DropDownTree = /** @class */ (function (_super) {
1297
1297
  frameSpan.classList.add(CHECK);
1298
1298
  ariaState = 'true';
1299
1299
  if (!this.isReverseUpdate) {
1300
+ this.setOldValue();
1300
1301
  this.isCheckAllCalled = true;
1301
1302
  this.treeObj.checkAll();
1302
1303
  if (!this.changeOnBlur) {
@@ -1461,7 +1462,7 @@ var DropDownTree = /** @class */ (function (_super) {
1461
1462
  }
1462
1463
  }
1463
1464
  if (valArr.length !== 0) {
1464
- this.oldValue = this.value;
1465
+ this.setOldValue();
1465
1466
  this.setProperties({ value: valArr }, true);
1466
1467
  this.setValidValue();
1467
1468
  }
@@ -1472,7 +1473,7 @@ var DropDownTree = /** @class */ (function (_super) {
1472
1473
  else {
1473
1474
  data = this.getItems(this.text);
1474
1475
  if (!isNOU(data)) {
1475
- this.oldValue = this.value;
1476
+ this.setOldValue();
1476
1477
  this.setProperties({ value: [data[this.fields.value].toString()] }, true);
1477
1478
  this.setValidValue();
1478
1479
  }
@@ -1487,7 +1488,7 @@ var DropDownTree = /** @class */ (function (_super) {
1487
1488
  return;
1488
1489
  }
1489
1490
  if (!this.isInitialized) {
1490
- this.oldValue = this.value;
1491
+ this.setOldValue();
1491
1492
  if (this.treeObj.selectedNodes.length > 0 && !this.showCheckBox) {
1492
1493
  this.setProperties({ value: this.treeObj.selectedNodes }, true);
1493
1494
  if (this.allowMultiSelection) {
@@ -2080,7 +2081,7 @@ var DropDownTree = /** @class */ (function (_super) {
2080
2081
  };
2081
2082
  DropDownTree.prototype.onBeforeSelect = function (args) {
2082
2083
  if (args.isInteracted) {
2083
- this.oldValue = this.value ? this.value.slice() : this.value;
2084
+ this.setOldValue();
2084
2085
  if (this.value === null) {
2085
2086
  this.setProperties({ value: [] }, true);
2086
2087
  }
@@ -2201,7 +2202,7 @@ var DropDownTree = /** @class */ (function (_super) {
2201
2202
  };
2202
2203
  DropDownTree.prototype.beforeCheck = function (args) {
2203
2204
  if (args.isInteracted) {
2204
- this.oldValue = this.value ? this.value.slice() : this.value;
2205
+ this.setOldValue();
2205
2206
  }
2206
2207
  };
2207
2208
  DropDownTree.prototype.onNodeExpanded = function () {
@@ -2752,7 +2753,7 @@ var DropDownTree = /** @class */ (function (_super) {
2752
2753
  }
2753
2754
  Input.setValue(null, this.inputEle, this.floatLabelType);
2754
2755
  if (!isDynamicChange) {
2755
- this.oldValue = this.value;
2756
+ this.setOldValue();
2756
2757
  this.setProperties({ value: [] }, true);
2757
2758
  this.showOrHideValueTemplate(false);
2758
2759
  }
@@ -2788,6 +2789,9 @@ var DropDownTree = /** @class */ (function (_super) {
2788
2789
  this.setLocale(false);
2789
2790
  }
2790
2791
  };
2792
+ DropDownTree.prototype.setOldValue = function () {
2793
+ this.oldValue = Array.isArray(this.value) ? this.value.slice() : this.value;
2794
+ };
2791
2795
  DropDownTree.prototype.selectAllItems = function (state) {
2792
2796
  if (this.showCheckBox) {
2793
2797
  if (state) {
@@ -2040,7 +2040,7 @@ var ListBox = /** @class */ (function (_super) {
2040
2040
  };
2041
2041
  ListBox.prototype.KeyUp = function (e) {
2042
2042
  var _this = this;
2043
- if (this.allowFiltering && e.ctrlKey && e.keyCode === 65) {
2043
+ if (this.allowFiltering && ((e.ctrlKey && e.keyCode === 65) || (e.keyCode === 8 && !this.filterInput.value))) {
2044
2044
  e.preventDefault();
2045
2045
  return;
2046
2046
  }
@@ -128,7 +128,9 @@ var Mention = /** @class */ (function (_super) {
128
128
  ? document.querySelector(this.target)
129
129
  : this.target) : this.element;
130
130
  if (this.isContentEditable(this.inputElement)) {
131
- this.inputElement.setAttribute('contenteditable', 'true');
131
+ if (!this.inputElement.hasAttribute('contenteditable')) {
132
+ this.inputElement.setAttribute('contenteditable', 'true');
133
+ }
132
134
  addClass([this.inputElement], ['e-mention']);
133
135
  if (isNullOrUndefined(this.target)) {
134
136
  addClass([this.inputElement], ['e-editable-element']);
@@ -70,6 +70,8 @@ export declare class MultiSelect extends DropDownBase implements IInput {
70
70
  private isClearAllAction;
71
71
  private isUpdateHeaderHeight;
72
72
  private isUpdateFooterHeight;
73
+ private isBlurDispatching;
74
+ private isFilterPrevented;
73
75
  /**
74
76
  * The `fields` property maps the columns of the data table and binds the data to the component.
75
77
  * * text - Maps the text column from data table for each list item.
@@ -644,6 +646,8 @@ export declare class MultiSelect extends DropDownBase implements IInput {
644
646
  private header;
645
647
  private footer;
646
648
  private initStatus;
649
+ private isInitRemoteVirtualData;
650
+ private isDynamicRemoteVirtualData;
647
651
  private popupWrapper;
648
652
  private keyCode;
649
653
  private beforePopupOpen;
@@ -654,8 +658,6 @@ export declare class MultiSelect extends DropDownBase implements IInput {
654
658
  private selectAllEventEle;
655
659
  private filterParent;
656
660
  private removeIndex;
657
- private resetMainList;
658
- private resetFilteredData;
659
661
  private preventSetCurrentData;
660
662
  private virtualCustomData;
661
663
  private isSelectAllLoop;
@@ -103,11 +103,11 @@ var MultiSelect = /** @class */ (function (_super) {
103
103
  _this.storedSelectAllHeight = 0;
104
104
  _this.isUpdateHeaderHeight = false;
105
105
  _this.isUpdateFooterHeight = false;
106
+ _this.isBlurDispatching = false;
107
+ _this.isFilterPrevented = false;
106
108
  _this.isValidKey = false;
107
109
  _this.selectAllEventData = [];
108
110
  _this.selectAllEventEle = [];
109
- _this.resetMainList = null;
110
- _this.resetFilteredData = false;
111
111
  _this.preventSetCurrentData = false;
112
112
  _this.isSelectAllLoop = false;
113
113
  _this.scrollFocusStatus = false;
@@ -561,10 +561,24 @@ var MultiSelect = /** @class */ (function (_super) {
561
561
  };
562
562
  /* eslint-disable @typescript-eslint/no-unused-vars */
563
563
  MultiSelect.prototype.onActionComplete = function (ulElement, list, e, isUpdated) {
564
+ var _this = this;
564
565
  if (this.dataSource instanceof DataManager && !isNullOrUndefined(e) && !this.virtualGroupDataSource) {
565
566
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
566
567
  this.totalItemCount = e.count;
567
568
  }
569
+ if (this.value && list && list.length > 0 && this.allowFiltering && this.mode !== 'CheckBox' && !this.enableVirtualization && !this.isFilterPrevented && !this.allowCustomValue) {
570
+ var allItemsInValue = list.every(function (item) {
571
+ var itemValue = getValue((_this.fields.value) ? _this.fields.value : '', item);
572
+ return _this.value.some(function (val) {
573
+ var value = _this.allowObjectBinding ? getValue((_this.fields.value) ? _this.fields.value : '', val) : val;
574
+ return itemValue === value;
575
+ });
576
+ });
577
+ if (allItemsInValue) {
578
+ ulElement.innerHTML = '';
579
+ list = [];
580
+ }
581
+ }
568
582
  /* eslint-enable @typescript-eslint/no-unused-vars */
569
583
  _super.prototype.onActionComplete.call(this, ulElement, list, e);
570
584
  this.skeletonCount = this.totalItemCount !== 0 && this.totalItemCount < (this.itemCount * 2) &&
@@ -654,6 +668,9 @@ var MultiSelect = /** @class */ (function (_super) {
654
668
  if (!this.enableVirtualization || (this.enableVirtualization && (!(this.dataSource instanceof DataManager)))) {
655
669
  this.initialValueUpdate();
656
670
  }
671
+ else {
672
+ this.initialValueUpdate(this.listData, true);
673
+ }
657
674
  this.initialUpdate();
658
675
  this.refreshPlaceHolder();
659
676
  if (this.mode !== 'CheckBox' && this.changeOnBlur) {
@@ -1216,6 +1233,10 @@ var MultiSelect = /** @class */ (function (_super) {
1216
1233
  };
1217
1234
  MultiSelect.prototype.onBlurHandler = function (eve, isDocClickFromCheck) {
1218
1235
  var target;
1236
+ if (this.isBlurDispatching && this.isAngular) {
1237
+ this.isBlurDispatching = false;
1238
+ return;
1239
+ }
1219
1240
  if (!isNullOrUndefined(eve)) {
1220
1241
  target = eve.relatedTarget;
1221
1242
  }
@@ -1261,10 +1282,6 @@ var MultiSelect = /** @class */ (function (_super) {
1261
1282
  }
1262
1283
  }
1263
1284
  this.updateDataList();
1264
- if (this.resetMainList) {
1265
- this.mainList = this.resetMainList;
1266
- this.resetMainList = null;
1267
- }
1268
1285
  this.refreshListItems(null);
1269
1286
  if (this.mode !== 'Box' && this.mode !== 'CheckBox') {
1270
1287
  this.updateDelimView();
@@ -1298,6 +1315,10 @@ var MultiSelect = /** @class */ (function (_super) {
1298
1315
  this.overAllWrapper.getElementsByClassName('e-float-text-content')[0] && this.floatLabelType !== 'Never')) {
1299
1316
  this.overAllWrapper.getElementsByClassName('e-float-text-content')[0].classList.add('e-icon');
1300
1317
  }
1318
+ this.isBlurDispatching = true;
1319
+ if (this.isAngular) {
1320
+ this.dispatchEvent(this.inputElement, 'blur');
1321
+ }
1301
1322
  };
1302
1323
  MultiSelect.prototype.calculateWidth = function () {
1303
1324
  var elementWidth;
@@ -2949,6 +2970,10 @@ var MultiSelect = /** @class */ (function (_super) {
2949
2970
  if (!this.list) {
2950
2971
  _super.prototype.render.call(this);
2951
2972
  }
2973
+ if (this.popupObj && document.body.contains(this.popupObj.element) && this.allowFiltering) {
2974
+ this.refreshPopup();
2975
+ return;
2976
+ }
2952
2977
  if (!this.popupObj) {
2953
2978
  if (!isNullOrUndefined(this.popupWrapper)) {
2954
2979
  document.body.appendChild(this.popupWrapper);
@@ -3405,7 +3430,6 @@ var MultiSelect = /** @class */ (function (_super) {
3405
3430
  };
3406
3431
  MultiSelect.prototype.search = function (e) {
3407
3432
  var _this = this;
3408
- this.resetFilteredData = true;
3409
3433
  this.preventSetCurrentData = false;
3410
3434
  this.firstItem = this.dataSource && this.dataSource.length > 0 ? this.dataSource[0] : null;
3411
3435
  if (!isNullOrUndefined(e)) {
@@ -3442,6 +3466,7 @@ var MultiSelect = /** @class */ (function (_super) {
3442
3466
  cancel: false
3443
3467
  };
3444
3468
  this.trigger('filtering', eventArgs_1, function (eventArgs) {
3469
+ _this.isFilterPrevented = eventArgs.cancel;
3445
3470
  if (!eventArgs.cancel) {
3446
3471
  if (!_this.isFiltered && !eventArgs.preventDefaultAction) {
3447
3472
  _this.filterAction = true;
@@ -3621,7 +3646,7 @@ var MultiSelect = /** @class */ (function (_super) {
3621
3646
  else {
3622
3647
  if (this_1.listData) {
3623
3648
  if (this_1.enableVirtualization) {
3624
- if (delim) {
3649
+ if (delim && !this_1.isDynamicRemoteVirtualData) {
3625
3650
  data = this_1.delimiterWrapper && this_1.delimiterWrapper.innerHTML === '' ? data :
3626
3651
  this_1.delimiterWrapper.innerHTML;
3627
3652
  }
@@ -3634,7 +3659,7 @@ var MultiSelect = /** @class */ (function (_super) {
3634
3659
  }
3635
3660
  else {
3636
3661
  temp = isInitialVirtualData && delim ? this_1.text : this_1.getTextByValue(value);
3637
- var textValues = isInitialVirtualData ? this_1.text : (this_1.text && this_1.text !== '' ? this_1.text + this_1.delimiterChar + temp : temp);
3662
+ var textValues = this_1.isDynamicRemoteVirtualData && value != null && value !== '' ? this_1.getTextByValue(value) : isInitialVirtualData ? this_1.text : (this_1.text && this_1.text !== '' ? this_1.text + this_1.delimiterChar + temp : temp);
3638
3663
  data += temp + delimiterChar + ' ';
3639
3664
  text.push(textValues);
3640
3665
  hiddenElementContent = this_1.hiddenElement.innerHTML;
@@ -3802,7 +3827,7 @@ var MultiSelect = /** @class */ (function (_super) {
3802
3827
  (this.mode === 'Box' || this.mode === 'Default'))) ||
3803
3828
  (this.enableVirtualization && value != null && text != null && !isCustomData)) {
3804
3829
  var currentText = [];
3805
- var textValues = this.text != null && this.text !== '' ? this.text + this.delimiterChar + text : text;
3830
+ var textValues = this.isDynamicRemoteVirtualData && text != null && text !== '' ? text : this.text != null && this.text !== '' ? this.text + this.delimiterChar + text : text;
3806
3831
  currentText.push(textValues);
3807
3832
  this.setProperties({ text: currentText.toString() }, true);
3808
3833
  this.addChip(text, value);
@@ -5116,11 +5141,6 @@ var MultiSelect = /** @class */ (function (_super) {
5116
5141
  MultiSelect.prototype.onPropertyChanged = function (newProp, oldProp) {
5117
5142
  if (newProp.dataSource && !isNullOrUndefined(Object.keys(newProp.dataSource))
5118
5143
  || newProp.query && !isNullOrUndefined(Object.keys(newProp.query))) {
5119
- if (this.resetFilteredData) {
5120
- // The filtered data is not being reset in the component after the user focuses out.
5121
- this.resetMainList = !this.resetMainList ? this.mainList : this.resetMainList;
5122
- this.resetFilteredData = false;
5123
- }
5124
5144
  this.mainList = null;
5125
5145
  this.mainData = null;
5126
5146
  this.isFirstClick = false;
@@ -5389,6 +5409,12 @@ var MultiSelect = /** @class */ (function (_super) {
5389
5409
  if (!this.enableVirtualization || (this.enableVirtualization && (!(this.dataSource instanceof DataManager)))) {
5390
5410
  this.initialValueUpdate();
5391
5411
  }
5412
+ else if (!this.isInitRemoteVirtualData) {
5413
+ this.isDynamicRemoteVirtualData = true;
5414
+ this.initialValueUpdate(this.listData, true);
5415
+ this.isDynamicRemoteVirtualData = false;
5416
+ this.initialUpdate();
5417
+ }
5392
5418
  if (this.mode !== 'Box' && !this.inputFocus) {
5393
5419
  this.updateDelimView();
5394
5420
  }
@@ -5986,9 +6012,11 @@ var MultiSelect = /** @class */ (function (_super) {
5986
6012
  if (e.result.length > 0) {
5987
6013
  listItems_2 = e.result;
5988
6014
  _this.initStatus = false;
6015
+ _this.isInitRemoteVirtualData = true;
5989
6016
  setTimeout(function () {
5990
6017
  _this.initialValueUpdate(listItems_2, true);
5991
6018
  _this.initialUpdate();
6019
+ _this.isInitRemoteVirtualData = false;
5992
6020
  }, 100);
5993
6021
  _this.initStatus = true;
5994
6022
  }
@@ -657,6 +657,14 @@
657
657
  content: "";
658
658
  }
659
659
 
660
+ .e-ddl.e-control-wrapper.e-input-group .e-ddl-icon.e-ddl-disable-icon {
661
+ position: relative;
662
+ }
663
+
664
+ .e-ddl.e-control-wrapper.e-input-group .e-ddl-icon.e-ddl-disable-icon::before {
665
+ content: "";
666
+ }
667
+
660
668
  .e-ddl-device-filter .e-filter-parent {
661
669
  background-color: var(--color-sf-bg-primary-alt);
662
670
  }
package/styles/bds.css CHANGED
@@ -792,6 +792,14 @@
792
792
  content: "";
793
793
  }
794
794
 
795
+ .e-ddl.e-control-wrapper.e-input-group .e-ddl-icon.e-ddl-disable-icon {
796
+ position: relative;
797
+ }
798
+
799
+ .e-ddl.e-control-wrapper.e-input-group .e-ddl-icon.e-ddl-disable-icon::before {
800
+ content: "";
801
+ }
802
+
795
803
  .e-ddl-device-filter .e-filter-parent {
796
804
  background-color: var(--color-sf-bg-primary-alt);
797
805
  }
@@ -446,6 +446,14 @@
446
446
  content: "";
447
447
  }
448
448
 
449
+ .e-ddl.e-control-wrapper.e-input-group .e-ddl-icon.e-ddl-disable-icon {
450
+ position: relative;
451
+ }
452
+
453
+ .e-ddl.e-control-wrapper.e-input-group .e-ddl-icon.e-ddl-disable-icon::before {
454
+ content: "";
455
+ }
456
+
449
457
  .e-ddl-device-filter .e-filter-parent {
450
458
  background-color: #6e6e6e;
451
459
  }
@@ -521,6 +521,14 @@
521
521
  content: "";
522
522
  }
523
523
 
524
+ .e-ddl.e-control-wrapper.e-input-group .e-ddl-icon.e-ddl-disable-icon {
525
+ position: relative;
526
+ }
527
+
528
+ .e-ddl.e-control-wrapper.e-input-group .e-ddl-icon.e-ddl-disable-icon::before {
529
+ content: "";
530
+ }
531
+
524
532
  .e-ddl-device-filter .e-filter-parent {
525
533
  background-color: #6e6e6e;
526
534
  }
@@ -446,6 +446,14 @@
446
446
  content: "";
447
447
  }
448
448
 
449
+ .e-ddl.e-control-wrapper.e-input-group .e-ddl-icon.e-ddl-disable-icon {
450
+ position: relative;
451
+ }
452
+
453
+ .e-ddl.e-control-wrapper.e-input-group .e-ddl-icon.e-ddl-disable-icon::before {
454
+ content: "";
455
+ }
456
+
449
457
  .e-ddl-device-filter .e-filter-parent {
450
458
  background-color: #fff;
451
459
  }
@@ -521,6 +521,14 @@
521
521
  content: "";
522
522
  }
523
523
 
524
+ .e-ddl.e-control-wrapper.e-input-group .e-ddl-icon.e-ddl-disable-icon {
525
+ position: relative;
526
+ }
527
+
528
+ .e-ddl.e-control-wrapper.e-input-group .e-ddl-icon.e-ddl-disable-icon::before {
529
+ content: "";
530
+ }
531
+
524
532
  .e-ddl-device-filter .e-filter-parent {
525
533
  background-color: #fff;
526
534
  }
@@ -480,6 +480,14 @@
480
480
  content: "";
481
481
  }
482
482
 
483
+ .e-ddl.e-control-wrapper.e-input-group .e-ddl-icon.e-ddl-disable-icon {
484
+ position: relative;
485
+ }
486
+
487
+ .e-ddl.e-control-wrapper.e-input-group .e-ddl-icon.e-ddl-disable-icon::before {
488
+ content: "";
489
+ }
490
+
483
491
  .e-ddl-device-filter .e-filter-parent {
484
492
  background-color: #fff;
485
493
  }
@@ -559,6 +559,14 @@
559
559
  content: "";
560
560
  }
561
561
 
562
+ .e-ddl.e-control-wrapper.e-input-group .e-ddl-icon.e-ddl-disable-icon {
563
+ position: relative;
564
+ }
565
+
566
+ .e-ddl.e-control-wrapper.e-input-group .e-ddl-icon.e-ddl-disable-icon::before {
567
+ content: "";
568
+ }
569
+
562
570
  .e-ddl-device-filter .e-filter-parent {
563
571
  background-color: #fff;
564
572
  }