@syncfusion/ej2-dropdowns 33.2.6 → 33.2.8

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 (33) hide show
  1. package/dist/ej2-dropdowns.min.js +1 -10
  2. package/dist/ej2-dropdowns.umd.min.js +1 -10
  3. package/dist/ej2-dropdowns.umd.min.js.map +1 -1
  4. package/dist/es6/ej2-dropdowns.es2015.js +46 -6
  5. package/dist/es6/ej2-dropdowns.es2015.js.map +1 -1
  6. package/dist/es6/ej2-dropdowns.es5.js +47 -6
  7. package/dist/es6/ej2-dropdowns.es5.js.map +1 -1
  8. package/dist/global/ej2-dropdowns.min.js +1 -10
  9. package/dist/global/ej2-dropdowns.min.js.map +1 -1
  10. package/dist/global/index.d.ts +0 -9
  11. package/package.json +4 -4
  12. package/src/drop-down-base/drop-down-base.js +2 -1
  13. package/src/drop-down-list/drop-down-list.js +3 -0
  14. package/src/drop-down-tree/drop-down-tree.d.ts +1 -0
  15. package/src/drop-down-tree/drop-down-tree.js +13 -0
  16. package/src/mention/mention.js +5 -1
  17. package/src/multi-select/multi-select.d.ts +1 -0
  18. package/src/multi-select/multi-select.js +24 -4
  19. package/styles/bds-lite.css +2 -2
  20. package/styles/bds.css +4 -4
  21. package/styles/drop-down-tree/_bigger.scss +25 -4
  22. package/styles/drop-down-tree/_layout.scss +18 -3
  23. package/styles/drop-down-tree/_material3-dark-definition.scss +2 -0
  24. package/styles/drop-down-tree/_material3-definition.scss +2 -0
  25. package/styles/drop-down-tree/_theme.scss +9 -1
  26. package/styles/drop-down-tree/material3-dark.css +244 -1
  27. package/styles/drop-down-tree/material3.css +244 -1
  28. package/styles/material3-dark-lite.css +106 -1
  29. package/styles/material3-dark.css +244 -1
  30. package/styles/material3-lite.css +106 -1
  31. package/styles/material3.css +244 -1
  32. package/styles/multi-select/_bds-definition.scss +4 -4
  33. package/styles/multi-select/bds.css +4 -4
@@ -1,12 +1,3 @@
1
- /*!
2
- * filename: index.d.ts
3
- * version : 33.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
- */
10
1
  import * as _dropdowns from '@syncfusion/ej2-dropdowns';
11
2
 
12
3
  export declare namespace ej {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@syncfusion/ej2-dropdowns",
3
- "version": "33.2.6",
3
+ "version": "33.2.8",
4
4
  "description": "Essential JS 2 DropDown Components",
5
5
  "author": "Syncfusion Inc.",
6
6
  "license": "SEE LICENSE IN license",
@@ -12,9 +12,9 @@
12
12
  "@syncfusion/ej2-data": "~33.2.5",
13
13
  "@syncfusion/ej2-inputs": "~33.2.5",
14
14
  "@syncfusion/ej2-lists": "~33.2.3",
15
- "@syncfusion/ej2-navigations": "~33.2.6",
16
- "@syncfusion/ej2-notifications": "~33.2.3",
17
- "@syncfusion/ej2-popups": "~33.2.5"
15
+ "@syncfusion/ej2-navigations": "~33.2.8",
16
+ "@syncfusion/ej2-notifications": "~33.2.7",
17
+ "@syncfusion/ej2-popups": "~33.2.7"
18
18
  },
19
19
  "devDependencies": {},
