@syncfusion/ej2-dropdowns 25.1.35 → 25.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 (48) hide show
  1. package/CHANGELOG.md +48 -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 +270 -109
  6. package/dist/es6/ej2-dropdowns.es2015.js.map +1 -1
  7. package/dist/es6/ej2-dropdowns.es5.js +272 -111
  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/package.json +9 -9
  13. package/src/auto-complete/auto-complete.js +45 -29
  14. package/src/combo-box/combo-box.js +1 -4
  15. package/src/common/highlight-search.js +4 -0
  16. package/src/common/interface.d.ts +1 -0
  17. package/src/common/virtual-scroll.js +5 -5
  18. package/src/drop-down-base/drop-down-base.d.ts +3 -0
  19. package/src/drop-down-base/drop-down-base.js +37 -4
  20. package/src/drop-down-list/drop-down-list.js +71 -34
  21. package/src/drop-down-tree/drop-down-tree.js +21 -9
  22. package/src/list-box/list-box-model.d.ts +13 -1
  23. package/src/list-box/list-box.d.ts +12 -0
  24. package/src/list-box/list-box.js +4 -1
  25. package/src/mention/mention.js +1 -1
  26. package/src/multi-select/checkbox-selection.d.ts +2 -0
  27. package/src/multi-select/checkbox-selection.js +8 -1
  28. package/src/multi-select/multi-select-model.d.ts +1 -1
  29. package/src/multi-select/multi-select.d.ts +1 -0
  30. package/src/multi-select/multi-select.js +75 -22
  31. package/styles/fluent-dark.css +1 -1
  32. package/styles/fluent.css +1 -1
  33. package/styles/list-box/_layout.scss +6 -2
  34. package/styles/list-box/tailwind-dark.css +0 -10
  35. package/styles/list-box/tailwind.css +0 -10
  36. package/styles/material-dark.css +9 -0
  37. package/styles/material.css +9 -0
  38. package/styles/multi-select/_fluent-definition.scss +1 -1
  39. package/styles/multi-select/_material-dark-definition.scss +11 -0
  40. package/styles/multi-select/_material-definition.scss +11 -0
  41. package/styles/multi-select/fluent-dark.css +1 -1
  42. package/styles/multi-select/fluent.css +1 -1
  43. package/styles/multi-select/material-dark.css +9 -0
  44. package/styles/multi-select/material.css +9 -0
  45. package/styles/tailwind-dark.css +0 -10
  46. package/styles/tailwind.css +0 -10
  47. package/.eslintrc.json +0 -260
  48. package/tslint.json +0 -111
