outline-properties-xform.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. const BaseXform = require('../base-xform');
  2. const isDefined = attr => typeof attr !== 'undefined';
  3. class OutlinePropertiesXform extends BaseXform {
  4. get tag() {
  5. return 'outlinePr';
  6. }
  7. render(xmlStream, model) {
  8. if (model && (isDefined(model.summaryBelow) || isDefined(model.summaryRight))) {
  9. xmlStream.leafNode(this.tag, {
  10. summaryBelow: isDefined(model.summaryBelow) ? Number(model.summaryBelow) : undefined,
  11. summaryRight: isDefined(model.summaryRight) ? Number(model.summaryRight) : undefined,
  12. });
  13. return true;
  14. }
  15. return false;
  16. }
  17. parseOpen(node) {
  18. if (node.name === this.tag) {
  19. this.model = {
  20. summaryBelow: isDefined(node.attributes.summaryBelow)
  21. ? Boolean(Number(node.attributes.summaryBelow))
  22. : undefined,
  23. summaryRight: isDefined(node.attributes.summaryRight)
  24. ? Boolean(Number(node.attributes.summaryRight))
  25. : undefined,
  26. };
  27. return true;
  28. }
  29. return false;
  30. }
  31. parseText() {}
  32. parseClose() {
  33. return false;
  34. }
  35. }
  36. module.exports = OutlinePropertiesXform;