@syncfusion/ej2-dropdowns 29.2.11 → 30.1.39

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 (39) hide show
  1. package/.eslintrc.json +2 -0
  2. package/dist/ej2-dropdowns.min.js +2 -2
  3. package/dist/ej2-dropdowns.umd.min.js +2 -2
  4. package/dist/ej2-dropdowns.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-dropdowns.es2015.js +88 -45
  6. package/dist/es6/ej2-dropdowns.es2015.js.map +1 -1
  7. package/dist/es6/ej2-dropdowns.es5.js +90 -48
  8. package/dist/es6/ej2-dropdowns.es5.js.map +1 -1
  9. package/dist/global/ej2-dropdowns.min.js +2 -2
  10. package/dist/global/ej2-dropdowns.min.js.map +1 -1
  11. package/dist/global/index.d.ts +1 -1
  12. package/license +1 -1
  13. package/package.json +8 -8
  14. package/src/auto-complete/auto-complete.d.ts +1 -1
  15. package/src/auto-complete/auto-complete.js +22 -22
  16. package/src/combo-box/combo-box.js +1 -1
  17. package/src/common/incremental-search.js +1 -1
  18. package/src/drop-down-list/drop-down-list.d.ts +1 -0
  19. package/src/drop-down-list/drop-down-list.js +21 -4
  20. package/src/drop-down-tree/drop-down-tree-model.d.ts +1 -1
  21. package/src/drop-down-tree/drop-down-tree.d.ts +1 -0
  22. package/src/drop-down-tree/drop-down-tree.js +10 -2
  23. package/src/mention/mention.d.ts +0 -1
  24. package/src/mention/mention.js +13 -10
  25. package/src/multi-select/multi-select.js +23 -9
  26. package/styles/bootstrap5-dark-lite.css +1 -1
  27. package/styles/bootstrap5-dark.css +1 -1
  28. package/styles/bootstrap5-lite.css +1 -1
  29. package/styles/bootstrap5.css +1 -1
  30. package/styles/drop-down-tree/_bootstrap5-definition.scss +1 -1
  31. package/styles/drop-down-tree/_material3-definition.scss +2 -2
  32. package/styles/drop-down-tree/bootstrap5-dark.css +1 -1
  33. package/styles/drop-down-tree/bootstrap5.css +1 -1
  34. package/styles/drop-down-tree/material3-dark.css +4 -4
  35. package/styles/drop-down-tree/material3.css +4 -4
  36. package/styles/material3-dark-lite.css +3 -3
  37. package/styles/material3-dark.css +4 -4
  38. package/styles/material3-lite.css +3 -3
  39. package/styles/material3.css +4 -4
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 29.2.11
3
+ * version : 30.1.39
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/license CHANGED
@@ -1,3 +1,3 @@
1
- Licensing information is available in the following link
1
+ Licensing information is available in the following link
2
2
 
3
3
  https://www.syncfusion.com/sales/licensing
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@syncfusion/ej2-dropdowns",
3
- "version": "29.2.11",
3
+ "version": "30.1.39",
4
4
  "description": "Essential JS 2 DropDown Components",
5
5
  "author": "Syncfusion Inc.",
6
6
  "license": "SEE LICENSE IN license",
@@ -8,13 +8,13 @@
8
8
  "module": "./index.js",
9
9
  "es2015": "./dist/es6/ej2-dropdowns.es5.js",
10
10
  "dependencies": {
11
- "@syncfusion/ej2-base": "~29.2.11",
12
- "@syncfusion/ej2-data": "~29.2.4",
13
- "@syncfusion/ej2-inputs": "~29.2.5",
14
- "@syncfusion/ej2-lists": "~29.2.4",
15
- "@syncfusion/ej2-navigations": "~29.2.8",
16
- "@syncfusion/ej2-notifications": "~29.2.4",
17
- "@syncfusion/ej2-popups": "~29.2.8"
11
+ "@syncfusion/ej2-base": "~30.1.38",
12
+ "@syncfusion/ej2-data": "~30.1.38",
13
+ "@syncfusion/ej2-inputs": "~30.1.38",
14
+ "@syncfusion/ej2-lists": "~30.1.37",
15
+ "@syncfusion/ej2-navigations": "~30.1.39",
16
+ "@syncfusion/ej2-notifications": "~30.1.37",
17
+ "@syncfusion/ej2-popups": "~30.1.37"
18
18
  },
19
19
  "devDependencies": {},
