@syncfusion/ej2-dropdowns 29.1.37 → 29.1.40

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 (93) 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 +81 -23
  5. package/dist/es6/ej2-dropdowns.es2015.js.map +1 -1
  6. package/dist/es6/ej2-dropdowns.es5.js +87 -29
  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/common/incremental-search.js +1 -1
  13. package/src/common/virtual-scroll.js +14 -6
  14. package/src/drop-down-base/drop-down-base.d.ts +2 -0
  15. package/src/drop-down-base/drop-down-base.js +30 -10
  16. package/src/mention/mention.js +6 -1
  17. package/src/multi-select/multi-select.d.ts +1 -1
  18. package/src/multi-select/multi-select.js +36 -11
  19. package/styles/bds-lite.css +5 -0
  20. package/styles/bds.css +5 -0
  21. package/styles/bootstrap-dark-lite.css +5 -0
  22. package/styles/bootstrap-dark.css +5 -0
  23. package/styles/bootstrap-lite.css +12 -0
  24. package/styles/bootstrap.css +12 -0
  25. package/styles/bootstrap4-lite.css +12 -0
  26. package/styles/bootstrap4.css +12 -0
  27. package/styles/bootstrap5-dark-lite.css +12 -0
  28. package/styles/bootstrap5-dark.css +12 -0
  29. package/styles/bootstrap5-lite.css +12 -0
  30. package/styles/bootstrap5.3-lite.css +12 -0
  31. package/styles/bootstrap5.3.css +12 -0
  32. package/styles/bootstrap5.css +12 -0
  33. package/styles/drop-down-list/_bootstrap-dark-definition.scss +1 -0
  34. package/styles/drop-down-list/_bootstrap-definition.scss +1 -0
  35. package/styles/drop-down-list/_bootstrap4-definition.scss +1 -0
  36. package/styles/drop-down-list/_bootstrap5-definition.scss +1 -0
  37. package/styles/drop-down-list/_bootstrap5.3-definition.scss +1 -0
  38. package/styles/drop-down-list/_fabric-dark-definition.scss +1 -0
  39. package/styles/drop-down-list/_fabric-definition.scss +1 -0
  40. package/styles/drop-down-list/_highcontrast-definition.scss +1 -0
  41. package/styles/drop-down-list/_highcontrast-light-definition.scss +1 -0
  42. package/styles/drop-down-list/_layout.scss +20 -0
  43. package/styles/drop-down-list/bds.css +5 -0
  44. package/styles/drop-down-list/bootstrap-dark.css +5 -0
  45. package/styles/drop-down-list/bootstrap.css +12 -0
  46. package/styles/drop-down-list/bootstrap4.css +12 -0
  47. package/styles/drop-down-list/bootstrap5-dark.css +12 -0
  48. package/styles/drop-down-list/bootstrap5.3.css +12 -0
  49. package/styles/drop-down-list/bootstrap5.css +12 -0
  50. package/styles/drop-down-list/fabric-dark.css +5 -0
  51. package/styles/drop-down-list/fabric.css +10 -0
  52. package/styles/drop-down-list/fluent-dark.css +5 -0
  53. package/styles/drop-down-list/fluent.css +5 -0
  54. package/styles/drop-down-list/fluent2.css +5 -0
  55. package/styles/drop-down-list/highcontrast-light.css +5 -0
  56. package/styles/drop-down-list/highcontrast.css +10 -0
  57. package/styles/drop-down-list/material-dark.css +5 -0
  58. package/styles/drop-down-list/material.css +5 -0
  59. package/styles/drop-down-list/material3-dark.css +5 -0
  60. package/styles/drop-down-list/material3.css +5 -0
  61. package/styles/drop-down-list/tailwind-dark.css +5 -0
  62. package/styles/drop-down-list/tailwind.css +5 -0
  63. package/styles/drop-down-list/tailwind3.css +5 -0
  64. package/styles/fabric-dark-lite.css +5 -0
  65. package/styles/fabric-dark.css +5 -0
  66. package/styles/fabric-lite.css +10 -0
  67. package/styles/fabric.css +10 -0
  68. package/styles/fluent-dark-lite.css +5 -0
  69. package/styles/fluent-dark.css +5 -0
  70. package/styles/fluent-lite.css +5 -0
  71. package/styles/fluent.css +5 -0
  72. package/styles/fluent2-lite.css +5 -0
  73. package/styles/fluent2.css +5 -0
  74. package/styles/highcontrast-light-lite.css +5 -0
  75. package/styles/highcontrast-light.css +5 -0
  76. package/styles/highcontrast-lite.css +10 -0
  77. package/styles/highcontrast.css +10 -0
  78. package/styles/material-dark-lite.css +5 -0
  79. package/styles/material-dark.css +5 -0
  80. package/styles/material-lite.css +14 -0
  81. package/styles/material.css +14 -0
  82. package/styles/material3-dark-lite.css +5 -0
  83. package/styles/material3-dark.css +5 -0
  84. package/styles/material3-lite.css +5 -0
  85. package/styles/material3.css +5 -0
  86. package/styles/multi-select/_material-definition.scss +9 -0
  87. package/styles/multi-select/material.css +9 -0
  88. package/styles/tailwind-dark-lite.css +5 -0
  89. package/styles/tailwind-dark.css +5 -0
  90. package/styles/tailwind-lite.css +5 -0
  91. package/styles/tailwind.css +5 -0
  92. package/styles/tailwind3-lite.css +5 -0
  93. package/styles/tailwind3.css +5 -0
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 29.1.37
3
+ * version : 29.1.40
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@29.1.33",
3
+ "_id": "@syncfusion/ej2-dropdowns@29.1.38",
4
4
  "_inBundle": false,
