munderover.js 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. "use strict";
  2. var __extends = (this && this.__extends) || (function () {
  3. var extendStatics = function (d, b) {
  4. extendStatics = Object.setPrototypeOf ||
  5. ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
  6. function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
  7. return extendStatics(d, b);
  8. };
  9. return function (d, b) {
  10. if (typeof b !== "function" && b !== null)
  11. throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
  12. extendStatics(d, b);
  13. function __() { this.constructor = d; }
  14. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  15. };
  16. })();
  17. Object.defineProperty(exports, "__esModule", { value: true });
  18. exports.CHTMLmunderover = exports.CHTMLmover = exports.CHTMLmunder = void 0;
  19. var msubsup_js_1 = require("./msubsup.js");
  20. var munderover_js_1 = require("../../common/Wrappers/munderover.js");
  21. var munderover_js_2 = require("../../common/Wrappers/munderover.js");
  22. var munderover_js_3 = require("../../common/Wrappers/munderover.js");
  23. var munderover_js_4 = require("../../../core/MmlTree/MmlNodes/munderover.js");
  24. var CHTMLmunder = (function (_super) {
  25. __extends(CHTMLmunder, _super);
  26. function CHTMLmunder() {
  27. return _super !== null && _super.apply(this, arguments) || this;
  28. }
  29. CHTMLmunder.prototype.toCHTML = function (parent) {
  30. if (this.hasMovableLimits()) {
  31. _super.prototype.toCHTML.call(this, parent);
  32. this.adaptor.setAttribute(this.chtml, 'limits', 'false');
  33. return;
  34. }
  35. this.chtml = this.standardCHTMLnode(parent);
  36. var base = this.adaptor.append(this.adaptor.append(this.chtml, this.html('mjx-row')), this.html('mjx-base'));
  37. var under = this.adaptor.append(this.adaptor.append(this.chtml, this.html('mjx-row')), this.html('mjx-under'));
  38. this.baseChild.toCHTML(base);
  39. this.scriptChild.toCHTML(under);
  40. var basebox = this.baseChild.getOuterBBox();
  41. var underbox = this.scriptChild.getOuterBBox();
  42. var k = this.getUnderKV(basebox, underbox)[0];
  43. var delta = (this.isLineBelow ? 0 : this.getDelta(true));
  44. this.adaptor.setStyle(under, 'paddingTop', this.em(k));
  45. this.setDeltaW([base, under], this.getDeltaW([basebox, underbox], [0, -delta]));
  46. this.adjustUnderDepth(under, underbox);
  47. };
  48. CHTMLmunder.kind = munderover_js_4.MmlMunder.prototype.kind;
  49. CHTMLmunder.styles = {
  50. 'mjx-over': {
  51. 'text-align': 'left'
  52. },
  53. 'mjx-munder:not([limits="false"])': {
  54. display: 'inline-table',
  55. },
  56. 'mjx-munder > mjx-row': {
  57. 'text-align': 'left'
  58. },
  59. 'mjx-under': {
  60. 'padding-bottom': '.1em'
  61. }
  62. };
  63. return CHTMLmunder;
  64. }((0, munderover_js_1.CommonMunderMixin)(msubsup_js_1.CHTMLmsub)));
  65. exports.CHTMLmunder = CHTMLmunder;
  66. var CHTMLmover = (function (_super) {
  67. __extends(CHTMLmover, _super);
  68. function CHTMLmover() {
  69. return _super !== null && _super.apply(this, arguments) || this;
  70. }
  71. CHTMLmover.prototype.toCHTML = function (parent) {
  72. if (this.hasMovableLimits()) {
  73. _super.prototype.toCHTML.call(this, parent);
  74. this.adaptor.setAttribute(this.chtml, 'limits', 'false');
  75. return;
  76. }
  77. this.chtml = this.standardCHTMLnode(parent);
  78. var over = this.adaptor.append(this.chtml, this.html('mjx-over'));
  79. var base = this.adaptor.append(this.chtml, this.html('mjx-base'));
  80. this.scriptChild.toCHTML(over);
  81. this.baseChild.toCHTML(base);
  82. var overbox = this.scriptChild.getOuterBBox();
  83. var basebox = this.baseChild.getOuterBBox();
  84. this.adjustBaseHeight(base, basebox);
  85. var k = this.getOverKU(basebox, overbox)[0];
  86. var delta = (this.isLineAbove ? 0 : this.getDelta());
  87. this.adaptor.setStyle(over, 'paddingBottom', this.em(k));
  88. this.setDeltaW([base, over], this.getDeltaW([basebox, overbox], [0, delta]));
  89. this.adjustOverDepth(over, overbox);
  90. };
  91. CHTMLmover.kind = munderover_js_4.MmlMover.prototype.kind;
  92. CHTMLmover.styles = {
  93. 'mjx-mover:not([limits="false"])': {
  94. 'padding-top': '.1em'
  95. },
  96. 'mjx-mover:not([limits="false"]) > *': {
  97. display: 'block',
  98. 'text-align': 'left'
  99. }
  100. };
  101. return CHTMLmover;
  102. }((0, munderover_js_2.CommonMoverMixin)(msubsup_js_1.CHTMLmsup)));
  103. exports.CHTMLmover = CHTMLmover;
  104. var CHTMLmunderover = (function (_super) {
  105. __extends(CHTMLmunderover, _super);
  106. function CHTMLmunderover() {
  107. return _super !== null && _super.apply(this, arguments) || this;
  108. }
  109. CHTMLmunderover.prototype.toCHTML = function (parent) {
  110. if (this.hasMovableLimits()) {
  111. _super.prototype.toCHTML.call(this, parent);
  112. this.adaptor.setAttribute(this.chtml, 'limits', 'false');
  113. return;
  114. }
  115. this.chtml = this.standardCHTMLnode(parent);
  116. var over = this.adaptor.append(this.chtml, this.html('mjx-over'));
  117. var table = this.adaptor.append(this.adaptor.append(this.chtml, this.html('mjx-box')), this.html('mjx-munder'));
  118. var base = this.adaptor.append(this.adaptor.append(table, this.html('mjx-row')), this.html('mjx-base'));
  119. var under = this.adaptor.append(this.adaptor.append(table, this.html('mjx-row')), this.html('mjx-under'));
  120. this.overChild.toCHTML(over);
  121. this.baseChild.toCHTML(base);
  122. this.underChild.toCHTML(under);
  123. var overbox = this.overChild.getOuterBBox();
  124. var basebox = this.baseChild.getOuterBBox();
  125. var underbox = this.underChild.getOuterBBox();
  126. this.adjustBaseHeight(base, basebox);
  127. var ok = this.getOverKU(basebox, overbox)[0];
  128. var uk = this.getUnderKV(basebox, underbox)[0];
  129. var delta = this.getDelta();
  130. this.adaptor.setStyle(over, 'paddingBottom', this.em(ok));
  131. this.adaptor.setStyle(under, 'paddingTop', this.em(uk));
  132. this.setDeltaW([base, under, over], this.getDeltaW([basebox, underbox, overbox], [0, this.isLineBelow ? 0 : -delta, this.isLineAbove ? 0 : delta]));
  133. this.adjustOverDepth(over, overbox);
  134. this.adjustUnderDepth(under, underbox);
  135. };
  136. CHTMLmunderover.prototype.markUsed = function () {
  137. _super.prototype.markUsed.call(this);
  138. this.jax.wrapperUsage.add(msubsup_js_1.CHTMLmsubsup.kind);
  139. };
  140. CHTMLmunderover.kind = munderover_js_4.MmlMunderover.prototype.kind;
  141. CHTMLmunderover.styles = {
  142. 'mjx-munderover:not([limits="false"])': {
  143. 'padding-top': '.1em'
  144. },
  145. 'mjx-munderover:not([limits="false"]) > *': {
  146. display: 'block'
  147. },
  148. };
  149. return CHTMLmunderover;
  150. }((0, munderover_js_3.CommonMunderoverMixin)(msubsup_js_1.CHTMLmsubsup)));
  151. exports.CHTMLmunderover = CHTMLmunderover;
  152. //# sourceMappingURL=munderover.js.map