@@ -402,7 +402,7 @@ var DropDownTree = /** @class */ (function (_super) {
402
402
  cancel: false,
403
403
  preventDefaultAction: false,
404
404
  event: event,
405
- text: value,
405
+ text: value.trim(),
406
406
  fields: filterFields
407
407
  };
408
408
  this.trigger('filtering', args, function (args) {
@@ -410,7 +410,7 @@ var DropDownTree = /** @class */ (function (_super) {
410
410
  var flag = false;
411
411
  var fields = void 0;
412
412
  _this.isFilteredData = true;
413
- if (value === '') {
413
+ if (args.text === '') {
414
414
  _this.isFilteredData = false;
415
415
  _this.isFilterRestore = true;
416
416
  _this.isFromFilterChange = false;
@@ -421,18 +421,18 @@ var DropDownTree = /** @class */ (function (_super) {
421
421
  }
422
422
  else {
423
423
  if (_this.treeDataType === 1) {
424
- fields = _this.selfReferencefilter(value, args.fields);
424
+ fields = _this.selfReferencefilter(args.text, args.fields);
425
425
  }
426
426
  else {
427
427
  if (_this.fields.dataSource instanceof DataManager) {
428
- fields = _this.remoteDataFilter(value, args.fields);
428
+ fields = _this.remoteDataFilter(args.text, args.fields);
429
429
  fields.child = _this.fields.child;
430
430
  _this.treeObj.fields = _this.getTreeFields(args.fields);
431
431
  _this.treeObj.dataBind();
432
432
  flag = true;
433
433
  }
434
434
  else {
435
- fields = _this.nestedFilter(value, args.fields);
435
+ fields = _this.nestedFilter(args.text, args.fields);
436
436
  }
437
437
  }
438
438
  }
@@ -1108,12 +1108,12 @@ var DropDownTree = /** @class */ (function (_super) {
1108
1108
  DropDownTree.prototype.createHiddenElement = function () {
1109
1109
  if (this.allowMultiSelection || this.showCheckBox) {
1110
1110
  this.hiddenElement = this.createElement('select', {
1111
- attrs: { 'aria-hidden': 'true', 'class': HIDDENELEMENT, 'tabindex': '-1', 'multiple': '' }
1111
+ attrs: { 'aria-hidden': 'true', 'class': HIDDENELEMENT, 'tabindex': '-1', 'multiple': '', 'aria-label': this.getModuleName() }
1112
1112
  });
1113
1113
  }
1114
1114
  else {
1115
1115
  this.hiddenElement = this.createElement('select', {
1116
- attrs: { 'aria-hidden': 'true', 'tabindex': '-1', 'class': HIDDENELEMENT }
1116
+ attrs: { 'aria-hidden': 'true', 'tabindex': '-1', 'class': HIDDENELEMENT, 'aria-label': this.getModuleName() }
1117
1117
  });
1118
1118
  }
1119
1119
  prepend([this.hiddenElement], this.inputWrapper);
@@ -1258,9 +1258,11 @@ var DropDownTree = /** @class */ (function (_super) {
1258
1258
  };
1259
1259
  DropDownTree.prototype.setAttributes = function () {
1260
1260
  this.inputEle.setAttribute('tabindex', '-1');
1261
+ this.inputEle.setAttribute('aria-label', this.getModuleName());
1261
1262
  var id = this.element.getAttribute('id');
1262
1263
  this.hiddenElement.id = id + '_hidden';
1263
1264
  this.inputWrapper.setAttribute('tabindex', '0');
1265
+ this.inputWrapper.setAttribute('aria-label', this.getModuleName());
1264
1266
  attributes(this.inputWrapper, this.getAriaAttributes());
1265
1267
  };
1266
1268
  DropDownTree.prototype.setHTMLAttributes = function () {
@@ -1605,7 +1607,12 @@ var DropDownTree = /** @class */ (function (_super) {
1605
1607
  focusedElement.setAttribute('tabindex', '0');
1606
1608
  }
1607
1609
  else {
1608
- focusedElement = _this.treeObj.element.querySelector('li');
1610
+ var oldFocussedNode = _this.treeObj.element.querySelector('.e-node-focus');
1611
+ focusedElement = _this.treeObj.element.querySelector('li:not(.e-disable):not(.e-prevent)');
1612
+ if (oldFocussedNode && oldFocussedNode != focusedElement) {
1613
+ oldFocussedNode.setAttribute('tabindex', '-1');
1614
+ removeClass([oldFocussedNode], 'e-node-focus');
1615
+ }
1609
1616
  }
1610
1617
  focusedElement.focus();
1611
1618
  addClass([focusedElement], ['e-node-focus']);
@@ -2454,7 +2461,12 @@ var DropDownTree = /** @class */ (function (_super) {
2454
2461
  };
2455
2462
  DropDownTree.prototype.setFooterTemplate = function () {
2456
2463
  if (this.footer) {
2457
- this.footer.innerHTML = '';
2464
+ if (this.isReact && typeof this.footerTemplate === 'function') {
2465
+ this.clearTemplate(['footerTemplate']);
2466
+ }
2467
+ else {
2468
+ this.footer.innerHTML = '';
2469
+ }
2458
2470
  }
2459
2471
  else {
2460
2472
  this.footer = this.createElement('div');
@@ -1,4 +1,4 @@
1
- import { Input, InputObject } from '@syncfusion/ej2-inputs';import { DropDownBase, dropDownBaseClasses, FilteringEventArgs, SelectEventArgs } from '../drop-down-base/drop-down-base';import { FieldSettingsModel } from '../drop-down-base/drop-down-base-model';import { EventHandler, closest, removeClass, addClass, Complex, Property, ChildProperty, BaseEventArgs, L10n, setValue } from '@syncfusion/ej2-base';import { ModuleDeclaration, NotifyPropertyChanges, getComponent, EmitType, Event, extend, detach, attributes } from '@syncfusion/ej2-base';import { getUniqueID, Browser, formatUnit, isNullOrUndefined, getValue } from '@syncfusion/ej2-base';import { prepend, append } from '@syncfusion/ej2-base';import { cssClass, Sortable, moveTo } from '@syncfusion/ej2-lists';import { Button } from '@syncfusion/ej2-buttons';import { createSpinner, showSpinner, hideSpinner, getZindexPartial } from '@syncfusion/ej2-popups';import { DataManager, Query } from '@syncfusion/ej2-data';
1
+ import { Input, InputObject } from '@syncfusion/ej2-inputs';import { DropDownBase, dropDownBaseClasses, FilteringEventArgs, SelectEventArgs } from '../drop-down-base/drop-down-base';import { FieldSettingsModel } from '../drop-down-base/drop-down-base-model';import { EventHandler, closest, removeClass, addClass, Complex, Property, ChildProperty, BaseEventArgs, L10n, setValue } from '@syncfusion/ej2-base';import { ModuleDeclaration, NotifyPropertyChanges, getComponent, EmitType, Event, extend, detach, attributes } from '@syncfusion/ej2-base';import { getUniqueID, Browser, formatUnit, isNullOrUndefined, getValue } from '@syncfusion/ej2-base';import { prepend, append } from '@syncfusion/ej2-base';import { cssClass, Sortable, moveTo, SortOrder } from '@syncfusion/ej2-lists';import { Button } from '@syncfusion/ej2-buttons';import { createSpinner, showSpinner, hideSpinner, getZindexPartial } from '@syncfusion/ej2-popups';import { DataManager, Query } from '@syncfusion/ej2-data';
2
2
  import {SelectionMode,CheckBoxPosition,ToolBarPosition,BeforeItemRenderEventArgs,ListBoxChangeEventArgs,DropEventArgs,DragEventArgs} from "./list-box";
3
3
  import {DropDownBaseModel} from "../drop-down-base/drop-down-base-model";
4
4
 
@@ -160,6 +160,18 @@ export interface ListBoxModel extends DropDownBaseModel{
160
160
  */
161
161
  filterBarPlaceholder?: string;
162
162
 
163
+ /**
164
+ * Specifies the `sortOrder` to sort the data source. The available type of sort orders are
165
+ * * `None` - The data source is not sorting.
166
+ * * `Ascending` - The data source is sorting with ascending order.
167
+ * * `Descending` - The data source is sorting with descending order.
168
+ *
169
+ * @default null
170
+ * @asptype object
171
+ * @aspjsonconverterignore
172
+ */
173
+ sortOrder?: SortOrder;
174
+
163
175
  /**
164
176
  * Triggers while rendering each list item.
165
177
  *
@@ -3,6 +3,7 @@ import { DropDownBase, FilteringEventArgs, SelectEventArgs } from '../drop-down-
3
3
  import { FieldSettingsModel } from '../drop-down-base/drop-down-base-model';
4
4
  import { ChildProperty, BaseEventArgs } from '@syncfusion/ej2-base';
5
5
  import { ModuleDeclaration, EmitType } from '@syncfusion/ej2-base';
6
+ import { SortOrder } from '@syncfusion/ej2-lists';
6
7
  import { SelectionSettingsModel, ListBoxModel, ToolbarSettingsModel } from './list-box-model';
7
8
  import { DataManager, Query } from '@syncfusion/ej2-data';
8
9
  /**
@@ -215,6 +216,17 @@ export declare class ListBox extends DropDownBase {
215
216
  * @default null
216
217
  */
217
218
  filterBarPlaceholder: string;
219
+ /**
220
+ * Specifies the `sortOrder` to sort the data source. The available type of sort orders are
221
+ * * `None` - The data source is not sorting.
222
+ * * `Ascending` - The data source is sorting with ascending order.
223
+ * * `Descending` - The data source is sorting with descending order.
224
+ *
225
+ * @default null
226
+ * @asptype object
227
+ * @aspjsonconverterignore
228
+ */
229
+ sortOrder: SortOrder;
218
230
  /**
219
231
  * Triggers while rendering each list item.
220
232
  *
@@ -226,7 +226,7 @@ var ListBox = /** @class */ (function (_super) {
226
226
  }
227
227
  };
228
228
  ListBox.prototype.updateActionCompleteData = function (li, item, index) {
229
- this.jsonData.splice(index, 0, item);
229
+ this.jsonData.splice(index === null ? this.jsonData.length : index, 0, item);
230
230
  };
231
231
  ListBox.prototype.initToolbar = function () {
232
232
  var pos = this.toolbarSettings.position;
@@ -2449,6 +2449,9 @@ var ListBox = /** @class */ (function (_super) {
2449
2449
  __decorate([
2450
2450
  Property(null)
2451
2451
  ], ListBox.prototype, "filterBarPlaceholder", void 0);
2452
+ __decorate([
2453
+ Property('None')
2454
+ ], ListBox.prototype, "sortOrder", void 0);
2452
2455
  __decorate([
2453
2456
  Event()
2454
2457
  ], ListBox.prototype, "beforeItemRender", void 0);
@@ -409,7 +409,7 @@ var Mention = /** @class */ (function (_super) {
409
409
  }
410
410
  }
411
411
  else if (this.allowSpaces && this.queryString !== '' && currentRange && currentRange.trim() !== '' && currentRange.replace('\u00a0', ' ').lastIndexOf(' ') < currentRange.length - 1 &&
412
- e.keyCode !== 38 && e.keyCode !== 40 && e.keyCode !== 8 && this.mentionChar.charCodeAt(0) === lastWordRange.charCodeAt(0)) {
412
+ e.keyCode !== 38 && e.keyCode !== 40 && e.keyCode !== 8 && (this.mentionChar.charCodeAt(0) === lastWordRange.charCodeAt(0) || (this.liCollections && this.liCollections.length > 0))) {
413
413
  this.queryString = currentRange.substring(currentRange.lastIndexOf(this.mentionChar) + 1).replace('\u00a0', ' ');
414
414
  this.searchLists(e);
415
415
  }
@@ -16,6 +16,7 @@ export declare class CheckBoxSelection {
16
16
  list: HTMLElement;
17
17
  private activeLi;
18
18
  private activeEle;
19
+ private boundPreventListSelection;
19
20
  constructor(parent?: IMulitSelect);
20
21
  getModuleName(): string;
21
22
  addEventListener(): void;
@@ -34,6 +35,7 @@ export declare class CheckBoxSelection {
34
35
  protected setSearchBox(args: IUpdateListArgs): InputObject | void;
35
36
  private clickOnBackIcon;
36
37
  private clearText;
38
+ private preventListSelection;
37
39
  private setDeviceSearchBox;
38
40
  private setSearchBoxPosition;
39
41
  protected setPopupFullScreen(): void;
@@ -312,13 +312,20 @@ var CheckBoxSelection = /** @class */ (function () {
312
312
  if (this.parent.allowFiltering && this.parent.targetInputElement.value === '') {
313
313
  this.parent.search(null);
314
314
  }
315
- this.parent.refreshPopup();
316
315
  this.parent.refreshListItems(null);
316
+ this.parent.refreshPopup();
317
317
  this.clearIconElement.style.visibility = 'hidden';
318
318
  this.filterInput.focus();
319
319
  this.setReorder(e);
320
+ this.boundPreventListSelection = this.preventListSelection.bind(this);
321
+ this.parent.popupWrapper.addEventListener('mouseup', this.boundPreventListSelection, true);
320
322
  e.preventDefault();
321
323
  };
324
+ CheckBoxSelection.prototype.preventListSelection = function (e) {
325
+ e.stopPropagation();
326
+ this.parent.popupWrapper.removeEventListener('mouseup', this.boundPreventListSelection, true);
327
+ this.boundPreventListSelection = null;
328
+ };
322
329
  CheckBoxSelection.prototype.setDeviceSearchBox = function () {
323
330
  this.parent.popupObj.element.classList.add(device);
324
331
  this.parent.popupObj.element.classList.add(mobileFilter);
@@ -1,4 +1,4 @@
1
- import { DropDownBase, SelectEventArgs, dropDownBaseClasses, PopupEventArgs, FilteringEventArgs } from '../drop-down-base/drop-down-base';import { FocusEventArgs, BeforeOpenEventArgs, FilterType, FieldSettings, ResultData } from '../drop-down-base/drop-down-base';import { FieldSettingsModel } from '../drop-down-base/drop-down-base-model';import { Popup, createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';import { IInput, FloatLabelType, Input } from '@syncfusion/ej2-inputs';import { attributes, setValue, SanitizeHtmlHelper, getValue } from '@syncfusion/ej2-base';import { NotifyPropertyChanges, extend } from '@syncfusion/ej2-base';import { EventHandler, Property, Event, compile, L10n, EmitType, KeyboardEventArgs } from '@syncfusion/ej2-base';import { Animation, AnimationModel, Browser, prepend, Complex } from '@syncfusion/ej2-base';import { Search } from '../common/incremental-search';import { append, addClass, removeClass, closest, detach, remove, select, selectAll } from '@syncfusion/ej2-base';import { getUniqueID, formatUnit, isNullOrUndefined, isUndefined, ModuleDeclaration } from '@syncfusion/ej2-base';import { DataManager, Query, Predicate, JsonAdaptor, DataOptions } from '@syncfusion/ej2-data';import { SortOrder } from '@syncfusion/ej2-lists';import { createFloatLabel, removeFloating, floatLabelFocus, floatLabelBlur, encodePlaceholder } from './float-label';
1
+ import { DropDownBase, SelectEventArgs, dropDownBaseClasses, PopupEventArgs, FilteringEventArgs } from '../drop-down-base/drop-down-base';import { FocusEventArgs, BeforeOpenEventArgs, FilterType, FieldSettings, ResultData } from '../drop-down-base/drop-down-base';import { FieldSettingsModel } from '../drop-down-base/drop-down-base-model';import { isCollide, Popup, createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';import { IInput, FloatLabelType, Input } from '@syncfusion/ej2-inputs';import { attributes, setValue, SanitizeHtmlHelper, getValue } from '@syncfusion/ej2-base';import { NotifyPropertyChanges, extend } from '@syncfusion/ej2-base';import { EventHandler, Property, Event, compile, L10n, EmitType, KeyboardEventArgs } from '@syncfusion/ej2-base';import { Animation, AnimationModel, Browser, prepend, Complex } from '@syncfusion/ej2-base';import { Search } from '../common/incremental-search';import { append, addClass, removeClass, closest, detach, remove, select, selectAll } from '@syncfusion/ej2-base';import { getUniqueID, formatUnit, isNullOrUndefined, isUndefined, ModuleDeclaration } from '@syncfusion/ej2-base';import { DataManager, Query, Predicate, JsonAdaptor, DataOptions } from '@syncfusion/ej2-data';import { SortOrder } from '@syncfusion/ej2-lists';import { createFloatLabel, removeFloating, floatLabelFocus, floatLabelBlur, encodePlaceholder } from './float-label';
2
2
  import {visualMode,MultiSelectChangeEventArgs,RemoveEventArgs,ISelectAllEventArgs,TaggingEventArgs,CustomValueEventArgs} from "./multi-select";
3
3
  import {DropDownBaseModel} from "../drop-down-base/drop-down-base-model";
4
4
 
@@ -738,6 +738,7 @@ export declare class MultiSelect extends DropDownBase implements IInput {
738
738
  [key: string]: Object;
739
739
  }[], fields: FieldSettingsModel): FieldSettingsModel;
740
740
  private renderPopup;
741
+ private checkCollision;
741
742
  private setHeaderTemplate;
742
743
  private setFooterTemplate;
743
744
  private updateInitialData;
@@ -21,7 +21,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
21
21
  /// <reference path='../drop-down-base/drop-down-base-model.d.ts'/>
22
22
  import { DropDownBase, dropDownBaseClasses } from '../drop-down-base/drop-down-base';
23
23
  import { FieldSettings } from '../drop-down-base/drop-down-base';
24
- import { Popup, createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';
24
+ import { isCollide, Popup, createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';
25
25
  import { Input } from '@syncfusion/ej2-inputs';
26
26
  import { attributes, setValue, getValue } from '@syncfusion/ej2-base';
27
27
  import { NotifyPropertyChanges, extend } from '@syncfusion/ej2-base';
@@ -269,7 +269,7 @@ var MultiSelect = /** @class */ (function (_super) {
269
269
  attributes(_this.inputElement, { 'aria-expanded': 'true', 'aria-owns': _this.element.id + '_popup', 'aria-controls': _this.element.id });
270
270
  _this.updateAriaActiveDescendant();
271
271
  if (_this.isFirstClick) {
272
- if (_this.enableVirtualization && _this.mode === 'CheckBox' && _this.value) {
272
+ if (_this.enableVirtualization && _this.mode === 'CheckBox' && _this.value && _this.enableSelectionOrder) {
273
273
  _this.updateVirtualReOrderList();
274
274
  }
275
275
  _this.loadTemplate();
@@ -339,9 +339,7 @@ var MultiSelect = /** @class */ (function (_super) {
339
339
  }
340
340
  if (this.enableVirtualization) {
341
341
  var focusedItem = this.list.querySelector('.' + dropDownBaseClasses.focus);
342
- if (focusedItem) {
343
- this.scrollBottom(focusedItem);
344
- }
342
+ this.scrollBottom(focusedItem);
345
343
  }
346
344
  };
347
345
  MultiSelect.prototype.focusAtFirstListItem = function () {
@@ -712,7 +710,7 @@ var MultiSelect = /** @class */ (function (_super) {
712
710
  && (this.mode === 'CheckBox' && this.showSelectAll))) || (this.enableVirtualization && this.mode === 'CheckBox' && this.showSelectAll && this.virtualSelectAll && this.value && this.value.length === this.totalItemCount)) {
713
711
  this.notify('checkSelectAll', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox', value: 'check' });
714
712
  }
715
- else if ((searchCount !== searchActiveCount) && (this.mode === 'CheckBox' && this.showSelectAll)) {
713
+ else if ((searchCount !== searchActiveCount) && (this.mode === 'CheckBox' && this.showSelectAll) && ((!this.enableVirtualization) || (this.enableVirtualization && !this.virtualSelectAll))) {
716
714
  this.notify('checkSelectAll', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox', value: 'uncheck' });
717
715
  }
718
716
  if (this.enableGroupCheckBox && this.fields.groupBy && !this.enableSelectionOrder) {
@@ -773,7 +771,12 @@ var MultiSelect = /** @class */ (function (_super) {
773
771
  MultiSelect.prototype.getQuery = function (query) {
774
772
  var filterQuery = query ? query.clone() : this.query ? this.query.clone() : new Query();
775
773
  if (this.isFiltered) {
776
- return filterQuery;
774
+ if ((this.enableVirtualization && !isNullOrUndefined(this.customFilterQuery))) {
775
+ filterQuery = this.customFilterQuery.clone();
776
+ }
777
+ else if (!this.enableVirtualization) {
778
+ return filterQuery;
779
+ }
777
780
  }
778
781
  if (this.filterAction) {
779
782
  if ((this.targetElement() !== null && !this.enableVirtualization) || (this.enableVirtualization && this.targetElement() !== null && this.targetElement().trim() !== '')) {
@@ -795,6 +798,15 @@ var MultiSelect = /** @class */ (function (_super) {
795
798
  if (this.enableVirtualization && (this.viewPortInfo.endIndex != 0) && !this.virtualSelectAll && (!(this.dataSource instanceof DataManager) || (this.dataSource instanceof DataManager && this.virtualGroupDataSource))) {
796
799
  return this.virtualFilterQuery(filterQuery);
797
800
  }
801
+ else if (this.enableVirtualization && (this.dataSource instanceof DataManager && !this.virtualGroupDataSource)) {
802
+ for (var queryElements = 0; queryElements < filterQuery.queries.length; queryElements++) {
803
+ if (filterQuery.queries[queryElements].fn === 'onSkip' || filterQuery.queries[queryElements].fn === 'onTake') {
804
+ filterQuery.queries.splice(queryElements, 1);
805
+ --queryElements;
806
+ }
807
+ }
808
+ return filterQuery;
809
+ }
798
810
  return query ? query : this.query ? this.query : new Query();
799
811
  }
800
812
  };
@@ -814,6 +826,30 @@ var MultiSelect = /** @class */ (function (_super) {
814
826
  isTake = false;
815
827
  }
816
828
  }
829
+ var queryTakeValue = 0;
830
+ if (filterQuery && filterQuery.queries.length > 0) {
831
+ for (var queryElements = 0; queryElements < filterQuery.queries.length; queryElements++) {
832
+ if (filterQuery.queries[queryElements].fn === 'onTake') {
833
+ queryTakeValue = takeValue <= filterQuery.queries[queryElements].e.nos ? filterQuery.queries[queryElements].e.nos : takeValue;
834
+ }
835
+ }
836
+ }
837
+ if (queryTakeValue <= 0 && this.query && this.query.queries.length > 0) {
838
+ for (var queryElements = 0; queryElements < this.query.queries.length; queryElements++) {
839
+ if (this.query.queries[queryElements].fn === 'onTake') {
840
+ queryTakeValue = takeValue <= this.query.queries[queryElements].e.nos ? this.query.queries[queryElements].e.nos : takeValue;
841
+ }
842
+ }
843
+ }
844
+ if (filterQuery && filterQuery.queries.length > 0) {
845
+ for (var queryElements = 0; queryElements < filterQuery.queries.length; queryElements++) {
846
+ if (filterQuery.queries[queryElements].fn === 'onTake') {
847
+ queryTakeValue = filterQuery.queries[queryElements].e.nos <= queryTakeValue ? queryTakeValue : filterQuery.queries[queryElements].e.nos;
848
+ filterQuery.queries.splice(queryElements, 1);
849
+ --queryElements;
850
+ }
851
+ }
852
+ }
817
853
  if ((this.allowFiltering && isSkip) || !isReOrder || (!this.allowFiltering && isSkip)) {
818
854
  if (!isReOrder) {
819
855
  filterQuery.skip(this.viewPortInfo.startIndex);
@@ -822,13 +858,14 @@ var MultiSelect = /** @class */ (function (_super) {
822
858
  filterQuery.skip(this.virtualItemStartIndex);
823
859
  }
824
860
  }
825
- if (isTake) {
826
- if (this.isIncrementalRequest) {
827
- filterQuery.take(this.incrementalEndIndex);
828
- }
829
- else {
830
- filterQuery.take(takeValue);
831
- }
861
+ if (this.isIncrementalRequest) {
862
+ filterQuery.take(this.incrementalEndIndex);
863
+ }
864
+ else if (queryTakeValue > 0) {
865
+ filterQuery.take(queryTakeValue);
866
+ }
867
+ else {
868
+ filterQuery.take(takeValue);
832
869
  }
833
870
  filterQuery.requiresCount();
834
871
  return filterQuery;
@@ -1151,7 +1188,7 @@ var MultiSelect = /** @class */ (function (_super) {
1151
1188
  parseInt(getComputedStyle(this.dropIcon).marginRight);
1152
1189
  elementWidth = this.overAllWrapper.clientWidth - (downIconWidth + 2 * (parseInt(getComputedStyle(this.inputElement).paddingRight)));
1153
1190
  }
1154
- if (this.floatLabelType === 'Auto') {
1191
+ if (this.floatLabelType !== 'Never') {
1155
1192
  Input.calculateWidth(elementWidth, this.overAllWrapper, this.getModuleName());
1156
1193
  }
1157
1194
  }
@@ -2404,7 +2441,7 @@ var MultiSelect = /** @class */ (function (_super) {
2404
2441
  var currentText = [];
2405
2442
  var value_1 = this.allowObjectBinding ? getValue(((this.fields.value) ? this.fields.value : ''), this.value[this.value.length - 1]) : this.value[this.value.length - 1];
2406
2443
  temp = this.getTextByValue(value_1);
2407
- var textValues = this.text != null ? this.text + ',' + temp : temp;
2444
+ var textValues = this.text != null && this.text != "" ? this.text + ',' + temp : temp;
2408
2445
  currentText.push(textValues);
2409
2446
  this.setProperties({ text: currentText.toString() }, true);
2410
2447
  }
@@ -2776,6 +2813,7 @@ var MultiSelect = /** @class */ (function (_super) {
2776
2813
  }
2777
2814
  }
2778
2815
  });
2816
+ this.checkCollision(this.popupWrapper);
2779
2817
  this.popupContentElement = this.popupObj.element.querySelector('.e-content');
2780
2818
  if (this.mode === 'CheckBox' && Browser.isDevice && this.allowFiltering) {
2781
2819
  this.notify('deviceSearchBox', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox' });
@@ -2785,6 +2823,15 @@ var MultiSelect = /** @class */ (function (_super) {
2785
2823
  }
2786
2824
  }
2787
2825
  };
2826
+ MultiSelect.prototype.checkCollision = function (popupEle) {
2827
+ if (!(this.mode === 'CheckBox' && Browser.isDevice && this.allowFiltering)) {
2828
+ var collision = isCollide(popupEle);
2829
+ if (collision.length > 0) {
2830
+ popupEle.style.marginTop = -parseInt(getComputedStyle(popupEle).marginTop, 10) + 'px';
2831
+ }
2832
+ this.popupObj.resolveCollision();
2833
+ }
2834
+ };
2788
2835
  MultiSelect.prototype.setHeaderTemplate = function () {
2789
2836
  var compiledString;
2790
2837
  if (this.header) {
@@ -3048,6 +3095,7 @@ var MultiSelect = /** @class */ (function (_super) {
3048
3095
  return;
3049
3096
  }
3050
3097
  _this.isFiltered = true;
3098
+ _this.customFilterQuery = query;
3051
3099
  _this.remoteFilterAction = true;
3052
3100
  _this.dataUpdater(dataSource, query, fields);
3053
3101
  },
@@ -3336,7 +3384,7 @@ var MultiSelect = /** @class */ (function (_super) {
3336
3384
  (element && (element.getAttribute('aria-selected') === 'true' && this.hideSelectedItem) &&
3337
3385
  (this.mode === 'Box' || this.mode === 'Default'))) || (this.enableVirtualization && value != null && text != null && !isCustomData)) {
3338
3386
  var currentText = [];
3339
- var textValues = this.text != null ? this.text + ',' + text : text;
3387
+ var textValues = this.text != null && this.text != "" ? this.text + ',' + text : text;
3340
3388
  currentText.push(textValues);
3341
3389
  this.setProperties({ text: currentText.toString() }, true);
3342
3390
  this.addChip(text, value);
@@ -3364,7 +3412,7 @@ var MultiSelect = /** @class */ (function (_super) {
3364
3412
  this.wireListEvents();
3365
3413
  }
3366
3414
  var currentText = [];
3367
- var textValues = this.text != null ? this.text + ',' + text : text;
3415
+ var textValues = this.text != null && this.text != "" ? this.text + ',' + text : text;
3368
3416
  currentText.push(textValues);
3369
3417
  this.setProperties({ text: currentText.toString() }, true);
3370
3418
  this.addChip(text, value);
@@ -4234,7 +4282,7 @@ var MultiSelect = /** @class */ (function (_super) {
4234
4282
  if (this.enableVirtualization) {
4235
4283
  if (state) {
4236
4284
  this.virtualSelectAll = true;
4237
- this.resetList(this.dataSource, this.fields, new Query().skip(this.viewPortInfo.startIndex));
4285
+ this.resetList(this.dataSource, this.fields, new Query());
4238
4286
  if (this.virtualSelectAllData instanceof Array) {
4239
4287
  for (var i = 0; i < this.virtualSelectAllData.length; i++) {
4240
4288
  if (li[this.skeletonCount + i]) {
@@ -4304,8 +4352,12 @@ var MultiSelect = /** @class */ (function (_super) {
4304
4352
  }
4305
4353
  this.value = [];
4306
4354
  this.virtualSelectAll = false;
4307
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
4308
- var ulElement = this.renderItems(this.listData, this.fields);
4355
+ if (!isNullOrUndefined(this.viewPortInfo.startIndex) && !isNullOrUndefined(this.viewPortInfo.endIndex)) {
4356
+ this.notify("setCurrentViewDataAsync", {
4357
+ component: this.getModuleName(),
4358
+ module: "VirtualScroll",
4359
+ });
4360
+ }
4309
4361
  }
4310
4362
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
4311
4363
  var virtualTrackElement = this.list.getElementsByClassName('e-virtual-ddl')[0];
@@ -4794,6 +4846,7 @@ var MultiSelect = /** @class */ (function (_super) {
4794
4846
  duration: 100,
4795
4847
  delay: delay ? delay : 0
4796
4848
  };
4849
+ this.customFilterQuery = null;
4797
4850
  var eventArgs = { popup: this.popupObj, cancel: false, animation: animModel, event: e || null };
4798
4851
  this.trigger('close', eventArgs, function (eventArgs) {
4799
4852
  if (!eventArgs.cancel) {
@@ -4816,7 +4869,7 @@ var MultiSelect = /** @class */ (function (_super) {
4816
4869
  if (_this.mode === 'CheckBox' && _this.showSelectAll) {
4817
4870
  EventHandler.remove(_this.popupObj.element, 'click', _this.clickHandler);
4818
4871
  }
4819
- if (_this.enableVirtualization && _this.mode === 'CheckBox') {
4872
+ if (_this.enableVirtualization && _this.mode === 'CheckBox' && _this.enableSelectionOrder) {
4820
4873
  _this.viewPortInfo.startIndex = _this.virtualItemStartIndex = 0;
4821
4874
  _this.viewPortInfo.endIndex = _this.virtualItemEndIndex = _this.viewPortInfo.startIndex > 0 ? _this.viewPortInfo.endIndex : _this.itemCount;
4822
4875
  _this.previousStartIndex = 0;
@@ -1346,7 +1346,7 @@ ejs-dropdownlist {
1346
1346
 
1347
1347
  .e-bigger .e-multiselect.e-control-container .e-multi-select-wrapper.e-down-icon .e-clear-icon,
1348
1348
  .e-bigger.e-multiselect.e-control-container .e-multi-select-wrapper.e-down-icon .e-clear-icon {
1349
- margin-top: -1.5em;
1349
+ margin-top: -1.6em;
1350
1350
  }
1351
1351
 
1352
1352
  .e-multiselect.e-input-group .e-ddl-icon::before {
package/styles/fluent.css CHANGED
@@ -1346,7 +1346,7 @@ ejs-dropdownlist {
1346
1346
 
1347
1347
  .e-bigger .e-multiselect.e-control-container .e-multi-select-wrapper.e-down-icon .e-clear-icon,
1348
1348
  .e-bigger.e-multiselect.e-control-container .e-multi-select-wrapper.e-down-icon .e-clear-icon {
1349
- margin-top: -1.5em;
1349
+ margin-top: -1.6em;
1350
1350
  }
1351
1351
 
1352
1352
  .e-multiselect.e-input-group .e-ddl-icon::before {
@@ -278,11 +278,15 @@
278
278
  }
279
279
 
280
280
  .e-input-group {
281
- padding: 4px 8px;
281
+ @if $skin-name != 'tailwind' {
282
+ padding: 4px 8px;
283
+ }
282
284
  }
283
285
 
284
286
  .e-input-focus {
285
- padding: 4px 4px 4px 8px;
287
+ @if $skin-name != 'tailwind' {
288
+ padding: 4px 4px 4px 8px;
289
+ }
286
290
  }
287
291
 
288
292
  .e-hidden-select {
@@ -373,16 +373,6 @@
373
373
  right: 0;
374
374
  top: 30%;
375
375
  }
376
- .e-listbox-wrapper .e-input-group,
377
- .e-listbox-container .e-input-group,
378
- .e-listboxtool-wrapper .e-input-group {
379
- padding: 4px 8px;
380
- }
381
- .e-listbox-wrapper .e-input-focus,
382
- .e-listbox-container .e-input-focus,
383
- .e-listboxtool-wrapper .e-input-focus {
384
- padding: 4px 4px 4px 8px;
385
- }
386
376
  .e-listbox-wrapper .e-hidden-select,
387
377
  .e-listbox-container .e-hidden-select,
388
378
  .e-listboxtool-wrapper .e-hidden-select {
@@ -373,16 +373,6 @@
373
373
  right: 0;
374
374
  top: 30%;
375
375
  }
376
- .e-listbox-wrapper .e-input-group,
377
- .e-listbox-container .e-input-group,
378
- .e-listboxtool-wrapper .e-input-group {
379
- padding: 4px 8px;
380
- }
381
- .e-listbox-wrapper .e-input-focus,
382
- .e-listbox-container .e-input-focus,
383
- .e-listboxtool-wrapper .e-input-focus {
384
- padding: 4px 4px 4px 8px;
385
- }
386
376
  .e-listbox-wrapper .e-hidden-select,
387
377
  .e-listbox-container .e-hidden-select,
388
378
  .e-listboxtool-wrapper .e-hidden-select {
@@ -1527,6 +1527,15 @@ ejs-dropdownlist {
1527
1527
  transform: rotate(360deg);
1528
1528
  }
1529
1529
  }
1530
+ .e-multiselect.e-input-group.e-checkbox .e-multi-select-wrapper input[type=text] {
1531
+ padding: 1px 0;
1532
+ }
1533
+
1534
+ .e-small .e-multiselect.e-input-group.e-checkbox .e-multi-select-wrapper input[type=text],
1535
+ .e-small.e-multiselect.e-input-group.e-checkbox .e-multi-select-wrapper input[type=text] {
1536
+ padding: 0;
1537
+ }
1538
+
1530
1539
  .e-multiselect.e-input-group .e-ddl-icon::before {
1531
1540
  content: "\e969";
1532
1541
  font-family: "e-icons";
@@ -1582,6 +1582,15 @@ ejs-dropdownlist {
1582
1582
  transform: rotate(360deg);
1583
1583
  }
1584
1584
  }
1585
+ .e-multiselect.e-input-group.e-checkbox .e-multi-select-wrapper input[type=text] {
1586
+ padding: 1px 0;
1587
+ }
1588
+
1589
+ .e-small .e-multiselect.e-input-group.e-checkbox .e-multi-select-wrapper input[type=text],
1590
+ .e-small.e-multiselect.e-input-group.e-checkbox .e-multi-select-wrapper input[type=text] {
1591
+ padding: 0;
1592
+ }
1593
+
1585
1594
  .e-multiselect.e-input-group .e-ddl-icon::before {
1586
1595
  content: "\e969";
1587
1596
  font-family: "e-icons";
@@ -241,6 +241,6 @@ $ddl-small-clear-icon-width: 12px !default;
241
241
 
242
242
  .e-bigger .e-multiselect.e-control-container .e-multi-select-wrapper.e-down-icon .e-clear-icon,
243
243
  .e-bigger.e-multiselect.e-control-container .e-multi-select-wrapper.e-down-icon .e-clear-icon {
244
- margin-top: -1.5em;
244
+ margin-top: -1.6em;
245
245
  }
246
246
  }
@@ -228,3 +228,14 @@ $ddl-multiselect-filled-float-input-min-height-bigger: 36px !default;
228
228
  $ddl-multiselect-filled-floatlabel-fontsize-bigger: 12px !default;
229
229
  $filled-multiselect-chip-bg-color: $grey-800 !default;
230
230
  $filled-multiselect-chip-hover-bg-color: $grey-700 !default;
231
+
232
+ @include export-module('multiselect-material-dark') {
233
+ .e-multiselect.e-input-group.e-checkbox .e-multi-select-wrapper input[type = 'text'] {
234
+ padding: 1px 0;
235
+ }
236
+
237
+ .e-small .e-multiselect.e-input-group.e-checkbox .e-multi-select-wrapper input[type = 'text'],
238
+ .e-small.e-multiselect.e-input-group.e-checkbox .e-multi-select-wrapper input[type = 'text'] {
239
+ padding: 0;
240
+ }
241
+ }
@@ -221,3 +221,14 @@ $outline-multiselect-disabled-font-color: rgba($grey-light-font, .38) !default;
221
221
  $outline-multiselect-disabled-chip-bg-color: $grey-100 !default;
222
222
  $filled-multiselect-chip-bg-color: darken($grey-300, 7%) !default;
223
223
  $filled-multiselect-chip-hover-bg-color: darken($grey-300, 7%) !default;
224
+
225
+ @include export-module('multiselect-material') {
226
+ .e-multiselect.e-input-group.e-checkbox .e-multi-select-wrapper input[type = 'text'] {
227
+ padding: 1px 0;
228
+ }
229
+
230
+ .e-small .e-multiselect.e-input-group.e-checkbox .e-multi-select-wrapper input[type = 'text'],
231
+ .e-small.e-multiselect.e-input-group.e-checkbox .e-multi-select-wrapper input[type = 'text'] {
232
+ padding: 0;
233
+ }
234
+ }
@@ -94,7 +94,7 @@
94
94
 
95
95
  .e-bigger .e-multiselect.e-control-container .e-multi-select-wrapper.e-down-icon .e-clear-icon,
96
96
  .e-bigger.e-multiselect.e-control-container .e-multi-select-wrapper.e-down-icon .e-clear-icon {
97
- margin-top: -1.5em;
97
+ margin-top: -1.6em;
98
98
  }
99
99
 
100
100
  .e-multiselect.e-input-group .e-ddl-icon::before {
@@ -94,7 +94,7 @@
94
94
 
95
95
  .e-bigger .e-multiselect.e-control-container .e-multi-select-wrapper.e-down-icon .e-clear-icon,
96
96
  .e-bigger.e-multiselect.e-control-container .e-multi-select-wrapper.e-down-icon .e-clear-icon {
97
- margin-top: -1.5em;
97
+ margin-top: -1.6em;
98
98
  }
99
99
 
100
100
  .e-multiselect.e-input-group .e-ddl-icon::before {