NodeFactory.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. "use strict";
  2. var __read = (this && this.__read) || function (o, n) {
  3. var m = typeof Symbol === "function" && o[Symbol.iterator];
  4. if (!m) return o;
  5. var i = m.call(o), r, ar = [], e;
  6. try {
  7. while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
  8. }
  9. catch (error) { e = { error: error }; }
  10. finally {
  11. try {
  12. if (r && !r.done && (m = i["return"])) m.call(i);
  13. }
  14. finally { if (e) throw e.error; }
  15. }
  16. return ar;
  17. };
  18. var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
  19. if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
  20. if (ar || !(i in from)) {
  21. if (!ar) ar = Array.prototype.slice.call(from, 0, i);
  22. ar[i] = from[i];
  23. }
  24. }
  25. return to.concat(ar || Array.prototype.slice.call(from));
  26. };
  27. var __importDefault = (this && this.__importDefault) || function (mod) {
  28. return (mod && mod.__esModule) ? mod : { "default": mod };
  29. };
  30. Object.defineProperty(exports, "__esModule", { value: true });
  31. exports.NodeFactory = void 0;
  32. var NodeUtil_js_1 = __importDefault(require("./NodeUtil.js"));
  33. var NodeFactory = (function () {
  34. function NodeFactory() {
  35. this.mmlFactory = null;
  36. this.factory = { 'node': NodeFactory.createNode,
  37. 'token': NodeFactory.createToken,
  38. 'text': NodeFactory.createText,
  39. 'error': NodeFactory.createError
  40. };
  41. }
  42. NodeFactory.createNode = function (factory, kind, children, def, text) {
  43. if (children === void 0) { children = []; }
  44. if (def === void 0) { def = {}; }
  45. var node = factory.mmlFactory.create(kind);
  46. node.setChildren(children);
  47. if (text) {
  48. node.appendChild(text);
  49. }
  50. NodeUtil_js_1.default.setProperties(node, def);
  51. return node;
  52. };
  53. NodeFactory.createToken = function (factory, kind, def, text) {
  54. if (def === void 0) { def = {}; }
  55. if (text === void 0) { text = ''; }
  56. var textNode = factory.create('text', text);
  57. return factory.create('node', kind, [], def, textNode);
  58. };
  59. NodeFactory.createText = function (factory, text) {
  60. if (text == null) {
  61. return null;
  62. }
  63. return factory.mmlFactory.create('text').setText(text);
  64. };
  65. NodeFactory.createError = function (factory, message) {
  66. var text = factory.create('text', message);
  67. var mtext = factory.create('node', 'mtext', [], {}, text);
  68. var error = factory.create('node', 'merror', [mtext], { 'data-mjx-error': message });
  69. return error;
  70. };
  71. NodeFactory.prototype.setMmlFactory = function (mmlFactory) {
  72. this.mmlFactory = mmlFactory;
  73. };
  74. NodeFactory.prototype.set = function (kind, func) {
  75. this.factory[kind] = func;
  76. };
  77. NodeFactory.prototype.setCreators = function (maps) {
  78. for (var kind in maps) {
  79. this.set(kind, maps[kind]);
  80. }
  81. };
  82. NodeFactory.prototype.create = function (kind) {
  83. var rest = [];
  84. for (var _i = 1; _i < arguments.length; _i++) {
  85. rest[_i - 1] = arguments[_i];
  86. }
  87. var func = this.factory[kind] || this.factory['node'];
  88. var node = func.apply(void 0, __spreadArray([this, rest[0]], __read(rest.slice(1)), false));
  89. if (kind === 'node') {
  90. this.configuration.addNode(rest[0], node);
  91. }
  92. return node;
  93. };
  94. NodeFactory.prototype.get = function (kind) {
  95. return this.factory[kind];
  96. };
  97. return NodeFactory;
  98. }());
  99. exports.NodeFactory = NodeFactory;
  100. //# sourceMappingURL=NodeFactory.js.map