exceljs
Version:
Excel Workbook Manager - Read and Write xlsx and csv Files.
87 lines (66 loc) • 1.84 kB
JavaScript
/* eslint-disable max-classes-per-file */
const CompositeXform = require('../composite-xform');
const ConditionalFormattingsExt = require('./cf-ext/conditional-formattings-ext-xform');
class ExtXform extends CompositeXform {
constructor() {
super();
this.map = {
'x14:conditionalFormattings': (this.conditionalFormattings = new ConditionalFormattingsExt()),
};
}
get tag() {
return 'ext';
}
hasContent(model) {
return this.conditionalFormattings.hasContent(model.conditionalFormattings);
}
prepare(model, options) {
this.conditionalFormattings.prepare(model.conditionalFormattings, options);
}
render(xmlStream, model) {
xmlStream.openNode('ext', {
uri: '{78C0D931-6437-407d-A8EE-F0AAD7539E65}',
'xmlns:x14': 'http://schemas.microsoft.com/office/spreadsheetml/2009/9/main',
});
this.conditionalFormattings.render(xmlStream, model.conditionalFormattings);
xmlStream.closeNode();
}
createNewModel() {
return {};
}
onParserClose(name, parser) {
this.model[name] = parser.model;
}
}
class ExtLstXform extends CompositeXform {
constructor() {
super();
this.map = {
ext: (this.ext = new ExtXform()),
};
}
get tag() {
return 'extLst';
}
prepare(model, options) {
this.ext.prepare(model, options);
}
hasContent(model) {
return this.ext.hasContent(model);
}
render(xmlStream, model) {
if (!this.hasContent(model)) {
return;
}
xmlStream.openNode('extLst');
this.ext.render(xmlStream, model);
xmlStream.closeNode();
}
createNewModel() {
return {};
}
onParserClose(name, parser) {
Object.assign(this.model, parser.model);
}
}
module.exports = ExtLstXform;