@syncfusion/ej2-lists 23.1.43 → 23.2.4

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.
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 23.1.43
3
+ * version : 23.2.4
4
4
  * Copyright Syncfusion Inc. 2001 - 2023. 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,8 +1,8 @@
1
1
  {
2
2
  "_from": "@syncfusion/ej2-lists@*",
3
- "_id": "@syncfusion/ej2-lists@23.1.42",
3
+ "_id": "@syncfusion/ej2-lists@23.1.43",
4
4
  "_inBundle": false,
5
- "_integrity": "sha512-nZFJBFNTfPXcXNgmiWTzjFhbzstuh0DCafgXcxewrTOPehNusCu3P6oEk+UoPTCzWSXsyKHUaxOP4KkQsCS8CA==",
5
+ "_integrity": "sha512-ZxZ2s8B0jIlHbLi8qgl0OTos0aGYcIV7SW8DITGgwBWX6Orh+hxs/AnQ0YiqL7zwFtJe+E5oo2cctD0Fj6yi8Q==",
6
6
  "_location": "/@syncfusion/ej2-lists",
7
7
  "_phantomChildren": {},
8
8
  "_requested": {
@@ -35,8 +35,8 @@
35
35
  "/@syncfusion/ej2-schedule",
36
36
  "/@syncfusion/ej2-vue-lists"
37
37
  ],
38
- "_resolved": "https://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-lists/-/ej2-lists-23.1.42.tgz",
39
- "_shasum": "833c31a436d2afa9f6963225d61dddbc7166bb6d",
38
+ "_resolved": "https://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-lists/-/ej2-lists-23.1.43.tgz",
39
+ "_shasum": "597cc14fc40bb16eb42cc9c91a539e19230c8380",
40
40
  "_spec": "@syncfusion/ej2-lists@*",
41
41
  "_where": "/jenkins/workspace/elease-automation_release_23.1.1/packages/included",
42
42
  "author": {
@@ -44,9 +44,9 @@
44
44
  },
45
45
  "bundleDependencies": false,
46
46
  "dependencies": {
47
- "@syncfusion/ej2-base": "~23.1.41",
48
- "@syncfusion/ej2-buttons": "~23.1.43",
49
- "@syncfusion/ej2-data": "~23.1.43"
47
+ "@syncfusion/ej2-base": "~23.2.4",
48
+ "@syncfusion/ej2-buttons": "~23.2.4",
49
+ "@syncfusion/ej2-data": "~23.2.4"
50
50
  },
51
51
  "deprecated": false,
52
52
  "description": "The listview control allows you to select an item or multiple items from a list-like interface and represents the data in interactive hierarchical structure across different layouts or views.",
@@ -86,7 +86,7 @@
86
86
  "url": "https://github.com/syncfusion/ej2-javascript-ui-controls/tree/master/controls/lists"
87
87
  },
88
88
  "typings": "index.d.ts",
89
- "version": "23.1.43",
89
+ "version": "23.2.4",
90
90
  "sideEffects": false,
91
91
  "homepage": "https://www.syncfusion.com/javascript-ui-controls"
92
92
  }
@@ -286,7 +286,8 @@ export var ListBase;
286
286
  anchorElement = li.querySelector('.' + cssClass.anchorWrap);
287
287
  // eslint-disable-next-line no-prototype-builtins
288
288
  if (fieldData.hasOwnProperty(fields.tooltip)) {
289
- li.setAttribute('title', fieldData[fields.tooltip]);
289
+ var tooltipText = SanitizeHtmlHelper.sanitize(fieldData[fields.tooltip]);
290
+ li.setAttribute('title', tooltipText);
290
291
  }
291
292
  // eslint-disable-next-line no-prototype-builtins
