@syncfusion/ej2-dropdowns 23.2.7-52849 → 24.1.41-566987
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.
- package/CHANGELOG.md +20 -132
- package/dist/ej2-dropdowns.umd.min.js +1 -1
- package/dist/ej2-dropdowns.umd.min.js.map +1 -1
- package/dist/es6/ej2-dropdowns.es2015.js +654 -116
- package/dist/es6/ej2-dropdowns.es2015.js.map +1 -1
- package/dist/es6/ej2-dropdowns.es5.js +658 -119
- package/dist/es6/ej2-dropdowns.es5.js.map +1 -1
- package/package.json +13 -13
- package/src/auto-complete/auto-complete.js +9 -4
- package/src/combo-box/combo-box.js +74 -2
- package/src/common/incremental-search.d.ts +1 -1
- package/src/common/incremental-search.js +50 -7
- package/src/common/interface.d.ts +2 -0
- package/src/common/virtual-scroll.js +22 -1
- package/src/drop-down-base/drop-down-base.d.ts +23 -3
- package/src/drop-down-base/drop-down-base.js +154 -40
- package/src/drop-down-list/drop-down-list.d.ts +10 -3
- package/src/drop-down-list/drop-down-list.js +305 -41
- package/src/drop-down-tree/drop-down-tree.js +24 -20
- package/src/list-box/list-box.js +8 -1
- package/src/mention/mention.js +5 -1
- package/src/multi-select/checkbox-selection.js +4 -1
- package/src/multi-select/multi-select.js +4 -2
- package/styles/auto-complete/_bds-definition.scss +2 -0
- package/styles/bootstrap-dark.css +16 -9
- package/styles/bootstrap.css +16 -9
- package/styles/bootstrap4.css +11 -9
- package/styles/bootstrap5-dark.css +11 -9
- package/styles/bootstrap5.css +11 -9
- package/styles/combo-box/_bds-definition.scss +2 -0
- package/styles/drop-down-base/_bds-definition.scss +134 -0
- package/styles/drop-down-base/_layout.scss +0 -8
- package/styles/drop-down-base/bootstrap-dark.css +0 -8
- package/styles/drop-down-base/bootstrap.css +0 -8
- package/styles/drop-down-base/bootstrap4.css +0 -8
- package/styles/drop-down-base/bootstrap5-dark.css +0 -8
- package/styles/drop-down-base/bootstrap5.css +0 -8
- package/styles/drop-down-base/fabric-dark.css +0 -8
- package/styles/drop-down-base/fabric.css +0 -8
- package/styles/drop-down-base/fluent-dark.css +0 -8
- package/styles/drop-down-base/fluent.css +0 -8
- package/styles/drop-down-base/highcontrast-light.css +0 -8
- package/styles/drop-down-base/highcontrast.css +0 -8
- package/styles/drop-down-base/material-dark.css +0 -8
- package/styles/drop-down-base/material.css +0 -8
- package/styles/drop-down-base/material3-dark.css +0 -8
- package/styles/drop-down-base/material3.css +0 -8
- package/styles/drop-down-base/tailwind-dark.css +0 -8
- package/styles/drop-down-base/tailwind.css +0 -8
- package/styles/drop-down-list/_bds-definition.scss +134 -0
- package/styles/drop-down-list/_layout.scss +5 -0
- package/styles/drop-down-list/bootstrap-dark.css +5 -0
- package/styles/drop-down-list/bootstrap.css +5 -0
- package/styles/drop-down-list/bootstrap4.css +5 -0
- package/styles/drop-down-list/bootstrap5-dark.css +5 -0
- package/styles/drop-down-list/bootstrap5.css +5 -0
- package/styles/drop-down-list/fabric-dark.css +5 -0
- package/styles/drop-down-list/fabric.css +5 -0
- package/styles/drop-down-list/fluent-dark.css +5 -0
- package/styles/drop-down-list/fluent.css +5 -0
- package/styles/drop-down-list/highcontrast-light.css +5 -0
- package/styles/drop-down-list/highcontrast.css +5 -0
- package/styles/drop-down-list/icons/_bds.scss +14 -0
- package/styles/drop-down-list/material-dark.css +5 -0
- package/styles/drop-down-list/material.css +5 -0
- package/styles/drop-down-list/material3-dark.css +5 -0
- package/styles/drop-down-list/material3.css +5 -0
- package/styles/drop-down-list/tailwind-dark.css +5 -0
- package/styles/drop-down-list/tailwind.css +5 -0
- package/styles/drop-down-tree/_bds-definition.scss +61 -0
- package/styles/drop-down-tree/_layout.scss +5 -0
- package/styles/drop-down-tree/bootstrap-dark.css +4 -0
- package/styles/drop-down-tree/bootstrap.css +4 -0
- package/styles/drop-down-tree/bootstrap4.css +4 -0
- package/styles/drop-down-tree/bootstrap5-dark.css +4 -0
- package/styles/drop-down-tree/bootstrap5.css +4 -0
- package/styles/drop-down-tree/fabric-dark.css +4 -0
- package/styles/drop-down-tree/fabric.css +4 -0
- package/styles/drop-down-tree/fluent-dark.css +4 -0
- package/styles/drop-down-tree/fluent.css +4 -0
- package/styles/drop-down-tree/highcontrast-light.css +4 -0
- package/styles/drop-down-tree/highcontrast.css +4 -0
- package/styles/drop-down-tree/icons/_bds.scss +11 -0
- package/styles/drop-down-tree/material-dark.css +4 -0
- package/styles/drop-down-tree/material.css +4 -0
- package/styles/drop-down-tree/material3-dark.css +4 -0
- package/styles/drop-down-tree/material3.css +4 -0
- package/styles/drop-down-tree/tailwind-dark.css +4 -0
- package/styles/drop-down-tree/tailwind.css +4 -0
- package/styles/fabric-dark.css +12 -9
- package/styles/fabric.css +12 -9
- package/styles/fluent-dark.css +16 -9
- package/styles/fluent.css +16 -9
- package/styles/highcontrast-light.css +12 -9
- package/styles/highcontrast.css +12 -9
- package/styles/list-box/_bds-definition.scss +136 -0
- package/styles/list-box/icons/_bds.scss +25 -0
- package/styles/material-dark.css +11 -9
- package/styles/material.css +11 -9
- package/styles/material3-dark.css +11 -9
- package/styles/material3.css +11 -9
- package/styles/mention/_bds-definition.scss +1 -0
- package/styles/multi-select/_bds-definition.scss +235 -0
- package/styles/multi-select/_bootstrap-dark-definition.scss +4 -0
- package/styles/multi-select/_bootstrap-definition.scss +4 -0
- package/styles/multi-select/_fluent-definition.scss +5 -0
- package/styles/multi-select/_layout.scss +8 -1
- package/styles/multi-select/bootstrap-dark.css +7 -1
- package/styles/multi-select/bootstrap.css +7 -1
- package/styles/multi-select/bootstrap4.css +2 -1
- package/styles/multi-select/bootstrap5-dark.css +2 -1
- package/styles/multi-select/bootstrap5.css +2 -1
- package/styles/multi-select/fabric-dark.css +3 -1
- package/styles/multi-select/fabric.css +3 -1
- package/styles/multi-select/fluent-dark.css +7 -1
- package/styles/multi-select/fluent.css +7 -1
- package/styles/multi-select/highcontrast-light.css +3 -1
- package/styles/multi-select/highcontrast.css +3 -1
- package/styles/multi-select/icons/_bds.scss +26 -0
- package/styles/multi-select/material-dark.css +2 -1
- package/styles/multi-select/material.css +2 -1
- package/styles/multi-select/material3-dark.css +2 -1
- package/styles/multi-select/material3.css +2 -1
- package/styles/multi-select/tailwind-dark.css +2 -1
- package/styles/multi-select/tailwind.css +2 -1
- package/styles/tailwind-dark.css +11 -9
- package/styles/tailwind.css +11 -9
|
@@ -96,6 +96,9 @@ var DropDownBase = /** @class */ (function (_super) {
|
|
|
96
96
|
_this.virtualizedItemsCount = 0;
|
|
97
97
|
_this.totalItemCount = 0;
|
|
98
98
|
_this.dataCount = 0;
|
|
99
|
+
_this.isRemoteDataUpdated = false;
|
|
100
|
+
_this.isIncrementalRequest = false;
|
|
101
|
+
_this.itemCount = 10;
|
|
99
102
|
return _this;
|
|
100
103
|
}
|
|
101
104
|
DropDownBase.prototype.getPropObject = function (prop, newProp, oldProp) {
|
|
@@ -492,7 +495,7 @@ var DropDownBase = /** @class */ (function (_super) {
|
|
|
492
495
|
if (!eventArgs.cancel) {
|
|
493
496
|
_this.isRequesting = true;
|
|
494
497
|
_this.showSpinner();
|
|
495
|
-
if (dataSource instanceof DataManager) {
|
|
498
|
+
if (dataSource instanceof DataManager && !_this.virtualGroupDataSource) {
|
|
496
499
|
_this.isRequested = true;
|
|
497
500
|
if (_this.isDataFetched) {
|
|
498
501
|
_this.emptyDataRequest(fields);
|
|
@@ -501,12 +504,42 @@ var DropDownBase = /** @class */ (function (_super) {
|
|
|
501
504
|
eventArgs.data.executeQuery(_this.getQuery(eventArgs.query)).then(function (e) {
|
|
502
505
|
_this.isPreventChange = _this.isAngular && _this.preventChange ? true : _this.isPreventChange;
|
|
503
506
|
_this.trigger('actionComplete', e, function (e) {
|
|
507
|
+
if (!_this.virtualGroupDataSource && _this.isVirtualizationEnabled) {
|
|
508
|
+
_this.isRemoteDataUpdated = true;
|
|
509
|
+
if ((_this.getModuleName() === 'combobox' && _this.isAllowFiltering && _this.isVirtualizationEnabled && e.result)) {
|
|
510
|
+
e.result = e.result.result;
|
|
511
|
+
}
|
|
512
|
+
if (e.result.length > 0) {
|
|
513
|
+
var dataSource_2 = e.result;
|
|
514
|
+
if (_this.isVirtualizationEnabled && _this.fields.groupBy) {
|
|
515
|
+
var data = new DataManager(dataSource_2).executeLocal(new Query().group(_this.fields.groupBy));
|
|
516
|
+
_this.virtualGroupDataSource = data.records;
|
|
517
|
+
}
|
|
518
|
+
else {
|
|
519
|
+
_this.virtualGroupDataSource = dataSource_2;
|
|
520
|
+
_this.hideSpinner();
|
|
521
|
+
_this.isRequested = false;
|
|
522
|
+
_this.isRequesting = false;
|
|
523
|
+
_this.setListData(dataSource_2, fields, query, event);
|
|
524
|
+
return;
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
_this.hideSpinner();
|
|
528
|
+
_this.isRequested = false;
|
|
529
|
+
_this.isRequesting = false;
|
|
530
|
+
_this.updatePopupState();
|
|
531
|
+
return;
|
|
532
|
+
}
|
|
504
533
|
if (!e.cancel) {
|
|
534
|
+
_this.isRequesting = false;
|
|
505
535
|
var listItems = e.result;
|
|
536
|
+
if (_this.isIncrementalRequest) {
|
|
537
|
+
ulElement = _this.renderItems(listItems, fields);
|
|
538
|
+
return;
|
|
539
|
+
}
|
|
506
540
|
if (listItems.length === 0) {
|
|
507
541
|
_this.isDataFetched = true;
|
|
508
542
|
}
|
|
509
|
-
_this.isRequesting = false;
|
|
510
543
|
_this.dataCount = e.count;
|
|
511
544
|
_this.totalItemCount = e.count;
|
|
512
545
|
ulElement = _this.renderItems(listItems, fields);
|
|
@@ -527,8 +560,25 @@ var DropDownBase = /** @class */ (function (_super) {
|
|
|
527
560
|
}
|
|
528
561
|
else {
|
|
529
562
|
_this.isRequesting = false;
|
|
530
|
-
var
|
|
531
|
-
|
|
563
|
+
var listItems = void 0;
|
|
564
|
+
if (_this.isVirtualizationEnabled && !_this.virtualGroupDataSource && _this.fields.groupBy) {
|
|
565
|
+
var data = new DataManager(_this.dataSource).executeLocal(new Query().group(_this.fields.groupBy));
|
|
566
|
+
_this.virtualGroupDataSource = data.records;
|
|
567
|
+
}
|
|
568
|
+
var dataManager = _this.isVirtualizationEnabled && _this.virtualGroupDataSource ? new DataManager(_this.virtualGroupDataSource) : new DataManager(eventArgs.data);
|
|
569
|
+
listItems = (_this.getQuery(eventArgs.query)).executeLocal(dataManager);
|
|
570
|
+
if (_this.isVirtualizationEnabled && _this.getModuleName() === 'autocomplete' && (listItems.count != 0 && listItems.count < (_this.itemCount * 2))) {
|
|
571
|
+
var newQuery = _this.getQuery(eventArgs.query);
|
|
572
|
+
if (newQuery) {
|
|
573
|
+
for (var queryElements = 0; queryElements < newQuery.queries.length; queryElements++) {
|
|
574
|
+
if (newQuery.queries[queryElements].fn === 'onTake') {
|
|
575
|
+
newQuery.queries[queryElements].e.nos = listItems.count;
|
|
576
|
+
listItems = (newQuery).executeLocal(dataManager);
|
|
577
|
+
break;
|
|
578
|
+
}
|
|
579
|
+
}
|
|
580
|
+
}
|
|
581
|
+
}
|
|
532
582
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
533
583
|
_this.dataCount = listItems.count;
|
|
534
584
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -538,6 +588,10 @@ var DropDownBase = /** @class */ (function (_super) {
|
|
|
538
588
|
var localDataArgs = { cancel: false, result: listItems };
|
|
539
589
|
_this.isPreventChange = _this.isAngular && _this.preventChange ? true : _this.isPreventChange;
|
|
540
590
|
_this.trigger('actionComplete', localDataArgs, function (localDataArgs) {
|
|
591
|
+
if (_this.isIncrementalRequest) {
|
|
592
|
+
ulElement = _this.renderItems(localDataArgs.result, fields);
|
|
593
|
+
return;
|
|
594
|
+
}
|
|
541
595
|
if (!localDataArgs.cancel) {
|
|
542
596
|
ulElement = _this.renderItems(localDataArgs.result, fields);
|
|
543
597
|
_this.onActionComplete(ulElement, localDataArgs.result, event);
|
|
@@ -557,6 +611,12 @@ var DropDownBase = /** @class */ (function (_super) {
|
|
|
557
611
|
});
|
|
558
612
|
}
|
|
559
613
|
};
|
|
614
|
+
DropDownBase.prototype.updatePopupState = function () {
|
|
615
|
+
// Used this method in component side.
|
|
616
|
+
};
|
|
617
|
+
DropDownBase.prototype.updateRemoteData = function () {
|
|
618
|
+
this.setListData(this.dataSource, this.fields, this.query);
|
|
619
|
+
};
|
|
560
620
|
DropDownBase.prototype.bindChildItems = function (listItems, ulElement, fields, e) {
|
|
561
621
|
var _this = this;
|
|
562
622
|
if (listItems.length >= 100 && this.getModuleName() === 'autocomplete') {
|
|
@@ -612,6 +672,7 @@ var DropDownBase = /** @class */ (function (_super) {
|
|
|
612
672
|
var listItems = [];
|
|
613
673
|
this.onActionComplete(this.renderItems(listItems, fields), listItems);
|
|
614
674
|
this.isRequested = false;
|
|
675
|
+
this.isRequesting = false;
|
|
615
676
|
this.hideSpinner();
|
|
616
677
|
};
|
|
617
678
|
DropDownBase.prototype.showSpinner = function () {
|
|
@@ -644,7 +705,9 @@ var DropDownBase = /** @class */ (function (_super) {
|
|
|
644
705
|
if (this.isReact) {
|
|
645
706
|
this.clearTemplate(['itemTemplate', 'groupTemplate', 'actionFailureTemplate', 'noRecordsTemplate']);
|
|
646
707
|
}
|
|
647
|
-
|
|
708
|
+
if (!this.isVirtualizationEnabled) {
|
|
709
|
+
this.fixedHeaderElement = isNullOrUndefined(this.fixedHeaderElement) ? this.fixedHeaderElement : null;
|
|
710
|
+
}
|
|
648
711
|
if (this.getModuleName() === 'multiselect' && this.properties.allowCustomValue && this.fields.groupBy) {
|
|
649
712
|
for (var i = 0; i < ulElement.childElementCount; i++) {
|
|
650
713
|
if (ulElement.children[i].classList.contains('e-list-group-item')) {
|
|
@@ -785,25 +848,67 @@ var DropDownBase = /** @class */ (function (_super) {
|
|
|
785
848
|
this.scrollStop(e);
|
|
786
849
|
}
|
|
787
850
|
};
|
|
788
|
-
DropDownBase.prototype.scrollStop = function (e) {
|
|
851
|
+
DropDownBase.prototype.scrollStop = function (e, isDownkey) {
|
|
789
852
|
var target = !isNullOrUndefined(e) ? e.target : this.list;
|
|
790
853
|
var liHeight = parseInt(getComputedStyle(this.getValidLi(), null).getPropertyValue('height'), 10);
|
|
791
854
|
var topIndex = Math.round(target.scrollTop / liHeight);
|
|
792
855
|
var liCollections = this.list.querySelectorAll('li' + ':not(.e-hide-listitem)');
|
|
856
|
+
var virtualListCount = this.list.querySelectorAll('.e-virtual-list').length;
|
|
857
|
+
var count = 0;
|
|
858
|
+
var isCount = false;
|
|
793
859
|
for (var i = topIndex; i > -1; i--) {
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
860
|
+
var index = this.isVirtualizationEnabled ? i + virtualListCount : i;
|
|
861
|
+
if (this.isVirtualizationEnabled) {
|
|
862
|
+
var groupListLength = this.list.querySelectorAll('.e-list-group-item').length;
|
|
863
|
+
var loadedGroupList = 0;
|
|
864
|
+
if (isCount) {
|
|
865
|
+
count++;
|
|
866
|
+
}
|
|
867
|
+
if (this.updateGroupHeader(index, liCollections, target)) {
|
|
868
|
+
loadedGroupList++;
|
|
869
|
+
if (count >= this.getPageCount()) {
|
|
870
|
+
break;
|
|
871
|
+
}
|
|
872
|
+
if (groupListLength <= loadedGroupList) {
|
|
873
|
+
break;
|
|
874
|
+
}
|
|
875
|
+
}
|
|
876
|
+
if (isDownkey) {
|
|
877
|
+
if ((!isNullOrUndefined(liCollections[index]) && liCollections[index].classList.contains(dropDownBaseClasses.selected) && this.getModuleName() !== 'autocomplete') || (!isNullOrUndefined(liCollections[index]) && liCollections[index].classList.contains(dropDownBaseClasses.focus) && this.getModuleName() === 'autocomplete')) {
|
|
878
|
+
count++;
|
|
879
|
+
isCount = true;
|
|
880
|
+
}
|
|
881
|
+
}
|
|
800
882
|
}
|
|
801
883
|
else {
|
|
802
|
-
this.
|
|
803
|
-
|
|
884
|
+
if (this.updateGroupHeader(index, liCollections, target)) {
|
|
885
|
+
break;
|
|
886
|
+
}
|
|
804
887
|
}
|
|
805
888
|
}
|
|
806
889
|
};
|
|
890
|
+
DropDownBase.prototype.getPageCount = function (returnExactCount) {
|
|
891
|
+
var liHeight = this.list.classList.contains(dropDownBaseClasses.noData) ? null :
|
|
892
|
+
getComputedStyle(this.getItems()[0], null).getPropertyValue('height');
|
|
893
|
+
var pageCount = Math.round(this.list.getBoundingClientRect().height / parseInt(liHeight, 10));
|
|
894
|
+
return returnExactCount ? pageCount : Math.round(pageCount);
|
|
895
|
+
};
|
|
896
|
+
DropDownBase.prototype.updateGroupHeader = function (index, liCollections, target) {
|
|
897
|
+
if (!isNullOrUndefined(liCollections[index]) && liCollections[index].classList.contains(dropDownBaseClasses.group)) {
|
|
898
|
+
this.updateGroupFixedHeader(liCollections[index], target);
|
|
899
|
+
return true;
|
|
900
|
+
}
|
|
901
|
+
else {
|
|
902
|
+
this.fixedHeaderElement.style.display = 'none';
|
|
903
|
+
this.fixedHeaderElement.style.top = 'none';
|
|
904
|
+
return false;
|
|
905
|
+
}
|
|
906
|
+
};
|
|
907
|
+
DropDownBase.prototype.updateGroupFixedHeader = function (element, target) {
|
|
908
|
+
this.fixedHeaderElement.innerHTML = element.innerHTML;
|
|
909
|
+
this.fixedHeaderElement.style.top = target.scrollTop + 'px';
|
|
910
|
+
this.fixedHeaderElement.style.display = 'block';
|
|
911
|
+
};
|
|
807
912
|
DropDownBase.prototype.getValidLi = function () {
|
|
808
913
|
return this.liCollections[0];
|
|
809
914
|
};
|
|
@@ -837,45 +942,54 @@ var DropDownBase = /** @class */ (function (_super) {
|
|
|
837
942
|
var virtualUlElement = this.list.querySelector('.e-virtual-ddl-content');
|
|
838
943
|
if ((listData.length >= this.virtualizedItemsCount && oldUlElement && virtualUlElement) || (oldUlElement && virtualUlElement && this.isAllowFiltering) || (oldUlElement && virtualUlElement && this.getModuleName() === 'autocomplete')) {
|
|
839
944
|
virtualUlElement.replaceChild(ulElement, oldUlElement);
|
|
840
|
-
this.
|
|
841
|
-
this.ulElement = this.list.querySelector('ul');
|
|
842
|
-
this.listData = listData;
|
|
843
|
-
this.postRender(this.list, listData, this.bindEvent);
|
|
945
|
+
this.updateListElements(listData);
|
|
844
946
|
}
|
|
845
947
|
else if ((!virtualUlElement)) {
|
|
846
948
|
this.list.innerHTML = '';
|
|
847
|
-
this.
|
|
848
|
-
this.
|
|
849
|
-
this.
|
|
850
|
-
this.listData = listData;
|
|
851
|
-
this.postRender(this.list, listData, this.bindEvent);
|
|
949
|
+
this.createVirtualContent();
|
|
950
|
+
this.list.querySelector('.e-virtual-ddl-content').appendChild(ulElement);
|
|
951
|
+
this.updateListElements(listData);
|
|
852
952
|
}
|
|
853
953
|
}
|
|
854
954
|
}
|
|
855
955
|
else {
|
|
856
956
|
ulElement = this.createListItems(listData, fields);
|
|
957
|
+
if (this.isIncrementalRequest) {
|
|
958
|
+
this.incrementalLiCollections = ulElement.querySelectorAll('.' + dropDownBaseClasses.li);
|
|
959
|
+
this.incrementalUlElement = ulElement;
|
|
960
|
+
this.incrementalListData = listData;
|
|
961
|
+
return ulElement;
|
|
962
|
+
}
|
|
857
963
|
if (this.isVirtualizationEnabled) {
|
|
858
964
|
var oldUlElement = this.list.querySelector('.e-list-parent');
|
|
859
965
|
var virtualUlElement = this.list.querySelector('.e-virtual-ddl-content');
|
|
860
966
|
if ((listData.length >= this.virtualizedItemsCount && oldUlElement && virtualUlElement) || (oldUlElement && virtualUlElement && this.isAllowFiltering) || (oldUlElement && virtualUlElement && this.getModuleName() === 'autocomplete')) {
|
|
861
967
|
virtualUlElement.replaceChild(ulElement, oldUlElement);
|
|
862
|
-
this.
|
|
863
|
-
this.ulElement = this.list.querySelector('ul');
|
|
864
|
-
this.listData = listData;
|
|
865
|
-
this.postRender(this.list, listData, this.bindEvent);
|
|
968
|
+
this.updateListElements(listData);
|
|
866
969
|
}
|
|
867
970
|
else if ((!virtualUlElement)) {
|
|
868
971
|
this.list.innerHTML = '';
|
|
869
|
-
this.
|
|
870
|
-
this.
|
|
871
|
-
this.
|
|
872
|
-
this.listData = listData;
|
|
873
|
-
this.postRender(this.list, listData, this.bindEvent);
|
|
972
|
+
this.createVirtualContent();
|
|
973
|
+
this.list.querySelector('.e-virtual-ddl-content').appendChild(ulElement);
|
|
974
|
+
this.updateListElements(listData);
|
|
874
975
|
}
|
|
875
976
|
}
|
|
876
977
|
}
|
|
877
978
|
return ulElement;
|
|
878
979
|
};
|
|
980
|
+
DropDownBase.prototype.createVirtualContent = function () {
|
|
981
|
+
if (!this.list.querySelector('.e-virtual-ddl-content')) {
|
|
982
|
+
this.list.appendChild(this.createElement('div', {
|
|
983
|
+
className: 'e-virtual-ddl-content',
|
|
984
|
+
}));
|
|
985
|
+
}
|
|
986
|
+
};
|
|
987
|
+
DropDownBase.prototype.updateListElements = function (listData) {
|
|
988
|
+
this.liCollections = this.list.querySelectorAll('.' + dropDownBaseClasses.li);
|
|
989
|
+
this.ulElement = this.list.querySelector('ul');
|
|
990
|
+
this.listData = listData;
|
|
991
|
+
this.postRender(this.list, listData, this.bindEvent);
|
|
992
|
+
};
|
|
879
993
|
DropDownBase.prototype.templateListItem = function (dataSource, fields) {
|
|
880
994
|
var option = this.listOption(dataSource, fields);
|
|
881
995
|
option.templateID = this.itemTemplateId;
|
|
@@ -947,11 +1061,11 @@ var DropDownBase = /** @class */ (function (_super) {
|
|
|
947
1061
|
* @param {string | number | boolean} value - Specifies given value.
|
|
948
1062
|
* @returns {number} Returns the index of the item.
|
|
949
1063
|
*/
|
|
950
|
-
DropDownBase.prototype.
|
|
1064
|
+
DropDownBase.prototype.getIndexByValue = function (value) {
|
|
951
1065
|
var index;
|
|
952
|
-
var listItems = this.
|
|
953
|
-
for (var i = 0; i < listItems.
|
|
954
|
-
if (!isNullOrUndefined(value) && listItems
|
|
1066
|
+
var listItems = this.getItems();
|
|
1067
|
+
for (var i = 0; i < listItems.length; i++) {
|
|
1068
|
+
if (!isNullOrUndefined(value) && listItems[i].getAttribute('data-value') === value.toString()) {
|
|
955
1069
|
index = i;
|
|
956
1070
|
break;
|
|
957
1071
|
}
|
|
@@ -964,11 +1078,11 @@ var DropDownBase = /** @class */ (function (_super) {
|
|
|
964
1078
|
* @param {string | number | boolean} value - Specifies given value.
|
|
965
1079
|
* @returns {number} Returns the index of the item.
|
|
966
1080
|
*/
|
|
967
|
-
DropDownBase.prototype.
|
|
1081
|
+
DropDownBase.prototype.getIndexByValueFilter = function (value) {
|
|
968
1082
|
var index;
|
|
969
|
-
var listItems = this.
|
|
970
|
-
for (var i = 0; i < listItems.length; i++) {
|
|
971
|
-
if (!isNullOrUndefined(value) && listItems[i].getAttribute('data-value') === value.toString()) {
|
|
1083
|
+
var listItems = this.renderItems(this.selectData, this.fields);
|
|
1084
|
+
for (var i = 0; i < listItems.children.length; i++) {
|
|
1085
|
+
if (!isNullOrUndefined(value) && listItems.children[i].getAttribute('data-value') === value.toString()) {
|
|
972
1086
|
index = i;
|
|
973
1087
|
break;
|
|
974
1088
|
}
|
|
@@ -61,7 +61,7 @@ export declare class DropDownList extends DropDownBase implements IInput {
|
|
|
61
61
|
} | string | number | boolean;
|
|
62
62
|
private listHeight;
|
|
63
63
|
private listItemHeight;
|
|
64
|
-
|
|
64
|
+
protected skeletonCount: number;
|
|
65
65
|
protected hiddenElement: HTMLSelectElement;
|
|
66
66
|
protected isPopupOpen: boolean;
|
|
67
67
|
private isDocumentClick;
|
|
@@ -113,7 +113,6 @@ export declare class DropDownList extends DropDownBase implements IInput {
|
|
|
113
113
|
protected preventChange: boolean;
|
|
114
114
|
protected isAngular: boolean;
|
|
115
115
|
protected selectedElementID: string;
|
|
116
|
-
protected itemCount: number;
|
|
117
116
|
private virtualListHeight;
|
|
118
117
|
private virtualItemCount;
|
|
119
118
|
private isVirtualScrolling;
|
|
@@ -136,6 +135,10 @@ export declare class DropDownList extends DropDownBase implements IInput {
|
|
|
136
135
|
private virtualItemEndIndex;
|
|
137
136
|
private generatedDataObject;
|
|
138
137
|
private preselectedIndex;
|
|
138
|
+
protected incrementalQueryString: string;
|
|
139
|
+
protected incrementalEndIndex: number;
|
|
140
|
+
protected incrementalStartIndex: number;
|
|
141
|
+
protected incrementalPreQueryString: string;
|
|
139
142
|
private isTouched;
|
|
140
143
|
protected virtualListInfo: VirtualInfo;
|
|
141
144
|
protected viewPortInfo: VirtualInfo;
|
|
@@ -440,6 +443,9 @@ export declare class DropDownList extends DropDownBase implements IInput {
|
|
|
440
443
|
private onMouseLeave;
|
|
441
444
|
protected removeHover(): void;
|
|
442
445
|
protected isValidLI(li: Element | HTMLElement): boolean;
|
|
446
|
+
protected updateIncrementalInfo(startIndex: number, endIndex: number): void;
|
|
447
|
+
protected updateIncrementalView(startIndex: number, endIndex: number): void;
|
|
448
|
+
protected updateIncrementalItemIndex(startIndex: number, endIndex: number): void;
|
|
443
449
|
protected incrementalSearch(e: KeyboardEventArgs): void;
|
|
444
450
|
/**
|
|
445
451
|
* Hides the spinner loader.
|
|
@@ -455,13 +461,13 @@ export declare class DropDownList extends DropDownBase implements IInput {
|
|
|
455
461
|
showSpinner(): void;
|
|
456
462
|
protected keyActionHandler(e: KeyboardEventArgs): void;
|
|
457
463
|
private updateUpDownAction;
|
|
464
|
+
private updateVirtualItemIndex;
|
|
458
465
|
private updateHomeEndAction;
|
|
459
466
|
protected selectCurrentValueOnTab(e: KeyboardEventArgs): void;
|
|
460
467
|
protected mobileKeyActionHandler(e: KeyboardEventArgs): void;
|
|
461
468
|
private handleVirtualKeyboardActions;
|
|
462
469
|
protected selectCurrentItem(e: KeyboardEventArgs): void;
|
|
463
470
|
protected isSelectFocusItem(element: Element): boolean;
|
|
464
|
-
private getPageCount;
|
|
465
471
|
private pageUpSelection;
|
|
466
472
|
private PageUpDownSelection;
|
|
467
473
|
private pageDownSelection;
|
|
@@ -611,6 +617,7 @@ export declare class DropDownList extends DropDownBase implements IInput {
|
|
|
611
617
|
onPropertyChanged(newProp: DropDownListModel, oldProp: DropDownListModel): void;
|
|
612
618
|
private checkValidLi;
|
|
613
619
|
private setSelectionData;
|
|
620
|
+
protected updatePopupState(): void;
|
|
614
621
|
protected setReadOnly(): void;
|
|
615
622
|
protected setInputValue(newProp?: any, oldProp?: any): void;
|
|
616
623
|
private setCssClass;
|