@syncfusion/ej2-dropdowns 30.1.40 → 30.1.41
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/dist/ej2-dropdowns.min.js +2 -2
- package/dist/ej2-dropdowns.umd.min.js +2 -2
- package/dist/ej2-dropdowns.umd.min.js.map +1 -1
- package/dist/es6/ej2-dropdowns.es2015.js +107 -17
- package/dist/es6/ej2-dropdowns.es2015.js.map +1 -1
- package/dist/es6/ej2-dropdowns.es5.js +107 -17
- package/dist/es6/ej2-dropdowns.es5.js.map +1 -1
- package/dist/global/ej2-dropdowns.min.js +2 -2
- package/dist/global/ej2-dropdowns.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/package.json +3 -3
- package/src/drop-down-base/drop-down-base.d.ts +6 -0
- package/src/drop-down-base/drop-down-base.js +79 -3
- package/src/drop-down-list/drop-down-list.js +8 -1
- package/src/list-box/list-box.js +0 -3
- package/src/multi-select/multi-select.d.ts +0 -1
- package/src/multi-select/multi-select.js +20 -10
|
@@ -1564,10 +1564,15 @@ let DropDownBase = class DropDownBase extends Component {
|
|
|
1564
1564
|
this.totalItemCount = !this.virtualSelectAll ? e.count : this.totalItemCount;
|
|
1565
1565
|
ulElement = this.renderItems(listItems, fields);
|
|
1566
1566
|
this.appendUncheckList = false;
|
|
1567
|
+
this.isUpdateGroupTemplate = false;
|
|
1567
1568
|
this.onActionComplete(ulElement, listItems, e);
|
|
1568
1569
|
if (this.groupTemplate) {
|
|
1570
|
+
if (this.isAngular && this.getModuleName() === 'multiselect') {
|
|
1571
|
+
this.updateGroupHeaderItems(ulElement);
|
|
1572
|
+
}
|
|
1569
1573
|
this.renderGroupTemplate(ulElement);
|
|
1570
1574
|
}
|
|
1575
|
+
this.isUpdateGroupTemplate = true;
|
|
1571
1576
|
this.isRequested = false;
|
|
1572
1577
|
this.bindChildItems(listItems, ulElement, fields, e);
|
|
1573
1578
|
if (this.getInitialData) {
|
|
@@ -1670,10 +1675,15 @@ let DropDownBase = class DropDownBase extends Component {
|
|
|
1670
1675
|
}
|
|
1671
1676
|
if (!localDataArgs.cancel) {
|
|
1672
1677
|
ulElement = this.renderItems(localDataArgs.result, fields);
|
|
1678
|
+
this.isUpdateGroupTemplate = false;
|
|
1673
1679
|
this.onActionComplete(ulElement, localDataArgs.result, event);
|
|
1674
1680
|
if (this.groupTemplate) {
|
|
1681
|
+
if (this.isAngular && this.getModuleName() === 'multiselect') {
|
|
1682
|
+
this.updateGroupHeaderItems(ulElement);
|
|
1683
|
+
}
|
|
1675
1684
|
this.renderGroupTemplate(ulElement);
|
|
1676
1685
|
}
|
|
1686
|
+
this.isUpdateGroupTemplate = true;
|
|
1677
1687
|
this.bindChildItems(localDataArgs.result, ulElement, fields);
|
|
1678
1688
|
if (this.getInitialData) {
|
|
1679
1689
|
this.getInitialData = false;
|
|
@@ -1692,6 +1702,20 @@ let DropDownBase = class DropDownBase extends Component {
|
|
|
1692
1702
|
});
|
|
1693
1703
|
}
|
|
1694
1704
|
}
|
|
1705
|
+
updateGroupHeaderItems(ulElement) {
|
|
1706
|
+
const headerElements = ulElement.querySelectorAll('.' + dropDownBaseClasses.group);
|
|
1707
|
+
const clonedHeaders = [];
|
|
1708
|
+
for (let i = 0; i < headerElements.length; i++) {
|
|
1709
|
+
clonedHeaders.push(headerElements[i].cloneNode ? headerElements[i].cloneNode(true) :
|
|
1710
|
+
headerElements[i]);
|
|
1711
|
+
}
|
|
1712
|
+
if (!this.isFilterAction) {
|
|
1713
|
+
this.groupHeaderItems = clonedHeaders;
|
|
1714
|
+
}
|
|
1715
|
+
else {
|
|
1716
|
+
this.fiteredGroupHeaderItems = clonedHeaders;
|
|
1717
|
+
}
|
|
1718
|
+
}
|
|
1695
1719
|
handleVirtualKeyboardActions(e, pageCount) {
|
|
1696
1720
|
// Used this method in component side.
|
|
1697
1721
|
}
|
|
@@ -1826,6 +1850,21 @@ let DropDownBase = class DropDownBase extends Component {
|
|
|
1826
1850
|
if (!isNullOrUndefined(this.list)) {
|
|
1827
1851
|
if (!this.isVirtualizationEnabled) {
|
|
1828
1852
|
this.list.innerHTML = '';
|
|
1853
|
+
if (this.isUpdateGroupTemplate && this.isAngular && this.groupTemplate && this.getModuleName() === 'multiselect') {
|
|
1854
|
+
const headerItems = ulElement.querySelectorAll('.' + dropDownBaseClasses.group);
|
|
1855
|
+
if (headerItems.length > 0 && this.groupHeaderItems.length > 0) {
|
|
1856
|
+
const groupHeaderMap = {};
|
|
1857
|
+
for (let i = 0; i < this.groupHeaderItems.length; i++) {
|
|
1858
|
+
groupHeaderMap[this.groupHeaderItems[i].id] = this.groupHeaderItems[i].innerHTML;
|
|
1859
|
+
}
|
|
1860
|
+
for (let i = 0; i < headerItems.length; i++) {
|
|
1861
|
+
if (Object.prototype.hasOwnProperty.call(groupHeaderMap, headerItems[i].id)) {
|
|
1862
|
+
headerItems[i].innerHTML = groupHeaderMap[headerItems[i].id];
|
|
1863
|
+
}
|
|
1864
|
+
}
|
|
1865
|
+
}
|
|
1866
|
+
this.renderGroupTemplate(ulElement);
|
|
1867
|
+
}
|
|
1829
1868
|
this.list.appendChild(ulElement);
|
|
1830
1869
|
this.liCollections = this.list.querySelectorAll('.' + dropDownBaseClasses.li);
|
|
1831
1870
|
this.ulElement = this.list.querySelector('ul');
|
|
@@ -1920,7 +1959,9 @@ let DropDownBase = class DropDownBase extends Component {
|
|
|
1920
1959
|
if (this.fields.groupBy !== null && this.dataSource || this.element.querySelector('.' + dropDownBaseClasses.group)) {
|
|
1921
1960
|
const dataSource = this.dataSource;
|
|
1922
1961
|
const option = { groupTemplateID: this.groupTemplateId, isStringTemplate: this.isStringTemplate };
|
|
1923
|
-
const headerItems =
|
|
1962
|
+
const headerItems = this.isAngular && this.getModuleName() === 'multiselect' && !isNullOrUndefined(listEle) &&
|
|
1963
|
+
listEle.classList.contains(dropDownBaseClasses.fixedHead) ? [listEle] :
|
|
1964
|
+
listEle.querySelectorAll('.' + dropDownBaseClasses.group);
|
|
1924
1965
|
const groupcheck = this.templateCompiler(this.groupTemplate);
|
|
1925
1966
|
if (typeof this.groupTemplate !== 'function' && groupcheck) {
|
|
1926
1967
|
const groupValue = select(this.groupTemplate, document).innerHTML.trim();
|
|
@@ -2055,10 +2096,38 @@ let DropDownBase = class DropDownBase extends Component {
|
|
|
2055
2096
|
return false;
|
|
2056
2097
|
}
|
|
2057
2098
|
}
|
|
2099
|
+
updateFixedGroupTemplateHader(element) {
|
|
2100
|
+
const groupData = element.cloneNode ? element.cloneNode(true) : element;
|
|
2101
|
+
let isGroupDataUpdated = false;
|
|
2102
|
+
if (this.groupHeaderItems && this.groupHeaderItems.length > 0) {
|
|
2103
|
+
for (let i = 0; i < this.groupHeaderItems.length; i++) {
|
|
2104
|
+
if (groupData.id === this.groupHeaderItems[i].id) {
|
|
2105
|
+
groupData.innerHTML = this.groupHeaderItems[i].innerHTML;
|
|
2106
|
+
isGroupDataUpdated = true;
|
|
2107
|
+
break;
|
|
2108
|
+
}
|
|
2109
|
+
}
|
|
2110
|
+
}
|
|
2111
|
+
if (!isGroupDataUpdated && this.fiteredGroupHeaderItems && this.fiteredGroupHeaderItems.length > 0) {
|
|
2112
|
+
for (let i = 0; i < this.fiteredGroupHeaderItems.length; i++) {
|
|
2113
|
+
if (groupData.id === this.fiteredGroupHeaderItems[i].id) {
|
|
2114
|
+
groupData.innerHTML = this.fiteredGroupHeaderItems[i].innerHTML;
|
|
2115
|
+
break;
|
|
2116
|
+
}
|
|
2117
|
+
}
|
|
2118
|
+
}
|
|
2119
|
+
this.fixedHeaderElement.innerHTML = groupData.innerHTML;
|
|
2120
|
+
this.renderGroupTemplate(this.fixedHeaderElement);
|
|
2121
|
+
}
|
|
2058
2122
|
updateGroupFixedHeader(element, target) {
|
|
2059
2123
|
if (this.fixedHeaderElement) {
|
|
2060
2124
|
if (!isNullOrUndefined(element.innerHTML)) {
|
|
2061
|
-
this.
|
|
2125
|
+
if (this.groupTemplate && this.isAngular && this.getModuleName() === 'multiselect') {
|
|
2126
|
+
this.updateFixedGroupTemplateHader(element);
|
|
2127
|
+
}
|
|
2128
|
+
else {
|
|
2129
|
+
this.fixedHeaderElement.innerHTML = element.innerHTML;
|
|
2130
|
+
}
|
|
2062
2131
|
}
|
|
2063
2132
|
this.fixedHeaderElement.style.position = 'fixed';
|
|
2064
2133
|
this.fixedHeaderElement.style.top = (this.list.parentElement.offsetTop + this.list.offsetTop) - window.scrollY + 'px';
|
|
@@ -2248,7 +2317,12 @@ let DropDownBase = class DropDownBase extends Component {
|
|
|
2248
2317
|
setStyleAttribute(this.fixedHeaderElement, { zIndex: 10 });
|
|
2249
2318
|
const firstLi = this.ulElement.querySelector('.' + dropDownBaseClasses.group + ':not(.e-hide-listitem)');
|
|
2250
2319
|
if (!isNullOrUndefined(firstLi)) {
|
|
2251
|
-
this.
|
|
2320
|
+
if (this.groupTemplate && this.isAngular && this.getModuleName() === 'multiselect') {
|
|
2321
|
+
this.updateFixedGroupTemplateHader(firstLi);
|
|
2322
|
+
}
|
|
2323
|
+
else {
|
|
2324
|
+
this.fixedHeaderElement.innerHTML = firstLi.innerHTML;
|
|
2325
|
+
}
|
|
2252
2326
|
}
|
|
2253
2327
|
}
|
|
2254
2328
|
getSortedDataSource(dataSource) {
|
|
@@ -2801,6 +2875,8 @@ let DropDownBase = class DropDownBase extends Component {
|
|
|
2801
2875
|
this.ulElement = null;
|
|
2802
2876
|
this.list = null;
|
|
2803
2877
|
this.enableRtlElements = null;
|
|
2878
|
+
this.groupHeaderItems = null;
|
|
2879
|
+
this.fiteredGroupHeaderItems = null;
|
|
2804
2880
|
this.rippleFun = null;
|
|
2805
2881
|
super.destroy();
|
|
2806
2882
|
}
|
|
@@ -5159,7 +5235,14 @@ let DropDownList = class DropDownList extends DropDownBase {
|
|
|
5159
5235
|
return;
|
|
5160
5236
|
}
|
|
5161
5237
|
if (this.getInitialData) {
|
|
5162
|
-
this.
|
|
5238
|
+
if (this.itemTemplate && this.element.tagName === 'EJS-COMBOBOX' && this.allowFiltering) {
|
|
5239
|
+
setTimeout(() => {
|
|
5240
|
+
this.updateActionCompleteDataValues(ulElement, list);
|
|
5241
|
+
}, 0);
|
|
5242
|
+
}
|
|
5243
|
+
else {
|
|
5244
|
+
this.updateActionCompleteDataValues(ulElement, list);
|
|
5245
|
+
}
|
|
5163
5246
|
if (this.enableVirtualization) {
|
|
5164
5247
|
this.updateSelectElementData(this.allowFiltering);
|
|
5165
5248
|
}
|
|
@@ -13517,7 +13600,7 @@ let MultiSelect = class MultiSelect extends DropDownBase {
|
|
|
13517
13600
|
return filterQuery;
|
|
13518
13601
|
}
|
|
13519
13602
|
}
|
|
13520
|
-
if (this.
|
|
13603
|
+
if (this.isFilterAction) {
|
|
13521
13604
|
if ((this.targetElement() !== null && !this.enableVirtualization) || (this.enableVirtualization &&
|
|
13522
13605
|
this.targetElement() !== null && this.targetElement().trim() !== '')) {
|
|
13523
13606
|
const dataType = this.typeOfData(this.dataSource).typeof;
|
|
@@ -13981,7 +14064,9 @@ let MultiSelect = class MultiSelect extends DropDownBase {
|
|
|
13981
14064
|
this.ulElement = this.mainList;
|
|
13982
14065
|
}
|
|
13983
14066
|
this.checkPlaceholderSize();
|
|
13984
|
-
|
|
14067
|
+
if (this.element.querySelector('.e-multiselect .e-float-text-content') === null) {
|
|
14068
|
+
Input.createSpanElement(this.overAllWrapper, this.createElement);
|
|
14069
|
+
}
|
|
13985
14070
|
this.calculateWidth();
|
|
13986
14071
|
if (!isNullOrUndefined(this.overAllWrapper) && !isNullOrUndefined(this.overAllWrapper.getElementsByClassName('e-ddl-icon')[0] &&
|
|
13987
14072
|
this.overAllWrapper.getElementsByClassName('e-float-text-content')[0] && this.floatLabelType !== 'Never')) {
|
|
@@ -15163,7 +15248,9 @@ let MultiSelect = class MultiSelect extends DropDownBase {
|
|
|
15163
15248
|
}
|
|
15164
15249
|
else {
|
|
15165
15250
|
this.setFloatLabelType();
|
|
15166
|
-
|
|
15251
|
+
if (this.element.querySelector('.e-multiselect .e-float-text-content') === null) {
|
|
15252
|
+
Input.createSpanElement(this.overAllWrapper, this.createElement);
|
|
15253
|
+
}
|
|
15167
15254
|
}
|
|
15168
15255
|
this.expandTextbox();
|
|
15169
15256
|
}
|
|
@@ -16005,7 +16092,9 @@ let MultiSelect = class MultiSelect extends DropDownBase {
|
|
|
16005
16092
|
this.clearAllCallback(e);
|
|
16006
16093
|
}
|
|
16007
16094
|
this.checkAndResetCache();
|
|
16008
|
-
|
|
16095
|
+
if (this.element.querySelector('.e-multiselect .e-float-text-content') === null) {
|
|
16096
|
+
Input.createSpanElement(this.overAllWrapper, this.createElement);
|
|
16097
|
+
}
|
|
16009
16098
|
this.calculateWidth();
|
|
16010
16099
|
if (!isNullOrUndefined(this.overAllWrapper) && !isNullOrUndefined(this.overAllWrapper.getElementsByClassName('e-ddl-icon')[0] && this.overAllWrapper.getElementsByClassName('e-float-text-content')[0] && this.floatLabelType !== 'Never')) {
|
|
16011
16100
|
this.overAllWrapper.getElementsByClassName('e-float-text-content')[0].classList.add('e-icon');
|
|
@@ -16159,7 +16248,7 @@ let MultiSelect = class MultiSelect extends DropDownBase {
|
|
|
16159
16248
|
this.isFilterPrevented = eventArgs.cancel;
|
|
16160
16249
|
if (!eventArgs.cancel) {
|
|
16161
16250
|
if (!this.isFiltered && !eventArgs.preventDefaultAction) {
|
|
16162
|
-
this.
|
|
16251
|
+
this.isFilterAction = true;
|
|
16163
16252
|
this.isFilteringAction = true;
|
|
16164
16253
|
if (this.dataSource instanceof DataManager && this.allowCustomValue) {
|
|
16165
16254
|
this.isCustomRendered = false;
|
|
@@ -16315,7 +16404,7 @@ let MultiSelect = class MultiSelect extends DropDownBase {
|
|
|
16315
16404
|
initializeData() {
|
|
16316
16405
|
this.mainListCollection = [];
|
|
16317
16406
|
this.beforePopupOpen = false;
|
|
16318
|
-
this.
|
|
16407
|
+
this.isFilterAction = false;
|
|
16319
16408
|
this.remoteFilterAction = false;
|
|
16320
16409
|
this.isFirstClick = false;
|
|
16321
16410
|
this.mobFilter = true;
|
|
@@ -16641,7 +16730,7 @@ let MultiSelect = class MultiSelect extends DropDownBase {
|
|
|
16641
16730
|
}
|
|
16642
16731
|
}
|
|
16643
16732
|
updateDataList() {
|
|
16644
|
-
if (this.mainList && this.ulElement && !(this.isFiltered || this.
|
|
16733
|
+
if (this.mainList && this.ulElement && !(this.isFiltered || this.isFilterAction || this.targetElement().trim())) {
|
|
16645
16734
|
const isDynamicGroupItemUpdate = this.mainList.childElementCount < this.ulElement.childElementCount;
|
|
16646
16735
|
const isReactTemplateUpdate = ((this.ulElement.childElementCount > 0 &&
|
|
16647
16736
|
this.ulElement.children[0].childElementCount > 0) &&
|
|
@@ -17874,7 +17963,7 @@ let MultiSelect = class MultiSelect extends DropDownBase {
|
|
|
17874
17963
|
this.isDynamicDataChange = true;
|
|
17875
17964
|
}
|
|
17876
17965
|
if (this.getModuleName() === 'multiselect') {
|
|
17877
|
-
this.
|
|
17966
|
+
this.isFilterAction = false;
|
|
17878
17967
|
this.setUpdateInitial(['fields', 'query', 'dataSource'], newProp);
|
|
17879
17968
|
}
|
|
17880
17969
|
for (const prop of Object.keys(newProp)) {
|
|
@@ -17979,7 +18068,9 @@ let MultiSelect = class MultiSelect extends DropDownBase {
|
|
|
17979
18068
|
case 'floatLabelType':
|
|
17980
18069
|
this.setFloatLabelType();
|
|
17981
18070
|
this.addValidInputClass();
|
|
17982
|
-
|
|
18071
|
+
if (this.element.querySelector('.e-multiselect .e-float-text-content') === null) {
|
|
18072
|
+
Input.createSpanElement(this.overAllWrapper, this.createElement);
|
|
18073
|
+
}
|
|
17983
18074
|
this.calculateWidth();
|
|
17984
18075
|
if (!isNullOrUndefined(this.overAllWrapper) &&
|
|
17985
18076
|
!isNullOrUndefined(this.overAllWrapper.getElementsByClassName('e-ddl-icon')[0] &&
|
|
@@ -18568,7 +18659,9 @@ let MultiSelect = class MultiSelect extends DropDownBase {
|
|
|
18568
18659
|
if (this.element.hasAttribute('data-val')) {
|
|
18569
18660
|
this.element.setAttribute('data-val', 'false');
|
|
18570
18661
|
}
|
|
18571
|
-
|
|
18662
|
+
if (this.element.querySelector('.e-multiselect .e-float-text-content') === null) {
|
|
18663
|
+
Input.createSpanElement(this.overAllWrapper, this.createElement);
|
|
18664
|
+
}
|
|
18572
18665
|
this.calculateWidth();
|
|
18573
18666
|
if (!isNullOrUndefined(this.overAllWrapper) && !isNullOrUndefined(this.overAllWrapper.getElementsByClassName('e-ddl-icon')[0] &&
|
|
18574
18667
|
this.overAllWrapper.getElementsByClassName('e-float-text-content')[0] && this.floatLabelType !== 'Never')) {
|
|
@@ -19989,9 +20082,6 @@ let ListBox = ListBox_1 = class ListBox extends DropDownBase {
|
|
|
19989
20082
|
this.unSelectAllText = l10nSelect.getConstant('unSelectAllText');
|
|
19990
20083
|
this.popupWrapper = this.list;
|
|
19991
20084
|
this.checkBoxSelectionModule.checkAllParent = null;
|
|
19992
|
-
if (this.filterParent) {
|
|
19993
|
-
this.filterParent = null;
|
|
19994
|
-
}
|
|
19995
20085
|
this.notify('selectAll', {});
|
|
19996
20086
|
}
|
|
19997
20087
|
}
|