5
- "_integrity": "sha512-z5ZJUm6JFdq+hyTkMK9v6b1vLGPYtBGFkBeMTsUP0SO/b9AEcqQ7AsLUYA+AINsfjFG/pKYn6TEBuBBb9Gbapw==",
5
+ "_integrity": "sha512-gpwV4cYn4VY9b7JRqcRU0RSqHNaFKKf0+NpBSHbvOwtISLqIGyehQR7atEDT+1g0z0mdGZ7+l2WuaqyvuLNvDA==",
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-29.1.33.tgz",
40
- "_shasum": "92940fb68155f5af2fd540bbad71278ca0b012a4",
39
+ "_resolved": "https://nexus.syncfusioninternal.com/repository/ej2-hotfix-new/@syncfusion/ej2-dropdowns/-/ej2-dropdowns-29.1.38.tgz",
40
+ "_shasum": "db56179d8beddcc910e61558b906e2ce82c31ce6",
41
41
  "_spec": "@syncfusion/ej2-dropdowns@*",
42
42
  "_where": "/jenkins/workspace/elease-automation_release_29.1.1/packages/included",
43
43
  "author": {
@@ -47,9 +47,9 @@
47
47
  "dependencies": {
48
48
  "@syncfusion/ej2-base": "~29.1.36",
49
49
  "@syncfusion/ej2-data": "~29.1.33",
50
- "@syncfusion/ej2-inputs": "~29.1.34",
51
- "@syncfusion/ej2-lists": "~29.1.34",
52
- "@syncfusion/ej2-navigations": "~29.1.37",
50
+ "@syncfusion/ej2-inputs": "~29.1.39",
51
+ "@syncfusion/ej2-lists": "~29.1.40",
52
+ "@syncfusion/ej2-navigations": "~29.1.40",
53
53
  "@syncfusion/ej2-notifications": "~29.1.33",
54
54
  "@syncfusion/ej2-popups": "~29.1.37"
55
55
  },
@@ -76,7 +76,7 @@
76
76
  "module": "./index.js",
77
77
  "name": "@syncfusion/ej2-dropdowns",
78
78
  "typings": "index.d.ts",
79
- "version": "29.1.37",
79
+ "version": "29.1.40",
80
80
  "sideEffects": false,
81
81
  "homepage": "https://www.syncfusion.com/javascript-ui-controls"
82
82
  }
