1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147 | 1×
1×
1×
1×
30372×
30372×
30372×
30372×
1×
196619×
1×
43×
36×
36×
43×
43×
43×
43×
43×
328×
328×
1×
196662×
196662×
196662×
196662×
989203×
196662×
196662×
28×
196662×
177818×
196662×
196662×
196662×
196662×
196662×
196662×
983175×
983175×
983175×
983175×
983175×
1×
983175×
983175×
982400×
888719×
888719×
56×
56×
982400×
982323×
196662×
196662×
177818×
196662×
360×
196662×
28×
196634×
2×
196662×
524×
196662×
32×
32×
32×
32×
32×
32×
2×
2×
196662×
1×
36×
287×
287×
36×
1×
196662×
196662×
196662×
196662×
177818×
196662×
83110×
196662×
177817×
196662×
1×
196662×
178566×
196662×
24×
196662×
4×
196662×
196662×
1×
1×
| define(["require", "exports", "@syncfusion/ej2-base", "@syncfusion/ej2-base", "../base/constant", "../base/util", "../base/enum", "./cell-merge-renderer"], function (require, exports, ej2_base_1, ej2_base_2, constant_1, util_1, enum_1, cell_merge_renderer_1) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var RowRenderer = (function () {
function RowRenderer(serviceLocator, cellType, parent) {
this.element = ej2_base_2.createElement('tr', { attrs: { role: 'row' } });
this.cellType = cellType;
this.serviceLocator = serviceLocator;
this.parent = parent;
}
RowRenderer.prototype.render = function (row, columns, attributes, rowTemplate, cloneNode) {
return this.refreshRow(row, columns, attributes, rowTemplate, cloneNode);
};
RowRenderer.prototype.refresh = function (row, columns, isChanged, attributes, rowTemplate) {
if (isChanged) {
row.data = ej2_base_1.extend({}, row.changes);
this.refreshMergeCells(row);
}
var node = this.parent.element.querySelector('[data-uid=' + row.uid + ']');
var tr = this.refreshRow(row, columns, attributes, rowTemplate);
var cells = [].slice.call(tr.cells);
node.innerHTML = '';
for (var _i = 0, cells_1 = cells; _i < cells_1.length; _i++) {
var cell = cells_1[_i];
node.appendChild(cell);
}
};
RowRenderer.prototype.refreshRow = function (row, columns, attributes, rowTemplate, cloneNode) {
var tr = !ej2_base_1.isNullOrUndefined(cloneNode) ? cloneNode : this.element.cloneNode();
var rowArgs = { data: row.data };
var cellArgs = { data: row.data };
var attrCopy = ej2_base_1.extend({}, attributes, {});
var chekBoxEnable = this.parent.getColumns().filter(function (col) { return col.type === 'checkbox' && col.field; })[0];
var value = false;
if (chekBoxEnable) {
value = util_1.getObject(chekBoxEnable.field, rowArgs.data);
}
if (row.isDataRow) {
row.isSelected = this.parent.getSelectedRowIndexes().indexOf(row.index) > -1 || value;
}
Iif (row.isDataRow && this.parent.isCheckBoxSelection
&& this.parent.checkAllRows === 'Check' && this.parent.enableVirtualization) {
row.isSelected = true;
if (this.parent.getSelectedRowIndexes().indexOf(row.index) === -1) {
this.parent.getSelectedRowIndexes().push(row.index);
}
}
this.buildAttributeFromRow(tr, row);
ej2_base_2.attributes(tr, attrCopy);
util_1.setStyleAndAttributes(tr, row.attributes);
var cellRendererFact = this.serviceLocator.getService('cellRendererFactory');
for (var i = 0, len = row.cells.length; i < len; i++) {
var cell = row.cells[i];
cell.isSelected = row.isSelected;
var cellRenderer = cellRendererFact.getCellRenderer(row.cells[i].cellType || enum_1.CellType.Data);
var attrs = { 'index': !ej2_base_1.isNullOrUndefined(row.index) ? row.index.toString() : '' };
if (row.isExpand && row.cells[i].cellType === enum_1.CellType.DetailExpand) {
attrs['class'] = 'e-detailrowexpand';
}
var td = cellRenderer.render(row.cells[i], row.data, attrs);
if (row.cells[i].cellType !== enum_1.CellType.Filter) {
if (row.cells[i].cellType === enum_1.CellType.Data || row.cells[i].cellType === enum_1.CellType.CommandColumn) {
this.parent.trigger(constant_1.queryCellInfo, ej2_base_1.extend(cellArgs, {
cell: td, column: cell.column, colSpan: 1,
foreignKeyData: row.cells[i].foreignKeyData
}));
if (cellArgs.colSpan > 1 || row.cells[i].cellSpan > 1) {
var cellMerge = new cell_merge_renderer_1.CellMergeRender(this.serviceLocator, this.parent);
td = cellMerge.render(cellArgs, row, i, td);
}
}
if (!row.cells[i].isSpanned) {
tr.appendChild(td);
}
}
}
var args = { row: tr, rowHeight: this.parent.rowHeight };
if (row.isDataRow) {
this.parent.trigger(constant_1.rowDataBound, ej2_base_1.extend(rowArgs, args));
}
if (this.parent.enableVirtualization) {
rowArgs.rowHeight = this.parent.rowHeight;
}
if (rowArgs.rowHeight) {
tr.style.height = rowArgs.rowHeight + 'px';
}
else if (this.parent.rowHeight && tr.querySelector('.e-headercell')) {
tr.style.height = this.parent.rowHeight + 'px';
}
if (row.cssClass) {
tr.classList.add(row.cssClass);
}
if (this.parent.element.scrollHeight > this.parent.height && this.parent.aggregates.length) {
for (var i = 0; i < this.parent.aggregates.length; i++) {
var property = 'properties';
var column = 'columns';
Eif (this.parent.aggregates[i][property][column][0].footerTemplate) {
var summarycell = tr.querySelectorAll('.e-summarycell');
if (summarycell.length) {
var lastSummaryCell = (summarycell[summarycell.length - 1]);
ej2_base_1.addClass([lastSummaryCell], ['e-lastsummarycell']);
}
}
}
}
return tr;
};
RowRenderer.prototype.refreshMergeCells = function (row) {
for (var _i = 0, _a = row.cells; _i < _a.length; _i++) {
var cell = _a[_i];
cell.isSpanned = false;
}
return row;
};
RowRenderer.prototype.buildAttributeFromRow = function (tr, row) {
var attr = {};
var prop = { 'rowindex': 'aria-rowindex', 'dataUID': 'data-uid', 'ariaSelected': 'aria-selected' };
var classes = [];
if (row.isDataRow) {
classes.push('e-row');
}
if (row.isAltRow) {
classes.push('e-altrow');
}
if (!ej2_base_1.isNullOrUndefined(row.index)) {
attr[prop.rowindex] = row.index;
}
if (row.rowSpan) {
attr.rowSpan = row.rowSpan;
}
if (row.uid) {
attr[prop.dataUID] = row.uid;
}
if (row.isSelected) {
attr[prop.ariaSelected] = true;
}
if (row.visible === false) {
classes.push('e-hide');
}
attr.class = classes;
util_1.setStyleAndAttributes(tr, attr);
};
return RowRenderer;
}());
exports.RowRenderer = RowRenderer;
});
|