auto-render.js 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790
  1. (function webpackUniversalModuleDefinition(root, factory) {
  2. if(typeof exports === 'object' && typeof module === 'object')
  3. module.exports = factory(require("katex"));
  4. else if(typeof define === 'function' && define.amd)
  5. define(["katex"], factory);
  6. else if(typeof exports === 'object')
  7. exports["renderMathInElement"] = factory(require("katex"));
  8. else
  9. root["renderMathInElement"] = factory(root["katex"]);
  10. })(this, function(__WEBPACK_EXTERNAL_MODULE_38__) {
  11. return /******/ (function(modules) { // webpackBootstrap
  12. /******/ // The module cache
  13. /******/ var installedModules = {};
  14. /******/
  15. /******/ // The require function
  16. /******/ function __webpack_require__(moduleId) {
  17. /******/
  18. /******/ // Check if module is in cache
  19. /******/ if(installedModules[moduleId]) {
  20. /******/ return installedModules[moduleId].exports;
  21. /******/ }
  22. /******/ // Create a new module (and put it into the cache)
  23. /******/ var module = installedModules[moduleId] = {
  24. /******/ i: moduleId,
  25. /******/ l: false,
  26. /******/ exports: {}
  27. /******/ };
  28. /******/
  29. /******/ // Execute the module function
  30. /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
  31. /******/
  32. /******/ // Flag the module as loaded
  33. /******/ module.l = true;
  34. /******/
  35. /******/ // Return the exports of the module
  36. /******/ return module.exports;
  37. /******/ }
  38. /******/
  39. /******/
  40. /******/ // expose the modules object (__webpack_modules__)
  41. /******/ __webpack_require__.m = modules;
  42. /******/
  43. /******/ // expose the module cache
  44. /******/ __webpack_require__.c = installedModules;
  45. /******/
  46. /******/ // define getter function for harmony exports
  47. /******/ __webpack_require__.d = function(exports, name, getter) {
  48. /******/ if(!__webpack_require__.o(exports, name)) {
  49. /******/ Object.defineProperty(exports, name, {
  50. /******/ configurable: false,
  51. /******/ enumerable: true,
  52. /******/ get: getter
  53. /******/ });
  54. /******/ }
  55. /******/ };
  56. /******/
  57. /******/ // getDefaultExport function for compatibility with non-harmony modules
  58. /******/ __webpack_require__.n = function(module) {
  59. /******/ var getter = module && module.__esModule ?
  60. /******/ function getDefault() { return module['default']; } :
  61. /******/ function getModuleExports() { return module; };
  62. /******/ __webpack_require__.d(getter, 'a', getter);
  63. /******/ return getter;
  64. /******/ };
  65. /******/
  66. /******/ // Object.prototype.hasOwnProperty.call
  67. /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
  68. /******/
  69. /******/ // __webpack_public_path__
  70. /******/ __webpack_require__.p = "";
  71. /******/
  72. /******/ // Load entry module and return exports
  73. /******/ return __webpack_require__(__webpack_require__.s = 9);
  74. /******/ })
  75. /************************************************************************/
  76. /******/ ([
  77. /* 0 */
  78. /***/ (function(module, exports) {
  79. // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
  80. var global = module.exports = typeof window != 'undefined' && window.Math == Math
  81. ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
  82. if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
  83. /***/ }),
  84. /* 1 */
  85. /***/ (function(module, exports) {
  86. module.exports = function(it){
  87. return typeof it === 'object' ? it !== null : typeof it === 'function';
  88. };
  89. /***/ }),
  90. /* 2 */
  91. /***/ (function(module, exports, __webpack_require__) {
  92. // Thank's IE8 for his funny defineProperty
  93. module.exports = !__webpack_require__(3)(function(){
  94. return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;
  95. });
  96. /***/ }),
  97. /* 3 */
  98. /***/ (function(module, exports) {
  99. module.exports = function(exec){
  100. try {
  101. return !!exec();
  102. } catch(e){
  103. return true;
  104. }
  105. };
  106. /***/ }),
  107. /* 4 */
  108. /***/ (function(module, exports) {
  109. var core = module.exports = {version: '2.4.0'};
  110. if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
  111. /***/ }),
  112. /* 5 */
  113. /***/ (function(module, exports, __webpack_require__) {
  114. // to indexed object, toObject with fallback for non-array-like ES3 strings
  115. var IObject = __webpack_require__(6)
  116. , defined = __webpack_require__(7);
  117. module.exports = function(it){
  118. return IObject(defined(it));
  119. };
  120. /***/ }),
  121. /* 6 */
  122. /***/ (function(module, exports, __webpack_require__) {
  123. // fallback for non-array-like ES3 and non-enumerable old V8 strings
  124. var cof = __webpack_require__(27);
  125. module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){
  126. return cof(it) == 'String' ? it.split('') : Object(it);
  127. };
  128. /***/ }),
  129. /* 7 */
  130. /***/ (function(module, exports) {
  131. // 7.2.1 RequireObjectCoercible(argument)
  132. module.exports = function(it){
  133. if(it == undefined)throw TypeError("Can't call method on " + it);
  134. return it;
  135. };
  136. /***/ }),
  137. /* 8 */
  138. /***/ (function(module, exports) {
  139. // 7.1.4 ToInteger
  140. var ceil = Math.ceil
  141. , floor = Math.floor;
  142. module.exports = function(it){
  143. return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
  144. };
  145. /***/ }),
  146. /* 9 */
  147. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  148. "use strict";
  149. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  150. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign__ = __webpack_require__(10);
  151. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign__);
  152. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_katex__ = __webpack_require__(38);
  153. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_katex___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_katex__);
  154. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__splitAtDelimiters__ = __webpack_require__(39);
  155. /* eslint no-console:0 */
  156. var splitWithDelimiters = function splitWithDelimiters(text, delimiters) {
  157. var data = [{ type: "text", data: text }];
  158. for (var i = 0; i < delimiters.length; i++) {
  159. var delimiter = delimiters[i];
  160. data = Object(__WEBPACK_IMPORTED_MODULE_2__splitAtDelimiters__["a" /* default */])(data, delimiter.left, delimiter.right, delimiter.display || false);
  161. }
  162. return data;
  163. };
  164. /* Note: optionsCopy is mutated by this method. If it is ever exposed in the
  165. * API, we should copy it before mutating.
  166. */
  167. var renderMathInText = function renderMathInText(text, optionsCopy) {
  168. var data = splitWithDelimiters(text, optionsCopy.delimiters);
  169. var fragment = document.createDocumentFragment();
  170. for (var i = 0; i < data.length; i++) {
  171. if (data[i].type === "text") {
  172. fragment.appendChild(document.createTextNode(data[i].data));
  173. } else {
  174. var span = document.createElement("span");
  175. var math = data[i].data;
  176. // Override any display mode defined in the settings with that
  177. // defined by the text itself
  178. optionsCopy.displayMode = data[i].display;
  179. try {
  180. __WEBPACK_IMPORTED_MODULE_1_katex___default.a.render(math, span, optionsCopy);
  181. } catch (e) {
  182. if (!(e instanceof __WEBPACK_IMPORTED_MODULE_1_katex___default.a.ParseError)) {
  183. throw e;
  184. }
  185. optionsCopy.errorCallback("KaTeX auto-render: Failed to parse `" + data[i].data + "` with ", e);
  186. fragment.appendChild(document.createTextNode(data[i].rawData));
  187. continue;
  188. }
  189. fragment.appendChild(span);
  190. }
  191. }
  192. return fragment;
  193. };
  194. var renderElem = function renderElem(elem, optionsCopy) {
  195. for (var i = 0; i < elem.childNodes.length; i++) {
  196. var childNode = elem.childNodes[i];
  197. if (childNode.nodeType === 3) {
  198. // Text node
  199. var frag = renderMathInText(childNode.textContent, optionsCopy);
  200. i += frag.childNodes.length - 1;
  201. elem.replaceChild(frag, childNode);
  202. } else if (childNode.nodeType === 1) {
  203. // Element node
  204. var shouldRender = optionsCopy.ignoredTags.indexOf(childNode.nodeName.toLowerCase()) === -1;
  205. if (shouldRender) {
  206. renderElem(childNode, optionsCopy);
  207. }
  208. }
  209. // Otherwise, it's something else, and ignore it.
  210. }
  211. };
  212. var defaultAutoRenderOptions = {
  213. delimiters: [{ left: "$$", right: "$$", display: true }, { left: "\\[", right: "\\]", display: true }, { left: "\\(", right: "\\)", display: false }],
  214. ignoredTags: ["script", "noscript", "style", "textarea", "pre", "code"],
  215. errorCallback: function errorCallback(msg, err) {
  216. console.error(msg, err);
  217. }
  218. };
  219. var renderMathInElement = function renderMathInElement(elem, options) {
  220. if (!elem) {
  221. throw new Error("No element provided to render");
  222. }
  223. var optionsCopy = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign___default()({}, defaultAutoRenderOptions, options);
  224. renderElem(elem, optionsCopy);
  225. };
  226. /* harmony default export */ __webpack_exports__["default"] = (renderMathInElement);
  227. /***/ }),
  228. /* 10 */
  229. /***/ (function(module, exports, __webpack_require__) {
  230. module.exports = { "default": __webpack_require__(11), __esModule: true };
  231. /***/ }),
  232. /* 11 */
  233. /***/ (function(module, exports, __webpack_require__) {
  234. __webpack_require__(12);
  235. module.exports = __webpack_require__(4).Object.assign;
  236. /***/ }),
  237. /* 12 */
  238. /***/ (function(module, exports, __webpack_require__) {
  239. // 19.1.3.1 Object.assign(target, source)
  240. var $export = __webpack_require__(13);
  241. $export($export.S + $export.F, 'Object', {assign: __webpack_require__(23)});
  242. /***/ }),
  243. /* 13 */
  244. /***/ (function(module, exports, __webpack_require__) {
  245. var global = __webpack_require__(0)
  246. , core = __webpack_require__(4)
  247. , ctx = __webpack_require__(14)
  248. , hide = __webpack_require__(16)
  249. , PROTOTYPE = 'prototype';
  250. var $export = function(type, name, source){
  251. var IS_FORCED = type & $export.F
  252. , IS_GLOBAL = type & $export.G
  253. , IS_STATIC = type & $export.S
  254. , IS_PROTO = type & $export.P
  255. , IS_BIND = type & $export.B
  256. , IS_WRAP = type & $export.W
  257. , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})
  258. , expProto = exports[PROTOTYPE]
  259. , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]
  260. , key, own, out;
  261. if(IS_GLOBAL)source = name;
  262. for(key in source){
  263. // contains in native
  264. own = !IS_FORCED && target && target[key] !== undefined;
  265. if(own && key in exports)continue;
  266. // export native or passed
  267. out = own ? target[key] : source[key];
  268. // prevent global pollution for namespaces
  269. exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
  270. // bind timers to global for call from export context
  271. : IS_BIND && own ? ctx(out, global)
  272. // wrap global constructors for prevent change them in library
  273. : IS_WRAP && target[key] == out ? (function(C){
  274. var F = function(a, b, c){
  275. if(this instanceof C){
  276. switch(arguments.length){
  277. case 0: return new C;
  278. case 1: return new C(a);
  279. case 2: return new C(a, b);
  280. } return new C(a, b, c);
  281. } return C.apply(this, arguments);
  282. };
  283. F[PROTOTYPE] = C[PROTOTYPE];
  284. return F;
  285. // make static versions for prototype methods
  286. })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
  287. // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
  288. if(IS_PROTO){
  289. (exports.virtual || (exports.virtual = {}))[key] = out;
  290. // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
  291. if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out);
  292. }
  293. }
  294. };
  295. // type bitmap
  296. $export.F = 1; // forced
  297. $export.G = 2; // global
  298. $export.S = 4; // static
  299. $export.P = 8; // proto
  300. $export.B = 16; // bind
  301. $export.W = 32; // wrap
  302. $export.U = 64; // safe
  303. $export.R = 128; // real proto method for `library`
  304. module.exports = $export;
  305. /***/ }),
  306. /* 14 */
  307. /***/ (function(module, exports, __webpack_require__) {
  308. // optional / simple context binding
  309. var aFunction = __webpack_require__(15);
  310. module.exports = function(fn, that, length){
  311. aFunction(fn);
  312. if(that === undefined)return fn;
  313. switch(length){
  314. case 1: return function(a){
  315. return fn.call(that, a);
  316. };
  317. case 2: return function(a, b){
  318. return fn.call(that, a, b);
  319. };
  320. case 3: return function(a, b, c){
  321. return fn.call(that, a, b, c);
  322. };
  323. }
  324. return function(/* ...args */){
  325. return fn.apply(that, arguments);
  326. };
  327. };
  328. /***/ }),
  329. /* 15 */
  330. /***/ (function(module, exports) {
  331. module.exports = function(it){
  332. if(typeof it != 'function')throw TypeError(it + ' is not a function!');
  333. return it;
  334. };
  335. /***/ }),
  336. /* 16 */
  337. /***/ (function(module, exports, __webpack_require__) {
  338. var dP = __webpack_require__(17)
  339. , createDesc = __webpack_require__(22);
  340. module.exports = __webpack_require__(2) ? function(object, key, value){
  341. return dP.f(object, key, createDesc(1, value));
  342. } : function(object, key, value){
  343. object[key] = value;
  344. return object;
  345. };
  346. /***/ }),
  347. /* 17 */
  348. /***/ (function(module, exports, __webpack_require__) {
  349. var anObject = __webpack_require__(18)
  350. , IE8_DOM_DEFINE = __webpack_require__(19)
  351. , toPrimitive = __webpack_require__(21)
  352. , dP = Object.defineProperty;
  353. exports.f = __webpack_require__(2) ? Object.defineProperty : function defineProperty(O, P, Attributes){
  354. anObject(O);
  355. P = toPrimitive(P, true);
  356. anObject(Attributes);
  357. if(IE8_DOM_DEFINE)try {
  358. return dP(O, P, Attributes);
  359. } catch(e){ /* empty */ }
  360. if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');
  361. if('value' in Attributes)O[P] = Attributes.value;
  362. return O;
  363. };
  364. /***/ }),
  365. /* 18 */
  366. /***/ (function(module, exports, __webpack_require__) {
  367. var isObject = __webpack_require__(1);
  368. module.exports = function(it){
  369. if(!isObject(it))throw TypeError(it + ' is not an object!');
  370. return it;
  371. };
  372. /***/ }),
  373. /* 19 */
  374. /***/ (function(module, exports, __webpack_require__) {
  375. module.exports = !__webpack_require__(2) && !__webpack_require__(3)(function(){
  376. return Object.defineProperty(__webpack_require__(20)('div'), 'a', {get: function(){ return 7; }}).a != 7;
  377. });
  378. /***/ }),
  379. /* 20 */
  380. /***/ (function(module, exports, __webpack_require__) {
  381. var isObject = __webpack_require__(1)
  382. , document = __webpack_require__(0).document
  383. // in old IE typeof document.createElement is 'object'
  384. , is = isObject(document) && isObject(document.createElement);
  385. module.exports = function(it){
  386. return is ? document.createElement(it) : {};
  387. };
  388. /***/ }),
  389. /* 21 */
  390. /***/ (function(module, exports, __webpack_require__) {
  391. // 7.1.1 ToPrimitive(input [, PreferredType])
  392. var isObject = __webpack_require__(1);
  393. // instead of the ES6 spec version, we didn't implement @@toPrimitive case
  394. // and the second argument - flag - preferred type is a string
  395. module.exports = function(it, S){
  396. if(!isObject(it))return it;
  397. var fn, val;
  398. if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
  399. if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;
  400. if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
  401. throw TypeError("Can't convert object to primitive value");
  402. };
  403. /***/ }),
  404. /* 22 */
  405. /***/ (function(module, exports) {
  406. module.exports = function(bitmap, value){
  407. return {
  408. enumerable : !(bitmap & 1),
  409. configurable: !(bitmap & 2),
  410. writable : !(bitmap & 4),
  411. value : value
  412. };
  413. };
  414. /***/ }),
  415. /* 23 */
  416. /***/ (function(module, exports, __webpack_require__) {
  417. "use strict";
  418. // 19.1.2.1 Object.assign(target, source, ...)
  419. var getKeys = __webpack_require__(24)
  420. , gOPS = __webpack_require__(35)
  421. , pIE = __webpack_require__(36)
  422. , toObject = __webpack_require__(37)
  423. , IObject = __webpack_require__(6)
  424. , $assign = Object.assign;
  425. // should work with symbols and should have deterministic property order (V8 bug)
  426. module.exports = !$assign || __webpack_require__(3)(function(){
  427. var A = {}
  428. , B = {}
  429. , S = Symbol()
  430. , K = 'abcdefghijklmnopqrst';
  431. A[S] = 7;
  432. K.split('').forEach(function(k){ B[k] = k; });
  433. return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
  434. }) ? function assign(target, source){ // eslint-disable-line no-unused-vars
  435. var T = toObject(target)
  436. , aLen = arguments.length
  437. , index = 1
  438. , getSymbols = gOPS.f
  439. , isEnum = pIE.f;
  440. while(aLen > index){
  441. var S = IObject(arguments[index++])
  442. , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)
  443. , length = keys.length
  444. , j = 0
  445. , key;
  446. while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];
  447. } return T;
  448. } : $assign;
  449. /***/ }),
  450. /* 24 */
  451. /***/ (function(module, exports, __webpack_require__) {
  452. // 19.1.2.14 / 15.2.3.14 Object.keys(O)
  453. var $keys = __webpack_require__(25)
  454. , enumBugKeys = __webpack_require__(34);
  455. module.exports = Object.keys || function keys(O){
  456. return $keys(O, enumBugKeys);
  457. };
  458. /***/ }),
  459. /* 25 */
  460. /***/ (function(module, exports, __webpack_require__) {
  461. var has = __webpack_require__(26)
  462. , toIObject = __webpack_require__(5)
  463. , arrayIndexOf = __webpack_require__(28)(false)
  464. , IE_PROTO = __webpack_require__(31)('IE_PROTO');
  465. module.exports = function(object, names){
  466. var O = toIObject(object)
  467. , i = 0
  468. , result = []
  469. , key;
  470. for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);
  471. // Don't enum bug & hidden keys
  472. while(names.length > i)if(has(O, key = names[i++])){
  473. ~arrayIndexOf(result, key) || result.push(key);
  474. }
  475. return result;
  476. };
  477. /***/ }),
  478. /* 26 */
  479. /***/ (function(module, exports) {
  480. var hasOwnProperty = {}.hasOwnProperty;
  481. module.exports = function(it, key){
  482. return hasOwnProperty.call(it, key);
  483. };
  484. /***/ }),
  485. /* 27 */
  486. /***/ (function(module, exports) {
  487. var toString = {}.toString;
  488. module.exports = function(it){
  489. return toString.call(it).slice(8, -1);
  490. };
  491. /***/ }),
  492. /* 28 */
  493. /***/ (function(module, exports, __webpack_require__) {
  494. // false -> Array#indexOf
  495. // true -> Array#includes
  496. var toIObject = __webpack_require__(5)
  497. , toLength = __webpack_require__(29)
  498. , toIndex = __webpack_require__(30);
  499. module.exports = function(IS_INCLUDES){
  500. return function($this, el, fromIndex){
  501. var O = toIObject($this)
  502. , length = toLength(O.length)
  503. , index = toIndex(fromIndex, length)
  504. , value;
  505. // Array#includes uses SameValueZero equality algorithm
  506. if(IS_INCLUDES && el != el)while(length > index){
  507. value = O[index++];
  508. if(value != value)return true;
  509. // Array#toIndex ignores holes, Array#includes - not
  510. } else for(;length > index; index++)if(IS_INCLUDES || index in O){
  511. if(O[index] === el)return IS_INCLUDES || index || 0;
  512. } return !IS_INCLUDES && -1;
  513. };
  514. };
  515. /***/ }),
  516. /* 29 */
  517. /***/ (function(module, exports, __webpack_require__) {
  518. // 7.1.15 ToLength
  519. var toInteger = __webpack_require__(8)
  520. , min = Math.min;
  521. module.exports = function(it){
  522. return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
  523. };
  524. /***/ }),
  525. /* 30 */
  526. /***/ (function(module, exports, __webpack_require__) {
  527. var toInteger = __webpack_require__(8)
  528. , max = Math.max
  529. , min = Math.min;
  530. module.exports = function(index, length){
  531. index = toInteger(index);
  532. return index < 0 ? max(index + length, 0) : min(index, length);
  533. };
  534. /***/ }),
  535. /* 31 */
  536. /***/ (function(module, exports, __webpack_require__) {
  537. var shared = __webpack_require__(32)('keys')
  538. , uid = __webpack_require__(33);
  539. module.exports = function(key){
  540. return shared[key] || (shared[key] = uid(key));
  541. };
  542. /***/ }),
  543. /* 32 */
  544. /***/ (function(module, exports, __webpack_require__) {
  545. var global = __webpack_require__(0)
  546. , SHARED = '__core-js_shared__'
  547. , store = global[SHARED] || (global[SHARED] = {});
  548. module.exports = function(key){
  549. return store[key] || (store[key] = {});
  550. };
  551. /***/ }),
  552. /* 33 */
  553. /***/ (function(module, exports) {
  554. var id = 0
  555. , px = Math.random();
  556. module.exports = function(key){
  557. return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
  558. };
  559. /***/ }),
  560. /* 34 */
  561. /***/ (function(module, exports) {
  562. // IE 8- don't enum bug keys
  563. module.exports = (
  564. 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
  565. ).split(',');
  566. /***/ }),
  567. /* 35 */
  568. /***/ (function(module, exports) {
  569. exports.f = Object.getOwnPropertySymbols;
  570. /***/ }),
  571. /* 36 */
  572. /***/ (function(module, exports) {
  573. exports.f = {}.propertyIsEnumerable;
  574. /***/ }),
  575. /* 37 */
  576. /***/ (function(module, exports, __webpack_require__) {
  577. // 7.1.13 ToObject(argument)
  578. var defined = __webpack_require__(7);
  579. module.exports = function(it){
  580. return Object(defined(it));
  581. };
  582. /***/ }),
  583. /* 38 */
  584. /***/ (function(module, exports) {
  585. module.exports = __WEBPACK_EXTERNAL_MODULE_38__;
  586. /***/ }),
  587. /* 39 */
  588. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  589. "use strict";
  590. /* eslint no-constant-condition:0 */
  591. var findEndOfMath = function findEndOfMath(delimiter, text, startIndex) {
  592. // Adapted from
  593. // https://github.com/Khan/perseus/blob/master/src/perseus-markdown.jsx
  594. var index = startIndex;
  595. var braceLevel = 0;
  596. var delimLength = delimiter.length;
  597. while (index < text.length) {
  598. var character = text[index];
  599. if (braceLevel <= 0 && text.slice(index, index + delimLength) === delimiter) {
  600. return index;
  601. } else if (character === "\\") {
  602. index++;
  603. } else if (character === "{") {
  604. braceLevel++;
  605. } else if (character === "}") {
  606. braceLevel--;
  607. }
  608. index++;
  609. }
  610. return -1;
  611. };
  612. var splitAtDelimiters = function splitAtDelimiters(startData, leftDelim, rightDelim, display) {
  613. var finalData = [];
  614. for (var i = 0; i < startData.length; i++) {
  615. if (startData[i].type === "text") {
  616. var text = startData[i].data;
  617. var lookingForLeft = true;
  618. var currIndex = 0;
  619. var nextIndex = void 0;
  620. nextIndex = text.indexOf(leftDelim);
  621. if (nextIndex !== -1) {
  622. currIndex = nextIndex;
  623. finalData.push({
  624. type: "text",
  625. data: text.slice(0, currIndex)
  626. });
  627. lookingForLeft = false;
  628. }
  629. while (true) {
  630. if (lookingForLeft) {
  631. nextIndex = text.indexOf(leftDelim, currIndex);
  632. if (nextIndex === -1) {
  633. break;
  634. }
  635. finalData.push({
  636. type: "text",
  637. data: text.slice(currIndex, nextIndex)
  638. });
  639. currIndex = nextIndex;
  640. } else {
  641. nextIndex = findEndOfMath(rightDelim, text, currIndex + leftDelim.length);
  642. if (nextIndex === -1) {
  643. break;
  644. }
  645. finalData.push({
  646. type: "math",
  647. data: text.slice(currIndex + leftDelim.length, nextIndex),
  648. rawData: text.slice(currIndex, nextIndex + rightDelim.length),
  649. display: display
  650. });
  651. currIndex = nextIndex + rightDelim.length;
  652. }
  653. lookingForLeft = !lookingForLeft;
  654. }
  655. finalData.push({
  656. type: "text",
  657. data: text.slice(currIndex)
  658. });
  659. } else {
  660. finalData.push(startData[i]);
  661. }
  662. }
  663. return finalData;
  664. };
  665. /* harmony default export */ __webpack_exports__["a"] = (splitAtDelimiters);
  666. /***/ })
  667. /******/ ])["default"];
  668. });