@syncfusion/ej2-multicolumn-combobox 28.2.9 → 29.1.33
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 +1 -1
- package/dist/ej2-multicolumn-combobox.umd.min.js +2 -2
- package/dist/ej2-multicolumn-combobox.umd.min.js.map +1 -1
- package/dist/es6/ej2-multicolumn-combobox.es2015.js +44 -10
- package/dist/es6/ej2-multicolumn-combobox.es2015.js.map +1 -1
- package/dist/es6/ej2-multicolumn-combobox.es5.js +46 -10
- package/dist/es6/ej2-multicolumn-combobox.es5.js.map +1 -1
- package/dist/global/ej2-multicolumn-combobox.min.js +2 -2
- package/dist/global/ej2-multicolumn-combobox.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/memory-leak-samples/mccb.d.ts +1 -0
- package/memory-leak-samples/mccb.html +35 -0
- package/memory-leak-samples/mccb.js +109 -0
- package/package.json +8 -8
- package/src/multicolumn-combobox/multi-column-combo-box-model.d.ts +1 -1
- package/src/multicolumn-combobox/multi-column-combo-box.d.ts +3 -0
- package/src/multicolumn-combobox/multi-column-combo-box.js +46 -10
- package/styles/bds-lite.css +52 -1
- package/styles/bds-lite.scss +1 -0
- package/styles/bds.css +62 -1
- package/styles/bds.scss +1 -0
- package/styles/bootstrap-dark-lite.css +52 -1
- package/styles/bootstrap-dark-lite.scss +1 -0
- package/styles/bootstrap-dark.css +62 -1
- package/styles/bootstrap-dark.scss +1 -0
- package/styles/bootstrap-lite.css +52 -1
- package/styles/bootstrap-lite.scss +1 -0
- package/styles/bootstrap.css +62 -1
- package/styles/bootstrap.scss +1 -0
- package/styles/bootstrap4-lite.css +52 -1
- package/styles/bootstrap4-lite.scss +1 -0
- package/styles/bootstrap4.css +62 -1
- package/styles/bootstrap4.scss +1 -0
- package/styles/bootstrap5-dark-lite.css +53 -2
- package/styles/bootstrap5-dark-lite.scss +1 -0
- package/styles/bootstrap5-dark.css +63 -2
- package/styles/bootstrap5-dark.scss +1 -0
- package/styles/bootstrap5-lite.css +52 -1
- package/styles/bootstrap5-lite.scss +1 -0
- package/styles/bootstrap5.3-lite.css +52 -1
- package/styles/bootstrap5.3-lite.scss +1 -0
- package/styles/bootstrap5.3.css +62 -1
- package/styles/bootstrap5.3.scss +1 -0
- package/styles/bootstrap5.css +62 -1
- package/styles/bootstrap5.scss +1 -0
- package/styles/fabric-dark-lite.css +52 -1
- package/styles/fabric-dark-lite.scss +1 -0
- package/styles/fabric-dark.css +62 -1
- package/styles/fabric-dark.scss +1 -0
- package/styles/fabric-lite.css +52 -1
- package/styles/fabric-lite.scss +1 -0
- package/styles/fabric.css +62 -1
- package/styles/fabric.scss +1 -0
- package/styles/fluent-dark-lite.css +52 -1
- package/styles/fluent-dark-lite.scss +1 -0
- package/styles/fluent-dark.css +62 -1
- package/styles/fluent-dark.scss +1 -0
- package/styles/fluent-lite.css +52 -1
- package/styles/fluent-lite.scss +1 -0
- package/styles/fluent.css +62 -1
- package/styles/fluent.scss +1 -0
- package/styles/fluent2-lite.css +52 -1
- package/styles/fluent2-lite.scss +1 -0
- package/styles/fluent2.css +62 -1
- package/styles/fluent2.scss +1 -0
- package/styles/highcontrast-light-lite.css +52 -1
- package/styles/highcontrast-light-lite.scss +1 -0
- package/styles/highcontrast-light.css +62 -1
- package/styles/highcontrast-light.scss +1 -0
- package/styles/highcontrast-lite.css +52 -1
- package/styles/highcontrast-lite.scss +1 -0
- package/styles/highcontrast.css +62 -1
- package/styles/highcontrast.scss +1 -0
- package/styles/material-dark-lite.css +52 -1
- package/styles/material-dark-lite.scss +1 -0
- package/styles/material-dark.css +62 -1
- package/styles/material-dark.scss +1 -0
- package/styles/material-lite.css +52 -1
- package/styles/material-lite.scss +1 -0
- package/styles/material.css +62 -1
- package/styles/material.scss +1 -0
- package/styles/material3-dark-lite.css +52 -1
- package/styles/material3-dark-lite.scss +1 -0
- package/styles/material3-dark.css +62 -1
- package/styles/material3-dark.scss +1 -0
- package/styles/material3-lite.css +52 -1
- package/styles/material3-lite.scss +1 -0
- package/styles/material3.css +62 -1
- package/styles/material3.scss +1 -0
- package/styles/multicolumn-combobox/_bigger.scss +9 -0
- package/styles/multicolumn-combobox/_layout.scss +9 -1
- package/styles/multicolumn-combobox/bds.css +62 -1
- package/styles/multicolumn-combobox/bds.scss +1 -0
- package/styles/multicolumn-combobox/bootstrap-dark.css +62 -1
- package/styles/multicolumn-combobox/bootstrap-dark.scss +1 -0
- package/styles/multicolumn-combobox/bootstrap.css +62 -1
- package/styles/multicolumn-combobox/bootstrap.scss +1 -0
- package/styles/multicolumn-combobox/bootstrap4.css +62 -1
- package/styles/multicolumn-combobox/bootstrap4.scss +1 -0
- package/styles/multicolumn-combobox/bootstrap5-dark.css +63 -2
- package/styles/multicolumn-combobox/bootstrap5-dark.scss +1 -0
- package/styles/multicolumn-combobox/bootstrap5.3.css +62 -1
- package/styles/multicolumn-combobox/bootstrap5.3.scss +1 -0
- package/styles/multicolumn-combobox/bootstrap5.css +62 -1
- package/styles/multicolumn-combobox/bootstrap5.scss +1 -0
- package/styles/multicolumn-combobox/fabric-dark.css +62 -1
- package/styles/multicolumn-combobox/fabric-dark.scss +1 -0
- package/styles/multicolumn-combobox/fabric.css +62 -1
- package/styles/multicolumn-combobox/fabric.scss +1 -0
- package/styles/multicolumn-combobox/fluent-dark.css +62 -1
- package/styles/multicolumn-combobox/fluent-dark.scss +1 -0
- package/styles/multicolumn-combobox/fluent.css +62 -1
- package/styles/multicolumn-combobox/fluent.scss +1 -0
- package/styles/multicolumn-combobox/fluent2.css +62 -1
- package/styles/multicolumn-combobox/fluent2.scss +1 -0
- package/styles/multicolumn-combobox/highcontrast-light.css +62 -1
- package/styles/multicolumn-combobox/highcontrast-light.scss +1 -0
- package/styles/multicolumn-combobox/highcontrast.css +62 -1
- package/styles/multicolumn-combobox/highcontrast.scss +1 -0
- package/styles/multicolumn-combobox/material-dark.css +62 -1
- package/styles/multicolumn-combobox/material-dark.scss +1 -0
- package/styles/multicolumn-combobox/material.css +62 -1
- package/styles/multicolumn-combobox/material.scss +1 -0
- package/styles/multicolumn-combobox/material3-dark.css +62 -1
- package/styles/multicolumn-combobox/material3-dark.scss +1 -0
- package/styles/multicolumn-combobox/material3.css +62 -1
- package/styles/multicolumn-combobox/material3.scss +1 -0
- package/styles/multicolumn-combobox/tailwind-dark.css +64 -3
- package/styles/multicolumn-combobox/tailwind-dark.scss +1 -0
- package/styles/multicolumn-combobox/tailwind.css +62 -1
- package/styles/multicolumn-combobox/tailwind.scss +1 -0
- package/styles/multicolumn-combobox/tailwind3.css +62 -1
- package/styles/multicolumn-combobox/tailwind3.scss +1 -0
- package/styles/tailwind-dark-lite.css +54 -3
- package/styles/tailwind-dark-lite.scss +1 -0
- package/styles/tailwind-dark.css +64 -3
- package/styles/tailwind-dark.scss +1 -0
- package/styles/tailwind-lite.css +52 -1
- package/styles/tailwind-lite.scss +1 -0
- package/styles/tailwind.css +62 -1
- package/styles/tailwind.scss +1 -0
- package/styles/tailwind3-lite.css +52 -1
- package/styles/tailwind3-lite.scss +1 -0
- package/styles/tailwind3.css +62 -1
- package/styles/tailwind3.scss +1 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ChildProperty, Property, Event, Component, getUniqueID, isNullOrUndefined, addClass, removeClass, prepend, formatUnit, getValue, attributes, Browser, append, L10n, select, compile, EventHandler, KeyboardEvents, closest, Animation, detach, Complex, Collection, NotifyPropertyChanges } from '@syncfusion/ej2-base';
|
|
2
2
|
import { Input } from '@syncfusion/ej2-inputs';
|
|
3
3
|
import { DataManager, Query } from '@syncfusion/ej2-data';
|
|
4
|
-
import { Popup } from '@syncfusion/ej2-popups';
|
|
4
|
+
import { showSpinner, hideSpinner, createSpinner, Popup } from '@syncfusion/ej2-popups';
|
|
5
5
|
import { Grid, VirtualScroll, Group, Edit, Sort, Resize } from '@syncfusion/ej2-grids';
|
|
6
6
|
|
|
7
7
|
var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
@@ -207,6 +207,7 @@ let MultiColumnComboBox = class MultiColumnComboBox extends Component {
|
|
|
207
207
|
constructor(options, element) {
|
|
208
208
|
super(options, element);
|
|
209
209
|
this.gridInject = new MultiColumnGrid();
|
|
210
|
+
this.isShowSpinner = true;
|
|
210
211
|
this.gridInject.InjectModules();
|
|
211
212
|
}
|
|
212
213
|
/**
|
|
@@ -265,8 +266,8 @@ let MultiColumnComboBox = class MultiColumnComboBox extends Component {
|
|
|
265
266
|
}
|
|
266
267
|
}
|
|
267
268
|
render() {
|
|
268
|
-
this.renderGrid();
|
|
269
269
|
this.renderInput();
|
|
270
|
+
this.renderGrid();
|
|
270
271
|
this.popupDiv = this.createElement('div', { className: CONTENT });
|
|
271
272
|
this.popupDiv.appendChild(this.gridEle);
|
|
272
273
|
this.setHTMLAttributes();
|
|
@@ -312,6 +313,12 @@ let MultiColumnComboBox = class MultiColumnComboBox extends Component {
|
|
|
312
313
|
allowResizing: this.gridSettings.allowResizing,
|
|
313
314
|
allowMultiSorting: this.sortType.toString().toLowerCase() === 'multiplecolumns' && this.allowSorting,
|
|
314
315
|
rowTemplate: this.itemTemplate,
|
|
316
|
+
beforeDataBound: () => {
|
|
317
|
+
if (this.dataSource instanceof DataManager && this.isShowSpinner) {
|
|
318
|
+
this.showHideSpinner(true);
|
|
319
|
+
this.isShowSpinner = false;
|
|
320
|
+
}
|
|
321
|
+
},
|
|
315
322
|
dataBound: () => { this.onDataBound(); },
|
|
316
323
|
actionFailure: (args) => { this.onActionFailure(args); },
|
|
317
324
|
actionBegin: (args) => { this.trigger('actionBegin', args); },
|
|
@@ -333,7 +340,7 @@ let MultiColumnComboBox = class MultiColumnComboBox extends Component {
|
|
|
333
340
|
}
|
|
334
341
|
}
|
|
335
342
|
});
|
|
336
|
-
this.gridEle = this.createElement('div', { id: getUniqueID('grid')
|
|
343
|
+
this.gridEle = this.createElement('div', { id: `${this.element.id}_${getUniqueID('grid')}`, className: MULTICOLUMNGRID });
|
|
337
344
|
this.updateGroupByField();
|
|
338
345
|
if (gridColumns.length > 0) {
|
|
339
346
|
// Set first column as primary key to avoid PRIMARY KEY MISSING warning.
|
|
@@ -344,6 +351,9 @@ let MultiColumnComboBox = class MultiColumnComboBox extends Component {
|
|
|
344
351
|
SortOrder.Ascending : SortOrder.Descending }] };
|
|
345
352
|
}
|
|
346
353
|
this.gridObj.appendTo(this.gridEle);
|
|
354
|
+
if (!isNullOrUndefined(this.value) || !isNullOrUndefined(this.text) || !isNullOrUndefined(this.index)) {
|
|
355
|
+
this.initValue(null, null, true);
|
|
356
|
+
}
|
|
347
357
|
}
|
|
348
358
|
handleActionComplete(args) {
|
|
349
359
|
this.trigger('actionComplete', args);
|
|
@@ -495,6 +505,19 @@ let MultiColumnComboBox = class MultiColumnComboBox extends Component {
|
|
|
495
505
|
const firstRowEle = rowElements[0];
|
|
496
506
|
firstRowEle.classList.add('e-row-focus');
|
|
497
507
|
}
|
|
508
|
+
if (this.dataSource instanceof DataManager) {
|
|
509
|
+
setTimeout(() => {
|
|
510
|
+
this.showHideSpinner(false);
|
|
511
|
+
});
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
showHideSpinner(isShow) {
|
|
515
|
+
if (isShow) {
|
|
516
|
+
showSpinner(this.dropdownElement);
|
|
517
|
+
}
|
|
518
|
+
else {
|
|
519
|
+
hideSpinner(this.dropdownElement);
|
|
520
|
+
}
|
|
498
521
|
}
|
|
499
522
|
onActionFailure(args) {
|
|
500
523
|
this.trigger('actionFailure', args);
|
|
@@ -568,9 +591,10 @@ let MultiColumnComboBox = class MultiColumnComboBox extends Component {
|
|
|
568
591
|
this.element.appendChild(this.inputWrapper);
|
|
569
592
|
}
|
|
570
593
|
this.setElementWidth(this.width);
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
594
|
+
this.dropdownElement = this.inputWrapper.querySelector('.e-input-group-icon.e-multicolumn-list-icon.e-icons');
|
|
595
|
+
createSpinner({
|
|
596
|
+
target: this.dropdownElement
|
|
597
|
+
});
|
|
574
598
|
}
|
|
575
599
|
setElementWidth(inputWidth) {
|
|
576
600
|
if (isNullOrUndefined(inputWidth)) {
|
|
@@ -601,9 +625,19 @@ let MultiColumnComboBox = class MultiColumnComboBox extends Component {
|
|
|
601
625
|
this.setProperties({ readonly: true }, true);
|
|
602
626
|
this.dataBind();
|
|
603
627
|
break;
|
|
604
|
-
case 'style':
|
|
605
|
-
|
|
628
|
+
case 'style': {
|
|
629
|
+
const styles = htmlAttributes[htmlAttr];
|
|
630
|
+
this.inputWrapper.style.cssText = '';
|
|
631
|
+
if (styles) {
|
|
632
|
+
styles.split(';').forEach((styleProperty) => {
|
|
633
|
+
const [property, value] = styleProperty.split(':').map((part) => part.trim());
|
|
634
|
+
if (property && value) {
|
|
635
|
+
this.inputWrapper.style.setProperty(property, value);
|
|
636
|
+
}
|
|
637
|
+
});
|
|
638
|
+
}
|
|
606
639
|
break;
|
|
640
|
+
}
|
|
607
641
|
default: {
|
|
608
642
|
const defaultAttr = ['title', 'id', 'placeholder', 'role', 'autocomplete', 'autocapitalize', 'spellcheck', 'minlength', 'maxlength'];
|
|
609
643
|
const validateAttr = ['name', 'required'];
|
|
@@ -1083,7 +1117,6 @@ let MultiColumnComboBox = class MultiColumnComboBox extends Component {
|
|
|
1083
1117
|
dataSource.executeQuery(query).then((e) => {
|
|
1084
1118
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1085
1119
|
const dataLists = e.result;
|
|
1086
|
-
const dataLength = dataLists.length;
|
|
1087
1120
|
filteredData = dataLists.filter((item) => this.filterData(item, filterType, inputValue, fields));
|
|
1088
1121
|
this.updateGridDataSource(filteredData);
|
|
1089
1122
|
});
|
|
@@ -1393,6 +1426,7 @@ let MultiColumnComboBox = class MultiColumnComboBox extends Component {
|
|
|
1393
1426
|
updateDynamicDataSource(newDataSource, oldDataSource) {
|
|
1394
1427
|
if (this.gridObj) {
|
|
1395
1428
|
let dataLength;
|
|
1429
|
+
this.isShowSpinner = true;
|
|
1396
1430
|
this.gridObj.dataSource = newDataSource;
|
|
1397
1431
|
const isRemoteData = oldDataSource instanceof DataManager;
|
|
1398
1432
|
if (isRemoteData) {
|
|
@@ -1471,7 +1505,6 @@ let MultiColumnComboBox = class MultiColumnComboBox extends Component {
|
|
|
1471
1505
|
if ((this.value || this.text || this.index)) {
|
|
1472
1506
|
this.gridObj.selectRow(this.selectedRowIndex);
|
|
1473
1507
|
}
|
|
1474
|
-
this.focusIn(e);
|
|
1475
1508
|
}
|
|
1476
1509
|
const contentEle = this.gridObj.getContent();
|
|
1477
1510
|
if (contentEle) {
|
|
@@ -1629,6 +1662,7 @@ let MultiColumnComboBox = class MultiColumnComboBox extends Component {
|
|
|
1629
1662
|
this.footer = null;
|
|
1630
1663
|
this.noRecord = null;
|
|
1631
1664
|
this.hiddenElement = null;
|
|
1665
|
+
this.dropdownElement = null;
|
|
1632
1666
|
super.destroy();
|
|
1633
1667
|
}
|
|
1634
1668
|
/**
|