@syncfusion/ej2-dropdowns 29.1.41 → 29.2.5
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 +275 -128
- package/dist/es6/ej2-dropdowns.es2015.js.map +1 -1
- package/dist/es6/ej2-dropdowns.es5.js +283 -132
- 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 +12 -12
- package/src/auto-complete/auto-complete.d.ts +1 -0
- package/src/auto-complete/auto-complete.js +9 -1
- package/src/combo-box/combo-box-model.d.ts +1 -9
- package/src/combo-box/combo-box.d.ts +0 -7
- package/src/combo-box/combo-box.js +22 -17
- package/src/common/virtual-scroll.js +8 -3
- package/src/drop-down-base/drop-down-base.d.ts +5 -1
- package/src/drop-down-base/drop-down-base.js +71 -10
- package/src/drop-down-list/drop-down-list-model.d.ts +7 -0
- package/src/drop-down-list/drop-down-list.d.ts +7 -0
- package/src/drop-down-list/drop-down-list.js +42 -24
- package/src/drop-down-tree/drop-down-tree.d.ts +1 -0
- package/src/drop-down-tree/drop-down-tree.js +14 -11
- package/src/mention/mention-model.d.ts +7 -0
- package/src/mention/mention.d.ts +8 -0
- package/src/mention/mention.js +29 -16
- package/src/multi-select/multi-select-model.d.ts +7 -0
- package/src/multi-select/multi-select.d.ts +9 -0
- package/src/multi-select/multi-select.js +88 -50
- package/styles/bds-lite.css +1 -1
- package/styles/bds.css +1 -1
- package/styles/multi-select/_bds-definition.scss +1 -0
- package/styles/multi-select/_layout.scss +6 -1
- package/styles/multi-select/_tailwind-definition.scss +1 -0
- package/styles/multi-select/bds.css +1 -1
- package/styles/multi-select/tailwind-dark.css +1 -1
- package/styles/multi-select/tailwind.css +1 -1
- package/styles/tailwind-dark-lite.css +1 -1
- package/styles/tailwind-dark.css +1 -1
- package/styles/tailwind-lite.css +1 -1
- package/styles/tailwind.css +1 -1
|
@@ -647,6 +647,9 @@ var DropDownTree = /** @class */ (function (_super) {
|
|
|
647
647
|
};
|
|
648
648
|
/* To wire events for the dropdown tree */
|
|
649
649
|
DropDownTree.prototype.wireEvents = function () {
|
|
650
|
+
if (Browser.isIos) {
|
|
651
|
+
EventHandler.add(this.inputWrapper, 'touchstart', this.handleIosTouch, this);
|
|
652
|
+
}
|
|
650
653
|
EventHandler.add(this.inputWrapper, 'mouseup', this.dropDownClick, this);
|
|
651
654
|
EventHandler.add(this.inputWrapper, 'focus', this.focusIn, this);
|
|
652
655
|
EventHandler.add(this.inputWrapper, 'blur', this.focusOut, this);
|
|
@@ -680,6 +683,9 @@ var DropDownTree = /** @class */ (function (_super) {
|
|
|
680
683
|
};
|
|
681
684
|
/* To unwire events for the dropdown tree */
|
|
682
685
|
DropDownTree.prototype.unWireEvents = function () {
|
|
686
|
+
if (Browser.isIos) {
|
|
687
|
+
EventHandler.remove(this.inputWrapper, 'touchstart', this.handleIosTouch);
|
|
688
|
+
}
|
|
683
689
|
EventHandler.remove(this.inputWrapper, 'mouseup', this.dropDownClick);
|
|
684
690
|
EventHandler.remove(this.inputWrapper, 'focus', this.focusIn);
|
|
685
691
|
EventHandler.remove(this.inputWrapper, 'blur', this.focusOut);
|
|
@@ -697,6 +703,11 @@ var DropDownTree = /** @class */ (function (_super) {
|
|
|
697
703
|
}
|
|
698
704
|
document.removeEventListener('mousedown', this.documentClickContext);
|
|
699
705
|
};
|
|
706
|
+
/* Handles touch events specifically for iOS devices */
|
|
707
|
+
DropDownTree.prototype.handleIosTouch = function (e) {
|
|
708
|
+
e.preventDefault();
|
|
709
|
+
this.dropDownClick(e);
|
|
710
|
+
};
|
|
700
711
|
/* Trigger when the dropdown is clicked */
|
|
701
712
|
DropDownTree.prototype.dropDownClick = function (e) {
|
|
702
713
|
if (!this.enabled || this.readonly) {
|
|
@@ -1638,7 +1649,8 @@ var DropDownTree = /** @class */ (function (_super) {
|
|
|
1638
1649
|
loadOnDemand: this.treeSettings.loadOnDemand,
|
|
1639
1650
|
nodeSelecting: this.onBeforeSelect.bind(this),
|
|
1640
1651
|
nodeTemplate: this.itemTemplate,
|
|
1641
|
-
checkDisabledChildren: this.treeSettings.checkDisabledChildren
|
|
1652
|
+
checkDisabledChildren: this.treeSettings.checkDisabledChildren,
|
|
1653
|
+
checkOnClick: true
|
|
1642
1654
|
});
|
|
1643
1655
|
this.treeObj.root = this.root ? this.root : this;
|
|
1644
1656
|
this.treeObj.appendTo(this.tree);
|
|
@@ -1719,7 +1731,7 @@ var DropDownTree = /** @class */ (function (_super) {
|
|
|
1719
1731
|
_this.popupObj.refreshPosition();
|
|
1720
1732
|
if (!(_this.showSelectAll || _this.allowFiltering) && (!_this.popupDiv.classList.contains(NODATA)
|
|
1721
1733
|
&& _this.treeItems.length > 0)) {
|
|
1722
|
-
var focusedElement = _this.value != null && _this.text != null ? _this.treeObj.element.querySelector('[data-uid="' + _this.value[
|
|
1734
|
+
var focusedElement = _this.value != null && _this.text != null ? _this.treeObj.element.querySelector('[data-uid="' + _this.value[_this.value.length - 1] + '"]') : null;
|
|
1723
1735
|
if (focusedElement) {
|
|
1724
1736
|
_this.treeObj.element.querySelector('li').setAttribute('tabindex', '-1');
|
|
1725
1737
|
focusedElement.setAttribute('tabindex', '0');
|
|
@@ -2166,15 +2178,6 @@ var DropDownTree = /** @class */ (function (_super) {
|
|
|
2166
2178
|
}
|
|
2167
2179
|
var target = args.event.target;
|
|
2168
2180
|
if ((target.classList.contains('e-fullrow') || target.classList.contains('e-list-text')) && this.showCheckBox) {
|
|
2169
|
-
this.isClicked = true;
|
|
2170
|
-
var getNodeDetails = this.treeObj.getNode(args.node);
|
|
2171
|
-
if (getNodeDetails.isChecked === 'true') {
|
|
2172
|
-
this.treeObj.uncheckAll([args.node]);
|
|
2173
|
-
}
|
|
2174
|
-
else {
|
|
2175
|
-
this.treeObj.checkAll([args.node]);
|
|
2176
|
-
}
|
|
2177
|
-
this.isClicked = false;
|
|
2178
2181
|
this.setMultiSelect();
|
|
2179
2182
|
this.ensurePlaceHolder();
|
|
2180
2183
|
}
|
|
@@ -116,6 +116,13 @@ export interface MentionModel {
|
|
|
116
116
|
*/
|
|
117
117
|
popupHeight?: string | number;
|
|
118
118
|
|
|
119
|
+
/**
|
|
120
|
+
* Specifies the delay time in milliseconds for filtering operations.
|
|
121
|
+
*
|
|
122
|
+
* @default 300
|
|
123
|
+
*/
|
|
124
|
+
debounceDelay?: number;
|
|
125
|
+
|
|
119
126
|
/**
|
|
120
127
|
* Specifies the template for the selected value from the suggestion list.
|
|
121
128
|
*
|
package/src/mention/mention.d.ts
CHANGED
|
@@ -59,6 +59,7 @@ export declare class Mention extends DropDownBase {
|
|
|
59
59
|
private isUpDownKey;
|
|
60
60
|
private isRTE;
|
|
61
61
|
private keyEventName;
|
|
62
|
+
protected debounceTimer: ReturnType<typeof setTimeout> | null;
|
|
62
63
|
/**
|
|
63
64
|
* Defines class/multiple classes separated by a space for the mention component.
|
|
64
65
|
*
|
|
@@ -155,6 +156,12 @@ export declare class Mention extends DropDownBase {
|
|
|
155
156
|
* @aspType string
|
|
156
157
|
*/
|
|
157
158
|
popupHeight: string | number;
|
|
159
|
+
/**
|
|
160
|
+
* Specifies the delay time in milliseconds for filtering operations.
|
|
161
|
+
*
|
|
162
|
+
* @default 300
|
|
163
|
+
*/
|
|
164
|
+
debounceDelay: number;
|
|
158
165
|
/**
|
|
159
166
|
* Specifies the template for the selected value from the suggestion list.
|
|
160
167
|
*
|
|
@@ -373,6 +380,7 @@ export declare class Mention extends DropDownBase {
|
|
|
373
380
|
private onKeyUp;
|
|
374
381
|
private isMatchedText;
|
|
375
382
|
private getCurrentRange;
|
|
383
|
+
protected performFiltering(e: KeyboardEventArgs | MouseEvent): void;
|
|
376
384
|
private searchLists;
|
|
377
385
|
private filterAction;
|
|
378
386
|
protected onActionComplete(ulElement: HTMLElement, list: {
|
package/src/mention/mention.js
CHANGED
|
@@ -38,7 +38,9 @@ var Mention = /** @class */ (function (_super) {
|
|
|
38
38
|
* @private
|
|
39
39
|
*/
|
|
40
40
|
function Mention(options, element) {
|
|
41
|
-
|
|
41
|
+
var _this = _super.call(this, options, element) || this;
|
|
42
|
+
_this.debounceTimer = null;
|
|
43
|
+
return _this;
|
|
42
44
|
}
|
|
43
45
|
/**
|
|
44
46
|
* When property value changes happened, then onPropertyChanged method will execute the respective changes in this component.
|
|
@@ -473,22 +475,8 @@ var Mention = /** @class */ (function (_super) {
|
|
|
473
475
|
this.range = this.inputElement.ownerDocument.getSelection().getRangeAt(0);
|
|
474
476
|
return this.range;
|
|
475
477
|
};
|
|
476
|
-
Mention.prototype.
|
|
478
|
+
Mention.prototype.performFiltering = function (e) {
|
|
477
479
|
var _this = this;
|
|
478
|
-
this.isDataFetched = false;
|
|
479
|
-
if (isNullOrUndefined(this.list)) {
|
|
480
|
-
_super.prototype.render.call(this);
|
|
481
|
-
this.unWireListEvents();
|
|
482
|
-
this.wireListEvents();
|
|
483
|
-
}
|
|
484
|
-
if (e.type !== 'mousedown' && (e.keyCode === 40 || e.keyCode === 38)) {
|
|
485
|
-
this.queryString = this.queryString === '' ? null : this.queryString;
|
|
486
|
-
this.beforePopupOpen = true;
|
|
487
|
-
this.resetList(this.dataSource, this.fields);
|
|
488
|
-
return;
|
|
489
|
-
}
|
|
490
|
-
this.isSelected = false;
|
|
491
|
-
this.activeIndex = null;
|
|
492
480
|
var eventArgs = {
|
|
493
481
|
preventDefaultAction: false,
|
|
494
482
|
text: this.queryString,
|
|
@@ -507,6 +495,28 @@ var Mention = /** @class */ (function (_super) {
|
|
|
507
495
|
}
|
|
508
496
|
});
|
|
509
497
|
};
|
|
498
|
+
Mention.prototype.searchLists = function (e) {
|
|
499
|
+
this.isDataFetched = false;
|
|
500
|
+
if (isNullOrUndefined(this.list)) {
|
|
501
|
+
_super.prototype.render.call(this);
|
|
502
|
+
this.unWireListEvents();
|
|
503
|
+
this.wireListEvents();
|
|
504
|
+
}
|
|
505
|
+
if (e.type !== 'mousedown' && (e.keyCode === 40 || e.keyCode === 38)) {
|
|
506
|
+
this.queryString = this.queryString === '' ? null : this.queryString;
|
|
507
|
+
this.beforePopupOpen = true;
|
|
508
|
+
this.resetList(this.dataSource, this.fields);
|
|
509
|
+
return;
|
|
510
|
+
}
|
|
511
|
+
this.isSelected = false;
|
|
512
|
+
this.activeIndex = null;
|
|
513
|
+
if (this.queryString !== '' && this.debounceDelay > 0) {
|
|
514
|
+
this.debouncedFiltering(e, this.debounceDelay);
|
|
515
|
+
}
|
|
516
|
+
else {
|
|
517
|
+
this.performFiltering(e);
|
|
518
|
+
}
|
|
519
|
+
};
|
|
510
520
|
Mention.prototype.filterAction = function (dataSource, query, fields) {
|
|
511
521
|
this.beforePopupOpen = true;
|
|
512
522
|
if (this.queryString.length >= this.minLength) {
|
|
@@ -1704,6 +1714,9 @@ var Mention = /** @class */ (function (_super) {
|
|
|
1704
1714
|
__decorate([
|
|
1705
1715
|
Property('300px')
|
|
1706
1716
|
], Mention.prototype, "popupHeight", void 0);
|
|
1717
|
+
__decorate([
|
|
1718
|
+
Property(300)
|
|
1719
|
+
], Mention.prototype, "debounceDelay", void 0);
|
|
1707
1720
|
__decorate([
|
|
1708
1721
|
Property(null)
|
|
1709
1722
|
], Mention.prototype, "displayTemplate", void 0);
|
|
@@ -298,6 +298,13 @@ export interface MultiSelectModel extends DropDownBaseModel{
|
|
|
298
298
|
*/
|
|
299
299
|
allowFiltering?: boolean;
|
|
300
300
|
|
|
301
|
+
/**
|
|
302
|
+
* Specifies the delay time in milliseconds for filtering operations.
|
|
303
|
+
*
|
|
304
|
+
* @default 300
|
|
305
|
+
*/
|
|
306
|
+
debounceDelay?: number;
|
|
307
|
+
|
|
301
308
|
/**
|
|
302
309
|
* Defines whether the popup opens in fullscreen mode on mobile devices when filtering is enabled. When set to false, the popup will display similarly on both mobile and desktop devices.
|
|
303
310
|
*
|
|
@@ -74,6 +74,7 @@ export declare class MultiSelect extends DropDownBase implements IInput {
|
|
|
74
74
|
private isBlurDispatching;
|
|
75
75
|
private isFilterPrevented;
|
|
76
76
|
private isFilteringAction;
|
|
77
|
+
private headerTemplateHeight;
|
|
77
78
|
/**
|
|
78
79
|
* The `fields` property maps the columns of the data table and binds the data to the component.
|
|
79
80
|
* * text - Maps the text column from data table for each list item.
|
|
@@ -341,6 +342,12 @@ export declare class MultiSelect extends DropDownBase implements IInput {
|
|
|
341
342
|
* @default null
|
|
342
343
|
*/
|
|
343
344
|
allowFiltering: boolean;
|
|
345
|
+
/**
|
|
346
|
+
* Specifies the delay time in milliseconds for filtering operations.
|
|
347
|
+
*
|
|
348
|
+
* @default 300
|
|
349
|
+
*/
|
|
350
|
+
debounceDelay: number;
|
|
344
351
|
/**
|
|
345
352
|
* Defines whether the popup opens in fullscreen mode on mobile devices when filtering is enabled. When set to false, the popup will display similarly on both mobile and desktop devices.
|
|
346
353
|
*
|
|
@@ -663,6 +670,7 @@ export declare class MultiSelect extends DropDownBase implements IInput {
|
|
|
663
670
|
private preventSetCurrentData;
|
|
664
671
|
private virtualCustomData;
|
|
665
672
|
private isSelectAllLoop;
|
|
673
|
+
private initialPopupHeight;
|
|
666
674
|
private enableRTL;
|
|
667
675
|
requiredModules(): ModuleDeclaration[];
|
|
668
676
|
private updateHTMLAttribute;
|
|
@@ -807,6 +815,7 @@ export declare class MultiSelect extends DropDownBase implements IInput {
|
|
|
807
815
|
protected wireEvent(): void;
|
|
808
816
|
private onInput;
|
|
809
817
|
private pasteHandler;
|
|
818
|
+
protected performFiltering(e: KeyboardEventArgs | MouseEvent): void;
|
|
810
819
|
protected search(e: KeyboardEventArgs): void;
|
|
811
820
|
protected preRender(): void;
|
|
812
821
|
protected getLocaleName(): string;
|
|
@@ -615,7 +615,7 @@ var MultiSelect = /** @class */ (function (_super) {
|
|
|
615
615
|
valuecheck = this.presentItemValue(this.ulElement);
|
|
616
616
|
}
|
|
617
617
|
if (valuecheck.length > 0 && this.dataSource instanceof DataManager && !isNullOrUndefined(this.value)
|
|
618
|
-
&& this.listData != null) {
|
|
618
|
+
&& this.listData != null && !(valuecheck.length === 1 && valuecheck[0] == null)) {
|
|
619
619
|
this.isaddNonPresentItems = true;
|
|
620
620
|
this.addNonPresentItems(valuecheck, this.ulElement, this.listData);
|
|
621
621
|
this.isaddNonPresentItems = false;
|
|
@@ -1237,13 +1237,18 @@ var MultiSelect = /** @class */ (function (_super) {
|
|
|
1237
1237
|
this.checkAndScrollParent();
|
|
1238
1238
|
};
|
|
1239
1239
|
MultiSelect.prototype.checkAndScrollParent = function () {
|
|
1240
|
-
var
|
|
1241
|
-
|
|
1242
|
-
var
|
|
1243
|
-
var
|
|
1244
|
-
if (!isNaN(
|
|
1245
|
-
|
|
1240
|
+
var scrollElement = this.overAllWrapper ? this.overAllWrapper.parentElement : null;
|
|
1241
|
+
while (scrollElement) {
|
|
1242
|
+
var scrollElementStyle = getComputedStyle(scrollElement);
|
|
1243
|
+
var scrollElmentHeight = parseFloat(scrollElementStyle.maxHeight) || parseFloat(scrollElementStyle.height);
|
|
1244
|
+
if (!isNaN(scrollElmentHeight)) {
|
|
1245
|
+
var overflowY = scrollElementStyle.overflowY;
|
|
1246
|
+
if (overflowY === 'auto' || overflowY === 'scroll') {
|
|
1247
|
+
scrollElement.scrollTop = scrollElement.scrollHeight;
|
|
1248
|
+
return;
|
|
1249
|
+
}
|
|
1246
1250
|
}
|
|
1251
|
+
scrollElement = scrollElement.parentElement;
|
|
1247
1252
|
}
|
|
1248
1253
|
};
|
|
1249
1254
|
MultiSelect.prototype.enable = function (state) {
|
|
@@ -1493,7 +1498,7 @@ var MultiSelect = /** @class */ (function (_super) {
|
|
|
1493
1498
|
MultiSelect.prototype.pageDownSelection = function (steps, isVirtualKeyAction) {
|
|
1494
1499
|
var list = this.getItems();
|
|
1495
1500
|
var collection = this.list.querySelectorAll('li.'
|
|
1496
|
-
+ dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)');
|
|
1501
|
+
+ dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)' + ':not(.e-virtual-list-end)');
|
|
1497
1502
|
var previousItem = steps <= collection.length ? collection[steps - 1] : collection[collection.length - 1];
|
|
1498
1503
|
if (this.fields.disabled && previousItem && !this.enableVirtualization) {
|
|
1499
1504
|
while (previousItem && (previousItem.classList.contains('e-disabled') || previousItem.classList.contains(HIDE_LIST) ||
|
|
@@ -1510,6 +1515,9 @@ var MultiSelect = /** @class */ (function (_super) {
|
|
|
1510
1515
|
if (this.enableVirtualization && isVirtualKeyAction) {
|
|
1511
1516
|
previousItem = steps <= list.length ? this.liCollections[steps] : this.liCollections[list.length - 1];
|
|
1512
1517
|
}
|
|
1518
|
+
if (this.enableVirtualization && previousItem && previousItem.classList.contains('e-virtual-list-end')) {
|
|
1519
|
+
previousItem = collection[collection.length - 1];
|
|
1520
|
+
}
|
|
1513
1521
|
this.isKeyBoardAction = true;
|
|
1514
1522
|
this.addListFocus(previousItem);
|
|
1515
1523
|
this.previousFocusItem = previousItem;
|
|
@@ -1994,9 +2002,10 @@ var MultiSelect = /** @class */ (function (_super) {
|
|
|
1994
2002
|
var selectedListMargin = selectedLI && !isNaN(parseInt(window.getComputedStyle(selectedLI).marginBottom, 10)) ?
|
|
1995
2003
|
parseInt(window.getComputedStyle(selectedLI).marginBottom, 10) : 0;
|
|
1996
2004
|
this.isUpwardScrolling = false;
|
|
1997
|
-
var virtualListCount = this.list.querySelectorAll('.e-virtual-list').length;
|
|
1998
|
-
var
|
|
1999
|
-
|
|
2005
|
+
var virtualListCount = this.list.querySelectorAll('.e-virtual-list:not(.e-virtual-list-end)').length;
|
|
2006
|
+
var liItems = this.list.querySelectorAll('li:not(.e-virtual-list-end)');
|
|
2007
|
+
var lastElementValue = liItems && liItems.length > 0 && liItems[liItems.length - 1] ?
|
|
2008
|
+
liItems[liItems.length - 1].getAttribute('data-value') : null;
|
|
2000
2009
|
var selectedLiOffsetTop = this.virtualListInfo && this.virtualListInfo.startIndex ?
|
|
2001
2010
|
selectedLI.offsetTop + (this.virtualListInfo.startIndex * (selectedLI.offsetHeight + selectedListMargin))
|
|
2002
2011
|
: selectedLI.offsetTop;
|
|
@@ -2052,7 +2061,7 @@ var MultiSelect = /** @class */ (function (_super) {
|
|
|
2052
2061
|
};
|
|
2053
2062
|
MultiSelect.prototype.scrollTop = function (selectedLI, activeIndex, keyCode) {
|
|
2054
2063
|
if (keyCode === void 0) { keyCode = null; }
|
|
2055
|
-
var virtualListCount = this.list.querySelectorAll('.e-virtual-list').length;
|
|
2064
|
+
var virtualListCount = this.list.querySelectorAll('.e-virtual-list:not(.e-virtual-list-end)').length;
|
|
2056
2065
|
var selectedListMargin = selectedLI && !isNaN(parseInt(window.getComputedStyle(selectedLI).marginBottom, 10)) ?
|
|
2057
2066
|
parseInt(window.getComputedStyle(selectedLI).marginBottom, 10) : 0;
|
|
2058
2067
|
var selectedLiOffsetTop = (this.virtualListInfo && this.virtualListInfo.startIndex) ?
|
|
@@ -2281,11 +2290,11 @@ var MultiSelect = /** @class */ (function (_super) {
|
|
|
2281
2290
|
if (this.list) {
|
|
2282
2291
|
var elements = this.list.querySelectorAll('li.'
|
|
2283
2292
|
+ dropDownBaseClasses.li
|
|
2284
|
-
+ ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)');
|
|
2293
|
+
+ ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)' + ':not(.e-virtual-list-end)');
|
|
2285
2294
|
if (this.mode === 'CheckBox' && this.enableGroupCheckBox && !isNullOrUndefined(this.fields.groupBy)) {
|
|
2286
2295
|
elements = this.list.querySelectorAll('li.'
|
|
2287
2296
|
+ dropDownBaseClasses.li + ',li.' + dropDownBaseClasses.group
|
|
2288
|
-
+ ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)');
|
|
2297
|
+
+ ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)' + ':not(.e-virtual-list-end)');
|
|
2289
2298
|
}
|
|
2290
2299
|
var selectedElem = this.list.querySelector('li.' + dropDownBaseClasses.focus);
|
|
2291
2300
|
if (this.enableVirtualization && isVirtualKeyAction && !isNullOrUndefined(this.currentFocuedListElement)) {
|
|
@@ -2984,7 +2993,7 @@ var MultiSelect = /** @class */ (function (_super) {
|
|
|
2984
2993
|
var inputWidth = (this.componentWrapper.offsetWidth) * parseFloat(width) / 100;
|
|
2985
2994
|
width = inputWidth.toString() + 'px';
|
|
2986
2995
|
}
|
|
2987
|
-
return width;
|
|
2996
|
+
return (this.allowResize && this.resizeWidth) ? this.resizeWidth + 'px' : width;
|
|
2988
2997
|
};
|
|
2989
2998
|
MultiSelect.prototype.mouseIn = function () {
|
|
2990
2999
|
if (this.enabled && !this.readonly) {
|
|
@@ -3259,7 +3268,7 @@ var MultiSelect = /** @class */ (function (_super) {
|
|
|
3259
3268
|
MultiSelect.prototype.updateInitialData = function () {
|
|
3260
3269
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
3261
3270
|
var currentData = this.selectData;
|
|
3262
|
-
var ulElement = this.renderItems(currentData, this.fields);
|
|
3271
|
+
var ulElement = this.renderItems(currentData, this.fields, false, this.isClearAllAction);
|
|
3263
3272
|
this.list.scrollTop = 0;
|
|
3264
3273
|
this.virtualListInfo = {
|
|
3265
3274
|
currentPageNumber: null,
|
|
@@ -3480,8 +3489,40 @@ var MultiSelect = /** @class */ (function (_super) {
|
|
|
3480
3489
|
_this.search(event);
|
|
3481
3490
|
});
|
|
3482
3491
|
};
|
|
3483
|
-
MultiSelect.prototype.
|
|
3492
|
+
MultiSelect.prototype.performFiltering = function (e) {
|
|
3484
3493
|
var _this = this;
|
|
3494
|
+
var eventArgs = {
|
|
3495
|
+
preventDefaultAction: false,
|
|
3496
|
+
text: this.targetElement(),
|
|
3497
|
+
updateData: function (dataSource, query, fields) {
|
|
3498
|
+
if (eventArgs.cancel) {
|
|
3499
|
+
return;
|
|
3500
|
+
}
|
|
3501
|
+
_this.isFiltered = true;
|
|
3502
|
+
_this.customFilterQuery = query;
|
|
3503
|
+
_this.remoteFilterAction = true;
|
|
3504
|
+
_this.isCustomFiltering = true;
|
|
3505
|
+
_this.dataUpdater(dataSource, query, fields);
|
|
3506
|
+
},
|
|
3507
|
+
event: e,
|
|
3508
|
+
cancel: false
|
|
3509
|
+
};
|
|
3510
|
+
this.trigger('filtering', eventArgs, function (eventArgs) {
|
|
3511
|
+
_this.isFilterPrevented = eventArgs.cancel;
|
|
3512
|
+
if (!eventArgs.cancel) {
|
|
3513
|
+
if (!_this.isFiltered && !eventArgs.preventDefaultAction) {
|
|
3514
|
+
_this.filterAction = true;
|
|
3515
|
+
_this.isFilteringAction = true;
|
|
3516
|
+
if (_this.dataSource instanceof DataManager && _this.allowCustomValue) {
|
|
3517
|
+
_this.isCustomRendered = false;
|
|
3518
|
+
}
|
|
3519
|
+
_this.dataUpdater(_this.dataSource, null, _this.fields);
|
|
3520
|
+
_this.isFilteringAction = false;
|
|
3521
|
+
}
|
|
3522
|
+
}
|
|
3523
|
+
});
|
|
3524
|
+
};
|
|
3525
|
+
MultiSelect.prototype.search = function (e) {
|
|
3485
3526
|
this.preventSetCurrentData = false;
|
|
3486
3527
|
this.firstItem = this.dataSource && this.dataSource.length > 0 ? this.dataSource[0] : null;
|
|
3487
3528
|
if (!isNullOrUndefined(e)) {
|
|
@@ -3502,36 +3543,12 @@ var MultiSelect = /** @class */ (function (_super) {
|
|
|
3502
3543
|
}
|
|
3503
3544
|
this.checkAndResetCache();
|
|
3504
3545
|
this.isRequesting = false;
|
|
3505
|
-
|
|
3506
|
-
|
|
3507
|
-
|
|
3508
|
-
|
|
3509
|
-
|
|
3510
|
-
|
|
3511
|
-
}
|
|
3512
|
-
_this.isFiltered = true;
|
|
3513
|
-
_this.customFilterQuery = query;
|
|
3514
|
-
_this.remoteFilterAction = true;
|
|
3515
|
-
_this.isCustomFiltering = true;
|
|
3516
|
-
_this.dataUpdater(dataSource, query, fields);
|
|
3517
|
-
},
|
|
3518
|
-
event: e,
|
|
3519
|
-
cancel: false
|
|
3520
|
-
};
|
|
3521
|
-
this.trigger('filtering', eventArgs_1, function (eventArgs) {
|
|
3522
|
-
_this.isFilterPrevented = eventArgs.cancel;
|
|
3523
|
-
if (!eventArgs.cancel) {
|
|
3524
|
-
if (!_this.isFiltered && !eventArgs.preventDefaultAction) {
|
|
3525
|
-
_this.filterAction = true;
|
|
3526
|
-
_this.isFilteringAction = true;
|
|
3527
|
-
if (_this.dataSource instanceof DataManager && _this.allowCustomValue) {
|
|
3528
|
-
_this.isCustomRendered = false;
|
|
3529
|
-
}
|
|
3530
|
-
_this.dataUpdater(_this.dataSource, null, _this.fields);
|
|
3531
|
-
_this.isFilteringAction = false;
|
|
3532
|
-
}
|
|
3533
|
-
}
|
|
3534
|
-
});
|
|
3546
|
+
if (this.targetElement() !== '' && this.debounceDelay > 0) {
|
|
3547
|
+
this.debouncedFiltering(e, this.debounceDelay);
|
|
3548
|
+
}
|
|
3549
|
+
else {
|
|
3550
|
+
this.performFiltering(e);
|
|
3551
|
+
}
|
|
3535
3552
|
}
|
|
3536
3553
|
else if (this.allowCustomValue) {
|
|
3537
3554
|
var query = new Query();
|
|
@@ -4645,7 +4662,7 @@ var MultiSelect = /** @class */ (function (_super) {
|
|
|
4645
4662
|
};
|
|
4646
4663
|
MultiSelect.prototype.checkClearIconWidth = function () {
|
|
4647
4664
|
if (this.showClearButton) {
|
|
4648
|
-
this.clearIconWidth = parseInt(window.getComputedStyle(this.overAllClear).width, 10);
|
|
4665
|
+
this.clearIconWidth = parseInt(window.getComputedStyle(this.overAllClear).width, 10) || this.overAllClear.offsetWidth;
|
|
4649
4666
|
}
|
|
4650
4667
|
};
|
|
4651
4668
|
MultiSelect.prototype.updateRemainWidth = function (viewWrapper, totalWidth) {
|
|
@@ -5564,7 +5581,9 @@ var MultiSelect = /** @class */ (function (_super) {
|
|
|
5564
5581
|
_this.list.parentElement.style.paddingBottom = '';
|
|
5565
5582
|
var overAllHeight = parseInt(_this.popupHeight, 10);
|
|
5566
5583
|
_this.list.style.maxHeight = formatUnit(overAllHeight);
|
|
5567
|
-
_this.
|
|
5584
|
+
if (_this.popupHeight.toString().toLowerCase() !== 'auto' && _this.initialPopupHeight >= (parseInt(_this.popupHeight.toString(), 10) - 2)) {
|
|
5585
|
+
_this.list.parentElement.style.height = formatUnit(_this.popupHeight);
|
|
5586
|
+
}
|
|
5568
5587
|
_this.list.parentElement.style.maxHeight = formatUnit(_this.popupHeight);
|
|
5569
5588
|
}
|
|
5570
5589
|
if (_this.resizer) {
|
|
@@ -5892,7 +5911,8 @@ var MultiSelect = /** @class */ (function (_super) {
|
|
|
5892
5911
|
}
|
|
5893
5912
|
if (this.list && this.list.parentElement) {
|
|
5894
5913
|
this.list.parentElement.classList.add('e-resize');
|
|
5895
|
-
|
|
5914
|
+
this.initialPopupHeight = this.list.parentElement.clientHeight;
|
|
5915
|
+
if (this.popupHeight.toString().toLowerCase() !== 'auto' && this.initialPopupHeight >= (parseInt(this.popupHeight.toString(), 10) - 2)) {
|
|
5896
5916
|
this.list.parentElement.style.height = '100%';
|
|
5897
5917
|
}
|
|
5898
5918
|
this.list.parentElement.style.boxSizing = 'border-box'; // Ensures padding doesn't affect element size
|
|
@@ -5903,6 +5923,18 @@ var MultiSelect = /** @class */ (function (_super) {
|
|
|
5903
5923
|
this.list.parentElement.style.height = this.resizeHeight + 'px';
|
|
5904
5924
|
this.list.parentElement.style.maxHeight = this.resizeHeight + 'px';
|
|
5905
5925
|
this.list.style.maxHeight = this.resizeHeight + "px";
|
|
5926
|
+
if (this.headerTemplate) {
|
|
5927
|
+
var headerElem = this.list.parentElement.querySelector('.e-ddl-header');
|
|
5928
|
+
if (headerElem && headerElem.offsetHeight) {
|
|
5929
|
+
this.headerTemplateHeight = headerElem.offsetHeight;
|
|
5930
|
+
}
|
|
5931
|
+
if (this.resizeHeight) {
|
|
5932
|
+
this.list.style.maxHeight = this.resizeHeight - this.headerTemplateHeight - 16 + "px";
|
|
5933
|
+
}
|
|
5934
|
+
else {
|
|
5935
|
+
this.list.style.maxHeight = parseInt(this.list.style.maxHeight, 10) - 16 + "px";
|
|
5936
|
+
}
|
|
5937
|
+
}
|
|
5906
5938
|
}
|
|
5907
5939
|
if (this.resizer) {
|
|
5908
5940
|
EventHandler.add(this.resizer, 'mousedown', this.startResizing, this);
|
|
@@ -5957,6 +5989,9 @@ var MultiSelect = /** @class */ (function (_super) {
|
|
|
5957
5989
|
this.list.parentElement.style.height = this.resizeHeight + "px";
|
|
5958
5990
|
this.list.parentElement.style.maxHeight = this.resizeHeight + "px";
|
|
5959
5991
|
this.list.style.maxHeight = this.resizeHeight + "px";
|
|
5992
|
+
if (this.headerTemplate) {
|
|
5993
|
+
this.list.style.maxHeight = this.resizeHeight - this.headerTemplateHeight - 16 + "px";
|
|
5994
|
+
}
|
|
5960
5995
|
if (this.fixedHeaderElement && this.ulElement) {
|
|
5961
5996
|
this.fixedHeaderElement.style.width = this.ulElement.offsetWidth + "px";
|
|
5962
5997
|
}
|
|
@@ -6456,6 +6491,9 @@ var MultiSelect = /** @class */ (function (_super) {
|
|
|
6456
6491
|
__decorate([
|
|
6457
6492
|
Property(null)
|
|
6458
6493
|
], MultiSelect.prototype, "allowFiltering", void 0);
|
|
6494
|
+
__decorate([
|
|
6495
|
+
Property(300)
|
|
6496
|
+
], MultiSelect.prototype, "debounceDelay", void 0);
|
|
6459
6497
|
__decorate([
|
|
6460
6498
|
Property(true)
|
|
6461
6499
|
], MultiSelect.prototype, "isDeviceFullScreen", void 0);
|
package/styles/bds-lite.css
CHANGED
|
@@ -1613,7 +1613,7 @@ ejs-dropdownlist {
|
|
|
1613
1613
|
}
|
|
1614
1614
|
|
|
1615
1615
|
.e-multi-select-wrapper .e-delim-values {
|
|
1616
|
-
font-family: "Inter";
|
|
1616
|
+
font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", arial, "Noto Sans", "Liberation Sans", sans-serif, "apple color emoji", "Segoe UI emoji", "Segoe UI Symbol", "Noto color emoji";
|
|
1617
1617
|
font-size: 14px;
|
|
1618
1618
|
line-height: 28px;
|
|
1619
1619
|
max-width: 100%;
|
package/styles/bds.css
CHANGED
|
@@ -1979,7 +1979,7 @@ ejs-dropdownlist {
|
|
|
1979
1979
|
}
|
|
1980
1980
|
|
|
1981
1981
|
.e-multi-select-wrapper .e-delim-values {
|
|
1982
|
-
font-family: "Inter";
|
|
1982
|
+
font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", arial, "Noto Sans", "Liberation Sans", sans-serif, "apple color emoji", "Segoe UI emoji", "Segoe UI Symbol", "Noto color emoji";
|
|
1983
1983
|
font-size: 14px;
|
|
1984
1984
|
line-height: 28px;
|
|
1985
1985
|
max-width: 100%;
|
|
@@ -199,6 +199,7 @@ $ddl-multi-list-hover-bg-color: $content-bg-color-hover !default;
|
|
|
199
199
|
$ddl-delim-font-color: $content-text-color !default;
|
|
200
200
|
$ddl-close-icon-color: $icon-color !default;
|
|
201
201
|
$ddl-close-icon-hover-color: $icon-color-hover !default;
|
|
202
|
+
$multi-select-delim-font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', arial, 'Noto Sans', 'Liberation Sans', sans-serif, 'apple color emoji', 'Segoe UI emoji', 'Segoe UI Symbol', 'Noto color emoji' !default;
|
|
202
203
|
|
|
203
204
|
@include export-module('multiselect-bds') {
|
|
204
205
|
.e-multi-select-wrapper .e-chips-collection .e-chips .e-chips-close.e-icon::before {
|
|
@@ -411,7 +411,12 @@
|
|
|
411
411
|
}
|
|
412
412
|
|
|
413
413
|
.e-multi-select-wrapper .e-delim-values {
|
|
414
|
-
|
|
414
|
+
@if $ddl-multiselect-skin-name == 'tailwind' {
|
|
415
|
+
font-family: $multi-select-delim-font-family;
|
|
416
|
+
}
|
|
417
|
+
@else {
|
|
418
|
+
font-family: $ddl-chip-font-family;
|
|
419
|
+
}
|
|
415
420
|
font-size: $ddl-delim-font-size;
|
|
416
421
|
line-height: $ddl-delimviewheight;
|
|
417
422
|
max-width: 100%;
|
|
@@ -199,6 +199,7 @@ $ddl-multi-list-hover-bg-color: $content-bg-color-hover !default;
|
|
|
199
199
|
$ddl-delim-font-color: $content-text-color !default;
|
|
200
200
|
$ddl-close-icon-color: $icon-color !default;
|
|
201
201
|
$ddl-close-icon-hover-color: $icon-color-hover !default;
|
|
202
|
+
$multi-select-delim-font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', arial, 'Noto Sans', 'Liberation Sans', sans-serif, 'apple color emoji', 'Segoe UI emoji', 'Segoe UI Symbol', 'Noto color emoji' !default;
|
|
202
203
|
|
|
203
204
|
@include export-module('multiselect-tailwind') {
|
|
204
205
|
.e-multi-select-wrapper .e-chips-collection .e-chips .e-chips-close.e-icon::before {
|
|
@@ -607,7 +607,7 @@
|
|
|
607
607
|
}
|
|
608
608
|
|
|
609
609
|
.e-multi-select-wrapper .e-delim-values {
|
|
610
|
-
font-family: "Inter";
|
|
610
|
+
font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", arial, "Noto Sans", "Liberation Sans", sans-serif, "apple color emoji", "Segoe UI emoji", "Segoe UI Symbol", "Noto color emoji";
|
|
611
611
|
font-size: 14px;
|
|
612
612
|
line-height: 28px;
|
|
613
613
|
max-width: 100%;
|
|
@@ -457,7 +457,7 @@
|
|
|
457
457
|
}
|
|
458
458
|
|
|
459
459
|
.e-multi-select-wrapper .e-delim-values {
|
|
460
|
-
font-family: "Inter";
|
|
460
|
+
font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", arial, "Noto Sans", "Liberation Sans", sans-serif, "apple color emoji", "Segoe UI emoji", "Segoe UI Symbol", "Noto color emoji";
|
|
461
461
|
font-size: 14px;
|
|
462
462
|
line-height: 28px;
|
|
463
463
|
max-width: 100%;
|
|
@@ -457,7 +457,7 @@
|
|
|
457
457
|
}
|
|
458
458
|
|
|
459
459
|
.e-multi-select-wrapper .e-delim-values {
|
|
460
|
-
font-family: "Inter";
|
|
460
|
+
font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", arial, "Noto Sans", "Liberation Sans", sans-serif, "apple color emoji", "Segoe UI emoji", "Segoe UI Symbol", "Noto color emoji";
|
|
461
461
|
font-size: 14px;
|
|
462
462
|
line-height: 28px;
|
|
463
463
|
max-width: 100%;
|
|
@@ -1467,7 +1467,7 @@ ejs-dropdownlist {
|
|
|
1467
1467
|
}
|
|
1468
1468
|
|
|
1469
1469
|
.e-multi-select-wrapper .e-delim-values {
|
|
1470
|
-
font-family: "Inter";
|
|
1470
|
+
font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", arial, "Noto Sans", "Liberation Sans", sans-serif, "apple color emoji", "Segoe UI emoji", "Segoe UI Symbol", "Noto color emoji";
|
|
1471
1471
|
font-size: 14px;
|
|
1472
1472
|
line-height: 28px;
|
|
1473
1473
|
max-width: 100%;
|
package/styles/tailwind-dark.css
CHANGED
|
@@ -1833,7 +1833,7 @@ ejs-dropdownlist {
|
|
|
1833
1833
|
}
|
|
1834
1834
|
|
|
1835
1835
|
.e-multi-select-wrapper .e-delim-values {
|
|
1836
|
-
font-family: "Inter";
|
|
1836
|
+
font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", arial, "Noto Sans", "Liberation Sans", sans-serif, "apple color emoji", "Segoe UI emoji", "Segoe UI Symbol", "Noto color emoji";
|
|
1837
1837
|
font-size: 14px;
|
|
1838
1838
|
line-height: 28px;
|
|
1839
1839
|
max-width: 100%;
|
package/styles/tailwind-lite.css
CHANGED
|
@@ -1467,7 +1467,7 @@ ejs-dropdownlist {
|
|
|
1467
1467
|
}
|
|
1468
1468
|
|
|
1469
1469
|
.e-multi-select-wrapper .e-delim-values {
|
|
1470
|
-
font-family: "Inter";
|
|
1470
|
+
font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", arial, "Noto Sans", "Liberation Sans", sans-serif, "apple color emoji", "Segoe UI emoji", "Segoe UI Symbol", "Noto color emoji";
|
|
1471
1471
|
font-size: 14px;
|
|
1472
1472
|
line-height: 28px;
|
|
1473
1473
|
max-width: 100%;
|
package/styles/tailwind.css
CHANGED
|
@@ -1833,7 +1833,7 @@ ejs-dropdownlist {
|
|
|
1833
1833
|
}
|
|
1834
1834
|
|
|
1835
1835
|
.e-multi-select-wrapper .e-delim-values {
|
|
1836
|
-
font-family: "Inter";
|
|
1836
|
+
font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", arial, "Noto Sans", "Liberation Sans", sans-serif, "apple color emoji", "Segoe UI emoji", "Segoe UI Symbol", "Noto color emoji";
|
|
1837
1837
|
font-size: 14px;
|
|
1838
1838
|
line-height: 28px;
|
|
1839
1839
|
max-width: 100%;
|