@syncfusion/ej2-dropdowns 20.4.43 → 20.4.49

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 (78) hide show
  1. package/CHANGELOG.md +30 -0
  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 +28 -10
  6. package/dist/es6/ej2-dropdowns.es2015.js.map +1 -1
  7. package/dist/es6/ej2-dropdowns.es5.js +28 -10
  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 +11 -11
  13. package/src/drop-down-list/drop-down-list.js +1 -1
  14. package/src/drop-down-tree/drop-down-tree-model.d.ts +1 -1
  15. package/src/drop-down-tree/drop-down-tree.d.ts +2 -0
  16. package/src/drop-down-tree/drop-down-tree.js +21 -6
  17. package/src/list-box/list-box.js +3 -0
  18. package/src/mention/mention.js +3 -3
  19. package/styles/bootstrap-dark.css +5 -2
  20. package/styles/bootstrap.css +5 -2
  21. package/styles/bootstrap4.css +5 -2
  22. package/styles/bootstrap5-dark.css +5 -2
  23. package/styles/bootstrap5.css +5 -2
  24. package/styles/drop-down-list/_layout.scss +3 -0
  25. package/styles/drop-down-list/bootstrap-dark.css +3 -0
  26. package/styles/drop-down-list/bootstrap.css +3 -0
  27. package/styles/drop-down-list/bootstrap4.css +3 -0
  28. package/styles/drop-down-list/bootstrap5-dark.css +3 -0
  29. package/styles/drop-down-list/bootstrap5.css +3 -0
  30. package/styles/drop-down-list/fabric-dark.css +3 -0
  31. package/styles/drop-down-list/fabric.css +3 -0
  32. package/styles/drop-down-list/fluent-dark.css +3 -0
  33. package/styles/drop-down-list/fluent.css +3 -0
  34. package/styles/drop-down-list/highcontrast-light.css +3 -0
  35. package/styles/drop-down-list/highcontrast.css +3 -0
  36. package/styles/drop-down-list/material-dark.css +3 -0
  37. package/styles/drop-down-list/material.css +3 -0
  38. package/styles/drop-down-list/tailwind-dark.css +3 -0
  39. package/styles/drop-down-list/tailwind.css +3 -0
  40. package/styles/fabric-dark.css +5 -2
  41. package/styles/fabric.css +5 -2
  42. package/styles/fluent-dark.css +5 -2
  43. package/styles/fluent.css +5 -2
  44. package/styles/highcontrast-light.css +5 -2
  45. package/styles/highcontrast.css +5 -2
  46. package/styles/material-dark.css +4 -1
  47. package/styles/material.css +4 -1
  48. package/styles/multi-select/_bootstrap-dark-definition.scss +1 -0
  49. package/styles/multi-select/_bootstrap-definition.scss +1 -0
  50. package/styles/multi-select/_bootstrap4-definition.scss +1 -0
  51. package/styles/multi-select/_bootstrap5-definition.scss +1 -0
  52. package/styles/multi-select/_fabric-dark-definition.scss +1 -0
  53. package/styles/multi-select/_fabric-definition.scss +1 -0
  54. package/styles/multi-select/_fluent-definition.scss +1 -0
  55. package/styles/multi-select/_fusionnew-definition.scss +1 -0
  56. package/styles/multi-select/_highcontrast-definition.scss +1 -0
  57. package/styles/multi-select/_highcontrast-light-definition.scss +1 -0
  58. package/styles/multi-select/_layout.scss +2 -2
  59. package/styles/multi-select/_material-dark-definition.scss +1 -0
  60. package/styles/multi-select/_material-definition.scss +1 -0
  61. package/styles/multi-select/_tailwind-definition.scss +1 -0
  62. package/styles/multi-select/bootstrap-dark.css +2 -2
  63. package/styles/multi-select/bootstrap.css +2 -2
  64. package/styles/multi-select/bootstrap4.css +2 -2
  65. package/styles/multi-select/bootstrap5-dark.css +2 -2
  66. package/styles/multi-select/bootstrap5.css +2 -2
  67. package/styles/multi-select/fabric-dark.css +2 -2
  68. package/styles/multi-select/fabric.css +2 -2
  69. package/styles/multi-select/fluent-dark.css +2 -2
  70. package/styles/multi-select/fluent.css +2 -2
  71. package/styles/multi-select/highcontrast-light.css +2 -2
  72. package/styles/multi-select/highcontrast.css +2 -2
  73. package/styles/multi-select/material-dark.css +1 -1
  74. package/styles/multi-select/material.css +1 -1
  75. package/styles/multi-select/tailwind-dark.css +2 -2
  76. package/styles/multi-select/tailwind.css +2 -2
  77. package/styles/tailwind-dark.css +5 -2
  78. package/styles/tailwind.css +5 -2
@@ -2468,8 +2468,8 @@ let DropDownList = class DropDownList extends DropDownBase {
2468
2468
  this.setScrollPosition(e);
2469
2469
  }