20
20
  "keywords": [
@@ -216,8 +216,8 @@ export declare class AutoComplete extends ComboBox {
216
216
  protected getLocaleName(): string;
217
217
  protected getNgDirective(): string;
218
218
  protected getQuery(query: Query): Query;
219
- protected searchLists(e: KeyboardEventArgs | MouseEvent): void;
220
219
  protected performFiltering(e: KeyboardEventArgs | MouseEvent): void;
220
+ protected searchLists(e: KeyboardEventArgs | MouseEvent): void;
221
221
  /**
222
222
  * To filter the data from given data source by using query
223
223
  *
@@ -162,6 +162,28 @@ var AutoComplete = /** @class */ (function (_super) {
162
162
  }
163
163
  return filterQuery;
164
164
  };
165
+ AutoComplete.prototype.performFiltering = function (e) {
166
+ var _this_1 = this;
167
+ var eventArgs = {
168
+ preventDefaultAction: false,
169
+ text: this.filterInput ? this.filterInput.value : null,
170
+ updateData: function (dataSource, query, fields) {
171
+ if (eventArgs.cancel) {
172
+ return;
173
+ }
174
+ _this_1.isFiltered = true;
175
+ _this_1.customFilterQuery = query;
176
+ _this_1.filterAction(dataSource, query, fields);
177
+ },
178
+ cancel: false
179
+ };
180
+ this.trigger('filtering', eventArgs, function (eventArgs) {
181
+ if (!eventArgs.cancel && !_this_1.isFiltered && !eventArgs.preventDefaultAction) {
182
+ _this_1.searchList = true;
183
+ _this_1.filterAction(_this_1.dataSource, null, _this_1.fields, e);
184
+ }
185
+ });
186
+ };
165
187
  AutoComplete.prototype.searchLists = function (e) {
166
188
  this.isTyped = true;
167
189
  this.isDataFetched = this.isSelectCustom = false;
@@ -187,28 +209,6 @@ var AutoComplete = /** @class */ (function (_super) {
187
209
  this.performFiltering(e);
188
210
  }
189
211
  };
190
- AutoComplete.prototype.performFiltering = function (e) {
191
- var _this_1 = this;
192
- var eventArgs = {
193
- preventDefaultAction: false,
194
- text: this.filterInput.value,
195
- updateData: function (dataSource, query, fields) {
196
- if (eventArgs.cancel) {
197
- return;
198
- }
199
- _this_1.isFiltered = true;
200
- _this_1.customFilterQuery = query;
201
- _this_1.filterAction(dataSource, query, fields);
202
- },
203
- cancel: false
204
- };
205
- this.trigger('filtering', eventArgs, function (eventArgs) {
206
- if (!eventArgs.cancel && !_this_1.isFiltered && !eventArgs.preventDefaultAction) {
207
- _this_1.searchList = true;
208
- _this_1.filterAction(_this_1.dataSource, null, _this_1.fields, e);
209
- }
210
- });
211
- };
212
212
  /**
213
213
  * To filter the data from given data source by using query
214
214
  *
@@ -917,7 +917,7 @@ var ComboBox = /** @class */ (function (_super) {
917
917
  this.removeFillSelection();
918
918
  }
919
919
  var dataItem = this.isSelectCustom ? { text: '' } : this.getItemData();
920
- var text = !isNullOrUndefined(dataItem.text) ? dataItem.text.replace(/\r\n|\n|\r/g, '') : dataItem.text;
920
+ var text = !isNullOrUndefined(dataItem.text) ? dataItem.text.toString().replace(/\r\n|\n|\r/g, '') : dataItem.text;
921
921
  var selected = !isNullOrUndefined(this.list) ? this.list.querySelector('.' + dropDownListClasses.selected) : null;
922
922
  if (this.inputElement && text === this.inputElement.value && !isNullOrUndefined(selected)) {
923
923
  if (this.isSelected) {
@@ -127,7 +127,7 @@ export function Search(inputVal, items, searchType, ignoreCase, dataSource, fiel
127
127
  var listItems = items;
128
128
  ignoreCase = ignoreCase !== undefined && ignoreCase !== null ? ignoreCase : true;
129
129
  var itemData = { item: null, index: null };
130
- if (inputVal && inputVal.length) {
130
+ if (inputVal && inputVal.length && items) {
131
131
  var strLength = inputVal.length;
132
132
  var queryStr = ignoreCase ? inputVal.toLocaleLowerCase() : inputVal;
133
133
  queryStr = escapeCharRegExp(queryStr);
@@ -60,6 +60,7 @@ export declare class DropDownList extends DropDownBase implements IInput {
60
60
  } | string | number | boolean;
61
61
  protected hiddenElement: HTMLSelectElement;
62
62
  protected isPopupOpen: boolean;
63
+ private isPopupRender;
63
64
  private isDocumentClick;
64
65
  protected isInteracted: boolean;
65
66
  private isFilterFocus;
@@ -113,6 +113,7 @@ var DropDownList = /** @class */ (function (_super) {
113
113
  DropDownList.prototype.initializeData = function () {
114
114
  this.isPopupOpen = false;
115
115
  this.isDocumentClick = false;
116
+ this.isPopupRender = false;
116
117
  this.isInteracted = false;
117
118
  this.isFilterFocus = false;
118
119
  this.beforePopupOpen = false;
@@ -1445,7 +1446,8 @@ var DropDownList = /** @class */ (function (_super) {
1445
1446
  e.preventDefault();
1446
1447
  }
1447
1448
  if (!this.readonly) {
1448
- if (this.isPopupOpen) {
1449
+ if (this.isPopupOpen || (this.popupObj && document.body.contains(this.popupObj.element) &&
1450
+ this.beforePopupOpen && this.isPopupRender)) {
1449
1451
  this.hidePopup(e);
1450
1452
  if (this.isFilterLayout()) {
1451
1453
  this.focusDropDown(e);
@@ -2328,6 +2330,7 @@ var DropDownList = /** @class */ (function (_super) {
2328
2330
  }
2329
2331
  this.getInitialData = false;
2330
2332
  this.isReactTemplateUpdate = true;
2333
+ this.typedString = this.filterInput.value;
2331
2334
  this.searchLists(this.filterArgs);
2332
2335
  return;
2333
2336
  }
@@ -2609,10 +2612,21 @@ var DropDownList = /** @class */ (function (_super) {
2609
2612
  document.body.appendChild(popupEle);
2610
2613
  popupEle.style.top = '0px';
2611
2614
  initialPopupHeight = popupEle.clientHeight;
2612
- if (_this.enableVirtualization && _this.itemTemplate) {
2615
+ if (_this.enableVirtualization && (_this.itemTemplate || _this.isAngular)) {
2613
2616
  var listitems = popupEle.querySelectorAll('li.e-list-item:not(.e-virtual-list)');
2614
- _this.listItemHeight = listitems.length > 0 ? Math.ceil(listitems[0].getBoundingClientRect().height) +
2615
- parseInt(window.getComputedStyle(listitems[0]).marginBottom, 10) : 0;
2617
+ var virtualListitems = popupEle.querySelectorAll('li.e-virtual-list');
2618
+ var listitemsHeight = listitems && listitems.length > 0 ?
2619
+ Math.ceil(listitems[0].getBoundingClientRect().height) +
2620
+ parseInt(window.getComputedStyle(listitems[0]).marginBottom, 10) : 0;
2621
+ var VirtualLiHeight = virtualListitems && virtualListitems.length > 0 ?
2622
+ Math.ceil(virtualListitems[0].getBoundingClientRect().height) +
2623
+ parseInt(window.getComputedStyle(virtualListitems[0]).marginBottom, 10) : 0;
2624
+ if (listitemsHeight !== VirtualLiHeight && virtualListitems && virtualListitems.length > 0) {
2625
+ virtualListitems.forEach(function (item) {
2626
+ item.parentNode.removeChild(item);
2627
+ });
2628
+ }
2629
+ _this.listItemHeight = listitemsHeight;
2616
2630
  }
2617
2631
  if (_this.enableVirtualization && !_this.list.classList.contains(dropDownBaseClasses.noData)) {
2618
2632
  _this.getSkeletonCount();
@@ -2775,6 +2789,7 @@ var DropDownList = /** @class */ (function (_super) {
2775
2789
  }
2776
2790
  if (!isNullOrUndefined(_this.popupObj)) {
2777
2791
  _this.popupObj.show(new Animation(eventArgs.animation), (_this.zIndex === 1000) ? _this.element : null);
2792
+ _this.isPopupRender = true;
2778
2793
  }
2779
2794
  if (_this.isReact) {
2780
2795
  setTimeout(function () {
@@ -3312,6 +3327,7 @@ var DropDownList = /** @class */ (function (_super) {
3312
3327
  _this.rippleFun();
3313
3328
  }
3314
3329
  if (_this.isPopupOpen) {
3330
+ _this.isPopupRender = false;
3315
3331
  _this.popupObj.hide(new Animation(eventArgs.animation));
3316
3332
  }
3317
3333
  else {
@@ -4329,6 +4345,7 @@ var DropDownList = /** @class */ (function (_super) {
4329
4345
  }
4330
4346
  this.hidePopup();
4331
4347
  if (this.popupObj) {
4348
+ this.isPopupRender = false;
4332
4349
  this.popupObj.hide();
4333
4350
  }
4334
4351
  this.unWireEvent();
@@ -1,4 +1,4 @@
1
- import { Input, InputObject, FloatLabelType, TextBox, InputEventArgs } from '@syncfusion/ej2-inputs';import { createCheckBox } from '@syncfusion/ej2-buttons';import { NotifyPropertyChanges, INotifyPropertyChanged, Property, Event, EmitType, SanitizeHtmlHelper } from '@syncfusion/ej2-base';import { Component, EventHandler, attributes, formatUnit, ChildProperty, remove, L10n, extend } from '@syncfusion/ej2-base';import { addClass, removeClass, detach, prepend, Complex, closest, setValue, getValue, compile, append } from '@syncfusion/ej2-base';import { select, selectAll, isNullOrUndefined as isNOU, matches, Browser, KeyboardEvents, KeyboardEventArgs } from '@syncfusion/ej2-base';import { DataManager, Query, DataUtil } from '@syncfusion/ej2-data';import { Popup } from '@syncfusion/ej2-popups';import { TreeView, NodeSelectEventArgs, DataBoundEventArgs, FieldsSettingsModel, NodeClickEventArgs } from '@syncfusion/ej2-navigations';import { NodeCheckEventArgs, FailureEventArgs} from '@syncfusion/ej2-navigations';
1
+ import { Input, InputObject, FloatLabelType, TextBox, InputEventArgs } from '@syncfusion/ej2-inputs';import { createCheckBox } from '@syncfusion/ej2-buttons';import { NotifyPropertyChanges, INotifyPropertyChanged, Property, Event, EmitType, SanitizeHtmlHelper } from '@syncfusion/ej2-base';import { Component, EventHandler, attributes, formatUnit, ChildProperty, remove, L10n, extend } from '@syncfusion/ej2-base';import { addClass, removeClass, detach, prepend, Complex, closest, setValue, getValue, compile, append } from '@syncfusion/ej2-base';import { select, selectAll, isNullOrUndefined as isNOU, matches, Browser, KeyboardEvents, KeyboardEventArgs } from '@syncfusion/ej2-base';import { DataManager, Query, DataUtil } from '@syncfusion/ej2-data';import { Popup, isCollide } from '@syncfusion/ej2-popups';import { TreeView, NodeSelectEventArgs, DataBoundEventArgs, FieldsSettingsModel, NodeClickEventArgs } from '@syncfusion/ej2-navigations';import { NodeCheckEventArgs, FailureEventArgs} from '@syncfusion/ej2-navigations';
2
2
  import {Mode,ExpandOn,TreeFilterType,SortOrder,DdtBeforeOpenEventArgs,DdtChangeEventArgs,DdtPopupEventArgs,DdtDataBoundEventArgs,DdtFilteringEventArgs,DdtFocusEventArgs,DdtKeyPressEventArgs,DdtSelectEventArgs} from "./drop-down-tree";
3
3
  import {ComponentModel} from '@syncfusion/ej2-base';
4
4
 
@@ -828,6 +828,7 @@ export declare class DropDownTree extends Component<HTMLElement> implements INot
828
828
  private getChildType;
829
829
  private renderTree;
830
830
  private renderPopup;
831
+ private checkCollision;
831
832
  private removeFocus;
832
833
  private updateFocus;
833
834
  private reactCallBack;
@@ -25,7 +25,7 @@ import { Component, EventHandler, attributes, formatUnit, ChildProperty, remove,
25
25
  import { addClass, removeClass, detach, prepend, Complex, closest, setValue, getValue, compile, append } from '@syncfusion/ej2-base';
26
26
  import { select, selectAll, isNullOrUndefined as isNOU, matches, Browser, KeyboardEvents } from '@syncfusion/ej2-base';
27
27
  import { DataManager, DataUtil } from '@syncfusion/ej2-data';
28
- import { Popup } from '@syncfusion/ej2-popups';
28
+ import { Popup, isCollide } from '@syncfusion/ej2-popups';
29
29
  import { TreeView } from '@syncfusion/ej2-navigations';
30
30
  var RTL = 'e-rtl';
31
31
  var DROPDOWNTREE = 'e-ddt';
@@ -725,7 +725,7 @@ var DropDownTree = /** @class */ (function (_super) {
725
725
  if (this.isPopupOpen) {
726
726
  this.hidePopup();
727
727
  }
728
- else {
728
+ else if (!(e instanceof TouchEvent) && e.button !== 2) {
729
729
  this.focusIn(e);
730
730
  this.renderPopup();
731
731
  }
@@ -1734,6 +1734,7 @@ var DropDownTree = /** @class */ (function (_super) {
1734
1734
  removeClass([_this.popupEle], DDTHIDEICON);
1735
1735
  _this.updatePopupHeight();
1736
1736
  _this.popupObj.refreshPosition();
1737
+ _this.checkCollision(_this.popupEle);
1737
1738
  if (!(_this.showSelectAll || _this.allowFiltering) && (!_this.popupDiv.classList.contains(NODATA)
1738
1739
  && _this.treeItems.length > 0)) {
1739
1740
  var focusedElement = _this.value != null && _this.text != null ? _this.treeObj.element.querySelector('[data-uid="' + _this.value[_this.value.length - 1] + '"]') : null;
@@ -1777,6 +1778,13 @@ var DropDownTree = /** @class */ (function (_super) {
1777
1778
  }
1778
1779
  });
1779
1780
  };
1781
+ DropDownTree.prototype.checkCollision = function (popupEle) {
1782
+ var collision = isCollide(popupEle);
1783
+ if (collision.length > 0) {
1784
+ popupEle.style.marginTop = -parseInt(getComputedStyle(popupEle).marginTop, 10) + 'px';
1785
+ }
1786
+ this.popupObj.resolveCollision();
1787
+ };
1780
1788
  DropDownTree.prototype.removeFocus = function (focusedElement, oldFocusedElement) {
1781
1789
  if (oldFocusedElement && oldFocusedElement !== focusedElement) {
1782
1790
  oldFocusedElement.setAttribute('tabindex', '-1');
@@ -59,7 +59,6 @@ export declare class Mention extends DropDownBase {
59
59
  private isUpDownKey;
60
60
  private isRTE;
61
61
  private keyEventName;
62
- protected debounceTimer: ReturnType<typeof setTimeout> | null;
63
62
  /**
64
63
  * Defines class/multiple classes separated by a space for the mention component.
65
64
  *
@@ -38,9 +38,7 @@ var Mention = /** @class */ (function (_super) {
38
38
  * @private
39
39
  */
40
40
  function Mention(options, element) {
41
- var _this = _super.call(this, options, element) || this;
42
- _this.debounceTimer = null;
43
- return _this;
41
+ return _super.call(this, options, element) || this;
44
42
  }
45
43
  /**
46
44
  * When property value changes happened, then onPropertyChanged method will execute the respective changes in this component.
@@ -370,12 +368,16 @@ var Mention = /** @class */ (function (_super) {
370
368
  var isValid = currentRange && mentionRegex.test(currentRange) ? false : true;
371
369
  var lastWordRange = this.getLastLetter(currentRange);
372
370
  var previousChar = currentRange ? currentRange.charAt(Math.max(0, currentRange.indexOf(this.mentionChar) - 1)) : '';
373
- if (isValid && this.allowSpaces && currentRange && currentRange.includes(this.mentionChar) && currentRange.split(this.mentionChar).pop() !== ''
374
- && (!this.requireLeadingSpace || (this.requireLeadingSpace && (previousChar === ' ' || currentRange.indexOf(this.mentionChar) === 0)))) {
375
- lastWordRange = this.mentionChar + currentRange.split(this.mentionChar).pop();
376
- }
377
- if (!this.requireLeadingSpace && lastWordRange && lastWordRange.includes(this.mentionChar)) {
378
- lastWordRange = this.mentionChar + lastWordRange.split(this.mentionChar).pop();
371
+ if (!this.allowSpaces) {
372
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
373
+ if (isValid && currentRange && currentRange.includes(this.mentionChar) && currentRange.split(this.mentionChar).pop() !== ''
374
+ && (!this.requireLeadingSpace || (this.requireLeadingSpace && (previousChar === ' ' || currentRange.indexOf(this.mentionChar) === 0)))) {
375
+ lastWordRange = this.mentionChar + currentRange.split(this.mentionChar).pop();
376
+ }
377
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
378
+ if (!this.requireLeadingSpace && lastWordRange && lastWordRange.includes(this.mentionChar)) {
379
+ lastWordRange = this.mentionChar + lastWordRange.split(this.mentionChar).pop();
380
+ }
379
381
  }
380
382
  var lastTwoLetters = this.mentionChar.toString() + this.mentionChar.toString();
381
383
  // eslint-disable-next-line security/detect-non-literal-regexp
@@ -388,7 +390,8 @@ var Mention = /** @class */ (function (_super) {
388
390
  this.hidePopup();
389
391
  return;
390
392
  }
391
- if (((!currentRange || !lastWordRange) || (!lastWordRange.includes(this.mentionChar) && !this.requireLeadingSpace)) || e.code === 'Enter' || e.keyCode === 27 ||
393
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
394
+ if (((!currentRange || !lastWordRange) || (!lastWordRange.includes(this.mentionChar) && !this.requireLeadingSpace && !this.allowSpaces)) || e.code === 'Enter' || e.keyCode === 27 ||
392
395
  (lastWordRange.match(Regex) && lastWordRange.match(Regex).length > 1) ||
393
396
  (this.isContentEditable(this.inputElement) && this.range.startContainer &&
394
397
  this.range.startContainer.previousElementSibling && this.range.startContainer.previousElementSibling.tagName !== 'BR' && this.range.startContainer.textContent.split('').length > 0 &&
@@ -515,7 +515,7 @@ var MultiSelect = /** @class */ (function (_super) {
515
515
  if (this.mode === 'CheckBox' && this.allowFiltering) {
516
516
  this.notify('targetElement', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox' });
517
517
  }
518
- return this.targetInputElement.value;
518
+ return this.targetInputElement ? this.targetInputElement.value : null;
519
519
  };
520
520
  MultiSelect.prototype.getForQuery = function (valuecheck, isCheckbox) {
521
521
  var predicate;
@@ -680,11 +680,16 @@ var MultiSelect = /** @class */ (function (_super) {
680
680
  if (!isNullOrUndefined(this.text) && (isNullOrUndefined(this.value) || this.value.length === 0)) {
681
681
  this.initialTextUpdate();
682
682
  }
683
- if (!this.enableVirtualization || (this.enableVirtualization && (!(this.dataSource instanceof DataManager)))) {
684
- this.initialValueUpdate();
683
+ if (!this.enableVirtualization) {
684
+ if (!this.isRemoveSelection) {
685
+ this.initialValueUpdate(this.listData, true);
686
+ }
687
+ else {
688
+ this.initialValueUpdate();
689
+ }
685
690
  }
686
- else if (!this.isRemoveSelection) {
687
- this.initialValueUpdate(this.listData, true);
691
+ else if (!(this.dataSource instanceof DataManager)) {
692
+ this.initialValueUpdate();
688
693
  }
689
694
  this.initialUpdate();
690
695
  this.refreshPlaceHolder();
@@ -2848,7 +2853,7 @@ var MultiSelect = /** @class */ (function (_super) {
2848
2853
  MultiSelect.prototype.dispatchSelect = function (value, eve, element, isNotTrigger, length, dataValue, text) {
2849
2854
  var _this = this;
2850
2855
  var list = this.listData;
2851
- if (this.initStatus && !isNotTrigger) {
2856
+ if (this.initStatus && !isNotTrigger && (!this.allowObjectBinding || (this.allowObjectBinding && value))) {
2852
2857
  value = this.allowObjectBinding ? getValue(((this.fields.value) ? this.fields.value : ''), value) : value;
2853
2858
  var val_2 = dataValue ? dataValue : this.getDataByValue(value);
2854
2859
  var eventArgs = {
@@ -3757,7 +3762,7 @@ var MultiSelect = /** @class */ (function (_super) {
3757
3762
  else {
3758
3763
  if (this_1.listData) {
3759
3764
  if (this_1.enableVirtualization) {
3760
- if (delim && !this_1.isDynamicRemoteVirtualData) {
3765
+ if (delim && !this_1.isDynamicRemoteVirtualData && !isInitialVirtualData) {
3761
3766
  data = this_1.delimiterWrapper && this_1.delimiterWrapper.innerHTML === '' ? data :
3762
3767
  this_1.delimiterWrapper.innerHTML;
3763
3768
  }
@@ -3769,7 +3774,7 @@ var MultiSelect = /** @class */ (function (_super) {
3769
3774
  text = this_1.text.split(delimiterChar);
3770
3775
  }
3771
3776
  else {
3772
- temp = isInitialVirtualData && delim ? this_1.text : this_1.getTextByValue(value);
3777
+ temp = isInitialVirtualData && delim ? this_1.text.replace(/,/g, delimiterChar + ' ') : this_1.getTextByValue(value);
3773
3778
  var textValues = this_1.isDynamicRemoteVirtualData && value != null && value !== '' && !isInitialVirtualData ?
3774
3779
  this_1.getTextByValue(value) : isInitialVirtualData ? this_1.text : (this_1.text && this_1.text !== '' ? this_1.text + this_1.delimiterChar + temp : temp);
3775
3780
  data += temp + delimiterChar + ' ';
@@ -3933,6 +3938,12 @@ var MultiSelect = /** @class */ (function (_super) {
3933
3938
  text = this.getTextByValue(value);
3934
3939
  isCustomData = true;
3935
3940
  }
3941
+ else if ((isNullOrUndefined(text) && !this.allowCustomValue) &&
3942
+ ((!(this.dataSource instanceof DataManager)) ||
3943
+ (this.dataSource instanceof DataManager && isInitialVirtualData))) {
3944
+ this.value.splice(index, 1);
3945
+ index -= 1;
3946
+ }
3936
3947
  }
3937
3948
  else {
3938
3949
  text = this.getTextByValue(value);
@@ -5527,6 +5538,7 @@ var MultiSelect = /** @class */ (function (_super) {
5527
5538
  this.isaddNonPresentItems = false;
5528
5539
  }
5529
5540
  else {
5541
+ this.selectedListData = [];
5530
5542
  if (prop === 'text') {
5531
5543
  this.initialTextUpdate();
5532
5544
  newProp = this.value;
@@ -5570,7 +5582,9 @@ var MultiSelect = /** @class */ (function (_super) {
5570
5582
  setTimeout(function () {
5571
5583
  _this.initialValueUpdate(listItems_2, true);
5572
5584
  _this.isDynamicRemoteVirtualData = false;
5573
- _this.initialUpdate();
5585
+ if (!_this.inputFocus || (_this.inputFocus && _this.mode !== 'Default')) {
5586
+ _this.initialUpdate();
5587
+ }
5574
5588
  }, 100);
5575
5589
  }
5576
5590
  });
@@ -762,7 +762,7 @@ ejs-dropdownlist {
762
762
  display: none;
763
763
  }
764
764
  .e-ddt.e-input-group.e-control-wrapper.e-show-chip .e-clear-icon, .e-ddt.e-input-group.e-control-wrapper.e-show-text .e-clear-icon, .e-ddt.e-float-input.e-control-wrapper.e-show-chip .e-clear-icon, .e-ddt.e-float-input.e-control-wrapper.e-show-text .e-clear-icon {
765
- bottom: 10px;
765
+ bottom: 8px;
766
766
  position: absolute;
767
767
  right: 0;
768
768
  }
@@ -949,7 +949,7 @@ ejs-dropdownlist {
949
949
  display: none;
950
950
  }
951
951
  .e-ddt.e-input-group.e-control-wrapper.e-show-chip .e-clear-icon, .e-ddt.e-input-group.e-control-wrapper.e-show-text .e-clear-icon, .e-ddt.e-float-input.e-control-wrapper.e-show-chip .e-clear-icon, .e-ddt.e-float-input.e-control-wrapper.e-show-text .e-clear-icon {
952
- bottom: 10px;
952
+ bottom: 8px;
953
953
  position: absolute;
954
954
  right: 0;
955
955
  }
@@ -762,7 +762,7 @@ ejs-dropdownlist {
762
762
  display: none;
763
763
  }
764
764
  .e-ddt.e-input-group.e-control-wrapper.e-show-chip .e-clear-icon, .e-ddt.e-input-group.e-control-wrapper.e-show-text .e-clear-icon, .e-ddt.e-float-input.e-control-wrapper.e-show-chip .e-clear-icon, .e-ddt.e-float-input.e-control-wrapper.e-show-text .e-clear-icon {
765
- bottom: 10px;
765
+ bottom: 8px;
766
766
  position: absolute;
767
767
  right: 0;
768
768
  }
@@ -949,7 +949,7 @@ ejs-dropdownlist {
949
949
  display: none;
950
950
  }
951
951
  .e-ddt.e-input-group.e-control-wrapper.e-show-chip .e-clear-icon, .e-ddt.e-input-group.e-control-wrapper.e-show-text .e-clear-icon, .e-ddt.e-float-input.e-control-wrapper.e-show-chip .e-clear-icon, .e-ddt.e-float-input.e-control-wrapper.e-show-text .e-clear-icon {
952
- bottom: 10px;
952
+ bottom: 8px;
953
953
  position: absolute;
954
954
  right: 0;
955
955
  }
@@ -1,7 +1,7 @@
1
1
  /* stylelint-disable */
2
2
  $ddt-skin-name: $skin-name !default;
3
3
  $ddt-box-shadow: none !default;
4
- $ddt-close-icon-bottom: 10px !default;
4
+ $ddt-close-icon-bottom: 8px !default;
5
5
  $ddt-dd-icon-bottom: 0 !default;
6
6
  $ddt-dd-icon-width: 30px !default;
7
7
  $ddt-close-icon-width: 20px !default;
@@ -49,8 +49,8 @@ $ddt-remains-padding: 0 0 0 8px !default;
49
49
  $ddt-rtl-remains-padding: 0 8px 0 0 !default;
50
50
  $ddt-chip-font-size: $text-sm !default;
51
51
  $ddt-overflow-count-padding: 5px 4px !default;
52
- $ddt-delim-padding: 0 8px !default;
53
- $ddt-delim-bigger-padding: 0 12px !default;
52
+ $ddt-delim-padding: 8px 8px !default;
53
+ $ddt-delim-bigger-padding: 8px 12px !default;
54
54
  $ddt-remains-count-padding-top: 6px !default;
55
55
  $ddt-outline-padding: 10px 12px !default;
56
56
  $ddt-outline-chip-padding: 4px 12px !default;
@@ -109,7 +109,7 @@
109
109
  display: none;
110
110
  }
111
111
  .e-ddt.e-input-group.e-control-wrapper.e-show-chip .e-clear-icon, .e-ddt.e-input-group.e-control-wrapper.e-show-text .e-clear-icon, .e-ddt.e-float-input.e-control-wrapper.e-show-chip .e-clear-icon, .e-ddt.e-float-input.e-control-wrapper.e-show-text .e-clear-icon {
112
- bottom: 10px;
112
+ bottom: 8px;
113
113
  position: absolute;
114
114
  right: 0;
115
115
  }
@@ -109,7 +109,7 @@
109
109
  display: none;
110
110
  }
111
111
  .e-ddt.e-input-group.e-control-wrapper.e-show-chip .e-clear-icon, .e-ddt.e-input-group.e-control-wrapper.e-show-text .e-clear-icon, .e-ddt.e-float-input.e-control-wrapper.e-show-chip .e-clear-icon, .e-ddt.e-float-input.e-control-wrapper.e-show-text .e-clear-icon {
112
- bottom: 10px;
112
+ bottom: 8px;
113
113
  position: absolute;
114
114
  right: 0;
115
115
  }
@@ -205,7 +205,7 @@
205
205
  white-space: nowrap;
206
206
  }
207
207
  .e-ddt .e-overflow.e-show-text {
208
- padding: 0 8px;
208
+ padding: 8px 8px;
209
209
  }
210
210
  .e-ddt .e-overflow.e-show-text.e-input-value:not(.e-icon-hide) {
211
211
  display: inline-grid;
@@ -233,7 +233,7 @@
233
233
  padding-top: 6px;
234
234
  }
235
235
  .e-ddt.e-show-chip .e-overflow.e-total-count .e-remain {
236
- padding: 0 8px;
236
+ padding: 8px 8px;
237
237
  }
238
238
  .e-ddt.e-show-dd-icon .e-chips-wrapper .e-chips:last-child {
239
239
  margin-right: 30px;
@@ -358,7 +358,7 @@
358
358
  padding: 0 0 0 8px;
359
359
  }
360
360
  .e-ddt.e-rtl.e-show-chip .e-overflow.e-total-count .e-remain {
361
- padding: 0 8px;
361
+ padding: 8px 8px;
362
362
  }
363
363
  .e-ddt.e-rtl.e-show-dd-icon .e-chips-wrapper .e-chips:last-child {
364
364
  margin-right: 1px;
@@ -448,7 +448,7 @@
448
448
  }
449
449
  .e-bigger .e-ddt .e-overflow.e-show-text,
450
450
  .e-ddt.e-bigger .e-overflow.e-show-text {
451
- padding: 0 12px;
451
+ padding: 8px 12px;
452
452
  }
453
453
  .e-bigger .e-ddt.e-show-dd-icon .e-chips-wrapper .e-chips:last-child,
454
454
  .e-ddt.e-bigger.e-show-dd-icon .e-chips-wrapper .e-chips:last-child {
@@ -207,7 +207,7 @@
207
207
  white-space: nowrap;
208
208
  }
209
209
  .e-ddt .e-overflow.e-show-text {
210
- padding: 0 8px;
210
+ padding: 8px 8px;
211
211
  }
212
212
  .e-ddt .e-overflow.e-show-text.e-input-value:not(.e-icon-hide) {
213
213
  display: inline-grid;
@@ -235,7 +235,7 @@
235
235
  padding-top: 6px;
236
236
  }
237
237
  .e-ddt.e-show-chip .e-overflow.e-total-count .e-remain {
238
- padding: 0 8px;
238
+ padding: 8px 8px;
239
239
  }
240
240
  .e-ddt.e-show-dd-icon .e-chips-wrapper .e-chips:last-child {
241
241
  margin-right: 30px;
@@ -360,7 +360,7 @@
360
360
  padding: 0 0 0 8px;
361
361
  }
362
362
  .e-ddt.e-rtl.e-show-chip .e-overflow.e-total-count .e-remain {
363
- padding: 0 8px;
363
+ padding: 8px 8px;
364
364
  }
365
365
  .e-ddt.e-rtl.e-show-dd-icon .e-chips-wrapper .e-chips:last-child {
366
366
  margin-right: 1px;
@@ -450,7 +450,7 @@
450
450
  }
451
451
  .e-bigger .e-ddt .e-overflow.e-show-text,
452
452
  .e-ddt.e-bigger .e-overflow.e-show-text {
453
- padding: 0 12px;
453
+ padding: 8px 12px;
454
454
  }
455
455
  .e-bigger .e-ddt.e-show-dd-icon .e-chips-wrapper .e-chips:last-child,
456
456
  .e-ddt.e-bigger.e-show-dd-icon .e-chips-wrapper .e-chips:last-child {
@@ -860,7 +860,7 @@ ejs-dropdownlist {
860
860
  white-space: nowrap;
861
861
  }
862
862
  .e-ddt .e-overflow.e-show-text {
863
- padding: 0 8px;
863
+ padding: 8px 8px;
864
864
  }
865
865
  .e-ddt .e-overflow.e-show-text.e-input-value:not(.e-icon-hide) {
866
866
  display: inline-grid;
@@ -888,7 +888,7 @@ ejs-dropdownlist {
888
888
  padding-top: 6px;
889
889
  }
890
890
  .e-ddt.e-show-chip .e-overflow.e-total-count .e-remain {
891
- padding: 0 8px;
891
+ padding: 8px 8px;
892
892
  }
893
893
  .e-ddt.e-show-dd-icon .e-chips-wrapper .e-chips:last-child {
894
894
  margin-right: 30px;
@@ -1013,7 +1013,7 @@ ejs-dropdownlist {
1013
1013
  padding: 0 0 0 8px;
1014
1014
  }
1015
1015
  .e-ddt.e-rtl.e-show-chip .e-overflow.e-total-count .e-remain {
1016
- padding: 0 8px;
1016
+ padding: 8px 8px;
1017
1017
  }
1018
1018
  .e-ddt.e-rtl.e-show-dd-icon .e-chips-wrapper .e-chips:last-child {
1019
1019
  margin-right: 1px;
@@ -1045,7 +1045,7 @@ ejs-dropdownlist {
1045
1045
  white-space: nowrap;
1046
1046
  }
1047
1047
  .e-ddt .e-overflow.e-show-text {
1048
- padding: 0 8px;
1048
+ padding: 8px 8px;
1049
1049
  }
1050
1050
  .e-ddt .e-overflow.e-show-text.e-input-value:not(.e-icon-hide) {
1051
1051
  display: inline-grid;
@@ -1073,7 +1073,7 @@ ejs-dropdownlist {
1073
1073
  padding-top: 6px;
1074
1074
  }
1075
1075
  .e-ddt.e-show-chip .e-overflow.e-total-count .e-remain {
1076
- padding: 0 8px;
1076
+ padding: 8px 8px;
1077
1077
  }
1078
1078
  .e-ddt.e-show-dd-icon .e-chips-wrapper .e-chips:last-child {
1079
1079
  margin-right: 30px;
@@ -1198,7 +1198,7 @@ ejs-dropdownlist {
1198
1198
  padding: 0 0 0 8px;
1199
1199
  }
1200
1200
  .e-ddt.e-rtl.e-show-chip .e-overflow.e-total-count .e-remain {
1201
- padding: 0 8px;
1201
+ padding: 8px 8px;
1202
1202
  }
1203
1203
  .e-ddt.e-rtl.e-show-dd-icon .e-chips-wrapper .e-chips:last-child {
1204
1204
  margin-right: 1px;
@@ -1288,7 +1288,7 @@ ejs-dropdownlist {
1288
1288
  }
1289
1289
  .e-bigger .e-ddt .e-overflow.e-show-text,
1290
1290
  .e-ddt.e-bigger .e-overflow.e-show-text {
1291
- padding: 0 12px;
1291
+ padding: 8px 12px;
1292
1292
  }
1293
1293
  .e-bigger .e-ddt.e-show-dd-icon .e-chips-wrapper .e-chips:last-child,
1294
1294
  .e-ddt.e-bigger.e-show-dd-icon .e-chips-wrapper .e-chips:last-child {