123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234 |
- "use strict";
- var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- if (typeof b !== "function" && b !== null)
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
- })();
- var __assign = (this && this.__assign) || function () {
- __assign = Object.assign || function(t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
- t[p] = s[p];
- }
- return t;
- };
- return __assign.apply(this, arguments);
- };
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- var desc = Object.getOwnPropertyDescriptor(m, k);
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
- desc = { enumerable: true, get: function() { return m[k]; } };
- }
- Object.defineProperty(o, k2, desc);
- }) : (function(o, m, k, k2) {
- if (k2 === undefined) k2 = k;
- o[k2] = m[k];
- }));
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
- Object.defineProperty(o, "default", { enumerable: true, value: v });
- }) : function(o, v) {
- o["default"] = v;
- });
- var __importStar = (this && this.__importStar) || function (mod) {
- if (mod && mod.__esModule) return mod;
- var result = {};
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
- __setModuleDefault(result, mod);
- return result;
- };
- var __values = (this && this.__values) || function(o) {
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
- if (m) return m.call(o);
- if (o && typeof o.length === "number") return {
- next: function () {
- if (o && i >= o.length) o = void 0;
- return { value: o && o[i++], done: !o };
- }
- };
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.CHTML = void 0;
- var OutputJax_js_1 = require("./common/OutputJax.js");
- var StyleList_js_1 = require("../util/StyleList.js");
- var WrapperFactory_js_1 = require("./chtml/WrapperFactory.js");
- var Usage_js_1 = require("./chtml/Usage.js");
- var tex_js_1 = require("./chtml/fonts/tex.js");
- var LENGTHS = __importStar(require("../util/lengths.js"));
- var string_js_1 = require("../util/string.js");
- var CHTML = (function (_super) {
- __extends(CHTML, _super);
- function CHTML(options) {
- if (options === void 0) { options = null; }
- var _this = _super.call(this, options, WrapperFactory_js_1.CHTMLWrapperFactory, tex_js_1.TeXFont) || this;
- _this.chtmlStyles = null;
- _this.font.adaptiveCSS(_this.options.adaptiveCSS);
- _this.wrapperUsage = new Usage_js_1.Usage();
- return _this;
- }
- CHTML.prototype.escaped = function (math, html) {
- this.setDocument(html);
- return this.html('span', {}, [this.text(math.math)]);
- };
- CHTML.prototype.styleSheet = function (html) {
- if (this.chtmlStyles) {
- if (this.options.adaptiveCSS) {
- var styles = new StyleList_js_1.CssStyles();
- this.addWrapperStyles(styles);
- this.updateFontStyles(styles);
- this.adaptor.insertRules(this.chtmlStyles, styles.getStyleRules());
- }
- return this.chtmlStyles;
- }
- var sheet = this.chtmlStyles = _super.prototype.styleSheet.call(this, html);
- this.adaptor.setAttribute(sheet, 'id', CHTML.STYLESHEETID);
- this.wrapperUsage.update();
- return sheet;
- };
- CHTML.prototype.updateFontStyles = function (styles) {
- styles.addStyles(this.font.updateStyles({}));
- };
- CHTML.prototype.addWrapperStyles = function (styles) {
- var e_1, _a;
- if (!this.options.adaptiveCSS) {
- _super.prototype.addWrapperStyles.call(this, styles);
- return;
- }
- try {
- for (var _b = __values(this.wrapperUsage.update()), _c = _b.next(); !_c.done; _c = _b.next()) {
- var kind = _c.value;
- var wrapper = this.factory.getNodeClass(kind);
- wrapper && this.addClassStyles(wrapper, styles);
- }
- }
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
- finally {
- try {
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
- }
- finally { if (e_1) throw e_1.error; }
- }
- };
- CHTML.prototype.addClassStyles = function (wrapper, styles) {
- var _a;
- var CLASS = wrapper;
- if (CLASS.autoStyle && CLASS.kind !== 'unknown') {
- styles.addStyles((_a = {},
- _a['mjx-' + CLASS.kind] = {
- display: 'inline-block',
- 'text-align': 'left'
- },
- _a));
- }
- this.wrapperUsage.add(CLASS.kind);
- _super.prototype.addClassStyles.call(this, wrapper, styles);
- };
- CHTML.prototype.processMath = function (math, parent) {
- this.factory.wrap(math).toCHTML(parent);
- };
- CHTML.prototype.clearCache = function () {
- this.cssStyles.clear();
- this.font.clearCache();
- this.wrapperUsage.clear();
- this.chtmlStyles = null;
- };
- CHTML.prototype.reset = function () {
- this.clearCache();
- };
- CHTML.prototype.unknownText = function (text, variant, width) {
- if (width === void 0) { width = null; }
- var styles = {};
- var scale = 100 / this.math.metrics.scale;
- if (scale !== 100) {
- styles['font-size'] = this.fixed(scale, 1) + '%';
- styles.padding = LENGTHS.em(75 / scale) + ' 0 ' + LENGTHS.em(20 / scale) + ' 0';
- }
- if (variant !== '-explicitFont') {
- var c = (0, string_js_1.unicodeChars)(text);
- if (c.length !== 1 || c[0] < 0x1D400 || c[0] > 0x1D7FF) {
- this.cssFontStyles(this.font.getCssFont(variant), styles);
- }
- }
- if (width !== null) {
- var metrics = this.math.metrics;
- styles.width = Math.round(width * metrics.em * metrics.scale) + 'px';
- }
- return this.html('mjx-utext', { variant: variant, style: styles }, [this.text(text)]);
- };
- CHTML.prototype.measureTextNode = function (textNode) {
- var adaptor = this.adaptor;
- var text = adaptor.clone(textNode);
- adaptor.setStyle(text, 'font-family', adaptor.getStyle(text, 'font-family').replace(/MJXZERO, /g, ''));
- var style = { position: 'absolute', 'white-space': 'nowrap' };
- var node = this.html('mjx-measure-text', { style: style }, [text]);
- adaptor.append(adaptor.parent(this.math.start.node), this.container);
- adaptor.append(this.container, node);
- var w = adaptor.nodeSize(text, this.math.metrics.em)[0] / this.math.metrics.scale;
- adaptor.remove(this.container);
- adaptor.remove(node);
- return { w: w, h: .75, d: .2 };
- };
- CHTML.NAME = 'CHTML';
- CHTML.OPTIONS = __assign(__assign({}, OutputJax_js_1.CommonOutputJax.OPTIONS), { adaptiveCSS: true, matchFontHeight: true });
- CHTML.commonStyles = {
- 'mjx-container[jax="CHTML"]': { 'line-height': 0 },
- 'mjx-container [space="1"]': { 'margin-left': '.111em' },
- 'mjx-container [space="2"]': { 'margin-left': '.167em' },
- 'mjx-container [space="3"]': { 'margin-left': '.222em' },
- 'mjx-container [space="4"]': { 'margin-left': '.278em' },
- 'mjx-container [space="5"]': { 'margin-left': '.333em' },
- 'mjx-container [rspace="1"]': { 'margin-right': '.111em' },
- 'mjx-container [rspace="2"]': { 'margin-right': '.167em' },
- 'mjx-container [rspace="3"]': { 'margin-right': '.222em' },
- 'mjx-container [rspace="4"]': { 'margin-right': '.278em' },
- 'mjx-container [rspace="5"]': { 'margin-right': '.333em' },
- 'mjx-container [size="s"]': { 'font-size': '70.7%' },
- 'mjx-container [size="ss"]': { 'font-size': '50%' },
- 'mjx-container [size="Tn"]': { 'font-size': '60%' },
- 'mjx-container [size="sm"]': { 'font-size': '85%' },
- 'mjx-container [size="lg"]': { 'font-size': '120%' },
- 'mjx-container [size="Lg"]': { 'font-size': '144%' },
- 'mjx-container [size="LG"]': { 'font-size': '173%' },
- 'mjx-container [size="hg"]': { 'font-size': '207%' },
- 'mjx-container [size="HG"]': { 'font-size': '249%' },
- 'mjx-container [width="full"]': { width: '100%' },
- 'mjx-box': { display: 'inline-block' },
- 'mjx-block': { display: 'block' },
- 'mjx-itable': { display: 'inline-table' },
- 'mjx-row': { display: 'table-row' },
- 'mjx-row > *': { display: 'table-cell' },
- 'mjx-mtext': {
- display: 'inline-block'
- },
- 'mjx-mstyle': {
- display: 'inline-block'
- },
- 'mjx-merror': {
- display: 'inline-block',
- color: 'red',
- 'background-color': 'yellow'
- },
- 'mjx-mphantom': {
- visibility: 'hidden'
- },
- '_::-webkit-full-page-media, _:future, :root mjx-container': {
- 'will-change': 'opacity'
- }
- };
- CHTML.STYLESHEETID = 'MJX-CHTML-styles';
- return CHTML;
- }(OutputJax_js_1.CommonOutputJax));
- exports.CHTML = CHTML;
- //# sourceMappingURL=chtml.js.map
|