• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1(function webpackUniversalModuleDefinition(root, factory) {
2	if(typeof exports === 'object' && typeof module === 'object')
3		module.exports = factory();
4	else if(typeof define === 'function' && define.amd)
5		define([], factory);
6	else {
7		var a = factory();
8		for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
9	}
10})((typeof self !== 'undefined' ? self : this), function() {
11return /******/ (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, { enumerable: true, get: getter });
50/******/ 		}
51/******/ 	};
52/******/
53/******/ 	// define __esModule on exports
54/******/ 	__webpack_require__.r = function(exports) {
55/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
56/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
57/******/ 		}
58/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
59/******/ 	};
60/******/
61/******/ 	// create a fake namespace object
62/******/ 	// mode & 1: value is a module id, require it
63/******/ 	// mode & 2: merge all properties of value into the ns
64/******/ 	// mode & 4: return value when already ns object
65/******/ 	// mode & 8|1: behave like require
66/******/ 	__webpack_require__.t = function(value, mode) {
67/******/ 		if(mode & 1) value = __webpack_require__(value);
68/******/ 		if(mode & 8) return value;
69/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
70/******/ 		var ns = Object.create(null);
71/******/ 		__webpack_require__.r(ns);
72/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
73/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
74/******/ 		return ns;
75/******/ 	};
76/******/
77/******/ 	// getDefaultExport function for compatibility with non-harmony modules
78/******/ 	__webpack_require__.n = function(module) {
79/******/ 		var getter = module && module.__esModule ?
80/******/ 			function getDefault() { return module['default']; } :
81/******/ 			function getModuleExports() { return module; };
82/******/ 		__webpack_require__.d(getter, 'a', getter);
83/******/ 		return getter;
84/******/ 	};
85/******/
86/******/ 	// Object.prototype.hasOwnProperty.call
87/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
88/******/
89/******/ 	// __webpack_public_path__
90/******/ 	__webpack_require__.p = "";
91/******/
92/******/
93/******/ 	// Load entry module and return exports
94/******/ 	return __webpack_require__(__webpack_require__.s = 1);
95/******/ })
96/************************************************************************/
97/******/ ([
98/* 0 */
99/***/ (function(module, exports, __webpack_require__) {
100
101// extracted by mini-css-extract-plugin
102
103/***/ }),
104/* 1 */
105/***/ (function(module, __webpack_exports__, __webpack_require__) {
106
107"use strict";
108__webpack_require__.r(__webpack_exports__);
109
110// EXTERNAL MODULE: ./contrib/copy-tex/copy-tex.css
111var copy_tex = __webpack_require__(0);
112
113// CONCATENATED MODULE: ./contrib/copy-tex/katex2tex.js
114// Set these to how you want inline and display math to be delimited.
115var defaultCopyDelimiters = {
116  inline: ['$', '$'],
117  // alternative: ['\(', '\)']
118  display: ['$$', '$$'] // alternative: ['\[', '\]']
119
120}; // Replace .katex elements with their TeX source (<annotation> element).
121// Modifies fragment in-place.  Useful for writing your own 'copy' handler,
122// as in copy-tex.js.
123
124var katexReplaceWithTex = function katexReplaceWithTex(fragment, copyDelimiters) {
125  if (copyDelimiters === void 0) {
126    copyDelimiters = defaultCopyDelimiters;
127  }
128
129  // Remove .katex-html blocks that are preceded by .katex-mathml blocks
130  // (which will get replaced below).
131  var katexHtml = fragment.querySelectorAll('.katex-mathml + .katex-html');
132
133  for (var i = 0; i < katexHtml.length; i++) {
134    var element = katexHtml[i];
135
136    if (element.remove) {
137      element.remove(null);
138    } else {
139      element.parentNode.removeChild(element);
140    }
141  } // Replace .katex-mathml elements with their annotation (TeX source)
142  // descendant, with inline delimiters.
143
144
145  var katexMathml = fragment.querySelectorAll('.katex-mathml');
146
147  for (var _i = 0; _i < katexMathml.length; _i++) {
148    var _element = katexMathml[_i];
149
150    var texSource = _element.querySelector('annotation');
151
152    if (texSource) {
153      if (_element.replaceWith) {
154        _element.replaceWith(texSource);
155      } else {
156        _element.parentNode.replaceChild(texSource, _element);
157      }
158
159      texSource.innerHTML = copyDelimiters.inline[0] + texSource.innerHTML + copyDelimiters.inline[1];
160    }
161  } // Switch display math to display delimiters.
162
163
164  var displays = fragment.querySelectorAll('.katex-display annotation');
165
166  for (var _i2 = 0; _i2 < displays.length; _i2++) {
167    var _element2 = displays[_i2];
168    _element2.innerHTML = copyDelimiters.display[0] + _element2.innerHTML.substr(copyDelimiters.inline[0].length, _element2.innerHTML.length - copyDelimiters.inline[0].length - copyDelimiters.inline[1].length) + copyDelimiters.display[1];
169  }
170
171  return fragment;
172};
173/* harmony default export */ var katex2tex = (katexReplaceWithTex);
174// CONCATENATED MODULE: ./contrib/copy-tex/copy-tex.js
175 // Global copy handler to modify behavior on .katex elements.
176
177document.addEventListener('copy', function (event) {
178  var selection = window.getSelection();
179
180  if (selection.isCollapsed) {
181    return; // default action OK if selection is empty
182  }
183
184  var fragment = selection.getRangeAt(0).cloneContents();
185
186  if (!fragment.querySelector('.katex-mathml')) {
187    return; // default action OK if no .katex-mathml elements
188  } // Preserve usual HTML copy/paste behavior.
189
190
191  var html = [];
192
193  for (var i = 0; i < fragment.childNodes.length; i++) {
194    html.push(fragment.childNodes[i].outerHTML);
195  }
196
197  event.clipboardData.setData('text/html', html.join('')); // Rewrite plain-text version.
198
199  event.clipboardData.setData('text/plain', katex2tex(fragment).textContent); // Prevent normal copy handling.
200
201  event.preventDefault();
202});
203// CONCATENATED MODULE: ./contrib/copy-tex/copy-tex.webpack.js
204/**
205 * This is the webpack entry point for KaTeX. As ECMAScript doesn't support
206 * CSS modules natively, a separate entry point is used.
207 */
208
209
210
211/***/ })
212/******/ ])["default"];
213});