@syncfusion/ej2-dropdowns 20.3.57 → 20.3.59

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 (50) hide show
  1. package/CHANGELOG.md +16 -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 +76 -46
  6. package/dist/es6/ej2-dropdowns.es2015.js.map +1 -1
  7. package/dist/es6/ej2-dropdowns.es5.js +76 -46
  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 +7 -7
  13. package/src/combo-box/combo-box.js +1 -1
  14. package/src/drop-down-base/drop-down-base.js +12 -10
  15. package/src/drop-down-list/drop-down-list.d.ts +0 -1
  16. package/src/drop-down-list/drop-down-list.js +17 -16
  17. package/src/list-box/list-box.js +17 -8
  18. package/src/multi-select/multi-select.d.ts +1 -0
  19. package/src/multi-select/multi-select.js +29 -11
  20. package/styles/bootstrap-dark.css +4 -0
  21. package/styles/bootstrap.css +4 -0
  22. package/styles/bootstrap4.css +4 -0
  23. package/styles/bootstrap5-dark.css +4 -0
  24. package/styles/bootstrap5.css +4 -0
  25. package/styles/fabric-dark.css +4 -0
  26. package/styles/fabric.css +4 -0
  27. package/styles/fluent-dark.css +4 -0
  28. package/styles/fluent.css +4 -0
  29. package/styles/highcontrast-light.css +4 -0
  30. package/styles/highcontrast.css +4 -0
  31. package/styles/material-dark.css +4 -0
  32. package/styles/material.css +4 -0
  33. package/styles/multi-select/_layout.scss +4 -0
  34. package/styles/multi-select/bootstrap-dark.css +4 -0
  35. package/styles/multi-select/bootstrap.css +4 -0
  36. package/styles/multi-select/bootstrap4.css +4 -0
  37. package/styles/multi-select/bootstrap5-dark.css +4 -0
  38. package/styles/multi-select/bootstrap5.css +4 -0
  39. package/styles/multi-select/fabric-dark.css +4 -0
  40. package/styles/multi-select/fabric.css +4 -0
  41. package/styles/multi-select/fluent-dark.css +4 -0
  42. package/styles/multi-select/fluent.css +4 -0
  43. package/styles/multi-select/highcontrast-light.css +4 -0
  44. package/styles/multi-select/highcontrast.css +4 -0
  45. package/styles/multi-select/material-dark.css +4 -0
  46. package/styles/multi-select/material.css +4 -0
  47. package/styles/multi-select/tailwind-dark.css +4 -0
  48. package/styles/multi-select/tailwind.css +4 -0
  49. package/styles/tailwind-dark.css +4 -0
  50. package/styles/tailwind.css +4 -0
