@syncfusion/ej2-grids
Version:
Feature-rich JavaScript datagrid (datatable) control with built-in support for editing, filtering, grouping, paging, sorting, and exporting to Excel.
60 lines (59 loc) • 2.69 kB
JavaScript
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
import { IndentCellRenderer } from './indent-cell-renderer';
import { CellType } from '../base/enum';
/**
* ExpandCellRenderer class which responsible for building group expand cell.
*
* @hidden
*/
var ExpandCellRenderer = /** @class */ (function (_super) {
__extends(ExpandCellRenderer, _super);
function ExpandCellRenderer() {
return _super !== null && _super.apply(this, arguments) || this;
}
/**
* Function to render the expand cell
*
* @param {Cell} cell - specifies the cell
* @param {Object} data - specifies the data
* @param {string} data.field - Defines the field
* @param {string} data.key - Defines the key
* @param {Object} attr - specifies the attribute
* @param {boolean} isExpand - specifies isexpand
* @returns {Element} returns the element
*/
ExpandCellRenderer.prototype.render = function (cell, data, attr, isExpand) {
var node = this.element.cloneNode();
node.setAttribute('ej-mappingname', data.field);
node.setAttribute('ej-mappingvalue', data.key);
node.setAttribute('aria-expanded', isExpand ? 'true' : 'false');
node.setAttribute('tabindex', '-1');
if (this.parent.infiniteScrollSettings && this.parent.infiniteScrollSettings.enableCache &&
!this.parent.groupSettings.enableLazyLoading) {
cell.cellType = CellType.Indent;
node.className = isExpand ? 'e-recordplusexpand e-disablepointer' : 'e-recordpluscollapse e-disablepointer';
}
else {
node.className = isExpand ? 'e-recordplusexpand' : 'e-recordpluscollapse';
node.appendChild(this.parent.createElement('a', {
className: isExpand ? 'e-icons e-gdiagonaldown e-icon-gdownarrow' : 'e-icons e-gnextforward e-icon-grightarrow',
attrs: { href: '#', 'title': isExpand ? this.localizer.getConstant('Expanded') : this.localizer.getConstant('Collapsed') }
}));
}
return node;
};
return ExpandCellRenderer;
}(IndentCellRenderer));
export { ExpandCellRenderer };