simple-odf
Version:
Open Document Format made easy using pure JavaScript and Node.js
40 lines (39 loc) • 1.34 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AutomaticStyleVisitor = void 0;
const text_1 = require("../api/text");
class AutomaticStyleVisitor {
constructor(automaticStyles) {
this.automaticStyles = automaticStyles;
}
visit(odfElement) {
if (odfElement instanceof text_1.Heading) {
this.visitHeading(odfElement, this.automaticStyles);
}
else if (odfElement instanceof text_1.List) {
this.visitList(odfElement, this.automaticStyles);
}
else if (odfElement instanceof text_1.Paragraph) {
this.visitParagraph(odfElement, this.automaticStyles);
}
odfElement.getAll().forEach((odfChildElement) => {
this.visit(odfChildElement);
});
}
visitHeading(heading, automaticStyles) {
this.addStyle(heading.getStyle(), automaticStyles);
}
visitList(list, automaticStyles) {
this.addStyle(list.getStyle(), automaticStyles);
}
visitParagraph(paragraph, automaticStyles) {
this.addStyle(paragraph.getStyle(), automaticStyles);
}
addStyle(style, automaticStyles) {
if (style === undefined) {
return;
}
automaticStyles.add(style);
}
}
exports.AutomaticStyleVisitor = AutomaticStyleVisitor;