@@ -876,18 +876,20 @@ var DropDownBase = /** @__PURE__ @class */ (function (_super) {
876
876
  return extend({}, options, fields, true);
877
877
  };
878
878
  DropDownBase.prototype.setFloatingHeader = function (e) {
879
- if (isNullOrUndefined(this.fixedHeaderElement)) {
880
- this.fixedHeaderElement = this.createElement('div', { className: dropDownBaseClasses.fixedHead });
881
- if (!this.list.querySelector('li').classList.contains(dropDownBaseClasses.group)) {
882
- this.fixedHeaderElement.style.display = 'none';
879
+ if (!isNullOrUndefined(this.list) && !this.list.classList.contains(dropDownBaseClasses.noData)) {
880
+ if (isNullOrUndefined(this.fixedHeaderElement)) {
881
+ this.fixedHeaderElement = this.createElement('div', { className: dropDownBaseClasses.fixedHead });
882
+ if (!this.list.querySelector('li').classList.contains(dropDownBaseClasses.group)) {
883
+ this.fixedHeaderElement.style.display = 'none';
884
+ }
885
+ prepend([this.fixedHeaderElement], this.list);
886
+ this.setFixedHeader();
883
887
  }
884
- prepend([this.fixedHeaderElement], this.list);
885
- this.setFixedHeader();
886
- }
887
- if (!isNullOrUndefined(this.fixedHeaderElement) && this.fixedHeaderElement.style.zIndex === '0') {
888
- this.setFixedHeader();
888
+ if (!isNullOrUndefined(this.fixedHeaderElement) && this.fixedHeaderElement.style.zIndex === '0') {
889
+ this.setFixedHeader();
890
+ }
891
+ this.scrollStop(e);
889
892
  }
890
- this.scrollStop(e);
891
893
  };
892
894
  DropDownBase.prototype.scrollStop = function (e) {
893
895
  var target = !isNullOrUndefined(e) ? e.target : this.list;
@@ -2488,10 +2490,16 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
2488
2490
  this.setScrollPosition(e);
2489
2491
  }
2490
2492
  if (Browser.info.name !== 'mozilla') {
2491
- attributes(this.inputElement, { 'aria-label': this.inputElement.value });
2493
+ attributes(this.targetElement(), { 'aria-label': this.inputElement.value });
2492
2494
  attributes(this.targetElement(), { 'aria-describedby': this.inputElement.id != '' ? this.inputElement.id : this.element.id });
2493
2495
  this.targetElement().removeAttribute('aria-live');
2494
2496
  }
2497
+ if (!isNullOrUndefined(this.ulElement) && !isNullOrUndefined(this.ulElement.getElementsByClassName('e-item-focus')[0])) {
2498
+ attributes(this.targetElement(), { 'aria-activedescendant': this.ulElement.getElementsByClassName('e-item-focus')[0].id });
2499
+ }
2500
+ else if (!isNullOrUndefined(this.ulElement) && !isNullOrUndefined(this.ulElement.getElementsByClassName('e-active')[0])) {
2501
+ attributes(this.targetElement(), { 'aria-activedescendant': this.ulElement.getElementsByClassName('e-active')[0].id });
2502
+ }
2495
2503
  };
2496
2504
  DropDownList.prototype.dropdownCompiler = function (dropdownTemplate) {
2497
2505
  var checkTemplate = false;
@@ -2684,6 +2692,9 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
2684
2692
  this.preventAutoFill = false;
2685
2693
  }
2686
2694
  this.preventAltUp = false;
2695
+ if (this.getModuleName() === 'autocomplete' && !isNullOrUndefined(this.ulElement) && !isNullOrUndefined(this.ulElement.getElementsByClassName('e-item-focus')[0])) {
2696
+ attributes(this.targetElement(), { 'aria-activedescendant': this.ulElement.getElementsByClassName('e-item-focus')[0].id });
2697
+ }
2687
2698
  e.preventDefault();
2688
2699
  break;
2689
2700
  case 46: //delete
@@ -3177,19 +3188,13 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
3177
3188
  var element = scrollParentElements_1[_i];
3178
3189
  EventHandler.add(element, 'scroll', _this.scrollHandler, _this);
3179
3190
  }
3180
- if (Browser.isDevice && _this.isFilterLayout()) {
3181
- EventHandler.add(_this.list, 'scroll', _this.listScroll, _this);
3182
- }
3183
3191
  if (!isNullOrUndefined(_this.list)) {
3184
3192
  _this.unWireListEvents();
3185
3193
  _this.wireListEvents();
3186
3194
  }
3187
3195
  _this.selectedElementID = _this.selectedLI ? _this.selectedLI.id : null;
3188
- attributes(_this.targetElement(), { 'aria-expanded': 'true', 'aria-owns': _this.inputElement.id + '_options', 'aria-activedescendant': _this.selectedElementID });
3196
+ attributes(_this.targetElement(), { 'aria-expanded': 'true', 'aria-owns': _this.inputElement.id + '_options' });
3189
3197
  _this.inputElement.setAttribute('aria-expanded', 'true');
3190
- if (_this.selectedElementID == null) {
3191
- _this.targetElement().removeAttribute('aria-activedescendant');
3192
- }
3193
3198
  var inputParent = _this.isFiltering() ? _this.filterInput.parentElement : _this.inputWrapper.container;
3194
3199
  addClass([inputParent], [dropDownListClasses.inputFocus]);
3195
3200
  var animModel = { name: 'FadeIn', duration: 100 };
@@ -3258,6 +3263,12 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
3258
3263
  var actionList = _this.actionCompleteData && _this.actionCompleteData.ulElement &&
3259
3264
  _this.actionCompleteData.ulElement.querySelector('li');
3260
3265
  var ulElement = _this.list.querySelector('ul li');
3266
+ if (!isNullOrUndefined(_this.ulElement) && !isNullOrUndefined(_this.ulElement.getElementsByClassName('e-item-focus')[0])) {
3267
+ attributes(_this.targetElement(), { 'aria-activedescendant': _this.ulElement.getElementsByClassName('e-item-focus')[0].id });
3268
+ }
3269
+ else if (!isNullOrUndefined(_this.ulElement) && !isNullOrUndefined(_this.ulElement.getElementsByClassName('e-active')[0])) {
3270
+ attributes(_this.targetElement(), { 'aria-activedescendant': _this.ulElement.getElementsByClassName('e-active')[0].id });
3271
+ }
3261
3272
  if (_this.isFiltering() && _this.itemTemplate && (_this.element.tagName === _this.getNgDirective()) &&
3262
3273
  (actionList && ulElement && actionList.textContent !== ulElement.textContent) &&
3263
3274
  _this.element.tagName !== 'EJS-COMBOBOX') {
@@ -3413,9 +3424,6 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
3413
3424
  this.filterInput.value = this.typedString = '';
3414
3425
  this.searchLists(null);
3415
3426
  };
3416
- DropDownList.prototype.listScroll = function () {
3417
- this.filterInput.blur();
3418
- };
3419
3427
  DropDownList.prototype.setEleWidth = function (width) {
3420
3428
  if (!isNullOrUndefined(width)) {
3421
3429
  if (typeof width === 'number') {
@@ -3444,7 +3452,6 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
3444
3452
  }
3445
3453
  if (Browser.isDevice && this.isFilterLayout()) {
3446
3454
  removeClass([document.body, this.popupObj.element], dropDownListClasses.popupFullScreen);
3447
- EventHandler.remove(this.list, 'scroll', this.listScroll);
3448
3455
  }
3449
3456
  if (this.isFilterLayout()) {
3450
3457
  if (!Browser.isDevice) {
@@ -4058,10 +4065,6 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
4058
4065
  if (!isNullOrUndefined(this.list.children[0]) || this.list.classList.contains(dropDownBaseClasses.noData)) {
4059
4066
  this.renderPopup(e);
4060
4067
  }
4061
- attributes(this.targetElement(), { 'aria-activedescendant': this.selectedElementID });
4062
- if (this.selectedElementID == null) {
4063
- this.targetElement().removeAttribute('aria-activedescendant');
4064
- }
4065
4068
  };
4066
4069
  DropDownList.prototype.renderHightSearch = function () {
4067
4070
  // update high light search
@@ -7728,7 +7731,7 @@ var ComboBox = /** @__PURE__ @class */ (function (_super) {
7728
7731
  this.itemData = this.getDataByValue(this.value);
7729
7732
  var dataItem = this.getItemData();
7730
7733
  if (!(this.allowCustom && isNullOrUndefined(dataItem.value) && isNullOrUndefined(dataItem.text))) {
7731
- this.setProperties({ 'value': dataItem.value, 'text': dataItem.text }, !this.allowCustom);
7734
+ this.setProperties({ 'value': dataItem.value }, !this.allowCustom);
7732
7735
  }
7733
7736
  };
7734
7737
  /**
@@ -9136,12 +9139,7 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
9136
9139
  _this.renderReactTemplates();
9137
9140
  _this.popupObj.show(eventArgs.animation, (_this.zIndex === 1000) ? _this.element : null);
9138
9141
  attributes(_this.inputElement, { 'aria-expanded': 'true', 'aria-owns': _this.inputElement.id + '_options' });
9139
- if (_this.selectedElementID == null) {
9140
- _this.inputElement.removeAttribute('aria-activedescendant');
9141
- }
9142
- else {
9143
- attributes(_this.inputElement, { 'aria-activedescendant': _this.selectedElementID });
9144
- }
9142
+ _this.updateAriaActiveDescendant();
9145
9143
  if (_this.isFirstClick) {
9146
9144
  _this.loadTemplate();
9147
9145
  }
@@ -9291,13 +9289,23 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
9291
9289
  if (!isNullOrUndefined(this.value) && !this.allowCustomValue) {
9292
9290
  for (var i = 0; i < this.value.length; i++) {
9293
9291
  var checkEle = this.findListElement(((this.allowFiltering && !isNullOrUndefined(this.mainList)) ? this.mainList : ulElement), 'li', 'data-value', proxy.value[i]);
9294
- if (!checkEle) {
9292
+ if (!checkEle && !(this.dataSource instanceof DataManager)) {
9295
9293
  this.value.splice(i, 1);
9296
9294
  i -= 1;
9297
9295
  }
9298
9296
  }
9299
9297
  }
9300
- this.updateActionList(ulElement, list, e);
9298
+ var valuecheck = [];
9299
+ if (!isNullOrUndefined(this.value) && !this.allowCustomValue) {
9300
+ valuecheck = this.presentItemValue(this.ulElement);
9301
+ }
9302
+ if (valuecheck.length > 0 && this.dataSource instanceof DataManager && !isNullOrUndefined(this.value)
9303
+ && this.listData != null) {
9304
+ this.addNonPresentItems(valuecheck, this.ulElement, this.listData);
9305
+ }
9306
+ else {
9307
+ this.updateActionList(ulElement, list, e);
9308
+ }
9301
9309
  if (this.dataSource instanceof DataManager && this.mode === 'CheckBox' && this.allowFiltering) {
9302
9310
  this.removeFocus();
9303
9311
  }
@@ -9379,6 +9387,7 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
9379
9387
  dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')');
9380
9388
  if (listEle.length > 0) {
9381
9389
  addClass([listEle[0]], dropDownBaseClasses.focus);
9390
+ this.updateAriaActiveDescendant();
9382
9391
  }
9383
9392
  else {
9384
9393
  //EJ2-57588 - for this task, we prevent the ul element cloning ( this.ulElement = this.ulElement.cloneNode ? <HTMLElement>this.ulElement.cloneNode(true) : this.ulElement;)
@@ -9826,6 +9835,11 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
9826
9835
  this.tempValues = this.value.slice();
9827
9836
  }
9828
9837
  };
9838
+ MultiSelect.prototype.updateAriaActiveDescendant = function () {
9839
+ if (!isNullOrUndefined(this.ulElement) && !isNullOrUndefined(this.ulElement.getElementsByClassName('e-item-focus')[0])) {
9840
+ attributes(this.inputElement, { 'aria-activedescendant': this.ulElement.getElementsByClassName('e-item-focus')[0].id });
9841
+ }
9842
+ };
9829
9843
  MultiSelect.prototype.getPagingCount = function () {
9830
9844
  var height = this.list.classList.contains(dropDownBaseClasses.noData) ? null :
9831
9845
  getComputedStyle(this.getItems()[0], null).getPropertyValue('height');
@@ -9969,6 +9983,7 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
9969
9983
  var element = scrollEle[(isHome) ? 0 : (scrollEle.length - 1)];
9970
9984
  element.classList.add(dropDownBaseClasses.focus);
9971
9985
  this.scrollBottom(element);
9986
+ this.updateAriaActiveDescendant();
9972
9987
  }
9973
9988
  };
9974
9989
  MultiSelect.prototype.onKeyDown = function (e) {
@@ -10470,7 +10485,7 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
10470
10485
  };
10471
10486
  MultiSelect.prototype.invokeCheckboxSelection = function (element, eve, isClearAll) {
10472
10487
  this.notify('updatelist', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox', li: element, e: eve });
10473
- attributes(this.inputElement, { 'aria-activedescendant': element.id });
10488
+ this.updateAriaActiveDescendant();
10474
10489
  if ((this.value && this.value.length !== this.mainData.length)
10475
10490
  && (this.mode === 'CheckBox' && this.showSelectAll && !(this.isSelectAll || isClearAll))) {
10476
10491
  this.notify('checkSelectAll', {
@@ -11493,10 +11508,12 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
11493
11508
  if (this.enabled && this.isValidLI(element)) {
11494
11509
  this.removeFocus();
11495
11510
  addClass([element], dropDownBaseClasses.focus);
11511
+ this.updateAriaActiveDescendant();
11496
11512
  }
11497
11513
  else {
11498
11514
  if (this.enableGroupCheckBox && this.mode === 'CheckBox' && !isNullOrUndefined(this.fields.groupBy)) {
11499
11515
  addClass([element], dropDownBaseClasses.focus);
11516
+ this.updateAriaActiveDescendant();
11500
11517
  }
11501
11518
  }
11502
11519
  };
@@ -12065,6 +12082,7 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
12065
12082
  target.classList.remove('e-active');
12066
12083
  }
12067
12084
  target.classList.add('e-item-focus');
12085
+ this.updateAriaActiveDescendant();
12068
12086
  }
12069
12087
  this.textboxValueUpdate();
12070
12088
  this.checkPlaceholderSize();
@@ -12455,7 +12473,9 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
12455
12473
  MultiSelect.prototype.addNonPresentItems = function (valuecheck, ulElement, list, event) {
12456
12474
  var _this = this;
12457
12475
  this.dataSource.executeQuery(this.getForQuery(valuecheck)).then(function (e) {
12458
- _this.addItem(e.result, list.length);
12476
+ if (e.result.length > 0) {
12477
+ _this.addItem(e.result, list.length);
12478
+ }
12459
12479
  _this.updateActionList(ulElement, list, event);
12460
12480
  });
12461
12481
  };
@@ -12691,7 +12711,8 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
12691
12711
  spellcheck: 'false',
12692
12712
  type: 'text',
12693
12713
  autocomplete: 'off',
12694
- tabindex: '0'
12714
+ tabindex: '0',
12715
+ role: 'combobox'
12695
12716
  }
12696
12717
  });
12697
12718
  if (this.mode === 'Default' || this.mode === 'Box') {
@@ -14725,12 +14746,12 @@ var ListBox = /** @__PURE__ @class */ (function (_super) {
14725
14746
  if (li && li.parentElement) {
14726
14747
  currSelIdx = [].slice.call(li.parentElement.children).indexOf(li);
14727
14748
  if (!this.selectionSettings.showCheckbox) {
14728
- if ((e.ctrlKey || Browser.isDevice) && this.isSelected(li)) {
14749
+ if ((e.ctrlKey || e.metaKey || Browser.isDevice) && this.isSelected(li)) {
14729
14750
  li.classList.remove(cssClass.selected);
14730
14751
  li.removeAttribute('aria-selected');
14731
14752
  isSelect = false;
14732
14753
  }
14733
- else if (!(this.selectionSettings.mode === 'Multiple' && (e.ctrlKey || Browser.isDevice))) {
14754
+ else if (!(this.selectionSettings.mode === 'Multiple' && (e.ctrlKey || e.metaKey || Browser.isDevice))) {
14734
14755
  this.getSelectedItems().forEach(function (ele) {
14735
14756
  ele.removeAttribute('aria-selected');
14736
14757
  });
@@ -15202,12 +15223,21 @@ var ListBox = /** @__PURE__ @class */ (function (_super) {
15202
15223
  }
15203
15224
  return listObj;
15204
15225
  };
15205
- ListBox.prototype.getGrabbedItems = function () {
15226
+ ListBox.prototype.getGrabbedItems = function (args) {
15227
+ var grabbItems = false;
15206
15228
  for (var i = 0; i < this.value.length; i++) {
15207
- var liColl = this.list.querySelectorAll('[aria-selected="true"]');
15208
- for (var j = 0; j < liColl.length; j++) {
15209
- if (this.value[i] === liColl[j].textContent) {
15210
- liColl[j].classList.add('e-grabbed');
15229
+ if (this.value[i] === this.getFormattedValue(args.target.getAttribute('data-value'))) {
15230
+ grabbItems = true;
15231
+ break;
15232
+ }
15233
+ }
15234
+ if (grabbItems) {
15235
+ for (var i = 0; i < this.value.length; i++) {
15236
+ var liColl = this.list.querySelectorAll('[aria-selected="true"]');
15237
+ for (var j = 0; j < liColl.length; j++) {
15238
+ if (this.value[i] === this.getFormattedValue(liColl[j].getAttribute('data-value'))) {
15239
+ liColl[j].classList.add('e-grabbed');
15240
+ }
15211
15241
  }
15212
15242
  }
15213
15243
  }
@@ -15221,7 +15251,7 @@ var ListBox = /** @__PURE__ @class */ (function (_super) {
15221
15251
  return elems;
15222
15252
  };
15223
15253
  ListBox.prototype.getDragArgs = function (args, isDragEnd) {
15224
- var elems = this.getGrabbedItems();
15254
+ var elems = this.getGrabbedItems(args);
15225
15255
  if (elems.length) {
15226
15256
  if (isDragEnd) {
15227
15257
  elems.push(args.target);