@syncfusion/ej2-dropdowns 34.2.5 → 34.2.6
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/README.md +11 -0
- package/dist/ej2-dropdowns.min.js +10 -1
- package/dist/ej2-dropdowns.umd.min.js +10 -1
- package/dist/ej2-dropdowns.umd.min.js.map +1 -1
- package/dist/es6/ej2-dropdowns.es2015.js +154 -67
- package/dist/es6/ej2-dropdowns.es2015.js.map +1 -1
- package/dist/es6/ej2-dropdowns.es5.js +153 -70
- package/dist/es6/ej2-dropdowns.es5.js.map +1 -1
- package/dist/global/ej2-dropdowns.min.js +10 -1
- package/dist/global/ej2-dropdowns.min.js.map +1 -1
- package/dist/global/index.d.ts +9 -0
- package/package.json +8 -8
- package/src/drop-down-list/drop-down-list.js +1 -0
- package/src/drop-down-tree/drop-down-tree.d.ts +1 -2
- package/src/drop-down-tree/drop-down-tree.js +43 -68
- package/src/mention/mention.js +1 -1
- package/src/multi-select/multi-select.d.ts +1 -0
- package/src/multi-select/multi-select.js +108 -1
- package/.eslintrc.json +0 -263
- package/aceconfig.js +0 -17
- package/tslint.json +0 -111
package/dist/global/index.d.ts
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* filename: index.d.ts
|
|
3
|
+
* version : 34.2.6
|
|
4
|
+
* Copyright Syncfusion Inc. 2001 - 2025. All rights reserved.
|
|
5
|
+
* Use of this code is subject to the terms of our license.
|
|
6
|
+
* A copy of the current license can be obtained at any time by e-mailing
|
|
7
|
+
* licensing@syncfusion.com. Any infringement will be prosecuted under
|
|
8
|
+
* applicable laws.
|
|
9
|
+
*/
|
|
1
10
|
import * as _dropdowns from '@syncfusion/ej2-dropdowns';
|
|
2
11
|
|
|
3
12
|
export declare namespace ej {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@syncfusion/ej2-dropdowns",
|
|
3
|
-
"version": "34.2.
|
|
3
|
+
"version": "34.2.6",
|
|
4
4
|
"description": "Essential JS 2 DropDown Components",
|
|
5
5
|
"author": "Syncfusion Inc.",
|
|
6
6
|
"license": "SEE LICENSE IN license",
|
|
@@ -8,13 +8,13 @@
|
|
|
8
8
|
"module": "./index.js",
|
|
9
9
|
"es2015": "./dist/es6/ej2-dropdowns.es5.js",
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@syncfusion/ej2-base": "~34.2.
|
|
12
|
-
"@syncfusion/ej2-data": "~34.2.
|
|
13
|
-
"@syncfusion/ej2-inputs": "~34.2.
|
|
14
|
-
"@syncfusion/ej2-lists": "~34.2.
|
|
15
|
-
"@syncfusion/ej2-navigations": "~34.2.
|
|
16
|
-
"@syncfusion/ej2-notifications": "~34.2.
|
|
17
|
-
"@syncfusion/ej2-popups": "~34.2.
|
|
11
|
+
"@syncfusion/ej2-base": "~34.2.6",
|
|
12
|
+
"@syncfusion/ej2-data": "~34.2.6",
|
|
13
|
+
"@syncfusion/ej2-inputs": "~34.2.6",
|
|
14
|
+
"@syncfusion/ej2-lists": "~34.2.6",
|
|
15
|
+
"@syncfusion/ej2-navigations": "~34.2.6",
|
|
16
|
+
"@syncfusion/ej2-notifications": "~34.2.6",
|
|
17
|
+
"@syncfusion/ej2-popups": "~34.2.6"
|
|
18
18
|
},
|
|
19
19
|
"devDependencies": {},
|
|
20
20
|
"keywords": [
|
|
@@ -624,6 +624,7 @@ var DropDownList = /** @class */ (function (_super) {
|
|
|
624
624
|
this.bindClearEvent();
|
|
625
625
|
};
|
|
626
626
|
DropDownList.prototype.windowResize = function () {
|
|
627
|
+
this.updateFloatLabelOverflowWidth();
|
|
627
628
|
if (this.isPopupOpen) {
|
|
628
629
|
this.popupObj.refreshPosition(this.inputWrapper.container);
|
|
629
630
|
}
|
|
@@ -344,6 +344,7 @@ export declare class DropDownTree extends Component<HTMLElement> implements INot
|
|
|
344
344
|
private valueTemplateContainer;
|
|
345
345
|
private previousFilterText;
|
|
346
346
|
private fallbackValue;
|
|
347
|
+
private uncheckedNodeId;
|
|
347
348
|
/**
|
|
348
349
|
* Specifies the template that renders to the popup list content of the
|
|
349
350
|
* Dropdown Tree component when the data fetch request from the remote server fails.
|
|
@@ -892,10 +893,8 @@ export declare class DropDownTree extends Component<HTMLElement> implements INot
|
|
|
892
893
|
private removeSelectedData;
|
|
893
894
|
private initializeValueTemplate;
|
|
894
895
|
private showOrHideValueTemplate;
|
|
895
|
-
private getFilteredTreeData;
|
|
896
896
|
private getChildren;
|
|
897
897
|
private getDirectChildren;
|
|
898
|
-
private restoreRootParentValues;
|
|
899
898
|
private updateFilteredAutoCheckValues;
|
|
900
899
|
private updateSelectedValues;
|
|
901
900
|
private setChipValues;
|
|
@@ -178,6 +178,7 @@ var DropDownTree = /** @class */ (function (_super) {
|
|
|
178
178
|
_this.isNodeChecked = false;
|
|
179
179
|
_this.isFromFilterChange = false;
|
|
180
180
|
_this.fallbackValue = [];
|
|
181
|
+
_this.uncheckedNodeId = null;
|
|
181
182
|
return _this;
|
|
182
183
|
}
|
|
183
184
|
/**
|
|
@@ -2354,6 +2355,8 @@ var DropDownTree = /** @class */ (function (_super) {
|
|
|
2354
2355
|
var eventArgs = this.getEventArgs(args);
|
|
2355
2356
|
this.trigger('select', eventArgs);
|
|
2356
2357
|
this.isNodeChecked = args.action === 'check';
|
|
2358
|
+
this.uncheckedNodeId = args.action === 'uncheck' && !isNOU(args.data[0]) ?
|
|
2359
|
+
getValue('id', args.data[0]).toString() : null;
|
|
2357
2360
|
if (this.isFilteredData && args.action === 'uncheck') {
|
|
2358
2361
|
var id = getValue('id', args.data[0]).toString();
|
|
2359
2362
|
this.removeSelectedData(id, true);
|
|
@@ -2386,21 +2389,8 @@ var DropDownTree = /** @class */ (function (_super) {
|
|
|
2386
2389
|
this.triggerChangeEvent(this.keyEventArgs);
|
|
2387
2390
|
this.isValueChange = false;
|
|
2388
2391
|
}
|
|
2389
|
-
if (!this.isRemoteData && !this.treeSettings.loadOnDemand) {
|
|
2390
|
-
var treeData = this.treeObj.getTreeData();
|
|
2391
|
-
if (this.showCheckBox && this.treeSettings.autoCheck &&
|
|
2392
|
-
treeData.length > 0 && this.treeData && this.treeData.length > 0) {
|
|
2393
|
-
for (var i = 0; i < treeData.length; i++) {
|
|
2394
|
-
for (var j = 0; j < this.treeData.length; j++) {
|
|
2395
|
-
if (treeData[i][this.fields.value] === this.treeData[j][this.fields.value]) {
|
|
2396
|
-
this.treeData[j].selected = treeData[i].selected !== undefined ?
|
|
2397
|
-
treeData[i].selected : false;
|
|
2398
|
-
}
|
|
2399
|
-
}
|
|
2400
|
-
}
|
|
2401
|
-
}
|
|
2402
|
-
}
|
|
2403
2392
|
this.updateIndeterminateNodes();
|
|
2393
|
+
this.uncheckedNodeId = null;
|
|
2404
2394
|
};
|
|
2405
2395
|
DropDownTree.prototype.beforeCheck = function (args) {
|
|
2406
2396
|
if (args.isInteracted) {
|
|
@@ -2694,15 +2684,13 @@ var DropDownTree = /** @class */ (function (_super) {
|
|
|
2694
2684
|
}
|
|
2695
2685
|
}
|
|
2696
2686
|
};
|
|
2697
|
-
DropDownTree.prototype.getFilteredTreeData = function () {
|
|
2698
|
-
return this.treeData;
|
|
2699
|
-
};
|
|
2700
2687
|
DropDownTree.prototype.getChildren = function (parentId, result) {
|
|
2701
2688
|
var _this = this;
|
|
2702
|
-
|
|
2703
|
-
|
|
2704
|
-
|
|
2705
|
-
|
|
2689
|
+
this.treeData.forEach(function (item) {
|
|
2690
|
+
var itemId = !isNOU(item) ? getValue(_this.fields.value, item) : null;
|
|
2691
|
+
var itemPid = !isNOU(item) ? getValue(_this.fields.parentValue, item) : null;
|
|
2692
|
+
if (!isNOU(itemId) && !isNOU(itemPid) && itemPid.toString() === parentId.toString()) {
|
|
2693
|
+
var childId = itemId.toString();
|
|
2706
2694
|
if (result.indexOf(childId) === -1) {
|
|
2707
2695
|
result.push(childId);
|
|
2708
2696
|
_this.getChildren(childId, result);
|
|
@@ -2711,41 +2699,17 @@ var DropDownTree = /** @class */ (function (_super) {
|
|
|
2711
2699
|
});
|
|
2712
2700
|
};
|
|
2713
2701
|
DropDownTree.prototype.getDirectChildren = function (parentId) {
|
|
2714
|
-
|
|
2702
|
+
var _this = this;
|
|
2703
|
+
return this.treeData
|
|
2715
2704
|
.filter(function (childNode) {
|
|
2716
|
-
|
|
2705
|
+
var childId = !isNOU(childNode) ? getValue(_this.fields.value, childNode) : null;
|
|
2706
|
+
var childPid = !isNOU(childNode) ? getValue(_this.fields.parentValue, childNode) : null;
|
|
2707
|
+
return !isNOU(childId) && !isNOU(childPid) && childPid.toString() === parentId;
|
|
2717
2708
|
})
|
|
2718
|
-
.map(function (childNode) { return childNode.
|
|
2719
|
-
};
|
|
2720
|
-
DropDownTree.prototype.restoreRootParentValues = function () {
|
|
2721
|
-
var _this = this;
|
|
2722
|
-
var treeData = this.getFilteredTreeData();
|
|
2723
|
-
treeData.forEach(function (node) {
|
|
2724
|
-
if (isNOU(node) || isNOU(node.id)) {
|
|
2725
|
-
return;
|
|
2726
|
-
}
|
|
2727
|
-
if (isNOU(node.pid)) {
|
|
2728
|
-
var rootId = node.id.toString();
|
|
2729
|
-
var currentValues_1 = _this.value.map(function (item) {
|
|
2730
|
-
return item.toString();
|
|
2731
|
-
});
|
|
2732
|
-
if (currentValues_1.indexOf(rootId) === -1) {
|
|
2733
|
-
var childValues = [];
|
|
2734
|
-
_this.getChildren(rootId, childValues);
|
|
2735
|
-
var hasSelectedChild = childValues.some(function (childId) { return currentValues_1.indexOf(childId) !== -1; });
|
|
2736
|
-
if (hasSelectedChild) {
|
|
2737
|
-
_this.value.push(rootId);
|
|
2738
|
-
}
|
|
2739
|
-
}
|
|
2740
|
-
}
|
|
2741
|
-
});
|
|
2709
|
+
.map(function (childNode) { return getValue(_this.fields.value, childNode).toString(); });
|
|
2742
2710
|
};
|
|
2743
2711
|
DropDownTree.prototype.updateFilteredAutoCheckValues = function () {
|
|
2744
2712
|
var _this = this;
|
|
2745
|
-
var treeData = this.getFilteredTreeData();
|
|
2746
|
-
if (!this.isNodeChecked && Array.isArray(this.value) && this.value.length > 0 && this.showCheckBox) {
|
|
2747
|
-
this.restoreRootParentValues();
|
|
2748
|
-
}
|
|
2749
2713
|
var currentValues = Array.isArray(this.value) ? this.value.map(function (item) { return item.toString(); }) : [];
|
|
2750
2714
|
var removeParent = function (parentId) {
|
|
2751
2715
|
_this.value = _this.value.filter(function (value) { return value.toString() !== parentId; });
|
|
@@ -2756,12 +2720,14 @@ var DropDownTree = /** @class */ (function (_super) {
|
|
|
2756
2720
|
_this.value.push(value);
|
|
2757
2721
|
}
|
|
2758
2722
|
});
|
|
2759
|
-
treeData.forEach(function (node) {
|
|
2760
|
-
|
|
2723
|
+
this.treeData.forEach(function (node) {
|
|
2724
|
+
var nodeId = isNOU(node) ? null : getValue(_this.fields.value, node);
|
|
2725
|
+
var nodeHasChild = !isNOU(node) && !!_this.fields.hasChildren && getValue(_this.fields.hasChildren, node) === true;
|
|
2726
|
+
if (isNOU(nodeId)) {
|
|
2761
2727
|
return;
|
|
2762
2728
|
}
|
|
2763
|
-
var parentId =
|
|
2764
|
-
if (
|
|
2729
|
+
var parentId = nodeId.toString();
|
|
2730
|
+
if (nodeHasChild && _this.value.indexOf(parentId) !== -1) {
|
|
2765
2731
|
var childValues = [];
|
|
2766
2732
|
_this.getChildren(parentId, childValues);
|
|
2767
2733
|
if (_this.value.indexOf(parentId) === -1) {
|
|
@@ -2775,14 +2741,16 @@ var DropDownTree = /** @class */ (function (_super) {
|
|
|
2775
2741
|
}
|
|
2776
2742
|
currentValues = _this.value.map(function (item) { return item.toString(); });
|
|
2777
2743
|
});
|
|
2778
|
-
treeData.forEach(function (node) {
|
|
2779
|
-
|
|
2744
|
+
this.treeData.forEach(function (node) {
|
|
2745
|
+
var nodeId = isNOU(node) ? null : getValue(_this.fields.value, node);
|
|
2746
|
+
var nodeHasChild = !isNOU(node) && !!_this.fields.hasChildren && getValue(_this.fields.hasChildren, node) === true;
|
|
2747
|
+
if (isNOU(nodeId)) {
|
|
2780
2748
|
return;
|
|
2781
2749
|
}
|
|
2782
|
-
if (!
|
|
2750
|
+
if (!nodeHasChild) {
|
|
2783
2751
|
return;
|
|
2784
2752
|
}
|
|
2785
|
-
var parentId =
|
|
2753
|
+
var parentId = nodeId.toString();
|
|
2786
2754
|
var directChildren = _this.getDirectChildren(parentId);
|
|
2787
2755
|
if (!directChildren.length) {
|
|
2788
2756
|
return;
|
|
@@ -2816,14 +2784,19 @@ var DropDownTree = /** @class */ (function (_super) {
|
|
|
2816
2784
|
return;
|
|
2817
2785
|
}
|
|
2818
2786
|
var removeValues = [];
|
|
2819
|
-
treeData.forEach(function (node) {
|
|
2820
|
-
|
|
2787
|
+
this.treeData.forEach(function (node) {
|
|
2788
|
+
var nodeId = isNOU(node) ? null : getValue(_this.fields.value, node);
|
|
2789
|
+
var nodeHasChild = !isNOU(node) && !!_this.fields.hasChildren && getValue(_this.fields.hasChildren, node) === true;
|
|
2790
|
+
if (isNOU(nodeId)) {
|
|
2791
|
+
return;
|
|
2792
|
+
}
|
|
2793
|
+
if (!nodeHasChild) {
|
|
2821
2794
|
return;
|
|
2822
2795
|
}
|
|
2823
|
-
|
|
2796
|
+
var parentId = nodeId.toString();
|
|
2797
|
+
if (parentId !== _this.uncheckedNodeId) {
|
|
2824
2798
|
return;
|
|
2825
2799
|
}
|
|
2826
|
-
var parentId = node.id.toString();
|
|
2827
2800
|
if (currentValues.indexOf(parentId) === -1) {
|
|
2828
2801
|
var childValues = [];
|
|
2829
2802
|
_this.getChildren(parentId, childValues);
|
|
@@ -2839,18 +2812,20 @@ var DropDownTree = /** @class */ (function (_super) {
|
|
|
2839
2812
|
var stabilized = false;
|
|
2840
2813
|
var valueBeforeReconciliation = this.value.slice();
|
|
2841
2814
|
var iterationCount = 0;
|
|
2842
|
-
var maxIterations = treeData.length + 1;
|
|
2815
|
+
var maxIterations = this.treeData.length + 1;
|
|
2843
2816
|
while (!stabilized && iterationCount < maxIterations) {
|
|
2844
2817
|
stabilized = true;
|
|
2845
2818
|
iterationCount++;
|
|
2846
|
-
treeData.forEach(function (node) {
|
|
2847
|
-
|
|
2819
|
+
this.treeData.forEach(function (node) {
|
|
2820
|
+
var nodeId = isNOU(node) ? null : getValue(_this.fields.value, node);
|
|
2821
|
+
var nodeHasChild = !isNOU(node) && !!_this.fields.hasChildren && getValue(_this.fields.hasChildren, node) === true;
|
|
2822
|
+
if (isNOU(nodeId)) {
|
|
2848
2823
|
return;
|
|
2849
2824
|
}
|
|
2850
|
-
if (!
|
|
2825
|
+
if (!nodeHasChild) {
|
|
2851
2826
|
return;
|
|
2852
2827
|
}
|
|
2853
|
-
var parentId =
|
|
2828
|
+
var parentId = nodeId.toString();
|
|
2854
2829
|
var directChildren = _this.getDirectChildren(parentId);
|
|
2855
2830
|
if (!directChildren.length) {
|
|
2856
2831
|
return;
|
package/src/mention/mention.js
CHANGED
|
@@ -456,7 +456,7 @@ var Mention = /** @class */ (function (_super) {
|
|
|
456
456
|
? lastWordRange.substring(lastWordRange.lastIndexOf(this.mentionChar) + 1).trim()
|
|
457
457
|
: lastWordRange.replace(this.mentionChar, '');
|
|
458
458
|
}
|
|
459
|
-
if (this.queryString !== '' && e.keyCode === 8 && lastWordRange.includes(this.mentionChar) && !this.isPopupOpen &&
|
|
459
|
+
if (this.queryString !== '' && e.keyCode === 8 && lastWordRange.includes(this.mentionChar) && !this.isPopupOpen && !isNullOrUndefined(this.displayTemplate) &&
|
|
460
460
|
((typeof this.displayTemplate === 'function' ? this.displayTemplate() : this.displayTemplate)).includes(this.mentionChar)) {
|
|
461
461
|
this.queryString = '';
|
|
462
462
|
}
|
|
@@ -837,6 +837,7 @@ export declare class MultiSelect extends DropDownBase implements IInput {
|
|
|
837
837
|
protected preRender(): void;
|
|
838
838
|
protected getLocaleName(): string;
|
|
839
839
|
private initializeData;
|
|
840
|
+
private sanitizeData;
|
|
840
841
|
private updateData;
|
|
841
842
|
private initialTextUpdate;
|
|
842
843
|
protected renderList(isEmptyData?: boolean): void;
|
|
@@ -243,6 +243,7 @@ var MultiSelect = /** @class */ (function (_super) {
|
|
|
243
243
|
};
|
|
244
244
|
MultiSelect.prototype.onPopupShown = function (e) {
|
|
245
245
|
var _this = this;
|
|
246
|
+
this.sanitizeData();
|
|
246
247
|
if (Browser.isDevice && (this.mode === 'CheckBox' && this.allowFiltering)) {
|
|
247
248
|
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
248
249
|
var proxy_1 = this;
|
|
@@ -1870,7 +1871,10 @@ var MultiSelect = /** @class */ (function (_super) {
|
|
|
1870
1871
|
}
|
|
1871
1872
|
}
|
|
1872
1873
|
this.UpdateSkeleton();
|
|
1873
|
-
var
|
|
1874
|
+
var hasOnlyVirtualItems = this.ulElement && this.ulElement.querySelector('li.e-virtual-list') &&
|
|
1875
|
+
this.ulElement.querySelectorAll('li:not(.e-virtual-list)').length === 0;
|
|
1876
|
+
var targetElement = hasOnlyVirtualItems ? this.list : this.ulElement;
|
|
1877
|
+
var scrollEle = targetElement.querySelectorAll('li.' + dropDownBaseClasses.li
|
|
1874
1878
|
+ ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)');
|
|
1875
1879
|
if (scrollEle.length > 0) {
|
|
1876
1880
|
var element = scrollEle[(isHome) ? 0 : (scrollEle.length - 1)];
|
|
@@ -3766,6 +3770,8 @@ var MultiSelect = /** @class */ (function (_super) {
|
|
|
3766
3770
|
};
|
|
3767
3771
|
MultiSelect.prototype.windowResize = function () {
|
|
3768
3772
|
this.refreshPopup();
|
|
3773
|
+
this.calculateWidth();
|
|
3774
|
+
this.updateFloatLabelOverflowWidth();
|
|
3769
3775
|
if ((!this.inputFocus || this.mode === 'CheckBox') && this.viewWrapper && this.viewWrapper.parentElement) {
|
|
3770
3776
|
this.updateDelimView();
|
|
3771
3777
|
}
|
|
@@ -3995,6 +4001,7 @@ var MultiSelect = /** @class */ (function (_super) {
|
|
|
3995
4001
|
}
|
|
3996
4002
|
this.preventSetCurrentData = false;
|
|
3997
4003
|
this.initializeData();
|
|
4004
|
+
this.sanitizeData();
|
|
3998
4005
|
this.updateDataAttribute(this.htmlAttributes);
|
|
3999
4006
|
_super.prototype.preRender.call(this);
|
|
4000
4007
|
};
|
|
@@ -4025,6 +4032,56 @@ var MultiSelect = /** @class */ (function (_super) {
|
|
|
4025
4032
|
endIndex: this.itemCount
|
|
4026
4033
|
};
|
|
4027
4034
|
};
|
|
4035
|
+
MultiSelect.prototype.sanitizeData = function () {
|
|
4036
|
+
if (this.enableVirtualization && this.mode === 'CheckBox') {
|
|
4037
|
+
if (this.dataSource && Array.isArray(this.dataSource) && !(this.dataSource instanceof DataManager)) {
|
|
4038
|
+
var cleanedDataSource = [];
|
|
4039
|
+
for (var i = 0; i < this.dataSource.length; i++) {
|
|
4040
|
+
var item = this.dataSource[i];
|
|
4041
|
+
if (item !== null && item !== undefined && item !== '') {
|
|
4042
|
+
if (typeof item === 'object') {
|
|
4043
|
+
var itemValue = getValue((this.fields.value ? this.fields.value : 'value'), item);
|
|
4044
|
+
if (this.fields.value !== null) {
|
|
4045
|
+
if (itemValue !== null && itemValue !== undefined && itemValue !== '') {
|
|
4046
|
+
cleanedDataSource.push(item);
|
|
4047
|
+
}
|
|
4048
|
+
}
|
|
4049
|
+
else {
|
|
4050
|
+
cleanedDataSource.push(item);
|
|
4051
|
+
}
|
|
4052
|
+
}
|
|
4053
|
+
else if (typeof item === 'string') {
|
|
4054
|
+
if (item !== null && item !== undefined && item.trim() !== '') {
|
|
4055
|
+
cleanedDataSource.push(item);
|
|
4056
|
+
}
|
|
4057
|
+
}
|
|
4058
|
+
else {
|
|
4059
|
+
cleanedDataSource.push(item);
|
|
4060
|
+
}
|
|
4061
|
+
}
|
|
4062
|
+
}
|
|
4063
|
+
if (cleanedDataSource.length !== this.dataSource.length) {
|
|
4064
|
+
this.setProperties({ dataSource: cleanedDataSource }, true);
|
|
4065
|
+
}
|
|
4066
|
+
}
|
|
4067
|
+
if (this.value && Array.isArray(this.value) && this.value.length > 0) {
|
|
4068
|
+
var cleanedValue = [];
|
|
4069
|
+
for (var i = 0; i < this.value.length; i++) {
|
|
4070
|
+
var val = this.value[i];
|
|
4071
|
+
if (val !== null && val !== undefined && val !== '') {
|
|
4072
|
+
cleanedValue.push(val);
|
|
4073
|
+
}
|
|
4074
|
+
}
|
|
4075
|
+
if (cleanedValue.length !== this.value.length) {
|
|
4076
|
+
this.setProperties({ value: cleanedValue }, true);
|
|
4077
|
+
}
|
|
4078
|
+
}
|
|
4079
|
+
return true;
|
|
4080
|
+
}
|
|
4081
|
+
else {
|
|
4082
|
+
return false;
|
|
4083
|
+
}
|
|
4084
|
+
};
|
|
4028
4085
|
MultiSelect.prototype.updateData = function (delimiterChar, e, isInitialVirtualData) {
|
|
4029
4086
|
var data = '';
|
|
4030
4087
|
var delim = this.mode === 'Delimiter' || this.mode === 'CheckBox';
|
|
@@ -4175,6 +4232,7 @@ var MultiSelect = /** @class */ (function (_super) {
|
|
|
4175
4232
|
|| this.list.querySelector('.e-ul') && this.list.querySelector('.e-ul').childElementCount === 0)) {
|
|
4176
4233
|
isEmptyData = true;
|
|
4177
4234
|
}
|
|
4235
|
+
this.sanitizeData();
|
|
4178
4236
|
_super.prototype.render.call(this, null, isEmptyData);
|
|
4179
4237
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
4180
4238
|
this.totalItemCount = this.dataSource && this.dataSource.length ? this.dataSource.length : 0;
|
|
@@ -5913,6 +5971,7 @@ var MultiSelect = /** @class */ (function (_super) {
|
|
|
5913
5971
|
switch (prop) {
|
|
5914
5972
|
case 'query':
|
|
5915
5973
|
case 'dataSource':
|
|
5974
|
+
this.sanitizeData();
|
|
5916
5975
|
if (this.mode === 'CheckBox' && this.showSelectAll) {
|
|
5917
5976
|
if (!isNullOrUndefined(this.popupObj)) {
|
|
5918
5977
|
this.popupObj.destroy();
|
|
@@ -5935,6 +5994,7 @@ var MultiSelect = /** @class */ (function (_super) {
|
|
|
5935
5994
|
this.updateVal(this.value, this.value, 'text');
|
|
5936
5995
|
break;
|
|
5937
5996
|
case 'value':
|
|
5997
|
+
this.sanitizeData();
|
|
5938
5998
|
if (this.fields.disabled) {
|
|
5939
5999
|
this.removeDisabledItemsValue(this.value);
|
|
5940
6000
|
}
|
|
@@ -6371,6 +6431,8 @@ var MultiSelect = /** @class */ (function (_super) {
|
|
|
6371
6431
|
}
|
|
6372
6432
|
this.firstItem = this.dataSource && this.dataSource.length > 0 ? this.dataSource[0] : null;
|
|
6373
6433
|
var args = { cancel: false };
|
|
6434
|
+
var oldValue = extend([], this.value, [], true);
|
|
6435
|
+
var oldData = extend([], this.dataSource, [], true);
|
|
6374
6436
|
this.trigger('beforeOpen', args, function (args) {
|
|
6375
6437
|
if (!args.cancel) {
|
|
6376
6438
|
if (!_this.ulElement) {
|
|
@@ -6382,6 +6444,50 @@ var MultiSelect = /** @class */ (function (_super) {
|
|
|
6382
6444
|
if (_this.inputElement && _this.mode !== 'CheckBox') {
|
|
6383
6445
|
_this.focusIn();
|
|
6384
6446
|
}
|
|
6447
|
+
if (_this.enableVirtualization && _this.mode === 'CheckBox') {
|
|
6448
|
+
if (JSON.stringify(oldData) !== JSON.stringify(_this.dataSource) && _this.sanitizeData() && _this.showSelectAll) {
|
|
6449
|
+
_this.renderPopup();
|
|
6450
|
+
}
|
|
6451
|
+
if (!isNullOrUndefined(oldValue) && !isNullOrUndefined(_this.value) &&
|
|
6452
|
+
JSON.stringify(oldValue) !== JSON.stringify(_this.value) && _this.sanitizeData()) {
|
|
6453
|
+
if (_this.fields.disabled) {
|
|
6454
|
+
_this.removeDisabledItemsValue(_this.value);
|
|
6455
|
+
}
|
|
6456
|
+
if (!_this.validateValues(_this.value, oldValue)) {
|
|
6457
|
+
return;
|
|
6458
|
+
}
|
|
6459
|
+
if (_this.isVue && !_this.changeOnBlur && !_this.validateValues(_this.value, oldValue)) {
|
|
6460
|
+
return;
|
|
6461
|
+
}
|
|
6462
|
+
_this.updateVal(_this.value, oldValue, 'value', _this.enableVirtualization);
|
|
6463
|
+
_this.addValidInputClass();
|
|
6464
|
+
if (_this.showSelectAll) {
|
|
6465
|
+
_this.renderPopup();
|
|
6466
|
+
var totalCount = _this.dataSource instanceof DataManager ? 0 :
|
|
6467
|
+
_this.dataSource.length;
|
|
6468
|
+
var selectedCount = _this.value ? _this.value.length : 0;
|
|
6469
|
+
if (selectedCount === totalCount) {
|
|
6470
|
+
var frame = null;
|
|
6471
|
+
if (_this.popupObj) {
|
|
6472
|
+
frame = _this.popupObj.element.querySelector('.e-selectall-parent .e-frame');
|
|
6473
|
+
}
|
|
6474
|
+
if (frame) {
|
|
6475
|
+
frame.classList.add('e-check');
|
|
6476
|
+
frame.classList.remove('e-uncheck');
|
|
6477
|
+
frame.classList.remove('e-stop');
|
|
6478
|
+
}
|
|
6479
|
+
}
|
|
6480
|
+
}
|
|
6481
|
+
if (!_this.closePopupOnSelect && _this.isPopupOpen()) {
|
|
6482
|
+
_this.refreshPopup();
|
|
6483
|
+
}
|
|
6484
|
+
if (_this.isPopupOpen() && _this.list && _this.list.querySelector('.e-active.e-disable')) {
|
|
6485
|
+
var activeItems = _this.list.querySelectorAll('li.' + dropDownBaseClasses.li + '.e-active' + '.e-disable');
|
|
6486
|
+
removeClass(activeItems, 'e-disable');
|
|
6487
|
+
}
|
|
6488
|
+
_this.preventChange = _this.isAngular && _this.preventChange ? !_this.preventChange : _this.preventChange;
|
|
6489
|
+
}
|
|
6490
|
+
}
|
|
6385
6491
|
return;
|
|
6386
6492
|
}
|
|
6387
6493
|
if (_this.mode === 'CheckBox' && Browser.isDevice && _this.allowFiltering && _this.isDeviceFullScreen) {
|
|
@@ -6538,6 +6644,7 @@ var MultiSelect = /** @class */ (function (_super) {
|
|
|
6538
6644
|
// eslint-disable-next-line
|
|
6539
6645
|
this.value = this.value.slice();
|
|
6540
6646
|
}
|
|
6647
|
+
this.sanitizeData();
|
|
6541
6648
|
this.setDynValue = this.initStatus = false;
|
|
6542
6649
|
this.isSelectAll = false;
|
|
6543
6650
|
this.selectAllEventEle = [];
|