docxml
Version:
TypeScript (component) library for building and parsing a DOCX file
37 lines (36 loc) • 1.38 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Renderer = void 0;
const fontoxpath_1 = __importDefault(require("fontoxpath"));
const Registry_js_1 = require("./Registry.js");
class Renderer extends Registry_js_1.Registry {
constructor(factory, ...sets) {
super(...sets);
Object.defineProperty(this, "factory", {
enumerable: true,
configurable: true,
writable: true,
value: void 0
});
this.factory = factory;
}
render(node, additionalProps) {
return (function recurse(registry, factory, node) {
const props = {
node,
traverse: (query = './node()') => fontoxpath_1.default
.evaluateXPathToNodes(query, node, null, additionalProps || {}, {
language: fontoxpath_1.default.evaluateXPath.XQUERY_3_1_LANGUAGE,
})
.map((n) => recurse(registry, factory, n))
.filter((o) => o !== null),
...(additionalProps || {}),
};
return factory(registry.find(node), props);
})(this, this.factory, node);
}
}
exports.Renderer = Renderer;