@@ -140,7 +140,7 @@ export function Search(inputVal, items, searchType, ignoreCase, dataSource, fiel
140
140
  dataSource.filter(function (data) {
141
141
  Array.prototype.slice.call(fieldValue_1).forEach(function (value) {
142
142
  /* eslint-disable security/detect-object-injection */
143
- if ((type === 'object' && !data.isHeader && checkField_1.textContent.toString().indexOf(data[value]) !== -1 && checkField_1.getAttribute('data-value') === data[fields.value].toString()) ||
143
+ if ((type === 'object' && !data.isHeader && checkField_1.textContent.toString().indexOf(data[value]) !== -1 && data[fields.value] != null && checkField_1.getAttribute('data-value') === data[fields.value].toString()) ||
144
144
  (type === 'string' && checkField_1.textContent.toString().indexOf(data) !== -1)) {
145
145
  filterValue = type === 'object' ? data[value] : data;
146
146
  }
@@ -189,11 +189,15 @@ var VirtualScroll = /** @class */ (function () {
189
189
  if (this.parent.viewPortInfo.startIndex < this.parent.value.length) {
190
190
  endIndex = this.parent.viewPortInfo.endIndex - this.parent.value.length;
191
191
  if (this.parent.viewPortInfo.startIndex === 0) {
192
+ var oldUlElement = this.parent.list.querySelector('.e-list-parent' + ':not(.e-reorder)');
193
+ if (oldUlElement) {
194
+ this.parent.list.querySelector('.e-virtual-ddl-content').removeChild(oldUlElement);
195
+ }
192
196
  this.parent.updateVirtualReOrderList(true);
193
197
  if (this.parent.value.length < this.parent.itemCount && this.parent.value.length !== this.parent.totalItemCount) {
194
- var oldUlElement = this.parent.list.querySelector('.e-list-parent' + ':not(.e-reorder)');
195
- if (oldUlElement) {
196
- this.parent.list.querySelector('.e-virtual-ddl-content').removeChild(oldUlElement);
198
+ var oldUlElement_1 = this.parent.list.querySelector('.e-list-parent' + ':not(.e-reorder)');
199
+ if (oldUlElement_1) {
200
+ this.parent.list.querySelector('.e-virtual-ddl-content').removeChild(oldUlElement_1);
197
201
  }
198
202
  var query = this.parent.getForQuery(this.parent.value).clone();
199
203
  query = query.skip(0)
@@ -207,9 +211,9 @@ var VirtualScroll = /** @class */ (function () {
207
211
  isListUpdated = false;
208
212
  }
209
213
  else {
210
- var oldUlElement = this.parent.list.querySelector('.e-list-parent' + ':not(.e-reorder)');
211
- if (oldUlElement) {
212
- this.parent.list.querySelector('.e-virtual-ddl-content').removeChild(oldUlElement);
214
+ var oldUlElement_2 = this.parent.list.querySelector('.e-list-parent' + ':not(.e-reorder)');
215
+ if (oldUlElement_2) {
216
+ this.parent.list.querySelector('.e-virtual-ddl-content').removeChild(oldUlElement_2);
213
217
  }
214
218
  }
215
219
  isListUpdated = false;
@@ -229,6 +233,10 @@ var VirtualScroll = /** @class */ (function () {
229
233
  query = query.skip(0).take(this.parent.itemCount - (this.parent.value.length - this.parent.viewPortInfo.startIndex));
230
234
  this.parent.appendUncheckList = true;
231
235
  this.parent.setCurrentView = false;
236
+ var oldUlElement = this.parent.list.querySelector('.e-list-parent' + ':not(.e-reorder)');
237
+ if (oldUlElement) {
238
+ this.parent.list.querySelector('.e-virtual-ddl-content').removeChild(oldUlElement);
239
+ }
232
240
  this.parent.resetList(this.parent.dataSource, this.parent.fields, query);
233
241
  isListUpdated = false;
234
242
  this.parent.appendUncheckList = this.parent.dataSource instanceof DataManager ? this.parent.appendUncheckList : false;
@@ -275,6 +275,7 @@ export declare class DropDownBase extends Component<HTMLElement> implements INot
275
275
  protected listContainerHeight: string;
276
276
  protected isVirtualTrackHeight: boolean;
277
277
  protected virtualSelectAll: boolean;
278
+ protected isVirtualReorder: boolean;
278
279
  protected incrementalQueryString: string;
279
280
  protected incrementalEndIndex: number;
280
281
  protected incrementalStartIndex: number;
@@ -722,6 +723,7 @@ export declare class DropDownBase extends Component<HTMLElement> implements INot
722
723
  * @returns {void}
723
724
  */
724
725
  render(e?: MouseEvent | KeyboardEventArgs | TouchEvent, isEmptyData?: boolean): void;
726
+ private getScrollableParent;
725
727
  protected removeScrollEvent(): void;
726
728
  /**
727
729
  * Return the module name of this component.
@@ -124,6 +124,7 @@ var DropDownBase = /** @class */ (function (_super) {
124
124
  _this.skeletonCount = 32;
125
125
  _this.isVirtualTrackHeight = false;
126
126
  _this.virtualSelectAll = false;
127
+ _this.isVirtualReorder = false;
127
128
  _this.incrementalQueryString = '';
128
129
  _this.incrementalEndIndex = 0;
129
130
  _this.incrementalStartIndex = 0;
@@ -822,7 +823,7 @@ var DropDownBase = /** @class */ (function (_super) {
822
823
  var newQuery = _this.getQuery(eventArgs.query);
823
824
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
824
825
  if (_this.isVirtualizationEnabled && (listItems.count !== 0 &&
825
- listItems.count < (_this.itemCount * 2))) {
826
+ listItems.count < (_this.itemCount * 2)) && !_this.appendUncheckList) {
826
827
  if (newQuery) {
827
828
  for (var queryElements = 0; queryElements < newQuery.queries.length; queryElements++) {
828
829
  if (newQuery.queries[queryElements].fn === 'onTake') {
@@ -1132,12 +1133,9 @@ var DropDownBase = /** @class */ (function (_super) {
1132
1133
  if (this.sortOrder !== 'None') {
1133
1134
  dataSource = this.getSortedDataSource(dataSource);
1134
1135
  }
1135
- if (this.element.querySelector('optgroup') && this.isGroupChecking && this.getModuleName() === 'multiselect') {
1136
- dataSource = ListBase.groupDataSource(dataSource, fields, this.sortOrder);
1137
- }
1138
- else {
1139
- dataSource = ListBase.groupDataSource(dataSource, fields.properties, this.sortOrder);
1140
- }
1136
+ var fieldSet = fields.properties ||
1137
+ fields;
1138
+ dataSource = ListBase.groupDataSource(dataSource, fieldSet, this.sortOrder);
1141
1139
  }
1142
1140
  addClass([this.list], dropDownBaseClasses.grouping);
1143
1141
  }
@@ -1331,7 +1329,7 @@ var DropDownBase = /** @class */ (function (_super) {
1331
1329
  var oldUlElement = this.list.querySelector('.e-list-parent' + ':not(.e-reorder)');
1332
1330
  var virtualUlElement = this.list.querySelector('.e-virtual-ddl-content');
1333
1331
  var isRemovedUlelement = false;
1334
- if (!oldUlElement && this.list.querySelector('.e-list-parent' + '.e-reorder')) {
1332
+ if ((!oldUlElement && this.list.querySelector('.e-list-parent' + '.e-reorder')) || (oldUlElement && this.isVirtualReorder && this.list.querySelector('.e-list-parent' + '.e-reorder'))) {
1335
1333
  oldUlElement = this.list.querySelector('.e-list-parent' + '.e-reorder');
1336
1334
  }
1337
1335
  if ((listData.length >= this.virtualizedItemsCount && oldUlElement && virtualUlElement) || (oldUlElement && virtualUlElement && this.isAllowFiltering) || (oldUlElement && virtualUlElement && (this.getModuleName() === 'autocomplete' || this.getModuleName() === 'multiselect')) || isRemovedUlelement) {
@@ -1427,7 +1425,9 @@ var DropDownBase = /** @class */ (function (_super) {
1427
1425
  }
1428
1426
  setStyleAttribute(this.fixedHeaderElement, { zIndex: 10 });
1429
1427
  var firstLi = this.ulElement.querySelector('.' + dropDownBaseClasses.group + ':not(.e-hide-listitem)');
1430
- this.fixedHeaderElement.innerHTML = firstLi.innerHTML;
1428
+ if (!isNullOrUndefined(firstLi)) {
1429
+ this.fixedHeaderElement.innerHTML = firstLi.innerHTML;
1430
+ }
1431
1431
  };
1432
1432
  DropDownBase.prototype.getSortedDataSource = function (dataSource) {
1433
1433
  if (dataSource && this.sortOrder !== 'None') {
@@ -1653,7 +1653,11 @@ var DropDownBase = /** @class */ (function (_super) {
1653
1653
  var group = this.element.querySelector('select>optgroup');
1654
1654
  if ((this.fields.groupBy || !isNullOrUndefined(group)) && !this.isGroupChecking) {
1655
1655
  EventHandler.add(this.list, 'scroll', this.setFloatingHeader, this);
1656
- EventHandler.add(document, 'scroll', this.updateGroupFixedHeader, this);
1656
+ var elements = this.getScrollableParent();
1657
+ for (var i = 0; i < elements.length; i++) {
1658
+ var ele = elements[i];
1659
+ EventHandler.add(ele, 'scroll', this.updateGroupFixedHeader, this);
1660
+ }
1657
1661
  }
1658
1662
  if (this.getModuleName() === 'dropdownbase') {
1659
1663
  if (this.element.getAttribute('tabindex')) {
@@ -1671,6 +1675,22 @@ var DropDownBase = /** @class */ (function (_super) {
1671
1675
  this.initialize(e);
1672
1676
  }
1673
1677
  };
1678
+ DropDownBase.prototype.getScrollableParent = function () {
1679
+ var eleStyle = getComputedStyle(this.element);
1680
+ var scrollParents = [];
1681
+ var overflowRegex = /(auto|scroll)/;
1682
+ var parent = this.element.parentElement;
1683
+ while (parent && parent.tagName !== 'HTML') {
1684
+ var parentStyle = getComputedStyle(parent);
1685
+ if (!(eleStyle.position === 'absolute' && parentStyle.position === 'static')
1686
+ && overflowRegex.test(parentStyle.overflow + parentStyle.overflowY + parentStyle.overflowX)) {
1687
+ scrollParents.push(parent);
1688
+ }
1689
+ parent = parent.parentElement;
1690
+ }
1691
+ scrollParents.push(document);
1692
+ return scrollParents;
1693
+ };
1674
1694
  DropDownBase.prototype.removeScrollEvent = function () {
1675
1695
  if (this.list) {
1676
1696
  EventHandler.remove(this.list, 'scroll', this.setFloatingHeader);
@@ -1323,7 +1323,12 @@ var Mention = /** @class */ (function (_super) {
1323
1323
  if (lastNode) {
1324
1324
  range = range.cloneRange();
1325
1325
  if (this.isRTE) {
1326
- range.setStart(lastNode, lastNode.textContent.length);
1326
+ if (lastNode.nodeType === 3) {
1327
+ range.setStart(lastNode, lastNode.textContent.length);
1328
+ }
1329
+ else {
1330
+ range.setStartAfter(lastNode);
1331
+ }
1327
1332
  }
1328
1333
  else {
1329
1334
  range.setStartAfter(lastNode);
@@ -74,7 +74,6 @@ export declare class MultiSelect extends DropDownBase implements IInput {
74
74
  private isBlurDispatching;
75
75
  private isFilterPrevented;
76
76
  private isFilteringAction;
77
- private isVirtualReorder;
78
77
  /**
79
78
  * The `fields` property maps the columns of the data table and binds the data to the component.
80
79
  * * text - Maps the text column from data table for each list item.
@@ -717,6 +716,7 @@ export declare class MultiSelect extends DropDownBase implements IInput {
717
716
  private checkForCustomValue;
718
717
  protected getNgDirective(): string;
719
718
  private wrapperClick;
719
+ private checkAndScrollParent;
720
720
  private enable;
721
721
  private scrollFocusStatus;
722
722
  private keyDownStatus;
@@ -106,7 +106,6 @@ var MultiSelect = /** @class */ (function (_super) {
106
106
  _this.isBlurDispatching = false;
107
107
  _this.isFilterPrevented = false;
108
108
  _this.isFilteringAction = false;
109
- _this.isVirtualReorder = false;
110
109
  _this.isValidKey = false;
111
110
  _this.selectAllEventData = [];
112
111
  _this.selectAllEventEle = [];
@@ -812,11 +811,10 @@ var MultiSelect = /** @class */ (function (_super) {
812
811
  }
813
812
  if ((!this.enableVirtualization && ((searchCount === searchActiveCount || searchActiveCount === this.maximumSelectionLength)
814
813
  && (this.mode === 'CheckBox' && this.showSelectAll))) || (this.enableVirtualization && this.mode === 'CheckBox' &&
815
- this.showSelectAll && this.virtualSelectAll && this.value && this.value.length === this.totalItemCount)) {
814
+ this.showSelectAll && this.value && this.value.length === this.totalItemCount)) {
816
815
  this.notify('checkSelectAll', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox', value: 'check' });
817
816
  }
818
- else if ((searchCount !== searchActiveCount) && (this.mode === 'CheckBox' && this.showSelectAll) &&
819
- ((!this.enableVirtualization) || (this.enableVirtualization && !this.virtualSelectAll))) {
817
+ else if ((searchCount !== searchActiveCount) && (this.mode === 'CheckBox' && this.showSelectAll)) {
820
818
  this.notify('checkSelectAll', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox', value: 'uncheck' });
821
819
  }
822
820
  if (this.enableGroupCheckBox && this.fields.groupBy && !this.enableSelectionOrder) {
@@ -964,7 +962,7 @@ var MultiSelect = /** @class */ (function (_super) {
964
962
  }
965
963
  }
966
964
  }
967
- if ((this.allowFiltering && isSkip) || !isReOrder || (!this.allowFiltering && isSkip) && !this.isVirtualReorder) {
965
+ if (((this.allowFiltering && isSkip) || !isReOrder || (!this.allowFiltering && isSkip)) && !this.isVirtualReorder) {
968
966
  if (!isReOrder) {
969
967
  filterQuery.skip(this.viewPortInfo.startIndex);
970
968
  }
@@ -1128,10 +1126,13 @@ var MultiSelect = /** @class */ (function (_super) {
1128
1126
  if (this.allowObjectBinding) {
1129
1127
  var keys = this.listData && this.listData.length > 0 ? Object.keys(this.listData[0]) : this.firstItem ?
1130
1128
  Object.keys(this.firstItem) : Object.keys(dataItem_1);
1129
+ var isNumberType_1 = (typeof getValue((this.fields.value ? this.fields.value : 'value'), customData)
1130
+ === 'number' && this.fields.value !== this.fields.text);
1131
1131
  // Create an empty object with predefined keys
1132
1132
  keys.forEach(function (key) {
1133
1133
  emptyObject_1[key] = ((key === fields.value) || (key === fields.text)) ?
1134
- getValue(fields.value, dataItem_1) : null;
1134
+ ((key === fields.text) && isNumberType_1) ? getValue(fields.text, dataItem_1) :
1135
+ getValue(fields.value, dataItem_1) : null;
1135
1136
  });
1136
1137
  }
1137
1138
  dataItem_1 = this.allowObjectBinding ? emptyObject_1 : dataItem_1;
@@ -1233,6 +1234,17 @@ var MultiSelect = /** @class */ (function (_super) {
1233
1234
  if (!(this.targetElement() && this.targetElement() !== '')) {
1234
1235
  e.preventDefault();
1235
1236
  }
1237
+ this.checkAndScrollParent();
1238
+ };
1239
+ MultiSelect.prototype.checkAndScrollParent = function () {
1240
+ var parentElement = this.overAllWrapper ? this.overAllWrapper.parentElement : null;
1241
+ if (parentElement) {
1242
+ var wrapperHeight = parseFloat(getComputedStyle(this.overAllWrapper).height);
1243
+ var parentMaxHeight = parseFloat(getComputedStyle(parentElement).maxHeight);
1244
+ if (!isNaN(parentMaxHeight) && wrapperHeight > parentMaxHeight) {
1245
+ parentElement.scrollTop = parentElement.scrollHeight;
1246
+ }
1247
+ }
1236
1248
  };
1237
1249
  MultiSelect.prototype.enable = function (state) {
1238
1250
  if (state) {
@@ -1415,6 +1427,9 @@ var MultiSelect = /** @class */ (function (_super) {
1415
1427
  else {
1416
1428
  this.trigger('change', eventArgs);
1417
1429
  }
1430
+ if (this.enableVirtualization && this.enableSelectionOrder && this.mode === 'CheckBox') {
1431
+ this.preventSetCurrentData = false;
1432
+ }
1418
1433
  this.updateTempValue();
1419
1434
  if (!this.changeOnBlur) {
1420
1435
  this.dispatchEvent(this.hiddenElement, 'change');
@@ -1947,6 +1962,9 @@ var MultiSelect = /** @class */ (function (_super) {
1947
1962
  if (this.value && this.validateValues(this.value, temp)) {
1948
1963
  if (this.mode !== 'CheckBox') {
1949
1964
  this.value = temp;
1965
+ if (this.allowFiltering || this.allowCustomValue) {
1966
+ this.refreshListItems(null);
1967
+ }
1950
1968
  this.initialValueUpdate();
1951
1969
  }
1952
1970
  if (this.mode !== 'Delimiter' && this.mode !== 'CheckBox') {
@@ -3993,6 +4011,7 @@ var MultiSelect = /** @class */ (function (_super) {
3993
4011
  else {
3994
4012
  this.removeValue(value, e, length);
3995
4013
  }
4014
+ this.checkAndScrollParent();
3996
4015
  };
3997
4016
  MultiSelect.prototype.updateListSelectEventCallback = function (value, li, e, currentText) {
3998
4017
  var _this = this;
@@ -4574,7 +4593,8 @@ var MultiSelect = /** @class */ (function (_super) {
4574
4593
  this.updateWrapperText(this.viewWrapper, data);
4575
4594
  }
4576
4595
  wrapperleng = this.viewWrapper.offsetWidth +
4577
- parseInt(window.getComputedStyle(this.viewWrapper).paddingRight, 10);
4596
+ parseInt(window.getComputedStyle(this.viewWrapper).paddingRight, 10) +
4597
+ parseInt(window.getComputedStyle(this.viewWrapper).paddingLeft, 10);
4578
4598
  overAllContainer = this.componentWrapper.offsetWidth -
4579
4599
  parseInt(window.getComputedStyle(this.componentWrapper).paddingLeft, 10) -
4580
4600
  parseInt(window.getComputedStyle(this.componentWrapper).paddingRight, 10);
@@ -4586,14 +4606,16 @@ var MultiSelect = /** @class */ (function (_super) {
4586
4606
  this.updateWrapperText(this.viewWrapper, temp);
4587
4607
  remaining = this.value.length - index;
4588
4608
  wrapperleng = this.viewWrapper.offsetWidth +
4589
- parseInt(window.getComputedStyle(this.viewWrapper).paddingRight, 10);
4609
+ parseInt(window.getComputedStyle(this.viewWrapper).paddingRight, 10) +
4610
+ parseInt(window.getComputedStyle(this.viewWrapper).paddingLeft, 10);
4590
4611
  while (((wrapperleng + remainSize + downIconWidth + this.clearIconWidth) > overAllContainer) && wrapperleng !== 0
4591
4612
  && this.viewWrapper.innerHTML !== '') {
4592
4613
  var textArr = [];
4593
4614
  this.viewWrapper.innerHTML = textArr.join(this.delimiterChar);
4594
4615
  remaining = this.value.length;
4595
4616
  wrapperleng = this.viewWrapper.offsetWidth +
4596
- parseInt(window.getComputedStyle(this.viewWrapper).paddingRight, 10);
4617
+ parseInt(window.getComputedStyle(this.viewWrapper).paddingRight, 10) +
4618
+ parseInt(window.getComputedStyle(this.viewWrapper).paddingLeft, 10);
4597
4619
  }
4598
4620
  break;
4599
4621
  }
@@ -4623,13 +4645,13 @@ var MultiSelect = /** @class */ (function (_super) {
4623
4645
  };
4624
4646
  MultiSelect.prototype.checkClearIconWidth = function () {
4625
4647
  if (this.showClearButton) {
4626
- this.clearIconWidth = this.overAllClear.offsetWidth;
4648
+ this.clearIconWidth = parseInt(window.getComputedStyle(this.overAllClear).width, 10);
4627
4649
  }
4628
4650
  };
4629
4651
  MultiSelect.prototype.updateRemainWidth = function (viewWrapper, totalWidth) {
4630
4652
  if (viewWrapper.classList.contains(TOTAL_COUNT_WRAPPER) && totalWidth < (viewWrapper.offsetWidth +
4631
4653
  parseInt(window.getComputedStyle(viewWrapper).paddingLeft, 10)
4632
- + parseInt(window.getComputedStyle(viewWrapper).paddingLeft, 10))) {
4654
+ + parseInt(window.getComputedStyle(viewWrapper).paddingRight, 10))) {
4633
4655
  viewWrapper.style.width = totalWidth + 'px';
4634
4656
  }
4635
4657
  };
@@ -4889,6 +4911,7 @@ var MultiSelect = /** @class */ (function (_super) {
4889
4911
  li[index - 1].classList.remove('e-item-focus');
4890
4912
  }
4891
4913
  }
4914
+ _this.checkSelectAll();
4892
4915
  }, 0);
4893
4916
  }
4894
4917
  }
@@ -4915,6 +4938,7 @@ var MultiSelect = /** @class */ (function (_super) {
4915
4938
  });
4916
4939
  }
4917
4940
  }
4941
+ this.checkSelectAll();
4918
4942
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
4919
4943
  var virtualTrackElement = this.list.getElementsByClassName('e-virtual-ddl')[0];
4920
4944
  if (virtualTrackElement) {
@@ -5115,6 +5139,7 @@ var MultiSelect = /** @class */ (function (_super) {
5115
5139
  };
5116
5140
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
5117
5141
  MultiSelect.prototype.updateDataSource = function (prop) {
5142
+ this.checkAndResetCache();
5118
5143
  if (isNullOrUndefined(this.list)) {
5119
5144
  this.renderPopup();
5120
5145
  }
@@ -797,6 +797,11 @@
797
797
  pointer-events: none;
798
798
  }
799
799
 
800
+ .e-data-form .e-ddl.e-input-group.e-control-container input[readonly].e-input.e-dropdownlist {
801
+ cursor: pointer;
802
+ pointer-events: auto;
803
+ }
804
+
800
805
  .e-ddl.e-popup.e-popup-open .e-list-item.e-disabled {
801
806
  opacity: 0.7;
802
807
  pointer-events: none;
package/styles/bds.css CHANGED
@@ -932,6 +932,11 @@
932
932
  pointer-events: none;
933
933
  }
934
934
 
935
+ .e-data-form .e-ddl.e-input-group.e-control-container input[readonly].e-input.e-dropdownlist {
936
+ cursor: pointer;
937
+ pointer-events: auto;
938
+ }
939
+
935
940
  .e-ddl.e-popup.e-popup-open .e-list-item.e-disabled {
936
941
  opacity: 0.7;
937
942
  pointer-events: none;
@@ -590,6 +590,11 @@
590
590
  pointer-events: none;
591
591
  }
592
592
 
593
+ .e-data-form .e-ddl.e-input-group.e-control-container input[readonly].e-input.e-dropdownlist {
594
+ cursor: pointer;
595
+ pointer-events: auto;
596
+ }
597
+
593
598
  .e-ddl.e-popup.e-popup-open .e-list-item.e-disabled {
594
599
  opacity: 0.7;
595
600
  pointer-events: none;
@@ -665,6 +665,11 @@
665
665
  pointer-events: none;
666
666
  }
667
667
 
668
+ .e-data-form .e-ddl.e-input-group.e-control-container input[readonly].e-input.e-dropdownlist {
669
+ cursor: pointer;
670
+ pointer-events: auto;
671
+ }
672
+
668
673
  .e-ddl.e-popup.e-popup-open .e-list-item.e-disabled {
669
674
  opacity: 0.7;
670
675
  pointer-events: none;
@@ -590,6 +590,11 @@
590
590
  pointer-events: none;
591
591
  }
592
592
 
593
+ .e-data-form .e-ddl.e-input-group.e-control-container input[readonly].e-input.e-dropdownlist {
594
+ cursor: pointer;
595
+ pointer-events: auto;
596
+ }
597
+
593
598
  .e-ddl.e-popup.e-popup-open .e-list-item.e-disabled {
594
599
  opacity: 0.7;
595
600
  pointer-events: none;
@@ -635,6 +640,13 @@ ejs-dropdownlist {
635
640
  width: 15px;
636
641
  }
637
642
 
643
+ .e-ddl.e-input-group:not(.e-disabled):active:not(.e-success):not(.e-warning):not(.e-error),
644
+ .e-ddl.e-input-group.e-control-wrapper:not(.e-disabled):active:not(.e-success):not(.e-warning):not(.e-error) {
645
+ border-color: #ccc;
646
+ -webkit-box-shadow: none;
647
+ box-shadow: none;
648
+ }
649
+
638
650
  .e-popup {
639
651
  border-color: #ccc;
640
652
  }
@@ -665,6 +665,11 @@
665
665
  pointer-events: none;
666
666
  }
667
667
 
668
+ .e-data-form .e-ddl.e-input-group.e-control-container input[readonly].e-input.e-dropdownlist {
669
+ cursor: pointer;
670
+ pointer-events: auto;
671
+ }
672
+
668
673
  .e-ddl.e-popup.e-popup-open .e-list-item.e-disabled {
669
674
  opacity: 0.7;
670
675
  pointer-events: none;
@@ -710,6 +715,13 @@ ejs-dropdownlist {
710
715
  width: 15px;
711
716
  }
712
717
 
718
+ .e-ddl.e-input-group:not(.e-disabled):active:not(.e-success):not(.e-warning):not(.e-error),
719
+ .e-ddl.e-input-group.e-control-wrapper:not(.e-disabled):active:not(.e-success):not(.e-warning):not(.e-error) {
720
+ border-color: #ccc;
721
+ -webkit-box-shadow: none;
722
+ box-shadow: none;
723
+ }
724
+
713
725
  .e-popup {
714
726
  border-color: #ccc;
715
727
  }
@@ -620,6 +620,11 @@
620
620
  pointer-events: none;
621
621
  }
622
622
 
623
+ .e-data-form .e-ddl.e-input-group.e-control-container input[readonly].e-input.e-dropdownlist {
624
+ cursor: pointer;
625
+ pointer-events: auto;
626
+ }
627
+
623
628
  .e-ddl.e-popup.e-popup-open .e-list-item.e-disabled {
624
629
  opacity: 0.7;
625
630
  pointer-events: none;
@@ -665,6 +670,13 @@ ejs-dropdownlist {
665
670
  width: 15px;
666
671
  }
667
672
 
673
+ .e-ddl.e-input-group:not(.e-disabled):active:not(.e-success):not(.e-warning):not(.e-error),
674
+ .e-ddl.e-input-group.e-control-wrapper:not(.e-disabled):active:not(.e-success):not(.e-warning):not(.e-error) {
675
+ border-color: #ced4da;
676
+ -webkit-box-shadow: none;
677
+ box-shadow: none;
678
+ }
679
+
668
680
  .e-popup {
669
681
  border-color: rgba(0, 0, 0, 0.15);
670
682
  }
@@ -699,6 +699,11 @@
699
699
  pointer-events: none;
700
700
  }
701
701
 
702
+ .e-data-form .e-ddl.e-input-group.e-control-container input[readonly].e-input.e-dropdownlist {
703
+ cursor: pointer;
704
+ pointer-events: auto;
705
+ }
706
+
702
707
  .e-ddl.e-popup.e-popup-open .e-list-item.e-disabled {
703
708
  opacity: 0.7;
704
709
  pointer-events: none;
@@ -744,6 +749,13 @@ ejs-dropdownlist {
744
749
  width: 15px;
745
750
  }
746
751
 
752
+ .e-ddl.e-input-group:not(.e-disabled):active:not(.e-success):not(.e-warning):not(.e-error),
753
+ .e-ddl.e-input-group.e-control-wrapper:not(.e-disabled):active:not(.e-success):not(.e-warning):not(.e-error) {
754
+ border-color: #ced4da;
755
+ -webkit-box-shadow: none;
756
+ box-shadow: none;
757
+ }
758
+
747
759
  .e-popup {
748
760
  border-color: rgba(0, 0, 0, 0.15);
749
761
  }
@@ -643,6 +643,11 @@
643
643
  pointer-events: none;
644
644
  }
645
645
 
646
+ .e-data-form .e-ddl.e-input-group.e-control-container input[readonly].e-input.e-dropdownlist {
647
+ cursor: pointer;
648
+ pointer-events: auto;
649
+ }
650
+
646
651
  .e-ddl.e-popup.e-popup-open .e-list-item.e-disabled {
647
652
  opacity: 0.7;
648
653
  pointer-events: none;
@@ -688,6 +693,13 @@ ejs-dropdownlist {
688
693
  width: 15px;
689
694
  }
690
695
 
696
+ .e-ddl.e-input-group:not(.e-disabled):active:not(.e-success):not(.e-warning):not(.e-error),
697
+ .e-ddl.e-input-group.e-control-wrapper:not(.e-disabled):active:not(.e-success):not(.e-warning):not(.e-error) {
698
+ border-color: #6c757d;
699
+ -webkit-box-shadow: none;
700
+ box-shadow: none;
701
+ }
702
+
691
703
  .e-popup {
692
704
  border-color: rgb(68.0034482759, 75.85, 83.6965517241);
693
705
  }
@@ -732,6 +732,11 @@
732
732
  pointer-events: none;
733
733
  }
734
734
 
735
+ .e-data-form .e-ddl.e-input-group.e-control-container input[readonly].e-input.e-dropdownlist {
736
+ cursor: pointer;
737
+ pointer-events: auto;
738
+ }
739
+
735
740
  .e-ddl.e-popup.e-popup-open .e-list-item.e-disabled {
736
741
  opacity: 0.7;
737
742
  pointer-events: none;
@@ -777,6 +782,13 @@ ejs-dropdownlist {
777
782
  width: 15px;
778
783
  }
779
784
 
785
+ .e-ddl.e-input-group:not(.e-disabled):active:not(.e-success):not(.e-warning):not(.e-error),
786
+ .e-ddl.e-input-group.e-control-wrapper:not(.e-disabled):active:not(.e-success):not(.e-warning):not(.e-error) {
787
+ border-color: #6c757d;
788
+ -webkit-box-shadow: none;
789
+ box-shadow: none;
790
+ }
791
+
780
792
  .e-popup {
781
793
  border-color: rgb(68.0034482759, 75.85, 83.6965517241);
782
794
  }
@@ -643,6 +643,11 @@
643
643
  pointer-events: none;
644
644
  }
645
645
 
646
+ .e-data-form .e-ddl.e-input-group.e-control-container input[readonly].e-input.e-dropdownlist {
647
+ cursor: pointer;
648
+ pointer-events: auto;
649
+ }
650
+
646
651
  .e-ddl.e-popup.e-popup-open .e-list-item.e-disabled {
647
652
  opacity: 0.7;
648
653
  pointer-events: none;
@@ -688,6 +693,13 @@ ejs-dropdownlist {
688
693
  width: 15px;
689
694
  }
690
695
 
696
+ .e-ddl.e-input-group:not(.e-disabled):active:not(.e-success):not(.e-warning):not(.e-error),
697
+ .e-ddl.e-input-group.e-control-wrapper:not(.e-disabled):active:not(.e-success):not(.e-warning):not(.e-error) {
698
+ border-color: #ced4da;
699
+ -webkit-box-shadow: none;
700
+ box-shadow: none;
701
+ }
702
+
691
703
  .e-popup {
692
704
  border-color: #dee2e6;
693
705
  }