@syncfusion/ej2-dropdowns 20.4.54 → 21.1.36

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.
Files changed (126) hide show
  1. package/CHANGELOG.md +1 -78
  2. package/dist/ej2-dropdowns.min.js +2 -2
  3. package/dist/ej2-dropdowns.umd.min.js +2 -2
  4. package/dist/ej2-dropdowns.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-dropdowns.es2015.js +162 -56
  6. package/dist/es6/ej2-dropdowns.es2015.js.map +1 -1
  7. package/dist/es6/ej2-dropdowns.es5.js +158 -50
  8. package/dist/es6/ej2-dropdowns.es5.js.map +1 -1
  9. package/dist/global/ej2-dropdowns.min.js +2 -2
  10. package/dist/global/ej2-dropdowns.min.js.map +1 -1
  11. package/dist/global/index.d.ts +1 -1
  12. package/package.json +23 -36
  13. package/src/combo-box/combo-box.js +2 -0
  14. package/src/common/highlight-search.js +1 -1
  15. package/src/common/incremental-search.d.ts +3 -0
  16. package/src/common/incremental-search.js +7 -0
  17. package/src/drop-down-list/drop-down-list-model.d.ts +6 -6
  18. package/src/drop-down-list/drop-down-list.js +46 -18
  19. package/src/drop-down-tree/drop-down-tree-model.d.ts +2 -2
  20. package/src/drop-down-tree/drop-down-tree.d.ts +62 -6
  21. package/src/drop-down-tree/drop-down-tree.js +11 -11
  22. package/src/list-box/list-box.d.ts +15 -3
  23. package/src/list-box/list-box.js +3 -3
  24. package/src/mention/mention.d.ts +4 -0
  25. package/src/mention/mention.js +88 -17
  26. package/styles/bootstrap-dark.css +2 -15
  27. package/styles/bootstrap.css +2 -5
  28. package/styles/bootstrap4.css +3 -14
  29. package/styles/bootstrap5-dark.css +5 -8
  30. package/styles/bootstrap5.css +5 -8
  31. package/styles/drop-down-base/_bootstrap4-definition.scss +0 -8
  32. package/styles/drop-down-base/_bootstrap5-definition.scss +2 -2
  33. package/styles/drop-down-base/_fluent-definition.scss +2 -2
  34. package/styles/drop-down-base/_tailwind-definition.scss +2 -2
  35. package/styles/drop-down-base/_theme.scss +63 -10
  36. package/styles/drop-down-base/bootstrap-dark.css +2 -2
  37. package/styles/drop-down-base/bootstrap.css +2 -2
  38. package/styles/drop-down-base/bootstrap4.css +2 -10
  39. package/styles/drop-down-base/bootstrap5-dark.css +2 -2
  40. package/styles/drop-down-base/bootstrap5.css +2 -2
  41. package/styles/drop-down-base/fabric-dark.css +2 -2
  42. package/styles/drop-down-base/fabric.css +2 -2
  43. package/styles/drop-down-base/fluent-dark.css +2 -2
  44. package/styles/drop-down-base/fluent.css +2 -2
  45. package/styles/drop-down-base/highcontrast-light.css +2 -2
  46. package/styles/drop-down-base/highcontrast.css +2 -2
  47. package/styles/drop-down-base/material-dark.css +2 -2
  48. package/styles/drop-down-base/material.css +2 -2
  49. package/styles/drop-down-base/tailwind-dark.css +2 -2
  50. package/styles/drop-down-base/tailwind.css +2 -2
  51. package/styles/drop-down-list/_bootstrap4-definition.scss +1 -1
  52. package/styles/drop-down-list/_bootstrap5-definition.scss +6 -6
  53. package/styles/drop-down-list/_fluent-definition.scss +5 -5
  54. package/styles/drop-down-list/_layout.scss +1 -4
  55. package/styles/drop-down-list/_tailwind-definition.scss +1 -1
  56. package/styles/drop-down-list/bootstrap-dark.css +0 -3
  57. package/styles/drop-down-list/bootstrap.css +0 -3
  58. package/styles/drop-down-list/bootstrap4.css +1 -12
  59. package/styles/drop-down-list/bootstrap5-dark.css +0 -3
  60. package/styles/drop-down-list/bootstrap5.css +0 -3
  61. package/styles/drop-down-list/fabric-dark.css +0 -3
  62. package/styles/drop-down-list/fabric.css +0 -3
  63. package/styles/drop-down-list/fluent-dark.css +0 -3
  64. package/styles/drop-down-list/fluent.css +0 -3
  65. package/styles/drop-down-list/highcontrast-light.css +0 -3
  66. package/styles/drop-down-list/highcontrast.css +0 -3
  67. package/styles/drop-down-list/icons/_material3.scss +1 -1
  68. package/styles/drop-down-list/material-dark.css +1 -3
  69. package/styles/drop-down-list/material.css +0 -3
  70. package/styles/drop-down-list/tailwind-dark.css +1 -4
  71. package/styles/drop-down-list/tailwind.css +1 -4
  72. package/styles/drop-down-tree/_layout.scss +34 -14
  73. package/styles/drop-down-tree/_tailwind-definition.scss +1 -1
  74. package/styles/drop-down-tree/_theme.scss +1 -1
  75. package/styles/drop-down-tree/bootstrap4.css +0 -8
  76. package/styles/drop-down-tree/material-dark.css +1 -0
  77. package/styles/fabric-dark.css +2 -15
  78. package/styles/fabric.css +2 -5
  79. package/styles/fluent-dark.css +6 -9
  80. package/styles/fluent.css +6 -9
  81. package/styles/highcontrast-light.css +9 -15
  82. package/styles/highcontrast.css +15 -11
  83. package/styles/list-box/_bootstrap-dark-definition.scss +0 -3
  84. package/styles/list-box/_bootstrap-definition.scss +0 -3
  85. package/styles/list-box/_bootstrap4-definition.scss +0 -3
  86. package/styles/list-box/_bootstrap5-definition.scss +0 -3
  87. package/styles/list-box/_fabric-dark-definition.scss +0 -3
  88. package/styles/list-box/_fabric-definition.scss +0 -3
  89. package/styles/list-box/_fluent-definition.scss +0 -3
  90. package/styles/list-box/_fusionnew-definition.scss +0 -3
  91. package/styles/list-box/_highcontrast-definition.scss +0 -3
  92. package/styles/list-box/_highcontrast-light-definition.scss +0 -3
  93. package/styles/list-box/_material-dark-definition.scss +0 -3
  94. package/styles/list-box/_material-definition.scss +0 -3
  95. package/styles/list-box/_tailwind-definition.scss +0 -3
  96. package/styles/list-box/bootstrap4.css +0 -8
  97. package/styles/material-dark.css +4 -15
  98. package/styles/material.css +2 -5
  99. package/styles/mention/bootstrap4.css +0 -8
  100. package/styles/multi-select/_bootstrap5-definition.scss +6 -6
  101. package/styles/multi-select/_fluent-definition.scss +7 -7
  102. package/styles/multi-select/_highcontrast-definition.scss +8 -6
  103. package/styles/multi-select/_highcontrast-light-definition.scss +2 -0
  104. package/styles/multi-select/_layout.scss +94 -77
  105. package/styles/multi-select/_tailwind-definition.scss +2 -2
  106. package/styles/multi-select/_theme.scss +110 -22
  107. package/styles/multi-select/bootstrap4.css +0 -8
  108. package/styles/multi-select/bootstrap5-dark.css +3 -3
  109. package/styles/multi-select/bootstrap5.css +3 -3
  110. package/styles/multi-select/fluent-dark.css +4 -4
  111. package/styles/multi-select/fluent.css +4 -4
  112. package/styles/multi-select/highcontrast-light.css +7 -0
  113. package/styles/multi-select/highcontrast.css +13 -6
  114. package/styles/multi-select/icons/_material3.scss +670 -3
  115. package/styles/multi-select/tailwind-dark.css +2 -1
  116. package/styles/multi-select/tailwind.css +2 -1
  117. package/styles/tailwind-dark.css +5 -7
  118. package/styles/tailwind.css +5 -7
  119. package/styles/auto-complete/_material3-definition.scss +0 -2
  120. package/styles/combo-box/_material3-definition.scss +0 -2
  121. package/styles/drop-down-base/_material3-definition.scss +0 -117
  122. package/styles/drop-down-list/_material3-definition.scss +0 -201
  123. package/styles/drop-down-tree/_material3-definition.scss +0 -60
  124. package/styles/list-box/_material3-definition.scss +0 -120
  125. package/styles/mention/_material3-definition.scss +0 -1
  126. package/styles/multi-select/_material3-definition.scss +0 -226
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 20.4.54
3
+ * version : 21.1.35
4
4
  * Copyright Syncfusion Inc. 2001 - 2020. All rights reserved.
