@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.
- package/CHANGELOG.md +2 -0
- package/dist/ej2-lists.min.js +2 -2
- package/dist/ej2-lists.umd.min.js +2 -2
- package/dist/ej2-lists.umd.min.js.map +1 -1
- package/dist/es6/ej2-lists.es2015.js +59 -189
- package/dist/es6/ej2-lists.es2015.js.map +1 -1
- package/dist/es6/ej2-lists.es5.js +59 -190
- package/dist/es6/ej2-lists.es5.js.map +1 -1
- package/dist/global/ej2-lists.min.js +2 -2
- package/dist/global/ej2-lists.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/package.json +8 -8
- package/src/common/list-base.js +2 -1
- package/src/list-view/virtualization.d.ts +1 -8
- package/src/list-view/virtualization.js +57 -189
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
3916
|
-
|
|
3917
|
-
|
|
3918
|
-
|
|
3919
|
-
|
|
3920
|
-
|
|
3921
|
-
|
|
3922
|
-
|
|
3923
|
-
|
|
3924
|
-
|
|
3925
|
-
|
|
3926
|
-
|
|
3927
|
-
|
|
3928
|
-
|
|
3929
|
-
|
|
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
|
-
|
|
3949
|
-
|
|
3950
|
-
|
|
3951
|
-
|
|
3952
|
-
|
|
3953
|
-
|
|
3954
|
-
|
|
3955
|
-
|
|
3956
|
-
|
|
3957
|
-
|
|
3958
|
-
|
|
3959
|
-
|
|
3960
|
-
|
|
3961
|
-
|
|
3962
|
-
|
|
3963
|
-
|
|
3964
|
-
|
|
3965
|
-
|
|
3966
|
-
|
|
3967
|
-
|
|
3968
|
-
|
|
3969
|
-
|
|
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 :
|
|
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.
|
|
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
|
-
|
|
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
|