exceljs
Version:
Excel Workbook Manager - Read and Write xlsx and csv Files.
54 lines (51 loc) • 1.21 kB
JavaScript
"use strict";
const BaseXform = require('../base-xform');
class IntegerXform extends BaseXform {
constructor(options) {
super();
this.tag = options.tag;
this.attr = options.attr;
this.attrs = options.attrs;
// option to render zero
this.zero = options.zero;
}
render(xmlStream, model) {
// int is different to float in that zero is not rendered
if (model || this.zero) {
xmlStream.openNode(this.tag);
if (this.attrs) {
xmlStream.addAttributes(this.attrs);
}
if (this.attr) {
xmlStream.addAttribute(this.attr, model);
} else {
xmlStream.writeText(model);
}
xmlStream.closeNode();
}
}
parseOpen(node) {
if (node.name === this.tag) {
if (this.attr) {
this.model = parseInt(node.attributes[this.attr], 10);
} else {
this.text = [];
}
return true;
}
return false;
}
parseText(text) {
if (!this.attr) {
this.text.push(text);
}
}
parseClose() {
if (!this.attr) {
this.model = parseInt(this.text.join('') || 0, 10);
}
return false;
}
}
module.exports = IntegerXform;
//# sourceMappingURL=integer-xform.js.map