2470
2470
  if (Browser.info.name !== 'mozilla') {
2471
- attributes(this.targetElement(), { 'aria-label': this.inputElement.value });
2472
2471
  if (this.targetElement()) {
2472
+ attributes(this.targetElement(), { 'aria-label': this.inputElement.value });
2473
2473
  attributes(this.targetElement(), { 'aria-describedby': this.inputElement.id != '' ? this.inputElement.id : this.element.id });
2474
2474
  this.targetElement().removeAttribute('aria-live');
2475
2475
  }
@@ -4447,6 +4447,8 @@ let DropDownTree = class DropDownTree extends Component {
4447
4447
  this.selectedData = [];
4448
4448
  this.filterDelayTime = 300;
4449
4449
  this.isClicked = false;
4450
+ // Specifies if the checkAll method has been called
4451
+ this.isCheckAllCalled = false;
4450
4452
  }
4451
4453
  /**
4452
4454
  * Get the properties to be maintained in the persisted state.
@@ -5369,7 +5371,7 @@ let DropDownTree = class DropDownTree extends Component {
5369
5371
  if (isValid && this.value !== null && (this.value && this.value.length !== 0)) {
5370
5372
  addClass([this.inputEle], CHIP_INPUT);
5371
5373
  }
5372
- else if (this.value === null || (this.value && this.value.length === 0)) {
5374
+ else if (this.value === null || (this.value && this.value.length === 0) || this.chipWrapper) {
5373
5375
  addClass([this.chipWrapper], HIDEICON);
5374
5376
  }
5375
5377
  }
@@ -5424,6 +5426,7 @@ let DropDownTree = class DropDownTree extends Component {
5424
5426
  frameSpan.classList.add(CHECK);
5425
5427
  ariaState = 'true';
5426
5428
  if (!this.isReverseUpdate) {
5429
+ this.isCheckAllCalled = true;
5427
5430
  this.treeObj.checkAll();
5428
5431
  if (!this.changeOnBlur) {
5429
5432
  this.triggerChangeEvent(e);
@@ -5724,6 +5727,7 @@ let DropDownTree = class DropDownTree extends Component {
5724
5727
  nodeSelected: this.onNodeSelected.bind(this),
5725
5728
  nodeChecked: this.onNodeChecked.bind(this),
5726
5729
  nodeChecking: this.beforeCheck.bind(this),
5730
+ nodeExpanded: this.onNodeExpanded.bind(this),
5727
5731
  actionFailure: this.onActionFailure.bind(this),
5728
5732
  nodeClicked: this.onNodeClicked.bind(this),
5729
5733
  dataBound: this.OnDataBound.bind(this),
@@ -5830,7 +5834,7 @@ let DropDownTree = class DropDownTree extends Component {
5830
5834
  const height = Math.round(this.header.getBoundingClientRect().height);
5831
5835
  popupHeight = formatUnit(parseInt(popupHeight, 10) - height + 'px');
5832
5836
  }
5833
- if (this.showCheckBox && this.showSelectAll) {
5837
+ if (this.showCheckBox && this.showSelectAll && (!this.popupDiv.classList.contains(NODATA))) {
5834
5838
  const height = Math.round(this.checkAllParent.getBoundingClientRect().height);
5835
5839
  popupHeight = formatUnit(parseInt(popupHeight, 10) - height + 'px');
5836
5840
  }
@@ -6223,13 +6227,14 @@ let DropDownTree = class DropDownTree extends Component {
6223
6227
  const nodes = this.treeObj.element.querySelectorAll('li');
6224
6228
  const checkedNodes = this.treeObj.element.querySelectorAll('li .e-checkbox-wrapper[aria-checked=true]');
6225
6229
  const wrap = closest(this.checkBoxElement, '.' + CHECKBOXWRAP);
6226
- if (wrap && args.action === 'uncheck') {
6230
+ if (wrap && args.action === 'uncheck' && (args.isInteracted || checkedNodes.length === 0)) {
6227
6231
  this.isReverseUpdate = true;
6228
6232
  this.changeState(wrap, 'uncheck');
6229
6233
  this.isReverseUpdate = false;
6230
6234
  }
6231
- else if (wrap && args.action === 'check' && checkedNodes.length === nodes.length) {
6235
+ else if (wrap && args.action === 'check' && checkedNodes.length === nodes.length && this.isCheckAllCalled) {
6232
6236
  this.isReverseUpdate = true;
6237
+ this.isCheckAllCalled = false;
6233
6238
  this.changeState(wrap, 'check');
6234
6239
  this.isReverseUpdate = false;
6235
6240
  }
@@ -6240,6 +6245,13 @@ let DropDownTree = class DropDownTree extends Component {
6240
6245
  this.oldValue = this.value ? this.value.slice() : this.value;
6241
6246
  }
6242
6247
  }
6248
+ onNodeExpanded(args) {
6249
+ if (this.hasTemplate && this.portals) {
6250
+ this.portals = [].concat(this.treeObj.portals);
6251
+ /* eslint-enable */
6252
+ this.renderReactTemplates();
6253
+ }
6254
+ }
6243
6255
  updateClearButton(state) {
6244
6256
  if (state) {
6245
6257
  if (!this.inputWrapper.contains(this.overAllClear)) {
@@ -6741,6 +6753,7 @@ let DropDownTree = class DropDownTree extends Component {
6741
6753
  selectAllItems(state) {
6742
6754
  if (this.showCheckBox) {
6743
6755
  if (state) {
6756
+ this.isCheckAllCalled = true;
6744
6757
  this.treeObj.checkAll();
6745
6758
  }
6746
6759
  else {
@@ -6835,8 +6848,6 @@ let DropDownTree = class DropDownTree extends Component {
6835
6848
  }
6836
6849
  else {
6837
6850
  this.noRecord = this.createElement('div');
6838
- addClass([this.noRecord], NODATACONTAINER);
6839
- prepend([this.noRecord], this.popupDiv);
6840
6851
  }
6841
6852
  if (this.noRecordsTemplate !== 'No Records Found' || this.actionFailureTemplate !== 'The Request Failed') {
6842
6853
  const template = actionFailure ? this.actionFailureTemplate : this.noRecordsTemplate;
@@ -6848,6 +6859,8 @@ let DropDownTree = class DropDownTree extends Component {
6848
6859
  if (tempArr) {
6849
6860
  tempArr = Array.prototype.slice.call(tempArr);
6850
6861
  append(tempArr, this.noRecord);
6862
+ addClass([this.noRecord], NODATACONTAINER);
6863
+ prepend([this.noRecord], this.popupDiv);
6851
6864
  }
6852
6865
  }
6853
6866
  else {
@@ -6856,6 +6869,8 @@ let DropDownTree = class DropDownTree extends Component {
6856
6869
  this.l10n = new L10n(this.getLocaleName(), l10nLocale, this.locale);
6857
6870
  this.noRecord.innerHTML = actionFailure ?
6858
6871
  this.l10n.getConstant('actionFailureTemplate') : this.l10n.getConstant('noRecordsTemplate');
6872
+ addClass([this.noRecord], NODATACONTAINER);
6873
+ prepend([this.noRecord], this.popupDiv);
6859
6874
  }
6860
6875
  }
6861
6876
  updateRecordTemplate(action) {
@@ -15463,6 +15478,9 @@ let ListBox = ListBox_1 = class ListBox extends DropDownBase {
15463
15478
  else {
15464
15479
  text = value;
15465
15480
  }
15481
+ if (typeof (text) === 'string') {
15482
+ text = text.split("\\").join("\\\\");
15483
+ }
15466
15484
  li = this.list.querySelector('[data-value="' + text + '"]');
15467
15485
  if (li) {
15468
15486
  if (this.selectionSettings.showCheckbox) {
@@ -16059,7 +16077,7 @@ let Mention = class Mention extends DropDownBase {
16059
16077
  const isNavigation = (e.action === 'down' || e.action === 'up' || e.action === 'pageUp' || e.action === 'pageDown'
16060
16078
  || e.action === 'home' || e.action === 'end');
16061
16079
  const isTabAction = e.action === 'tab' || e.action === 'close';
16062
- if (this.list === undefined && !this.isRequested && !isTabAction && e.action !== 'escape') {
16080
+ if (this.list === undefined && !this.isRequested && !isTabAction && e.action !== 'escape' && e.action !== 'space') {
16063
16081
  this.renderList();
16064
16082
  }
16065
16083
  if (isNullOrUndefined(this.list) || (!isNullOrUndefined(this.liCollections) &&
@@ -16203,11 +16221,11 @@ let Mention = class Mention extends DropDownBase {
16203
16221
  }
16204
16222
  }
16205
16223
  else if (this.allowSpaces && this.queryString !== '' && currentRange && currentRange.trim() !== '' && currentRange.replace('\u00a0', ' ').lastIndexOf(' ') < currentRange.length - 1 &&
16206
- e.keyCode !== 38 && e.keyCode !== 40 && e.keyCode !== 8) {
16224
+ e.keyCode !== 38 && e.keyCode !== 40 && e.keyCode !== 8 && this.mentionChar.charCodeAt(0) === lastWordRange.charCodeAt(0)) {
16207
16225
  this.queryString = currentRange.substring(currentRange.lastIndexOf(this.mentionChar) + 1).replace('\u00a0', ' ');
16208
16226
  this.searchLists(e);
16209
16227
  }
16210
- else if (this.queryString === '' && this.isPopupOpen && e.keyCode !== 38 && e.keyCode !== 40) {
16228
+ else if (this.queryString === '' && this.isPopupOpen && e.keyCode !== 38 && e.keyCode !== 40 && this.mentionChar.charCodeAt(0) === lastWordRange.charCodeAt(0)) {
16211
16229
  this.searchLists(e);
16212
16230
  if (!this.isListResetted) {
16213
16231
  this.resetList(this.dataSource, this.fields);