292
293
  if (fieldData.hasOwnProperty(fields.htmlAttributes) && fieldData[fields.htmlAttributes]) {
@@ -10,7 +10,6 @@ export interface ElementContext extends HTMLElement {
10
10
  export declare class Virtualization {
11
11
  constructor(instance: ListView);
12
12
  private listViewInstance;
13
- private headerData;
14
13
  private templateData;
15
14
  private topElementHeight;
16
15
  private bottomElementHeight;
@@ -31,9 +30,6 @@ export declare class Virtualization {
31
30
  private uiIndices;
32
31
  private listDiff;
33
32
  private elementDifference;
34
- private templateFunction;
35
- private groupTemplateFunction;
36
- private commonTemplate;
37
33
  /**
38
34
  * For internal use only.
39
35
  *
@@ -80,9 +76,6 @@ export declare class Virtualization {
80
76
  addItem(data: DataSource[], fields: Fields, dataSource: DataSource[], index: number): void;
81
77
  private createAndInjectNewItem;
82
78
  createUIItem(args: ItemCreatedArgs): void;
83
- private compileTemplate;
84
- private onChange;
85
- private updateContextData;
86
79
  reRenderUiVirtualization(): void;
87
80
  private updateUI;
88
81
  /**
@@ -92,7 +85,7 @@ export declare class Virtualization {
92
85
  * @param {ElementContext} listElement - The HTML element context for the list view.
93
86
  * @param {Virtualization} virtualThis - The virtualization context for the list view.
94
87
  */
95
- private onVueChange;
88
+ private onChange;
96
89
  private onNgChange;
97
90
  getModuleName(): string;
98
91
  destroy(): void;
@@ -1,5 +1,5 @@
1
1
  import { classNames } from './list-view';
2
- import { EventHandler, append, isNullOrUndefined, detach, removeClass, addClass, compile, formatUnit } from '@syncfusion/ej2-base';
2
+ import { EventHandler, append, isNullOrUndefined, detach, compile, formatUnit, select } from '@syncfusion/ej2-base';
3
3
  import { ListBase } from '../common/list-base';
4
4
  import { DataManager } from '@syncfusion/ej2-data';
5
5
  var listElementCount = 1.5;
@@ -31,10 +31,6 @@ var Virtualization = /** @class */ (function () {
31
31
  * @private
32
32
  */
33
33
  Virtualization.prototype.uiVirtualization = function () {
34
- this.commonTemplate = '<div class="e-text-content" role="presentation"> ' +
35
- '<span class="e-list-text"> ${' + this.listViewInstance.fields.text + '} </span></div>';
36
- this.templateFunction = compile(this.listViewInstance.template || this.commonTemplate, this.listViewInstance);
37
- this.groupTemplateFunction = compile(this.listViewInstance.groupTemplate || this.commonTemplate, this.listViewInstance);
38
34
  this.wireScrollEvent(false);
39
35
  var curViewDS = this.listViewInstance.curViewDS;
40
36
  var firstDs = curViewDS.slice(0, 1);
@@ -167,6 +163,9 @@ var Virtualization = /** @class */ (function () {
167
163
  Virtualization.prototype.onVirtualUiScroll = function (e) {
168
164
  var _a;
169
165
  var startingHeight;
166
+ var curViewDS = this.listViewInstance.curViewDS;
167
+ this.listItemHeight = select(".e-list-item", this.listViewInstance.element).getBoundingClientRect().height;
168
+ this.totalHeight = (Object.keys(curViewDS).length * this.listItemHeight) - (this.domItemCount * this.listItemHeight);
170
169
  if (this.listViewInstance.isWindow) {
171
170
  startingHeight = this.listViewInstance.ulElement.getBoundingClientRect().top -
172
171
  document.documentElement.getBoundingClientRect().top;
@@ -282,7 +281,13 @@ var Virtualization = /** @class */ (function () {
282
281
  if (!element.querySelector('.' + classNames.checkboxWrapper)) {
283
282
  element.classList.add(classNames.checklist);
284
283
  textContent.classList.add(classNames.checkbox);
285
- textContent.insertBefore(this.checkListWrapper.cloneNode(true), element.querySelector('.' + classNames.listItemText));
284
+ if (this.listViewInstance.checkBoxPosition === 'Left') {
285
+ textContent.classList.add('e-checkbox-left');
286
+ }
287
+ else {
288
+ textContent.classList.add('e-checkbox-right');
289
+ }
290
+ textContent.append(this.checkListWrapper.cloneNode(true));
286
291
  }
287
292
  }
288
293
  }
@@ -790,192 +795,50 @@ var Virtualization = /** @class */ (function () {
790
795
  this.refreshItemHeight();
791
796
  };
792
797
  Virtualization.prototype.createUIItem = function (args) {
793
- var template = document.createElement('div');
794
- this.templateData = args.curData.isHeader ? args.curData.items[0] :
795
- args.curData;
796
- if (this.listViewInstance.isReact) {
797
- this.commonTemplate = null;
798
- }
799
- if (this.listViewInstance.showCheckBox) {
800
- // eslint-disable-next-line
801
- this.listViewInstance.renderCheckbox(args);
802
- if ((!isNullOrUndefined(this.listViewInstance.virtualCheckBox)) &&
803
- (!isNullOrUndefined(this.listViewInstance.virtualCheckBox.outerHTML))) {
804
- var div_1 = document.createElement('div');
805
- var nodes = this.templateFunction(this.templateData, this.listViewInstance);
806
- if (this.listViewInstance.template && this.listViewInstance.isReact) {
807
- this.listViewInstance.renderReactTemplates();
808
- }
809
- [].slice.call(nodes).forEach(function (ele) {
810
- div_1.appendChild(ele);
811
- });
812
- if (div_1.children && div_1.children[0]) {
813
- div_1.children[0].classList.add('e-checkbox');
814
- if (this.listViewInstance.checkBoxPosition === 'Left') {
815
- div_1.children[0].classList.add('e-checkbox-left');
816
- }
817
- else {
818
- div_1.children[0].classList.add('e-checkbox-right');
819
- }
820
- if (this.listViewInstance.checkBoxPosition === 'Left') {
821
- div_1.children[0].insertBefore(this.listViewInstance.virtualCheckBox, div_1.childNodes[0].children[0]);
822
- }
823
- else {
824
- div_1.children[0].appendChild(this.listViewInstance.virtualCheckBox);
798
+ if (!args.item.classList.contains("e-list-group-item")) {
799
+ this.templateData = args.curData.isHeader ? args.curData.items[0] :
800
+ args.curData;
801
+ if (this.listViewInstance.showCheckBox) {
802
+ // eslint-disable-next-line
803
+ this.listViewInstance.renderCheckbox(args);
804
+ if ((!isNullOrUndefined(this.listViewInstance.virtualCheckBox)) &&
805
+ (!isNullOrUndefined(this.listViewInstance.virtualCheckBox.outerHTML))) {
806
+ var div_1 = document.createElement('div');
807
+ var commonTemplate = '<div class="e-text-content" role="presentation"> ' +
808
+ '<span class="e-list-text"> ${' + this.listViewInstance.fields.text + '} </span></div>';
809
+ var templateFunction = compile(this.listViewInstance.template || commonTemplate, this.listViewInstance);
810
+ var nodes = templateFunction(this.templateData, this.listViewInstance);
811
+ if (this.listViewInstance.template && this.listViewInstance.isReact) {
812
+ this.listViewInstance.renderReactTemplates();
825
813
  }
826
- template.innerHTML = div_1.innerHTML;
827
- }
828
- }
829
- else {
830
- var div_2 = document.createElement('div');
831
- var nodes = this.templateFunction(this.templateData, this.listViewInstance);
832
- if (this.listViewInstance.template && this.listViewInstance.isReact) {
833
- this.listViewInstance.renderReactTemplates();
834
- }
835
- [].slice.call(nodes).forEach(function (ele) {
836
- div_2.appendChild(ele);
837
- });
838
- template.innerHTML = div_2.innerHTML;
839
- }
840
- }
841
- else {
842
- var nodes = this.templateFunction(this.templateData, this.listViewInstance);
843
- if (this.listViewInstance.template && this.listViewInstance.isReact) {
844
- this.listViewInstance.renderReactTemplates();
845
- }
846
- [].slice.call(nodes).forEach(function (ele) {
847
- template.appendChild(ele);
848
- });
849
- }
850
- if (args.curData.isHeader) {
851
- this.headerData = args.curData;
852
- }
853
- var groupTemplate = this.listViewInstance.createElement('div');
854
- if (this.listViewInstance.fields.groupBy) {
855
- var nodes = this.groupTemplateFunction(this.headerData, this.listViewInstance);
856
- if (this.listViewInstance.template && this.listViewInstance.isReact) {
857
- this.listViewInstance.renderReactTemplates();
858
- }
859
- [].slice.call(nodes).forEach(function (ele) {
860
- groupTemplate.appendChild(ele);
861
- });
862
- }
863
- if ((!this.listViewInstance.isReact || (typeof this.listViewInstance.template == "string" && !args.item.classList.contains("e-list-group-item")) ||
864
- (typeof this.listViewInstance.groupTemplate == "string" && args.item.classList.contains("e-list-group-item"))) && !this.listViewInstance.isVue) {
865
- args.item.innerHTML = '';
866
- }
867
- args.item.context = { data: args.curData, nodes: { flatTemplateNodes: [], groupTemplateNodes: [] } };
868
- for (var i = 0; i < template.children.length; i++) {
869
- this.compileTemplate(template.children[i], args.item, false);
870
- }
871
- for (var i = 0; i < groupTemplate.children.length; i++) {
872
- this.compileTemplate(groupTemplate.children[i], args.item, true);
873
- }
874
- args.item.context.template = args.curData.isHeader ? template.firstElementChild :
875
- groupTemplate.firstElementChild;
876
- args.item.context.type = args.curData.isHeader ? 'flatList' : 'groupList';
877
- var element = args.curData.isHeader ? groupTemplate : template;
878
- if (element.firstElementChild && !this.listViewInstance.isReact && !this.listViewInstance.isVue) {
879
- args.item.insertBefore(element.firstElementChild, null);
880
- }
881
- };
882
- Virtualization.prototype.compileTemplate = function (element, item, isHeader) {
883
- var _this = this;
884
- var subNode = {};
885
- subNode.onChange = function (value) {
886
- var groupTemplateElements;
887
- var templateElements;
888
- if (_this.listViewInstance.isVue) {
889
- groupTemplateElements = _this.groupTemplateFunction(value);
890
- templateElements = _this.templateFunction(value);
891
- }
892
- else {
893
- groupTemplateElements = _this.groupTemplateFunction(value, _this.listViewInstance);
894
- templateElements = _this.templateFunction(value, _this.listViewInstance);
895
- }
896
- if (_this.listViewInstance.template && _this.listViewInstance.isReact) {
897
- _this.listViewInstance.renderReactTemplates();
898
- }
899
- var currentTemplate = templateElements;
900
- if (value.isHeader) {
901
- currentTemplate = groupTemplateElements;
902
- }
903
- [].slice.call(currentTemplate).forEach(function (currentElement) {
904
- var RemovableClass = element.classList.value.replace('e-checkbox', '');
905
- RemovableClass = RemovableClass.replace('e-checkbox-left', '');
906
- RemovableClass = RemovableClass.replace('e-checkbox-right', '');
907
- removeClass([element], RemovableClass.split(' ').filter(function (css) { return css; }));
908
- addClass([element], Array.from(currentElement.classList));
909
- for (var i = 0; i < element.attributes.length; i++) {
910
- if (element.attributes[i].name != 'class') {
911
- var newData = currentElement.getAttribute(element.attributes[i].name);
912
- element.setAttribute(element.attributes[i].name, newData);
814
+ [].slice.call(nodes).forEach(function (ele) {
815
+ div_1.appendChild(ele);
816
+ });
817
+ if (div_1.children && div_1.children[0]) {
818
+ div_1.children[0].classList.add('e-checkbox');
819
+ if (this.listViewInstance.checkBoxPosition === 'Left') {
820
+ div_1.children[0].classList.add('e-checkbox-left');
821
+ }
822
+ else {
823
+ div_1.children[0].classList.add('e-checkbox-right');
824
+ }
825
+ if (this.listViewInstance.checkBoxPosition === 'Left') {
826
+ div_1.children[0].insertBefore(this.listViewInstance.virtualCheckBox, div_1.childNodes[0].children[0]);
827
+ }
828
+ else {
829
+ div_1.children[0].appendChild(this.listViewInstance.virtualCheckBox);
830
+ }
831
+ while (args.item.lastChild) {
832
+ args.item.removeChild(args.item.lastChild);
833
+ }
834
+ [].slice.call(div_1.children).forEach(function (ele) {
835
+ args.item.appendChild(ele);
836
+ });
913
837
  }
914
838
  }
915
- [].slice.call(element.children).forEach(function (ele) {
916
- if (!ele.classList.contains('e-listview-checkbox') && !(ele.classList.contains('e-checkbox-left') || ele.classList.contains('e-checkbox-right'))) {
917
- ele.remove();
918
- }
919
- });
920
- [].slice.call(currentElement.children).forEach(function (ele) {
921
- element.appendChild(ele);
922
- });
923
- });
924
- };
925
- this.updateContextData(item, subNode, isHeader);
926
- };
927
- Virtualization.prototype.onChange = function (newData, listElement) {
928
- listElement.context.data = newData;
929
- // eslint-disable-next-line max-len
930
- var groupTemplateNodes = listElement.context.nodes.groupTemplateNodes;
931
- // eslint-disable-next-line max-len
932
- var flatTemplateNodes = listElement.context.nodes.flatTemplateNodes;
933
- // eslint-disable-next-line
934
- if (!isNullOrUndefined(newData.isHeader) && newData.isHeader && listElement.context.type === 'groupList') {
935
- // eslint-disable-next-line
936
- var element = listElement.firstElementChild;
937
- detach(listElement.firstElementChild);
938
- listElement.insertBefore(listElement.context.template, null);
939
- listElement.context.template = element;
940
- listElement.context.type = 'flatList';
941
- for (var i = 0; i < groupTemplateNodes.length; i++) {
942
- // eslint-disable-next-line
943
- groupTemplateNodes[i].onChange(newData);
944
- }
945
- }
946
- else if (!newData.isHeader && listElement.context.type === 'flatList') {
947
- var element = listElement.firstElementChild;
948
- detach(listElement.firstElementChild);
949
- listElement.insertBefore(listElement.context.template, null);
950
- listElement.context.template = element;
951
- listElement.context.type = 'groupList';
952
- for (var i = 0; i < flatTemplateNodes.length; i++) {
953
- // eslint-disable-next-line
954
- flatTemplateNodes[i].onChange(newData);
955
- }
956
- }
957
- else if (!newData.isHeader) {
958
- for (var i = 0; i < flatTemplateNodes.length; i++) {
959
- // eslint-disable-next-line
960
- flatTemplateNodes[i].onChange(newData);
961
- }
962
- }
963
- else {
964
- for (var i = 0; i < groupTemplateNodes.length; i++) {
965
- // eslint-disable-next-line
966
- groupTemplateNodes[i].onChange(newData);
967
839
  }
968
840
  }
969
841
  };
970
- // eslint-disable-next-line
971
- Virtualization.prototype.updateContextData = function (listElement, node, isHeader) {
972
- if (isHeader) {
973
- listElement.context.nodes.groupTemplateNodes.push(node);
974
- }
975
- else {
976
- listElement.context.nodes.flatTemplateNodes.push(node);
977
- }
978
- };
979
842
  Virtualization.prototype.reRenderUiVirtualization = function () {
980
843
  this.wireScrollEvent(true);
981
844
  if (this.listViewInstance.contentContainer) {
@@ -990,7 +853,7 @@ var Virtualization = /** @class */ (function () {
990
853
  };
991
854
  Virtualization.prototype.updateUI = function (element, index, targetElement) {
992
855
  // eslint-disable-next-line @typescript-eslint/ban-types
993
- var onChange = this.isNgTemplate() ? this.onNgChange : (this.isVueFunctionTemplate()) ? this.onVueChange : this.onChange;
856
+ var onChange = this.isNgTemplate() ? this.onNgChange : this.onChange;
994
857
  if (this.listViewInstance.template || this.listViewInstance.groupTemplate) {
995
858
  var curViewDS = this.listViewInstance.curViewDS[index];
996
859
  // eslint-disable-next-line
@@ -1014,14 +877,19 @@ var Virtualization = /** @class */ (function () {
1014
877
  * @param {ElementContext} listElement - The HTML element context for the list view.
1015
878
  * @param {Virtualization} virtualThis - The virtualization context for the list view.
1016
879
  */
1017
- Virtualization.prototype.onVueChange = function (newData, listElement, virtualThis) {
880
+ Virtualization.prototype.onChange = function (newData, listElement, virtualThis) {
1018
881
  var liItem = ListBase.createListItemFromJson(virtualThis.listViewInstance.createElement,
1019
882
  // eslint-disable-next-line
1020
883
  [newData], virtualThis.listViewInstance.listBaseOption, null, null, virtualThis.listViewInstance);
884
+ if (virtualThis.listViewInstance.isReact) {
885
+ virtualThis.listViewInstance.renderReactTemplates();
886
+ }
1021
887
  while (listElement.lastChild) {
1022
888
  listElement.removeChild(listElement.lastChild);
1023
889
  }
1024
- listElement.appendChild(liItem[0].firstChild);
890
+ [].slice.call(liItem[0].children).forEach(function (ele) {
891
+ listElement.appendChild(ele);
892
+ });
1025
893
  };
1026
894
  Virtualization.prototype.onNgChange = function (newData, listElement, virtualThis) {
1027
895
  // compile given target element with template for new data