@difftim/excelize
Version:
Excel Workbook Manager - Read and Write xlsx and csv Files.
62 lines (53 loc) • 1.19 kB
JavaScript
const BaseXform = require('../../base-xform');
const CFXform = require('./c-f-xform');
class CStrRef extends BaseXform {
get tag() {
return 'c:strRef';
}
get textXform() {
return this._textXform || (this._textXform = new CFXform());
}
render(xmlStream, model) {
xmlStream.openNode(this.tag);
this.textXform.render(xmlStream, model);
xmlStream.closeNode();
}
parseOpen(node) {
if (this.parser) {
this.parser.parseOpen(node);
return true;
}
switch (node.name) {
case this.tag:
this.model = {};
return true;
case 'c:f':
this.parser = this.textXform;
this.parser.parseOpen(node);
return true;
default:
return false;
}
}
parseText(text) {
if (this.parser) {
this.parser.parseText(text);
}
}
parseClose(name) {
switch (name) {
case this.tag:
return false;
case 'c:f':
this.model = this.parser.model;
this.parser = undefined;
return true;
default:
if (this.parser) {
this.parser.parseClose(name);
}
return true;
}
}
}
module.exports = CStrRef;