20
20
  "keywords": [
@@ -2251,7 +2251,8 @@ var DropDownBase = /** @class */ (function (_super) {
2251
2251
  else {
2252
2252
  for (var _b = 0, _c = this.listData; _b < _c.length; _b++) {
2253
2253
  var item = _c[_b];
2254
- if (!isNullOrUndefined(item) && getValue((this.fields.value ? this.fields.value : 'value'), item) === value) {
2254
+ if (!isNullOrUndefined(item) && (getValue((this.fields.value ? this.fields.value : 'value'), item) === value
2255
+ || this.getModuleName() === 'multiselect' && this.isVirtualizationEnabled && this.properties.allowCustomValue && getValue((this.fields.value ? this.fields.value : 'value'), item) === value.toString())) {
2255
2256
  return item;
2256
2257
  }
2257
2258
  }
@@ -1626,6 +1626,9 @@ var DropDownList = /** @class */ (function (_super) {
1626
1626
  (this.previousValue != null && this.isObjectInArray(this.previousValue, [this.allowCustom &&
1627
1627
  this.isObjectCustomValue ? this.value ? this.value : dataItem : dataItem.value ?
1628
1628
  this.getDataByValue(dataItem.value) : dataItem])))) {
1629
+ if (this.getModuleName() === 'combobox' && this.autoFill && e && (e.type === 'click' || e.action === 'enter')) {
1630
+ return false;
1631
+ }
1629
1632
  this.isSelected = false;
1630
1633
  return true;
1631
1634
  }
@@ -338,6 +338,7 @@ export declare class DropDownTree extends Component<HTMLElement> implements INot
338
338
  private isFromFilterChange;
339
339
  private valueTemplateContainer;
340
340
  private previousFilterText;
341
+ private fallbackValue;
341
342
  /**
342
343
  * Specifies the template that renders to the popup list content of the
343
344
  * Dropdown Tree component when the data fetch request from the remote server fails.
@@ -176,6 +176,7 @@ var DropDownTree = /** @class */ (function (_super) {
176
176
  // Specifies if the checkAll method has been called
177
177
  _this.isCheckAllCalled = false;
178
178
  _this.isFromFilterChange = false;
179
+ _this.fallbackValue = [];
179
180
  return _this;
180
181
  }
181
182
  /**
@@ -1444,6 +1445,10 @@ var DropDownTree = /** @class */ (function (_super) {
1444
1445
  };
1445
1446
  DropDownTree.prototype.setTreeValue = function () {
1446
1447
  if (this.value !== null && this.value.length !== 0) {
1448
+ var dataReady = this.treeItems && this.treeItems.length > 0;
1449
+ if (!dataReady && this.fallbackValue.length === 0) {
1450
+ this.fallbackValue = this.value.slice();
1451
+ }
1447
1452
  var data = void 0;
1448
1453
  if (this.showCheckBox || this.allowMultiSelection) {
1449
1454
  for (var i = this.value.length - 1; i >= 0; i--) {
@@ -3097,6 +3102,7 @@ var DropDownTree = /** @class */ (function (_super) {
3097
3102
  * @private
3098
3103
  */
3099
3104
  DropDownTree.prototype.onPropertyChanged = function (newProp, oldProp) {
3105
+ var _this = this;
3100
3106
  for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {
3101
3107
  var prop = _a[_i];
3102
3108
  switch (prop) {
@@ -3117,6 +3123,13 @@ var DropDownTree = /** @class */ (function (_super) {
3117
3123
  break;
3118
3124
  case 'fields':
3119
3125
  this.setFields();
3126
+ setTimeout(function () {
3127
+ if (_this.value.length === 0 && _this.fallbackValue.length > 0) {
3128
+ _this.value = _this.fallbackValue;
3129
+ _this.updateValue(_this.fallbackValue);
3130
+ _this.fallbackValue = [];
3131
+ }
3132
+ }, 1);
3120
3133
  break;
3121
3134
  case 'readonly':
3122
3135
  Input.setReadonly(newProp.readonly, this.inputEle);
@@ -460,8 +460,12 @@ var Mention = /** @class */ (function (_super) {
460
460
  ? lastWordRange.substring(lastWordRange.lastIndexOf(this.mentionChar) + 1).trim()
461
461
  : lastWordRange.replace(this.mentionChar, '');
462
462
  }
463
+ if (this.queryString !== '' && e.keyCode === 8 && lastWordRange.includes(this.mentionChar) && !this.isPopupOpen &&
464
+ ((typeof this.displayTemplate === 'function' ? this.displayTemplate() : this.displayTemplate)).includes(this.mentionChar)) {
465
+ this.queryString = '';
466
+ }
463
467
  if (this.mentionChar.charCodeAt(0) === lastWordRange.charCodeAt(0) &&
464
- this.queryString !== '' && e.keyCode !== 38 && e.keyCode !== 40 && e.keyCode !== 8 && !this.lineBreak) {
468
+ this.queryString !== '' && e.keyCode !== 38 && e.keyCode !== 40 && !this.lineBreak) {
465
469
  this.searchLists(e);
466
470
  if (!this.isPopupOpen && this.queryString.length >= this.minLength) {
467
471
  if (!this.isContentEditable(this.inputElement)) {
@@ -727,6 +727,7 @@ export declare class MultiSelect extends DropDownBase implements IInput {
727
727
  private tempQuery;
728
728
  private tempValues;
729
729
  private secureRandom;
730
+ private isInvalidString;
730
731
  private checkForCustomValue;
731
732
  protected getNgDirective(): string;
732
733
  private wrapperClick;
@@ -646,7 +646,7 @@ var MultiSelect = /** @class */ (function (_super) {
646
646
  else {
647
647
  this.updateActionList(ulElement, list, e);
648
648
  }
649
- if (this.dataSource instanceof DataManager && this.allowCustomValue && !this.isCustomRendered &&
649
+ if (this.dataSource instanceof DataManager && this.allowCustomValue && (!this.isCustomRendered || this.enableVirtualization) &&
650
650
  this.inputElement.value && this.inputElement.value !== '') {
651
651
  var query = new Query();
652
652
  query = this.allowFiltering ? query.where(this.fields.text, 'startswith', this.inputElement.value, this.ignoreCase, this.ignoreAccent) : query;
@@ -1138,8 +1138,12 @@ var MultiSelect = /** @class */ (function (_super) {
1138
1138
  window.crypto.getRandomValues(array);
1139
1139
  return array[0] / (0xFFFFFFFF + 1);
1140
1140
  };
1141
+ MultiSelect.prototype.isInvalidString = function (value) {
1142
+ return !value || value.trim().length === 0;
1143
+ };
1141
1144
  MultiSelect.prototype.checkForCustomValue = function (query, fields) {
1142
- var dataChecks = !this.getValueByText(this.inputElement.value, this.ignoreCase);
1145
+ var dataChecks = !this.getValueByText(this.inputElement.value, this.ignoreCase) &&
1146
+ !this.isInvalidString(this.inputElement.value);
1143
1147
  var field = fields ? fields : this.fields;
1144
1148
  this.isCustomReset = true;
1145
1149
  if (this.allowCustomValue && dataChecks) {
@@ -1173,7 +1177,7 @@ var MultiSelect = /** @class */ (function (_super) {
1173
1177
  if (this.enableVirtualization) {
1174
1178
  this.virtualCustomData = dataItem_1;
1175
1179
  var tempData = this.dataSource instanceof DataManager ?
1176
- JSON.parse(JSON.stringify(this.listData)) : JSON.parse(JSON.stringify(this.dataSource));
1180
+ JSON.parse(JSON.stringify(this.mainData)) : JSON.parse(JSON.stringify(this.dataSource));
1177
1181
  var totalData = [];
1178
1182
  if (this.virtualCustomSelectData && this.virtualCustomSelectData.length > 0) {
1179
1183
  totalData = tempData.concat(this.virtualCustomSelectData);
@@ -4101,7 +4105,7 @@ var MultiSelect = /** @class */ (function (_super) {
4101
4105
  this.allowCustomValue &&
4102
4106
  ((!(this.dataSource instanceof DataManager)) ||
4103
4107
  (this.dataSource instanceof DataManager && isInitialVirtualData)))) {
4104
- var indexItem = this.listData.length;
4108
+ var indexItem = this.dataSource instanceof DataManager ? this.totalItemCount : this.listData.length;
4105
4109
  var newValue = {};
4106
4110
  setValue(this.fields.text, value_2, newValue);
4107
4111
  setValue(this.fields.value, value_2, newValue);
@@ -4818,12 +4822,24 @@ var MultiSelect = /** @class */ (function (_super) {
4818
4822
  temp = this.viewWrapper.innerHTML;
4819
4823
  this.updateWrapperText(this.viewWrapper, data);
4820
4824
  }
4825
+ var display = void 0;
4826
+ var topElement = void 0;
4827
+ if (this.componentWrapper.offsetWidth === 0 && this.componentWrapper.parentElement) {
4828
+ topElement = this.componentWrapper.parentElement.parentElement;
4829
+ if (!isNullOrUndefined(topElement) && topElement.style.display === 'none') {
4830
+ display = topElement.style.display;
4831
+ topElement.style.display = 'block';
4832
+ }
4833
+ }
4821
4834
  wrapperleng = this.viewWrapper.offsetWidth +
4822
4835
  parseInt(window.getComputedStyle(this.viewWrapper).paddingRight, 10) +
4823
4836
  parseInt(window.getComputedStyle(this.viewWrapper).paddingLeft, 10);
4824
4837
  overAllContainer = this.componentWrapper.offsetWidth -
4825
4838
  parseInt(window.getComputedStyle(this.componentWrapper).paddingLeft, 10) -
4826
4839
  parseInt(window.getComputedStyle(this.componentWrapper).paddingRight, 10);
4840
+ if (!isNullOrUndefined(display) && display === 'none' && !isNullOrUndefined(topElement)) {
4841
+ topElement.style.display = 'none';
4842
+ }
4827
4843
  if ((wrapperleng + downIconWidth + this.clearIconWidth) > overAllContainer) {
4828
4844
  if (tempData !== undefined && tempData !== '') {
4829
4845
  temp = tempData;
@@ -6580,6 +6596,10 @@ var MultiSelect = /** @class */ (function (_super) {
6580
6596
  }, 100);
6581
6597
  _this.initStatus = true;
6582
6598
  }
6599
+ else {
6600
+ _this.initialValueUpdate(_this.value, true, isInitialRender);
6601
+ _this.initialUpdate();
6602
+ }
6583
6603
  });
6584
6604
  }
6585
6605
  else {
@@ -1597,7 +1597,7 @@ ejs-dropdownlist {
1597
1597
  box-sizing: border-box;
1598
1598
  cursor: text;
1599
1599
  line-height: normal;
1600
- min-height: 28px;
1600
+ min-height: 30px;
1601
1601
  padding: 0 32px 0 0;
1602
1602
  position: relative;
1603
1603
  -webkit-user-select: none;
@@ -2181,7 +2181,7 @@ ejs-multiselect {
2181
2181
  }
2182
2182
 
2183
2183
  .e-small .e-multi-select-wrapper {
2184
- min-height: 24px;
2184
+ min-height: 26px;
2185
2185
  }
2186
2186
 
2187
2187
  .e-small .e-multi-select-wrapper.e-delimiter .e-searcher,
package/styles/bds.css CHANGED
@@ -2081,7 +2081,7 @@ ejs-dropdownlist {
2081
2081
  box-sizing: border-box;
2082
2082
  cursor: text;
2083
2083
  line-height: normal;
2084
- min-height: 28px;
2084
+ min-height: 30px;
2085
2085
  padding: 0 32px 0 0;
2086
2086
  position: relative;
2087
2087
  -webkit-user-select: none;
@@ -2665,7 +2665,7 @@ ejs-multiselect {
2665
2665
  }
2666
2666
 
2667
2667
  .e-small .e-multi-select-wrapper {
2668
- min-height: 24px;
2668
+ min-height: 26px;
2669
2669
  }
2670
2670
 
2671
2671
  .e-small .e-multi-select-wrapper.e-delimiter .e-searcher,
@@ -3139,7 +3139,7 @@ ejs-multiselect {
3139
3139
  }
3140
3140
 
3141
3141
  .e-bigger .e-multi-select-wrapper {
3142
- min-height: 36px;
3142
+ min-height: 40px;
3143
3143
  }
3144
3144
 
3145
3145
  .e-bigger .e-multi-select-wrapper .e-chips {
@@ -3297,7 +3297,7 @@ ejs-multiselect {
3297
3297
  }
3298
3298
 
3299
3299
  .e-bigger.e-small .e-multi-select-wrapper {
3300
- min-height: 28px;
3300
+ min-height: 34px;
3301
3301
  }
3302
3302
 
3303
3303
  .e-bigger.e-small .e-multi-select-wrapper input[type=text] {
@@ -219,7 +219,7 @@
219
219
  }
220
220
  }
221
221
 
222
- @if $ddt-skin-name == 'material' or $ddt-skin-name == 'material-dark' {
222
+ @if $ddt-skin-name == 'Material3' or $ddt-skin-name == 'material' or $ddt-skin-name == 'material-dark' {
223
223
  &.e-outline {
224
224
  .e-overflow {
225
225
  &.e-show-text,
@@ -272,6 +272,12 @@
272
272
  }
273
273
  }
274
274
  }
275
+ .e-float-text.e-label-top {
276
+ @if $ddt-skin-name == 'Material3' {
277
+ font-size: 12px !important; /* stylelint-disable-line declaration-no-important */
278
+ top: 12px !important; /* stylelint-disable-line declaration-no-important */
279
+ }
280
+ }
275
281
  }
276
282
 
277
283
  &.e-float-input.e-control-wrapper:not(.e-show-chip) {
@@ -284,11 +290,21 @@
284
290
  &.e-float-input.e-control-wrapper.e-show-chip,
285
291
  &.e-float-input.e-control-wrapper.e-show-text {
286
292
  .e-ddt-icon {
287
- @include icon-style(12px, 12px);
293
+ @if $ddt-skin-name == 'Material3' {
294
+ padding: 0;
295
+ }
296
+ @else {
297
+ @include icon-style(12px, 12px);
298
+ }
288
299
  }
289
300
 
290
301
  .e-clear-icon {
291
- @include icon-style(11px, 44px);
302
+ @if $ddt-skin-name == 'Material3' {
303
+ @include icon-style(0, 30px);
304
+ }
305
+ @else {
306
+ @include icon-style(11px, 44px);
307
+ }
292
308
  }
293
309
 
294
310
  &:not(.e-show-dd-icon) .e-clear-icon {
@@ -310,7 +326,12 @@
310
326
  padding-top: 19px;
311
327
 
312
328
  .e-chips {
313
- height: 24px;
329
+ @if $ddt-skin-name == 'Material3' {
330
+ height: 26px;
331
+ }
332
+ @else {
333
+ height: 24px;
334
+ }
314
335
  }
315
336
 
316
337
  .e-chips > .e-chipcontent {
@@ -248,7 +248,7 @@
248
248
  }
249
249
  }
250
250
 
251
- @if $ddt-skin-name == 'material' or $ddt-skin-name == 'material-dark' {
251
+ @if $ddt-skin-name == 'Material3' or $ddt-skin-name == 'material' or $ddt-skin-name == 'material-dark' {
252
252
  &.e-outline {
253
253
  .e-overflow {
254
254
  &.e-show-text {
@@ -295,6 +295,11 @@
295
295
  }
296
296
  }
297
297
  }
298
+ .e-float-text.e-label-top {
299
+ @if $ddt-skin-name == 'Material3' {
300
+ font-size: 12px !important; /* stylelint-disable-line declaration-no-important */
301
+ }
302
+ }
298
303
 
299
304
  &:not(.e-show-chip) {
300
305
  .e-ddt-icon,
@@ -306,11 +311,21 @@
306
311
  &.e-show-chip,
307
312
  &.e-show-text {
308
313
  .e-ddt-icon {
309
- @include icon-style(6px, 10px);
314
+ @if $ddt-skin-name == 'Material3' {
315
+ @include icon-style(6px, 0);
316
+ }
317
+ @else {
318
+ @include icon-style(6px, 10px);
319
+ }
310
320
  }
311
321
 
312
322
  .e-clear-icon {
313
- @include icon-style(5px, 38px);
323
+ @if $ddt-skin-name == 'Material3' {
324
+ @include icon-style(5px, 30px);
325
+ }
326
+ @else {
327
+ @include icon-style(5px, 38px);
328
+ }
314
329
  }
315
330
 
316
331
  &:not(.e-show-dd-icon) .e-clear-icon {
@@ -1,3 +1,4 @@
1
+ @use 'sass:color';
1
2
  @use 'ej2-base/styles/common/mixin' as *;
2
3
  @use 'ej2-base/styles/definition/material3-dark' as *;
3
4
  @forward 'ej2-base/styles/definition/material3-dark';
@@ -103,3 +104,4 @@ $ddt-height-none: 0 !default;
103
104
  $ddt-nrml-popup-margin-top: 2px !default;
104
105
  $ddt-list-item-ul-padding: 0 0 0 14px !default;
105
106
  $ddt-chip-border: 1px solid !default;
107
+ $ddt-filled-chip-bg-color: $grey-800 !default;
@@ -1,3 +1,4 @@
1
+ @use 'sass:color';
1
2
  @use 'ej2-base/styles/common/mixin' as *;
2
3
  @use 'ej2-base/styles/definition/material3' as *;
3
4
  @forward 'ej2-base/styles/definition/material3';
@@ -103,3 +104,4 @@ $ddt-height-none: 0 !default;
103
104
  $ddt-nrml-popup-margin-top: 2px !default;
104
105
  $ddt-list-item-ul-padding: 0 0 0 14px !default;
105
106
  $ddt-chip-border: 1px solid !default;
107
+ $ddt-filled-chip-bg-color: color.adjust($grey-300, $lightness: -7%) !default;
@@ -23,8 +23,8 @@
23
23
  .e-chips {
24
24
  @include chip-style($ddt-chip-bg-color, $ddt-chip-close, $ddt-chip-font-color);
25
25
  @if $ddt-skin-name == 'Material3' or $theme-name == 'fluent2-highcontrast' {
26
- border-color: $ddt-chip-border-color;
27
26
  border: $ddt-chip-border;
27
+ border-color: $ddt-chip-border-color;
28
28
  }
29
29
  &:hover {
30
30
  @if $ddt-skin-name == 'highcontrast' {
@@ -44,6 +44,14 @@
44
44
  }
45
45
  }
46
46
 
47
+ @if $ddt-skin-name == 'Material3' {
48
+ &.e-filled {
49
+ .e-chips {
50
+ background: transparent;
51
+ }
52
+ }
53
+ }
54
+
47
55
  @if $ddt-skin-name == 'tailwind' {
48
56
  &.e-disabled {
49
57
  @include chip-style($content-bg-color-alt3, $content-text-color-disabled, $content-text-color-disabled);