Notation.js 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  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. Object.defineProperty(exports, "__esModule", { value: true });
  19. exports.CommonArrow = exports.CommonDiagonalArrow = exports.CommonDiagonalStrike = exports.CommonBorder2 = exports.CommonBorder = exports.arrowBBox = exports.diagonalArrowDef = exports.arrowDef = exports.arrowBBoxW = exports.arrowBBoxHD = exports.arrowHead = exports.fullBorder = exports.fullPadding = exports.fullBBox = exports.sideNames = exports.sideIndex = exports.SOLID = exports.PADDING = exports.THICKNESS = exports.ARROWY = exports.ARROWDX = exports.ARROWX = void 0;
  20. exports.ARROWX = 4, exports.ARROWDX = 1, exports.ARROWY = 2;
  21. exports.THICKNESS = .067;
  22. exports.PADDING = .2;
  23. exports.SOLID = exports.THICKNESS + 'em solid';
  24. exports.sideIndex = { top: 0, right: 1, bottom: 2, left: 3 };
  25. exports.sideNames = Object.keys(exports.sideIndex);
  26. exports.fullBBox = (function (node) { return new Array(4).fill(node.thickness + node.padding); });
  27. exports.fullPadding = (function (node) { return new Array(4).fill(node.padding); });
  28. exports.fullBorder = (function (node) { return new Array(4).fill(node.thickness); });
  29. var arrowHead = function (node) {
  30. return Math.max(node.padding, node.thickness * (node.arrowhead.x + node.arrowhead.dx + 1));
  31. };
  32. exports.arrowHead = arrowHead;
  33. var arrowBBoxHD = function (node, TRBL) {
  34. if (node.childNodes[0]) {
  35. var _a = node.childNodes[0].getBBox(), h = _a.h, d = _a.d;
  36. TRBL[0] = TRBL[2] = Math.max(0, node.thickness * node.arrowhead.y - (h + d) / 2);
  37. }
  38. return TRBL;
  39. };
  40. exports.arrowBBoxHD = arrowBBoxHD;
  41. var arrowBBoxW = function (node, TRBL) {
  42. if (node.childNodes[0]) {
  43. var w = node.childNodes[0].getBBox().w;
  44. TRBL[1] = TRBL[3] = Math.max(0, node.thickness * node.arrowhead.y - w / 2);
  45. }
  46. return TRBL;
  47. };
  48. exports.arrowBBoxW = arrowBBoxW;
  49. exports.arrowDef = {
  50. up: [-Math.PI / 2, false, true, 'verticalstrike'],
  51. down: [Math.PI / 2, false, true, 'verticakstrike'],
  52. right: [0, false, false, 'horizontalstrike'],
  53. left: [Math.PI, false, false, 'horizontalstrike'],
  54. updown: [Math.PI / 2, true, true, 'verticalstrike uparrow downarrow'],
  55. leftright: [0, true, false, 'horizontalstrike leftarrow rightarrow']
  56. };
  57. exports.diagonalArrowDef = {
  58. updiagonal: [-1, 0, false, 'updiagonalstrike northeastarrow'],
  59. northeast: [-1, 0, false, 'updiagonalstrike updiagonalarrow'],
  60. southeast: [1, 0, false, 'downdiagonalstrike'],
  61. northwest: [1, Math.PI, false, 'downdiagonalstrike'],
  62. southwest: [-1, Math.PI, false, 'updiagonalstrike'],
  63. northeastsouthwest: [-1, 0, true, 'updiagonalstrike northeastarrow updiagonalarrow southwestarrow'],
  64. northwestsoutheast: [1, 0, true, 'downdiagonalstrike northwestarrow southeastarrow']
  65. };
  66. exports.arrowBBox = {
  67. up: function (node) { return (0, exports.arrowBBoxW)(node, [(0, exports.arrowHead)(node), 0, node.padding, 0]); },
  68. down: function (node) { return (0, exports.arrowBBoxW)(node, [node.padding, 0, (0, exports.arrowHead)(node), 0]); },
  69. right: function (node) { return (0, exports.arrowBBoxHD)(node, [0, (0, exports.arrowHead)(node), 0, node.padding]); },
  70. left: function (node) { return (0, exports.arrowBBoxHD)(node, [0, node.padding, 0, (0, exports.arrowHead)(node)]); },
  71. updown: function (node) { return (0, exports.arrowBBoxW)(node, [(0, exports.arrowHead)(node), 0, (0, exports.arrowHead)(node), 0]); },
  72. leftright: function (node) { return (0, exports.arrowBBoxHD)(node, [0, (0, exports.arrowHead)(node), 0, (0, exports.arrowHead)(node)]); }
  73. };
  74. var CommonBorder = function (render) {
  75. return function (side) {
  76. var i = exports.sideIndex[side];
  77. return [side, {
  78. renderer: render,
  79. bbox: function (node) {
  80. var bbox = [0, 0, 0, 0];
  81. bbox[i] = node.thickness + node.padding;
  82. return bbox;
  83. },
  84. border: function (node) {
  85. var bbox = [0, 0, 0, 0];
  86. bbox[i] = node.thickness;
  87. return bbox;
  88. }
  89. }];
  90. };
  91. };
  92. exports.CommonBorder = CommonBorder;
  93. var CommonBorder2 = function (render) {
  94. return function (name, side1, side2) {
  95. var i1 = exports.sideIndex[side1];
  96. var i2 = exports.sideIndex[side2];
  97. return [name, {
  98. renderer: render,
  99. bbox: function (node) {
  100. var t = node.thickness + node.padding;
  101. var bbox = [0, 0, 0, 0];
  102. bbox[i1] = bbox[i2] = t;
  103. return bbox;
  104. },
  105. border: function (node) {
  106. var bbox = [0, 0, 0, 0];
  107. bbox[i1] = bbox[i2] = node.thickness;
  108. return bbox;
  109. },
  110. remove: side1 + ' ' + side2
  111. }];
  112. };
  113. };
  114. exports.CommonBorder2 = CommonBorder2;
  115. var CommonDiagonalStrike = function (render) {
  116. return function (name) {
  117. var cname = 'mjx-' + name.charAt(0) + 'strike';
  118. return [name + 'diagonalstrike', {
  119. renderer: render(cname),
  120. bbox: exports.fullBBox
  121. }];
  122. };
  123. };
  124. exports.CommonDiagonalStrike = CommonDiagonalStrike;
  125. var CommonDiagonalArrow = function (render) {
  126. return function (name) {
  127. var _a = __read(exports.diagonalArrowDef[name], 4), c = _a[0], pi = _a[1], double = _a[2], remove = _a[3];
  128. return [name + 'arrow', {
  129. renderer: function (node, _child) {
  130. var _a = __read(node.arrowAW(), 2), a = _a[0], W = _a[1];
  131. var arrow = node.arrow(W, c * (a - pi), double);
  132. render(node, arrow);
  133. },
  134. bbox: function (node) {
  135. var _a = node.arrowData(), a = _a.a, x = _a.x, y = _a.y;
  136. var _b = __read([node.arrowhead.x, node.arrowhead.y, node.arrowhead.dx], 3), ax = _b[0], ay = _b[1], adx = _b[2];
  137. var _c = __read(node.getArgMod(ax + adx, ay), 2), b = _c[0], ar = _c[1];
  138. var dy = y + (b > a ? node.thickness * ar * Math.sin(b - a) : 0);
  139. var dx = x + (b > Math.PI / 2 - a ? node.thickness * ar * Math.sin(b + a - Math.PI / 2) : 0);
  140. return [dy, dx, dy, dx];
  141. },
  142. remove: remove
  143. }];
  144. };
  145. };
  146. exports.CommonDiagonalArrow = CommonDiagonalArrow;
  147. var CommonArrow = function (render) {
  148. return function (name) {
  149. var _a = __read(exports.arrowDef[name], 4), angle = _a[0], double = _a[1], isVertical = _a[2], remove = _a[3];
  150. return [name + 'arrow', {
  151. renderer: function (node, _child) {
  152. var _a = node.getBBox(), w = _a.w, h = _a.h, d = _a.d;
  153. var _b = __read((isVertical ? [h + d, 'X'] : [w, 'Y']), 2), W = _b[0], offset = _b[1];
  154. var dd = node.getOffset(offset);
  155. var arrow = node.arrow(W, angle, double, offset, dd);
  156. render(node, arrow);
  157. },
  158. bbox: exports.arrowBBox[name],
  159. remove: remove
  160. }];
  161. };
  162. };
  163. exports.CommonArrow = CommonArrow;
  164. //# sourceMappingURL=Notation.js.map