@syncfusion/ej2-dropdowns 30.1.40 → 30.1.42

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.
@@ -415,7 +415,7 @@ var VirtualScroll = /** @__PURE__ @class */ (function () {
415
415
  if (this.component === 'combobox') {
416
416
  var totalData = 0;
417
417
  if (this.parent.dataSource instanceof DataManager) {
418
- totalData = this.parent.dataSource.dataSource.json.length;
418
+ totalData = this.parent.remoteDataCount;
419
419
  }
420
420
  else if (this.parent.dataSource && this.parent.dataSource.length > 0) {
421
421
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -744,6 +744,7 @@ var VirtualScroll = /** @__PURE__ @class */ (function () {
744
744
  this.parent.isVirtualScrolling = true;
745
745
  setTimeout(function () {
746
746
  _this.parent.pageCount = _this.parent.getPageCount();
747
+ _this.parent.isRequesting = false;
747
748
  _this.virtualScrollRefreshAsync().then(function () {
748
749
  if (_this.parent.popupObj) {
749
750
  _this.parent.list = _this.parent.popupObj.element.querySelector('.' + 'e-content') || select('.' + 'e-content');
@@ -1589,11 +1590,12 @@ var DropDownBase = /** @__PURE__ @class */ (function (_super) {
1589
1590
  _this.emptyDataRequest(fields);
1590
1591
  return;
1591
1592
  }
1592
- eventArgs.data.executeQuery(_this.getQuery(eventArgs.query)).then(function (e) {
1593
+ var query_1 = _this.getQuery(eventArgs.query);
1594
+ eventArgs.data.executeQuery(query_1).then(function (e) {
1593
1595
  _this.isPreventChange = _this.isAngular && _this.preventChange ? true : _this.isPreventChange;
1594
1596
  var isReOrder = true;
1595
1597
  if (!_this.virtualSelectAll) {
1596
- var newQuery = _this.getQuery(eventArgs.query);
1598
+ var newQuery = query_1.clone();
1597
1599
  for (var queryElements = 0; queryElements < newQuery.queries.length; queryElements++) {
1598
1600
  if (newQuery.queries[queryElements].fn === 'onWhere') {
1599
1601
  isWhereExist_1 = true;
@@ -1648,10 +1650,15 @@ var DropDownBase = /** @__PURE__ @class */ (function (_super) {
1648
1650
  _this.totalItemCount = !_this.virtualSelectAll ? e.count : _this.totalItemCount;
1649
1651
  ulElement = _this.renderItems(listItems, fields);
1650
1652
  _this.appendUncheckList = false;
1653
+ _this.isUpdateGroupTemplate = false;
1651
1654
  _this.onActionComplete(ulElement, listItems, e);
1652
1655
  if (_this.groupTemplate) {
1656
+ if (_this.isAngular && _this.getModuleName() === 'multiselect') {
1657
+ _this.updateGroupHeaderItems(ulElement);
1658
+ }
1653
1659
  _this.renderGroupTemplate(ulElement);
1654
1660
  }
1661
+ _this.isUpdateGroupTemplate = true;
1655
1662
  _this.isRequested = false;
1656
1663
  _this.bindChildItems(listItems, ulElement, fields, e);
1657
1664
  if (_this.getInitialData) {
@@ -1754,10 +1761,15 @@ var DropDownBase = /** @__PURE__ @class */ (function (_super) {
1754
1761
  }
1755
1762
  if (!localDataArgs.cancel) {
1756
1763
  ulElement = _this.renderItems(localDataArgs.result, fields);
1764
+ _this.isUpdateGroupTemplate = false;
1757
1765
  _this.onActionComplete(ulElement, localDataArgs.result, event);
1758
1766
  if (_this.groupTemplate) {
1767
+ if (_this.isAngular && _this.getModuleName() === 'multiselect') {
1768
+ _this.updateGroupHeaderItems(ulElement);
1769
+ }
1759
1770
  _this.renderGroupTemplate(ulElement);
1760
1771
  }
1772
+ _this.isUpdateGroupTemplate = true;
1761
1773
  _this.bindChildItems(localDataArgs.result, ulElement, fields);
1762
1774
  if (_this.getInitialData) {
1763
1775
  _this.getInitialData = false;
@@ -1776,6 +1788,20 @@ var DropDownBase = /** @__PURE__ @class */ (function (_super) {
1776
1788
  });
1777
1789
  }
1778
1790
  };
1791
+ DropDownBase.prototype.updateGroupHeaderItems = function (ulElement) {
1792
+ var headerElements = ulElement.querySelectorAll('.' + dropDownBaseClasses.group);
1793
+ var clonedHeaders = [];
1794
+ for (var i = 0; i < headerElements.length; i++) {
1795
+ clonedHeaders.push(headerElements[i].cloneNode ? headerElements[i].cloneNode(true) :
1796
+ headerElements[i]);
1797
+ }
1798
+ if (!this.isFilterAction) {
1799
+ this.groupHeaderItems = clonedHeaders;
1800
+ }
1801
+ else {
1802
+ this.fiteredGroupHeaderItems = clonedHeaders;
1803
+ }
1804
+ };
1779
1805
  DropDownBase.prototype.handleVirtualKeyboardActions = function (e, pageCount) {
1780
1806
  // Used this method in component side.
1781
1807
  };
@@ -1912,6 +1938,21 @@ var DropDownBase = /** @__PURE__ @class */ (function (_super) {
1912
1938
  if (!isNullOrUndefined(this.list)) {
1913
1939
  if (!this.isVirtualizationEnabled) {
1914
1940
  this.list.innerHTML = '';
1941
+ if (this.isUpdateGroupTemplate && this.isAngular && this.groupTemplate && this.getModuleName() === 'multiselect') {
1942
+ var headerItems = ulElement.querySelectorAll('.' + dropDownBaseClasses.group);
1943
+ if (headerItems.length > 0 && this.groupHeaderItems.length > 0) {
1944
+ var groupHeaderMap = {};
1945
+ for (var i = 0; i < this.groupHeaderItems.length; i++) {
1946
+ groupHeaderMap[this.groupHeaderItems[i].id] = this.groupHeaderItems[i].innerHTML;
1947
+ }
1948
+ for (var i = 0; i < headerItems.length; i++) {
1949
+ if (Object.prototype.hasOwnProperty.call(groupHeaderMap, headerItems[i].id)) {
1950
+ headerItems[i].innerHTML = groupHeaderMap[headerItems[i].id];
1951
+ }
1952
+ }
1953
+ }
1954
+ this.renderGroupTemplate(ulElement);
1955
+ }
1915
1956
  this.list.appendChild(ulElement);
1916
1957
  this.liCollections = this.list.querySelectorAll('.' + dropDownBaseClasses.li);
1917
1958
  this.ulElement = this.list.querySelector('ul');
@@ -2007,7 +2048,9 @@ var DropDownBase = /** @__PURE__ @class */ (function (_super) {
2007
2048
  if (this.fields.groupBy !== null && this.dataSource || this.element.querySelector('.' + dropDownBaseClasses.group)) {
2008
2049
  var dataSource = this.dataSource;
2009
2050
  var option = { groupTemplateID: this.groupTemplateId, isStringTemplate: this.isStringTemplate };
2010
- var headerItems = listEle.querySelectorAll('.' + dropDownBaseClasses.group);
2051
+ var headerItems = this.isAngular && this.getModuleName() === 'multiselect' && !isNullOrUndefined(listEle) &&
2052
+ listEle.classList.contains(dropDownBaseClasses.fixedHead) ? [listEle] :
2053
+ listEle.querySelectorAll('.' + dropDownBaseClasses.group);
2011
2054
  var groupcheck = this.templateCompiler(this.groupTemplate);
2012
2055
  if (typeof this.groupTemplate !== 'function' && groupcheck) {
2013
2056
  var groupValue = select(this.groupTemplate, document).innerHTML.trim();
@@ -2142,10 +2185,38 @@ var DropDownBase = /** @__PURE__ @class */ (function (_super) {
2142
2185
  return false;
2143
2186
  }
2144
2187
  };
2188
+ DropDownBase.prototype.updateFixedGroupTemplateHader = function (element) {
2189
+ var groupData = element.cloneNode ? element.cloneNode(true) : element;
2190
+ var isGroupDataUpdated = false;
2191
+ if (this.groupHeaderItems && this.groupHeaderItems.length > 0) {
2192
+ for (var i = 0; i < this.groupHeaderItems.length; i++) {
2193
+ if (groupData.id === this.groupHeaderItems[i].id) {
2194
+ groupData.innerHTML = this.groupHeaderItems[i].innerHTML;
2195
+ isGroupDataUpdated = true;
2196
+ break;
2197
+ }
2198
+ }
2199
+ }
2200
+ if (!isGroupDataUpdated && this.fiteredGroupHeaderItems && this.fiteredGroupHeaderItems.length > 0) {
2201
+ for (var i = 0; i < this.fiteredGroupHeaderItems.length; i++) {
2202
+ if (groupData.id === this.fiteredGroupHeaderItems[i].id) {
2203
+ groupData.innerHTML = this.fiteredGroupHeaderItems[i].innerHTML;
2204
+ break;
2205
+ }
2206
+ }
2207
+ }
2208
+ this.fixedHeaderElement.innerHTML = groupData.innerHTML;
2209
+ this.renderGroupTemplate(this.fixedHeaderElement);
2210
+ };
2145
2211
  DropDownBase.prototype.updateGroupFixedHeader = function (element, target) {
2146
2212
  if (this.fixedHeaderElement) {
2147
2213
  if (!isNullOrUndefined(element.innerHTML)) {
2148
- this.fixedHeaderElement.innerHTML = element.innerHTML;
2214
+ if (this.groupTemplate && this.isAngular && this.getModuleName() === 'multiselect') {
2215
+ this.updateFixedGroupTemplateHader(element);
2216
+ }
2217
+ else {
2218
+ this.fixedHeaderElement.innerHTML = element.innerHTML;
2219
+ }
2149
2220
  }
2150
2221
  this.fixedHeaderElement.style.position = 'fixed';
2151
2222
  this.fixedHeaderElement.style.top = (this.list.parentElement.offsetTop + this.list.offsetTop) - window.scrollY + 'px';
@@ -2335,7 +2406,12 @@ var DropDownBase = /** @__PURE__ @class */ (function (_super) {
2335
2406
  setStyleAttribute(this.fixedHeaderElement, { zIndex: 10 });
2336
2407
  var firstLi = this.ulElement.querySelector('.' + dropDownBaseClasses.group + ':not(.e-hide-listitem)');
2337
2408
  if (!isNullOrUndefined(firstLi)) {
2338
- this.fixedHeaderElement.innerHTML = firstLi.innerHTML;
2409
+ if (this.groupTemplate && this.isAngular && this.getModuleName() === 'multiselect') {
2410
+ this.updateFixedGroupTemplateHader(firstLi);
2411
+ }
2412
+ else {
2413
+ this.fixedHeaderElement.innerHTML = firstLi.innerHTML;
2414
+ }
2339
2415
  }
2340
2416
  };
2341
2417
  DropDownBase.prototype.getSortedDataSource = function (dataSource) {
@@ -2891,6 +2967,8 @@ var DropDownBase = /** @__PURE__ @class */ (function (_super) {
2891
2967
  this.ulElement = null;
2892
2968
  this.list = null;
2893
2969
  this.enableRtlElements = null;
2970
+ this.groupHeaderItems = null;
2971
+ this.fiteredGroupHeaderItems = null;
2894
2972
  this.rippleFun = null;
2895
2973
  _super.prototype.destroy.call(this);
2896
2974
  };
@@ -5275,7 +5353,14 @@ var DropDownList = /** @__PURE__ @class */ (function (_super) {
5275
5353
  return;
5276
5354
  }
5277
5355
  if (this.getInitialData) {
5278
- this.updateActionCompleteDataValues(ulElement, list);
5356
+ if (this.itemTemplate && this.element.tagName === 'EJS-COMBOBOX' && this.allowFiltering) {
5357
+ setTimeout(function () {
5358
+ _this.updateActionCompleteDataValues(ulElement, list);
5359
+ }, 0);
5360
+ }
5361
+ else {
5362
+ this.updateActionCompleteDataValues(ulElement, list);
5363
+ }
5279
5364
  if (this.enableVirtualization) {
5280
5365
  this.updateSelectElementData(this.allowFiltering);
5281
5366
  }
@@ -8219,7 +8304,7 @@ var DropDownTree = /** @__PURE__ @class */ (function (_super) {
8219
8304
  if (this.isPopupOpen) {
8220
8305
  this.hidePopup();
8221
8306
  }
8222
- else if (!(e instanceof TouchEvent) && e.button !== 2) {
8307
+ else if (e.type === 'touchstart' || ('button' in e && e.button !== 2)) {
8223
8308
  this.focusIn(e);
8224
8309
  this.renderPopup();
8225
8310
  }
@@ -11284,8 +11369,8 @@ var ComboBox = /** @__PURE__ @class */ (function (_super) {
11284
11369
  var dataItem = _this.getItemData();
11285
11370
  var value = _this.allowObjectBinding ?
11286
11371
  _this.getDataByValue(dataItem.value) : dataItem.value;
11287
- if ((_this.value === dataItem.value && _this.text !== dataItem.text) ||
11288
- (_this.value !== dataItem.value && _this.text === dataItem.text)) {
11372
+ if ((_this.value === dataItem.value && _this.text !== dataItem.text.toString()) ||
11373
+ (_this.value !== dataItem.value && _this.text === dataItem.text.toString())) {
11289
11374
  _this.setProperties({ 'text': dataItem.text ? dataItem.text.toString() : dataItem.text, 'value': value });
11290
11375
  }
11291
11376
  }
@@ -13772,7 +13857,7 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
13772
13857
  return filterQuery;
13773
13858
  }
13774
13859
  }
13775
- if (this.filterAction) {
13860
+ if (this.isFilterAction) {
13776
13861
  if ((this.targetElement() !== null && !this.enableVirtualization) || (this.enableVirtualization &&
13777
13862
  this.targetElement() !== null && this.targetElement().trim() !== '')) {
13778
13863
  var dataType = this.typeOfData(this.dataSource).typeof;
@@ -14236,7 +14321,9 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
14236
14321
  this.ulElement = this.mainList;
14237
14322
  }
14238
14323
  this.checkPlaceholderSize();
14239
- Input.createSpanElement(this.overAllWrapper, this.createElement);
14324
+ if (this.element.querySelector('.e-multiselect .e-float-text-content') === null) {
14325
+ Input.createSpanElement(this.overAllWrapper, this.createElement);
14326
+ }
14240
14327
  this.calculateWidth();
14241
14328
  if (!isNullOrUndefined(this.overAllWrapper) && !isNullOrUndefined(this.overAllWrapper.getElementsByClassName('e-ddl-icon')[0] &&
14242
14329
  this.overAllWrapper.getElementsByClassName('e-float-text-content')[0] && this.floatLabelType !== 'Never')) {
@@ -15426,7 +15513,9 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
15426
15513
  }
15427
15514
  else {
15428
15515
  this.setFloatLabelType();
15429
- Input.createSpanElement(this.overAllWrapper, this.createElement);
15516
+ if (this.element.querySelector('.e-multiselect .e-float-text-content') === null) {
15517
+ Input.createSpanElement(this.overAllWrapper, this.createElement);
15518
+ }
15430
15519
  }
15431
15520
  this.expandTextbox();
15432
15521
  };
@@ -16277,7 +16366,9 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
16277
16366
  this.clearAllCallback(e);
16278
16367
  }
16279
16368
  this.checkAndResetCache();
16280
- Input.createSpanElement(this.overAllWrapper, this.createElement);
16369
+ if (this.element.querySelector('.e-multiselect .e-float-text-content') === null) {
16370
+ Input.createSpanElement(this.overAllWrapper, this.createElement);
16371
+ }
16281
16372
  this.calculateWidth();
16282
16373
  if (!isNullOrUndefined(this.overAllWrapper) && !isNullOrUndefined(this.overAllWrapper.getElementsByClassName('e-ddl-icon')[0] && this.overAllWrapper.getElementsByClassName('e-float-text-content')[0] && this.floatLabelType !== 'Never')) {
16283
16374
  this.overAllWrapper.getElementsByClassName('e-float-text-content')[0].classList.add('e-icon');
@@ -16433,7 +16524,7 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
16433
16524
  _this.isFilterPrevented = eventArgs.cancel;
16434
16525
  if (!eventArgs.cancel) {
16435
16526
  if (!_this.isFiltered && !eventArgs.preventDefaultAction) {
16436
- _this.filterAction = true;
16527
+ _this.isFilterAction = true;
16437
16528
  _this.isFilteringAction = true;
16438
16529
  if (_this.dataSource instanceof DataManager && _this.allowCustomValue) {
16439
16530
  _this.isCustomRendered = false;
@@ -16589,7 +16680,7 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
16589
16680
  MultiSelect.prototype.initializeData = function () {
16590
16681
  this.mainListCollection = [];
16591
16682
  this.beforePopupOpen = false;
16592
- this.filterAction = false;
16683
+ this.isFilterAction = false;
16593
16684
  this.remoteFilterAction = false;
16594
16685
  this.isFirstClick = false;
16595
16686
  this.mobFilter = true;
@@ -16923,7 +17014,7 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
16923
17014
  }
16924
17015
  };
16925
17016
  MultiSelect.prototype.updateDataList = function () {
16926
- if (this.mainList && this.ulElement && !(this.isFiltered || this.filterAction || this.targetElement().trim())) {
17017
+ if (this.mainList && this.ulElement && !(this.isFiltered || this.isFilterAction || this.targetElement().trim())) {
16927
17018
  var isDynamicGroupItemUpdate = this.mainList.childElementCount < this.ulElement.childElementCount;
16928
17019
  var isReactTemplateUpdate = ((this.ulElement.childElementCount > 0 &&
16929
17020
  this.ulElement.children[0].childElementCount > 0) &&
@@ -17014,6 +17105,11 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
17014
17105
  removeClass(selectedItems, className);
17015
17106
  while (temp > 0) {
17016
17107
  selectedItems[temp - 1].setAttribute('aria-selected', 'false');
17108
+ if (this.mode === 'CheckBox') {
17109
+ if (selectedItems && (selectedItems.length > (temp - 1))) {
17110
+ removeClass([selectedItems[temp - 1].firstElementChild.lastElementChild], 'e-check');
17111
+ }
17112
+ }
17017
17113
  temp--;
17018
17114
  }
17019
17115
  }
@@ -18162,7 +18258,7 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
18162
18258
  this.isDynamicDataChange = true;
18163
18259
  }
18164
18260
  if (this.getModuleName() === 'multiselect') {
18165
- this.filterAction = false;
18261
+ this.isFilterAction = false;
18166
18262
  this.setUpdateInitial(['fields', 'query', 'dataSource'], newProp);
18167
18263
  }
18168
18264
  for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {
@@ -18268,7 +18364,9 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
18268
18364
  case 'floatLabelType':
18269
18365
  this.setFloatLabelType();
18270
18366
  this.addValidInputClass();
18271
- Input.createSpanElement(this.overAllWrapper, this.createElement);
18367
+ if (this.element.querySelector('.e-multiselect .e-float-text-content') === null) {
18368
+ Input.createSpanElement(this.overAllWrapper, this.createElement);
18369
+ }
18272
18370
  this.calculateWidth();
18273
18371
  if (!isNullOrUndefined(this.overAllWrapper) &&
18274
18372
  !isNullOrUndefined(this.overAllWrapper.getElementsByClassName('e-ddl-icon')[0] &&
@@ -18863,7 +18961,9 @@ var MultiSelect = /** @__PURE__ @class */ (function (_super) {
18863
18961
  if (this.element.hasAttribute('data-val')) {
18864
18962
  this.element.setAttribute('data-val', 'false');
18865
18963
  }
18866
- Input.createSpanElement(this.overAllWrapper, this.createElement);
18964
+ if (this.element.querySelector('.e-multiselect .e-float-text-content') === null) {
18965
+ Input.createSpanElement(this.overAllWrapper, this.createElement);
18966
+ }
18867
18967
  this.calculateWidth();
18868
18968
  if (!isNullOrUndefined(this.overAllWrapper) && !isNullOrUndefined(this.overAllWrapper.getElementsByClassName('e-ddl-icon')[0] &&
18869
18969
  this.overAllWrapper.getElementsByClassName('e-float-text-content')[0] && this.floatLabelType !== 'Never')) {
@@ -20315,9 +20415,6 @@ var ListBox = /** @__PURE__ @class */ (function (_super) {
20315
20415
  this.unSelectAllText = l10nSelect.getConstant('unSelectAllText');
20316
20416
  this.popupWrapper = this.list;
20317
20417
  this.checkBoxSelectionModule.checkAllParent = null;
20318
- if (this.filterParent) {
20319
- this.filterParent = null;
20320
- }
20321
20418
  this.notify('selectAll', {});
20322
20419
  }
20323
20420
  };