@syncfusion/ej2-dropdowns 19.4.42 → 19.4.52
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 +16 -0
- package/README.md +1 -1
- 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 +73 -20
- package/dist/es6/ej2-dropdowns.es2015.js.map +1 -1
- package/dist/es6/ej2-dropdowns.es5.js +150 -92
- 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 +11 -11
- package/src/drop-down-base/drop-down-base.js +18 -6
- package/src/drop-down-list/drop-down-list.js +107 -72
- package/src/list-box/list-box.js +4 -3
- package/src/multi-select/multi-select.js +18 -8
- package/styles/bootstrap-dark.css +18 -4
- package/styles/bootstrap.css +18 -4
- package/styles/bootstrap4.css +18 -4
- package/styles/bootstrap5-dark.css +18 -4
- package/styles/bootstrap5.css +18 -4
- package/styles/fabric-dark.css +18 -4
- package/styles/fabric.css +18 -4
- package/styles/highcontrast-light.css +18 -4
- package/styles/highcontrast.css +18 -4
- package/styles/list-box/_bootstrap-dark-definition.scss +3 -0
- package/styles/list-box/_bootstrap-definition.scss +3 -0
- package/styles/list-box/_bootstrap4-definition.scss +3 -0
- package/styles/list-box/_bootstrap5-definition.scss +3 -0
- package/styles/list-box/_fabric-dark-definition.scss +3 -0
- package/styles/list-box/_fabric-definition.scss +3 -0
- package/styles/list-box/_fluent-definition.scss +3 -0
- package/styles/list-box/_highcontrast-definition.scss +3 -0
- package/styles/list-box/_highcontrast-light-definition.scss +3 -0
- package/styles/list-box/_material-dark-definition.scss +3 -0
- package/styles/list-box/_material-definition.scss +3 -0
- package/styles/list-box/_tailwind-definition.scss +3 -0
- package/styles/list-box/_theme.scss +8 -0
- package/styles/list-box/bootstrap-dark.css +10 -0
- package/styles/list-box/bootstrap.css +10 -0
- package/styles/list-box/bootstrap4.css +10 -0
- package/styles/list-box/bootstrap5-dark.css +10 -0
- package/styles/list-box/bootstrap5.css +10 -0
- package/styles/list-box/fabric-dark.css +10 -0
- package/styles/list-box/fabric.css +10 -0
- package/styles/list-box/highcontrast-light.css +10 -0
- package/styles/list-box/highcontrast.css +10 -0
- package/styles/list-box/material-dark.css +10 -0
- package/styles/list-box/material.css +10 -0
- package/styles/list-box/tailwind-dark.css +10 -0
- package/styles/list-box/tailwind.css +10 -0
- package/styles/material-dark.css +18 -4
- package/styles/material.css +18 -4
- package/styles/multi-select/_layout.scss +6 -4
- package/styles/multi-select/bootstrap-dark.css +8 -4
- package/styles/multi-select/bootstrap.css +8 -4
- package/styles/multi-select/bootstrap4.css +8 -4
- package/styles/multi-select/bootstrap5-dark.css +8 -4
- package/styles/multi-select/bootstrap5.css +8 -4
- package/styles/multi-select/fabric-dark.css +8 -4
- package/styles/multi-select/fabric.css +8 -4
- package/styles/multi-select/highcontrast-light.css +8 -4
- package/styles/multi-select/highcontrast.css +8 -4
- package/styles/multi-select/material-dark.css +8 -4
- package/styles/multi-select/material.css +8 -4
- package/styles/multi-select/tailwind-dark.css +8 -4
- package/styles/multi-select/tailwind.css +8 -4
- package/styles/tailwind-dark.css +18 -4
- package/styles/tailwind.css +18 -4
|
@@ -216,6 +216,7 @@ const HEADERTEMPLATE_PROPERTY = 'HeaderTemplate';
|
|
|
216
216
|
const FOOTERTEMPLATE_PROPERTY = 'FooterTemplate';
|
|
217
217
|
const NORECORDSTEMPLATE_PROPERTY = 'NoRecordsTemplate';
|
|
218
218
|
const ACTIONFAILURETEMPLATE_PROPERTY = 'ActionFailureTemplate';
|
|
219
|
+
const HIDE_GROUPLIST = 'e-hide-group-header';
|
|
219
220
|
/**
|
|
220
221
|
* DropDownBase component will generate the list items based on given data and act as base class to drop-down related components
|
|
221
222
|
*/
|
|
@@ -636,7 +637,7 @@ let DropDownBase = class DropDownBase extends Component {
|
|
|
636
637
|
}
|
|
637
638
|
this.bindChildItems(localDataArgs.result, ulElement, fields);
|
|
638
639
|
setTimeout(() => {
|
|
639
|
-
if (this.getModuleName() === 'multiselect' && this.itemTemplate != null && (ulElement.childElementCount > 0 && ulElement.children[0].childElementCount > 0)) {
|
|
640
|
+
if (this.getModuleName() === 'multiselect' && this.itemTemplate != null && (ulElement.childElementCount > 0 && (ulElement.children[0].childElementCount > 0 || (this.fields.groupBy && ulElement.children[1] && ulElement.children[1].childElementCount > 0)))) {
|
|
640
641
|
this.updateDataList();
|
|
641
642
|
}
|
|
642
643
|
});
|
|
@@ -722,12 +723,23 @@ let DropDownBase = class DropDownBase extends Component {
|
|
|
722
723
|
if (this.isReact) {
|
|
723
724
|
this.clearTemplate(['itemTemplate', 'groupTemplate', 'actionFailureTemplate', 'noRecordsTemplate']);
|
|
724
725
|
}
|
|
725
|
-
this.list.innerHTML = '';
|
|
726
726
|
this.fixedHeaderElement = isNullOrUndefined(this.fixedHeaderElement) ? this.fixedHeaderElement : null;
|
|
727
|
-
this.
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
727
|
+
if (this.getModuleName() === 'multiselect' && this.properties.allowCustomValue && this.fields.groupBy) {
|
|
728
|
+
for (let i = 0; i < ulElement.childElementCount; i++) {
|
|
729
|
+
if (ulElement.children[i].classList.contains('e-list-group-item')) {
|
|
730
|
+
if (isNullOrUndefined(ulElement.children[i].innerHTML) || ulElement.children[i].innerHTML == "") {
|
|
731
|
+
addClass([ulElement.children[i]], HIDE_GROUPLIST);
|
|
732
|
+
}
|
|
733
|
+
}
|
|
734
|
+
}
|
|
735
|
+
}
|
|
736
|
+
if (!isNullOrUndefined(this.list)) {
|
|
737
|
+
this.list.innerHTML = '';
|
|
738
|
+
this.list.appendChild(ulElement);
|
|
739
|
+
this.liCollections = this.list.querySelectorAll('.' + dropDownBaseClasses.li);
|
|
740
|
+
this.ulElement = this.list.querySelector('ul');
|
|
741
|
+
this.postRender(this.list, list, this.bindEvent);
|
|
742
|
+
}
|
|
731
743
|
}
|
|
732
744
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
733
745
|
postRender(listElement, list, bindEvent) {
|
|
@@ -772,7 +784,7 @@ let DropDownBase = class DropDownBase extends Component {
|
|
|
772
784
|
const tempHeaders = ListBase.renderGroupTemplate(groupValue, dataSource, this.fields.properties, headerItems, option, this);
|
|
773
785
|
//EJ2-55168- Group checkbox is not working with group template
|
|
774
786
|
if (this.isGroupChecking) {
|
|
775
|
-
for (
|
|
787
|
+
for (let i = 0; i < tempHeaders.length; i++) {
|
|
776
788
|
this.notify('addItem', { module: 'CheckBoxSelection', item: tempHeaders[i] });
|
|
777
789
|
}
|
|
778
790
|
}
|
|
@@ -782,7 +794,7 @@ let DropDownBase = class DropDownBase extends Component {
|
|
|
782
794
|
const tempHeaders = ListBase.renderGroupTemplate(this.groupTemplate, dataSource, this.fields.properties, headerItems, option, this);
|
|
783
795
|
//EJ2-55168- Group checkbox is not working with group template
|
|
784
796
|
if (this.isGroupChecking) {
|
|
785
|
-
for (
|
|
797
|
+
for (let i = 0; i < tempHeaders.length; i++) {
|
|
786
798
|
this.notify('addItem', { module: 'CheckBoxSelection', item: tempHeaders[i] });
|
|
787
799
|
}
|
|
788
800
|
}
|
|
@@ -3609,7 +3621,7 @@ let DropDownList = class DropDownList extends DropDownBase {
|
|
|
3609
3621
|
checkCustomValue() {
|
|
3610
3622
|
this.itemData = this.getDataByValue(this.value);
|
|
3611
3623
|
const dataItem = this.getItemData();
|
|
3612
|
-
this.setProperties({ '
|
|
3624
|
+
this.setProperties({ 'text': dataItem.text, 'value': dataItem.value });
|
|
3613
3625
|
}
|
|
3614
3626
|
updateInputFields() {
|
|
3615
3627
|
if (this.getModuleName() === 'dropdownlist') {
|
|
@@ -3680,6 +3692,21 @@ let DropDownList = class DropDownList extends DropDownBase {
|
|
|
3680
3692
|
this.getModuleName() === 'autocomplete' && this.listData.length > 100) {
|
|
3681
3693
|
this.setSelectionData(newProp.text, oldProp.text, 'text');
|
|
3682
3694
|
}
|
|
3695
|
+
else if (newProp.text && this.dataSource instanceof DataManager) {
|
|
3696
|
+
const listLength = this.getItems().length;
|
|
3697
|
+
const checkField = isNullOrUndefined(this.fields.text) ? this.fields.value : this.fields.text;
|
|
3698
|
+
this.typedString = '';
|
|
3699
|
+
this.dataSource.executeQuery(this.getQuery(this.query).where(new Predicate(checkField, 'equal', newProp.text)))
|
|
3700
|
+
.then((e) => {
|
|
3701
|
+
if (e.result.length > 0) {
|
|
3702
|
+
this.addItem(e.result, listLength);
|
|
3703
|
+
this.updateValues();
|
|
3704
|
+
}
|
|
3705
|
+
else {
|
|
3706
|
+
this.setOldText(oldProp.text);
|
|
3707
|
+
}
|
|
3708
|
+
});
|
|
3709
|
+
}
|
|
3683
3710
|
else {
|
|
3684
3711
|
this.setOldText(oldProp.text);
|
|
3685
3712
|
}
|
|
@@ -3706,6 +3733,21 @@ let DropDownList = class DropDownList extends DropDownBase {
|
|
|
3706
3733
|
this.getModuleName() === 'autocomplete' && this.listData.length > 100) {
|
|
3707
3734
|
this.setSelectionData(newProp.value, oldProp.value, 'value');
|
|
3708
3735
|
}
|
|
3736
|
+
else if (newProp.value && this.dataSource instanceof DataManager) {
|
|
3737
|
+
const listLength = this.getItems().length;
|
|
3738
|
+
const checkField = isNullOrUndefined(this.fields.value) ? this.fields.text : this.fields.value;
|
|
3739
|
+
this.typedString = '';
|
|
3740
|
+
this.dataSource.executeQuery(this.getQuery(this.query).where(new Predicate(checkField, 'equal', newProp.value)))
|
|
3741
|
+
.then((e) => {
|
|
3742
|
+
if (e.result.length > 0) {
|
|
3743
|
+
this.addItem(e.result, listLength);
|
|
3744
|
+
this.updateValues();
|
|
3745
|
+
}
|
|
3746
|
+
else {
|
|
3747
|
+
this.setOldValue(oldProp.value);
|
|
3748
|
+
}
|
|
3749
|
+
});
|
|
3750
|
+
}
|
|
3709
3751
|
else {
|
|
3710
3752
|
this.setOldValue(oldProp.value);
|
|
3711
3753
|
}
|
|
@@ -8908,7 +8950,9 @@ let MultiSelect = class MultiSelect extends DropDownBase {
|
|
|
8908
8950
|
return ariaAttributes;
|
|
8909
8951
|
}
|
|
8910
8952
|
updateListARIA() {
|
|
8911
|
-
|
|
8953
|
+
if (!isNullOrUndefined(this.ulElement)) {
|
|
8954
|
+
attributes(this.ulElement, { 'id': this.element.id + '_options', 'role': 'listbox', 'aria-hidden': 'false' });
|
|
8955
|
+
}
|
|
8912
8956
|
const disableStatus = (this.inputElement.disabled) ? true : false;
|
|
8913
8957
|
attributes(this.inputElement, this.getAriaAttributes());
|
|
8914
8958
|
if (disableStatus) {
|
|
@@ -11036,8 +11080,13 @@ let MultiSelect = class MultiSelect extends DropDownBase {
|
|
|
11036
11080
|
}
|
|
11037
11081
|
}
|
|
11038
11082
|
updateDataList() {
|
|
11039
|
-
if (this.mainList && this.ulElement
|
|
11040
|
-
|
|
11083
|
+
if (this.mainList && this.ulElement) {
|
|
11084
|
+
let isDynamicGroupItemUpdate = this.mainList.childElementCount < this.ulElement.childElementCount;
|
|
11085
|
+
let isReactTemplateUpdate = ((this.ulElement.childElementCount > 0 && this.ulElement.children[0].childElementCount > 0) && (this.mainList.children[0].childElementCount < this.ulElement.children[0].childElementCount));
|
|
11086
|
+
let isAngularTemplateUpdate = this.itemTemplate && this.ulElement.childElementCount > 0 && (this.ulElement.children[0].childElementCount > 0 || (this.fields.groupBy && this.ulElement.children[1] && this.ulElement.children[1].childElementCount > 0));
|
|
11087
|
+
if (isDynamicGroupItemUpdate || isReactTemplateUpdate || isAngularTemplateUpdate) {
|
|
11088
|
+
this.mainList = this.ulElement.cloneNode ? this.ulElement.cloneNode(true) : this.ulElement;
|
|
11089
|
+
}
|
|
11041
11090
|
}
|
|
11042
11091
|
}
|
|
11043
11092
|
isValidLI(li) {
|
|
@@ -11384,11 +11433,13 @@ let MultiSelect = class MultiSelect extends DropDownBase {
|
|
|
11384
11433
|
}
|
|
11385
11434
|
}
|
|
11386
11435
|
wireListEvents() {
|
|
11387
|
-
|
|
11388
|
-
|
|
11389
|
-
|
|
11390
|
-
|
|
11391
|
-
|
|
11436
|
+
if (!isNullOrUndefined(this.list)) {
|
|
11437
|
+
EventHandler.add(document, 'mousedown', this.onDocumentClick, this);
|
|
11438
|
+
EventHandler.add(this.list, 'mousedown', this.onListMouseDown, this);
|
|
11439
|
+
EventHandler.add(this.list, 'mouseup', this.onMouseClick, this);
|
|
11440
|
+
EventHandler.add(this.list, 'mouseover', this.onMouseOver, this);
|
|
11441
|
+
EventHandler.add(this.list, 'mouseout', this.onMouseLeave, this);
|
|
11442
|
+
}
|
|
11392
11443
|
}
|
|
11393
11444
|
unwireListEvents() {
|
|
11394
11445
|
EventHandler.remove(document, 'mousedown', this.onDocumentClick);
|
|
@@ -12509,6 +12560,7 @@ let MultiSelect = class MultiSelect extends DropDownBase {
|
|
|
12509
12560
|
this.mainData = null;
|
|
12510
12561
|
this.filterParent = null;
|
|
12511
12562
|
this.ulElement = null;
|
|
12563
|
+
this.mainListCollection = null;
|
|
12512
12564
|
super.destroy();
|
|
12513
12565
|
const temp = ['readonly', 'aria-disabled', 'aria-placeholder', 'placeholder'];
|
|
12514
12566
|
let length = temp.length;
|
|
@@ -13925,9 +13977,10 @@ let ListBox = ListBox_1 = class ListBox extends DropDownBase {
|
|
|
13925
13977
|
}
|
|
13926
13978
|
if (objValue === dataValue) {
|
|
13927
13979
|
itemIdx = this.getIndexByValue(dataValue);
|
|
13928
|
-
|
|
13929
|
-
|
|
13930
|
-
|
|
13980
|
+
const idx = itemIdx === i ? itemIdx : i;
|
|
13981
|
+
liCollections.push(liElement[idx]);
|
|
13982
|
+
removeIdxes.push(idx);
|
|
13983
|
+
removeLiIdxes.push(idx);
|
|
13931
13984
|
}
|
|
13932
13985
|
}
|
|
13933
13986
|
}
|