@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,4 +1,4 @@
1
- import { Animation, Base, ChildProperty, Complex, Component, Draggable, Event, EventHandler, NotifyPropertyChanges, Property, SanitizeHtmlHelper, Touch, addClass, animationMode, append, attributes, closest, compareElementParent, compile, detach, extend, formatUnit, getComponent, getUniqueID, getValue, isBlazor, isNullOrUndefined, isVisible, merge, prepend, remove, removeClass, rippleEffect } from '@syncfusion/ej2-base';
1
+ import { Animation, Base, ChildProperty, Complex, Component, Draggable, Event, EventHandler, NotifyPropertyChanges, Property, SanitizeHtmlHelper, Touch, addClass, animationMode, append, attributes, closest, compareElementParent, compile, detach, extend, formatUnit, getComponent, getUniqueID, getValue, isBlazor, isNullOrUndefined, isVisible, merge, prepend, remove, removeClass, rippleEffect, select } from '@syncfusion/ej2-base';
2
2
  import { DataManager, Query } from '@syncfusion/ej2-data';
3
3
  import { createCheckBox } from '@syncfusion/ej2-buttons';
4
4
 
@@ -286,7 +286,8 @@ 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]) {
@@ -3153,10 +3154,6 @@ var Virtualization = /** @__PURE__ @class */ (function () {
3153
3154
  * @private
3154
3155
  */
3155
3156
  Virtualization.prototype.uiVirtualization = function () {
3156
- this.commonTemplate = '<div class="e-text-content" role="presentation"> ' +
3157
- '<span class="e-list-text"> ${' + this.listViewInstance.fields.text + '} </span></div>';
3158
- this.templateFunction = compile(this.listViewInstance.template || this.commonTemplate, this.listViewInstance);
3159
- this.groupTemplateFunction = compile(this.listViewInstance.groupTemplate || this.commonTemplate, this.listViewInstance);
3160
3157
  this.wireScrollEvent(false);
3161
3158
  var curViewDS = this.listViewInstance.curViewDS;
3162
3159
  var firstDs = curViewDS.slice(0, 1);
@@ -3289,6 +3286,9 @@ var Virtualization = /** @__PURE__ @class */ (function () {
3289
3286
  Virtualization.prototype.onVirtualUiScroll = function (e) {
3290
3287
  var _a;
3291
3288
  var startingHeight;
3289
+ var curViewDS = this.listViewInstance.curViewDS;
3290
+ this.listItemHeight = select(".e-list-item", this.listViewInstance.element).getBoundingClientRect().height;
3291
+ this.totalHeight = (Object.keys(curViewDS).length * this.listItemHeight) - (this.domItemCount * this.listItemHeight);
3292
3292
  if (this.listViewInstance.isWindow) {
3293
3293
  startingHeight = this.listViewInstance.ulElement.getBoundingClientRect().top -
3294
3294
  document.documentElement.getBoundingClientRect().top;
@@ -3404,7 +3404,13 @@ var Virtualization = /** @__PURE__ @class */ (function () {
3404
3404
  if (!element.querySelector('.' + classNames.checkboxWrapper)) {
3405
3405
  element.classList.add(classNames.checklist);
3406
3406
  textContent.classList.add(classNames.checkbox);
3407
- textContent.insertBefore(this.checkListWrapper.cloneNode(true), element.querySelector('.' + classNames.listItemText));
3407
+ if (this.listViewInstance.checkBoxPosition === 'Left') {
3408
+ textContent.classList.add('e-checkbox-left');
3409
+ }
3410
+ else {
3411
+ textContent.classList.add('e-checkbox-right');
3412
+ }
3413
+ textContent.append(this.checkListWrapper.cloneNode(true));
3408
3414
  }
3409
3415
  }
3410
3416
  }
@@ -3912,192 +3918,50 @@ var Virtualization = /** @__PURE__ @class */ (function () {
3912
3918
  this.refreshItemHeight();
3913
3919
  };
3914
3920
  Virtualization.prototype.createUIItem = function (args) {
3915
- var template = document.createElement('div');
3916
- this.templateData = args.curData.isHeader ? args.curData.items[0] :
3917
- args.curData;
3918
- if (this.listViewInstance.isReact) {
3919
- this.commonTemplate = null;
3920
- }
3921
- if (this.listViewInstance.showCheckBox) {
3922
- // eslint-disable-next-line
3923
- this.listViewInstance.renderCheckbox(args);
3924
- if ((!isNullOrUndefined(this.listViewInstance.virtualCheckBox)) &&
3925
- (!isNullOrUndefined(this.listViewInstance.virtualCheckBox.outerHTML))) {
3926
- var div_1 = document.createElement('div');
3927
- var nodes = this.templateFunction(this.templateData, this.listViewInstance);
3928
- if (this.listViewInstance.template && this.listViewInstance.isReact) {
3929
- this.listViewInstance.renderReactTemplates();
3930
- }
3931
- [].slice.call(nodes).forEach(function (ele) {
3932
- div_1.appendChild(ele);
3933
- });
3934
- if (div_1.children && div_1.children[0]) {
3935
- div_1.children[0].classList.add('e-checkbox');
3936
- if (this.listViewInstance.checkBoxPosition === 'Left') {
3937
- div_1.children[0].classList.add('e-checkbox-left');
3938
- }
3939
- else {
3940
- div_1.children[0].classList.add('e-checkbox-right');
3941
- }
3942
- if (this.listViewInstance.checkBoxPosition === 'Left') {
3943
- div_1.children[0].insertBefore(this.listViewInstance.virtualCheckBox, div_1.childNodes[0].children[0]);
3944
- }
3945
- else {
3946
- div_1.children[0].appendChild(this.listViewInstance.virtualCheckBox);
3921
+ if (!args.item.classList.contains("e-list-group-item")) {
3922
+ this.templateData = args.curData.isHeader ? args.curData.items[0] :
3923
+ args.curData;
3924
+ if (this.listViewInstance.showCheckBox) {
3925
+ // eslint-disable-next-line
3926
+ this.listViewInstance.renderCheckbox(args);
3927
+ if ((!isNullOrUndefined(this.listViewInstance.virtualCheckBox)) &&
3928
+ (!isNullOrUndefined(this.listViewInstance.virtualCheckBox.outerHTML))) {
3929
+ var div_1 = document.createElement('div');
3930
+ var commonTemplate = '<div class="e-text-content" role="presentation"> ' +
3931
+ '<span class="e-list-text"> ${' + this.listViewInstance.fields.text + '} </span></div>';
3932
+ var templateFunction = compile(this.listViewInstance.template || commonTemplate, this.listViewInstance);
3933
+ var nodes = templateFunction(this.templateData, this.listViewInstance);
3934
+ if (this.listViewInstance.template && this.listViewInstance.isReact) {
3935
+ this.listViewInstance.renderReactTemplates();
3947
3936
  }
3948
- template.innerHTML = div_1.innerHTML;
3949
- }
3950
- }
3951
- else {
3952
- var div_2 = document.createElement('div');
3953
- var nodes = this.templateFunction(this.templateData, this.listViewInstance);
3954
- if (this.listViewInstance.template && this.listViewInstance.isReact) {
3955
- this.listViewInstance.renderReactTemplates();
3956
- }
3957
- [].slice.call(nodes).forEach(function (ele) {
3958
- div_2.appendChild(ele);
3959
- });
3960
- template.innerHTML = div_2.innerHTML;
3961
- }
3962
- }
3963
- else {
3964
- var nodes = this.templateFunction(this.templateData, this.listViewInstance);
3965
- if (this.listViewInstance.template && this.listViewInstance.isReact) {
3966
- this.listViewInstance.renderReactTemplates();
3967
- }
3968
- [].slice.call(nodes).forEach(function (ele) {
3969
- template.appendChild(ele);
3970
- });
3971
- }
3972
- if (args.curData.isHeader) {
3973
- this.headerData = args.curData;
3974
- }
3975
- var groupTemplate = this.listViewInstance.createElement('div');
3976
- if (this.listViewInstance.fields.groupBy) {
3977
- var nodes = this.groupTemplateFunction(this.headerData, this.listViewInstance);
3978
- if (this.listViewInstance.template && this.listViewInstance.isReact) {
3979
- this.listViewInstance.renderReactTemplates();
3980
- }
3981
- [].slice.call(nodes).forEach(function (ele) {
3982
- groupTemplate.appendChild(ele);
3983
- });
3984
- }
3985
- if ((!this.listViewInstance.isReact || (typeof this.listViewInstance.template == "string" && !args.item.classList.contains("e-list-group-item")) ||
3986
- (typeof this.listViewInstance.groupTemplate == "string" && args.item.classList.contains("e-list-group-item"))) && !this.listViewInstance.isVue) {
3987
- args.item.innerHTML = '';
3988
- }
3989
- args.item.context = { data: args.curData, nodes: { flatTemplateNodes: [], groupTemplateNodes: [] } };
3990
- for (var i = 0; i < template.children.length; i++) {
3991
- this.compileTemplate(template.children[i], args.item, false);
3992
- }
3993
- for (var i = 0; i < groupTemplate.children.length; i++) {
3994
- this.compileTemplate(groupTemplate.children[i], args.item, true);
3995
- }
3996
- args.item.context.template = args.curData.isHeader ? template.firstElementChild :
3997
- groupTemplate.firstElementChild;
3998
- args.item.context.type = args.curData.isHeader ? 'flatList' : 'groupList';
3999
- var element = args.curData.isHeader ? groupTemplate : template;
4000
- if (element.firstElementChild && !this.listViewInstance.isReact && !this.listViewInstance.isVue) {
4001
- args.item.insertBefore(element.firstElementChild, null);
4002
- }
4003
- };
4004
- Virtualization.prototype.compileTemplate = function (element, item, isHeader) {
4005
- var _this = this;
4006
- var subNode = {};
4007
- subNode.onChange = function (value) {
4008
- var groupTemplateElements;
4009
- var templateElements;
4010
- if (_this.listViewInstance.isVue) {
4011
- groupTemplateElements = _this.groupTemplateFunction(value);
4012
- templateElements = _this.templateFunction(value);
4013
- }
4014
- else {
4015
- groupTemplateElements = _this.groupTemplateFunction(value, _this.listViewInstance);
4016
- templateElements = _this.templateFunction(value, _this.listViewInstance);
4017
- }
4018
- if (_this.listViewInstance.template && _this.listViewInstance.isReact) {
4019
- _this.listViewInstance.renderReactTemplates();
4020
- }
4021
- var currentTemplate = templateElements;
4022
- if (value.isHeader) {
4023
- currentTemplate = groupTemplateElements;
4024
- }
4025
- [].slice.call(currentTemplate).forEach(function (currentElement) {
4026
- var RemovableClass = element.classList.value.replace('e-checkbox', '');
4027
- RemovableClass = RemovableClass.replace('e-checkbox-left', '');
4028
- RemovableClass = RemovableClass.replace('e-checkbox-right', '');
4029
- removeClass([element], RemovableClass.split(' ').filter(function (css) { return css; }));
4030
- addClass([element], Array.from(currentElement.classList));
4031
- for (var i = 0; i < element.attributes.length; i++) {
4032
- if (element.attributes[i].name != 'class') {
4033
- var newData = currentElement.getAttribute(element.attributes[i].name);
4034
- element.setAttribute(element.attributes[i].name, newData);
3937
+ [].slice.call(nodes).forEach(function (ele) {
3938
+ div_1.appendChild(ele);
3939
+ });
3940
+ if (div_1.children && div_1.children[0]) {
3941
+ div_1.children[0].classList.add('e-checkbox');
3942
+ if (this.listViewInstance.checkBoxPosition === 'Left') {
3943
+ div_1.children[0].classList.add('e-checkbox-left');
3944
+ }
3945
+ else {
3946
+ div_1.children[0].classList.add('e-checkbox-right');
3947
+ }
3948
+ if (this.listViewInstance.checkBoxPosition === 'Left') {
3949
+ div_1.children[0].insertBefore(this.listViewInstance.virtualCheckBox, div_1.childNodes[0].children[0]);
3950
+ }
3951
+ else {
3952
+ div_1.children[0].appendChild(this.listViewInstance.virtualCheckBox);
3953
+ }
3954
+ while (args.item.lastChild) {
3955
+ args.item.removeChild(args.item.lastChild);
3956
+ }
3957
+ [].slice.call(div_1.children).forEach(function (ele) {
3958
+ args.item.appendChild(ele);
3959
+ });
4035
3960
  }
4036
3961
  }
4037
- [].slice.call(element.children).forEach(function (ele) {
4038
- if (!ele.classList.contains('e-listview-checkbox') && !(ele.classList.contains('e-checkbox-left') || ele.classList.contains('e-checkbox-right'))) {
4039
- ele.remove();
4040
- }
4041
- });
4042
- [].slice.call(currentElement.children).forEach(function (ele) {
4043
- element.appendChild(ele);
4044
- });
4045
- });
4046
- };
4047
- this.updateContextData(item, subNode, isHeader);
4048
- };
4049
- Virtualization.prototype.onChange = function (newData, listElement) {
4050
- listElement.context.data = newData;
4051
- // eslint-disable-next-line max-len
4052
- var groupTemplateNodes = listElement.context.nodes.groupTemplateNodes;
4053
- // eslint-disable-next-line max-len
4054
- var flatTemplateNodes = listElement.context.nodes.flatTemplateNodes;
4055
- // eslint-disable-next-line
4056
- if (!isNullOrUndefined(newData.isHeader) && newData.isHeader && listElement.context.type === 'groupList') {
4057
- // eslint-disable-next-line
4058
- var element = listElement.firstElementChild;
4059
- detach(listElement.firstElementChild);
4060
- listElement.insertBefore(listElement.context.template, null);
4061
- listElement.context.template = element;
4062
- listElement.context.type = 'flatList';
4063
- for (var i = 0; i < groupTemplateNodes.length; i++) {
4064
- // eslint-disable-next-line
4065
- groupTemplateNodes[i].onChange(newData);
4066
- }
4067
- }
4068
- else if (!newData.isHeader && listElement.context.type === 'flatList') {
4069
- var element = listElement.firstElementChild;
4070
- detach(listElement.firstElementChild);
4071
- listElement.insertBefore(listElement.context.template, null);
4072
- listElement.context.template = element;
4073
- listElement.context.type = 'groupList';
4074
- for (var i = 0; i < flatTemplateNodes.length; i++) {
4075
- // eslint-disable-next-line
4076
- flatTemplateNodes[i].onChange(newData);
4077
- }
4078
- }
4079
- else if (!newData.isHeader) {
4080
- for (var i = 0; i < flatTemplateNodes.length; i++) {
4081
- // eslint-disable-next-line
4082
- flatTemplateNodes[i].onChange(newData);
4083
- }
4084
- }
4085
- else {
4086
- for (var i = 0; i < groupTemplateNodes.length; i++) {
4087
- // eslint-disable-next-line
4088
- groupTemplateNodes[i].onChange(newData);
4089
3962
  }
4090
3963
  }
4091
3964
  };
4092
- // eslint-disable-next-line
4093
- Virtualization.prototype.updateContextData = function (listElement, node, isHeader) {
4094
- if (isHeader) {
4095
- listElement.context.nodes.groupTemplateNodes.push(node);
4096
- }
4097
- else {
4098
- listElement.context.nodes.flatTemplateNodes.push(node);
4099
- }
4100
- };
4101
3965
  Virtualization.prototype.reRenderUiVirtualization = function () {
4102
3966
  this.wireScrollEvent(true);
4103
3967
  if (this.listViewInstance.contentContainer) {
@@ -4112,7 +3976,7 @@ var Virtualization = /** @__PURE__ @class */ (function () {
4112
3976
  };
4113
3977
  Virtualization.prototype.updateUI = function (element, index, targetElement) {
4114
3978
  // eslint-disable-next-line @typescript-eslint/ban-types
4115
- var onChange = this.isNgTemplate() ? this.onNgChange : (this.isVueFunctionTemplate()) ? this.onVueChange : this.onChange;
3979
+ var onChange = this.isNgTemplate() ? this.onNgChange : this.onChange;
4116
3980
  if (this.listViewInstance.template || this.listViewInstance.groupTemplate) {
4117
3981
  var curViewDS = this.listViewInstance.curViewDS[index];
4118
3982
  // eslint-disable-next-line
@@ -4136,14 +4000,19 @@ var Virtualization = /** @__PURE__ @class */ (function () {
4136
4000
  * @param {ElementContext} listElement - The HTML element context for the list view.
4137
4001
  * @param {Virtualization} virtualThis - The virtualization context for the list view.
4138
4002
  */
4139
- Virtualization.prototype.onVueChange = function (newData, listElement, virtualThis) {
4003
+ Virtualization.prototype.onChange = function (newData, listElement, virtualThis) {
4140
4004
  var liItem = ListBase.createListItemFromJson(virtualThis.listViewInstance.createElement,
4141
4005
  // eslint-disable-next-line
4142
4006
  [newData], virtualThis.listViewInstance.listBaseOption, null, null, virtualThis.listViewInstance);
4007
+ if (virtualThis.listViewInstance.isReact) {
4008
+ virtualThis.listViewInstance.renderReactTemplates();
4009
+ }
4143
4010
  while (listElement.lastChild) {
4144
4011
  listElement.removeChild(listElement.lastChild);
4145
4012
  }
4146
- listElement.appendChild(liItem[0].firstChild);
4013
+ [].slice.call(liItem[0].children).forEach(function (ele) {
4014
+ listElement.appendChild(ele);
4015
+ });
4147
4016
  };
4148
4017
  Virtualization.prototype.onNgChange = function (newData, listElement, virtualThis) {
4149
4018
  // compile given target element with template for new data