From b955ec306088807ad40256dca648635aea9f4034 Mon Sep 17 00:00:00 2001 From: Mathison Chen <mathison@mail.ustc.edu.cn> Date: Sun, 17 Apr 2022 13:49:20 +0000 Subject: [PATCH] Upload New File --- mathedit-test/my.min.js | 2180 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 2180 insertions(+) create mode 100644 mathedit-test/my.min.js diff --git a/mathedit-test/my.min.js b/mathedit-test/my.min.js new file mode 100644 index 0000000..fe1b565 --- /dev/null +++ b/mathedit-test/my.min.js @@ -0,0 +1,2180 @@ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(this, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { +/******/ configurable: false, +/******/ enumerable: true, +/******/ get: getter +/******/ }); +/******/ } +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 1); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ +// css base code, injected by the css-loader +module.exports = function (useSourceMap) { + var list = []; // return the list of modules as css string + + list.toString = function toString() { + return this.map(function (item) { + var content = cssWithMappingToString(item, useSourceMap); + + if (item[2]) { + return '@media ' + item[2] + '{' + content + '}'; + } else { + return content; + } + }).join(''); + }; // import a list of modules into the list + + + list.i = function (modules, mediaQuery) { + if (typeof modules === 'string') { + modules = [[null, modules, '']]; + } + + var alreadyImportedModules = {}; + + for (var i = 0; i < this.length; i++) { + var id = this[i][0]; + + if (id != null) { + alreadyImportedModules[id] = true; + } + } + + for (i = 0; i < modules.length; i++) { + var item = modules[i]; // skip already imported module + // this implementation is not 100% perfect for weird media query combinations + // when a module is imported multiple times with different media queries. + // I hope this will never occur (Hey this way we have smaller bundles) + + if (item[0] == null || !alreadyImportedModules[item[0]]) { + if (mediaQuery && !item[2]) { + item[2] = mediaQuery; + } else if (mediaQuery) { + item[2] = '(' + item[2] + ') and (' + mediaQuery + ')'; + } + + list.push(item); + } + } + }; + + return list; +}; + +function cssWithMappingToString(item, useSourceMap) { + var content = item[1] || ''; + var cssMapping = item[3]; + + if (!cssMapping) { + return content; + } + + if (useSourceMap && typeof btoa === 'function') { + var sourceMapping = toComment(cssMapping); + var sourceURLs = cssMapping.sources.map(function (source) { + return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'; + }); + return [content].concat(sourceURLs).concat([sourceMapping]).join('\n'); + } + + return [content].join('\n'); +} // Adapted from convert-source-map (MIT) + + +function toComment(sourceMap) { + // eslint-disable-next-line no-undef + var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))); + var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64; + return '/*# ' + data + ' */'; +} + +/***/ }), +/* 1 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); +/* WEBPACK VAR INJECTION */(function(module) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__css_dialog_less__ = __webpack_require__(3); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mathquill_min_js__ = __webpack_require__(7); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mathquill_min_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__mathquill_min_js__); + + +// 閬靛惊UMD瑙勮寖 +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && __webpack_require__(8) ? define(factory) : (global = global || self, global.MathEdit = factory()); +})(this, function () { + 'use strict'; + // ---鍏敤 + function warn(context) { + console.warn(context) + } + + // ---鍔熻兘 + function renderDom(elemId) { + var instanceBox = document.getElementById(elemId) + // console.log('鑾峰彇鍒癲om', instanceBox) + var innerHTML = `<div id="mathEdit1601362544188"><div class="tabMenu"><div class="tabTitle"><li>甯哥敤鍏紡</li><li>瀛楁瘝</li> <li> 绗﹀彿 </li> </div> <div class="tabContent"> <div class="mathBox"> </div> <div class="mathBox"> </div> <div class="mathBox"> </div> </div></div><div id="mathDiv"> <p> <span id="jme-math"></span> </p> <p> </p></div></div>` + instanceBox.innerHTML = innerHTML + } + + function domInit(config) { + var jmeMath = [ + [ + "{/}frac{}{}","^{}/_{}", "x^{}", "x_{}", "x^{}_{}", "{/}bar{}", "{/}sqrt{}", "{/}nthroot{}{}", + "{/}sum^{}_{n=}", "{/}sum", "{/}log_{}", "{/}ln", "{/}int_{}^{}", "{/}oint_{}^{}","{/}ln{}","{/}to","{/}begin{pmatrix}{}{/}end{pmatrix}" + ], + [ + "{/}alpha", "{/}beta", "{/}gamma", "{/}delta", "{/}varepsilon", "{/}varphi", "{/}lambda", "{/}mu", + "{/}rho", "{/}sigma", "{/}omega", "{/}Gamma", "{/}Delta", "{/}Theta", "{/}Lambda", "{/}Xi", + "{/}Pi", "{/}Sigma", "{/}Upsilon", "{/}Phi", "{/}Psi", "{/}Omega" + ], + [ + "+", "-", "{/}pm", "{/}times", "{/}ast", "{/}div", "/", "{/}bigtriangleup", + "=", "{/}ne", "{/}approx", ">", "<", "{/}ge", "{/}le", "{/}infty", + "{/}cap", "{/}cup", "{/}because", "{/}therefore", "{/}subset", "{/}supset", "{/}subseteq", "{/}supseteq", + "{/}nsubseteq", "{/}nsupseteq", "{/}in", "{/}ni", "{/}notin", "{/}mapsto", "{/}leftarrow", "{/}rightarrow", + "{/}Leftarrow", "{/}Rightarrow", "{/}leftrightarrow", "{/}Leftrightarrow" + ] + ]; + + function mathHtml(obj) { + var cols = 7; //涓€琛屾斁鍑犱釜 + var slidLen = 34; //姣忎釜鍥炬爣鐨勫鎴栭珮 + var html = "<div class='mathIcon'>"; + for (var i = 0; i < obj.count; i++) { + html += "<li onclick=\"insertMath('" + jmeMath[obj.groupid][i] + "')\" style=\"background-position:-" + (obj.x + Math.floor(i % 8) * slidLen) + "px -" + (obj.y + Math.floor(i / 8) * slidLen) + "px;\"></li>"; + } + html += "</div>"; + if (obj.count > cols * 2) { + html += "<div class='more' mrows='" + Math.floor((obj.count + cols - 1) / cols) + "' isOpen='0'>鏇村</div>" + } + return html; + } + + function insert(q) { + $(getTagSign("#jme-math")).focus().mathquill("write", q.replace("{/}", "\\")); + } + + function jmeInit() { + // 鎸傝浇insert + window && (window.insertMath = insert) + //闅愯棌鍐呭div + $(getTagSign(".tabContent div.mathBox")).hide(); + //鑿滃崟鐐瑰嚮浜嬩欢 + $(getTagSign(".tabTitle li")).click(function () { + $(".tabContent div.mathBox").hide(); + var n = 0; + var obj = this; + $(".tabTitle li").each(function (i, o) { + if (obj == o) { + n = i; + } + }); + $(".tabTitle li").removeClass("current"); + $(obj).addClass("current"); + $(".tabContent div.mathBox:eq(" + n + ")").show(); + }); + //缂虹渷鏄剧ず绗竴涓� + $(getTagSign(".tabTitle li:eq(0)")).click(); + //鍏紡瀹氫箟 + $(getTagSign(".tabContent div.mathBox:eq(0)")).html(mathHtml({ + groupid: 0, + x: 0, + y: 272, + count: 16 + })); + $(getTagSign(".tabContent div.mathBox:eq(2)")).html(mathHtml({ + groupid: 2, + x: 0, + y: 0, + count: 36 + })); + $(getTagSign(".tabContent div.mathBox:eq(1)")).html(mathHtml({ + groupid: 1, + x: 0, + y: 170, + count: 22 + })); + //甯哥敤鍏紡,鏇村鎸夐挳缁戝畾鐨勪簨浠� + $(getTagSign(".tabContent div.mathBox div.more")).click(function () { + var rowHei = 40; + var mi = $(this).parent().find(".mathIcon"); + if ($(this).attr("isOpen") == '0') { + mi.animate({ + "height": (rowHei * Number($(this).attr("mrows"))) + "px" + }); + $(this).html("鈫� 鏀惰捣"); + $(this).attr("isOpen", '1'); + } else { + mi.animate({ + "height": (rowHei * 2) + "px" + }); + $(this).html("鏇村"); + $(this).attr("isOpen", '0'); + } + + }); + //鍏紡缂栬緫妗� + $(getTagSign("#jme-math")).html("").css("font-size", config.defaultFontSize).mathquill('editable').mathquill('write', ""); + } + jmeInit() + } + + var parentSign = ''; + // 鍒濆鍖栨爣绛炬爣璇� + function initParentSign(sign) { + parentSign = '#'+sign + } + + // 鑾峰彇鏍囩鏍囪瘑 + function getTagSign(childSign) { + return `${parentSign} ${childSign}` + } + + // ---瀹炰緥 + function MathEdit(options) { + if (!(this instanceof MathEdit)) { + return warn('MathEdit is a constructor and should be called with the `new` keyword'); + } + this._initData(options) + this._initRender() + } + MathEdit.prototype._initData = function (options) {//鍒濆鍖� + if (!(options && typeof options === 'object')) return warn('Please introduce a options of object to new !') + if (options.elId === void 0) return warn('Please introduce a options with `elemId`!') + this.options = options + this.config = { + defaultFontSize: '18px', + viewFontSize: '14px' + }; + Object.keys(this.options).forEach(key => { + if(typeof this.options[key] === 'object' && this[key]){ + this[key] = Object.assign({},this[key],this.options[key]) + }else { + this[key] = this.options[key] + } + }) + initParentSign(this.elId) + } + MathEdit.prototype._initRender = function () { + var elemId = this.elId + renderDom(elemId) + domInit(this.config) + } + MathEdit.prototype.getValue = function () { + var mathHTML = '<span class="mathquill-rendered-math" style="font-size:' + this.config.viewFontSize + ';" >' + $(getTagSign("#jme-math")).html() + '</span><span> </span>'; + return mathHTML + } + MathEdit.prototype.getLatex = function() { + return $(getTagSign("#jme-math")).mathquill('latex') + } + MathEdit.prototype.isEmpty = function () { + return ($(getTagSign("#jme-math")).html()+"").replace(/(<[^>]*>|\s| )/ig,"").length < 1 + } + + MathEdit.prototype.getredraw = function() { + return $(getTagSign("#jme-math")).mathquill('redraw') + } + MathEdit.prototype.getrevert = function() { + return $(getTagSign("#jme-math")).mathquill('revert') + } + MathEdit.prototype.gettext = function() { + return $(getTagSign("#jme-math")).mathquill('text') + } + MathEdit.prototype.gethtml = function() { + return $(getTagSign("#jme-math")).mathquill('html') + } + MathEdit.prototype.getwrite = function() { + return $(getTagSign("#jme-math")).mathquill('write') + } + MathEdit.prototype.getcmd = function() { + return $(getTagSign("#jme-math")).mathquill('cmd') + } + return MathEdit +}) +/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(2)(module))) + +/***/ }), +/* 2 */ +/***/ (function(module, exports) { + +module.exports = function(originalModule) { + if(!originalModule.webpackPolyfill) { + var module = Object.create(originalModule); + // module.parent = undefined by default + if(!module.children) module.children = []; + Object.defineProperty(module, "loaded", { + enumerable: true, + get: function() { + return module.l; + } + }); + Object.defineProperty(module, "id", { + enumerable: true, + get: function() { + return module.i; + } + }); + Object.defineProperty(module, "exports", { + enumerable: true, + }); + module.webpackPolyfill = 1; + } + return module; +}; + + +/***/ }), +/* 3 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__node_modules_style_loader_2_0_0_style_loader_dist_runtime_injectStylesIntoStyleTag_js__ = __webpack_require__(4); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__node_modules_style_loader_2_0_0_style_loader_dist_runtime_injectStylesIntoStyleTag_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__node_modules_style_loader_2_0_0_style_loader_dist_runtime_injectStylesIntoStyleTag_js__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_css_loader_2_1_1_css_loader_dist_cjs_js_node_modules_less_loader_5_0_0_less_loader_dist_cjs_js_dialog_less__ = __webpack_require__(5); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_css_loader_2_1_1_css_loader_dist_cjs_js_node_modules_less_loader_5_0_0_less_loader_dist_cjs_js_dialog_less___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__node_modules_css_loader_2_1_1_css_loader_dist_cjs_js_node_modules_less_loader_5_0_0_less_loader_dist_cjs_js_dialog_less__); + + + +var options = {}; + +options.insert = "head"; +options.singleton = false; + +var update = __WEBPACK_IMPORTED_MODULE_0__node_modules_style_loader_2_0_0_style_loader_dist_runtime_injectStylesIntoStyleTag_js___default()(__WEBPACK_IMPORTED_MODULE_1__node_modules_css_loader_2_1_1_css_loader_dist_cjs_js_node_modules_less_loader_5_0_0_less_loader_dist_cjs_js_dialog_less___default.a, options); + + + +/* unused harmony default export */ var _unused_webpack_default_export = (__WEBPACK_IMPORTED_MODULE_1__node_modules_css_loader_2_1_1_css_loader_dist_cjs_js_node_modules_less_loader_5_0_0_less_loader_dist_cjs_js_dialog_less___default.a.locals || {}); + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var isOldIE = function isOldIE() { + var memo; + return function memorize() { + if (typeof memo === 'undefined') { + // Test for IE <= 9 as proposed by Browserhacks + // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805 + // Tests for existence of standard globals is to allow style-loader + // to operate correctly into non-standard environments + // @see https://github.com/webpack-contrib/style-loader/issues/177 + memo = Boolean(window && document && document.all && !window.atob); + } + + return memo; + }; +}(); + +var getTarget = function getTarget() { + var memo = {}; + return function memorize(target) { + if (typeof memo[target] === 'undefined') { + var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself + + if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) { + try { + // This will throw an exception if access to iframe is blocked + // due to cross-origin restrictions + styleTarget = styleTarget.contentDocument.head; + } catch (e) { + // istanbul ignore next + styleTarget = null; + } + } + + memo[target] = styleTarget; + } + + return memo[target]; + }; +}(); + +var stylesInDom = []; + +function getIndexByIdentifier(identifier) { + var result = -1; + + for (var i = 0; i < stylesInDom.length; i++) { + if (stylesInDom[i].identifier === identifier) { + result = i; + break; + } + } + + return result; +} + +function modulesToDom(list, options) { + var idCountMap = {}; + var identifiers = []; + + for (var i = 0; i < list.length; i++) { + var item = list[i]; + var id = options.base ? item[0] + options.base : item[0]; + var count = idCountMap[id] || 0; + var identifier = "".concat(id, " ").concat(count); + idCountMap[id] = count + 1; + var index = getIndexByIdentifier(identifier); + var obj = { + css: item[1], + media: item[2], + sourceMap: item[3] + }; + + if (index !== -1) { + stylesInDom[index].references++; + stylesInDom[index].updater(obj); + } else { + stylesInDom.push({ + identifier: identifier, + updater: addStyle(obj, options), + references: 1 + }); + } + + identifiers.push(identifier); + } + + return identifiers; +} + +function insertStyleElement(options) { + var style = document.createElement('style'); + var attributes = options.attributes || {}; + + if (typeof attributes.nonce === 'undefined') { + var nonce = true ? __webpack_require__.nc : null; + + if (nonce) { + attributes.nonce = nonce; + } + } + + Object.keys(attributes).forEach(function (key) { + style.setAttribute(key, attributes[key]); + }); + + if (typeof options.insert === 'function') { + options.insert(style); + } else { + var target = getTarget(options.insert || 'head'); + + if (!target) { + throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid."); + } + + target.appendChild(style); + } + + return style; +} + +function removeStyleElement(style) { + // istanbul ignore if + if (style.parentNode === null) { + return false; + } + + style.parentNode.removeChild(style); +} +/* istanbul ignore next */ + + +var replaceText = function replaceText() { + var textStore = []; + return function replace(index, replacement) { + textStore[index] = replacement; + return textStore.filter(Boolean).join('\n'); + }; +}(); + +function applyToSingletonTag(style, index, remove, obj) { + var css = remove ? '' : obj.media ? "@media ".concat(obj.media, " {").concat(obj.css, "}") : obj.css; // For old IE + + /* istanbul ignore if */ + + if (style.styleSheet) { + style.styleSheet.cssText = replaceText(index, css); + } else { + var cssNode = document.createTextNode(css); + var childNodes = style.childNodes; + + if (childNodes[index]) { + style.removeChild(childNodes[index]); + } + + if (childNodes.length) { + style.insertBefore(cssNode, childNodes[index]); + } else { + style.appendChild(cssNode); + } + } +} + +function applyToTag(style, options, obj) { + var css = obj.css; + var media = obj.media; + var sourceMap = obj.sourceMap; + + if (media) { + style.setAttribute('media', media); + } else { + style.removeAttribute('media'); + } + + if (sourceMap && typeof btoa !== 'undefined') { + css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */"); + } // For old IE + + /* istanbul ignore if */ + + + if (style.styleSheet) { + style.styleSheet.cssText = css; + } else { + while (style.firstChild) { + style.removeChild(style.firstChild); + } + + style.appendChild(document.createTextNode(css)); + } +} + +var singleton = null; +var singletonCounter = 0; + +function addStyle(obj, options) { + var style; + var update; + var remove; + + if (options.singleton) { + var styleIndex = singletonCounter++; + style = singleton || (singleton = insertStyleElement(options)); + update = applyToSingletonTag.bind(null, style, styleIndex, false); + remove = applyToSingletonTag.bind(null, style, styleIndex, true); + } else { + style = insertStyleElement(options); + update = applyToTag.bind(null, style, options); + + remove = function remove() { + removeStyleElement(style); + }; + } + + update(obj); + return function updateStyle(newObj) { + if (newObj) { + if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) { + return; + } + + update(obj = newObj); + } else { + remove(); + } + }; +} + +module.exports = function (list, options) { + options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style> + // tags it will allow on a page + + if (!options.singleton && typeof options.singleton !== 'boolean') { + options.singleton = isOldIE(); + } + + list = list || []; + var lastIdentifiers = modulesToDom(list, options); + return function update(newList) { + newList = newList || []; + + if (Object.prototype.toString.call(newList) !== '[object Array]') { + return; + } + + for (var i = 0; i < lastIdentifiers.length; i++) { + var identifier = lastIdentifiers[i]; + var index = getIndexByIdentifier(identifier); + stylesInDom[index].references--; + } + + var newLastIdentifiers = modulesToDom(newList, options); + + for (var _i = 0; _i < lastIdentifiers.length; _i++) { + var _identifier = lastIdentifiers[_i]; + + var _index = getIndexByIdentifier(_identifier); + + if (stylesInDom[_index].references === 0) { + stylesInDom[_index].updater(); + + stylesInDom.splice(_index, 1); + } + } + + lastIdentifiers = newLastIdentifiers; + }; +}; + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(0)(false); +// Imports +exports.i(__webpack_require__(6), ""); + +// Module +exports.push([module.i, "#mathEdit1601362544188 {\n overflow: hidden;\n}\n#mathEdit1601362544188 div {\n float: left;\n width: 100%;\n}\n#mathEdit1601362544188 li {\n float: left;\n list-style: none;\n}\n#mathEdit1601362544188 .tabMenu {\n border: solid #E1E6E6 1px;\n width: 320px;\n background-color: #fff;\n box-sizing: border-box;\n}\n#mathEdit1601362544188 .tabTitle li {\n cursor: pointer;\n}\n#mathEdit1601362544188 .tabTitle li.current {\n background-color: white;\n border-top: solid #E1E6E6 1px;\n border-left: solid #E1E6E6 1px;\n border-right: solid #E1E6E6 1px;\n}\n#mathEdit1601362544188 .tabTitle {\n padding-left: 5px;\n width: 100%;\n box-sizing: border-box;\n background: #f5f7fa;\n}\n#mathEdit1601362544188 .tabTitle li {\n padding: 2px;\n padding-bottom: 7px;\n width: 80px;\n text-align: center;\n line-height: 16px;\n}\n#mathEdit1601362544188 .tabContent li {\n width: 30px;\n height: 30px;\n margin: 5px;\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQwAAAFeCAYAAABwyiFvAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFFmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNi4wLWMwMDIgNzkuMTY0NDYwLCAyMDIwLzA1LzEyLTE2OjA0OjE3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMiAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIyLTA0LTE3VDE2OjUxOjU1KzA4OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMi0wNC0xN1QxNzoyMDoxMyswODowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMi0wNC0xN1QxNzoyMDoxMyswODowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDphYWJiMGYxMS05MjVjLTU2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);\n background-repeat: no-repeat;\n}\n#mathEdit1601362544188 .help {\n float: right;\n width: 150px;\n text-align: right;\n}\n#mathEdit1601362544188 .tabContent div.mathBox div.mathIcon {\n overflow: hidden;\n height: 80px;\n}\n#mathEdit1601362544188 .tabContent div.mathBox div.more {\n width: 95%;\n text-align: right;\n padding: 5px;\n cursor: pointer;\n}\n#mathEdit1601362544188 #mathDiv p {\n display: inline-block;\n}\n", ""]); + + + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(0)(false); +// Module +exports.push([module.i, ".mathquill-editable {\r\n display: -moz-inline-box;\r\n display: inline-block;\r\n}\r\n.mathquill-editable .cursor {\r\n border-left: 1px solid black;\r\n margin-right: -1px;\r\n position: relative;\r\n z-index: 1;\r\n padding: 0;\r\n display: -moz-inline-box;\r\n display: inline-block;\r\n}\r\n.mathquill-editable .cursor.blink {\r\n visibility: hidden;\r\n}\r\n.mathquill-editable,\r\n.mathquill-embedded-latex .mathquill-editable {\r\n border: 1px solid gray;\r\n padding: 2px;\r\n}\r\n.mathquill-embedded-latex .mathquill-editable {\r\n margin: 1px;\r\n}\r\n.mathquill-editable.hasCursor,\r\n.mathquill-editable .hasCursor {\r\n -webkit-box-shadow: #68b4df 0 0 3px 2px;\r\n -moz-box-shadow: #68b4df 0 0 3px 2px;\r\n box-shadow: #68b4df 0 0 3px 2px;\r\n}\r\n.mathquill-editable .latex-command-input {\r\n color: inherit;\r\n font-family: \"Courier New\", monospace;\r\n border: 1px solid gray;\r\n padding-right: 1px;\r\n margin-right: 1px;\r\n margin-left: 2px;\r\n}\r\n.mathquill-editable .latex-command-input.empty {\r\n background: transparent;\r\n}\r\n.mathquill-editable .latex-command-input.hasCursor {\r\n border-color: ActiveBorder;\r\n}\r\n.mathquill-editable.empty:after,\r\n.mathquill-textbox:after,\r\n.mathquill-rendered-math .empty:after {\r\n visibility: hidden;\r\n content: 'c';\r\n}\r\n.mathquill-editable .cursor:only-child:after,\r\n.mathquill-editable .textarea + .cursor:last-child:after {\r\n visibility: hidden;\r\n content: 'c';\r\n}\r\n.mathquill-textbox {\r\n overflow-x: auto;\r\n overflow-y: hidden;\r\n}\r\n.mathquill-rendered-math {\r\n font-variant: normal;\r\n font-weight: normal;\r\n font-style: normal;\r\n font-size: 115%;\r\n line-height: 1;\r\n display: -moz-inline-box;\r\n display: inline-block;\r\n}\r\n.mathquill-rendered-math .non-leaf,\r\n.mathquill-rendered-math .scaled {\r\n display: -moz-inline-box;\r\n display: inline-block;\r\n}\r\n.mathquill-rendered-math var,\r\n.mathquill-rendered-math .text,\r\n.mathquill-rendered-math .nonSymbola {\r\n font-family: \"Times New Roman\", Symbola, serif;\r\n line-height: .9;\r\n}\r\n.mathquill-rendered-math * {\r\n font-size: inherit;\r\n line-height: inherit;\r\n margin: 0;\r\n padding: 0;\r\n border-color: black;\r\n -webkit-user-select: none;\r\n -moz-user-select: none;\r\n user-select: none;\r\n white-space: pre-wrap;\r\n}\r\n.mathquill-rendered-math .empty {\r\n background: #ccc;\r\n}\r\n.mathquill-rendered-math.empty {\r\n background: transparent;\r\n}\r\n.mathquill-rendered-math .text {\r\n font-size: 87%;\r\n}\r\n.mathquill-rendered-math .font {\r\n font: 1em \"Times New Roman\", Symbola, serif;\r\n}\r\n.mathquill-rendered-math .font * {\r\n font-family: inherit;\r\n font-style: inherit;\r\n}\r\n.mathquill-rendered-math b,\r\n.mathquill-rendered-math b.font {\r\n font-weight: bolder;\r\n}\r\n.mathquill-rendered-math var,\r\n.mathquill-rendered-math i,\r\n.mathquill-rendered-math i.font {\r\n font-syle: italic;\r\n}\r\n.mathquill-rendered-math var.florin {\r\n margin: 0 -0.1em;\r\n}\r\n.mathquill-rendered-math big {\r\n font-size: 125%;\r\n}\r\n.mathquill-rendered-math .roman {\r\n font-style: normal;\r\n}\r\n.mathquill-rendered-math .sans-serif {\r\n font-family: sans-serif, Symbola, serif;\r\n}\r\n.mathquill-rendered-math .monospace {\r\n font-family: monospace, Symbola, serif;\r\n}\r\n.mathquill-rendered-math .overline {\r\n border-top: 1px solid black;\r\n margin-top: 1px;\r\n}\r\n.mathquill-rendered-math .underline {\r\n border-bottom: 1px solid black;\r\n margin-bottom: 1px;\r\n}\r\n.mathquill-rendered-math .binary-operator {\r\n padding: 0 0.2em;\r\n display: -moz-inline-box;\r\n display: inline-block;\r\n}\r\n.mathquill-rendered-math .unary-operator {\r\n padding-left: 0.2em;\r\n}\r\n.mathquill-rendered-math sup,\r\n.mathquill-rendered-math sub {\r\n position: relative;\r\n font-size: 90%;\r\n}\r\n.mathquill-rendered-math sup .binary-operator,\r\n.mathquill-rendered-math sub .binary-operator {\r\n padding: 0 .1em;\r\n}\r\n.mathquill-rendered-math sup .unary-operator,\r\n.mathquill-rendered-math sub .unary-operator {\r\n padding-left: .1em;\r\n}\r\n.mathquill-rendered-math sup.limit,\r\n.mathquill-rendered-math sub.limit,\r\n.mathquill-rendered-math sup.nthroot,\r\n.mathquill-rendered-math sub.nthroot {\r\n font-size: 80%;\r\n}\r\n.mathquill-rendered-math sup .fraction,\r\n.mathquill-rendered-math sub .fraction {\r\n font-size: 70%;\r\n vertical-align: -0.4em;\r\n}\r\n.mathquill-rendered-math sup .numerator,\r\n.mathquill-rendered-math sub .numerator {\r\n padding-bottom: 0;\r\n}\r\n.mathquill-rendered-math sup .denominator,\r\n.mathquill-rendered-math sub .denominator {\r\n padding-top: 0;\r\n}\r\n.mathquill-rendered-math sup {\r\n vertical-align: .5em;\r\n}\r\n.mathquill-rendered-math sup.limit,\r\n.mathquill-rendered-math sup.nthroot {\r\n vertical-align: 0.8em;\r\n}\r\n.mathquill-rendered-math sup.nthroot {\r\n margin-right: -0.6em;\r\n margin-left: .2em;\r\n min-width: .5em;\r\n}\r\n.mathquill-rendered-math sub {\r\n vertical-align: -0.4em;\r\n}\r\n.mathquill-rendered-math sub.limit {\r\n vertical-align: -0.6em;\r\n}\r\n.mathquill-rendered-math .paren {\r\n padding: 0 .1em;\r\n vertical-align: bottom;\r\n -webkit-transform-origin: bottom center;\r\n -moz-transform-origin: bottom center;\r\n -ms-transform-origin: bottom center;\r\n -o-transform-origin: bottom center;\r\n transform-origin: bottom center;\r\n}\r\n.mathquill-rendered-math .array {\r\n vertical-align: middle;\r\n text-align: center;\r\n}\r\n.mathquill-rendered-math .array > span {\r\n display: block;\r\n}\r\n.mathquill-rendered-math .non-italicized-function {\r\n font-family: Symbola, \"Times New Roman\", serif;\r\n line-height: .9;\r\n font-style: normal;\r\n padding-right: .2em;\r\n}\r\n.mathquill-rendered-math .fraction {\r\n font-size: 90%;\r\n text-align: center;\r\n vertical-align: -0.5em;\r\n padding: 0 .2em;\r\n}\r\n.mathquill-rendered-math .fraction,\r\n.mathquill-rendered-math x:-moz-any-link {\r\n display: -moz-groupbox;\r\n}\r\n.mathquill-rendered-math .fraction,\r\n.mathquill-rendered-math x:-moz-any-link,\r\n.mathquill-rendered-math x:default {\r\n display: inline-block;\r\n}\r\n.mathquill-rendered-math .numerator,\r\n.mathquill-rendered-math .denominator {\r\n display: block;\r\n}\r\n.mathquill-rendered-math .numerator {\r\n padding: 0 0.1em;\r\n margin-bottom: -0.1em;\r\n}\r\n.mathquill-rendered-math .denominator {\r\n border-top: 1px solid;\r\n float: right;\r\n width: 100%;\r\n padding: .1em .1em 0 .1em;\r\n margin-right: -0.1em;\r\n margin-left: -0.1em;\r\n}\r\n.mathquill-rendered-math .sqrt-prefix {\r\n padding-top: 0;\r\n position: relative;\r\n top: .1em;\r\n vertical-align: top;\r\n -webkit-transform-origin: top;\r\n -moz-transform-origin: top;\r\n -ms-transform-origin: top;\r\n -o-transform-origin: top;\r\n transform-origin: top;\r\n}\r\n.mathquill-rendered-math .sqrt-stem {\r\n border-top: 1px solid;\r\n margin-top: 1px;\r\n padding-left: .15em;\r\n padding-right: .2em;\r\n margin-right: .1em;\r\n}\r\n.mathquill-rendered-math,\r\n.mathquill-rendered-math .mathquill-editable {\r\n cursor: text;\r\n font-family: Symbola, \"Times New Roman\", serif;\r\n}\r\n.mathquill-rendered-math .selection,\r\n.mathquill-editable .selection,\r\n.mathquill-rendered-math .selection .non-leaf,\r\n.mathquill-editable .selection .non-leaf,\r\n.mathquill-rendered-math .selection .scaled,\r\n.mathquill-editable .selection .scaled {\r\n background: #B4D5FE !important;\r\n background: Highlight !important;\r\n color: HighlightText;\r\n border-color: HighlightText;\r\n}\r\n.mathquill-rendered-math .selection .matrixed,\r\n.mathquill-editable .selection .matrixed {\r\n background: #39F !important;\r\n}\r\n.mathquill-rendered-math .selection .matrixed-container,\r\n.mathquill-editable .selection .matrixed-container {\r\n filter: progid:DXImageTransform.Microsoft.Chroma(color='#3399FF') !important;\r\n}\r\n.mathquill-rendered-math .selection.blur,\r\n.mathquill-editable .selection.blur,\r\n.mathquill-rendered-math .selection.blur .non-leaf,\r\n.mathquill-editable .selection.blur .non-leaf,\r\n.mathquill-rendered-math .selection.blur .matrixed,\r\n.mathquill-editable .selection.blur .matrixed {\r\n background: #D4D4D4 !important;\r\n color: black;\r\n border-color: black;\r\n}\r\n.mathquill-rendered-math .selection.blur .matrixed-container,\r\n.mathquill-editable .selection.blur .matrixed-container {\r\n filter: progid:DXImageTransform.Microsoft.Chroma(color='#D4D4D4') !important;\r\n}\r\n.mathquill-editable .textarea,\r\n.mathquill-rendered-math .textarea {\r\n position: relative;\r\n -webkit-user-select: text;\r\n -moz-user-select: text;\r\n user-select: text;\r\n}\r\n.mathquill-editable .textarea textarea,\r\n.mathquill-rendered-math .textarea textarea,\r\n.mathquill-editable .selectable,\r\n.mathquill-rendered-math .selectable {\r\n -webkit-user-select: text;\r\n -moz-user-select: text;\r\n user-select: text;\r\n position: absolute;\r\n clip: rect(1em 1em 1em 1em);\r\n}\r\n.mathquill-rendered-math .matrixed {\r\n background: white;\r\n display: -moz-inline-box;\r\n display: inline-block;\r\n}\r\n.mathquill-rendered-math .matrixed-container {\r\n filter: progid:DXImageTransform.Microsoft.Chroma(color='white');\r\n margin-top: -0.1em;\r\n}\r\n", ""]); + + + +/***/ }), +/* 7 */ +/***/ (function(module, exports) { + +/** + * Copyleft 2010-2011 Jay and Han (laughinghan@gmail.com) + * under the GNU Lesser General Public License + * http://www.gnu.org/licenses/lgpl.html + * Project Website: http://mathquill.com + */ +(function () { + function st() {} + + function ot(e) { + var t = it.call(arguments, 1); + return function () { + return e.apply(this, t) + } + } + + function ut(e, t) { + if (!t) throw new Error("prayer failed: " + e) + } + + function at(t, r, i, s) { + function d() { + var t; + f = e, t = o.selection ? "$" + o.selection.latex() + "$" : "", h.select(t) + } + var o, u, a, f, l, c, h, p = t.contents().detach(); + i || t.addClass("mathquill-rendered-math"), r.jQ = t.attr(tt, r.id), r.revert = function () { + t.empty().unbind(".mathquill").removeClass("mathquill-rendered-math mathquill-editable mathquill-textbox").append(p) + }, o = r.cursor = G(r), r.renderLatex(p.text()), u = r.textarea = Z('<span class="textarea"><textarea></textarea></span>'), a = u.children(), r.selectionChanged = function () { + f === e && (f = setTimeout(d)), y(t[0]) + }, t.bind("selectstart.mathquill", function (e) { + e.target !== a[0] && e.preventDefault(), e.stopPropagation() + }), c = o.blink, t.bind("mousedown.mathquill", function (n) { + function r(e) { + return o.seek(Z(e.target), e.pageX, e.pageY), (o.prev !== l.prev || o.parent !== l.parent) && o.selectFrom(l), !1 + } + + function i(e) { + return delete e.target, r(e) + } + + function f(n) { + l = e, o.blink = c, o.selection || (s ? o.show() : u.detach()), t.unbind("mousemove", r), Z(n.target.ownerDocument).unbind("mousemove", i).unbind("mouseup", f) + } + return setTimeout(function () { + a.focus() + }), o.blink = st, o.seek(Z(n.target), n.pageX, n.pageY), l = { + parent: o.parent, + prev: o.prev, + next: o.next + }, s || t.prepend(u), t.mousemove(r), Z(n.target.ownerDocument).mousemove(i).mouseup(f), !1 + }); + if (!s) { + h = n(a, { + container: t + }), t.bind("cut paste", !1).bind("copy", d).prepend('<span class="selectable">$' + r.latex() + "$</span>"), a.blur(function () { + o.clearSelection(), setTimeout(v) + }); + + function v() { + u.detach() + } + return + } + h = n(a, { + container: t, + key: function (e, t) { + o.parent.bubble("onKey", e, t) + }, + text: function (e) { + o.parent.bubble("onText", e) + }, + cut: function (e) { + o.selection && setTimeout(function () { + o.prepareEdit(), o.parent.bubble("redraw") + }), e.stopPropagation() + }, + paste: function (e) { + e.slice(0, 1) === "$" && e.slice(-1) === "$" ? e = e.slice(1, -1) : e = "\\text{" + e + "}", o.writeLatex(e).show() + } + }), t.prepend(u), t.addClass("mathquill-editable"), i && t.addClass("mathquill-textbox"), a.focus(function (e) { + o.parent || o.appendTo(r), o.parent.jQ.addClass("hasCursor"), o.selection ? (o.selection.jQ.removeClass("blur"), setTimeout(r.selectionChanged)) : o.show(), e.stopPropagation() + }).blur(function (e) { + o.hide().parent.blur(), o.selection && o.selection.jQ.addClass("blur"), e.stopPropagation() + }), t.bind("focus.mathquill blur.mathquill", function (e) { + a.trigger(e) + }).blur() + } + + function ft(e, n, r) { + return t(B, { + ctrlSeq: e, + htmlTemplate: "<" + n + " " + r + ">&0</" + n + ">" + }) + } + var e, t, n, r, i, s, o, u, a, f, l, c, h, p, d, v, m, g, y, b, w, E, S, x, T, N, C, k, L, A, O, M, _, D, P, H, B, j, F, I, q, R, U, z, W, X, V, $, J, K, Q, G, Y, Z = jQuery, + et = "mathquill-command-id", + tt = "mathquill-block-id", + nt = Math.min, + rt = Math.max, + it = [].slice; + t = function (e, t, n) { + function r(e) { + return typeof e == "object" + } + + function i(e) { + return typeof e == "function" + } + + function s(s, o) { + function u(e) { + var t = this; + if (!(t instanceof u)) return new u(arguments); + e && i(t.init) && t.init.apply(t, e) + } + o === n && (o = s, s = Object); + var a = u[e] = new s, + f = s[e], + l, c = u.mixin = function (e) { + l = {}, i(e) ? l = e.call(u, a, f, u, s) : r(e) && (l = e); + if (r(l)) + for (var n in l) t.call(l, n) && (a[n] = l[n]); + return i(a.init) || (a.init = function () { + s.apply(this, arguments) + }), u + }; + return a.constructor = u, c(o) + } + return s + }("prototype", {}.hasOwnProperty), n = function () { + function t(t) { + var n = t.which || t.keyCode, + r = e[n], + i, s = []; + return t.ctrlKey && s.push("Ctrl"), t.originalEvent && t.originalEvent.metaKey && s.push("Meta"), t.altKey && s.push("Alt"), t.shiftKey && s.push("Shift"), i = r || String.fromCharCode(n), !s.length && !r ? i : (s.push(i), s.join("-")) + } + var e = { + 8: "Backspace", + 9: "Tab", + 10: "Enter", + 13: "Enter", + 16: "Shift", + 17: "Control", + 18: "Alt", + 20: "CapsLock", + 27: "Esc", + 32: "Spacebar", + 33: "PageUp", + 34: "PageDown", + 35: "End", + 36: "Home", + 37: "Left", + 38: "Up", + 39: "Right", + 40: "Down", + 45: "Insert", + 46: "Del", + 144: "NumLock" + }; + return function (n, r) { + function p(e) { + h = e, setTimeout(e) + } + + function d(e) { + h(), l.val(e), e && l[0].select() + } + + function v() { + var e = l[0]; + return "selectionStart" in e ? e.selectionStart !== e.selectionEnd : !1 + } + + function m(e) { + var t = l.val(); + l.val(""), t && e(t) + } + + function g() { + u(t(i), i) + } + + function y(e) { + i = e, s = null, g() + } + + function b(e) { + i && s && g(), s = e, p(w) + } + + function w() { + if (v()) return; + m(o) + } + + function E() { + i = s = null + } + + function S(e) { + l.focus(), p(x) + } + + function x() { + m(a) + } + var i = null, + s = null; + r || (r = {}); + var o = r.text || st, + u = r.key || st, + a = r.paste || st, + f = r.cut || st, + l = Z(n), + c = Z(r.container || l), + h = st; + return c.bind("keydown keypress input keyup focusout paste", function () { + h() + }), c.bind({ + keydown: y, + keypress: b, + focusout: E, + cut: f, + paste: S + }), { + select: d + } + } + }(), r = t(function (e, t, n) { + function r(e, t) { + throw e ? e = "'" + e + "'" : e = "EOF", "Parse Error: " + t + " at " + e + } + e.init = function (e) { + this._ = e + }, e.parse = function (e) { + function t(e, t) { + return t + } + return this.skip(m)._(e, t, r) + }, e.or = function (e) { + ut("or is passed a parser", e instanceof n); + var t = this; + return n(function (n, r, i) { + function s(t) { + return e._(n, r, i) + } + return t._(n, r, s) + }) + }, e.then = function (e) { + var t = this; + return n(function (r, i, s) { + function o(t, r) { + var o = e instanceof n ? e : e(r); + return ut("a parser is returned", o instanceof n), o._(t, i, s) + } + return t._(r, o, s) + }) + }, e.many = function () { + var e = this; + return n(function (t, n, r) { + function s(e, n) { + return t = e, i.push(n), !0 + } + + function o() { + return !1 + } + var i = []; + while (e._(t, s, o)); + return n(t, i) + }) + }, e.times = function (e, t) { + arguments.length < 2 && (t = e); + var r = this; + return n(function (n, i, s) { + function l(e, t) { + return o.push(t), n = e, !0 + } + + function c(e, t) { + return a = t, n = e, !1 + } + + function h(e, t) { + return !1 + } + var o = [], + u = !0, + a; + for (var f = 0; f < e; f += 1) { + u = r._(n, l, c); + if (!u) return s(n, a) + } + for (; f < t && u; f += 1) u = r._(n, l, h); + return i(n, o) + }) + }, e.result = function (e) { + return this.then(o(e)) + }, e.atMost = function (e) { + return this.times(0, e) + }, e.atLeast = function (e) { + var t = this; + return t.times(e).then(function (e) { + return t.many().map(function (t) { + return e.concat(t) + }) + }) + }, e.map = function (e) { + return this.then(function (t) { + return o(e(t)) + }) + }, e.skip = function (e) { + return this.then(function (t) { + return e.result(t) + }) + }; + var i = this.string = function (e) { + var t = e.length, + r = "expected '" + e + "'"; + return n(function (n, i, s) { + var o = n.slice(0, t); + return o === e ? i(n.slice(t), o) : s(n, r) + }) + }, + s = this.regex = function (e) { + ut("regexp parser is anchored", e.toString().charAt(1) === "^"); + var t = "expected " + e; + return n(function (n, r, i) { + var s = e.exec(n); + if (s) { + var o = s[0]; + return r(n.slice(o.length), o) + } + return i(n, t) + }) + }, + o = n.succeed = function (e) { + return n(function (t, n) { + return n(t, e) + }) + }, + u = n.fail = function (e) { + return n(function (t, n, r) { + return r(t, e) + }) + }, + a = n.letter = s(/^[a-z]/i), + f = n.letters = s(/^[a-z]*/i), + l = n.digit = s(/^[0-9]/), + c = n.digits = s(/^[0-9]*/), + h = n.whitespace = s(/^\s+/), + p = n.optWhitespace = s(/^\s*/), + d = n.any = n(function (e, t, n) { + return e ? t(e.slice(1), e.charAt(0)) : n(e, "expected any character") + }), + v = n.all = n(function (e, t, n) { + return t("", e) + }), + m = n.eof = n(function (e, t, n) { + return e ? n(e, "expected EOF") : t(e, e) + }) + }), i = t(function (e) { + e.prev = 0, e.next = 0, e.parent = 0, e.firstChild = 0, e.lastChild = 0, e.children = function () { + return s(this.firstChild, this.lastChild) + }, e.eachChild = function (e) { + return this.children().each(e) + }, e.foldChildren = function (e, t) { + return this.children().fold(e, t) + }, e.adopt = function (e, t, n) { + return s(this, this).adopt(e, t, n), this + }, e.disown = function () { + return s(this, this).disown(), this + } + }), s = t(function (e) { + function t(e, t, n) { + ut("a parent is always present", e), ut("prev is properly set up", function () { + return t ? t.next === n && t.parent === e : e.firstChild === n + }()), ut("next is properly set up", function () { + return n ? n.prev === t && n.parent === e : e.lastChild === t + }()) + } + e.first = 0, e.last = 0, e.init = function (e, t) { + ut("no half-empty fragments", !e == !t); + if (!e) return; + ut("first node is passed to Fragment", e instanceof i), ut("last node is passed to Fragment", t instanceof i), ut("first and last have the same parent", e.parent === t.parent), this.first = e, this.last = t + }, e.adopt = function (e, n, r) { + t(e, n, r); + var i = this; + i.disowned = !1; + var s = i.first; + if (!s) return this; + var o = i.last; + return n || (e.firstChild = s), r ? r.prev = o : e.lastChild = o, i.last.next = r, i.each(function (t) { + t.prev = n, t.parent = e, n && (n.next = t), n = t + }), i + }, e.disown = function () { + var e = this, + n = e.first; + if (!n || e.disowned) return e; + e.disowned = !0; + var r = e.last, + i = n.parent; + return t(i, n.prev, n), t(i, r, r.next), n.prev ? n.prev.next = r.next : i.firstChild = r.next, r.next ? r.next.prev = n.prev : i.lastChild = n.prev, e + }, e.each = function (e) { + var t = this, + n = t.first; + if (!n) return t; + for (; n !== t.last.next; n = n.next) + if (e.call(t, n) === !1) break; + return t + }, e.fold = function (e, t) { + return this.each(function (n) { + e = t.call(this, e, n) + }), e + } + }), o = function () { + var e = 0; + return function () { + return e += 1 + } + }(), u = t(i, function (e) { + e.init = function (e) { + this.id = o(), u[this.id] = this + }, e.toString = function () { + return "[MathElement " + this.id + "]" + }, e.bubble = function (e) { + var t = it.call(arguments, 1); + for (var n = this; n; n = n.parent) { + var r = n[e] && n[e].apply(n, t); + if (r === !1) break + } + return this + }, e.postOrder = function (e) { + var t = it.call(arguments, 1); + if (typeof e == "string") { + var n = e; + e = function (e) { + n in e && e[n].apply(e, arguments) + } + }(function r(t) { + t.eachChild(r), e(t) + })(this) + }, e.jQ = Z(), e.jQadd = function (e) { + this.jQ = this.jQ.add(e) + }, this.jQize = function (e) { + var t = Z(e); + if(t.find("*").andSelf !== void 0){ + return t.find("*").andSelf().each(function () { + var e = Z(this), + t = e.attr("mathquill-command-id"), + n = e.attr("mathquill-block-id"); + t && u[t].jQadd(e), n && u[n].jQadd(e) + }), t + }else { + return t.find("*").addBack().each(function () { + var e = Z(this), + t = e.attr("mathquill-command-id"), + n = e.attr("mathquill-block-id"); + t && u[t].jQadd(e), n && u[n].jQadd(e) + }), t + } + }, e.finalizeInsert = function () { + var e = this; + e.postOrder("finalizeTree"), e.postOrder("blur"), e.postOrder("respace"), e.next.respace && e.next.respace(), e.prev.respace && e.prev.respace(), e.postOrder("redraw"), e.bubble("redraw") + } + }), a = t(u, function (e, t) { + e.init = function (e, n, r) { + var i = this; + t.init.call(i), i.ctrlSeq || (i.ctrlSeq = e), n && (i.htmlTemplate = n), r && (i.textTemplate = r) + }, e.replaces = function (e) { + e.disown(), this.replacedFragment = e + }, e.isEmpty = function () { + return this.foldChildren(!0, function (e, t) { + return e && t.isEmpty() + }) + }, e.parser = function () { + var e = Q.block, + t = this; + return e.times(t.numBlocks()).map(function (e) { + t.blocks = e; + for (var n = 0; n < e.length; n += 1) e[n].adopt(t, t.lastChild, 0); + return t + }) + }, e.createBefore = function (e) { + var t = this, + n = t.replacedFragment; + t.createBlocks(), u.jQize(t.html()), n && (n.adopt(t.firstChild, 0, 0), n.jQ.appendTo(t.firstChild.jQ)), e.jQ.before(t.jQ), e.prev = t.adopt(e.parent, e.prev, e.next), t.finalizeInsert(e), t.placeCursor(e) + }, e.createBlocks = function () { + var e = this, + t = e.numBlocks(), + n = e.blocks = Array(t); + for (var r = 0; r < t; r += 1) { + var i = n[r] = l(); + i.adopt(e, e.lastChild, 0) + } + }, e.respace = st, e.placeCursor = function (e) { + e.appendTo(this.foldChildren(this.firstChild, function (e, t) { + return e.isEmpty() ? e : t + })) + }, e.remove = function () { + return this.disown(), this.jQ.remove(), this.postOrder(function (e) { + delete u[e.id] + }), this + }, e.numBlocks = function () { + var e = this.htmlTemplate.match(/&\d+/g); + return e ? e.length : 0 + }, e.html = function () { + var e = this, + t = e.blocks, + n = " mathquill-command-id=" + e.id, + r = e.htmlTemplate.match(/<[^<>]+>|[^<>]+/g); + ut("no unmatched angle brackets", r.join("") === this.htmlTemplate); + for (var i = 0, s = r[0]; s; i += 1, s = r[i]) + if (s.slice(-2) === "/>") r[i] = s.slice(0, -2) + n + "/>"; + else if (s.charAt(0) === "<") { + ut("not an unmatched top-level close tag", s.charAt(1) !== "/"), r[i] = s.slice(0, -1) + n + ">"; + var o = 1; + do i += 1, s = r[i], ut("no missing close tags", s), s.slice(0, 2) === "</" ? o -= 1 : s.charAt(0) === "<" && s.slice(-2) !== "/>" && (o += 1); while (o > 0) + } + return r.join("").replace(/>&(\d+)/g, function (e, n) { + return " mathquill-block-id=" + t[n].id + ">" + t[n].join("html") + }) + }, e.latex = function () { + return this.foldChildren(this.ctrlSeq, function (e, t) { + return e + "{" + (t.latex() || " ") + "}" + }) + }, e.textTemplate = [""], e.text = function () { + var e = 0; + return this.foldChildren(this.textTemplate[e], function (t, n) { + e += 1; + var r = n.text(); + return t && this.textTemplate[e] === "(" && r[0] === "(" && r.slice(-1) === ")" ? t + r.slice(1, -1) + this.textTemplate[e] : t + n.text() + (this.textTemplate[e] || "") + }) + } + }), f = t(a, function (e, t) { + e.init = function (e, n, r) { + r || (r = e && e.length > 1 ? e.slice(1) : e), t.init.call(this, e, n, [r]) + }, e.parser = function () { + return r.succeed(this) + }, e.numBlocks = function () { + return 0 + }, e.replaces = function (e) { + e.remove() + }, e.createBlocks = st, e.latex = function () { + return this.ctrlSeq + }, e.text = function () { + return this.textTemplate + }, e.placeCursor = st, e.isEmpty = function () { + return !0 + } + }), l = t(u, function (e) { + e.join = function (e) { + return this.foldChildren("", function (t, n) { + return t + n[e]() + }) + }, e.latex = function () { + return this.join("latex") + }, e.text = function () { + return this.firstChild === this.lastChild ? this.firstChild.text() : "(" + this.join("text") + ")" + }, e.isEmpty = function () { + return this.firstChild === 0 && this.lastChild === 0 + }, e.focus = function () { + return this.jQ.addClass("hasCursor"), this.jQ.removeClass("empty"), this + }, e.blur = function () { + return this.jQ.removeClass("hasCursor"), this.isEmpty() && this.jQ.addClass("empty"), this + } + }), c = t(s, function (e, t) { + e.init = function (e, n) { + t.init.call(this, e, n || e), this.jQ = this.fold(Z(), function (e, t) { + return t.jQ.add(e) + }) + }, e.latex = function () { + return this.fold("", function (e, t) { + return e + t.latex() + }) + }, e.remove = function () { + return this.jQ.remove(), this.each(function (e) { + e.postOrder(function (e) { + delete u[e.id] + }) + }), this.disown() + } + }), h = t(l, function (e, t) { + e.latex = function () { + return t.latex.call(this).replace(/(\\[a-z]+) (?![a-z])/ig, "$1") + }, e.text = function () { + return this.foldChildren("", function (e, t) { + return e + t.text() + }) + }, e.renderLatex = function (e) { + var t = this.jQ; + t.children().slice(1).remove(), this.firstChild = this.lastChild = 0, this.cursor.appendTo(this).writeLatex(e) + }, e.onKey = function (e, t) { + switch (e) { + case "Ctrl-Shift-Backspace": + case "Ctrl-Backspace": + while (this.cursor.prev || this.cursor.selection) this.cursor.backspace(); + break; + case "Shift-Backspace": + case "Backspace": + this.cursor.backspace(); + break; + case "Esc": + case "Tab": + case "Spacebar": + var n = this.cursor.parent; + if (n === this.cursor.root) { + e === "Spacebar" && t.preventDefault(); + return + } + this.cursor.prepareMove(), n.next ? this.cursor.prependTo(n.next) : this.cursor.insertAfter(n.parent); + break; + case "Shift-Tab": + case "Shift-Esc": + case "Shift-Spacebar": + var n = this.cursor.parent; + if (n === this.cursor.root) { + e === "Shift-Spacebar" && t.preventDefault(); + return + } + this.cursor.prepareMove(), n.prev ? this.cursor.appendTo(n.prev) : this.cursor.insertBefore(n.parent); + break; + case "Enter": + break; + case "End": + this.cursor.prepareMove().appendTo(this.cursor.parent); + break; + case "Ctrl-End": + this.cursor.prepareMove().appendTo(this); + break; + case "Shift-End": + while (this.cursor.next) this.cursor.selectRight(); + break; + case "Ctrl-Shift-End": + while (this.cursor.next || this.cursor.parent !== this) this.cursor.selectRight(); + break; + case "Home": + this.cursor.prepareMove().prependTo(this.cursor.parent); + break; + case "Ctrl-Home": + this.cursor.prepareMove().prependTo(this); + break; + case "Shift-Home": + while (this.cursor.prev) this.cursor.selectLeft(); + break; + case "Ctrl-Shift-Home": + while (this.cursor.prev || this.cursor.parent !== this) this.cursor.selectLeft(); + break; + case "Left": + this.cursor.moveLeft(); + break; + case "Shift-Left": + this.cursor.selectLeft(); + break; + case "Ctrl-Left": + break; + case "Right": + this.cursor.moveRight(); + break; + case "Shift-Right": + this.cursor.selectRight(); + break; + case "Ctrl-Right": + break; + case "Up": + this.cursor.moveUp(); + break; + case "Down": + this.cursor.moveDown(); + break; + case "Shift-Up": + if (this.cursor.prev) + while (this.cursor.prev) this.cursor.selectLeft(); + else this.cursor.selectLeft(); + case "Shift-Down": + if (this.cursor.next) + while (this.cursor.next) this.cursor.selectRight(); + else this.cursor.selectRight(); + case "Ctrl-Up": + break; + case "Ctrl-Down": + break; + case "Ctrl-Shift-Del": + case "Ctrl-Del": + while (this.cursor.next || this.cursor.selection) this.cursor.deleteForward(); + break; + case "Shift-Del": + case "Del": + this.cursor.deleteForward(); + break; + case "Meta-A": + case "Ctrl-A": + if (this !== this.cursor.root) return; + this.cursor.prepareMove().appendTo(this); + while (this.cursor.prev) this.cursor.selectLeft(); + break; + default: + return !1 + } + return t.preventDefault(), !1 + }, e.onText = function (e) { + return this.cursor.write(e), !1 + } + }), p = t(a, function (e, t) { + e.init = function (e) { + t.init.call(this, "$"), this.cursor = e + }, e.htmlTemplate = '<span class="mathquill-rendered-math">&0</span>', e.createBlocks = function () { + this.firstChild = this.lastChild = h(), this.blocks = [this.firstChild], this.firstChild.parent = this; + var e = this.firstChild.cursor = this.cursor; + this.firstChild.onText = function (t) { + return t !== "$" || e.parent !== this ? e.write(t) : this.isEmpty() ? e.insertAfter(this.parent).backspace().insertNew(z("\\$", "$")).show() : e.next ? e.prev ? e.write(t) : e.insertBefore(this.parent) : e.insertAfter(this.parent), !1 + } + }, e.latex = function () { + return "$" + this.firstChild.latex() + "$" + } + }), d = t(l, function (e) { + e.renderLatex = function (e) { + var t = this, + n = t.cursor; + t.jQ.children().slice(1).remove(), t.firstChild = t.lastChild = 0, n.show().appendTo(t); + var i = r.regex, + s = r.string, + o = r.eof, + a = r.all, + f = s("$").then(Q).skip(s("$").or(o)).map(function (e) { + var t = p(n); + t.createBlocks(); + var r = t.firstChild; + return e.children().adopt(r, 0, 0), t + }), + l = s("\\$").result("$"), + c = l.or(i(/^[^$]/)).map(z), + h = f.or(c).many(), + d = h.skip(o).or(a.result(!1)).parse(e); + if (d) { + for (var v = 0; v < d.length; v += 1) d[v].adopt(t, t.lastChild, 0); + var m = t.join("html"); + u.jQize(m).appendTo(t.jQ), this.finalizeInsert() + } + }, e.onKey = h.prototype.onKey, e.onText = function (e) { + return this.cursor.prepareEdit(), e === "$" ? this.cursor.insertNew(p(this.cursor)) : this.cursor.insertNew(z(e)), !1 + } + }), v = {}, m = {}, y = st, b = document.createElement("div"), w = b.style, E = { + transform: 1, + WebkitTransform: 1, + MozTransform: 1, + OTransform: 1, + msTransform: 1 + }; + for (x in E) + if (x in w) { + S = x; + break + } S ? g = function (e, t, n) { + e.css(S, "scale(" + t + "," + n + ")") + } : "filter" in w ? (y = function (e) { + e.className = e.className + }, g = function (e, t, n) { + function s() { + e.css("marginRight", (r.width() - 1) * (t - 1) / t + "px") + } + var r, i; + t /= 1 + (n - 1) / 2, e.css("fontSize", n + "em"), e.hasClass("matrixed-container") || e.addClass("matrixed-container").wrapInner('<span class="matrixed"></span>'), r = e.children().css("filter", "progid:DXImageTransform.Microsoft.Matrix(M11=" + t + ",SizingMethod='auto expand')"), s(), i = setInterval(s), Z(window).load(function () { + clearTimeout(i), s() + }) + }) : g = function (e, t, n) { + e.css("fontSize", n + "em") + }, T = t(a, function (e, t) { + e.init = function (e, n, r) { + t.init.call(this, e, "<" + n + " " + r + ">&0</" + n + ">") + } + }), m.mathrm = ot(T, "\\mathrm", "span", 'class="roman font"'), m.mathit = ot(T, "\\mathit", "i", 'class="font"'), m.mathbf = ot(T, "\\mathbf", "b", 'class="font"'), m.mathsf = ot(T, "\\mathsf", "span", 'class="sans-serif font"'), m.mathtt = ot(T, "\\mathtt", "span", 'class="monospace font"'), m.underline = ot(T, "\\underline", "span", 'class="non-leaf underline"'), m.overline = m.bar = ot(T, "\\overline", "span", 'class="non-leaf overline"'), N = t(a, function (e, t) { + e.init = function (e, n, r) { + t.init.call(this, e, "<" + n + ' class="non-leaf">&0</' + n + ">", [r]) + }, e.finalizeTree = function () { + function e(e) { + var t = this.parent, + n = e; + do { + if (n.next) return e.insertBefore(t), !1; + n = n.parent.parent + } while (n !== t); + return e.insertAfter(t), !1 + } + ut("SupSub is only _ and ^", this.ctrlSeq === "^" || this.ctrlSeq === "_"), this.ctrlSeq === "_" ? (this.down = this.firstChild, this.firstChild.up = e) : (this.up = this.firstChild, this.firstChild.down = e) + }, e.latex = function () { + var e = this.firstChild.latex(); + return e.length === 1 ? this.ctrlSeq + e : this.ctrlSeq + "{" + (e || " ") + "}" + }, e.redraw = function () { + this.prev && this.prev.respace(), this.prev instanceof N || (this.respace(), this.next && !(this.next instanceof N) && this.next.respace()) + }, e.respace = function () { + this.prev.ctrlSeq === "\\int " || this.prev instanceof N && this.prev.ctrlSeq != this.ctrlSeq && this.prev.prev && this.prev.prev.ctrlSeq === "\\int " ? this.limit || (this.limit = !0, this.jQ.addClass("limit")) : this.limit && (this.limit = !1, this.jQ.removeClass("limit")), this.respaced = this.prev instanceof N && this.prev.ctrlSeq != this.ctrlSeq && !this.prev.respaced; + if (this.respaced) { + var e = +this.jQ.css("fontSize").slice(0, -2), + t = this.prev.jQ.outerWidth(), + n = this.jQ.outerWidth(); + this.jQ.css({ + left: (this.limit && this.ctrlSeq === "_" ? -0.25 : 0) - t / e + "em", + marginRight: .1 - nt(n, t) / e + "em" + }) + } else this.limit && this.ctrlSeq === "_" ? this.jQ.css({ + left: "-.25em", + marginRight: "" + }) : this.jQ.css({ + left: "", + marginRight: "" + }); + return this.next instanceof N && this.next.respace(), this + } + }), m.subscript = m._ = ot(N, "_", "sub", "_"), m.superscript = m.supscript = m["^"] = ot(N, "^", "sup", "**"), C = m.frac = m.dfrac = m.cfrac = m.fraction = t(a, function (e, t) { + e.ctrlSeq = "\\frac", e.htmlTemplate = '<span class="fraction non-leaf"><span class="numerator">&0</span><span class="denominator">&1</span><span style="display:inline-block;width:0"> </span></span>', e.textTemplate = ["(", "/", ")"], e.finalizeTree = function () { + this.up = this.lastChild.up = this.firstChild, this.down = this.firstChild.down = this.lastChild + } + }), k = m.over = v["/"] = t(C, function (e, t) { + e.createBefore = function (e) { + if (!this.replacedFragment) { + var n = e.prev; + while (n && !(n instanceof V || n instanceof B || n instanceof J)) n = n.prev; + n instanceof J && n.next instanceof N && (n = n.next, n.next instanceof N && n.next.ctrlSeq != n.ctrlSeq && (n = n.next)), n !== e.prev && (this.replaces(c(n.next || e.parent.firstChild, e.prev)), e.prev = n) + } + t.createBefore.call(this, e) + } + }), L = m.sqrt = m["鈭�"] = t(a, function (e, t) { + e.ctrlSeq = "\\sqrt", e.htmlTemplate = '<span class="non-leaf"><span class="scaled sqrt-prefix">√</span><span class="non-leaf sqrt-stem">&0</span></span>', e.textTemplate = ["sqrt(", ")"], e.parser = function () { + return Q.optBlock.then(function (e) { + return Q.block.map(function (t) { + var n = A(); + return n.blocks = [e, t], e.adopt(n, 0, 0), t.adopt(n, e, 0), n + }) + }).or(t.parser.call(this)) + }, e.redraw = function () { + var e = this.lastChild.jQ; + g(e.prev(), 1, e.innerHeight() / +e.css("fontSize").slice(0, -2) - .1) + } + }), A = m.nthroot = t(L, function (e, t) { + e.htmlTemplate = '<sup class="nthroot non-leaf">&0</sup><span class="scaled"><span class="sqrt-prefix scaled">√</span><span class="sqrt-stem non-leaf">&1</span></span>', e.textTemplate = ["sqrt[", "](", ")"], e.latex = function () { + return "\\sqrt[" + this.firstChild.latex() + "]{" + this.lastChild.latex() + "}" + } + }), O = t(a, function (e, t) { + e.init = function (e, n, r, i) { + t.init.call(this, "\\left" + r, '<span class="non-leaf"><span class="scaled paren">' + e + "</span>" + '<span class="non-leaf">&0</span>' + '<span class="scaled paren">' + n + "</span>" + "</span>", [e, n]), this.end = "\\right" + i + }, e.jQadd = function () { + t.jQadd.apply(this, arguments); + var e = this.jQ; + this.bracketjQs = e.children(":first").add(e.children(":last")) + }, e.latex = function () { + return this.ctrlSeq + this.firstChild.latex() + this.end + }, e.redraw = function () { + var e = this.firstChild.jQ, + t = e.outerHeight() / +e.css("fontSize").slice(0, -2); + g(this.bracketjQs, nt(1 + .2 * (t - 1), 1.2), 1.05 * t) + } + }), m.left = t(a, function (e) { + e.parser = function () { + var e, t, n, i = r.regex, + s = r.string; + return i = r.regex, e = r.succeed, t = Q.block, n = r.optWhitespace, n.then(i(/^(?:[([|]|\\\{)/)).then(function (t) { + var o; + return t.charAt(0) === "\\" && (t = t.slice(1)), o = v[t](), Q.map(function (e) { + o.blocks = [e], e.adopt(o, 0, 0) + }).then(s("\\right")).skip(n).then(i(/^(?:[\])|]|\\\})/)).then(function (t) { + return t.slice(-1) !== o.end.slice(-1) ? r.fail("open doesn't match close") : e(o) + }) + }) + } + }), m.right = t(a, function (e) { + e.parser = function () { + return r.fail("unmatched \\right") + } + }), m.lbrace = v["{"] = ot(O, "{", "}", "\\{", "\\}"), m.langle = m.lang = ot(O, "⟨", "⟩", "\\langle ", "\\rangle "), M = t(O, function (e, t) { + e.createBefore = function (e) { + !e.next && e.parent.parent && e.parent.parent.end === this.end && !this.replacedFragment ? e.insertAfter(e.parent.parent) : t.createBefore.call(this, e) + }, e.placeCursor = function (e) { + this.firstChild.blur(), e.insertAfter(this) + } + }), m.rbrace = v["}"] = ot(M, "{", "}", "\\{", "\\}"), m.rangle = m.rang = ot(M, "⟨", "⟩", "\\langle ", "\\rangle "), _ = function (e, t) { + e.init = function (e, n) { + t.init.call(this, e, n, e, n) + } + }, D = t(O, _), m.lparen = v["("] = ot(D, "(", ")"), m.lbrack = m.lbracket = v["["] = ot(D, "[", "]"), P = t(M, _), m.rparen = v[")"] = ot(P, "(", ")"), m.rbrack = m.rbracket = v["]"] = ot(P, "[", "]"), H = m.lpipe = m.rpipe = v["|"] = t(D, function (e, t) { + e.init = function () { + t.init.call(this, "|", "|") + }, e.createBefore = M.prototype.createBefore + }), B = v.$ = m.text = m.textnormal = m.textrm = m.textup = m.textmd = t(a, function (e, t) { + e.ctrlSeq = "\\text", e.htmlTemplate = '<span class="text">&0</span>', e.replaces = function (e) { + e instanceof c ? this.replacedText = e.remove().jQ.text() : typeof e == "string" && (this.replacedText = e) + }, e.textTemplate = ['"', '"'], e.parser = function () { + var e = r.string, + t = r.regex, + n = r.optWhitespace; + return n.then(e("{")).then(t(/^[^}]*/)).skip(e("}")).map(function (e) { + var t = B(); + t.createBlocks(); + var n = t.firstChild; + for (var r = 0; r < e.length; r += 1) { + var i = z(e.charAt(r)); + i.adopt(n, n.lastChild, 0) + } + return t + }) + }, e.createBlocks = function () { + this.firstChild = this.lastChild = j(), this.blocks = [this.firstChild], this.firstChild.parent = this + }, e.finalizeInsert = function () { + this.firstChild.blur = function () { + return delete this.blur, this + }, t.finalizeInsert.call(this) + }, e.createBefore = function (e) { + t.createBefore.call(this, this.cursor = e); + if (this.replacedText) + for (var n = 0; n < this.replacedText.length; n += 1) this.write(this.replacedText.charAt(n)) + }, e.write = function (e) { + this.cursor.insertNew(z(e)) + }, e.onKey = function (e, t) { + if (!this.cursor.selection && (e === "Backspace" && !this.cursor.prev || e === "Del" && !this.cursor.next)) return this.isEmpty() && this.cursor.insertAfter(this), !1 + }, e.onText = function (e) { + this.cursor.prepareEdit(); + if (e !== "$") this.write(e); + else if (this.isEmpty()) this.cursor.insertAfter(this).backspace().insertNew(z("\\$", "$")); + else if (!this.cursor.next) this.cursor.insertAfter(this); + else if (!this.cursor.prev) this.cursor.insertBefore(this); + else { + var t = B(c(this.cursor.next, this.firstChild.lastChild)); + t.placeCursor = function (e) { + this.prev = 0, delete this.placeCursor, this.placeCursor(e) + }, t.firstChild.focus = function () { + return this + }, this.cursor.insertAfter(this).insertNew(t), t.prev = this, this.cursor.insertBefore(t), delete t.firstChild.focus + } + return !1 + } + }), j = t(l, function (e, t) { + e.blur = function () { + this.jQ.removeClass("hasCursor"); + if (this.isEmpty()) { + var e = this.parent, + t = e.cursor; + t.parent === this ? this.jQ.addClass("empty") : (t.hide(), e.remove(), t.next === e ? t.next = e.next : t.prev === e && (t.prev = e.prev), t.show().parent.bubble("redraw")) + } + return this + }, e.focus = function () { + t.focus.call(this); + var e = this.parent; + if (e.next.ctrlSeq === e.ctrlSeq) { + var n = this, + r = e.cursor, + i = e.next.firstChild; + i.eachChild(function (e) { + e.parent = n, e.jQ.appendTo(n.jQ) + }), this.lastChild ? this.lastChild.next = i.firstChild : this.firstChild = i.firstChild, i.firstChild.prev = this.lastChild, this.lastChild = i.lastChild, i.parent.remove(), r.prev ? r.insertAfter(r.prev) : r.prependTo(this), r.parent.bubble("redraw") + } else if (e.prev.ctrlSeq === e.ctrlSeq) { + var r = e.cursor; + r.prev ? e.prev.firstChild.focus() : r.appendTo(e.prev.firstChild) + } + return this + } + }), m.em = m.italic = m.italics = m.emph = m.textit = m.textsl = ft("\\textit", "i", 'class="text"'), m.strong = m.bold = m.textbf = ft("\\textbf", "b", 'class="text"'), m.sf = m.textsf = ft("\\textsf", "span", 'class="sans-serif text"'), m.tt = m.texttt = ft("\\texttt", "span", 'class="monospace text"'), m.textsc = ft("\\textsc", "span", 'style="font-variant:small-caps" class="text"'), m.uppercase = ft("\\uppercase", "span", 'style="text-transform:uppercase" class="text"'), m.lowercase = ft("\\lowercase", "span", 'style="text-transform:lowercase" class="text"'), F = v["\\"] = t(a, function (e, t) { + e.ctrlSeq = "\\", e.replaces = function (e) { + this._replacedFragment = e.disown(), this.isEmpty = function () { + return !1 + } + }, e.htmlTemplate = '<span class="latex-command-input non-leaf">\\<span>&0</span></span>', e.textTemplate = ["\\"], e.createBlocks = function () { + t.createBlocks.call(this), this.firstChild.focus = function () { + return this.parent.jQ.addClass("hasCursor"), this.isEmpty() && this.parent.jQ.removeClass("empty"), this + }, this.firstChild.blur = function () { + return this.parent.jQ.removeClass("hasCursor"), this.isEmpty() && this.parent.jQ.addClass("empty"), this + } + }, e.createBefore = function (e) { + t.createBefore.call(this, e), this.cursor = e.appendTo(this.firstChild); + if (this._replacedFragment) { + var n = this.jQ[0]; + this.jQ = this._replacedFragment.jQ.addClass("blur").bind("mousedown mousemove", function (e) { + return Z(e.target = n).trigger(e), !1 + }).insertBefore(this.jQ).add(this.jQ) + } + }, e.latex = function () { + return "\\" + this.firstChild.latex() + " " + }, e.onKey = function (e, t) { + if (e === "Tab" || e === "Enter" || e === "Spacebar") return this.renderCommand(), t.preventDefault(), !1 + }, e.onText = function (e) { + if (e.match(/[a-z]/i)) return this.cursor.prepareEdit(), this.cursor.insertNew(z(e)), !1; + this.renderCommand(); + if (e === "\\" && this.firstChild.isEmpty()) return !1 + }, e.renderCommand = function () { + this.jQ = this.jQ.last(), this.remove(), this.next ? this.cursor.insertBefore(this.next) : this.cursor.appendTo(this.parent); + var e = this.firstChild.latex(), + t; + e || (e = "backslash"), this.cursor.insertCmd(e, this._replacedFragment) + } + }), I = m.binom = m.binomial = t(a, function (e, t) { + e.ctrlSeq = "\\binom", e.htmlTemplate = '<span class="paren scaled">(</span><span class="non-leaf"><span class="array non-leaf"><span>&0</span><span>&1</span></span></span><span class="paren scaled">)</span>', e.textTemplate = ["choose(", ",", ")"], e.redraw = function () { + var e = this.jQ.eq(1), + t = e.outerHeight() / +e.css("fontSize").slice(0, -2), + n = this.jQ.filter(".paren"); + g(n, nt(1 + .2 * (t - 1), 1.2), 1.05 * t) + } + }), q = m.choose = t(I, function (e) { + e.createBefore = k.prototype.createBefore + }), R = m.vector = t(a, function (e, t) { + e.ctrlSeq = "\\vector", e.htmlTemplate = '<span class="array"><span>&0</span></span>', e.latex = function () { + return "\\begin{matrix}" + this.foldChildren([], function (e, t) { + return e.push(t.latex()), e + }).join("\\\\") + "\\end{matrix}" + }, e.text = function () { + return "[" + this.foldChildren([], function (e, t) { + return e.push(t.text()), e + }).join() + "]" + }, e.createBefore = function (e) { + t.createBefore.call(this, this.cursor = e) + }, e.onKey = function (e, t) { + var n = this.cursor.parent; + if (n.parent === this) { + if (e === "Enter") { + var r = l(); + return r.parent = this, r.jQ = Z("<span></span>").attr(tt, r.id).insertAfter(n.jQ), n.next ? n.next.prev = r : this.lastChild = r, r.next = n.next, n.next = r, r.prev = n, this.bubble("redraw").cursor.appendTo(r), t.preventDefault(), !1 + } + if (e === "Tab" && !n.next) { + if (n.isEmpty()) { + if (n.prev) return this.cursor.insertAfter(this), delete n.prev.next, this.lastChild = n.prev, n.jQ.remove(), this.bubble("redraw"), t.preventDefault(), !1; + return + } + var r = l(); + return r.parent = this, r.jQ = Z("<span></span>").attr(tt, r.id).appendTo(this.jQ), this.lastChild = r, n.next = r, r.prev = n, this.bubble("redraw").cursor.appendTo(r), t.preventDefault(), !1 + } + if (t.which === 8) { + if (n.isEmpty()) return n.prev ? (this.cursor.appendTo(n.prev), n.prev.next = n.next) : (this.cursor.insertBefore(this), this.firstChild = n.next), n.next ? n.next.prev = n.prev : this.lastChild = n.prev, n.jQ.remove(), this.isEmpty() ? this.cursor.deleteForward() : this.bubble("redraw"), t.preventDefault(), !1; + if (!this.cursor.prev) return t.preventDefault(), !1 + } + } + } + }), m.editable = t(p, function (e, t) { + e.init = function () { + a.prototype.init.call(this, "\\editable") + }, e.jQadd = function () { + var e, n, r = this; + t.jQadd.apply(r, arguments), e = r.firstChild.disown(), n = r.jQ.children().detach(), r.firstChild = r.lastChild = h(), r.blocks = [r.firstChild], r.firstChild.parent = r, at(r.jQ, r.firstChild, !1, !0), r.cursor = r.firstChild.cursor, e.children().adopt(r.firstChild, 0, 0), n.appendTo(r.firstChild.jQ), r.firstChild.cursor.appendTo(r.firstChild) + }, e.latex = function () { + return this.firstChild.latex() + }, e.text = function () { + return this.firstChild.text() + } + }), m.f = ot(f, "f", '<var class="florin">ƒ</var><span style="display:inline-block;width:0"> </span>'), U = t(f, function (e, t) { + e.init = function (e, n) { + t.init.call(this, e, "<var>" + (n || e) + "</var>") + }, e.text = function () { + var e = this.ctrlSeq; + return this.prev && !(this.prev instanceof U) && !(this.prev instanceof V) && (e = "*" + e), this.next && !(this.next instanceof V) && this.next.ctrlSeq !== "^" && (e += "*"), e + } + }), z = t(f, function (e, t) { + e.init = function (e, n) { + t.init.call(this, e, "<span>" + (n || e) + "</span>") + } + }), v[" "] = ot(z, "\\:", " "), m.prime = v["'"] = ot(z, "'", "′"), W = t(f, function (e, t) { + e.init = function (e, n) { + t.init.call(this, e, '<span class="nonSymbola">' + (n || e) + "</span>") + } + }), m["@"] = W, m["&"] = ot(W, "\\&", "&"), m["%"] = ot(W, "\\%", "%"), m.alpha = m.beta = m.gamma = m.delta = m.zeta = m.eta = m.theta = m.iota = m.kappa = m.mu = m.nu = m.xi = m.rho = m.sigma = m.tau = m.chi = m.psi = m.omega = t(U, function (e, t) { + e.init = function (e) { + t.init.call(this, "\\" + e + " ", "&" + e + ";") + } + }), m.phi = ot(U, "\\phi ", "ϕ"), m.phiv = m.varphi = ot(U, "\\varphi ", "φ"), m.epsilon = ot(U, "\\epsilon ", "ϵ"), m.epsiv = m.varepsilon = ot(U, "\\varepsilon ", "ε"), m.piv = m.varpi = ot(U, "\\varpi ", "ϖ"), m.sigmaf = m.sigmav = m.varsigma = ot(U, "\\varsigma ", "ς"), m.thetav = m.vartheta = m.thetasym = ot(U, "\\vartheta ", "ϑ"), m.upsilon = m.upsi = ot(U, "\\upsilon ", "υ"), m.gammad = m.Gammad = m.digamma = ot(U, "\\digamma ", "ϝ"), m.kappav = m.varkappa = ot(U, "\\varkappa ", "ϰ"), m.rhov = m.varrho = ot(U, "\\varrho ", "ϱ"), m.pi = m["蟺"] = ot(W, "\\pi ", "π"), m.lambda = ot(W, "\\lambda ", "λ"), m.Upsilon = m.Upsi = m.upsih = m.Upsih = ot(f, "\\Upsilon ", '<var style="font-family: serif">ϒ</var>'), m.Gamma = m.Delta = m.Theta = m.Lambda = m.Xi = m.Pi = m.Sigma = m.Phi = m.Psi = m.Omega = m.forall = t(z, function (e, t) { + e.init = function (e) { + t.init.call(this, "\\" + e + " ", "&" + e + ";") + } + }), X = t(a, function (e) { + e.init = function (e) { + this.latex = e + }, e.createBefore = function (e) { + e.writeLatex(this.latex) + }, e.parser = function () { + var e = Q.parse(this.latex).children(); + return r.succeed(e) + } + }), m["鹿"] = ot(X, "^1"), m["虏"] = ot(X, "^2"), m["鲁"] = ot(X, "^3"), m["录"] = ot(X, "\\frac14"), m["陆"] = ot(X, "\\frac12"), m["戮"] = ot(X, "\\frac34"), V = t(f, function (e, t) { + e.init = function (e, n, r) { + t.init.call(this, e, '<span class="binary-operator">' + n + "</span>", r) + } + }), $ = t(V, function (e) { + e.init = z.prototype.init, e.respace = function () { + return this.prev ? this.prev instanceof V && this.next && !(this.next instanceof V) ? this.jQ[0].className = "unary-operator" : this.jQ[0].className = "binary-operator" : this.jQ[0].className = "", this + } + }), m["+"] = ot($, "+", "+"), m["鈥�"] = m["-"] = ot($, "-", "−"), m["卤"] = m.pm = m.plusmn = m.plusminus = ot($, "\\pm ", "±"), m.mp = m.mnplus = m.minusplus = ot($, "\\mp ", "∓"), v["*"] = m.sdot = m.cdot = ot(V, "\\cdot ", "·"), m["="] = ot(V, "=", "="), m["<"] = ot(V, "<", "<"), m[">"] = ot(V, ">", ">"), m.notin = m.sim = m.cong = m.equiv = m.oplus = m.otimes = t(V, function (e, t) { + e.init = function (e) { + t.init.call(this, "\\" + e + " ", "&" + e + ";") + } + }), m.times = ot(V, "\\times ", "×", "[x]"), m["梅"] = m.div = m.divide = m.divides = ot(V, "\\div ", "÷", "[/]"), m["鈮�"] = m.ne = m.neq = ot(V, "\\ne ", "≠"), m.ast = m.star = m.loast = m.lowast = ot(V, "\\ast ", "∗"), m.therefor = m.therefore = ot(V, "\\therefore ", "∴"), m.cuz = m.because = ot(V, "\\because ", "∵"), m.prop = m.propto = ot(V, "\\propto ", "∝"), m["鈮�"] = m.asymp = m.approx = ot(V, "\\approx ", "≈"), m.lt = ot(V, "<", "<"), m.gt = ot(V, ">", ">"), m["鈮�"] = m.le = m.leq = ot(V, "\\le ", "≤"), m["鈮�"] = m.ge = m.geq = ot(V, "\\ge ", "≥"), m.isin = m["in"] = ot(V, "\\in ", "∈"), m.ni = m.contains = ot(V, "\\ni ", "∋"), m.notni = m.niton = m.notcontains = m.doesnotcontain = ot(V, "\\not\\ni ", "∌"), m.sub = m.subset = ot(V, "\\subset ", "⊂"), m.sup = m.supset = m.superset = ot(V, "\\supset ", "⊃"), m.nsub = m.notsub = m.nsubset = m.notsubset = ot(V, "\\not\\subset ", "⊄"), m.nsup = m.notsup = m.nsupset = m.notsupset = m.nsuperset = m.notsuperset = ot(V, "\\not\\supset ", "⊅"), m.sube = m.subeq = m.subsete = m.subseteq = ot(V, "\\subseteq ", "⊆"), m.supe = m.supeq = m.supsete = m.supseteq = m.supersete = m.superseteq = ot(V, "\\supseteq ", "⊇"), m.nsube = m.nsubeq = m.notsube = m.notsubeq = m.nsubsete = m.nsubseteq = m.notsubsete = m.notsubseteq = ot(V, "\\not\\subseteq ", "⊈"), m.nsupe = m.nsupeq = m.notsupe = m.notsupeq = m.nsupsete = m.nsupseteq = m.notsupsete = m.notsupseteq = m.nsupersete = m.nsuperseteq = m.notsupersete = m.notsuperseteq = ot(V, "\\not\\supseteq ", "⊉"), J = t(f, function (e, t) { + e.init = function (e, n) { + t.init.call(this, e, "<big>" + n + "</big>") + } + }), m["鈭�"] = m.sum = m.summation = ot(J, "\\sum ", "∑"), m["鈭�"] = m.prod = m.product = ot(J, "\\prod ", "∏"), m.coprod = m.coproduct = ot(J, "\\coprod ", "∐"), m["鈭�"] = m["int"] = m.integral = ot(J, "\\int ", "∫"), m.N = m.naturals = m.Naturals = ot(z, "\\mathbb{N}", "ℕ"), m.P = m.primes = m.Primes = m.projective = m.Projective = m.probability = m.Probability = ot(z, "\\mathbb{P}", "ℙ"), m.Z = m.integers = m.Integers = ot(z, "\\mathbb{Z}", "ℤ"), m.Q = m.rationals = m.Rationals = ot(z, "\\mathbb{Q}", "ℚ"), m.R = m.reals = m.Reals = ot(z, "\\mathbb{R}", "ℝ"), m.C = m.complex = m.Complex = m.complexes = m.Complexes = m.complexplane = m.Complexplane = m.ComplexPlane = ot(z, "\\mathbb{C}", "ℂ"), m.H = m.Hamiltonian = m.quaternions = m.Quaternions = ot(z, "\\mathbb{H}", "ℍ"), m.quad = m.emsp = ot(z, "\\quad ", " "), m.qquad = ot(z, "\\qquad ", " "), m.diamond = ot(z, "\\diamond ", "◇"), m.bigtriangleup = ot(z, "\\bigtriangleup ", "△"), m.ominus = ot(z, "\\ominus ", "⊖"), m.uplus = ot(z, "\\uplus ", "⊎"), m.bigtriangledown = ot(z, "\\bigtriangledown ", "▽"), m.sqcap = ot(z, "\\sqcap ", "⊓"), m.triangleleft = ot(z, "\\triangleleft ", "⊲"), m.sqcup = ot(z, "\\sqcup ", "⊔"), m.triangleright = ot(z, "\\triangleright ", "⊳"), m.odot = ot(z, "\\odot ", "⊙"), m.bigcirc = ot(z, "\\bigcirc ", "◯"), m.dagger = ot(z, "\\dagger ", "†"), m.ddagger = ot(z, "\\ddagger ", "‡"), m.wr = ot(z, "\\wr ", "≀"), m.amalg = ot(z, "\\amalg ", "∐"), m.models = ot(z, "\\models ", "⊨"), m.prec = ot(z, "\\prec ", "≺"), m.succ = ot(z, "\\succ ", "≻"), m.preceq = ot(z, "\\preceq ", "≼"), m.succeq = ot(z, "\\succeq ", "≽"), m.simeq = ot(z, "\\simeq ", "≃"), m.mid = ot(z, "\\mid ", "∣"), m.ll = ot(z, "\\ll ", "≪"), m.gg = ot(z, "\\gg ", "≫"), m.parallel = ot(z, "\\parallel ", "∥"), m.bowtie = ot(z, "\\bowtie ", "⋈"), m.sqsubset = ot(z, "\\sqsubset ", "⊏"), m.sqsupset = ot(z, "\\sqsupset ", "⊐"), m.smile = ot(z, "\\smile ", "⌣"), m.sqsubseteq = ot(z, "\\sqsubseteq ", "⊑"), m.sqsupseteq = ot(z, "\\sqsupseteq ", "⊒"), m.doteq = ot(z, "\\doteq ", "≐"), m.frown = ot(z, "\\frown ", "⌢"), m.vdash = ot(z, "\\vdash ", "⊦"), m.dashv = ot(z, "\\dashv ", "⊣"), m.longleftarrow = ot(z, "\\longleftarrow ", "←"), m.longrightarrow = ot(z, "\\longrightarrow ", "→"), m.Longleftarrow = ot(z, "\\Longleftarrow ", "⇐"), m.Longrightarrow = ot(z, "\\Longrightarrow ", "⇒"), m.longleftrightarrow = ot(z, "\\longleftrightarrow ", "↔"), m.updownarrow = ot(z, "\\updownarrow ", "↕"), m.Longleftrightarrow = ot(z, "\\Longleftrightarrow ", "⇔"), m.Updownarrow = ot(z, "\\Updownarrow ", "⇕"), m.mapsto = ot(z, "\\mapsto ", "↦"), m.nearrow = ot(z, "\\nearrow ", "↗"), m.hookleftarrow = ot(z, "\\hookleftarrow ", "↩"), m.hookrightarrow = ot(z, "\\hookrightarrow ", "↪"), m.searrow = ot(z, "\\searrow ", "↘"), m.leftharpoonup = ot(z, "\\leftharpoonup ", "↼"), m.rightharpoonup = ot(z, "\\rightharpoonup ", "⇀"), m.swarrow = ot(z, "\\swarrow ", "↙"), m.leftharpoondown = ot(z, "\\leftharpoondown ", "↽"), m.rightharpoondown = ot(z, "\\rightharpoondown ", "⇁"), m.nwarrow = ot(z, "\\nwarrow ", "↖"), m.ldots = ot(z, "\\ldots ", "…"), m.cdots = ot(z, "\\cdots ", "⋯"), m.vdots = ot(z, "\\vdots ", "⋮"), m.ddots = ot(z, "\\ddots ", "⋰"), m.surd = ot(z, "\\surd ", "√"), m.triangle = ot(z, "\\triangle ", "▵"), m.ell = ot(z, "\\ell ", "ℓ"), m.top = ot(z, "\\top ", "⊤"), m.flat = ot(z, "\\flat ", "♭"), m.natural = ot(z, "\\natural ", "♮"), m.sharp = ot(z, "\\sharp ", "♯"), m.wp = ot(z, "\\wp ", "℘"), m.bot = ot(z, "\\bot ", "⊥"), m.clubsuit = ot(z, "\\clubsuit ", "♣"), m.diamondsuit = ot(z, "\\diamondsuit ", "♢"), m.heartsuit = ot(z, "\\heartsuit ", "♡"), m.spadesuit = ot(z, "\\spadesuit ", "♠"), m.oint = ot(z, "\\oint ", "∮"), m.bigcap = ot(z, "\\bigcap ", "∩"), m.bigcup = ot(z, "\\bigcup ", "∪"), m.bigsqcup = ot(z, "\\bigsqcup ", "⊔"), m.bigvee = ot(z, "\\bigvee ", "∨"), m.bigwedge = ot(z, "\\bigwedge ", "∧"), m.bigodot = ot(z, "\\bigodot ", "⊙"), m.bigotimes = ot(z, "\\bigotimes ", "⊗"), m.bigoplus = ot(z, "\\bigoplus ", "⊕"), m.biguplus = ot(z, "\\biguplus ", "⊎"), m.lfloor = ot(z, "\\lfloor ", "⌊"), m.rfloor = ot(z, "\\rfloor ", "⌋"), m.lceil = ot(z, "\\lceil ", "⌈"), m.rceil = ot(z, "\\rceil ", "⌉"), m.slash = ot(z, "\\slash ", "/"), m.opencurlybrace = ot(z, "\\opencurlybrace ", "{"), m.closecurlybrace = ot(z, "\\closecurlybrace ", "}"), m.caret = ot(z, "\\caret ", "^"), m.underscore = ot(z, "\\underscore ", "_"), m.backslash = ot(z, "\\backslash ", "\\"), m.vert = ot(z, "|"), m.perp = m.perpendicular = ot(z, "\\perp ", "⊥"), m.nabla = m.del = ot(z, "\\nabla ", "∇"), m.hbar = ot(z, "\\hbar ", "ℏ"), m.AA = m.Angstrom = m.angstrom = ot(z, "\\text\\AA ", "Å"), m.ring = m.circ = m.circle = ot(z, "\\circ ", "∘"), m.bull = m.bullet = ot(z, "\\bullet ", "•"), m.setminus = m.smallsetminus = ot(z, "\\setminus ", "∖"), m.not = m["卢"] = m.neg = ot(z, "\\neg ", "¬"), m["鈥�"] = m.dots = m.ellip = m.hellip = m.ellipsis = m.hellipsis = ot(z, "\\dots ", "…"), m.converges = m.darr = m.dnarr = m.dnarrow = m.downarrow = ot(z, "\\downarrow ", "↓"), m.dArr = m.dnArr = m.dnArrow = m.Downarrow = ot(z, "\\Downarrow ", "⇓"), m.diverges = m.uarr = m.uparrow = ot(z, "\\uparrow ", "↑"), m.uArr = m.Uparrow = ot(z, "\\Uparrow ", "⇑"), m.to = ot(V, "\\to ", "→"), m.rarr = m.rightarrow = ot(z, "\\rightarrow ", "→"), m.implies = ot(V, "\\Rightarrow ", "⇒"), m.rArr = m.Rightarrow = ot(z, "\\Rightarrow ", "⇒"), m.gets = ot(V, "\\gets ", "←"), m.larr = m.leftarrow = ot(z, "\\leftarrow ", "←"), m.impliedby = ot(V, "\\Leftarrow ", "⇐"), m.lArr = m.Leftarrow = ot(z, "\\Leftarrow ", "⇐"), m.harr = m.lrarr = m.leftrightarrow = ot(z, "\\leftrightarrow ", "↔"), m.iff = ot(V, "\\Leftrightarrow ", "⇔"), m.hArr = m.lrArr = m.Leftrightarrow = ot(z, "\\Leftrightarrow ", "⇔"), m.Re = m.Real = m.real = ot(z, "\\Re ", "ℜ"), m.Im = m.imag = m.image = m.imagin = m.imaginary = m.Imaginary = ot(z, "\\Im ", "ℑ"), m.part = m.partial = ot(z, "\\partial ", "∂"), m.inf = m.infin = m.infty = m.infinity = ot(z, "\\infty ", "∞"), m.alef = m.alefsym = m.aleph = m.alephsym = ot(z, "\\aleph ", "ℵ"), m.xist = m.xists = m.exist = m.exists = ot(z, "\\exists ", "∃"), m.and = m.land = m.wedge = ot(z, "\\wedge ", "∧"), m.or = m.lor = m.vee = ot(z, "\\vee ", "∨"), m.o = m.O = m.empty = m.emptyset = m.oslash = m.Oslash = m.nothing = m.varnothing = ot(V, "\\varnothing ", "∅"), m.cup = m.union = ot(V, "\\cup ", "∪"), m.cap = m.intersect = m.intersection = ot(V, "\\cap ", "∩"), m.deg = m.degree = ot(z, "^\\circ ", "°"), m.ang = m.angle = ot(z, "\\angle ", "∠"), K = t(f, function (e, t) { + e.init = function (e) { + t.init.call(this, "\\" + e + " ", "<span>" + e + "</span>") + }, e.respace = function () { + this.jQ[0].className = this.next instanceof N || this.next instanceof O ? "" : "non-italicized-function" + } + }), m.ln = m.lg = m.log = m.span = m.proj = m.det = m.dim = m.min = m.max = m.mod = m.lcm = m.gcd = m.gcf = m.hcf = m.lim = K, + function () { + var e, t = ["sin", "cos", "tan", "sec", "cosec", "csc", "cotan", "cot"]; + for (e in t) m[t[e]] = m[t[e] + "h"] = m["a" + t[e]] = m["arc" + t[e]] = m["a" + t[e] + "h"] = m["arc" + t[e] + "h"] = K + }(), Q = function () { + function e(e) { + var t = l(); + return e.adopt(t, 0, 0), t + } + + function t(e) { + var t = e[0] || l(); + for (var n = 1; n < e.length; n += 1) e[n].children().adopt(t, t.lastChild, 0); + return t + } + var n = r.string, + i = r.regex, + s = r.letter, + o = r.any, + u = r.optWhitespace, + a = r.succeed, + f = r.fail, + c = s.map(U), + h = i(/^[^${}\\_^]/).map(z), + p = i(/^[^\\]/).or(n("\\").then(i(/^[a-z]+/i).or(i(/^\s+/).result(" ")).or(o))).then(function (e) { + var t = m[e]; + return t ? t(e).parser() : f("unknown command: \\" + e) + }), + d = p.or(c).or(h), + v = n("{").then(function () { + return y + }).skip(n("}")), + g = u.then(v.or(d.map(e))), + y = g.many().map(t).skip(u), + b = n("[").then(g.then(function (e) { + return e.join("latex") !== "]" ? a(e) : f() + }).many().map(t).skip(u)).skip(n("]")), + w = y; + return w.block = g, w.optBlock = b, w + }(), G = t(function (e) { + function t(e, t) { + if (e.next[t]) e.prependTo(e.next[t]); + else if (e.prev[t]) e.appendTo(e.prev[t]); + else { + var r = e.parent; + do { + var i = r[t]; + if (i) { + typeof i == "function" && (i = r[t](e)); + if (i === !1 || i instanceof l) { + e.upDownCache[r.id] = { + parent: e.parent, + prev: e.prev, + next: e.next + }; + if (i instanceof l) { + var s = e.upDownCache[i.id]; + if (s) s.next ? e.insertBefore(s.next) : e.appendTo(s.parent); + else { + var o = n(e).left; + e.appendTo(i), e.seekHoriz(o, i) + } + } + break + } + } + r = r.parent.parent + } while (r) + } + return e.clearSelection().show() + } + + function n(e) { + var t = e.jQ.removeClass("cursor").offset(); + return e.jQ.addClass("cursor"), t + } + + function i(e) { + e.upDownCache = {} + } + e.init = function (e) { + this.parent = this.root = e; + var t = this.jQ = this._jQ = Z('<span class="cursor">‍</span>'); + this.blink = function () { + t.toggleClass("blink") + }, this.upDownCache = {} + }, e.prev = 0, e.next = 0, e.parent = 0, e.show = function () { + return this.jQ = this._jQ.removeClass("blink"), "intervalId" in this ? clearInterval(this.intervalId) : (this.next ? this.selection && this.selection.first.prev === this.prev ? this.jQ.insertBefore(this.selection.jQ) : this.jQ.insertBefore(this.next.jQ.first()) : this.jQ.appendTo(this.parent.jQ), this.parent.focus()), this.intervalId = setInterval(this.blink, 500), this + }, e.hide = function () { + return "intervalId" in this && clearInterval(this.intervalId), delete this.intervalId, this.jQ.detach(), this.jQ = Z(), this + }, e.insertAt = function (e, t, n) { + var r = this.parent; + this.parent = e, this.prev = t, this.next = n, r.blur() + }, e.insertBefore = function (e) { + return this.insertAt(e.parent, e.prev, e), this.parent.jQ.addClass("hasCursor"), this.jQ.insertBefore(e.jQ.first()), this + }, e.insertAfter = function (e) { + return this.insertAt(e.parent, e, e.next), this.parent.jQ.addClass("hasCursor"), this.jQ.insertAfter(e.jQ.last()), this + }, e.prependTo = function (e) { + return this.insertAt(e, 0, e.firstChild), e.textarea ? this.jQ.insertAfter(e.textarea) : this.jQ.prependTo(e.jQ), e.focus(), this + }, e.appendTo = function (e) { + return this.insertAt(e, e.lastChild, 0), this.jQ.appendTo(e.jQ), e.focus(), this + }, e.hopLeft = function () { + return this.jQ.insertBefore(this.prev.jQ.first()), this.next = this.prev, this.prev = this.prev.prev, this + }, e.hopRight = function () { + return this.jQ.insertAfter(this.next.jQ.last()), this.prev = this.next, this.next = this.next.next, this + }, e.moveLeftWithin = function (e) { + if (this.prev) this.prev.lastChild ? this.appendTo(this.prev.lastChild) : this.hopLeft(); + else { + if (this.parent === e) return; + this.parent.prev ? this.appendTo(this.parent.prev) : this.insertBefore(this.parent.parent) + } + }, e.moveRightWithin = function (e) { + if (this.next) this.next.firstChild ? this.prependTo(this.next.firstChild) : this.hopRight(); + else { + if (this.parent === e) return; + this.parent.next ? this.prependTo(this.parent.next) : this.insertAfter(this.parent.parent) + } + }, e.moveLeft = function () { + return i(this), this.selection ? this.insertBefore(this.selection.first).clearSelection() : this.moveLeftWithin(this.root), this.show() + }, e.moveRight = function () { + return i(this), this.selection ? this.insertAfter(this.selection.last).clearSelection() : this.moveRightWithin(this.root), this.show() + }, e.moveUp = function () { + return t(this, "up") + }, e.moveDown = function () { + return t(this, "down") + }, e.seek = function (e, t, n) { + i(this); + var r, s, o = this.clearSelection().show(); + return e.hasClass("empty") ? (o.prependTo(u[e.attr(tt)]), o) : (r = u[e.attr(et)], r instanceof f ? (e.outerWidth() > 2 * (t - e.offset().left) ? o.insertBefore(r) : o.insertAfter(r), o) : (r || (s = u[e.attr(tt)], s || (e = e.parent(), r = u[e.attr(et)], r || (s = u[e.attr(tt)], s || (s = o.root)))), r ? o.insertAfter(r) : o.appendTo(s), o.seekHoriz(t, o.root))) + }, e.seekHoriz = function (e, t) { + var r = this, + i = n(r).left - e, + s; + do r.moveLeftWithin(t), s = i, i = n(r).left - e; while (i > 0 && (r.prev || r.parent !== t)); + return -i > s && r.moveRightWithin(t), r + }, e.writeLatex = function (e) { + var t = this; + i(t), t.show().deleteSelection(); + var n = r.all, + s = r.eof, + o = Q.skip(s).or(n.result(!1)).parse(e); + return o && (o.children().adopt(t.parent, t.prev, t.next), u.jQize(o.join("html")).insertBefore(t.jQ), t.prev = o.lastChild, o.finalizeInsert(), t.parent.bubble("redraw")), this.hide() + }, e.write = function (e) { + return i(this), this.show().insertCh(e) + }, e.insertCh = function (e) { + var t; + return e.match(/^[a-eg-zA-Z]$/) ? t = U(e) : (t = v[e] || m[e]) ? t = t(e) : t = z(e), this.selection && (this.prev = this.selection.first.prev, this.next = this.selection.last.next, t.replaces(this.selection), delete this.selection), this.insertNew(t) + }, e.insertNew = function (e) { + return e.createBefore(this), this + }, e.insertCmd = function (e, t) { + var n = m[e]; + return n ? (n = n(e), t && n.replaces(t), this.insertNew(n)) : (n = B(), n.replaces(e), n.firstChild.focus = function () { + return delete this.focus, this + }, this.insertNew(n).insertAfter(n), t && t.remove()), this + }, e.unwrapGramp = function () { + var e = this.parent.parent, + t = e.parent, + n = e.next, + r = this, + i = e.prev; + e.disown().eachChild(function (r) { + if (r.isEmpty()) return; + r.children().adopt(t, i, n).each(function (t) { + t.jQ.insertBefore(e.jQ.first()) + }), i = r.lastChild + }); + if (!this.next) + if (this.prev) this.next = this.prev.next; + else + while (!this.next) { + this.parent = this.parent.next; + if (!this.parent) { + this.next = e.next, this.parent = t; + break + } + this.next = this.parent.firstChild + } + this.next ? this.insertBefore(this.next) : this.appendTo(t), e.jQ.remove(), e.prev && e.prev.respace(), e.next && e.next.respace() + }, e.backspace = function () { + i(this), this.show(); + if (!this.deleteSelection()) + if (this.prev) this.prev.isEmpty() ? this.prev = this.prev.remove().prev : this.selectLeft(); + else if (this.parent !== this.root) { + if (this.parent.parent.isEmpty()) return this.insertAfter(this.parent.parent).backspace(); + this.unwrapGramp() + } + return this.prev && this.prev.respace(), this.next && this.next.respace(), this.parent.bubble("redraw"), this + }, e.deleteForward = function () { + i(this), this.show(); + if (!this.deleteSelection()) + if (this.next) this.next.isEmpty() ? this.next = this.next.remove().next : this.selectRight(); + else if (this.parent !== this.root) { + if (this.parent.parent.isEmpty()) return this.insertBefore(this.parent.parent).deleteForward(); + this.unwrapGramp() + } + return this.prev && this.prev.respace(), this.next && this.next.respace(), this.parent.bubble("redraw"), this + }, e.selectFrom = function (e) { + var t = this, + n = e; + e: for (;;) { + for (var r = this; r !== t.parent.parent; r = r.parent.parent) + if (r.parent === n.parent) { + s = r, o = n; + break e + } for (var i = e; i !== n.parent.parent; i = i.parent.parent) + if (t.parent === i.parent) { + s = t, o = i; + break e + } t.parent.parent && (t = t.parent.parent), n.parent.parent && (n = n.parent.parent) + } + var s, o, u; + if (s.next !== o) { + for (var a = s; a; a = a.next) + if (a === o.prev) { + u = !0; + break + } u || (u = o, o = s, s = u) + } + this.hide().selection = Y(s.prev.next || s.parent.firstChild, o.next.prev || o.parent.lastChild), this.insertAfter(o.next.prev || o.parent.lastChild), this.root.selectionChanged() + }, e.selectLeft = function () { + i(this); + if (this.selection) + if (this.selection.first === this.next) this.prev ? this.hopLeft().selection.extendLeft() : this.parent !== this.root && this.insertBefore(this.parent.parent).selection.levelUp(); + else { + this.hopLeft(); + if (this.selection.first === this.selection.last) { + this.clearSelection().show(); + return + } + this.selection.retractLeft() + } + else { + if (this.prev) this.hopLeft(); + else { + if (this.parent === this.root) return; + this.insertBefore(this.parent.parent) + } + this.hide().selection = Y(this.next) + } + this.root.selectionChanged() + }, e.selectRight = function () { + i(this); + if (this.selection) + if (this.selection.last === this.prev) this.next ? this.hopRight().selection.extendRight() : this.parent !== this.root && this.insertAfter(this.parent.parent).selection.levelUp(); + else { + this.hopRight(); + if (this.selection.first === this.selection.last) { + this.clearSelection().show(); + return + } + this.selection.retractRight() + } + else { + if (this.next) this.hopRight(); + else { + if (this.parent === this.root) return; + this.insertAfter(this.parent.parent) + } + this.hide().selection = Y(this.prev) + } + this.root.selectionChanged() + }, e.prepareMove = function () { + return i(this), this.show().clearSelection() + }, e.prepareEdit = function () { + return i(this), this.show().deleteSelection() + }, e.clearSelection = function () { + return this.selection && (this.selection.clear(), delete this.selection, this.root.selectionChanged()), this + }, e.deleteSelection = function () { + return this.selection ? (this.prev = this.selection.first.prev, this.next = this.selection.last.next, this.selection.remove(), this.root.selectionChanged(), delete this.selection) : !1 + } + }), Y = t(c, function (e, t) { + e.init = function () { + var e = this; + t.init.apply(e, arguments), e.jQwrap(e.jQ) + }, e.jQwrap = function (e) { + this.jQ = e.wrapAll('<span class="selection"></span>').parent() + }, e.adopt = function () { + return this.jQ.replaceWith(this.jQ = this.jQ.children()), t.adopt.apply(this, arguments) + }, e.clear = function () { + return this.jQ.replaceWith(this.jQ.children()), this + }, e.levelUp = function () { + var e = this, + t = e.first = e.last = e.last.parent.parent; + return e.clear().jQwrap(t.jQ), e + }, e.extendLeft = function () { + this.first = this.first.prev, this.first.jQ.prependTo(this.jQ) + }, e.extendRight = function () { + this.last = this.last.next, this.last.jQ.appendTo(this.jQ) + }, e.retractRight = function () { + this.first.jQ.insertBefore(this.jQ), this.first = this.first.next + }, e.retractLeft = function () { + this.last.jQ.insertAfter(this.jQ), this.last = this.last.prev + } + }), Z.fn.mathquill = function (e, t) { + var n, r, i, s, o; + switch (e) { + case "redraw": + return this.each(function () { + var e = Z(this).attr(tt), + t = e && u[e]; + t && function n(e) { + e.eachChild(n), e.redraw && e.redraw() + }(t) + }); + case "revert": + return this.each(function () { + var e = Z(this).attr(tt), + t = e && u[e]; + t && t.revert && t.revert() + }); + case "latex": + if (arguments.length > 1) return this.each(function () { + var e = Z(this).attr(tt), + n = e && u[e]; + n && n.renderLatex(t) + }); + return n = Z(this).attr(tt), r = n && u[n], r && r.latex(); + case "text": + return n = Z(this).attr(tt), r = n && u[n], r && r.text(); + case "html": + return this.html().replace(/ ?hasCursor|hasCursor /, "").replace(/ class=(""|(?= |>))/g, "").replace(/<span class="?cursor( blink)?"?><\/span>/i, "").replace(/<span class="?textarea"?><textarea><\/textarea><\/span>/i, ""); + case "write": + if (arguments.length > 1) return this.each(function () { + var e = Z(this).attr(tt), + n = e && u[e], + r = n && n.cursor; + r && r.writeLatex(t).parent.blur() + }); + case "cmd": + if (arguments.length > 1) return this.each(function () { + var e, n = Z(this).attr(tt), + r = n && u[n], + i = r && r.cursor; + i && (i.show(), /^\\[a-z]+$/i.test(t) ? (e = i.selection, e && (i.prev = e.first.prev, i.next = e.last.next, delete i.selection), i.insertCmd(t.slice(1), e)) : i.insertCh(t), i.hide().parent.blur()) + }); + default: + return i = e === "textbox", s = i || e === "editable", o = i ? d : h, this.each(function () { + at(Z(this), o(), i, s) + }) + } + }, Z(function () { + Z(".mathquill-editable:not(.mathquill-rendered-math)").mathquill("editable"), Z(".mathquill-textbox:not(.mathquill-rendered-math)").mathquill("textbox"), Z(".mathquill-embedded-latex").mathquill() + }) +})(); + +/***/ }), +/* 8 */ +/***/ (function(module, exports) { + +/* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {/* globals __webpack_amd_options__ */ +module.exports = __webpack_amd_options__; + +/* WEBPACK VAR INJECTION */}.call(exports, {})) + +/***/ }) +/******/ ]); +}); \ No newline at end of file -- GitLab