@syncfusion/ej2-lists 20.4.40 → 20.4.48

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.
@@ -1436,7 +1436,7 @@ let ListView = class ListView extends Component {
1436
1436
  this.currentLiElements = [];
1437
1437
  this.isNestedList = false;
1438
1438
  this.selectedData = [];
1439
- this.selectedId = [];
1439
+ this.selectedId = this.enablePersistence ? this.selectedId : [];
1440
1440
  this.LISTVIEW_TEMPLATE_ID = `${this.element.id}${LISTVIEW_TEMPLATE_PROPERTY}`;
1441
1441
  this.LISTVIEW_GROUPTEMPLATE_ID = `${this.element.id}${LISTVIEW_GROUPTEMPLATE_PROPERTY}`;
1442
1442
  this.LISTVIEW_HEADERTEMPLATE_ID = `${this.element.id}${LISTVIEW_HEADERTEMPLATE_PROPERTY}`;
@@ -1465,7 +1465,13 @@ let ListView = class ListView extends Component {
1465
1465
  args.item.firstElementChild.classList.add(classNames.checkbox);
1466
1466
  if (typeof this.dataSource[0] !== 'string' && typeof this.dataSource[0] !== 'number') {
1467
1467
  fieldData = getFieldValues(args.curData, this.listBaseOption.fields);
1468
- if (fieldData[this.listBaseOption.fields.isChecked]) {
1468
+ if (this.enablePersistence && !isNullOrUndefined(this.selectedId)) {
1469
+ let index = this.selectedId.findIndex(e => e == fieldData[this.listBaseOption.fields.id].toString());
1470
+ if (index != -1) {
1471
+ this.checkInternally(args, checkboxElement);
1472
+ }
1473
+ }
1474
+ else if (fieldData[this.listBaseOption.fields.isChecked]) {
1469
1475
  this.checkInternally(args, checkboxElement);
1470
1476
  }
1471
1477
  }
@@ -1496,7 +1502,6 @@ let ListView = class ListView extends Component {
1496
1502
  }
1497
1503
  checkInternally(args, checkboxElement) {
1498
1504
  args.item.classList.add(classNames.selected);
1499
- args.item.setAttribute('aria-selected', 'true');
1500
1505
  checkboxElement.querySelector('.' + classNames.checkboxIcon).classList.add(classNames.checked);
1501
1506
  checkboxElement.setAttribute('aria-checked', 'true');
1502
1507
  }
@@ -1522,7 +1527,6 @@ let ListView = class ListView extends Component {
1522
1527
  else {
1523
1528
  liElement.classList.remove(classNames.selected);
1524
1529
  }
1525
- liElement.setAttribute('aria-selected', checked ? 'true' : 'false');
1526
1530
  if (checked === true) {
1527
1531
  checkboxIcon.classList.add(classNames.checked);
1528
1532
  }
@@ -1532,6 +1536,7 @@ let ListView = class ListView extends Component {
1532
1536
  checkboxIcon.parentElement.setAttribute('aria-checked', checked ? 'true' : 'false');
1533
1537
  }
1534
1538
  this.setSelectedItemData(liElement);
1539
+ this.updateSelectedId();
1535
1540
  }
1536
1541
  }
1537
1542
  /**
@@ -1574,6 +1579,7 @@ let ListView = class ListView extends Component {
1574
1579
  if (this.enableVirtualization) {
1575
1580
  this.virtualizationModule.checkedItem(checked);
1576
1581
  }
1582
+ this.updateSelectedId();
1577
1583
  }
1578
1584
  }
1579
1585
  setCheckbox() {
@@ -1689,6 +1695,7 @@ let ListView = class ListView extends Component {
1689
1695
  }
1690
1696
  }
1691
1697
  }
1698
+ this.updateSelectedId();
1692
1699
  }
1693
1700
  removeElement(element) {
1694
1701
  return element && element.parentNode && element.parentNode.removeChild(element);
@@ -1704,9 +1711,6 @@ let ListView = class ListView extends Component {
1704
1711
  homeKeyHandler(e, end) {
1705
1712
  e.preventDefault();
1706
1713
  if (Object.keys(this.dataSource).length && this.curUL) {
1707
- if (this.selectedItems) {
1708
- (this.selectedItems.item).setAttribute('aria-selected', 'false');
1709
- }
1710
1714
  const li = this.curUL.querySelectorAll('.' + classNames.listItem);
1711
1715
  const focusedElement = this.curUL.querySelector('.' + classNames.focused) ||
1712
1716
  this.curUL.querySelector('.' + classNames.selected);
@@ -1880,6 +1884,7 @@ let ListView = class ListView extends Component {
1880
1884
  const eventArgs = this.selectEventData(li, e);
1881
1885
  merge(eventArgs, { isChecked: checkIcon ? checkIcon.classList.contains(classNames.checked) : false });
1882
1886
  this.trigger('select', eventArgs);
1887
+ this.updateSelectedId();
1883
1888
  }
1884
1889
  }
1885
1890
  keyActionHandler(e) {
@@ -1923,11 +1928,10 @@ let ListView = class ListView extends Component {
1923
1928
  focusout() {
1924
1929
  if (Object.keys(this.dataSource).length && this.curUL) {
1925
1930
  const focusedElement = this.curUL.querySelector('.' + classNames.focused);
1926
- const activeElement = this.curUL.querySelector('[aria-selected = true]');
1927
1931
  if (focusedElement) {
1928
1932
  focusedElement.classList.remove(classNames.focused);
1929
- if (activeElement && !this.showCheckBox) {
1930
- activeElement.classList.add(classNames.selected);
1933
+ if (!this.showCheckBox) {
1934
+ this.selectedLI.classList.add(classNames.selected);
1931
1935
  }
1932
1936
  }
1933
1937
  }
@@ -1968,14 +1972,12 @@ let ListView = class ListView extends Component {
1968
1972
  continue;
1969
1973
  }
1970
1974
  else {
1971
- ele.setAttribute('aria-selected', 'false');
1972
1975
  ele.classList.remove(classNames.selected);
1973
1976
  }
1974
1977
  }
1975
1978
  }
1976
1979
  else {
1977
1980
  li.classList.remove(classNames.selected);
1978
- li.setAttribute('aria-selected', 'false');
1979
1981
  }
1980
1982
  }
1981
1983
  isValidLI(li) {
@@ -2001,12 +2003,10 @@ let ListView = class ListView extends Component {
2001
2003
  if (!checkIcon.classList.contains(classNames.checked)) {
2002
2004
  checkIcon.classList.add(classNames.checked);
2003
2005
  li.classList.add(classNames.selected);
2004
- li.setAttribute('aria-selected', 'true');
2005
2006
  }
2006
2007
  else {
2007
2008
  checkIcon.classList.remove(classNames.checked);
2008
2009
  li.classList.remove(classNames.selected);
2009
- li.setAttribute('aria-selected', 'false');
2010
2010
  }
2011
2011
  checkboxElement.setAttribute('aria-checked', checkIcon.classList.contains(classNames.checked) ?
2012
2012
  'true' : 'false');
@@ -2072,7 +2072,6 @@ let ListView = class ListView extends Component {
2072
2072
  this.removeSelect();
2073
2073
  }
2074
2074
  li.classList.add(classNames.selected);
2075
- li.setAttribute('aria-selected', 'true');
2076
2075
  this.removeHover();
2077
2076
  this.setSelectedItemData(li);
2078
2077
  if (this.enableVirtualization) {
@@ -2289,7 +2288,6 @@ let ListView = class ListView extends Component {
2289
2288
  const element = liElements[i];
2290
2289
  if (element.classList.contains('e-list-item')) {
2291
2290
  element.setAttribute('id', this.element.id + '_' + element.getAttribute('data-uid'));
2292
- element.setAttribute('aria-selected', 'false');
2293
2291
  element.setAttribute('tabindex', '-1');
2294
2292
  }
2295
2293
  }
@@ -2454,12 +2452,8 @@ let ListView = class ListView extends Component {
2454
2452
  const li = this.element.querySelector('[data-uid=\'' + pID + '\']');
2455
2453
  li.classList.remove(classNames.disable);
2456
2454
  li.classList.add(classNames.focused);
2457
- if (this.showCheckBox && li.querySelector('.' + classNames.checkboxIcon).classList.contains(classNames.checked)) {
2458
- li.setAttribute('aria-selected', 'true');
2459
- }
2460
- else {
2455
+ if (!(this.showCheckBox && li.querySelector('.' + classNames.checkboxIcon).classList.contains(classNames.checked))) {
2461
2456
  li.classList.remove(classNames.selected);
2462
- li.setAttribute('aria-selected', 'false');
2463
2457
  }
2464
2458
  this.liCollection = this.curUL.querySelectorAll('.' + classNames.listItem);
2465
2459
  if (this.enableHtmlSanitizer) {
@@ -2559,6 +2553,16 @@ let ListView = class ListView extends Component {
2559
2553
  }
2560
2554
  return parentId;
2561
2555
  }
2556
+ updateSelectedId() {
2557
+ this.selectedId = [];
2558
+ const liCollection = this.curUL.getElementsByClassName(classNames.selected);
2559
+ for (let i = 0; i < liCollection.length; i++) {
2560
+ const tempData = this.getItemData(liCollection[i]);
2561
+ if (tempData[this.listBaseOption.fields.id]) {
2562
+ this.selectedId.push(tempData[this.listBaseOption.fields.id]);
2563
+ }
2564
+ }
2565
+ }
2562
2566
  /**
2563
2567
  * Gets the details of the currently selected item from the list items.
2564
2568
  *
@@ -2988,7 +2992,7 @@ let ListView = class ListView extends Component {
2988
2992
  getPersistData() {
2989
2993
  return this.addOnPersist(['cssClass', 'enableRtl', 'htmlAttributes',
2990
2994
  'enable', 'fields', 'animation', 'headerTitle',
2991
- 'sortOrder', 'showIcon', 'height', 'width', 'showCheckBox', 'checkBoxPosition']);
2995
+ 'sortOrder', 'showIcon', 'height', 'width', 'showCheckBox', 'checkBoxPosition', 'selectedId']);
2992
2996
  }
2993
2997
  };
2994
2998
  __decorate([