5
5
  * Use of this code is subject to the terms of our license.
6
6
  * A copy of the current license can be obtained at any time by e-mailing
package/package.json CHANGED
@@ -1,58 +1,46 @@
1
1
  {
2
- "_from": "@syncfusion/ej2-dropdowns@*",
3
- "_id": "@syncfusion/ej2-dropdowns@20.4.53",
2
+ "_from": "@syncfusion/ej2-dropdowns@21.1.35",
3
+ "_id": "@syncfusion/ej2-dropdowns@21.1.35",
4
4
  "_inBundle": false,
5
- "_integrity": "sha512-zrM6fpFwUVuGno4MQ+g5XIY0Tmm8Cxw5PsgHRTHvxB4t/9f5Mprexb/51Fs7o+qY7eGD7nQk4X88fFJkrbsHYw==",
5
+ "_integrity": "sha512-0oTeG81gimWGE59USlquz5NWx3nJaCJhFvrnoXFlX9fccxT/LWg5wuIP/QG4GVOabU7jCZ3uHF4aiE5MpCjIpA==",
6
6
  "_location": "/@syncfusion/ej2-dropdowns",
7
7
  "_phantomChildren": {},
8
8
  "_requested": {
9
- "type": "range",
9
+ "type": "version",
10
10
  "registry": true,
11
- "raw": "@syncfusion/ej2-dropdowns@*",
11
+ "raw": "@syncfusion/ej2-dropdowns@21.1.35",
12
12
  "name": "@syncfusion/ej2-dropdowns",
13
13
  "escapedName": "@syncfusion%2fej2-dropdowns",
14
14
  "scope": "@syncfusion",
15
- "rawSpec": "*",
15
+ "rawSpec": "21.1.35",
16
16
  "saveSpec": null,
17
- "fetchSpec": "*"
17
+ "fetchSpec": "21.1.35"
18
18
  },
19
19
  "_requiredBy": [
20
- "/",
21
- "/@syncfusion/ej2",
22
- "/@syncfusion/ej2-angular-dropdowns",
23
- "/@syncfusion/ej2-documenteditor",
24
- "/@syncfusion/ej2-gantt",
25
- "/@syncfusion/ej2-grids",
26
- "/@syncfusion/ej2-inplace-editor",
27
- "/@syncfusion/ej2-kanban",
28
- "/@syncfusion/ej2-pdfviewer",
29
- "/@syncfusion/ej2-pivotview",
30
- "/@syncfusion/ej2-querybuilder",
31
- "/@syncfusion/ej2-react-dropdowns",
32
- "/@syncfusion/ej2-schedule",
33
- "/@syncfusion/ej2-spreadsheet",
34
- "/@syncfusion/ej2-vue-dropdowns"
20
+ "#USER",
21
+ "/"
35
22
  ],
36
- "_resolved": "https://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-dropdowns/-/ej2-dropdowns-20.4.53.tgz",
37
- "_shasum": "d3c7c00440672d7fa342acf06bda25a9b7c4faa8",
38
- "_spec": "@syncfusion/ej2-dropdowns@*",
39
- "_where": "/jenkins/workspace/ease-automation_release_19.1.0.1/packages/included",
23
+ "_resolved": "https://registry.npmjs.org/@syncfusion/ej2-dropdowns/-/ej2-dropdowns-21.1.35.tgz",
24
+ "_shasum": "97c74cc02cae28780979c60275a00d6ecb801a23",
25
+ "_spec": "@syncfusion/ej2-dropdowns@21.1.35",
26
+ "_where": "E:\\New folder (4)\\New folder",
40
27
  "author": {
41
28
  "name": "Syncfusion Inc."
42
29
  },
43
30
  "bundleDependencies": false,
44
31
  "dependencies": {
45
- "@syncfusion/ej2-base": "~20.4.51",
46
- "@syncfusion/ej2-data": "~20.4.48",
47
- "@syncfusion/ej2-inputs": "~20.4.54",
48
- "@syncfusion/ej2-lists": "~20.4.50",
49
- "@syncfusion/ej2-navigations": "~20.4.53",
50
- "@syncfusion/ej2-popups": "~20.4.53"
32
+ "@syncfusion/ej2-base": "~21.1.35",
33
+ "@syncfusion/ej2-data": "~21.1.35",
34
+ "@syncfusion/ej2-inputs": "~21.1.35",
35
+ "@syncfusion/ej2-lists": "~21.1.35",
36
+ "@syncfusion/ej2-navigations": "~21.1.35",
37
+ "@syncfusion/ej2-popups": "~21.1.35"
51
38
  },
52
39
  "deprecated": false,
53
40
  "description": "Essential JS 2 DropDown Components",
54
41
  "devDependencies": {},
55
42
  "es2015": "./dist/es6/ej2-dropdowns.es5.js",
43
+ "homepage": "https://www.syncfusion.com/javascript-ui-controls",
56
44
  "keywords": [
57
45
  "ej2",
58
46
  "syncfusion",
@@ -71,8 +59,7 @@
71
59
  "main": "./dist/ej2-dropdowns.umd.min.js",
72
60
  "module": "./index.js",
73
61
  "name": "@syncfusion/ej2-dropdowns",
74
- "typings": "index.d.ts",
75
- "version": "20.4.54",
76
62
  "sideEffects": false,
77
- "homepage": "https://www.syncfusion.com/javascript-ui-controls"
78
- }
63
+ "typings": "index.d.ts",
64
+ "version": "21.1.36"
65
+ }
@@ -659,6 +659,7 @@ var ComboBox = /** @class */ (function (_super) {
659
659
  ComboBox.prototype.filter = function (dataSource, query, fields) {
660
660
  _super.prototype.filter.call(this, dataSource, query, fields);
661
661
  };
662
+ /* eslint-disable valid-jsdoc, jsdoc/require-param */
662
663
  /**
663
664
  * Opens the popup that displays the list of items.
664
665
  *
@@ -666,6 +667,7 @@ var ComboBox = /** @class */ (function (_super) {
666
667
 
667
668
  */
668
669
  ComboBox.prototype.showPopup = function (e) {
670
+ /* eslint-enable valid-jsdoc, jsdoc/require-param */
669
671
  _super.prototype.showPopup.call(this, e);
670
672
  };
671
673
  /* eslint-disable valid-jsdoc, jsdoc/require-param */
@@ -1,4 +1,3 @@
1
- /* eslint-disable jsdoc/require-param, valid-jsdoc */
2
1
  /**
3
2
  * Function helps to find which highlightSearch is to call based on your data.
4
3
  *
@@ -18,6 +17,7 @@ export function highlightSearch(element, query, ignoreCase, type) {
18
17
  query = /^[a-zA-Z0-9- ]*$/.test(query) ? query : query.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&');
19
18
  var replaceQuery = type === 'StartsWith' ? '^(' + query + ')' : type === 'EndsWith' ?
20
19
  '(' + query + ')$' : '(' + query + ')';
20
+ // eslint-disable-next-line security/detect-non-literal-regexp
21
21
  findTextNode(element, new RegExp(replaceQuery, ignoreRegex));
22
22
  }
23
23
  }
@@ -1,3 +1,6 @@
1
+ /**
2
+ * IncrementalSearch module file
3
+ */
1
4
  export declare type SearchType = 'StartsWith' | 'Equal' | 'EndsWith' | 'Contains';
2
5
  /**
3
6
  * Search and focus the list item based on key code matches with list text content
@@ -1,3 +1,6 @@
1
+ /**
2
+ * IncrementalSearch module file
3
+ */
1
4
  var queryString = '';
2
5
  var prevString = '';
3
6
  var matches = [];
@@ -87,6 +90,7 @@ export function Search(inputVal, items, searchType, ignoreCase, dataSource, fiel
87
90
  var fieldValue_1 = fields.text.split('.');
88
91
  dataSource.filter(function (data) {
89
92
  Array.prototype.slice.call(fieldValue_1).forEach(function (value) {
93
+ /* eslint-disable security/detect-object-injection */
90
94
  if (type === 'object' && checkField_1.textContent.toString().indexOf(data[value]) !== -1 && checkField_1.getAttribute('data-value') === data[fields.value].toString() || type === 'string' && checkField_1.textContent.toString().indexOf(data) !== -1) {
91
95
  filterValue = type === 'object' ? data[value] : data;
92
96
  }
@@ -94,6 +98,7 @@ export function Search(inputVal, items, searchType, ignoreCase, dataSource, fiel
94
98
  });
95
99
  }
96
100
  text = dataSource && filterValue ? (ignoreCase ? filterValue.toLocaleLowerCase() : filterValue).replace(/^\s+|\s+$/g, '') : (ignoreCase ? item.textContent.toLocaleLowerCase() : item.textContent).replace(/^\s+|\s+$/g, '');
101
+ /* eslint-disable security/detect-non-literal-regexp */
97
102
  if ((searchType === 'Equal' && text === queryStr) || (searchType === 'StartsWith' && text.substr(0, strLength) === queryStr) || (searchType === 'EndsWith' && text.substr(text.length - queryStr.length) === queryStr) || (searchType === 'Contains' && new RegExp(queryStr, "g").test(text))) {
98
103
  itemData.item = item;
99
104
  itemData.index = i;
@@ -106,9 +111,11 @@ export function Search(inputVal, items, searchType, ignoreCase, dataSource, fiel
106
111
  return state_1.value;
107
112
  }
108
113
  return itemData;
114
+ /* eslint-enable security/detect-non-literal-regexp */
109
115
  }
110
116
  return itemData;
111
117
  }
118
+ /* eslint-enable security/detect-object-injection */
112
119
  export function escapeCharRegExp(value) {
113
120
  return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
114
121
  }
@@ -32,13 +32,13 @@ export interface DropDownListModel extends DropDownBaseModel{
32
32
  enabled?: boolean;
33
33
 
34
34
  /**
35
- * Enable or disable persisting component's state between page reloads.
36
- * If enabled, following list of states will be persisted.
37
- * 1. value
38
- *
39
- * @default false
35
+ * Enable or disable persisting component's state between page reloads.
36
+ * If enabled, following list of states will be persisted.
37
+ * 1. value
38
+ *
39
+ * @default false
40
40
 
41
- */
41
+ */
42
42
  enablePersistence?: boolean;
43
43
 
44
44
  /**
@@ -209,7 +209,8 @@ var DropDownList = /** @class */ (function (_super) {
209
209
  }
210
210
  else {
211
211
  if (this.allowFiltering && this.getModuleName() !== 'autocomplete'
212
- && !isNullOrUndefined(this.actionCompleteData.ulElement) && !isNullOrUndefined(this.actionCompleteData.list) && this.actionCompleteData.list.length > 0) {
212
+ && !isNullOrUndefined(this.actionCompleteData.ulElement) && !isNullOrUndefined(this.actionCompleteData.list) &&
213
+ this.actionCompleteData.list.length > 0) {
213
214
  this.onActionComplete(this.actionCompleteData.ulElement.cloneNode(true), this.actionCompleteData.list);
214
215
  }
215
216
  this.resetFocusElement();
@@ -259,6 +260,14 @@ var DropDownList = /** @class */ (function (_super) {
259
260
  else if (htmlAttr === 'style') {
260
261
  this.inputWrapper.container.setAttribute('style', this.htmlAttributes["" + htmlAttr]);
261
262
  }
263
+ else if (htmlAttr === 'aria-label') {
264
+ if (this.getModuleName() === 'autocomplete' || this.getModuleName() === 'combobox') {
265
+ this.inputElement.setAttribute('aria-label', this.htmlAttributes["" + htmlAttr]);
266
+ }
267
+ else {
268
+ this.inputWrapper.container.setAttribute('aria-label', this.htmlAttributes["" + htmlAttr]);
269
+ }
270
+ }
262
271
  else {
263
272
  var defaultAttr = ['title', 'id', 'placeholder',
264
273
  'role', 'autocomplete', 'autocapitalize', 'spellcheck', 'minlength', 'maxlength'];
@@ -630,7 +639,6 @@ var DropDownList = /** @class */ (function (_super) {
630
639
  var preventHomeEnd = this.getModuleName() !== 'dropdownlist' && (e.action === 'home' || e.action === 'end');
631
640
  this.isEscapeKey = e.action === 'escape';
632
641
  this.isTabKey = !this.isPopupOpen && e.action === 'tab';
633
- var isNavAction = e.action === 'down' || e.action === 'up' || e.action === 'home' || e.action === 'end';
634
642
  var isNavigation = (e.action === 'down' || e.action === 'up' || e.action === 'pageUp' || e.action === 'pageDown'
635
643
  || e.action === 'home' || e.action === 'end');
636
644
  if ((this.isEditTextBox() || preventAction || preventHomeEnd) && !this.isPopupOpen) {
@@ -714,7 +722,8 @@ var DropDownList = /** @class */ (function (_super) {
714
722
  startIndex = e.action === 'down' && isNullOrUndefined(this.activeIndex) ? 0 : this.liCollections.length - 1;
715
723
  index = index < 0 ? this.liCollections.length - 1 : index === this.liCollections.length ? 0 : index;
716
724
  }
717
- var nextItem = isNullOrUndefined(this.activeIndex) ? this.liCollections[startIndex] : this.liCollections[index];
725
+ var nextItem = isNullOrUndefined(this.activeIndex) ? this.liCollections[startIndex]
726
+ : this.liCollections[index];
718
727
  if (!isNullOrUndefined(nextItem)) {
719
728
  this.setSelection(nextItem, e);
720
729
  }
@@ -1032,8 +1041,7 @@ var DropDownList = /** @class */ (function (_super) {
1032
1041
  }
1033
1042
  if (Browser.info.name !== 'mozilla') {
1034
1043
  if (this.targetElement()) {
1035
- attributes(this.targetElement(), { 'aria-label': this.inputElement.value });
1036
- attributes(this.targetElement(), { 'aria-describedby': this.inputElement.id != '' ? this.inputElement.id : this.element.id });
1044
+ attributes(this.targetElement(), { 'aria-describedby': this.inputElement.id !== '' ? this.inputElement.id : this.element.id });
1037
1045
  this.targetElement().removeAttribute('aria-live');
1038
1046
  }
1039
1047
  }
@@ -1518,7 +1526,10 @@ var DropDownList = /** @class */ (function (_super) {
1518
1526
  if (this.value && this.dataSource instanceof DataManager) {
1519
1527
  var checkField_1 = isNullOrUndefined(this.fields.value) ? this.fields.text : this.fields.value;
1520
1528
  var fieldValue_1 = this.fields.value.split('.');
1521
- var checkVal = list.some(function (x) { return isNullOrUndefined(x[checkField_1]) && fieldValue_1.length > 1 ? _this.checkFieldValue(x, fieldValue_1) === _this.value : x[checkField_1] === _this.value; });
1529
+ var checkVal = list.some(function (x) {
1530
+ return isNullOrUndefined(x[checkField_1]) && fieldValue_1.length > 1 ?
1531
+ _this.checkFieldValue(x, fieldValue_1) === _this.value : x[checkField_1] === _this.value;
1532
+ });
1522
1533
  if (!checkVal) {
1523
1534
  this.dataSource.executeQuery(this.getQuery(this.query).where(new Predicate(checkField_1, 'equal', this.value)))
1524
1535
  .then(function (e) {
@@ -1568,7 +1579,9 @@ var DropDownList = /** @class */ (function (_super) {
1568
1579
  }
1569
1580
  }
1570
1581
  };
1582
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1571
1583
  DropDownList.prototype.checkFieldValue = function (list, fieldValue) {
1584
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1572
1585
  var checkField = list;
1573
1586
  fieldValue.forEach(function (value) {
1574
1587
  checkField = checkField[value];
@@ -1608,8 +1621,9 @@ var DropDownList = /** @class */ (function (_super) {
1608
1621
  }
1609
1622
  };
1610
1623
  DropDownList.prototype.actionCompleteDataUpdate = function (li, item, index) {
1611
- if (index != null) {
1612
- this.actionCompleteData.ulElement.insertBefore(li.cloneNode(true), this.actionCompleteData.ulElement.childNodes[index]);
1624
+ if (index !== null) {
1625
+ this.actionCompleteData.ulElement.
1626
+ insertBefore(li.cloneNode(true), this.actionCompleteData.ulElement.childNodes[index]);
1613
1627
  }
1614
1628
  else {
1615
1629
  this.actionCompleteData.ulElement.appendChild(li.cloneNode(true));
@@ -1653,7 +1667,7 @@ var DropDownList = /** @class */ (function (_super) {
1653
1667
  this.trigger('beforeOpen', args, function (args) {
1654
1668
  if (!args.cancel) {
1655
1669
  var popupEle = _this.createElement('div', {
1656
- id: _this.element.id + '_popup', className: 'e-ddl e-popup ' + (_this.cssClass != null ? _this.cssClass : '')
1670
+ id: _this.element.id + '_popup', className: 'e-ddl e-popup ' + (_this.cssClass !== null ? _this.cssClass : '')
1657
1671
  });
1658
1672
  var searchBox = _this.setSearchBox(popupEle);
1659
1673
  _this.listHeight = formatUnit(_this.popupHeight);
@@ -1799,10 +1813,10 @@ var DropDownList = /** @class */ (function (_super) {
1799
1813
  if (_this.isReact) {
1800
1814
  _this.clearTemplate(['headerTemplate', 'footerTemplate']);
1801
1815
  }
1802
- var isResetItem = (_this.getModuleName() === 'autocomplete') ? true : false;
1803
1816
  _this.isNotSearchList = false;
1804
1817
  _this.isDocumentClick = false;
1805
1818
  _this.destroyPopup();
1819
+ EventHandler.remove(document, 'mousedown', _this.onDocumentClick);
1806
1820
  if (_this.isFiltering() && _this.actionCompleteData.list && _this.actionCompleteData.list[0]) {
1807
1821
  _this.isActive = true;
1808
1822
  _this.onActionComplete(_this.actionCompleteData.ulElement, _this.actionCompleteData.list, null, true);
@@ -2064,8 +2078,10 @@ var DropDownList = /** @class */ (function (_super) {
2064
2078
  DropDownList.prototype.destroyPopup = function () {
2065
2079
  this.isPopupOpen = false;
2066
2080
  this.isFilterFocus = false;
2067
- this.popupObj.destroy();
2068
- detach(this.popupObj.element);
2081
+ if (this.popupObj) {
2082
+ this.popupObj.destroy();
2083
+ detach(this.popupObj.element);
2084
+ }
2069
2085
  };
2070
2086
  DropDownList.prototype.clickOnBackIcon = function () {
2071
2087
  this.hidePopup();
@@ -2100,7 +2116,7 @@ var DropDownList = /** @class */ (function (_super) {
2100
2116
  if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {
2101
2117
  updatedCssClassValues = (this.cssClass.replace(/\s+/g, ' ')).trim();
2102
2118
  }
2103
- if (!isNullOrUndefined(closest(this.element, "fieldset")) && closest(this.element, "fieldset").disabled) {
2119
+ if (!isNullOrUndefined(closest(this.element, 'fieldset')) && closest(this.element, 'fieldset').disabled) {
2104
2120
  this.enabled = false;
2105
2121
  }
2106
2122
  this.inputWrapper = Input.createInput({
@@ -2142,6 +2158,12 @@ var DropDownList = /** @class */ (function (_super) {
2142
2158
  this.element.id = id;
2143
2159
  this.hiddenElement.id = id + '_hidden';
2144
2160
  this.targetElement().setAttribute('tabindex', this.tabIndex);
2161
+ if (this.getModuleName() === 'autocomplete' || this.getModuleName() === 'combobox') {
2162
+ this.inputElement.setAttribute('aria-label', this.getModuleName());
2163
+ }
2164
+ else {
2165
+ attributes(this.targetElement(), { 'aria-label': this.getModuleName() });
2166
+ }
2145
2167
  attributes(this.targetElement(), this.getAriaAttributes());
2146
2168
  this.updateDataAttribute(this.htmlAttributes);
2147
2169
  this.setHTMLAttributes();
@@ -2487,14 +2509,16 @@ var DropDownList = /** @class */ (function (_super) {
2487
2509
  }
2488
2510
  break;
2489
2511
  case 'valueTemplate':
2490
- if (!isNullOrUndefined(this_1.itemData) && this_1.valueTemplate != null) {
2512
+ if (!isNullOrUndefined(this_1.itemData) && this_1.valueTemplate !== null) {
2491
2513
  this_1.setValueTemplate();
2492
2514
  }
2493
2515
  break;
2494
2516
  case 'allowFiltering':
2495
2517
  if (this_1.allowFiltering) {
2496
- this_1.actionCompleteData = { ulElement: this_1.ulElement,
2497
- list: this_1.listData, isUpdated: true };
2518
+ this_1.actionCompleteData = {
2519
+ ulElement: this_1.ulElement,
2520
+ list: this_1.listData, isUpdated: true
2521
+ };
2498
2522
  this_1.actionData = this_1.actionCompleteData;
2499
2523
  this_1.updateSelectElementData(this_1.allowFiltering);
2500
2524
  }
@@ -2564,6 +2588,7 @@ var DropDownList = /** @class */ (function (_super) {
2564
2588
  removeClass([this.inputWrapper.container], ['e-readonly']);
2565
2589
  }
2566
2590
  };
2591
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2567
2592
  DropDownList.prototype.setInputValue = function (newProp, oldProp) {
2568
2593
  };
2569
2594
  DropDownList.prototype.setCssClass = function (newClass, oldClass) {
@@ -2587,16 +2612,18 @@ var DropDownList = /** @class */ (function (_super) {
2587
2612
  DropDownList.prototype.getModuleName = function () {
2588
2613
  return 'dropdownlist';
2589
2614
  };
2615
+ /* eslint-disable valid-jsdoc, jsdoc/require-param */
2590
2616
  /**
2591
2617
  * Opens the popup that displays the list of items.
2592
2618
  *
2593
2619
  * @returns {void}
2594
2620
  */
2595
2621
  DropDownList.prototype.showPopup = function (e) {
2622
+ /* eslint-enable valid-jsdoc, jsdoc/require-param */
2596
2623
  if (!this.enabled) {
2597
2624
  return;
2598
2625
  }
2599
- if (this.isFiltering() && this.dataSource instanceof DataManager && (this.actionData.list != this.actionCompleteData.list) &&
2626
+ if (this.isFiltering() && this.dataSource instanceof DataManager && (this.actionData.list !== this.actionCompleteData.list) &&
2600
2627
  this.actionData.list && this.actionData.ulElement) {
2601
2628
  this.actionCompleteData = this.actionData;
2602
2629
  this.onActionComplete(this.actionCompleteData.ulElement, this.actionCompleteData.list, null, true);
@@ -2625,7 +2652,8 @@ var DropDownList = /** @class */ (function (_super) {
2625
2652
  };
2626
2653
  history.pushState({}, '');
2627
2654
  }
2628
- if (!isNullOrUndefined(this.list) && (!isNullOrUndefined(this.list.children[0]) || this.list.classList.contains(dropDownBaseClasses.noData))) {
2655
+ if (!isNullOrUndefined(this.list) && (!isNullOrUndefined(this.list.children[0]) ||
2656
+ this.list.classList.contains(dropDownBaseClasses.noData))) {
2629
2657
  this.renderPopup(e);
2630
2658
  }
2631
2659
  };
@@ -154,8 +154,8 @@ export interface DropDownTreeModel extends ComponentModel{
154
154
 
155
155
  /**
156
156
  * Enables or disables the multi-selection of items. To select multiple items:
157
- * * Select the items by holding down the **CTRL** key when clicking on the items.
158
- * * Select consecutive items by clicking the first item to select and hold down the **SHIFT** key and click the last item to select.
157
+ * * Select the items by holding down the **Ctrl** key when clicking on the items.
158
+ * * Select consecutive items by clicking the first item to select and hold down the **Shift** key and click the last item to select.
159
159
  *
160
160
  * @default false
161
161
  */
@@ -5,7 +5,19 @@ import { KeyboardEventArgs } from '@syncfusion/ej2-base';
5
5
  import { DataManager, Query } from '@syncfusion/ej2-data';
6
6
  import { Popup } from '@syncfusion/ej2-popups';
7
7
  import { DropDownTreeModel, FieldsModel, TreeSettingsModel } from './drop-down-tree-model';
8
- export declare type TreeFilterType = 'StartsWith' | 'EndsWith' | 'Contains';
8
+ export declare type TreeFilterType =
9
+ /**
10
+ * Checks whether a value begins with the specified value.
11
+ */
12
+ 'StartsWith' |
13
+ /**
14
+ * Checks whether a value ends with the specified value.
15
+ */
16
+ 'EndsWith' |
17
+ /**
18
+ * Checks whether a value contains with specified value.
19
+ */
20
+ 'Contains';
9
21
  export declare class Fields extends ChildProperty<Fields> {
10
22
  /**
11
23
  * This field specifies the child items or mapping field for the nested child items that contains an array of JSON objects.
@@ -210,9 +222,53 @@ export interface DdtKeyPressEventArgs {
210
222
  */
211
223
  event: KeyboardEventArgs;
212
224
  }
213
- export declare type Mode = 'Default' | 'Delimiter' | 'Box' | 'Custom';
214
- export declare type SortOrder = 'None' | 'Ascending' | 'Descending';
215
- export declare type ExpandOn = 'Auto' | 'Click' | 'DblClick' | 'None';
225
+ export declare type Mode =
226
+ /**
227
+ * On blur component will act in the delimiter mode.
228
+ */
229
+ 'Default' |
230
+ /**
231
+ * Selected items will be visualized in the text content.
232
+ */
233
+ 'Delimiter' |
234
+ /**
235
+ * Selected items will be visualized in chip.
236
+ */
237
+ 'Box' |
238
+ /**
239
+ * Selected items will be visualized with the given custom template value
240
+ */
241
+ 'Custom';
242
+ export declare type SortOrder =
243
+ /**
244
+ * Indicates that the nodes are not sorted.
245
+ */
246
+ 'None' |
247
+ /**
248
+ * Indicates that the nodes are sorted in the ascending order.
249
+ */
250
+ 'Ascending' |
251
+ /**
252
+ * Indicates that the nodes are sorted in the descending order
253
+ */
254
+ 'Descending';
255
+ export declare type ExpandOn =
256
+ /**
257
+ * Determines automatically whether to trigger the single click or double-click event.
258
+ */
259
+ 'Auto' |
260
+ /**
261
+ * Triggers the single click event when an item is double-clicekd.
262
+ */
263
+ 'Click' |
264
+ /**
265
+ * Triggers the double-click event when an item is double-clicekd.
266
+ */
267
+ 'DblClick' |
268
+ /**
269
+ * Does not trigger any event when the user double-clicks on an item.
270
+ */
271
+ 'None';
216
272
  /**
217
273
  * The Dropdown Tree control allows you to select single or multiple values from hierarchical data in a tree-like structure.
218
274
  * It has several out-of-the-box features, such as data binding, check boxes, templates, filter,
@@ -306,8 +362,8 @@ export declare class DropDownTree extends Component<HTMLElement> implements INot
306
362
  allowFiltering: boolean;
307
363
  /**
308
364
  * Enables or disables the multi-selection of items. To select multiple items:
309
- * * Select the items by holding down the **CTRL** key when clicking on the items.
310
- * * Select consecutive items by clicking the first item to select and hold down the **SHIFT** key and click the last item to select.
365
+ * * Select the items by holding down the **Ctrl** key when clicking on the items.
366
+ * * Select consecutive items by clicking the first item to select and hold down the **Shift** key and click the last item to select.
311
367
  *
312
368
  * @default false
313
369
  */
@@ -1100,7 +1100,7 @@ var DropDownTree = /** @class */ (function (_super) {
1100
1100
  if (isValid && this.value !== null && (this.value && this.value.length !== 0)) {
1101
1101
  addClass([this.inputEle], CHIP_INPUT);
1102
1102
  }
1103
- else if (this.value === null || (this.value && this.value.length === 0) || this.chipWrapper) {
1103
+ else if (this.value === null || (this.value && this.value.length === 0) || this.checkWrapper) {
1104
1104
  addClass([this.chipWrapper], HIDEICON);
1105
1105
  }
1106
1106
  }
@@ -1212,36 +1212,36 @@ var DropDownTree = /** @class */ (function (_super) {
1212
1212
  for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {
1213
1213
  var htmlAttr = _a[_i];
1214
1214
  if (htmlAttr === 'class') {
1215
- this.inputWrapper.classList.add(this.htmlAttributes[htmlAttr]);
1215
+ this.inputWrapper.classList.add(this.htmlAttributes["" + htmlAttr]);
1216
1216
  }
1217
- else if (htmlAttr === 'disabled' && this.htmlAttributes[htmlAttr] === 'disabled') {
1217
+ else if (htmlAttr === 'disabled' && this.htmlAttributes["" + htmlAttr] === 'disabled') {
1218
1218
  this.setProperties({ enabled: false }, true);
1219
1219
  this.setEnable();
1220
1220
  }
1221
- else if (htmlAttr === 'readonly' && !isNOU(this.htmlAttributes[htmlAttr])) {
1221
+ else if (htmlAttr === 'readonly' && !isNOU(this.htmlAttributes["" + htmlAttr])) {
1222
1222
  this.setProperties({ readonly: true }, true);
1223
1223
  this.dataBind();
1224
1224
  }
1225
1225
  else if (htmlAttr === 'style') {
1226
- this.inputWrapper.setAttribute('style', this.htmlAttributes[htmlAttr]);
1226
+ this.inputWrapper.setAttribute('style', this.htmlAttributes["" + htmlAttr]);
1227
1227
  }
1228
1228
  else {
1229
1229
  var defaultAttr = ['title', 'id', 'placeholder', 'aria-placeholder',
1230
1230
  'role', 'autocorrect', 'autocomplete', 'autocapitalize', 'spellcheck', 'minlength', 'maxlength'];
1231
1231
  var validateAttr = ['name', 'required'];
1232
1232
  if (htmlAttr.indexOf('data') === 0 || validateAttr.indexOf(htmlAttr) > -1) {
1233
- this.hiddenElement.setAttribute(htmlAttr, this.htmlAttributes[htmlAttr]);
1233
+ this.hiddenElement.setAttribute(htmlAttr, this.htmlAttributes["" + htmlAttr]);
1234
1234
  }
1235
1235
  else if (defaultAttr.indexOf(htmlAttr) > -1) {
1236
1236
  if (htmlAttr === 'placeholder') {
1237
- Input.setPlaceholder(this.htmlAttributes[htmlAttr], this.inputEle);
1237
+ Input.setPlaceholder(this.htmlAttributes["" + htmlAttr], this.inputEle);
1238
1238
  }
1239
1239
  else {
1240
- this.inputEle.setAttribute(htmlAttr, this.htmlAttributes[htmlAttr]);
1240
+ this.inputEle.setAttribute(htmlAttr, this.htmlAttributes["" + htmlAttr]);
1241
1241
  }
1242
1242
  }
1243
1243
  else {
1244
- this.inputWrapper.setAttribute(htmlAttr, this.htmlAttributes[htmlAttr]);
1244
+ this.inputWrapper.setAttribute(htmlAttr, this.htmlAttributes["" + htmlAttr]);
1245
1245
  }
1246
1246
  }
1247
1247
  }
@@ -1659,7 +1659,7 @@ var DropDownTree = /** @class */ (function (_super) {
1659
1659
  this.isDocumentClick = false;
1660
1660
  e.preventDefault();
1661
1661
  }
1662
- else if (!this.inputWrapper.contains(target) && this.inputFocus && !isFilter) {
1662
+ else if (this.inputWrapper != null && !this.inputWrapper.contains(target) && this.inputFocus && !isFilter) {
1663
1663
  this.focusOut(e);
1664
1664
  }
1665
1665
  };
@@ -2064,7 +2064,7 @@ var DropDownTree = /** @class */ (function (_super) {
2064
2064
  }
2065
2065
  };
2066
2066
  DropDownTree.prototype.ensurePlaceHolder = function () {
2067
- if (this.value && this.value.length === 0) {
2067
+ if (isNOU(this.value) || (this.value && this.value.length === 0)) {
2068
2068
  removeClass([this.inputEle], CHIP_INPUT);
2069
2069
  if (this.chipWrapper) {
2070
2070
  addClass([this.chipWrapper], HIDEICON);
@@ -6,15 +6,27 @@ import { ModuleDeclaration, EmitType } from '@syncfusion/ej2-base';
6
6
  import { SelectionSettingsModel, ListBoxModel, ToolbarSettingsModel } from './list-box-model';
7
7
  import { DataManager, Query } from '@syncfusion/ej2-data';
8
8
  /**
9
- * Defines the selection mode of List Box.
9
+ * Defines the selection mode in ListBox component.
10
+ * ```props
11
+ * Multiple :- Specifies that the ListBox should allow multiple item selection.
12
+ * Single :- Specifies that the ListBox should allow single item selection.
13
+ * ```
10
14
  */
11
15
  export declare type SelectionMode = 'Multiple' | 'Single';
12
16
  /**
13
- * Defines the toolbar position of List Box.
17
+ * Defines the position of the toolbar in ListBox component.
18
+ * ```props
19
+ * Left :- Specifies that the toolbar should be positioned to the left of the ListBox.
20
+ * Right :- Specifies that the toolbar should be positioned to the right of the ListBox.
21
+ * ```
14
22
  */
15
23
  export declare type ToolBarPosition = 'Left' | 'Right';
16
24
  /**
17
- * Defines the checkbox position of List Box.
25
+ * Defines the position of the checkbox in ListBox component.
26
+ * ```props
27
+ * Left :- Specifies that the checkbox should be positioned to the left of the ListBox.
28
+ * Right :- Specifies that the checkbox should be positioned to the right of the ListBox.
29
+ * ```
18
30
  */
19
31
  export declare type CheckBoxPosition = 'Left' | 'Right';
20
32
  declare type obj = {
@@ -288,7 +288,7 @@ var ListBox = /** @class */ (function (_super) {
288
288
  ListBox.prototype.setCssClass = function () {
289
289
  var wrap = this.toolbarSettings.items.length ? this.list.parentElement : this.list;
290
290
  if (this.cssClass) {
291
- addClass([wrap], this.cssClass.split(' '));
291
+ addClass([wrap], this.cssClass.replace(/\s+/g, ' ').trim().split(' '));
292
292
  }
293
293
  if (this.enableRtl) {
294
294
  addClass([this.list], 'e-rtl');
@@ -1937,7 +1937,7 @@ var ListBox = /** @class */ (function (_super) {
1937
1937
  text = value;
1938
1938
  }
1939
1939
  if (typeof (text) === 'string') {
1940
- text = text.split("\\").join("\\\\");
1940
+ text = text.split('\\').join('\\\\');
1941
1941
  }
1942
1942
  li = _this.list.querySelector('[data-value="' + text + '"]');
1943
1943
  if (li) {
@@ -2141,7 +2141,7 @@ var ListBox = /** @class */ (function (_super) {
2141
2141
  removeClass([wrap], oldProp.cssClass.split(' '));
2142
2142
  }
2143
2143
  if (newProp.cssClass) {
2144
- addClass([wrap], newProp.cssClass.split(' '));
2144
+ addClass([wrap], newProp.cssClass.replace(/\s+/g, ' ').trim().split(' '));
2145
2145
  }
2146
2146
  break;
2147
2147
  case 'enableRtl':
@@ -53,6 +53,9 @@ export declare class Mention extends DropDownBase {
53
53
  private spinnerTemplateElement;
54
54
  private lineBreak;
55
55
  private selectedElementID;
56
+ private isSelectCancel;
57
+ private isTyped;
58
+ private didPopupOpenByTypingInitialChar;
56
59
  /**
57
60
  * Defines class/multiple classes separated by a space for the mention component.
58
61
  *
@@ -343,6 +346,7 @@ export declare class Mention extends DropDownBase {
343
346
  */
344
347
  hideSpinner(): void;
345
348
  private hideWaitingSpinner;
349
+ private checkAndUpdateInternalComponent;
346
350
  /**
347
351
  * Shows the spinner loader.
348
352
  *