FreeDatas2HTML/src/build/freeDatas2HTMLRender.js

53 lines
2.3 KiB
JavaScript

var errors = require("./errors.js");
var Render = (function () {
function Render(converter, settings) {
if (settings === void 0) { settings = Render.defaultSettings; }
this._converter = converter;
this.settings = settings;
}
Render.prototype.rend2HTML = function (datas) {
if (this._converter.fields === undefined)
throw new Error(errors.renderNeedDatas);
else {
var datasHTML = this.settings.allBegining;
if (this.settings.fieldsBegining !== undefined && this.settings.fieldDisplaying !== undefined && this.settings.fieldsEnding !== undefined) {
datasHTML += this.settings.fieldsBegining;
for (var _i = 0, _a = this._converter.fields; _i < _a.length; _i++) {
var field = _a[_i];
datasHTML += this.settings.fieldDisplaying.replace("#FIELDNAME", field);
}
datasHTML += this.settings.fieldsEnding;
}
datasHTML += this.settings.linesBegining;
for (var _b = 0, datas_1 = datas; _b < datas_1.length; _b++) {
var row = datas_1[_b];
datasHTML += this.settings.lineBegining;
for (var _c = 0, _d = this._converter.fields; _c < _d.length; _c++) {
var field = _d[_c];
if (row[field] !== undefined)
datasHTML += this.settings.dataDisplaying.replace("#VALUE", row[field]).replace("#FIELDNAME", field);
else
datasHTML += this.settings.dataDisplaying.replace("#VALUE", "").replace("#FIELDNAME", field);
}
datasHTML += this.settings.lineEnding;
}
datasHTML += this.settings.linesEnding + this.settings.allEnding;
return datasHTML;
}
};
Render.defaultSettings = {
allBegining: "<table>",
allEnding: "</table>",
fieldsBegining: "<thead><tr>",
fieldsEnding: "</tr></thead>",
fieldDisplaying: "<th>#FIELDNAME</th>",
linesBegining: "<tbody>",
linesEnding: "</tbody>",
lineBegining: "<tr>",
lineEnding: "</tr>",
dataDisplaying: "<td>#VALUE</td>",
};
return Render;
}());
export { Render };