UNPKG

tlojs

Version:

The Last One - The last npm package you'll need to install

67 lines (66 loc) 2.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TableRenderer = void 0; var TableRenderer = /** @class */ (function () { function TableRenderer(table) { this.table = table; } TableRenderer.prototype.renderTo = function (domElement) { if (!domElement) { return; } this.ele = domElement; this.ele.classList.add('tlo-table'); this.drawHeaders(); this.drawBody(); }; TableRenderer.prototype.clear = function () { var _a; if (this.body) { (_a = this.body.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(this.body); } }; TableRenderer.prototype.drawBody = function () { var _a; var body = document.createElement('tbody'); this.body = body; for (var _i = 0, _b = this.table.rows; _i < _b.length; _i++) { var row = _b[_i]; var tr = document.createElement('tr'); for (var _c = 0, _d = row.cells; _c < _d.length; _c++) { var cell = _d[_c]; var td = document.createElement('td'); td.innerText = cell.value + ''; tr.appendChild(td); } body.appendChild(tr); } (_a = this.ele) === null || _a === void 0 ? void 0 : _a.appendChild(body); }; TableRenderer.prototype.drawHeaders = function () { var _this = this; var _a; var headers = this.table.getHeaders(); var headEle = document.createElement('thead'); var _loop_1 = function (i) { var header = headers[i]; var ele = document.createElement('th'); ele.innerText = header; ele.onclick = function () { var attr = ele.getAttribute('ascending'); var isAscending = attr === 'true'; ele.setAttribute('ascending', !isAscending + ''); _this.table.sort(i, !isAscending); _this.clear(); _this.drawBody(); }; headEle.appendChild(ele); }; for (var i = 0; i < headers.length; i++) { _loop_1(i); } (_a = this.ele) === null || _a === void 0 ? void 0 : _a.appendChild(headEle); }; return TableRenderer; }()); exports.TableRenderer = TableRenderer;