diff --git a/src/main/kotlin/kr/lunaticbum/back/lun/configs/AppConfig.kt b/src/main/kotlin/kr/lunaticbum/back/lun/configs/AppConfig.kt
index 8e4541b..8c3a62e 100644
--- a/src/main/kotlin/kr/lunaticbum/back/lun/configs/AppConfig.kt
+++ b/src/main/kotlin/kr/lunaticbum/back/lun/configs/AppConfig.kt
@@ -32,11 +32,18 @@ class AppConfig : WebMvcConfigurer {
@Bean
fun passwordEncoder(): PasswordEncoder = BCryptPasswordEncoder()
-// override fun addInterceptors(registry: InterceptorRegistry) {
-// registry.addInterceptor(authInterceptor())
-// .addPathPatterns("**/*.bs", "**/*.bjx")
+
+ override fun addInterceptors(registry: InterceptorRegistry) {
+ registry.addInterceptor(authInterceptor())
+ .addPathPatterns(
+ "/home.bs",
+ "/bums/where.bs" ,
+ "/tlg/repotToMe.bjx",
+ "/user/login.bs", "/user/signup.bs","/user/login.bjx",
+ "/blog/viewer/**" , "/blog/posts" , "/blog/rankOfViews.bjx","/blog/recentOfPost.bjx"
+ )
// super.addInterceptors(registry)
-// }
+ }
// @Bean
diff --git a/src/main/kotlin/kr/lunaticbum/back/lun/configs/BumsInterceptor.kt b/src/main/kotlin/kr/lunaticbum/back/lun/configs/BumsInterceptor.kt
index f6f4f0d..0c65bcc 100644
--- a/src/main/kotlin/kr/lunaticbum/back/lun/configs/BumsInterceptor.kt
+++ b/src/main/kotlin/kr/lunaticbum/back/lun/configs/BumsInterceptor.kt
@@ -53,6 +53,14 @@ class BumsInterceptor : HandlerInterceptor {
modelAndView?.modelMap?.put(EncTypeKey, EncType11)
modelAndView?.modelMap?.put(ApiKeyWordKey,"Def")
+ if (modelAndView != null) {
+ modelAndView.modelMap.put(EncTypeKey, EncType11)
+ modelAndView.modelMap.put(ApiKeyWordKey, "Def")
+ println("modelMap 내용 추가 완료: ${modelAndView.modelMap}")
+ } else {
+ println("modelAndView가 null이라 모델에 값 추가 불가")
+ }
+
super.postHandle(request, response, handler, modelAndView)
}
diff --git a/src/main/kotlin/kr/lunaticbum/back/lun/configs/SecurityConfig.kt b/src/main/kotlin/kr/lunaticbum/back/lun/configs/SecurityConfig.kt
index e37e8ff..54fe4ed 100644
--- a/src/main/kotlin/kr/lunaticbum/back/lun/configs/SecurityConfig.kt
+++ b/src/main/kotlin/kr/lunaticbum/back/lun/configs/SecurityConfig.kt
@@ -36,17 +36,22 @@ class SecurityConfig(
@Bean
fun filterChain(http: HttpSecurity): SecurityFilterChain {
-
http.csrf { csrf ->
- csrf.ignoringRequestMatchers("/user/login.bjx", "/user/joinUser.bjx") // 여기 예외 추가
+ csrf.ignoringRequestMatchers(
+ "/user/login.bjx", "/user/joinUser.bjx","/tlg/repotToMe.bjx",
+ "/blog/post/imageUpload.bjx", "/blog/post.bjx"
+ ) // 여기 예외 추가
}.authorizeHttpRequests { auth ->
auth
.requestMatchers(
- "/", "/home.bs",
+ "/",
+ "/home.bs",
"/bums/where.bs" ,
"/tlg/repotToMe.bjx",
"/user/login.bs", "/user/signup.bs","/user/login.bjx",
"/blog/viewer/**" , "/blog/posts" , "/blog/rankOfViews.bjx","/blog/recentOfPost.bjx",
+// "/blog/post/imageUpload.bjx",
+ "/blog/post/images/**",
"/css/**", "/js/**", "/images/**", "/webjars/**", "/assets/**").permitAll()
.anyRequest().authenticated()
}.formLogin { form ->
diff --git a/src/main/kotlin/kr/lunaticbum/back/lun/controllers/BlogController.kt b/src/main/kotlin/kr/lunaticbum/back/lun/controllers/BlogController.kt
index d0e0c8b..906b2d0 100644
--- a/src/main/kotlin/kr/lunaticbum/back/lun/controllers/BlogController.kt
+++ b/src/main/kotlin/kr/lunaticbum/back/lun/controllers/BlogController.kt
@@ -25,6 +25,7 @@ import org.springframework.beans.factory.annotation.Autowired
import org.springframework.beans.factory.annotation.Value
import org.springframework.core.io.Resource
import org.springframework.core.io.UrlResource
+import org.springframework.data.domain.Pageable
import org.springframework.http.MediaType
import org.springframework.http.ResponseEntity
import org.springframework.security.core.context.SecurityContextHolder
@@ -239,11 +240,12 @@ class BlogController() {
@GetMapping("posts")
- fun posts() : ResultMV{
+ fun posts(pageable: Pageable) : ResultMV{
val vm = ResultMV("content/blog/posts")
try {
- vm.modelMap.put("Posts", postManager.find20().apply {
+ vm.modelMap.put("Posts", postManager.find20(pageable).apply {
this.forEach {
+ println("it.id ==> ${it.id}")
it.title = URLDecoder.decode(it.title)
it.content = URLDecoder.decode(it.content)
val parser: Parser = Parser.builder().build()
@@ -344,7 +346,7 @@ class BlogController() {
return UrlResource.from(imgUploadPath)
}
- @PostMapping("post/imageUpload")
+ @PostMapping("post/imageUpload.bjx")
fun postImage(@RequestPart("file") upload: MultipartFile, res: HttpServletResponse, req: HttpServletRequest): ResponseEntity>
+ .block(Duration.ofSeconds(30)) // Mono
> → List
'; - -// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/type/isNull.js - var type_isNull = __webpack_require__(934); -// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/request/sendHostname.js - var request_sendHostname = __webpack_require__(391); - ;// CONCATENATED MODULE: ./src/utils/common.ts - - - - - - var isMac = /Mac/.test(navigator.platform); - var reSpaceMoreThanOne = /[\u0020]+/g; - var common_reEscapeChars = /[>(){}[\]+-.!#|]/g; - var reEscapeHTML = /<([a-zA-Z_][a-zA-Z0-9\-._]*)(\s|[^\\>])*\/?>|<(\/)([a-zA-Z_][a-zA-Z0-9\-._]*)\s*\/?>||<([a-zA-Z_][a-zA-Z0-9\-.:/]*)>/g; - var reEscapeBackSlash = /\\[!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~\\]/g; - var reEscapePairedChars = /[*_~`]/g; - var reMdImageSyntax = /!\[.*\]\(.*\)/g; - var reEscapedCharInLinkSyntax = /[[\]]/g; - var reEscapeBackSlashInSentence = /(?:^|[^\\])\\(?!\\)/g; - var common_XMLSPECIAL = '[&<>"]'; - var common_reXmlSpecial = new RegExp(common_XMLSPECIAL, 'g'); - function common_replaceUnsafeChar(char) { - switch (char) { - case '&': - return '&'; - case '<': - return '<'; - case '>': - return '>'; - case '"': - return '"'; - default: - return char; - } - } - function common_escapeXml(text) { - if (common_reXmlSpecial.test(text)) { - return text.replace(common_reXmlSpecial, common_replaceUnsafeChar); - } - return text; - } - function sendHostName() { - sendHostname('editor', 'UA-129966929-1'); - } - function common_includes(arr, targetItem) { - return arr.indexOf(targetItem) !== -1; - } - var availableLinkAttributes = ['rel', 'target', 'hreflang', 'type']; - var reMarkdownTextToEscapeMap = { - codeblock: /(^ {4}[^\n]+\n*)+/, - thematicBreak: /^ *((\* *){3,}|(- *){3,} *|(_ *){3,}) */, - atxHeading: /^(#{1,6}) +[\s\S]+/, - seTextheading: /^([^\n]+)\n *(=|-){2,} */, - blockquote: /^( *>[^\n]+.*)+/, - list: /^ *(\*+|-+|\d+\.) [\s\S]+/, - def: /^ *\[([^\]]+)\]: *([^\s>]+)>?(?: +["(]([^\n]+)[")])? */, - link: /!?\[.*\]\(.*\)/, - reflink: /!?\[.*\]\s*\[([^\]]*)\]/, - verticalBar: /\u007C/, - fencedCodeblock: /^((`|~){3,})/, - }; - function sanitizeLinkAttribute(attribute) { - if (!attribute) { - return null; - } - var linkAttributes = {}; - availableLinkAttributes.forEach(function (key) { - if (!isUndefined_default()(attribute[key])) { - linkAttributes[key] = attribute[key]; - } - }); - return linkAttributes; - } - function common_repeat(text, count) { - var result = ''; - for (var i = 0; i < count; i += 1) { - result += text; - } - return result; - } - function isNeedEscapeText(text) { - var needEscape = false; - forEachOwnProperties(reMarkdownTextToEscapeMap, function (reMarkdownTextToEscape) { - if (reMarkdownTextToEscape.test(text)) { - needEscape = true; - } - return !needEscape; - }); - return needEscape; - } - function escapeTextForLink(text) { - var imageSyntaxRanges = []; - var result = reMdImageSyntax.exec(text); - while (result) { - imageSyntaxRanges.push([result.index, result.index + result[0].length]); - result = reMdImageSyntax.exec(text); - } - return text.replace(reEscapedCharInLinkSyntax, function (matched, offset) { - var isDelimiter = imageSyntaxRanges.some(function (range) { return offset > range[0] && offset < range[1]; }); - return isDelimiter ? matched : "\\" + matched; - }); - } - function common_escape(text) { - var aheadReplacer = function (matched) { return "\\" + matched; }; - var behindReplacer = function (matched) { return matched + "\\"; }; - var escapedText = text.replace(reSpaceMoreThanOne, ' '); - if (reEscapeBackSlash.test(escapedText)) { - escapedText = escapedText.replace(reEscapeBackSlash, aheadReplacer); - } - if (reEscapeBackSlashInSentence.test(escapedText)) { - escapedText = escapedText.replace(reEscapeBackSlashInSentence, behindReplacer); - } - escapedText = escapedText.replace(reEscapePairedChars, aheadReplacer); - if (reEscapeHTML.test(escapedText)) { - escapedText = escapedText.replace(reEscapeHTML, aheadReplacer); - } - if (isNeedEscapeText(escapedText)) { - escapedText = escapedText.replace(common_reEscapeChars, aheadReplacer); - } - return escapedText; - } - function quote(text) { - var result; - if (text.indexOf('"') === -1) { - result = '""'; - } - else { - result = text.indexOf("'") === -1 ? "''" : '()'; - } - return result[0] + text + result[1]; - } - function common_isNil(value) { - return isNull(value) || isUndefined(value); - } - function shallowEqual(o1, o2) { - if (o1 === null && o1 === o2) { - return true; - } - if (typeof o1 !== 'object' || typeof o2 !== 'object' || common_isNil(o1) || common_isNil(o2)) { - return o1 === o2; - } - for (var key in o1) { - if (o1[key] !== o2[key]) { - return false; - } - } - for (var key in o2) { - if (!(key in o1)) { - return false; - } - } - return true; - } - function common_last(arr) { - return arr[arr.length - 1]; - } - function common_between(value, min, max) { - return value >= min && value <= max; - } - function isObject(obj) { - return typeof obj === 'object' && obj !== null; - } - function deepMergedCopy(targetObj, obj) { - var resultObj = tslib_es6_assign({}, targetObj); - if (targetObj && obj) { - Object.keys(obj).forEach(function (prop) { - if (isObject(resultObj[prop])) { - if (Array.isArray(obj[prop])) { - resultObj[prop] = deepCopyArray(obj[prop]); - } - else if (resultObj.hasOwnProperty(prop)) { - resultObj[prop] = deepMergedCopy(resultObj[prop], obj[prop]); - } - else { - resultObj[prop] = deepCopy(obj[prop]); - } - } - else { - resultObj[prop] = obj[prop]; - } - }); - } - return resultObj; - } - function deepCopyArray(items) { - return items.map(function (item) { - if (isObject(item)) { - return Array.isArray(item) ? deepCopyArray(item) : deepCopy(item); - } - return item; - }); - } - function deepCopy(obj) { - var keys = Object.keys(obj); - if (!keys.length) { - return obj; - } - return keys.reduce(function (acc, prop) { - if (isObject(obj[prop])) { - acc[prop] = Array.isArray(obj[prop]) ? deepCopyArray(obj[prop]) : deepCopy(obj[prop]); - } - else { - acc[prop] = obj[prop]; - } - return acc; - }, {}); - } - function common_assign(targetObj, obj) { - if (obj === void 0) { obj = {}; } - Object.keys(obj).forEach(function (prop) { - if (targetObj.hasOwnProperty(prop) && typeof targetObj[prop] === 'object') { - if (Array.isArray(obj[prop])) { - targetObj[prop] = obj[prop]; - } - else { - common_assign(targetObj[prop], obj[prop]); - } - } - else { - targetObj[prop] = obj[prop]; - } - }); - return targetObj; - } - function getSortedNumPair(valueA, valueB) { - return valueA > valueB ? [valueB, valueA] : [valueA, valueB]; - } - - ;// CONCATENATED MODULE: ./src/utils/dom.ts - - - - - - - - - - - function isPositionInBox(style, offsetX, offsetY) { - var left = parseInt(style.left, 10); - var top = parseInt(style.top, 10); - var width = parseInt(style.width, 10) + parseInt(style.paddingLeft, 10) + parseInt(style.paddingRight, 10); - var height = parseInt(style.height, 10) + parseInt(style.paddingTop, 10) + parseInt(style.paddingBottom, 10); - return offsetX >= left && offsetX <= left + width && offsetY >= top && offsetY <= top + height; - } - var CLS_PREFIX = 'toastui-editor-'; - function cls() { - var names = []; - for (var _i = 0; _i < arguments.length; _i++) { - names[_i] = arguments[_i]; - } - var result = []; - for (var _a = 0, names_1 = names; _a < names_1.length; _a++) { - var name = names_1[_a]; - var className = void 0; - if (Array.isArray(name)) { - className = name[0] ? name[1] : null; - } - else { - className = name; - } - if (className) { - result.push("" + CLS_PREFIX + className); - } - } - return result.join(' '); - } - function clsWithMdPrefix() { - var names = []; - for (var _i = 0; _i < arguments.length; _i++) { - names[_i] = arguments[_i]; - } - return names.map(function (className) { return CLS_PREFIX + "md-" + className; }).join(' '); - } - function isTextNode(node) { - return (node === null || node === void 0 ? void 0 : node.nodeType) === Node.TEXT_NODE; - } - function isElemNode(node) { - return node && node.nodeType === Node.ELEMENT_NODE; - } - function findNodes(element, selector) { - var nodeList = toArray(element.querySelectorAll(selector)); - if (nodeList.length) { - return nodeList; - } - return []; - } - function appendNodes(node, nodesToAppend) { - nodesToAppend = isArray(nodesToAppend) ? toArray(nodesToAppend) : [nodesToAppend]; - nodesToAppend.forEach(function (nodeToAppend) { - node.appendChild(nodeToAppend); - }); - } - function insertBeforeNode(insertedNode, node) { - if (node.parentNode) { - node.parentNode.insertBefore(insertedNode, node); - } - } - function removeNode(node) { - if (node.parentNode) { - node.parentNode.removeChild(node); - } - } - function unwrapNode(node) { - var result = []; - while (node.firstChild) { - result.push(node.firstChild); - if (node.parentNode) { - node.parentNode.insertBefore(node.firstChild, node); - } - } - removeNode(node); - return result; - } - function toggleClass(element, className, state) { - if (isUndefined_default()(state)) { - state = !hasClass_default()(element, className); - } - var toggleFn = state ? (addClass_default()) : (removeClass_default()); - toggleFn(element, className); - } - function createElementWith(contents, target) { - var container = document.createElement('div'); - if (isString_default()(contents)) { - container.innerHTML = contents; - } - else { - container.appendChild(contents); - } - var firstChild = container.firstChild; - if (target) { - target.appendChild(firstChild); - } - return firstChild; - } - function getOuterWidth(el) { - var computed = window.getComputedStyle(el); - return (['margin-left', 'margin-right'].reduce(function (acc, type) { return acc + parseInt(computed.getPropertyValue(type), 10); }, 0) + el.offsetWidth); - } - function closest(node, found) { - var condition; - if (isString(found)) { - condition = function (target) { return matches(target, found); }; - } - else { - condition = function (target) { return target === found; }; - } - while (node && node !== document) { - if (isElemNode(node) && condition(node)) { - return node; - } - node = node.parentNode; - } - return null; - } - function getTotalOffset(el, root) { - var offsetTop = 0; - var offsetLeft = 0; - while (el && el !== root) { - var top = el.offsetTop, left = el.offsetLeft, offsetParent = el.offsetParent; - offsetTop += top; - offsetLeft += left; - if (offsetParent === root.offsetParent) { - break; - } - el = el.offsetParent; - } - return { offsetTop: offsetTop, offsetLeft: offsetLeft }; - } - function finalizeHtml(html, needHtmlText) { - var result; - if (needHtmlText) { - result = html.innerHTML; - } - else { - var frag = document.createDocumentFragment(); - var childNodes = toArray(html.childNodes); - var length = childNodes.length; - for (var i = 0; i < length; i += 1) { - frag.appendChild(childNodes[i]); - } - result = frag; - } - return result; - } - function dom_empty(node) { - while (node.firstChild) { - node.removeChild(node.firstChild); - } - } - function appendNode(node, appended) { - if (isString(appended)) { - node.insertAdjacentHTML('beforeend', appended); - } - else { - var nodes = appended.length - ? toArray(appended) - : [appended]; - for (var i = 0, len = nodes.length; i < len; i += 1) { - node.appendChild(nodes[i]); - } - } - } - function prependNode(node, appended) { - if (isString(appended)) { - node.insertAdjacentHTML('afterbegin', appended); - } - else { - var nodes = appended.length - ? toArray(appended) - : [appended]; - for (var i = nodes.length - 1, len = 0; i >= len; i -= 1) { - node.insertBefore(nodes[i], node.firstChild); - } - } - } - function setAttributes(attributes, element) { - Object.keys(attributes).forEach(function (attrName) { - if (isNil(attributes[attrName])) { - element.removeAttribute(attrName); - } - else { - element.setAttribute(attrName, attributes[attrName]); - } - }); - } - function replaceBRWithEmptyBlock(html) { - // remove br in paragraph to compatible with markdown - var replacedHTML = html.replace(/
<\/p>/gi, '
";
-
- function wa(e, t, n) {
- var r = parseInt(e.left, 10),
- o = parseInt(e.top, 10),
- i = parseInt(e.width, 10) + parseInt(e.paddingLeft, 10) + parseInt(e.paddingRight, 10),
- s = parseInt(e.height, 10) + parseInt(e.paddingTop, 10) + parseInt(e.paddingBottom, 10);
- return t >= r && t <= r + i && n >= o && n <= o + s
- }
- var ka = "toastui-editor-";
-
- function xa() {
- for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t];
- for (var n = [], r = 0, o = e; r < o.length; r++) {
- var i = o[r],
- s = void 0;
- (s = Array.isArray(i) ? i[0] ? i[1] : null : i) && n.push("" + ka + s)
- }
- return n.join(" ")
- }
-
- function Ca() {
- for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t];
- return e.map((function(e) {
- return ka + "md-" + e
- })).join(" ")
- }
-
- function Ta(e) {
- return e && e.nodeType === Node.ELEMENT_NODE
- }
-
- function Ma(e) {
- e.parentNode && e.parentNode.removeChild(e)
- }
-
- function Sa(e, t, n) {
- Oe()(n) && (n = !ca()(e, t)), (n ? ke() : Ce())(e, t)
- }
-
- function Ea(e, t) {
- var n = document.createElement("div");
- Me()(e) ? n.innerHTML = e : n.appendChild(e);
- var r = n.firstChild;
- return t && t.appendChild(r), r
- }
-
- function Na(e) {
- var t = window.getComputedStyle(e);
- return ["margin-left", "margin-right"].reduce((function(e, n) {
- return e + parseInt(t.getPropertyValue(n), 10)
- }), 0) + e.offsetWidth
- }
-
- function Oa(e, t) {
- var n;
- for (n = Me()(t) ? function(e) {
- return da()(e, t)
- } : function(e) {
- return e === t
- }; e && e !== document;) {
- if (Ta(e) && n(e)) return e;
- e = e.parentNode
- }
- return null
- }
-
- function Da(e, t) {
- for (var n = 0, r = 0; e && e !== t;) {
- if (n += e.offsetTop, r += e.offsetLeft, e.offsetParent === t.offsetParent) break;
- e = e.offsetParent
- }
- return {
- offsetTop: n,
- offsetLeft: r
- }
- }
-
- function Aa(e, t) {
- Object.keys(e).forEach((function(n) {
- Qe(e[n]) ? t.removeAttribute(n) : t.setAttribute(n, e[n])
- }))
- }
-
- function La(e) {
- var t = e;
- return t = (t = t.replace(//g, "")).replace(/ class="ProseMirror-trailingBreak"/g, "")
- }
- var Ia = new un("widget"),
- Ra = function() {
- function e(e, t) {
- var n = this;
- this.popup = null, this.removeWidget = function() {
- n.popup && (n.rootEl.removeChild(n.popup), n.popup = null)
- }, this.rootEl = e.dom.parentElement, this.eventEmitter = t, this.eventEmitter.listen("blur", this.removeWidget), this.eventEmitter.listen("loadUI", (function() {
- n.rootEl = Oa(e.dom.parentElement, "." + xa("defaultUI"))
- })), this.eventEmitter.listen("removePopupWidget", this.removeWidget)
- }
- return e.prototype.update = function(e) {
- var t = Ia.getState(e.state);
- if (this.removeWidget(), t) {
- var n = t.node,
- r = t.style,
- o = e.coordsAtPos(t.pos),
- i = o.top,
- s = o.left,
- a = o.bottom - i,
- l = this.rootEl.getBoundingClientRect(),
- c = i - l.top;
- be()(n, {
- opacity: "0"
- }), this.rootEl.appendChild(n), be()(n, {
- position: "absolute",
- left: s - l.left + 5 + "px",
- top: ("bottom" === r ? c + a - 5 : c - a) + "px",
- opacity: "1"
- }), this.popup = n, e.focus()
- }
- }, e.prototype.destroy = function() {
- this.eventEmitter.removeEventHandler("blur", this.removeWidget)
- }, e
- }();
-
- function Pa(e) {
- return new an({
- key: Ia,
- state: {
- init: function() {
- return null
- },
- apply: function(e) {
- return e.getMeta("widget")
- }
- },
- view: function(t) {
- return new Ra(t, e)
- }
- })
- }
- var Ba = n(893),
- Fa = n.n(Ba);
-
- function Ha(e, t, n) {
- e.emit("addImageBlobHook", t, (function(n, r) {
- e.emit("command", "addImage", {
- imageUrl: n,
- altText: r || t.name || "image"
- })
- }), n)
- }
-
- function za(e) {
- var t = vi()(e).filter((function(e) {
- return -1 !== e.type.indexOf("image")
- }));
- if (1 === t.length) {
- var n = t[0];
- if (n) return n.getAsFile()
- }
- return null
- }
-
- function qa(e) {
- var t = e.eventEmitter;
- return new an({
- props: {
- handleDOMEvents: {
- drop: function(e, n) {
- var r, o = null === (r = n.dataTransfer) || void 0 === r ? void 0 : r.files;
- return o && Fa()(o, (function(e) {
- return -1 === e.type.indexOf("image") || (n.preventDefault(), n.stopPropagation(), Ha(t, e, n.type), !1)
- })), !0
- }
- }
- }
- })
- }
- var Va = function() {
- function e() {}
- return Object.defineProperty(e.prototype, "type", {
- get: function() {
- return "node"
- },
- enumerable: !1,
- configurable: !0
- }), e.prototype.setContext = function(e) {
- this.context = e
- }, e
- }();
-
- function ja(e) {
- var t = document.createElement("span"),
- n = Ys(e.attrs.info, e.textContent);
- return t.className = "tui-widget", t.appendChild(n), {
- dom: t
- }
- }
-
- function $a(e) {
- return "widget" === e.type.name
- }
- var _a = function(e) {
- function n() {
- return null !== e && e.apply(this, arguments) || this
- }
- return t(n, e), Object.defineProperty(n.prototype, "name", {
- get: function() {
- return "widget"
- },
- enumerable: !1,
- configurable: !0
- }), Object.defineProperty(n.prototype, "schema", {
- get: function() {
- return {
- attrs: {
- info: {
- default: null
- }
- },
- group: "inline",
- inline: !0,
- content: "text*",
- selectable: !1,
- atom: !0,
- toDOM: function() {
- return ["span", {
- class: "tui-widget"
- }, 0]
- },
- parseDOM: [{
- tag: "span.tui-widget",
- getAttrs: function(e) {
- return {
- info: e.textContent.match(/\$\$(widget\d+)/)[1]
- }
- }
- }]
- }
- },
- enumerable: !1,
- configurable: !0
- }), n
- }(Va),
- Ua = function() {
- function e(e) {
- this.timer = null, this.el = document.createElement("div"), this.el.className = "toastui-editor", this.eventEmitter = e, this.placeholder = {
- text: ""
- }
- }
- return e.prototype.createState = function() {
- return on.create({
- schema: this.schema,
- plugins: this.createPlugins()
- })
- }, e.prototype.initEvent = function() {
- var e = this,
- t = e.eventEmitter,
- n = e.view,
- r = e.editorType;
- n.dom.addEventListener("focus", (function() {
- return t.emit("focus", r)
- })), n.dom.addEventListener("blur", (function() {
- return t.emit("blur", r)
- }))
- }, e.prototype.emitChangeEvent = function(e) {
- this.eventEmitter.emit("caretChange", this.editorType), e.docChanged && this.eventEmitter.emit("change", this.editorType)
- }, Object.defineProperty(e.prototype, "defaultPlugins", {
- get: function() {
- var e, t = this.createInputRules(),
- n = i(i([], this.keymaps), [Ai(o({
- "Shift-Enter": ts.Enter
- }, ts)), Ts(), (e = this.placeholder, new an({
- props: {
- decorations: function(t) {
- var n = t.doc;
- if (e.text && 1 === n.childCount && n.firstChild.isTextblock && 0 === n.firstChild.content.size) {
- var r = document.createElement("span");
- return ke()(r, "placeholder"), e.className && ke()(r, e.className), r.textContent = e.text, _o.create(n, [Vo.widget(1, r)])
- }
- return null
- }
- }
- })), Pa(this.eventEmitter), qa(this.context)]);
- return t ? n.concat(t) : n
- },
- enumerable: !1,
- configurable: !0
- }), e.prototype.createInputRules = function() {
- var e = ea().map((function(e) {
- var t = e.rule;
- return new ns(t, (function(e, n, r, o) {
- var i = e.schema,
- s = e.tr,
- a = e.doc,
- l = n.input.match(new RegExp(t, "g")),
- c = a.resolve(r),
- u = c.parent,
- d = 0;
- if ($a(u) && (u = c.node(c.depth - 1)), u.forEach((function(e) {
- return $a(e) && (d += 1)
- })), l.length > d) {
- var p = et(l),
- h = ra(p, i);
- return s.replaceWith(o - p.length + 1, o, h)
- }
- return null
- }))
- }));
- return e.length ? rs({
- rules: e
- }) : null
- }, e.prototype.clearTimer = function() {
- this.timer && (clearTimeout(this.timer), this.timer = null)
- }, e.prototype.createSchema = function() {
- return new Y({
- nodes: this.specs.nodes,
- marks: this.specs.marks
- })
- }, e.prototype.createKeymaps = function(e) {
- var t = ia(),
- n = t.undo,
- r = t.redo,
- o = this.specs.keymaps(e),
- i = {
- "Mod-z": n(),
- "Shift-Mod-z": r()
- };
- return e ? o.concat(Ai(i)) : o
- }, e.prototype.createCommands = function() {
- return this.specs.commands(this.view)
- }, e.prototype.createPluginProps = function() {
- var e = this;
- return this.extraPlugins.map((function(t) {
- return t(e.eventEmitter)
- }))
- }, e.prototype.focus = function() {
- var e = this;
- this.clearTimer(), this.timer = setTimeout((function() {
- e.view.focus(), e.view.dispatch(e.view.state.tr.scrollIntoView())
- }))
- }, e.prototype.blur = function() {
- this.view.dom.blur()
- }, e.prototype.destroy = function() {
- var e = this;
- this.clearTimer(), this.view.destroy(), Object.keys(this).forEach((function(t) {
- delete e[t]
- }))
- }, e.prototype.moveCursorToStart = function(e) {
- var t = this.view.state.tr;
- this.view.dispatch(t.setSelection(Os(t, 1)).scrollIntoView()), e && this.focus()
- }, e.prototype.moveCursorToEnd = function(e) {
- var t = this.view.state.tr;
- this.view.dispatch(t.setSelection(Os(t, t.doc.content.size - 1)).scrollIntoView()), e && this.focus()
- }, e.prototype.setScrollTop = function(e) {
- this.view.dom.scrollTop = e
- }, e.prototype.getScrollTop = function() {
- return this.view.dom.scrollTop
- }, e.prototype.setPlaceholder = function(e) {
- this.placeholder.text = e, this.view.dispatch(this.view.state.tr.scrollIntoView())
- }, e.prototype.setHeight = function(e) {
- be()(this.el, {
- height: e + "px"
- })
- }, e.prototype.setMinHeight = function(e) {
- be()(this.el, {
- minHeight: e + "px"
- })
- }, e.prototype.getElement = function() {
- return this.el
- }, e
- }(),
- Wa = Ua,
- Ja = n(294),
- Ga = n.n(Ja),
- Ka = ["Enter", "Shift-Enter", "Mod-Enter", "Tab", "Shift-Tab", "Delete", "Backspace", "Mod-Delete", "Mod-Backspace", "ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight", "Mod-d", "Mod-D", "Alt-ArrowUp", "Alt-ArrowDown"];
-
- function Za(e, t, n) {
- return e.focus(), t(n)(e.state, e.dispatch, e)
- }
- var Xa = function() {
- function e(e) {
- this.specs = e
- }
- return Object.defineProperty(e.prototype, "nodes", {
- get: function() {
- return this.specs.filter((function(e) {
- return "node" === e.type
- })).reduce((function(e, t) {
- var n, r = t.name,
- i = t.schema;
- return o(o({}, e), ((n = {})[r] = i, n))
- }), {})
- },
- enumerable: !1,
- configurable: !0
- }), Object.defineProperty(e.prototype, "marks", {
- get: function() {
- return this.specs.filter((function(e) {
- return "mark" === e.type
- })).reduce((function(e, t) {
- var n, r = t.name,
- i = t.schema;
- return o(o({}, e), ((n = {})[r] = i, n))
- }), {})
- },
- enumerable: !1,
- configurable: !0
- }), e.prototype.commands = function(e, t) {
- var n = this.specs.filter((function(e) {
- return e.commands
- })).reduce((function(t, n) {
- var r = {},
- i = n.commands();
- return Ga()(i) ? r[n.name] = function(t) {
- return Za(e, i, t)
- } : Object.keys(i).forEach((function(t) {
- r[t] = function(n) {
- return Za(e, i[t], n)
- }
- })), o(o({}, t), r)
- }), {}),
- r = ia();
- return Object.keys(r).forEach((function(t) {
- n[t] = function(n) {
- return Za(e, r[t], n)
- }
- })), t && Object.keys(t).forEach((function(r) {
- n[r] = function(n) {
- return Za(e, t[r], n)
- }
- })), n
- }, e.prototype.keymaps = function(e) {
- return this.specs.filter((function(e) {
- return e.keymaps
- })).map((function(e) {
- return e.keymaps()
- })).map((function(t) {
- return e || Object.keys(t).forEach((function(e) {
- Ue(Ka, e) || delete t[e]
- })), Ai(t)
- }))
- }, e.prototype.setContext = function(e) {
- this.specs.forEach((function(t) {
- t.setContext(e)
- }))
- }, e
- }(),
- Qa = Xa;
-
- function Ya(e) {
- var t = e.from,
- n = e.to;
- return e instanceof Kt ? [t + 1, n - 1] : [t, n]
- }
-
- function el(e) {
- return e.index(0) + 1
- }
-
- function tl(e, t, n) {
- void 0 === n && (n = 1);
- var r = 0;
- return e.forEach((function(e, o) {
- $a(e) && o + 2 < t && (r += 2 * n)
- })), r
- }
-
- function nl(e, t, n) {
- void 0 === n && (n = t);
- var r = t === n,
- o = e.resolve(t),
- i = el(o),
- s = i,
- a = o.start(1),
- l = a;
- if (!r) {
- var c = e.resolve(n === e.content.size ? n - 1 : n);
- l = c.start(1), s = el(c), c.pos === e.content.size && (n = e.content.size - 2)
- }
- var u = Math.max(t - a + 1, 1),
- d = Math.max(n - l + 1, 1);
- return [
- [i, u + tl(e.child(i - 1), u, -1)],
- [s, d + tl(e.child(s - 1), d, -1)]
- ]
- }
-
- function rl(e, t) {
- for (var n = [], r = 0, o = 0; r < t; r += 1) {
- var i = e.child(r);
- n[r] = o, o += i.nodeSize
- }
- return n
- }
-
- function ol(e, t, n) {
- var r = rl(e, n[0]),
- o = t[0] - 1,
- i = n[0] - 1,
- s = e.child(o),
- a = e.child(i),
- l = r[o],
- c = r[i];
- return l += t[1] + tl(s, t[1] - 1), c += n[1] + tl(a, n[1] - 1), [l, Math.min(c, e.content.size)]
- }
-
- function il(e) {
- var t = e.$from,
- n = e.$to,
- r = e.from,
- o = e.to,
- i = t.doc;
- return e instanceof Kt && (t = i.resolve(r + 1), n = i.resolve(o - 1)), 0 === t.depth && (n = t = i.resolve(r - 1)), {
- startFromOffset: t.start(1),
- endFromOffset: n.start(1),
- startToOffset: t.end(1),
- endToOffset: n.end(1),
- startIndex: t.index(0),
- endIndex: n.index(0),
- from: t.pos,
- to: n.pos
- }
- }
-
- function sl(e, t) {
- for (var n = 1, r = 1, o = 0, i = 0; o < e.childCount; o += 1) {
- var s = e.child(o).nodeSize;
- if (n = i + 1, r = i + s - 1, o === t) break;
- i += s
- }
- return {
- startOffset: n,
- endOffset: r
- }
- }
- var al = "heading",
- ll = "link",
- cl = "code",
- ul = "meta",
- dl = "delimiter",
- pl = "markedText",
- hl = {
- strong: 2,
- emph: 1,
- strike: 2
- };
-
- function fl(e, t, n, r) {
- return {
- start: e,
- end: t,
- spec: {
- type: n,
- attrs: r
- }
- }
- }
-
- function ml(e, t, n) {
- var r = e.type,
- o = $s(t, hl[r]),
- i = $s(n, -hl[r]);
- return [fl(o, i, r), fl(t, o, dl), fl(i, n, dl)]
- }
-
- function gl(e, t, n, r) {
- return [fl(e, t, ll), fl(_s(e, n[1] + 1), _s(t, r), ll, {
- desc: !0
- }), fl(_s(t, r + 2), $s(t, -1), ll, {
- url: !0
- })]
- }
-
- function vl(e, t, n, r) {
- var i = {
- start: t,
- end: n,
- spec: {
- attrs: {
- className: r + "-line-background",
- codeStart: t[0],
- codeEnd: n[0]
- }
- },
- lineBackground: !0
- };
- return "item" !== e.type && "blockQuote" !== e.type ? [o(o({}, i), {
- end: t,
- spec: {
- attrs: {
- className: r + "-line-background start"
- }
- }
- }), o(o({}, i), {
- start: [Math.min(t[0] + 1, n[0]), t[1]]
- })] : null
- }
-
- function yl(e, t) {
- for (var n = []; e;) {
- var r = e.type;
- "paragraph" !== r && "codeBlock" !== r || n.push(fl([Is(e), Ps(e) - 1], [Rs(e), Bs(e) + 1], t)), e = e.next
- }
- return n
- }
- var bl = {
- heading: function(e, t, n) {
- var r = e.level,
- o = e.headingType,
- i = [fl(t, n, al, {
- level: r
- })];
- return "atx" === o ? i.push(fl(t, $s(t, r), dl)) : i.push(fl(_s(n, 0), n, al, {
- seText: !0
- })), i
- },
- strong: ml,
- emph: ml,
- strike: ml,
- link: function(e, t, n) {
- var r = e.lastChild,
- o = e.extendedAutolink,
- i = r ? Bs(r) + 1 : 2;
- return o ? [fl(t, n, ll, {
- desc: !0
- })] : gl(t, n, t, i)
- },
- image: function(e, t, n) {
- var r = e.lastChild,
- o = r ? Bs(r) + 1 : 3,
- s = $s(t, 1);
- return i([fl(t, s, ul)], gl(t, n, s, o))
- },
- code: function(e, t, n) {
- var r = e.tickCount,
- o = $s(t, r),
- i = $s(n, -r);
- return [fl(t, n, cl), fl(t, o, cl, {
- start: !0
- }), fl(o, i, cl, {
- marked: !0
- }), fl(i, n, cl, {
- end: !0
- })]
- },
- codeBlock: function(e, t, n, r) {
- var o = e.fenceOffset,
- i = e.fenceLength,
- s = e.fenceChar,
- a = e.info,
- l = e.infoPadding,
- c = e.parent,
- u = o + i,
- d = [fl(_s(t, 1), n, "codeBlock")];
- s && d.push(fl(t, $s(t, u), dl)), a && d.push(fl($s(t, i), $s(t, i + l + a.length), ul)), new RegExp("^(\\s{0,4})(" + s + "{" + i + ",})").test(r) && d.push(fl(_s(n, 1), n, dl));
- var p = vl(c, t, n, "code-block");
- return p ? d.concat(p) : d
- },
- blockQuote: function(e, t, n) {
- var r = e.parent && "blockQuote" !== e.parent.type ? [fl(t, n, "blockQuote")] : [];
- if (e.firstChild) {
- var o = [];
- "paragraph" === e.firstChild.type ? o = function(e) {
- for (var t = []; e;) t.push(fl([Is(e), Ps(e)], [Rs(e), Bs(e) + 1], pl)), e = e.next;
- return t
- }(e.firstChild.firstChild) : "list" === e.firstChild.type && (o = yl(e.firstChild, pl)), r = i(i([], r), o)
- }
- return r
- },
- item: function(e, t) {
- var n = e.listData,
- r = n.padding,
- s = n.task,
- a = function(e) {
- for (var t = 0; e.parent.parent && "item" === e.parent.parent.type;) e = e.parent.parent, t += 1;
- return ["listItem", o(o({}, [{
- odd: !0
- }, {
- even: !0
- }][t % 2]), {
- listStyle: !0
- })]
- }(e),
- l = [fl.apply(void 0, i([t, $s(t, r)], a))];
- return s && (l.push(fl($s(t, r), $s(t, r + 3), "taskDelimiter")), l.push(fl($s(t, r + 1), $s(t, r + 2), ul))), l.concat(yl(e.firstChild, pl))
- },
- customBlock: function(e, t, n) {
- var r = e,
- o = r.offset,
- i = r.syntaxLength,
- s = r.info,
- a = r.parent,
- l = o + i,
- c = [fl(_s(t, 1), n, "customBlock")];
- c.push(fl(t, $s(t, l), dl)), s && c.push(fl($s(t, l), $s(t, i + s.length), ul)), c.push(fl(_s(n, 1), n, dl));
- var u = vl(a, t, n, "custom-block");
- return u ? c.concat(u) : c
- }
- },
- wl = {
- thematicBreak: "thematicBreak",
- table: "table",
- tableCell: "tableCell",
- htmlInline: "html"
- };
-
- function kl(e, t, n, r) {
- var o = e.type;
- return Ga()(bl[o]) ? bl[o](e, t, n, r) : wl[o] ? [fl(t, n, wl[o])] : null
- }
- var xl = {};
-
- function Cl(e) {
- var t = e.schema,
- n = e.toastMark;
- return new an({
- appendTransaction: function(e, r, o) {
- var i = e[0],
- s = o.tr;
- if (i.docChanged) {
- var a = [];
- i.getMeta("editResult").forEach((function(e) {
- var t = e.nodes,
- r = e.removedNodeRange;
- if (t.length) {
- a = a.concat(function(e, t) {
- var n = e.doc,
- r = t[0].sourcepos[0],
- o = et(t).sourcepos[1],
- i = [r[0], r[1]],
- s = [o[0], o[1] + 1],
- a = [];
- return function(e, t, n) {
- var r = [];
- xl = {};
- for (var o = t[0] - 1; o < n[0]; o += 1) {
- var i = e.child(o),
- s = i.attrs.codeEnd,
- a = i.attrs.codeStart;
- if (a && s && !Ue(r, a)) {
- r.push(a), s = Math.min(s, e.childCount);
- for (var l = a - 1, c = n[0], u = l; u < c; u += 1) xl[u] = !0
- }
- }
- }(n, r, o), a.push({
- start: i,
- end: s
- }), a
- }(s, t));
- for (var o = 0, i = t; o < i.length; o++)
- for (var l = i[o].walker(), c = l.next(); c;) {
- var u = c.node;
- c.entering && (a = a.concat(Ml(u, n))), c = l.next()
- }
- } else if (r)
- for (var d = s.doc.childCount - 1, p = r.line, h = p[0], f = p[1], m = Math.min(h, d), g = Math.min(f, d), v = m; v <= g; v += 1) xl[v] = !0
- })),
- function(e, t, n) {
- var r = e.doc,
- o = t.nodes.paragraph,
- i = rl(r, r.childCount);
- n.forEach((function(n) {
- var s = n.start,
- a = n.end,
- l = n.spec,
- c = n.lineBackground,
- u = Math.min(s[0], r.childCount) - 1,
- d = Math.min(a[0], r.childCount) - 1,
- p = r.child(u),
- h = r.child(d),
- f = i[u],
- m = i[d];
- (f += s[1] + tl(p, s[1] - 1), m += a[1] + tl(h, a[1] - 1), l) ? c ? function(e, t, n, r, o) {
- void 0 === o && (o = {});
- for (var i = r.startIndex, s = r.endIndex, a = r.from, l = r.to, c = !1, u = i; u <= s; u += 1) delete xl[u], c = Tl(t, u, o);
- c && e.setBlockType(a, l, n, o)
- }(e, r, o, {
- from: f,
- to: m,
- startIndex: u,
- endIndex: d
- }, l.attrs) : e.addMark(f, m, t.mark(l.type, l.attrs)): e.removeMark(f, m)
- })),
- function(e, t, n) {
- Object.keys(xl).forEach((function(r) {
- var o = Number(r),
- i = Math.min(Number(r) + 1, e.doc.childCount - 1),
- s = t[o],
- a = t[i] - 1;
- o === i && (a += 2), e.setBlockType(s, a, n)
- }))
- }(e, i, o)
- }(s, t, a)
- }
- return s.setMeta("widget", i.getMeta("widget"))
- }
- })
- }
-
- function Tl(e, t, n) {
- return Object.keys(n).some((function(r) {
- return n[r] !== e.child(t).attrs[r]
- }))
- }
-
- function Ml(e, t) {
- var n = t.getLineTexts(),
- r = [Is(e), Ps(e)],
- o = [Rs(e), Bs(e) + 1],
- i = kl(e, r, o, n[o[0] - 1]);
- return null != i ? i : []
- }
- var Sl = ["taskList", "orderedList", "bulletList", "table", "strong", "emph", "strike", "heading", "thematicBreak", "blockQuote", "code", "codeBlock", "indent", "outdent"];
-
- function El(e) {
- var t = {
- indent: {
- active: !1,
- disabled: !0
- },
- outdent: {
- active: !1,
- disabled: !0
- }
- },
- n = !0;
- return function(e, t, n) {
- for (void 0 === n && (n = !0), e = n ? e : e.parent; e && "document" !== e.type;) t(e), e = e.parent
- }(e, (function(e) {
- var r = function(e) {
- var t = e.type;
- return Hs(e) ? e.listData.task ? "taskList" : "ordered" === e.listData.type ? "orderedList" : "bulletList" : -1 !== t.indexOf("table") ? "table" : Ue(Sl, t) ? t : null
- }(e);
- r && ("bulletList" === r || "orderedList" === r ? n && (t[r] = {
- active: !0
- }, t.indent.disabled = !1, t.outdent.disabled = !1, n = !1) : t[r] = {
- active: !0
- })
- })), t
- }
-
- function Nl(e) {
- var t = e.toastMark,
- n = e.eventEmitter;
- return new an({
- view: function() {
- return {
- update: function(e, r) {
- var o = e.state,
- i = o.doc,
- s = o.selection;
- if (!(r && r.doc.eq(i) && r.selection.eq(s))) {
- var a = s.from,
- l = o.doc.resolve(a).start(),
- c = a - l;
- a === l && (c += 1);
- var u = [o.doc.content.findIndex(a).index + 1, c],
- d = t.findNodeAtPosition(u),
- p = El(d);
- n.emit("changeToolbarState", {
- cursorPos: u,
- mdNode: d,
- toolbarState: p
- }), n.emit("setFocusedNode", d)
- }
- }
- }
- }
- })
- }
- var Ol = function(e) {
- function n() {
- return null !== e && e.apply(this, arguments) || this
- }
- return t(n, e), Object.defineProperty(n.prototype, "name", {
- get: function() {
- return "doc"
- },
- enumerable: !1,
- configurable: !0
- }), Object.defineProperty(n.prototype, "schema", {
- get: function() {
- return {
- content: "block+"
- }
- },
- enumerable: !1,
- configurable: !0
- }), n
- }(Va),
- Dl = function() {
- function e() {}
- return Object.defineProperty(e.prototype, "type", {
- get: function() {
- return "mark"
- },
- enumerable: !1,
- configurable: !0
- }), e.prototype.setContext = function(e) {
- this.context = e
- }, e
- }(),
- Al = Dl;
-
- function Ll(e, t) {
- return Il(e, t - 1)
- }
-
- function Il(e, t) {
- return e.child(t).textContent
- }
- var Rl = /^\s*> ?/,
- Pl = function(e) {
- function n() {
- return null !== e && e.apply(this, arguments) || this
- }
- return t(n, e), Object.defineProperty(n.prototype, "name", {
- get: function() {
- return "blockQuote"
- },
- enumerable: !1,
- configurable: !0
- }), Object.defineProperty(n.prototype, "schema", {
- get: function() {
- return {
- toDOM: function() {
- return ["span", {
- class: Ca("block-quote")
- }, 0]
- }
- }
- },
- enumerable: !1,
- configurable: !0
- }), n.prototype.createBlockQuoteText = function(e, t) {
- return t ? e.replace(Rl, "").trim() : "> " + e.trim()
- }, n.prototype.extendBlockQuote = function() {
- var e = this;
- return function(t, n) {
- var r = t.selection,
- o = t.doc,
- i = t.tr,
- s = t.schema,
- a = il(r),
- l = a.endFromOffset,
- c = a.endToOffset,
- u = a.endIndex,
- d = a.to,
- p = Il(o, u);
- if (Rl.test(p) && d > l && r.empty) {
- if (!p.replace(Rl, "").trim()) i.deleteRange(l, c).split(i.mapping.map(c));
- else {
- var h = p.slice(d - l).trim();
- Ls(i, c, h, Ns(s, e.createBlockQuoteText(h)))
- }
- return n(i), !0
- }
- return !1
- }
- }, n.prototype.commands = function() {
- var e = this;
- return function() {
- return function(t, n) {
- var r = t.selection,
- o = t.doc,
- i = il(r),
- s = i.startFromOffset,
- a = i.endToOffset,
- l = i.startIndex,
- c = i.endIndex,
- u = Rl.test(Il(o, l)),
- d = As({
- state: t,
- startIndex: l,
- endIndex: c,
- from: s,
- createText: function(t) {
- return e.createBlockQuoteText(t, u)
- }
- });
- return n(d.setSelection(Os(d, d.mapping.map(a)))), !0
- }
- }
- }, n.prototype.keymaps = function() {
- var e = this.commands()();
- return {
- "alt-q": e,
- "alt-Q": e,
- Enter: this.extendBlockQuote()
- }
- }, n
- }(Al),
- Bl = /(^\s*)([-*+] |[\d]+\. )/,
- Fl = /(^\s*)([\d])+\.( \[[ xX]])? /,
- Hl = /^(\s*)((\d+)([.)]\s(?:\[(?:x|\s)\]\s)?))(.*)/,
- zl = /(^\s*)([-*+]|[\d]+\.)( \[[ xX]])? /,
- ql = /^(\s*)([-*+]+(\s(?:\[(?:x|\s)\]\s)?))(.*)/,
- Vl = /(^\s*)([-*+] |[\d]+\. )(\[[ xX]] )/,
- jl = /(^\s*)([-*+])( \[[ xX]]) /;
-
- function $l(e) {
- return Fl.test(e) ? "ordered" : "bullet"
- }
-
- function _l(e) {
- for (var t = 0; e && "document" !== e.type;) "list" === e.type && (t += 1), e = e.parent;
- return t
- }
-
- function Ul(e, t, n, r) {
- for (var o = e.getLineTexts().length, i = [], s = t; r ? s < o : s > 1;) {
- s = r ? s + 1 : s - 1;
- var a = e.findFirstNodeAtLine(s),
- l = _l(a);
- if (l === n) i.push({
- line: s,
- depth: n,
- mdNode: a
- });
- else if (l < n) break
- }
- return i
- }
-
- function Wl(e, t, n, r) {
- void 0 === r && (r = 0);
- var o = Number.MAX_VALUE,
- i = 0,
- s = t.map((function(t, s) {
- var a = t.line;
- o = Math.min(a - 1, o), i = Math.max(a - 1, i);
- var l = Ll(e, a);
- return l = "bullet" === n ? function(e) {
- if (!Bl.test(e)) return "* " + e;
- var t = $l(e);
- return "bullet" === t && zl.test(e) ? e = e.replace(jl, "$1$2 ") : "ordered" === t && (e = e.replace(Fl, "$1* ")), e
- }(l) : function(e, t) {
- if (!Bl.test(e)) return t + ". " + e;
- var n = $l(e);
- if ("bullet" === n || "ordered" === n && zl.test(e)) e = e.replace(zl, "$1" + t + ". ");
- else if ("ordered" === n) {
- var r = Hl.exec(e)[3];
- Number(r) !== t && (e = e.replace(Fl, "$1" + t + ". "))
- }
- return e
- }(l, s + 1 + r), {
- text: l,
- line: a
- }
- }));
- return {
- changedResults: s,
- firstIndex: o,
- lastIndex: i
- }
- }
-
- function Jl(e, t) {
- var n, r, o, i, s, a, l, c = (r = (n = t).toastMark, o = n.mdNode, i = n.line, s = _l(o), a = Ul(r, i, s, !1).reverse(), l = Ul(r, i, s, !0), a.concat([{
- line: i,
- depth: s,
- mdNode: o
- }]).concat(l));
- return Wl(t.doc, c, e)
- }
- var Gl = {
- bullet: function(e) {
- return Jl("bullet", e)
- },
- ordered: function(e) {
- return Jl("ordered", e)
- },
- task: function(e) {
- var t = e.mdNode,
- n = e.doc,
- r = e.line,
- o = Ll(n, r);
- return t.listData.task ? o = o.replace(Vl, "$1$2") : Hs(t) && (o = o.replace(Bl, "$1$2[ ] ")), {
- changedResults: [{
- text: o,
- line: r
- }]
- }
- }
- },
- Kl = {
- bullet: function(e) {
- var t = e.doc,
- n = e.line;
- return {
- changedResults: [{
- text: "* " + Ll(t, n),
- line: n
- }]
- }
- },
- ordered: function(e) {
- for (var t = e.toastMark, n = e.doc, r = e.line, o = e.startLine, i = Ll(n, r), s = 1, a = o, l = 0, c = o - 1; c > 0; c -= 1) {
- var u = t.findFirstNodeAtLine(c),
- d = Ll(n, c) && !!js(u, (function(e) {
- return Hs(e)
- })),
- p = Hl.exec(Ll(n, c));
- if (!p && !d) break;
- if (p || !d) {
- var h = p,
- f = h[1],
- m = h[3];
- if (!f) {
- s = Number(m), a = c;
- break
- }
- } else l += 1
- }
- return {
- changedResults: [{
- text: s + r - a - l + ". " + i,
- line: r
- }]
- }
- },
- task: function(e) {
- var t = e.doc,
- n = e.line;
- return {
- changedResults: [{
- text: "* [ ] " + Ll(t, n),
- line: n
- }]
- }
- }
- },
- Zl = {
- bullet: function(e) {
- var t = e.line,
- n = Ll(e.doc, t),
- r = ql.exec(n);
- return {
- listSyntax: "" + r[1] + r[2]
- }
- },
- ordered: function(e) {
- var t = e.toastMark,
- n = e.line,
- r = e.mdNode,
- i = e.doc,
- s = _l(r),
- a = Ll(i, n),
- l = Hl.exec(a),
- c = l[1],
- u = l[3],
- d = l[4],
- p = Number(u) + 1,
- h = "" + c + p + d,
- f = Ul(t, n, s, !0).filter((function(e) {
- var t = Hl.exec(Ll(i, e.line));
- return t && t[1].length === c.length && !!js(e.mdNode, (function(e) {
- return zs(e)
- }))
- }));
- return o({
- listSyntax: h
- }, Wl(i, f, "ordered", p))
- }
- };
-
- function Xl(e, t, n, r, o) {
- for (var i = [], s = Ll(e, n), a = Hl.exec(s); a;) {
- var l = a[1],
- c = a[4],
- u = a[5],
- d = l.length;
- if (d === o) i.push(Ns(t, "" + l + r + c + u)), r += 1, n += 1;
- else if (d > o) {
- var p = Xl(e, t, n, 1, d);
- n = p.line, i = i.concat(p.nodes)
- }
- if (d < o || n > e.childCount) break;
- s = Ll(e, n), a = Hl.exec(s)
- }
- return {
- nodes: i,
- line: n
- }
- }
- var Ql = /(^\s{1,4})(.*)/;
-
- function Yl(e, t, n) {
- return e < t || Bl.test(n) || Rl.test(n)
- }
-
- function ec(e, t, n) {
- var r = n.$from;
- 0 === r.depth && (r = e.resolve(r.pos - 1));
- var o = r.node(1),
- i = r.start(1),
- s = o.content.size;
- return o.rangeHasMark(0, s, t.marks.table) && r.pos - i !== s && r.pos !== i
- }
-
- function tc(e, t) {
- var n = t.from,
- r = t.to;
- if ("indent" === t.type) {
- n += 4, r += 4 * (t.lineLen + 1)
- } else {
- var o = t.spaceLenList;
- n -= o[0];
- for (var i = 0; i < o.length; i += 1) r -= o[i]
- }
- return Os(e, n, r)
- }
- var nc = function(e) {
- function n() {
- return null !== e && e.apply(this, arguments) || this
- }
- return t(n, e), Object.defineProperty(n.prototype, "name", {
- get: function() {
- return "paragraph"
- },
- enumerable: !1,
- configurable: !0
- }), Object.defineProperty(n.prototype, "schema", {
- get: function() {
- return {
- content: "inline*",
- attrs: {
- className: {
- default: null
- },
- codeStart: {
- default: null
- },
- codeEnd: {
- default: null
- }
- },
- selectable: !1,
- group: "block",
- parseDOM: [{
- tag: "div"
- }],
- toDOM: function(e) {
- var t = e.attrs;
- return t.className ? ["div", {
- class: Ca(t.className)
- }, 0] : ["div", 0]
- }
- }
- },
- enumerable: !1,
- configurable: !0
- }), n.prototype.reorderList = function(e, t) {
- for (var n = this.context, r = n.view, o = n.toastMark, i = n.schema, s = r.state, a = s.tr, l = s.selection, c = s.doc, u = o.findFirstNodeAtLine(e), d = u; u && !qs(u) && "document" !== u.parent.type;)
- if (zs(u = u.parent)) {
- d = u;
- break
- } d && (e = d.sourcepos[0][0]);
- var p = Hl.exec(Ll(c, e)),
- h = p[1],
- f = p[3],
- m = h.length,
- g = Xl(c, i, e, Number(f), m),
- v = g.line,
- y = g.nodes;
- t = Math.max(t, v - 1);
- for (var b = sl(c, e - 1).startOffset, w = e - 1; w <= t - 1; w += 1) {
- var k = c.child(w),
- x = k.nodeSize,
- C = k.content,
- T = a.mapping.map(b),
- M = T + C.size;
- a.replaceWith(T, M, y[w - e + 1]), b += x
- }
- var S = Os(a, l.from, l.to);
- r.dispatch(a.setSelection(S))
- }, n.prototype.indent = function(e) {
- var t = this;
- return void 0 === e && (e = !1),
- function() {
- return function(n, r) {
- var o = n.schema,
- i = n.selection,
- s = n.doc,
- a = il(i),
- l = a.from,
- c = a.to,
- u = a.startFromOffset,
- d = a.startIndex,
- p = a.endIndex;
- if (e && ec(s, o, i)) return !1;
- var h = Il(s, d);
- if (e && Yl(l, c, h) || !e && Bl.test(h)) {
- var f = As({
- state: n,
- from: u,
- startIndex: d,
- endIndex: p,
- createText: function(e) {
- return " " + e
- }
- }),
- m = {
- type: "indent",
- from: l,
- to: c,
- lineLen: p - d
- };
- r(f.setSelection(tc(f, m))), Hl.test(h) && t.reorderList(d + 1, p + 1)
- } else e && r(n.tr.insert(c, Ns(o, " ")));
- return !0
- }
- }
- }, n.prototype.outdent = function(e) {
- var t = this;
- return void 0 === e && (e = !1),
- function() {
- return function(n, r) {
- var o = n.selection,
- i = n.doc,
- s = n.schema,
- a = il(o),
- l = a.from,
- c = a.to,
- u = a.startFromOffset,
- d = a.startIndex,
- p = a.endIndex;
- if (e && ec(i, s, o)) return !1;
- var h = Il(i, d);
- if (e && Yl(l, c, h) || !e && Bl.test(h)) {
- var f = [],
- m = As({
- state: n,
- from: u,
- startIndex: d,
- endIndex: p,
- createText: function(e) {
- var t = Ql.exec(e);
- return f.push(t ? t[1].length : 0), e.replace(Ql, "$2")
- }
- }),
- g = {
- type: "outdent",
- from: l,
- to: c,
- spaceLenList: f
- };
- r(m.setSelection(tc(m, g))), Hl.test(h) && t.reorderList(d + 1, p + 1)
- } else if (e) {
- var v = h.slice(0, c - u),
- y = v.replace(/\s{1,4}$/, ""),
- b = c - (v.length - y.length);
- r(n.tr.delete(b, c))
- }
- return !0
- }
- }
- }, n.prototype.deleteLines = function() {
- var e = this;
- return function(t, n) {
- var r = e.context.view,
- o = il(t.selection),
- i = o.startFromOffset,
- s = o.endToOffset;
- return Zi((function() {
- return n(t.tr.deleteRange(i, s)), !0
- }), Bi)(t, n, r)
- }
- }, n.prototype.moveDown = function() {
- return function(e, t) {
- var n = e.doc,
- r = e.tr,
- o = e.selection,
- i = e.schema,
- s = il(o),
- a = s.startFromOffset,
- l = s.endToOffset,
- c = s.endIndex;
- if (c < n.content.childCount - 1) {
- var u = n.child(c + 1),
- d = u.nodeSize,
- p = u.textContent;
- return r.delete(l, l + d).split(a).insert(r.mapping.map(a) - 2, Ns(i, p)), t(r), !0
- }
- return !1
- }
- }, n.prototype.moveUp = function() {
- return function(e, t) {
- var n = e.tr,
- r = e.doc,
- o = e.selection,
- i = e.schema,
- s = il(o),
- a = s.startFromOffset,
- l = s.endToOffset,
- c = s.startIndex;
- if (c > 0) {
- var u = r.child(c - 1),
- d = u.nodeSize,
- p = u.textContent;
- return n.delete(a - d, a).split(n.mapping.map(l)).insert(n.mapping.map(l), Ns(i, p)), t(n), !0
- }
- return !1
- }
- }, n.prototype.commands = function() {
- return {
- indent: this.indent(),
- outdent: this.outdent()
- }
- }, n.prototype.keymaps = function() {
- return {
- Tab: this.indent(!0)(),
- "Shift-Tab": this.outdent(!0)(),
- "Mod-d": this.deleteLines(),
- "Mod-D": this.deleteLines(),
- "Alt-ArrowUp": this.moveUp(),
- "Alt-ArrowDown": this.moveDown()
- }
- }, n
- }(Va),
- rc = function(e) {
- function n() {
- return null !== e && e.apply(this, arguments) || this
- }
- return t(n, e), Object.defineProperty(n.prototype, "name", {
- get: function() {
- return "text"
- },
- enumerable: !1,
- configurable: !0
- }), Object.defineProperty(n.prototype, "schema", {
- get: function() {
- return {
- group: "inline"
- }
- },
- enumerable: !1,
- configurable: !0
- }), n
- }(Va),
- oc = /^#{1,6}\s/,
- ic = function(e) {
- function n() {
- return null !== e && e.apply(this, arguments) || this
- }
- return t(n, e), Object.defineProperty(n.prototype, "name", {
- get: function() {
- return "heading"
- },
- enumerable: !1,
- configurable: !0
- }), Object.defineProperty(n.prototype, "schema", {
- get: function() {
- return {
- attrs: {
- level: {
- default: 1
- },
- seText: {
- default: !1
- }
- },
- toDOM: function(e) {
- var t = e.attrs,
- n = "heading|heading" + t.level;
- return t.seText && (n += "|delimiter|setext"), ["span", {
- class: Ca.apply(void 0, n.split("|"))
- }, 0]
- }
- }
- },
- enumerable: !1,
- configurable: !0
- }), n.prototype.createHeadingText = function(e, t, n) {
- for (var r = t.replace(n, "").trim(), o = ""; e > 0;) o += "#", e -= 1;
- return o + " " + r
- }, n.prototype.commands = function() {
- var e = this;
- return function(t) {
- return function(n, r) {
- var o = t.level,
- i = il(n.selection),
- s = i.startFromOffset,
- a = i.endToOffset,
- l = As({
- state: n,
- from: s,
- startIndex: i.startIndex,
- endIndex: i.endIndex,
- createText: function(t) {
- var n = t.match(oc),
- r = n ? n[0] : "";
- return e.createHeadingText(o, t, r)
- }
- });
- return r(l.setSelection(Os(l, l.mapping.map(a)))), !0
- }
- }
- }, n
- }(Al),
- sc = "```",
- ac = function(e) {
- function n() {
- return null !== e && e.apply(this, arguments) || this
- }
- return t(n, e), Object.defineProperty(n.prototype, "name", {
- get: function() {
- return "codeBlock"
- },
- enumerable: !1,
- configurable: !0
- }), Object.defineProperty(n.prototype, "schema", {
- get: function() {
- return {
- toDOM: function() {
- return ["span", {
- class: Ca("code-block")
- }, 0]
- }
- }
- },
- enumerable: !1,
- configurable: !0
- }), n.prototype.commands = function() {
- return function() {
- return function(e, t) {
- var n = e.selection,
- r = e.schema,
- o = e.tr,
- i = il(n),
- s = i.startFromOffset,
- a = i.endToOffset,
- l = Ns(r, sc);
- return o.insert(s, l).split(s + sc.length), o.split(o.mapping.map(a)).insert(o.mapping.map(a), l), t(o.setSelection(Os(o, o.mapping.map(a) - (sc.length + 2)))), !0
- }
- }
- }, n.prototype.keepIndentation = function() {
- var e = this;
- return function(t, n) {
- var r = t.selection,
- o = t.tr,
- i = t.doc,
- s = t.schema,
- a = e.context.toastMark,
- l = il(r),
- c = l.startFromOffset,
- u = l.endToOffset,
- d = l.endIndex,
- p = l.from,
- h = l.to,
- f = Il(i, d);
- if (p === h && f.trim()) {
- var m = f.match(/^\s+/);
- if (function(e) {
- return e && "codeBlock" === e.type
- }(a.findFirstNodeAtLine(d + 1)) && m) {
- var g = m[0],
- v = f.slice(h - c);
- return Ls(o, u, v, Ns(s, g + v)), n(o), !0
- }
- }
- return !1
- }
- }, n.prototype.keymaps = function() {
- var e = this.commands()();
- return {
- "Shift-Mod-p": e,
- "Shift-Mod-P": e,
- Enter: this.keepIndentation()
- }
- }, n
- }(Al),
- lc = /\||\s/g;
-
- function cc(e, t) {
- for (var n = "|", r = 0; r < e; r += 1) n += t ? " --- |" : " |";
- return n
- }
- var uc = function(e) {
- function n() {
- return null !== e && e.apply(this, arguments) || this
- }
- return t(n, e), Object.defineProperty(n.prototype, "name", {
- get: function() {
- return "table"
- },
- enumerable: !1,
- configurable: !0
- }), Object.defineProperty(n.prototype, "schema", {
- get: function() {
- return {
- toDOM: function() {
- return ["span", {
- class: Ca("table")
- }, 0]
- }
- }
- },
- enumerable: !1,
- configurable: !0
- }), n.prototype.extendTable = function() {
- var e = this;
- return function(t, n) {
- var r = t.selection,
- o = t.doc,
- i = t.tr,
- s = t.schema;
- if (!r.empty) return !1;
- var a = il(r),
- l = a.endFromOffset,
- c = a.endToOffset,
- u = a.endIndex,
- d = a.to,
- p = Il(o, u),
- h = [u + 1, d - l + 1],
- f = js(e.context.toastMark.findNodeAtPosition(h), (function(e) {
- return Vs(e) && ("tableDelimRow" === e.parent.type || "tableBody" === e.parent.parent.type)
- }));
- if (f) {
- var m = !p.replace(lc, "").trim(),
- g = cc(f.parent.parent.parent.columns.length);
- return m ? i.deleteRange(l, c).split(i.mapping.map(c)) : i.split(c).insert(i.mapping.map(c), Ns(s, g)).setSelection(Os(i, i.mapping.map(c) - 2)), n(i), !0
- }
- return !1
- }
- }, n.prototype.moveTableCell = function(e) {
- var t = this;
- return function(n, r) {
- var o = n.selection,
- i = n.tr,
- s = il(o),
- a = s.endFromOffset,
- l = [s.endIndex + 1, s.to - a],
- c = js(t.context.toastMark.findNodeAtPosition(l), (function(e) {
- return Vs(e)
- }));
- if (c) {
- var u = c.parent,
- d = function(e) {
- return e ? {
- type: "next",
- parentType: "tableHead",
- childType: "firstChild"
- } : {
- type: "prev",
- parentType: "tableBody",
- childType: "lastChild"
- }
- }(e),
- p = d.type,
- h = d.parentType,
- f = d.childType,
- m = Bs(c);
- if (c[p]) m = Bs(c[p]) - 1;
- else {
- var g = u[p] || u.parent.type !== h ? u[p] : u.parent[p][f];
- if ("next" === p) m += (g ? Bs(g[f]) : 0) + 2;
- else "prev" === p && (m = g ? -4 : 0)
- }
- return r(i.setSelection(Os(i, a + m))), !0
- }
- return !1
- }
- }, n.prototype.addTable = function() {
- return function(e) {
- return function(t, n) {
- var r = t.selection,
- o = t.tr,
- s = t.schema,
- a = e,
- l = a.columnCount,
- c = a.rowCount,
- u = il(r).endToOffset,
- d = function(e) {
- return [cc(e), cc(e, !0)]
- }(l),
- p = function(e, t) {
- for (var n = [], r = 0; r < t; r += 1) n.push(cc(e));
- return n
- }(l, c - 1);
- return i(i([], d), p).forEach((function(e) {
- o.split(o.mapping.map(u)).insert(o.mapping.map(u), Ns(s, e))
- })), n(o.setSelection(Os(o, u + 4))), !0
- }
- }
- }, n.prototype.commands = function() {
- return {
- addTable: this.addTable()
- }
- }, n.prototype.keymaps = function() {
- return {
- Enter: this.extendTable(),
- Tab: this.moveTableCell(!0),
- "Shift-Tab": this.moveTableCell(!1)
- }
- }, n
- }(Al),
- dc = function(e) {
- function n() {
- return null !== e && e.apply(this, arguments) || this
- }
- return t(n, e), Object.defineProperty(n.prototype, "name", {
- get: function() {
- return "thematicBreak"
- },
- enumerable: !1,
- configurable: !0
- }), Object.defineProperty(n.prototype, "schema", {
- get: function() {
- return {
- toDOM: function() {
- return ["span", {
- class: Ca("thematic-break")
- }, 0]
- }
- }
- },
- enumerable: !1,
- configurable: !0
- }), n.prototype.hr = function() {
- return function() {
- return function(e, t) {
- var n = e.selection,
- r = e.schema,
- o = e.tr,
- i = il(n),
- s = i.from,
- a = i.to,
- l = i.endToOffset,
- c = Ns(r, "***");
- return o.split(s).replaceWith(o.mapping.map(s), o.mapping.map(a), c).split(o.mapping.map(a)).setSelection(Os(o, o.mapping.map(l))), t(o), !0
- }
- }
- }, n.prototype.commands = function() {
- return {
- hr: this.hr()
- }
- }, n.prototype.keymaps = function() {
- var e = this.hr()();
- return {
- "Mod-l": e,
- "Mod-L": e
- }
- }, n
- }(Al);
-
- function pc(e, t) {
- var n = e.type;
- return t <= e.sourcepos[0][0] && ("codeBlock" === n || "heading" === n || n.match("table"))
- }
- var hc = function(e) {
- function n() {
- return null !== e && e.apply(this, arguments) || this
- }
- return t(n, e), Object.defineProperty(n.prototype, "name", {
- get: function() {
- return "listItem"
- },
- enumerable: !1,
- configurable: !0
- }), Object.defineProperty(n.prototype, "schema", {
- get: function() {
- return {
- attrs: {
- odd: {
- default: !1
- },
- even: {
- default: !1
- },
- listStyle: {
- default: !1
- }
- },
- toDOM: function(e) {
- var t = e.attrs,
- n = t.odd,
- r = t.even,
- o = "list-item";
- return t.listStyle && (o += "|list-item-style"), n && (o += "|list-item-odd"), r && (o += "|list-item-even"), ["span", {
- class: Ca.apply(void 0, o.split("|"))
- }, 0]
- }
- }
- },
- enumerable: !1,
- configurable: !0
- }), n.prototype.extendList = function() {
- var e = this;
- return function(t, n) {
- var r = t.selection,
- o = t.doc,
- i = t.schema,
- s = t.tr,
- a = e.context.toastMark,
- l = il(r),
- c = l.to,
- u = l.startFromOffset,
- d = l.endFromOffset,
- p = l.endIndex,
- h = l.endToOffset,
- f = Il(o, p);
- if (!Bl.test(f) || r.from === u || !r.empty) return !1;
- if (!f.replace(zl, "").trim()) s.deleteRange(d, h).split(s.mapping.map(h));
- else {
- var m = $l(f),
- g = a.findFirstNodeAtLine(p + 1),
- v = f.slice(c - d),
- y = {
- toastMark: a,
- mdNode: g,
- doc: o,
- line: p + 1
- },
- b = Zl[m](y),
- w = b.listSyntax,
- k = b.changedResults;
- if (null == k ? void 0 : k.length) {
- s.split(c), k.unshift({
- text: w + v,
- line: p + 1
- }), e.changeToListPerLine(s, k, {
- from: c,
- startLine: k[0].line,
- endLine: et(k).line
- });
- var x = s.mapping.map(h) - v.length;
- s.setSelection(Os(s, x))
- } else {
- Ls(s, h, v, Ns(i, w + v))
- }
- }
- return n(s), !0
- }
- }, n.prototype.toList = function(e) {
- var t = this;
- return function() {
- return function(n, r) {
- for (var o = n.doc, i = n.tr, s = n.selection, a = t.context.toastMark, l = il(s), c = l.startIndex + 1, u = l.endIndex + 1, d = l.endToOffset, p = [], h = c; h <= u; h += 1) {
- var f = a.findFirstNodeAtLine(h);
- if (f && pc(f, h)) break;
- if (-1 === p.indexOf(h)) {
- var m = {
- toastMark: a,
- mdNode: f,
- doc: o,
- line: h,
- startLine: c
- },
- g = (Hs(f) ? Gl[e](m) : Kl[e](m)).changedResults,
- v = t.changeToListPerLine(i, g, {
- from: sl(o, g[0].line - 1).startOffset,
- startLine: g[0].line,
- endLine: et(g).line,
- indexDiff: 1
- });
- d = Math.max(v, d), g && (p = p.concat(g.map((function(e) {
- return e.line
- }))))
- }
- }
- return r(i.setSelection(Os(i, i.mapping.map(d)))), !0
- }
- }
- }, n.prototype.changeToListPerLine = function(e, t, n) {
- for (var r = n.from, o = n.startLine, i = n.endLine, s = n.indexDiff, a = void 0 === s ? 0 : s, l = 0, c = function(n) {
- var o = e.doc.child(n),
- i = o.nodeSize,
- s = o.content,
- c = e.mapping.map(r),
- d = c + s.size,
- p = t.filter((function(e) {
- return e.line - a === n
- }))[0];
- p && (e.replaceWith(c, d, Ns(u.context.schema, p.text)), l = Math.max(l, r + s.size)), r += i
- }, u = this, d = o - a; d <= i - a; d += 1) c(d);
- return l
- }, n.prototype.toggleTask = function() {
- var e = this;
- return function(t, n) {
- for (var r = t.selection, o = t.tr, i = t.doc, s = t.schema, a = e.context.toastMark, l = il(r), c = l.startIndex, u = l.endIndex, d = null, p = c; p <= u; p += 1) {
- var h = a.findFirstNodeAtLine(p + 1);
- if (Hs(h) && h.listData.task) {
- var f = h.listData,
- m = f.checked,
- g = f.padding,
- v = m ? " " : "x",
- y = h.sourcepos[0],
- b = sl(i, y[0] - 1).startOffset;
- b += y[1] + g, d = o.replaceWith(b, b + 1, s.text(v))
- }
- }
- return !!d && (n(d), !0)
- }
- }, n.prototype.commands = function() {
- return {
- bulletList: this.toList("bullet"),
- orderedList: this.toList("ordered"),
- taskList: this.toList("task")
- }
- }, n.prototype.keymaps = function() {
- var e = this.toList("bullet")(),
- t = this.toList("ordered")(),
- n = this.toList("task")(),
- r = this.toggleTask();
- return {
- "Mod-u": e,
- "Mod-U": e,
- "Mod-o": t,
- "Mod-O": t,
- "alt-t": n,
- "alt-T": n,
- "Shift-Ctrl-x": r,
- "Shift-Ctrl-X": r,
- Enter: this.extendList()
- }
- }, n
- }(Al);
-
- function fc(e, t) {
- return function() {
- return function(n, r) {
- var o = n.tr,
- i = n.selection,
- s = Ga()(e) ? e : function(t) {
- return e.test(t)
- },
- a = t.length,
- l = o.doc,
- c = Ya(i),
- u = c[0],
- d = c[1],
- p = Math.max(u - a, 1),
- h = Math.min(d + a, l.content.size - 1),
- f = i.content(),
- m = f.content.textBetween(0, f.content.size, "\n"),
- g = l.textBetween(p, u, "\n"),
- v = l.textBetween(d, h, "\n");
- if (m = "" + g + m + v, g && v && s(m)) o.delete(h - a, h).delete(p, p + a);
- else {
- o.insertText(t, d).insertText(t, u);
- var y = i.empty ? Os(o, u + a) : Os(o, u + a, d + a);
- o.setSelection(y)
- }
- return r(o), !0
- }
- }
- }
- var mc = /^(\*{2}|_{2}).*([\s\S]*)\1$/m,
- gc = function(e) {
- function n() {
- return null !== e && e.apply(this, arguments) || this
- }
- return t(n, e), Object.defineProperty(n.prototype, "name", {
- get: function() {
- return "strong"
- },
- enumerable: !1,
- configurable: !0
- }), Object.defineProperty(n.prototype, "schema", {
- get: function() {
- return {
- toDOM: function() {
- return ["span", {
- class: Ca("strong")
- }, 0]
- }
- }
- },
- enumerable: !1,
- configurable: !0
- }), n.prototype.bold = function() {
- return fc(mc, "**")
- }, n.prototype.commands = function() {
- return {
- bold: this.bold()
- }
- }, n.prototype.keymaps = function() {
- var e = this.bold()();
- return {
- "Mod-b": e,
- "Mod-B": e
- }
- }, n
- }(Al),
- vc = /^(~{2}).*([\s\S]*)\1$/m,
- yc = function(e) {
- function n() {
- return null !== e && e.apply(this, arguments) || this
- }
- return t(n, e), Object.defineProperty(n.prototype, "name", {
- get: function() {
- return "strike"
- },
- enumerable: !1,
- configurable: !0
- }), Object.defineProperty(n.prototype, "schema", {
- get: function() {
- return {
- toDOM: function() {
- return ["span", {
- class: Ca("strike")
- }, 0]
- }
- }
- },
- enumerable: !1,
- configurable: !0
- }), n.prototype.commands = function() {
- return fc(vc, "~~")
- }, n.prototype.keymaps = function() {
- var e = this.commands()();
- return {
- "Mod-s": e,
- "Mod-S": e
- }
- }, n
- }(Al),
- bc = /^(\*|_).*([\s\S]*)\1$/m,
- wc = function(e) {
- function n() {
- return null !== e && e.apply(this, arguments) || this
- }
- return t(n, e), Object.defineProperty(n.prototype, "name", {
- get: function() {
- return "emph"
- },
- enumerable: !1,
- configurable: !0
- }), Object.defineProperty(n.prototype, "schema", {
- get: function() {
- return {
- toDOM: function() {
- return ["span", {
- class: Ca("emph")
- }, 0]
- }
- }
- },
- enumerable: !1,
- configurable: !0
- }), n.prototype.italic = function() {
- return fc(bc, "*")
- }, n.prototype.commands = function() {
- return {
- italic: this.italic()
- }
- }, n.prototype.keymaps = function() {
- var e = this.italic()();
- return {
- "Mod-i": e,
- "Mod-I": e
- }
- }, n
- }(Al),
- kc = /^(`).*([\s\S]*)\1$/m,
- xc = function(e) {
- function n() {
- return null !== e && e.apply(this, arguments) || this
- }
- return t(n, e), Object.defineProperty(n.prototype, "name", {
- get: function() {
- return "code"
- },
- enumerable: !1,
- configurable: !0
- }), Object.defineProperty(n.prototype, "schema", {
- get: function() {
- return {
- attrs: {
- start: {
- default: !1
- },
- end: {
- default: !1
- },
- marked: {
- default: !1
- }
- },
- toDOM: function(e) {
- var t = e.attrs,
- n = "code";
- return t.start && (n += "|delimiter|start"), t.end && (n += "|delimiter|end"), t.marked && (n += "|marked-text"), ["span", {
- class: Ca.apply(void 0, n.split("|"))
- }, 0]
- }
- }
- },
- enumerable: !1,
- configurable: !0
- }), n.prototype.commands = function() {
- return fc(kc, "`")
- }, n.prototype.keymaps = function() {
- var e = this.commands()();
- return {
- "Shift-Mod-c": e,
- "Shift-Mod-C": e
- }
- }, n
- }(Al),
- Cc = function(e) {
- function n() {
- return null !== e && e.apply(this, arguments) || this
- }
- return t(n, e), Object.defineProperty(n.prototype, "name", {
- get: function() {
- return "link"
- },
- enumerable: !1,
- configurable: !0
- }), Object.defineProperty(n.prototype, "schema", {
- get: function() {
- return {
- attrs: {
- url: {
- default: !1
- },
- desc: {
- default: !1
- }
- },
- toDOM: function(e) {
- var t = e.attrs,
- n = "link";
- return t.url && (n += "|link-url|marked-text"), t.desc && (n += "|link-desc|marked-text"), ["span", {
- class: Ca.apply(void 0, n.split("|"))
- }, 0]
- }
- }
- },
- enumerable: !1,
- configurable: !0
- }), n.prototype.addLinkOrImage = function(e) {
- return function(t) {
- return function(n, r) {
- var o = n.selection,
- i = n.tr,
- s = n.schema,
- a = Ya(o),
- l = a[0],
- c = a[1],
- u = t,
- d = u.linkText,
- p = u.altText,
- h = u.linkUrl,
- f = u.imageUrl,
- m = d,
- g = h,
- v = "";
- return "image" === e && (m = p, g = f, v = "!"), v += "[" + (m = Ze(m)) + "](" + g + ")", r(i.replaceWith(l, c, Ns(s, v))), !0
- }
- }
- }, n.prototype.commands = function() {
- return {
- addImage: this.addLinkOrImage("image"),
- addLink: this.addLinkOrImage("link")
- }
- }, n
- }(Al),
- Tc = function(e) {
- function n() {
- return null !== e && e.apply(this, arguments) || this
- }
- return t(n, e), Object.defineProperty(n.prototype, "name", {
- get: function() {
- return "taskDelimiter"
- },
- enumerable: !1,
- configurable: !0
- }), Object.defineProperty(n.prototype, "schema", {
- get: function() {
- return {
- toDOM: function() {
- return ["span", {
- class: Ca("delimiter", "list-item")
- }, 0]
- }
- }
- },
- enumerable: !1,
- configurable: !0
- }), n
- }(Al),
- Mc = function(e) {
- function n() {
- return null !== e && e.apply(this, arguments) || this
- }
- return t(n, e), Object.defineProperty(n.prototype, "name", {
- get: function() {
- return "delimiter"
- },
- enumerable: !1,
- configurable: !0
- }), Object.defineProperty(n.prototype, "schema", {
- get: function() {
- return {
- toDOM: function() {
- return ["span", {
- class: Ca("delimiter")
- }, 0]
- }
- }
- },
- enumerable: !1,
- configurable: !0
- }), n
- }(Al),
- Sc = function(e) {
- function n() {
- return null !== e && e.apply(this, arguments) || this
- }
- return t(n, e), Object.defineProperty(n.prototype, "name", {
- get: function() {
- return "meta"
- },
- enumerable: !1,
- configurable: !0
- }), Object.defineProperty(n.prototype, "schema", {
- get: function() {
- return {
- toDOM: function() {
- return ["span", {
- class: Ca("meta")
- }, 0]
- }
- }
- },
- enumerable: !1,
- configurable: !0
- }), n
- }(Al),
- Ec = function(e) {
- function n() {
- return null !== e && e.apply(this, arguments) || this
- }
- return t(n, e), Object.defineProperty(n.prototype, "name", {
- get: function() {
- return "markedText"
- },
- enumerable: !1,
- configurable: !0
- }), Object.defineProperty(n.prototype, "schema", {
- get: function() {
- return {
- toDOM: function() {
- return ["span", {
- class: Ca("marked-text")
- }, 0]
- }
- }
- },
- enumerable: !1,
- configurable: !0
- }), n
- }(Al),
- Nc = function(e) {
- function n() {
- return null !== e && e.apply(this, arguments) || this
- }
- return t(n, e), Object.defineProperty(n.prototype, "name", {
- get: function() {
- return "tableCell"
- },
- enumerable: !1,
- configurable: !0
- }), Object.defineProperty(n.prototype, "schema", {
- get: function() {
- return {
- toDOM: function() {
- return ["span", {
- class: Ca("table-cell")
- }, 0]
- }
- }
- },
- enumerable: !1,
- configurable: !0
- }), n
- }(Al),
- Oc = function(e) {
- function n() {
- return null !== e && e.apply(this, arguments) || this
- }
- return t(n, e), Object.defineProperty(n.prototype, "name", {
- get: function() {
- return "html"
- },
- enumerable: !1,
- configurable: !0
- }), Object.defineProperty(n.prototype, "schema", {
- get: function() {
- return {
- toDOM: function() {
- return ["span", {
- class: Ca("html")
- }, 0]
- }
- }
- },
- enumerable: !1,
- configurable: !0
- }), n
- }(Al),
- Dc = "$$",
- Ac = function(e) {
- function n() {
- return null !== e && e.apply(this, arguments) || this
- }
- return t(n, e), Object.defineProperty(n.prototype, "name", {
- get: function() {
- return "customBlock"
- },
- enumerable: !1,
- configurable: !0
- }), Object.defineProperty(n.prototype, "schema", {
- get: function() {
- return {
- toDOM: function() {
- return ["span", {
- class: Ca("custom-block")
- }, 0]
- }
- }
- },
- enumerable: !1,
- configurable: !0
- }), n.prototype.commands = function() {
- return function(e) {
- return function(t, n) {
- var r = t.selection,
- o = t.schema,
- i = t.tr,
- s = il(r),
- a = s.startFromOffset,
- l = s.endToOffset;
- if (!(null == e ? void 0 : e.info)) return !1;
- var c = "$$" + e.info,
- u = Ns(o, c),
- d = Ns(o, Dc);
- return i.insert(a, u).split(a + c.length), i.split(i.mapping.map(l)).insert(i.mapping.map(l), d), n(i.setSelection(Os(i, i.mapping.map(l) - (Dc.length + 2)))), !0
- }
- }
- }, n
- }(Al),
- Lc = /x|backspace/i,
- Ic = /^\[(\s*)(x?)(\s*)\](?:\s+)/i;
- var Rc = "cut",
- Pc = /\r\n|\n|\r/,
- Bc = function(e) {
- function n(t, n) {
- var r = e.call(this, t) || this,
- i = n.toastMark,
- s = n.useCommandShortcut,
- a = void 0 === s || s,
- l = n.mdPlugins,
- c = void 0 === l ? [] : l;
- return r.editorType = "markdown", r.el.classList.add("md-mode"), r.toastMark = i, r.extraPlugins = c, r.specs = r.createSpecs(), r.schema = r.createSchema(), r.context = r.createContext(), r.keymaps = r.createKeymaps(a), r.view = r.createView(), r.commands = r.createCommands(), r.specs.setContext(o(o({}, r.context), {
- view: r.view
- })), r.createClipboard(), r.eventEmitter.listen("changePreviewTabWrite", (function(e) {
- return r.toggleActive(!0, e)
- })), r.eventEmitter.listen("changePreviewTabPreview", (function() {
- return r.toggleActive(!1)
- })), r.initEvent(), r
- }
- return t(n, e), n.prototype.toggleActive = function(e, t) {
- Sa(this.el, "active", e), e ? t || this.focus() : this.blur()
- }, n.prototype.createClipboard = function() {
- var e = this;
- this.clipboard = document.createElement("textarea"), this.clipboard.className = xa("pseudo-clipboard"), this.clipboard.addEventListener("paste", (function(t) {
- var n = t.clipboardData || window.clipboardData,
- r = n && n.items;
- if (r) {
- var o = vi()(r).some((function(e) {
- return "string" === e.kind && "text/rtf" === e.type
- }));
- if (!o) {
- var i = za(r);
- i && (t.preventDefault(), Ha(e.eventEmitter, i, t.type))
- }
- }
- })), this.clipboard.addEventListener("input", (function(t) {
- var n = t.target.value;
- e.replaceSelection(n), t.preventDefault(), t.target.value = ""
- })), this.el.insertBefore(this.clipboard, this.view.dom)
- }, n.prototype.createContext = function() {
- return {
- toastMark: this.toastMark,
- schema: this.schema,
- eventEmitter: this.eventEmitter
- }
- }, n.prototype.createSpecs = function() {
- return new Qa([new Ol, new nc, new _a, new rc, new ic, new Pl, new ac, new Ac, new uc, new Nc, new dc, new hc, new gc, new yc, new wc, new xc, new Cc, new Mc, new Tc, new Ec, new Sc, new Oc])
- }, n.prototype.createPlugins = function() {
- return i([Cl(this.context), Nl(this.context), (e = this.context, t = e.schema, n = e.toastMark, new an({
- props: {
- handleDOMEvents: {
- keyup: function(e, r) {
- var o, i = e.state,
- s = i.doc,
- a = i.tr,
- l = i.selection;
- if (l.empty && Lc.test(r.key)) {
- var c = il(l),
- u = c.startIndex,
- d = c.startFromOffset,
- p = [u + 1, c.from - d + 1],
- h = js(n.findNodeAtPosition(p), (function(e) {
- var t;
- return "paragraph" === e.type && "item" === (null === (t = e.parent) || void 0 === t ? void 0 : t.type)
- }));
- if (null === (o = null == h ? void 0 : h.firstChild) || void 0 === o ? void 0 : o.literal) {
- var f = h.firstChild,
- m = f.literal.match(Ic);
- if (m) {
- var g = f.sourcepos[0],
- v = m[1],
- y = m[2],
- b = m[3],
- w = v.length + b.length,
- k = sl(s, g[0] - 1).startOffset,
- x = g[1] + k;
- if (y) {
- var C = w ? w + 1 : 0;
- a.replaceWith(x, C + x, t.text(y)), e.dispatch(a)
- } else w || (a.insertText(" ", x), e.dispatch(a))
- }
- }
- }
- return !1
- }
- }
- }
- }))], this.createPluginProps()).concat(this.defaultPlugins);
- var e, t, n
- }, n.prototype.createView = function() {
- var e = this;
- return new ui(this.el, {
- state: this.createState(),
- dispatchTransaction: function(t) {
- e.updateMarkdown(t);
- var n = e.view.state.applyTransaction(t).state;
- e.view.updateState(n), e.emitChangeEvent(t)
- },
- handleKeyDown: function(t, n) {
- return (n.metaKey || n.ctrlKey) && "V" === n.key.toUpperCase() && e.clipboard.focus(), e.eventEmitter.emit("keydown", e.editorType, n), !1
- },
- handleDOMEvents: {
- copy: function(t, n) {
- return e.captureCopy(n)
- },
- cut: function(t, n) {
- return e.captureCopy(n, Rc)
- },
- scroll: function() {
- return e.eventEmitter.emit("scroll", "editor"), !0
- },
- keyup: function(t, n) {
- return e.eventEmitter.emit("keyup", e.editorType, n), !1
- }
- },
- nodeViews: {
- widget: ja
- }
- })
- }, n.prototype.createCommands = function() {
- return this.specs.commands(this.view)
- }, n.prototype.captureCopy = function(e, t) {
- e.preventDefault();
- var n = this.view.state,
- r = n.selection,
- o = n.tr;
- if (r.empty) return !0;
- var i = this.getChanged(r.content());
- return e.clipboardData ? e.clipboardData.setData("text/plain", i) : window.clipboardData.setData("Text", i), t === Rc && this.view.dispatch(o.deleteSelection().scrollIntoView().setMeta("uiEvent", Rc)), !0
- }, n.prototype.updateMarkdown = function(e) {
- var t = this;
- e.docChanged && e.steps.forEach((function(n, r) {
- if (n.slice && !(n instanceof wt)) {
- var o = e.docs[r],
- i = [n.from, n.to],
- s = nl(o, i[0], i[1]),
- a = s[0],
- l = s[1],
- c = t.getChanged(n.slice);
- a[0] === l[0] && a[1] === l[1] && "" === c && (c = "\n");
- var u = t.toastMark.editMarkdown(a, l, c);
- t.eventEmitter.emit("updatePreview", u), e.setMeta("editResult", u).scrollIntoView()
- }
- }))
- }, n.prototype.getChanged = function(e) {
- var t = "",
- n = e.content.size;
- return e.content.nodesBetween(0, n, (function(e, r) {
- e.isText ? t += e.text.slice(Math.max(0, r) - r, n - r) : e.isBlock && r > 0 && (t += "\n")
- })), t
- }, n.prototype.setSelection = function(e, t) {
- void 0 === t && (t = e);
- var n = this.view.state.tr,
- r = ol(n.doc, e, t),
- o = r[0],
- i = r[1];
- this.view.dispatch(n.setSelection(Os(n, o, i)).scrollIntoView())
- }, n.prototype.replaceSelection = function(e, t, n) {
- var r, o = this.view.state,
- i = o.tr,
- s = o.schema,
- a = o.doc,
- l = e.split(Pc).map((function(e) {
- return Es(s, ra(e, s))
- })),
- c = new v(d.from(l), 1, 1);
- if (this.focus(), t && n) {
- var u = ol(a, t, n),
- p = u[0],
- h = u[1];
- r = i.replaceRange(p, h, c)
- } else r = i.replaceSelection(c);
- this.view.dispatch(r.scrollIntoView())
- }, n.prototype.deleteSelection = function(e, t) {
- var n, r = this.view.state,
- o = r.tr,
- i = r.doc;
- if (e && t) {
- var s = ol(i, e, t),
- a = s[0],
- l = s[1];
- n = o.deleteRange(a, l)
- } else n = o.deleteSelection();
- this.view.dispatch(n.scrollIntoView())
- }, n.prototype.getSelectedText = function(e, t) {
- var n = this.view.state,
- r = n.doc,
- o = n.selection,
- i = o.from,
- s = o.to;
- if (e && t) {
- var a = ol(r, e, t);
- i = a[0], s = a[1]
- }
- return r.textBetween(i, s, "\n")
- }, n.prototype.getSelection = function() {
- var e = this.view.state.selection,
- t = e.from,
- n = e.to;
- return nl(this.view.state.tr.doc, t, n)
- }, n.prototype.setMarkdown = function(e, t) {
- void 0 === t && (t = !0);
- var n = e.split(Pc),
- r = this.view.state,
- o = r.tr,
- i = r.doc,
- s = r.schema,
- a = n.map((function(e) {
- return Es(s, ra(e, s))
- }));
- this.view.dispatch(o.replaceWith(0, i.content.size, a)), t && this.moveCursorToEnd(!0)
- }, n.prototype.addWidget = function(e, t, n) {
- var r = this.view.state,
- o = r.tr,
- i = r.doc,
- s = r.selection,
- a = n ? ol(i, n, n)[0] : s.to;
- this.view.dispatch(o.setMeta("widget", {
- pos: a,
- node: e,
- style: t
- }))
- }, n.prototype.replaceWithWidget = function(e, t, n) {
- var r = this.view.state,
- o = r.tr,
- i = r.schema,
- s = ol(r.doc, e, t),
- a = ra(n, i);
- this.view.dispatch(o.replaceWith(s[0], s[1], a))
- }, n.prototype.getRangeInfoOfNode = function(e) {
- var t = this.view.state,
- n = t.doc,
- r = t.selection,
- o = e || nl(n, r.from)[0],
- i = this.toastMark.findNodeAtPosition(o);
- return "text" === i.type && "paragraph" !== i.parent.type && (i = i.parent), i.sourcepos[1][1] += 1, {
- range: i.sourcepos,
- type: i.type
- }
- }, n.prototype.getMarkdown = function() {
- return this.toastMark.getLineTexts().map((function(e) {
- return Xs(e)
- })).join("\n")
- }, n.prototype.getToastMark = function() {
- return this.toastMark
- }, n
- }(Wa),
- Fc = Bc,
- Hc = n(349),
- zc = n.n(Hc),
- qc = n(348),
- Vc = n.n(qc),
- jc = function(e, t) {
- return jc = Object.setPrototypeOf || {
- __proto__: []
- }
- instanceof Array && function(e, t) {
- e.__proto__ = t
- } || function(e, t) {
- for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n])
- }, jc(e, t)
- };
-
- function $c(e, t) {
- if ("function" != typeof t && null !== t) throw new TypeError("Class extends value " + String(t) + " is not a constructor or null");
-
- function n() {
- this.constructor = e
- }
- jc(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
- }
- var _c = function() {
- return _c = Object.assign || function(e) {
- for (var t, n = 1, r = arguments.length; n < r; n++)
- for (var o in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, o) && (e[o] = t[o]);
- return e
- }, _c.apply(this, arguments)
- };
-
- function Uc(e, t, n) {
- if (n || 2 === arguments.length)
- for (var r, o = 0, i = t.length; o < i; o++) !r && o in t || (r || (r = Array.prototype.slice.call(t, 0, o)), r[o] = t[o]);
- return e.concat(r || Array.prototype.slice.call(t))
- }
- var Wc = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof window ? window : void 0 !== n.g ? n.g : "undefined" != typeof self ? self : {},
- Jc = {};
-
- function Gc(e, t, n) {
- var r, o, i, s, a, l = "";
- for ("string" != typeof t && (n = t, t = Gc.defaultChars), void 0 === n && (n = !0), a = function(e) {
- var t, n, r = Jc[e];
- if (r) return r;
- for (r = Jc[e] = [], t = 0; t < 128; t++) n = String.fromCharCode(t), /^[0-9a-z]$/i.test(n) ? r.push(n) : r.push("%" + ("0" + t.toString(16).toUpperCase()).slice(-2));
- for (t = 0; t < e.length; t++) r[e.charCodeAt(t)] = e[t];
- return r
- }(t), r = 0, o = e.length; r < o; r++)
- if (i = e.charCodeAt(r), n && 37 === i && r + 2 < o && /^[0-9a-f]{2}$/i.test(e.slice(r + 1, r + 3))) l += e.slice(r, r + 3), r += 2;
- else if (i < 128) l += a[i];
- else if (i >= 55296 && i <= 57343) {
- if (i >= 55296 && i <= 56319 && r + 1 < o && (s = e.charCodeAt(r + 1)) >= 56320 && s <= 57343) {
- l += encodeURIComponent(e[r] + e[r + 1]), r++;
- continue
- }
- l += "%EF%BF%BD"
- } else l += encodeURIComponent(e[r]);
- return l
- }
- Gc.defaultChars = ";/?:@&=+$,-_.!~*'()#", Gc.componentChars = "-_.!~*'()";
- var Kc = Gc,
- Zc = {},
- Xc = {},
- Qc = {
- Aacute: "Ã",
- aacute: "á",
- Abreve: "Ä‚",
- abreve: "ă",
- ac: "∾",
- acd: "∿",
- acE: "∾̳",
- Acirc: "Â",
- acirc: "â",
- acute: "´",
- Acy: "Ð",
- acy: "а",
- AElig: "Æ",
- aelig: "æ",
- af: "â¡",
- Afr: "ð”„",
- afr: "ð”ž",
- Agrave: "À",
- agrave: "Ã ",
- alefsym: "ℵ",
- aleph: "ℵ",
- Alpha: "Α",
- alpha: "α",
- Amacr: "Ä€",
- amacr: "Ä",
- amalg: "⨿",
- amp: "&",
- AMP: "&",
- andand: "â©•",
- And: "â©“",
- and: "∧",
- andd: "⩜",
- andslope: "⩘",
- andv: "⩚",
- ang: "∠",
- ange: "⦤",
- angle: "∠",
- angmsdaa: "⦨",
- angmsdab: "⦩",
- angmsdac: "⦪",
- angmsdad: "⦫",
- angmsdae: "⦬",
- angmsdaf: "â¦",
- angmsdag: "⦮",
- angmsdah: "⦯",
- angmsd: "∡",
- angrt: "∟",
- angrtvb: "⊾",
- angrtvbd: "â¦",
- angsph: "∢",
- angst: "Ã…",
- angzarr: "â¼",
- Aogon: "Ä„",
- aogon: "Ä…",
- Aopf: "ð”¸",
- aopf: "ð•’",
- apacir: "⩯",
- ap: "≈",
- apE: "â©°",
- ape: "≊",
- apid: "≋",
- apos: "'",
- ApplyFunction: "â¡",
- approx: "≈",
- approxeq: "≊",
- Aring: "Ã…",
- aring: "Ã¥",
- Ascr: "ð’œ",
- ascr: "ð’¶",
- Assign: "≔",
- ast: "*",
- asymp: "≈",
- asympeq: "â‰",
- Atilde: "Ã",
- atilde: "ã",
- Auml: "Ä",
- auml: "ä",
- awconint: "∳",
- awint: "⨑",
- backcong: "≌",
- backepsilon: "϶",
- backprime: "‵",
- backsim: "∽",
- backsimeq: "â‹",
- Backslash: "∖",
- Barv: "â«§",
- barvee: "⊽",
- barwed: "⌅",
- Barwed: "⌆",
- barwedge: "⌅",
- bbrk: "⎵",
- bbrktbrk: "⎶",
- bcong: "≌",
- Bcy: "Б",
- bcy: "б",
- bdquo: "„",
- becaus: "∵",
- because: "∵",
- Because: "∵",
- bemptyv: "⦰",
- bepsi: "϶",
- bernou: "ℬ",
- Bernoullis: "ℬ",
- Beta: "Î’",
- beta: "β",
- beth: "â„¶",
- between: "≬",
- Bfr: "ð”…",
- bfr: "ð”Ÿ",
- bigcap: "â‹‚",
- bigcirc: "â—¯",
- bigcup: "⋃",
- bigodot: "⨀",
- bigoplus: "â¨",
- bigotimes: "⨂",
- bigsqcup: "⨆",
- bigstar: "★",
- bigtriangledown: "â–½",
- bigtriangleup: "â–³",
- biguplus: "⨄",
- bigvee: "â‹",
- bigwedge: "â‹€",
- bkarow: "â¤",
- blacklozenge: "â§«",
- blacksquare: "â–ª",
- blacktriangle: "â–´",
- blacktriangledown: "â–¾",
- blacktriangleleft: "â—‚",
- blacktriangleright: "â–¸",
- blank: "â£",
- blk12: "â–’",
- blk14: "â–‘",
- blk34: "â–“",
- block: "â–ˆ",
- bne: "=⃥",
- bnequiv: "≡⃥",
- bNot: "â«",
- bnot: "âŒ",
- Bopf: "ð”¹",
- bopf: "ð•“",
- bot: "⊥",
- bottom: "⊥",
- bowtie: "⋈",
- boxbox: "⧉",
- boxdl: "â”",
- boxdL: "â••",
- boxDl: "â•–",
- boxDL: "â•—",
- boxdr: "┌",
- boxdR: "â•’",
- boxDr: "â•“",
- boxDR: "â•”",
- boxh: "─",
- boxH: "â•",
- boxhd: "┬",
- boxHd: "╤",
- boxhD: "â•¥",
- boxHD: "╦",
- boxhu: "â”´",
- boxHu: "â•§",
- boxhU: "╨",
- boxHU: "â•©",
- boxminus: "⊟",
- boxplus: "⊞",
- boxtimes: "⊠",
- boxul: "┘",
- boxuL: "â•›",
- boxUl: "╜",
- boxUL: "â•",
- boxur: "â””",
- boxuR: "╘",
- boxUr: "â•™",
- boxUR: "╚",
- boxv: "│",
- boxV: "â•‘",
- boxvh: "┼",
- boxvH: "╪",
- boxVh: "â•«",
- boxVH: "╬",
- boxvl: "┤",
- boxvL: "â•¡",
- boxVl: "â•¢",
- boxVL: "â•£",
- boxvr: "├",
- boxvR: "╞",
- boxVr: "╟",
- boxVR: "â• ",
- bprime: "‵",
- breve: "˘",
- Breve: "˘",
- brvbar: "¦",
- bscr: "ð’·",
- Bscr: "ℬ",
- bsemi: "â",
- bsim: "∽",
- bsime: "â‹",
- bsolb: "â§…",
- bsol: "\\",
- bsolhsub: "⟈",
- bull: "•",
- bullet: "•",
- bump: "≎",
- bumpE: "⪮",
- bumpe: "â‰",
- Bumpeq: "≎",
- bumpeq: "â‰",
- Cacute: "Ć",
- cacute: "ć",
- capand: "â©„",
- capbrcup: "⩉",
- capcap: "â©‹",
- cap: "∩",
- Cap: "â‹’",
- capcup: "⩇",
- capdot: "â©€",
- CapitalDifferentialD: "â……",
- caps: "∩︀",
- caret: "â",
- caron: "ˇ",
- Cayleys: "â„",
- ccaps: "â©",
- Ccaron: "Č",
- ccaron: "Ä",
- Ccedil: "Ç",
- ccedil: "ç",
- Ccirc: "Ĉ",
- ccirc: "ĉ",
- Cconint: "∰",
- ccups: "⩌",
- ccupssm: "â©",
- Cdot: "ÄŠ",
- cdot: "Ä‹",
- cedil: "¸",
- Cedilla: "¸",
- cemptyv: "⦲",
- cent: "¢",
- centerdot: "·",
- CenterDot: "·",
- cfr: "ð” ",
- Cfr: "â„",
- CHcy: "Ч",
- chcy: "ч",
- check: "✓",
- checkmark: "✓",
- Chi: "Χ",
- chi: "χ",
- circ: "ˆ",
- circeq: "≗",
- circlearrowleft: "↺",
- circlearrowright: "↻",
- circledast: "⊛",
- circledcirc: "⊚",
- circleddash: "âŠ",
- CircleDot: "⊙",
- circledR: "®",
- circledS: "Ⓢ",
- CircleMinus: "⊖",
- CirclePlus: "⊕",
- CircleTimes: "⊗",
- cir: "â—‹",
- cirE: "⧃",
- cire: "≗",
- cirfnint: "â¨",
- cirmid: "⫯",
- cirscir: "â§‚",
- ClockwiseContourIntegral: "∲",
- CloseCurlyDoubleQuote: "â€",
- CloseCurlyQuote: "’",
- clubs: "♣",
- clubsuit: "♣",
- colon: ":",
- Colon: "∷",
- Colone: "â©´",
- colone: "≔",
- coloneq: "≔",
- comma: ",",
- commat: "@",
- comp: "âˆ",
- compfn: "∘",
- complement: "âˆ",
- complexes: "â„‚",
- cong: "≅",
- congdot: "â©",
- Congruent: "≡",
- conint: "∮",
- Conint: "∯",
- ContourIntegral: "∮",
- copf: "ð•”",
- Copf: "â„‚",
- coprod: "âˆ",
- Coproduct: "âˆ",
- copy: "©",
- COPY: "©",
- copysr: "â„—",
- CounterClockwiseContourIntegral: "∳",
- crarr: "↵",
- cross: "✗",
- Cross: "⨯",
- Cscr: "ð’ž",
- cscr: "ð’¸",
- csub: "â«",
- csube: "â«‘",
- csup: "â«",
- csupe: "â«’",
- ctdot: "⋯",
- cudarrl: "⤸",
- cudarrr: "⤵",
- cuepr: "⋞",
- cuesc: "⋟",
- cularr: "↶",
- cularrp: "⤽",
- cupbrcap: "⩈",
- cupcap: "⩆",
- CupCap: "â‰",
- cup: "∪",
- Cup: "â‹“",
- cupcup: "⩊",
- cupdot: "âŠ",
- cupor: "â©…",
- cups: "∪︀",
- curarr: "↷",
- curarrm: "⤼",
- curlyeqprec: "⋞",
- curlyeqsucc: "⋟",
- curlyvee: "⋎",
- curlywedge: "â‹",
- curren: "¤",
- curvearrowleft: "↶",
- curvearrowright: "↷",
- cuvee: "⋎",
- cuwed: "â‹",
- cwconint: "∲",
- cwint: "∱",
- cylcty: "âŒ",
- dagger: "†",
- Dagger: "‡",
- daleth: "ℸ",
- darr: "↓",
- Darr: "↡",
- dArr: "⇓",
- dash: "â€",
- Dashv: "⫤",
- dashv: "⊣",
- dbkarow: "â¤",
- dblac: "Ë",
- Dcaron: "ÄŽ",
- dcaron: "Ä",
- Dcy: "Д",
- dcy: "д",
- ddagger: "‡",
- ddarr: "⇊",
- DD: "â……",
- dd: "â…†",
- DDotrahd: "⤑",
- ddotseq: "â©·",
- deg: "°",
- Del: "∇",
- Delta: "Δ",
- delta: "δ",
- demptyv: "⦱",
- dfisht: "⥿",
- Dfr: "ð”‡",
- dfr: "ð”¡",
- dHar: "⥥",
- dharl: "⇃",
- dharr: "⇂",
- DiacriticalAcute: "´",
- DiacriticalDot: "Ë™",
- DiacriticalDoubleAcute: "Ë",
- DiacriticalGrave: "`",
- DiacriticalTilde: "˜",
- diam: "â‹„",
- diamond: "â‹„",
- Diamond: "â‹„",
- diamondsuit: "♦",
- diams: "♦",
- die: "¨",
- DifferentialD: "â…†",
- digamma: "Ï",
- disin: "⋲",
- div: "÷",
- divide: "÷",
- divideontimes: "⋇",
- divonx: "⋇",
- DJcy: "Ђ",
- djcy: "Ñ’",
- dlcorn: "⌞",
- dlcrop: "âŒ",
- dollar: "$",
- Dopf: "ð”»",
- dopf: "ð••",
- Dot: "¨",
- dot: "Ë™",
- DotDot: "⃜",
- doteq: "â‰",
- doteqdot: "≑",
- DotEqual: "â‰",
- dotminus: "∸",
- dotplus: "∔",
- dotsquare: "⊡",
- doublebarwedge: "⌆",
- DoubleContourIntegral: "∯",
- DoubleDot: "¨",
- DoubleDownArrow: "⇓",
- DoubleLeftArrow: "â‡",
- DoubleLeftRightArrow: "⇔",
- DoubleLeftTee: "⫤",
- DoubleLongLeftArrow: "⟸",
- DoubleLongLeftRightArrow: "⟺",
- DoubleLongRightArrow: "⟹",
- DoubleRightArrow: "⇒",
- DoubleRightTee: "⊨",
- DoubleUpArrow: "⇑",
- DoubleUpDownArrow: "⇕",
- DoubleVerticalBar: "∥",
- DownArrowBar: "⤓",
- downarrow: "↓",
- DownArrow: "↓",
- Downarrow: "⇓",
- DownArrowUpArrow: "⇵",
- DownBreve: "Ì‘",
- downdownarrows: "⇊",
- downharpoonleft: "⇃",
- downharpoonright: "⇂",
- DownLeftRightVector: "â¥",
- DownLeftTeeVector: "⥞",
- DownLeftVectorBar: "⥖",
- DownLeftVector: "↽",
- DownRightTeeVector: "⥟",
- DownRightVectorBar: "⥗",
- DownRightVector: "â‡",
- DownTeeArrow: "↧",
- DownTee: "⊤",
- drbkarow: "â¤",
- drcorn: "⌟",
- drcrop: "⌌",
- Dscr: "ð’Ÿ",
- dscr: "ð’¹",
- DScy: "Ð…",
- dscy: "Ñ•",
- dsol: "â§¶",
- Dstrok: "Ä",
- dstrok: "Ä‘",
- dtdot: "⋱",
- dtri: "â–¿",
- dtrif: "â–¾",
- duarr: "⇵",
- duhar: "⥯",
- dwangle: "⦦",
- DZcy: "Ð",
- dzcy: "ÑŸ",
- dzigrarr: "⟿",
- Eacute: "É",
- eacute: "é",
- easter: "â©®",
- Ecaron: "Äš",
- ecaron: "Ä›",
- Ecirc: "Ê",
- ecirc: "ê",
- ecir: "≖",
- ecolon: "≕",
- Ecy: "Ð",
- ecy: "Ñ",
- eDDot: "â©·",
- Edot: "Ä–",
- edot: "Ä—",
- eDot: "≑",
- ee: "â…‡",
- efDot: "≒",
- Efr: "ð”ˆ",
- efr: "ð”¢",
- eg: "⪚",
- Egrave: "È",
- egrave: "è",
- egs: "⪖",
- egsdot: "⪘",
- el: "⪙",
- Element: "∈",
- elinters: "â§",
- ell: "â„“",
- els: "⪕",
- elsdot: "⪗",
- Emacr: "Ä’",
- emacr: "Ä“",
- empty: "∅",
- emptyset: "∅",
- EmptySmallSquare: "â—»",
- emptyv: "∅",
- EmptyVerySmallSquare: "â–«",
- emsp13: " ",
- emsp14: " ",
- emsp: " ",
- ENG: "ÅŠ",
- eng: "Å‹",
- ensp: " ",
- Eogon: "Ę",
- eogon: "Ä™",
- Eopf: "ð”¼",
- eopf: "ð•–",
- epar: "â‹•",
- eparsl: "â§£",
- eplus: "⩱",
- epsi: "ε",
- Epsilon: "Ε",
- epsilon: "ε",
- epsiv: "ϵ",
- eqcirc: "≖",
- eqcolon: "≕",
- eqsim: "≂",
- eqslantgtr: "⪖",
- eqslantless: "⪕",
- Equal: "⩵",
- equals: "=",
- EqualTilde: "≂",
- equest: "≟",
- Equilibrium: "⇌",
- equiv: "≡",
- equivDD: "⩸",
- eqvparsl: "â§¥",
- erarr: "⥱",
- erDot: "≓",
- escr: "ℯ",
- Escr: "â„°",
- esdot: "â‰",
- Esim: "⩳",
- esim: "≂",
- Eta: "Η",
- eta: "η",
- ETH: "Ã",
- eth: "ð",
- Euml: "Ë",
- euml: "ë",
- euro: "€",
- excl: "!",
- exist: "∃",
- Exists: "∃",
- expectation: "â„°",
- exponentiale: "â…‡",
- ExponentialE: "â…‡",
- fallingdotseq: "≒",
- Fcy: "Ф",
- fcy: "Ñ„",
- female: "♀",
- ffilig: "ffi",
- fflig: "ff",
- ffllig: "ffl",
- Ffr: "ð”‰",
- ffr: "ð”£",
- filig: "ï¬",
- FilledSmallSquare: "â—¼",
- FilledVerySmallSquare: "â–ª",
- fjlig: "fj",
- flat: "â™",
- fllig: "fl",
- fltns: "â–±",
- fnof: "Æ’",
- Fopf: "ð”½",
- fopf: "ð•—",
- forall: "∀",
- ForAll: "∀",
- fork: "â‹”",
- forkv: "â«™",
- Fouriertrf: "ℱ",
- fpartint: "â¨",
- frac12: "½",
- frac13: "â…“",
- frac14: "¼",
- frac15: "â…•",
- frac16: "â…™",
- frac18: "â…›",
- frac23: "â…”",
- frac25: "â…–",
- frac34: "¾",
- frac35: "â…—",
- frac38: "⅜",
- frac45: "â…˜",
- frac56: "â…š",
- frac58: "â…",
- frac78: "â…ž",
- frasl: "â„",
- frown: "⌢",
- fscr: "ð’»",
- Fscr: "ℱ",
- gacute: "ǵ",
- Gamma: "Γ",
- gamma: "γ",
- Gammad: "Ϝ",
- gammad: "Ï",
- gap: "⪆",
- Gbreve: "Äž",
- gbreve: "ÄŸ",
- Gcedil: "Ä¢",
- Gcirc: "Ĝ",
- gcirc: "Ä",
- Gcy: "Г",
- gcy: "г",
- Gdot: "Ä ",
- gdot: "Ä¡",
- ge: "≥",
- gE: "≧",
- gEl: "⪌",
- gel: "â‹›",
- geq: "≥",
- geqq: "≧",
- geqslant: "⩾",
- gescc: "⪩",
- ges: "⩾",
- gesdot: "⪀",
- gesdoto: "⪂",
- gesdotol: "⪄",
- gesl: "⋛︀",
- gesles: "⪔",
- Gfr: "ð”Š",
- gfr: "ð”¤",
- gg: "≫",
- Gg: "â‹™",
- ggg: "â‹™",
- gimel: "â„·",
- GJcy: "Ѓ",
- gjcy: "Ñ“",
- gla: "⪥",
- gl: "≷",
- glE: "⪒",
- glj: "⪤",
- gnap: "⪊",
- gnapprox: "⪊",
- gne: "⪈",
- gnE: "≩",
- gneq: "⪈",
- gneqq: "≩",
- gnsim: "â‹§",
- Gopf: "ð”¾",
- gopf: "ð•˜",
- grave: "`",
- GreaterEqual: "≥",
- GreaterEqualLess: "â‹›",
- GreaterFullEqual: "≧",
- GreaterGreater: "⪢",
- GreaterLess: "≷",
- GreaterSlantEqual: "⩾",
- GreaterTilde: "≳",
- Gscr: "ð’¢",
- gscr: "ℊ",
- gsim: "≳",
- gsime: "⪎",
- gsiml: "âª",
- gtcc: "⪧",
- gtcir: "⩺",
- gt: ">",
- GT: ">",
- Gt: "≫",
- gtdot: "â‹—",
- gtlPar: "⦕",
- gtquest: "⩼",
- gtrapprox: "⪆",
- gtrarr: "⥸",
- gtrdot: "â‹—",
- gtreqless: "â‹›",
- gtreqqless: "⪌",
- gtrless: "≷",
- gtrsim: "≳",
- gvertneqq: "≩︀",
- gvnE: "≩︀",
- Hacek: "ˇ",
- hairsp: " ",
- half: "½",
- hamilt: "â„‹",
- HARDcy: "Ъ",
- hardcy: "ÑŠ",
- harrcir: "⥈",
- harr: "↔",
- hArr: "⇔",
- harrw: "â†",
- Hat: "^",
- hbar: "â„",
- Hcirc: "Ĥ",
- hcirc: "Ä¥",
- hearts: "♥",
- heartsuit: "♥",
- hellip: "…",
- hercon: "⊹",
- hfr: "ð”¥",
- Hfr: "ℌ",
- HilbertSpace: "â„‹",
- hksearow: "⤥",
- hkswarow: "⤦",
- hoarr: "⇿",
- homtht: "∻",
- hookleftarrow: "↩",
- hookrightarrow: "↪",
- hopf: "ð•™",
- Hopf: "â„",
- horbar: "―",
- HorizontalLine: "─",
- hscr: "ð’½",
- Hscr: "â„‹",
- hslash: "â„",
- Hstrok: "Ħ",
- hstrok: "ħ",
- HumpDownHump: "≎",
- HumpEqual: "â‰",
- hybull: "âƒ",
- hyphen: "â€",
- Iacute: "Ã",
- iacute: "Ã",
- ic: "â£",
- Icirc: "ÃŽ",
- icirc: "î",
- Icy: "И",
- icy: "и",
- Idot: "İ",
- IEcy: "Е",
- iecy: "е",
- iexcl: "¡",
- iff: "⇔",
- ifr: "ð”¦",
- Ifr: "â„‘",
- Igrave: "Ì",
- igrave: "ì",
- ii: "â…ˆ",
- iiiint: "⨌",
- iiint: "âˆ",
- iinfin: "⧜",
- iiota: "â„©",
- IJlig: "IJ",
- ijlig: "ij",
- Imacr: "Ī",
- imacr: "Ä«",
- image: "â„‘",
- ImaginaryI: "â…ˆ",
- imagline: "â„",
- imagpart: "â„‘",
- imath: "ı",
- Im: "â„‘",
- imof: "⊷",
- imped: "Ƶ",
- Implies: "⇒",
- incare: "â„…",
- in: "∈",
- infin: "∞",
- infintie: "â§",
- inodot: "ı",
- intcal: "⊺",
- int: "∫",
- Int: "∬",
- integers: "ℤ",
- Integral: "∫",
- intercal: "⊺",
- Intersection: "â‹‚",
- intlarhk: "⨗",
- intprod: "⨼",
- InvisibleComma: "â£",
- InvisibleTimes: "â¢",
- IOcy: "Ð",
- iocy: "Ñ‘",
- Iogon: "Ä®",
- iogon: "į",
- Iopf: "ð•€",
- iopf: "ð•š",
- Iota: "Ι",
- iota: "ι",
- iprod: "⨼",
- iquest: "¿",
- iscr: "ð’¾",
- Iscr: "â„",
- isin: "∈",
- isindot: "⋵",
- isinE: "⋹",
- isins: "â‹´",
- isinsv: "⋳",
- isinv: "∈",
- it: "â¢",
- Itilde: "Ĩ",
- itilde: "Ä©",
- Iukcy: "І",
- iukcy: "Ñ–",
- Iuml: "Ã",
- iuml: "ï",
- Jcirc: "Ä´",
- jcirc: "ĵ",
- Jcy: "Й",
- jcy: "й",
- Jfr: "ð”",
- jfr: "ð”§",
- jmath: "È·",
- Jopf: "ð•",
- jopf: "ð•›",
- Jscr: "ð’¥",
- jscr: "ð’¿",
- Jsercy: "Ј",
- jsercy: "ј",
- Jukcy: "Є",
- jukcy: "Ñ”",
- Kappa: "Κ",
- kappa: "κ",
- kappav: "ϰ",
- Kcedil: "Ķ",
- kcedil: "Ä·",
- Kcy: "К",
- kcy: "к",
- Kfr: "ð”Ž",
- kfr: "ð”¨",
- kgreen: "ĸ",
- KHcy: "Ð¥",
- khcy: "Ñ…",
- KJcy: "Ќ",
- kjcy: "ќ",
- Kopf: "ð•‚",
- kopf: "ð•œ",
- Kscr: "ð’¦",
- kscr: "ð“€",
- lAarr: "⇚",
- Lacute: "Ĺ",
- lacute: "ĺ",
- laemptyv: "⦴",
- lagran: "â„’",
- Lambda: "Λ",
- lambda: "λ",
- lang: "⟨",
- Lang: "⟪",
- langd: "⦑",
- langle: "⟨",
- lap: "⪅",
- Laplacetrf: "â„’",
- laquo: "«",
- larrb: "⇤",
- larrbfs: "⤟",
- larr: "â†",
- Larr: "↞",
- lArr: "â‡",
- larrfs: "â¤",
- larrhk: "↩",
- larrlp: "↫",
- larrpl: "⤹",
- larrsim: "⥳",
- larrtl: "↢",
- latail: "⤙",
- lAtail: "⤛",
- lat: "⪫",
- late: "âª",
- lates: "âªï¸€",
- lbarr: "⤌",
- lBarr: "⤎",
- lbbrk: "â²",
- lbrace: "{",
- lbrack: "[",
- lbrke: "⦋",
- lbrksld: "â¦",
- lbrkslu: "â¦",
- Lcaron: "Ľ",
- lcaron: "ľ",
- Lcedil: "Ä»",
- lcedil: "ļ",
- lceil: "⌈",
- lcub: "{",
- Lcy: "Л",
- lcy: "л",
- ldca: "⤶",
- ldquo: "“",
- ldquor: "„",
- ldrdhar: "⥧",
- ldrushar: "⥋",
- ldsh: "↲",
- le: "≤",
- lE: "≦",
- LeftAngleBracket: "⟨",
- LeftArrowBar: "⇤",
- leftarrow: "â†",
- LeftArrow: "â†",
- Leftarrow: "â‡",
- LeftArrowRightArrow: "⇆",
- leftarrowtail: "↢",
- LeftCeiling: "⌈",
- LeftDoubleBracket: "⟦",
- LeftDownTeeVector: "⥡",
- LeftDownVectorBar: "⥙",
- LeftDownVector: "⇃",
- LeftFloor: "⌊",
- leftharpoondown: "↽",
- leftharpoonup: "↼",
- leftleftarrows: "⇇",
- leftrightarrow: "↔",
- LeftRightArrow: "↔",
- Leftrightarrow: "⇔",
- leftrightarrows: "⇆",
- leftrightharpoons: "⇋",
- leftrightsquigarrow: "â†",
- LeftRightVector: "⥎",
- LeftTeeArrow: "↤",
- LeftTee: "⊣",
- LeftTeeVector: "⥚",
- leftthreetimes: "â‹‹",
- LeftTriangleBar: "â§",
- LeftTriangle: "⊲",
- LeftTriangleEqual: "⊴",
- LeftUpDownVector: "⥑",
- LeftUpTeeVector: "⥠",
- LeftUpVectorBar: "⥘",
- LeftUpVector: "↿",
- LeftVectorBar: "⥒",
- LeftVector: "↼",
- lEg: "⪋",
- leg: "⋚",
- leq: "≤",
- leqq: "≦",
- leqslant: "⩽",
- lescc: "⪨",
- les: "⩽",
- lesdot: "â©¿",
- lesdoto: "âª",
- lesdotor: "⪃",
- lesg: "⋚︀",
- lesges: "⪓",
- lessapprox: "⪅",
- lessdot: "â‹–",
- lesseqgtr: "⋚",
- lesseqqgtr: "⪋",
- LessEqualGreater: "⋚",
- LessFullEqual: "≦",
- LessGreater: "≶",
- lessgtr: "≶",
- LessLess: "⪡",
- lesssim: "≲",
- LessSlantEqual: "⩽",
- LessTilde: "≲",
- lfisht: "⥼",
- lfloor: "⌊",
- Lfr: "ð”",
- lfr: "ð”©",
- lg: "≶",
- lgE: "⪑",
- lHar: "⥢",
- lhard: "↽",
- lharu: "↼",
- lharul: "⥪",
- lhblk: "â–„",
- LJcy: "Љ",
- ljcy: "Ñ™",
- llarr: "⇇",
- ll: "≪",
- Ll: "⋘",
- llcorner: "⌞",
- Lleftarrow: "⇚",
- llhard: "⥫",
- lltri: "â—º",
- Lmidot: "Ä¿",
- lmidot: "Å€",
- lmoustache: "⎰",
- lmoust: "⎰",
- lnap: "⪉",
- lnapprox: "⪉",
- lne: "⪇",
- lnE: "≨",
- lneq: "⪇",
- lneqq: "≨",
- lnsim: "⋦",
- loang: "⟬",
- loarr: "⇽",
- lobrk: "⟦",
- longleftarrow: "⟵",
- LongLeftArrow: "⟵",
- Longleftarrow: "⟸",
- longleftrightarrow: "⟷",
- LongLeftRightArrow: "⟷",
- Longleftrightarrow: "⟺",
- longmapsto: "⟼",
- longrightarrow: "⟶",
- LongRightArrow: "⟶",
- Longrightarrow: "⟹",
- looparrowleft: "↫",
- looparrowright: "↬",
- lopar: "⦅",
- Lopf: "ð•ƒ",
- lopf: "ð•",
- loplus: "â¨",
- lotimes: "⨴",
- lowast: "∗",
- lowbar: "_",
- LowerLeftArrow: "↙",
- LowerRightArrow: "↘",
- loz: "â—Š",
- lozenge: "â—Š",
- lozf: "â§«",
- lpar: "(",
- lparlt: "⦓",
- lrarr: "⇆",
- lrcorner: "⌟",
- lrhar: "⇋",
- lrhard: "â¥",
- lrm: "‎",
- lrtri: "⊿",
- lsaquo: "‹",
- lscr: "ð“",
- Lscr: "â„’",
- lsh: "↰",
- Lsh: "↰",
- lsim: "≲",
- lsime: "âª",
- lsimg: "âª",
- lsqb: "[",
- lsquo: "‘",
- lsquor: "‚",
- Lstrok: "Å",
- lstrok: "Å‚",
- ltcc: "⪦",
- ltcir: "⩹",
- lt: "<",
- LT: "<",
- Lt: "≪",
- ltdot: "â‹–",
- lthree: "â‹‹",
- ltimes: "⋉",
- ltlarr: "⥶",
- ltquest: "â©»",
- ltri: "â—ƒ",
- ltrie: "⊴",
- ltrif: "â—‚",
- ltrPar: "⦖",
- lurdshar: "⥊",
- luruhar: "⥦",
- lvertneqq: "≨︀",
- lvnE: "≨︀",
- macr: "¯",
- male: "♂",
- malt: "✠",
- maltese: "✠",
- Map: "⤅",
- map: "↦",
- mapsto: "↦",
- mapstodown: "↧",
- mapstoleft: "↤",
- mapstoup: "↥",
- marker: "â–®",
- mcomma: "⨩",
- Mcy: "М",
- mcy: "м",
- mdash: "—",
- mDDot: "∺",
- measuredangle: "∡",
- MediumSpace: "âŸ",
- Mellintrf: "ℳ",
- Mfr: "ð”",
- mfr: "ð”ª",
- mho: "â„§",
- micro: "µ",
- midast: "*",
- midcir: "â«°",
- mid: "∣",
- middot: "·",
- minusb: "⊟",
- minus: "−",
- minusd: "∸",
- minusdu: "⨪",
- MinusPlus: "∓",
- mlcp: "â«›",
- mldr: "…",
- mnplus: "∓",
- models: "⊧",
- Mopf: "ð•„",
- mopf: "ð•ž",
- mp: "∓",
- mscr: "ð“‚",
- Mscr: "ℳ",
- mstpos: "∾",
- Mu: "Μ",
- mu: "μ",
- multimap: "⊸",
- mumap: "⊸",
- nabla: "∇",
- Nacute: "Ń",
- nacute: "Å„",
- nang: "∠⃒",
- nap: "≉",
- napE: "⩰̸",
- napid: "≋̸",
- napos: "ʼn",
- napprox: "≉",
- natural: "â™®",
- naturals: "â„•",
- natur: "â™®",
- nbsp: "Â ",
- nbump: "≎̸",
- nbumpe: "â‰Ì¸",
- ncap: "⩃",
- Ncaron: "Ň",
- ncaron: "ň",
- Ncedil: "Å…",
- ncedil: "ņ",
- ncong: "≇",
- ncongdot: "â©Ì¸",
- ncup: "â©‚",
- Ncy: "Ð",
- ncy: "н",
- ndash: "–",
- nearhk: "⤤",
- nearr: "↗",
- neArr: "⇗",
- nearrow: "↗",
- ne: "≠",
- nedot: "â‰Ì¸",
- NegativeMediumSpace: "​",
- NegativeThickSpace: "​",
- NegativeThinSpace: "​",
- NegativeVeryThinSpace: "​",
- nequiv: "≢",
- nesear: "⤨",
- nesim: "≂̸",
- NestedGreaterGreater: "≫",
- NestedLessLess: "≪",
- NewLine: "\n",
- nexist: "∄",
- nexists: "∄",
- Nfr: "ð”‘",
- nfr: "ð”«",
- ngE: "≧̸",
- nge: "≱",
- ngeq: "≱",
- ngeqq: "≧̸",
- ngeqslant: "⩾̸",
- nges: "⩾̸",
- nGg: "⋙̸",
- ngsim: "≵",
- nGt: "≫⃒",
- ngt: "≯",
- ngtr: "≯",
- nGtv: "≫̸",
- nharr: "↮",
- nhArr: "⇎",
- nhpar: "⫲",
- ni: "∋",
- nis: "⋼",
- nisd: "⋺",
- niv: "∋",
- NJcy: "Њ",
- njcy: "Ñš",
- nlarr: "↚",
- nlArr: "â‡",
- nldr: "‥",
- nlE: "≦̸",
- nle: "≰",
- nleftarrow: "↚",
- nLeftarrow: "â‡",
- nleftrightarrow: "↮",
- nLeftrightarrow: "⇎",
- nleq: "≰",
- nleqq: "≦̸",
- nleqslant: "⩽̸",
- nles: "⩽̸",
- nless: "≮",
- nLl: "⋘̸",
- nlsim: "≴",
- nLt: "≪⃒",
- nlt: "≮",
- nltri: "⋪",
- nltrie: "⋬",
- nLtv: "≪̸",
- nmid: "∤",
- NoBreak: "â ",
- NonBreakingSpace: "Â ",
- nopf: "ð•Ÿ",
- Nopf: "â„•",
- Not: "⫬",
- not: "¬",
- NotCongruent: "≢",
- NotCupCap: "â‰",
- NotDoubleVerticalBar: "∦",
- NotElement: "∉",
- NotEqual: "≠",
- NotEqualTilde: "≂̸",
- NotExists: "∄",
- NotGreater: "≯",
- NotGreaterEqual: "≱",
- NotGreaterFullEqual: "≧̸",
- NotGreaterGreater: "≫̸",
- NotGreaterLess: "≹",
- NotGreaterSlantEqual: "⩾̸",
- NotGreaterTilde: "≵",
- NotHumpDownHump: "≎̸",
- NotHumpEqual: "â‰Ì¸",
- notin: "∉",
- notindot: "⋵̸",
- notinE: "⋹̸",
- notinva: "∉",
- notinvb: "â‹·",
- notinvc: "â‹¶",
- NotLeftTriangleBar: "â§Ì¸",
- NotLeftTriangle: "⋪",
- NotLeftTriangleEqual: "⋬",
- NotLess: "≮",
- NotLessEqual: "≰",
- NotLessGreater: "≸",
- NotLessLess: "≪̸",
- NotLessSlantEqual: "⩽̸",
- NotLessTilde: "≴",
- NotNestedGreaterGreater: "⪢̸",
- NotNestedLessLess: "⪡̸",
- notni: "∌",
- notniva: "∌",
- notnivb: "⋾",
- notnivc: "⋽",
- NotPrecedes: "⊀",
- NotPrecedesEqual: "⪯̸",
- NotPrecedesSlantEqual: "â‹ ",
- NotReverseElement: "∌",
- NotRightTriangleBar: "â§Ì¸",
- NotRightTriangle: "â‹«",
- NotRightTriangleEqual: "â‹",
- NotSquareSubset: "âŠÌ¸",
- NotSquareSubsetEqual: "â‹¢",
- NotSquareSuperset: "âŠÌ¸",
- NotSquareSupersetEqual: "â‹£",
- NotSubset: "⊂⃒",
- NotSubsetEqual: "⊈",
- NotSucceeds: "âŠ",
- NotSucceedsEqual: "⪰̸",
- NotSucceedsSlantEqual: "â‹¡",
- NotSucceedsTilde: "≿̸",
- NotSuperset: "⊃⃒",
- NotSupersetEqual: "⊉",
- NotTilde: "â‰",
- NotTildeEqual: "≄",
- NotTildeFullEqual: "≇",
- NotTildeTilde: "≉",
- NotVerticalBar: "∤",
- nparallel: "∦",
- npar: "∦",
- nparsl: "⫽⃥",
- npart: "∂̸",
- npolint: "⨔",
- npr: "⊀",
- nprcue: "â‹ ",
- nprec: "⊀",
- npreceq: "⪯̸",
- npre: "⪯̸",
- nrarrc: "⤳̸",
- nrarr: "↛",
- nrArr: "â‡",
- nrarrw: "â†Ì¸",
- nrightarrow: "↛",
- nRightarrow: "â‡",
- nrtri: "â‹«",
- nrtrie: "â‹",
- nsc: "âŠ",
- nsccue: "â‹¡",
- nsce: "⪰̸",
- Nscr: "ð’©",
- nscr: "ð“ƒ",
- nshortmid: "∤",
- nshortparallel: "∦",
- nsim: "â‰",
- nsime: "≄",
- nsimeq: "≄",
- nsmid: "∤",
- nspar: "∦",
- nsqsube: "â‹¢",
- nsqsupe: "â‹£",
- nsub: "⊄",
- nsubE: "⫅̸",
- nsube: "⊈",
- nsubset: "⊂⃒",
- nsubseteq: "⊈",
- nsubseteqq: "⫅̸",
- nsucc: "âŠ",
- nsucceq: "⪰̸",
- nsup: "⊅",
- nsupE: "⫆̸",
- nsupe: "⊉",
- nsupset: "⊃⃒",
- nsupseteq: "⊉",
- nsupseteqq: "⫆̸",
- ntgl: "≹",
- Ntilde: "Ñ",
- ntilde: "ñ",
- ntlg: "≸",
- ntriangleleft: "⋪",
- ntrianglelefteq: "⋬",
- ntriangleright: "â‹«",
- ntrianglerighteq: "â‹",
- Nu: "Î",
- nu: "ν",
- num: "#",
- numero: "â„–",
- numsp: " ",
- nvap: "â‰âƒ’",
- nvdash: "⊬",
- nvDash: "âŠ",
- nVdash: "⊮",
- nVDash: "⊯",
- nvge: "≥⃒",
- nvgt: ">⃒",
- nvHarr: "⤄",
- nvinfin: "â§ž",
- nvlArr: "⤂",
- nvle: "≤⃒",
- nvlt: "<⃒",
- nvltrie: "⊴⃒",
- nvrArr: "⤃",
- nvrtrie: "⊵⃒",
- nvsim: "∼⃒",
- nwarhk: "⤣",
- nwarr: "↖",
- nwArr: "⇖",
- nwarrow: "↖",
- nwnear: "⤧",
- Oacute: "Ó",
- oacute: "ó",
- oast: "⊛",
- Ocirc: "Ô",
- ocirc: "ô",
- ocir: "⊚",
- Ocy: "О",
- ocy: "о",
- odash: "âŠ",
- Odblac: "Å",
- odblac: "Å‘",
- odiv: "⨸",
- odot: "⊙",
- odsold: "⦼",
- OElig: "Å’",
- oelig: "Å“",
- ofcir: "⦿",
- Ofr: "ð”’",
- ofr: "ð”¬",
- ogon: "Ë›",
- Ograve: "Ã’",
- ograve: "ò",
- ogt: "â§",
- ohbar: "⦵",
- ohm: "Ω",
- oint: "∮",
- olarr: "↺",
- olcir: "⦾",
- olcross: "⦻",
- oline: "‾",
- olt: "â§€",
- Omacr: "Ō",
- omacr: "Å",
- Omega: "Ω",
- omega: "ω",
- Omicron: "Ο",
- omicron: "ο",
- omid: "⦶",
- ominus: "⊖",
- Oopf: "ð•†",
- oopf: "ð• ",
- opar: "⦷",
- OpenCurlyDoubleQuote: "“",
- OpenCurlyQuote: "‘",
- operp: "⦹",
- oplus: "⊕",
- orarr: "↻",
- Or: "â©”",
- or: "∨",
- ord: "â©",
- order: "â„´",
- orderof: "â„´",
- ordf: "ª",
- ordm: "º",
- origof: "⊶",
- oror: "â©–",
- orslope: "â©—",
- orv: "â©›",
- oS: "Ⓢ",
- Oscr: "ð’ª",
- oscr: "â„´",
- Oslash: "Ø",
- oslash: "ø",
- osol: "⊘",
- Otilde: "Õ",
- otilde: "õ",
- otimesas: "⨶",
- Otimes: "⨷",
- otimes: "⊗",
- Ouml: "Ö",
- ouml: "ö",
- ovbar: "⌽",
- OverBar: "‾",
- OverBrace: "âž",
- OverBracket: "⎴",
- OverParenthesis: "âœ",
- para: "¶",
- parallel: "∥",
- par: "∥",
- parsim: "⫳",
- parsl: "⫽",
- part: "∂",
- PartialD: "∂",
- Pcy: "П",
- pcy: "п",
- percnt: "%",
- period: ".",
- permil: "‰",
- perp: "⊥",
- pertenk: "‱",
- Pfr: "ð”“",
- pfr: "ð”",
- Phi: "Φ",
- phi: "φ",
- phiv: "Ï•",
- phmmat: "ℳ",
- phone: "☎",
- Pi: "Î ",
- pi: "Ï€",
- pitchfork: "â‹”",
- piv: "Ï–",
- planck: "â„",
- planckh: "ℎ",
- plankv: "â„",
- plusacir: "⨣",
- plusb: "⊞",
- pluscir: "⨢",
- plus: "+",
- plusdo: "∔",
- plusdu: "⨥",
- pluse: "⩲",
- PlusMinus: "±",
- plusmn: "±",
- plussim: "⨦",
- plustwo: "⨧",
- pm: "±",
- Poincareplane: "ℌ",
- pointint: "⨕",
- popf: "ð•¡",
- Popf: "â„™",
- pound: "£",
- prap: "⪷",
- Pr: "⪻",
- pr: "≺",
- prcue: "≼",
- precapprox: "⪷",
- prec: "≺",
- preccurlyeq: "≼",
- Precedes: "≺",
- PrecedesEqual: "⪯",
- PrecedesSlantEqual: "≼",
- PrecedesTilde: "≾",
- preceq: "⪯",
- precnapprox: "⪹",
- precneqq: "⪵",
- precnsim: "⋨",
- pre: "⪯",
- prE: "⪳",
- precsim: "≾",
- prime: "′",
- Prime: "″",
- primes: "â„™",
- prnap: "⪹",
- prnE: "⪵",
- prnsim: "⋨",
- prod: "âˆ",
- Product: "âˆ",
- profalar: "⌮",
- profline: "⌒",
- profsurf: "⌓",
- prop: "âˆ",
- Proportional: "âˆ",
- Proportion: "∷",
- propto: "âˆ",
- prsim: "≾",
- prurel: "⊰",
- Pscr: "ð’«",
- pscr: "ð“…",
- Psi: "Ψ",
- psi: "ψ",
- puncsp: " ",
- Qfr: "ð””",
- qfr: "ð”®",
- qint: "⨌",
- qopf: "ð•¢",
- Qopf: "ℚ",
- qprime: "â—",
- Qscr: "ð’¬",
- qscr: "ð“†",
- quaternions: "â„",
- quatint: "⨖",
- quest: "?",
- questeq: "≟",
- quot: '"',
- QUOT: '"',
- rAarr: "⇛",
- race: "∽̱",
- Racute: "Å”",
- racute: "Å•",
- radic: "√",
- raemptyv: "⦳",
- rang: "⟩",
- Rang: "⟫",
- rangd: "⦒",
- range: "⦥",
- rangle: "⟩",
- raquo: "»",
- rarrap: "⥵",
- rarrb: "⇥",
- rarrbfs: "⤠",
- rarrc: "⤳",
- rarr: "→",
- Rarr: "↠",
- rArr: "⇒",
- rarrfs: "⤞",
- rarrhk: "↪",
- rarrlp: "↬",
- rarrpl: "⥅",
- rarrsim: "⥴",
- Rarrtl: "⤖",
- rarrtl: "↣",
- rarrw: "â†",
- ratail: "⤚",
- rAtail: "⤜",
- ratio: "∶",
- rationals: "ℚ",
- rbarr: "â¤",
- rBarr: "â¤",
- RBarr: "â¤",
- rbbrk: "â³",
- rbrace: "}",
- rbrack: "]",
- rbrke: "⦌",
- rbrksld: "⦎",
- rbrkslu: "â¦",
- Rcaron: "Ř",
- rcaron: "Å™",
- Rcedil: "Å–",
- rcedil: "Å—",
- rceil: "⌉",
- rcub: "}",
- Rcy: "Ð ",
- rcy: "Ñ€",
- rdca: "⤷",
- rdldhar: "⥩",
- rdquo: "â€",
- rdquor: "â€",
- rdsh: "↳",
- real: "ℜ",
- realine: "â„›",
- realpart: "ℜ",
- reals: "â„",
- Re: "ℜ",
- rect: "â–",
- reg: "®",
- REG: "®",
- ReverseElement: "∋",
- ReverseEquilibrium: "⇋",
- ReverseUpEquilibrium: "⥯",
- rfisht: "⥽",
- rfloor: "⌋",
- rfr: "ð”¯",
- Rfr: "ℜ",
- rHar: "⥤",
- rhard: "â‡",
- rharu: "⇀",
- rharul: "⥬",
- Rho: "Ρ",
- rho: "Ï",
- rhov: "ϱ",
- RightAngleBracket: "⟩",
- RightArrowBar: "⇥",
- rightarrow: "→",
- RightArrow: "→",
- Rightarrow: "⇒",
- RightArrowLeftArrow: "⇄",
- rightarrowtail: "↣",
- RightCeiling: "⌉",
- RightDoubleBracket: "⟧",
- RightDownTeeVector: "â¥",
- RightDownVectorBar: "⥕",
- RightDownVector: "⇂",
- RightFloor: "⌋",
- rightharpoondown: "â‡",
- rightharpoonup: "⇀",
- rightleftarrows: "⇄",
- rightleftharpoons: "⇌",
- rightrightarrows: "⇉",
- rightsquigarrow: "â†",
- RightTeeArrow: "↦",
- RightTee: "⊢",
- RightTeeVector: "⥛",
- rightthreetimes: "⋌",
- RightTriangleBar: "â§",
- RightTriangle: "⊳",
- RightTriangleEqual: "⊵",
- RightUpDownVector: "â¥",
- RightUpTeeVector: "⥜",
- RightUpVectorBar: "⥔",
- RightUpVector: "↾",
- RightVectorBar: "⥓",
- RightVector: "⇀",
- ring: "Ëš",
- risingdotseq: "≓",
- rlarr: "⇄",
- rlhar: "⇌",
- rlm: "â€",
- rmoustache: "⎱",
- rmoust: "⎱",
- rnmid: "â«®",
- roang: "âŸ",
- roarr: "⇾",
- robrk: "⟧",
- ropar: "⦆",
- ropf: "ð•£",
- Ropf: "â„",
- roplus: "⨮",
- rotimes: "⨵",
- RoundImplies: "⥰",
- rpar: ")",
- rpargt: "⦔",
- rppolint: "⨒",
- rrarr: "⇉",
- Rrightarrow: "⇛",
- rsaquo: "›",
- rscr: "ð“‡",
- Rscr: "â„›",
- rsh: "↱",
- Rsh: "↱",
- rsqb: "]",
- rsquo: "’",
- rsquor: "’",
- rthree: "⋌",
- rtimes: "⋊",
- rtri: "â–¹",
- rtrie: "⊵",
- rtrif: "â–¸",
- rtriltri: "â§Ž",
- RuleDelayed: "â§´",
- ruluhar: "⥨",
- rx: "℞",
- Sacute: "Åš",
- sacute: "Å›",
- sbquo: "‚",
- scap: "⪸",
- Scaron: "Å ",
- scaron: "Å¡",
- Sc: "⪼",
- sc: "≻",
- sccue: "≽",
- sce: "⪰",
- scE: "⪴",
- Scedil: "Åž",
- scedil: "ÅŸ",
- Scirc: "Ŝ",
- scirc: "Å",
- scnap: "⪺",
- scnE: "⪶",
- scnsim: "â‹©",
- scpolint: "⨓",
- scsim: "≿",
- Scy: "С",
- scy: "Ñ",
- sdotb: "⊡",
- sdot: "â‹…",
- sdote: "⩦",
- searhk: "⤥",
- searr: "↘",
- seArr: "⇘",
- searrow: "↘",
- sect: "§",
- semi: ";",
- seswar: "⤩",
- setminus: "∖",
- setmn: "∖",
- sext: "✶",
- Sfr: "ð”–",
- sfr: "ð”°",
- sfrown: "⌢",
- sharp: "♯",
- SHCHcy: "Щ",
- shchcy: "щ",
- SHcy: "Ш",
- shcy: "ш",
- ShortDownArrow: "↓",
- ShortLeftArrow: "â†",
- shortmid: "∣",
- shortparallel: "∥",
- ShortRightArrow: "→",
- ShortUpArrow: "↑",
- shy: "Â",
- Sigma: "Σ",
- sigma: "σ",
- sigmaf: "Ï‚",
- sigmav: "Ï‚",
- sim: "∼",
- simdot: "⩪",
- sime: "≃",
- simeq: "≃",
- simg: "⪞",
- simgE: "⪠",
- siml: "âª",
- simlE: "⪟",
- simne: "≆",
- simplus: "⨤",
- simrarr: "⥲",
- slarr: "â†",
- SmallCircle: "∘",
- smallsetminus: "∖",
- smashp: "⨳",
- smeparsl: "⧤",
- smid: "∣",
- smile: "⌣",
- smt: "⪪",
- smte: "⪬",
- smtes: "⪬︀",
- SOFTcy: "Ь",
- softcy: "ь",
- solbar: "⌿",
- solb: "â§„",
- sol: "/",
- Sopf: "ð•Š",
- sopf: "ð•¤",
- spades: "â™ ",
- spadesuit: "â™ ",
- spar: "∥",
- sqcap: "⊓",
- sqcaps: "⊓︀",
- sqcup: "⊔",
- sqcups: "⊔︀",
- Sqrt: "√",
- sqsub: "âŠ",
- sqsube: "⊑",
- sqsubset: "âŠ",
- sqsubseteq: "⊑",
- sqsup: "âŠ",
- sqsupe: "⊒",
- sqsupset: "âŠ",
- sqsupseteq: "⊒",
- square: "â–¡",
- Square: "â–¡",
- SquareIntersection: "⊓",
- SquareSubset: "âŠ",
- SquareSubsetEqual: "⊑",
- SquareSuperset: "âŠ",
- SquareSupersetEqual: "⊒",
- SquareUnion: "⊔",
- squarf: "â–ª",
- squ: "â–¡",
- squf: "â–ª",
- srarr: "→",
- Sscr: "ð’®",
- sscr: "ð“ˆ",
- ssetmn: "∖",
- ssmile: "⌣",
- sstarf: "⋆",
- Star: "⋆",
- star: "☆",
- starf: "★",
- straightepsilon: "ϵ",
- straightphi: "Ï•",
- strns: "¯",
- sub: "⊂",
- Sub: "â‹",
- subdot: "⪽",
- subE: "â«…",
- sube: "⊆",
- subedot: "⫃",
- submult: "â«",
- subnE: "â«‹",
- subne: "⊊",
- subplus: "⪿",
- subrarr: "⥹",
- subset: "⊂",
- Subset: "â‹",
- subseteq: "⊆",
- subseteqq: "â«…",
- SubsetEqual: "⊆",
- subsetneq: "⊊",
- subsetneqq: "â«‹",
- subsim: "⫇",
- subsub: "â«•",
- subsup: "â«“",
- succapprox: "⪸",
- succ: "≻",
- succcurlyeq: "≽",
- Succeeds: "≻",
- SucceedsEqual: "⪰",
- SucceedsSlantEqual: "≽",
- SucceedsTilde: "≿",
- succeq: "⪰",
- succnapprox: "⪺",
- succneqq: "⪶",
- succnsim: "â‹©",
- succsim: "≿",
- SuchThat: "∋",
- sum: "∑",
- Sum: "∑",
- sung: "♪",
- sup1: "¹",
- sup2: "²",
- sup3: "³",
- sup: "⊃",
- Sup: "â‹‘",
- supdot: "⪾",
- supdsub: "⫘",
- supE: "⫆",
- supe: "⊇",
- supedot: "â«„",
- Superset: "⊃",
- SupersetEqual: "⊇",
- suphsol: "⟉",
- suphsub: "â«—",
- suplarr: "⥻",
- supmult: "â«‚",
- supnE: "⫌",
- supne: "⊋",
- supplus: "â«€",
- supset: "⊃",
- Supset: "â‹‘",
- supseteq: "⊇",
- supseteqq: "⫆",
- supsetneq: "⊋",
- supsetneqq: "⫌",
- supsim: "⫈",
- supsub: "â«”",
- supsup: "â«–",
- swarhk: "⤦",
- swarr: "↙",
- swArr: "⇙",
- swarrow: "↙",
- swnwar: "⤪",
- szlig: "ß",
- Tab: "\t",
- target: "⌖",
- Tau: "Τ",
- tau: "Ï„",
- tbrk: "⎴",
- Tcaron: "Ť",
- tcaron: "Å¥",
- Tcedil: "Å¢",
- tcedil: "Å£",
- Tcy: "Т",
- tcy: "Ñ‚",
- tdot: "⃛",
- telrec: "⌕",
- Tfr: "ð”—",
- tfr: "ð”±",
- there4: "∴",
- therefore: "∴",
- Therefore: "∴",
- Theta: "Θ",
- theta: "θ",
- thetasym: "Ï‘",
- thetav: "Ï‘",
- thickapprox: "≈",
- thicksim: "∼",
- ThickSpace: "âŸâ€Š",
- ThinSpace: " ",
- thinsp: " ",
- thkap: "≈",
- thksim: "∼",
- THORN: "Þ",
- thorn: "þ",
- tilde: "˜",
- Tilde: "∼",
- TildeEqual: "≃",
- TildeFullEqual: "≅",
- TildeTilde: "≈",
- timesbar: "⨱",
- timesb: "⊠",
- times: "×",
- timesd: "⨰",
- tint: "âˆ",
- toea: "⤨",
- topbot: "⌶",
- topcir: "⫱",
- top: "⊤",
- Topf: "ð•‹",
- topf: "ð•¥",
- topfork: "⫚",
- tosa: "⤩",
- tprime: "‴",
- trade: "â„¢",
- TRADE: "â„¢",
- triangle: "â–µ",
- triangledown: "â–¿",
- triangleleft: "â—ƒ",
- trianglelefteq: "⊴",
- triangleq: "≜",
- triangleright: "â–¹",
- trianglerighteq: "⊵",
- tridot: "â—¬",
- trie: "≜",
- triminus: "⨺",
- TripleDot: "⃛",
- triplus: "⨹",
- trisb: "â§",
- tritime: "⨻",
- trpezium: "â¢",
- Tscr: "ð’¯",
- tscr: "ð“‰",
- TScy: "Ц",
- tscy: "ц",
- TSHcy: "Ћ",
- tshcy: "Ñ›",
- Tstrok: "Ŧ",
- tstrok: "ŧ",
- twixt: "≬",
- twoheadleftarrow: "↞",
- twoheadrightarrow: "↠",
- Uacute: "Ú",
- uacute: "ú",
- uarr: "↑",
- Uarr: "↟",
- uArr: "⇑",
- Uarrocir: "⥉",
- Ubrcy: "ÐŽ",
- ubrcy: "Ñž",
- Ubreve: "Ŭ",
- ubreve: "Å",
- Ucirc: "Û",
- ucirc: "û",
- Ucy: "У",
- ucy: "у",
- udarr: "⇅",
- Udblac: "Ű",
- udblac: "ű",
- udhar: "⥮",
- ufisht: "⥾",
- Ufr: "ð”˜",
- ufr: "ð”²",
- Ugrave: "Ù",
- ugrave: "ù",
- uHar: "⥣",
- uharl: "↿",
- uharr: "↾",
- uhblk: "â–€",
- ulcorn: "⌜",
- ulcorner: "⌜",
- ulcrop: "âŒ",
- ultri: "â—¸",
- Umacr: "Ū",
- umacr: "Å«",
- uml: "¨",
- UnderBar: "_",
- UnderBrace: "âŸ",
- UnderBracket: "⎵",
- UnderParenthesis: "â",
- Union: "⋃",
- UnionPlus: "⊎",
- Uogon: "Ų",
- uogon: "ų",
- Uopf: "ð•Œ",
- uopf: "ð•¦",
- UpArrowBar: "⤒",
- uparrow: "↑",
- UpArrow: "↑",
- Uparrow: "⇑",
- UpArrowDownArrow: "⇅",
- updownarrow: "↕",
- UpDownArrow: "↕",
- Updownarrow: "⇕",
- UpEquilibrium: "⥮",
- upharpoonleft: "↿",
- upharpoonright: "↾",
- uplus: "⊎",
- UpperLeftArrow: "↖",
- UpperRightArrow: "↗",
- upsi: "Ï…",
- Upsi: "Ï’",
- upsih: "Ï’",
- Upsilon: "Î¥",
- upsilon: "Ï…",
- UpTeeArrow: "↥",
- UpTee: "⊥",
- upuparrows: "⇈",
- urcorn: "âŒ",
- urcorner: "âŒ",
- urcrop: "⌎",
- Uring: "Å®",
- uring: "ů",
- urtri: "â—¹",
- Uscr: "ð’°",
- uscr: "ð“Š",
- utdot: "â‹°",
- Utilde: "Ũ",
- utilde: "Å©",
- utri: "â–µ",
- utrif: "â–´",
- uuarr: "⇈",
- Uuml: "Ü",
- uuml: "ü",
- uwangle: "⦧",
- vangrt: "⦜",
- varepsilon: "ϵ",
- varkappa: "ϰ",
- varnothing: "∅",
- varphi: "Ï•",
- varpi: "Ï–",
- varpropto: "âˆ",
- varr: "↕",
- vArr: "⇕",
- varrho: "ϱ",
- varsigma: "Ï‚",
- varsubsetneq: "⊊︀",
- varsubsetneqq: "⫋︀",
- varsupsetneq: "⊋︀",
- varsupsetneqq: "⫌︀",
- vartheta: "Ï‘",
- vartriangleleft: "⊲",
- vartriangleright: "⊳",
- vBar: "⫨",
- Vbar: "â««",
- vBarv: "â«©",
- Vcy: "Ð’",
- vcy: "в",
- vdash: "⊢",
- vDash: "⊨",
- Vdash: "⊩",
- VDash: "⊫",
- Vdashl: "⫦",
- veebar: "⊻",
- vee: "∨",
- Vee: "â‹",
- veeeq: "≚",
- vellip: "â‹®",
- verbar: "|",
- Verbar: "‖",
- vert: "|",
- Vert: "‖",
- VerticalBar: "∣",
- VerticalLine: "|",
- VerticalSeparator: "â˜",
- VerticalTilde: "≀",
- VeryThinSpace: " ",
- Vfr: "ð”™",
- vfr: "ð”³",
- vltri: "⊲",
- vnsub: "⊂⃒",
- vnsup: "⊃⃒",
- Vopf: "ð•",
- vopf: "ð•§",
- vprop: "âˆ",
- vrtri: "⊳",
- Vscr: "ð’±",
- vscr: "ð“‹",
- vsubnE: "⫋︀",
- vsubne: "⊊︀",
- vsupnE: "⫌︀",
- vsupne: "⊋︀",
- Vvdash: "⊪",
- vzigzag: "⦚",
- Wcirc: "Å´",
- wcirc: "ŵ",
- wedbar: "⩟",
- wedge: "∧",
- Wedge: "â‹€",
- wedgeq: "≙",
- weierp: "℘",
- Wfr: "ð”š",
- wfr: "ð”´",
- Wopf: "ð•Ž",
- wopf: "ð•¨",
- wp: "℘",
- wr: "≀",
- wreath: "≀",
- Wscr: "ð’²",
- wscr: "ð“Œ",
- xcap: "â‹‚",
- xcirc: "â—¯",
- xcup: "⋃",
- xdtri: "â–½",
- Xfr: "ð”›",
- xfr: "ð”µ",
- xharr: "⟷",
- xhArr: "⟺",
- Xi: "Ξ",
- xi: "ξ",
- xlarr: "⟵",
- xlArr: "⟸",
- xmap: "⟼",
- xnis: "â‹»",
- xodot: "⨀",
- Xopf: "ð•",
- xopf: "ð•©",
- xoplus: "â¨",
- xotime: "⨂",
- xrarr: "⟶",
- xrArr: "⟹",
- Xscr: "ð’³",
- xscr: "ð“",
- xsqcup: "⨆",
- xuplus: "⨄",
- xutri: "â–³",
- xvee: "â‹",
- xwedge: "â‹€",
- Yacute: "Ã",
- yacute: "ý",
- YAcy: "Я",
- yacy: "Ñ",
- Ycirc: "Ŷ",
- ycirc: "Å·",
- Ycy: "Ы",
- ycy: "Ñ‹",
- yen: "Â¥",
- Yfr: "ð”œ",
- yfr: "ð”¶",
- YIcy: "Ї",
- yicy: "Ñ—",
- Yopf: "ð•",
- yopf: "ð•ª",
- Yscr: "ð’´",
- yscr: "ð“Ž",
- YUcy: "Ю",
- yucy: "ÑŽ",
- yuml: "ÿ",
- Yuml: "Ÿ",
- Zacute: "Ź",
- zacute: "ź",
- Zcaron: "Ž",
- zcaron: "ž",
- Zcy: "З",
- zcy: "з",
- Zdot: "Å»",
- zdot: "ż",
- zeetrf: "ℨ",
- ZeroWidthSpace: "​",
- Zeta: "Ζ",
- zeta: "ζ",
- zfr: "ð”·",
- Zfr: "ℨ",
- ZHcy: "Ж",
- zhcy: "ж",
- zigrarr: "â‡",
- zopf: "ð•«",
- Zopf: "ℤ",
- Zscr: "ð’µ",
- zscr: "ð“",
- zwj: "â€",
- zwnj: "‌"
- },
- Yc = {
- Aacute: "Ã",
- aacute: "á",
- Acirc: "Â",
- acirc: "â",
- acute: "´",
- AElig: "Æ",
- aelig: "æ",
- Agrave: "À",
- agrave: "Ã ",
- amp: "&",
- AMP: "&",
- Aring: "Ã…",
- aring: "Ã¥",
- Atilde: "Ã",
- atilde: "ã",
- Auml: "Ä",
- auml: "ä",
- brvbar: "¦",
- Ccedil: "Ç",
- ccedil: "ç",
- cedil: "¸",
- cent: "¢",
- copy: "©",
- COPY: "©",
- curren: "¤",
- deg: "°",
- divide: "÷",
- Eacute: "É",
- eacute: "é",
- Ecirc: "Ê",
- ecirc: "ê",
- Egrave: "È",
- egrave: "è",
- ETH: "Ã",
- eth: "ð",
- Euml: "Ë",
- euml: "ë",
- frac12: "½",
- frac14: "¼",
- frac34: "¾",
- gt: ">",
- GT: ">",
- Iacute: "Ã",
- iacute: "Ã",
- Icirc: "ÃŽ",
- icirc: "î",
- iexcl: "¡",
- Igrave: "Ì",
- igrave: "ì",
- iquest: "¿",
- Iuml: "Ã",
- iuml: "ï",
- laquo: "«",
- lt: "<",
- LT: "<",
- macr: "¯",
- micro: "µ",
- middot: "·",
- nbsp: "Â ",
- not: "¬",
- Ntilde: "Ñ",
- ntilde: "ñ",
- Oacute: "Ó",
- oacute: "ó",
- Ocirc: "Ô",
- ocirc: "ô",
- Ograve: "Ã’",
- ograve: "ò",
- ordf: "ª",
- ordm: "º",
- Oslash: "Ø",
- oslash: "ø",
- Otilde: "Õ",
- otilde: "õ",
- Ouml: "Ö",
- ouml: "ö",
- para: "¶",
- plusmn: "±",
- pound: "£",
- quot: '"',
- QUOT: '"',
- raquo: "»",
- reg: "®",
- REG: "®",
- sect: "§",
- shy: "Â",
- sup1: "¹",
- sup2: "²",
- sup3: "³",
- szlig: "ß",
- THORN: "Þ",
- thorn: "þ",
- times: "×",
- Uacute: "Ú",
- uacute: "ú",
- Ucirc: "Û",
- ucirc: "û",
- Ugrave: "Ù",
- ugrave: "ù",
- uml: "¨",
- Uuml: "Ü",
- uuml: "ü",
- Yacute: "Ã",
- yacute: "ý",
- yen: "Â¥",
- yuml: "ÿ"
- },
- eu = {
- amp: "&",
- apos: "'",
- gt: ">",
- lt: "<",
- quot: '"'
- },
- tu = {},
- nu = Wc && Wc.__importDefault || function(e) {
- return e && e.__esModule ? e : {
- default: e
- }
- };
- Object.defineProperty(tu, "__esModule", {
- value: !0
- });
- var ru = nu({
- 0: 65533,
- 128: 8364,
- 130: 8218,
- 131: 402,
- 132: 8222,
- 133: 8230,
- 134: 8224,
- 135: 8225,
- 136: 710,
- 137: 8240,
- 138: 352,
- 139: 8249,
- 140: 338,
- 142: 381,
- 145: 8216,
- 146: 8217,
- 147: 8220,
- 148: 8221,
- 149: 8226,
- 150: 8211,
- 151: 8212,
- 152: 732,
- 153: 8482,
- 154: 353,
- 155: 8250,
- 156: 339,
- 158: 382,
- 159: 376
- }),
- ou = String.fromCodePoint || function(e) {
- var t = "";
- return e > 65535 && (e -= 65536, t += String.fromCharCode(e >>> 10 & 1023 | 55296), e = 56320 | 1023 & e), t += String.fromCharCode(e)
- };
- tu.default = function(e) {
- return e >= 55296 && e <= 57343 || e > 1114111 ? "�" : (e in ru.default && (e = ru.default[e]), ou(e))
- };
- var iu = Wc && Wc.__importDefault || function(e) {
- return e && e.__esModule ? e : {
- default: e
- }
- };
- Object.defineProperty(Xc, "__esModule", {
- value: !0
- }), Xc.decodeHTML = Xc.decodeHTMLStrict = Xc.decodeXML = void 0;
- var su = iu(Qc),
- au = iu(Yc),
- lu = iu(eu),
- cu = iu(tu),
- uu = /&(?:[a-zA-Z0-9]+|#[xX][\da-fA-F]+|#\d+);/g;
-
- function du(e) {
- var t = hu(e);
- return function(e) {
- return String(e).replace(uu, t)
- }
- }
- Xc.decodeXML = du(lu.default), Xc.decodeHTMLStrict = du(su.default);
- var pu = function(e, t) {
- return e < t ? 1 : -1
- };
-
- function hu(e) {
- return function(t) {
- if ("#" === t.charAt(1)) {
- var n = t.charAt(2);
- return "X" === n || "x" === n ? cu.default(parseInt(t.substr(3), 16)) : cu.default(parseInt(t.substr(2), 10))
- }
- return e[t.slice(1, -1)] || t
- }
- }
- Xc.decodeHTML = function() {
- for (var e = Object.keys(au.default).sort(pu), t = Object.keys(su.default).sort(pu), n = 0, r = 0; n < t.length; n++) e[r] === t[n] ? (t[n] += ";?", r++) : t[n] += ";";
- var o = new RegExp("&(?:" + t.join("|") + "|#[xX][\\da-fA-F]+;?|#\\d+;?)", "g"),
- i = hu(su.default);
-
- function s(e) {
- return ";" !== e.substr(-1) && (e += ";"), i(e)
- }
- return function(e) {
- return String(e).replace(o, s)
- }
- }();
- var fu = {},
- mu = Wc && Wc.__importDefault || function(e) {
- return e && e.__esModule ? e : {
- default: e
- }
- };
- Object.defineProperty(fu, "__esModule", {
- value: !0
- }), fu.escapeUTF8 = fu.escape = fu.encodeNonAsciiHTML = fu.encodeHTML = fu.encodeXML = void 0;
- var gu = xu(mu(eu).default),
- vu = Cu(gu);
- fu.encodeXML = Nu(gu);
- var yu, bu, wu = xu(mu(Qc).default),
- ku = Cu(wu);
-
- function xu(e) {
- return Object.keys(e).sort().reduce((function(t, n) {
- return t[e[n]] = "&" + n + ";", t
- }), {})
- }
-
- function Cu(e) {
- for (var t = [], n = [], r = 0, o = Object.keys(e); r < o.length; r++) {
- var i = o[r];
- 1 === i.length ? t.push("\\" + i) : n.push(i)
- }
- t.sort();
- for (var s = 0; s < t.length - 1; s++) {
- for (var a = s; a < t.length - 1 && t[a].charCodeAt(1) + 1 === t[a + 1].charCodeAt(1);) a += 1;
- var l = 1 + a - s;
- l < 3 || t.splice(s, l, t[s] + "-" + t[a])
- }
- return n.unshift("[" + t.join("") + "]"), new RegExp(n.join("|"), "g")
- }
- fu.encodeHTML = (yu = wu, bu = ku, function(e) {
- return e.replace(bu, (function(e) {
- return yu[e]
- })).replace(Tu, Su)
- }), fu.encodeNonAsciiHTML = Nu(wu);
- var Tu = /(?:[\x80-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/g,
- Mu = null != String.prototype.codePointAt ? function(e) {
- return e.codePointAt(0)
- } : function(e) {
- return 1024 * (e.charCodeAt(0) - 55296) + e.charCodeAt(1) - 56320 + 65536
- };
-
- function Su(e) {
- return "" + (e.length > 1 ? Mu(e) : e.charCodeAt(0)).toString(16).toUpperCase() + ";"
- }
- var Eu = new RegExp(vu.source + "|" + Tu.source, "g");
-
- function Nu(e) {
- return function(t) {
- return t.replace(Eu, (function(t) {
- return e[t] || Su(t)
- }))
- }
- }
- fu.escape = function(e) {
- return e.replace(Eu, Su)
- }, fu.escapeUTF8 = function(e) {
- return e.replace(vu, Su)
- },
- function(e) {
- Object.defineProperty(e, "__esModule", {
- value: !0
- }), e.decodeXMLStrict = e.decodeHTML5Strict = e.decodeHTML4Strict = e.decodeHTML5 = e.decodeHTML4 = e.decodeHTMLStrict = e.decodeHTML = e.decodeXML = e.encodeHTML5 = e.encodeHTML4 = e.escapeUTF8 = e.escape = e.encodeNonAsciiHTML = e.encodeHTML = e.encodeXML = e.encode = e.decodeStrict = e.decode = void 0;
- var t = Xc,
- n = fu;
- e.decode = function(e, n) {
- return (!n || n <= 0 ? t.decodeXML : t.decodeHTML)(e)
- }, e.decodeStrict = function(e, n) {
- return (!n || n <= 0 ? t.decodeXML : t.decodeHTMLStrict)(e)
- }, e.encode = function(e, t) {
- return (!t || t <= 0 ? n.encodeXML : n.encodeHTML)(e)
- };
- var r = fu;
- Object.defineProperty(e, "encodeXML", {
- enumerable: !0,
- get: function() {
- return r.encodeXML
- }
- }), Object.defineProperty(e, "encodeHTML", {
- enumerable: !0,
- get: function() {
- return r.encodeHTML
- }
- }), Object.defineProperty(e, "encodeNonAsciiHTML", {
- enumerable: !0,
- get: function() {
- return r.encodeNonAsciiHTML
- }
- }), Object.defineProperty(e, "escape", {
- enumerable: !0,
- get: function() {
- return r.escape
- }
- }), Object.defineProperty(e, "escapeUTF8", {
- enumerable: !0,
- get: function() {
- return r.escapeUTF8
- }
- }), Object.defineProperty(e, "encodeHTML4", {
- enumerable: !0,
- get: function() {
- return r.encodeHTML
- }
- }), Object.defineProperty(e, "encodeHTML5", {
- enumerable: !0,
- get: function() {
- return r.encodeHTML
- }
- });
- var o = Xc;
- Object.defineProperty(e, "decodeXML", {
- enumerable: !0,
- get: function() {
- return o.decodeXML
- }
- }), Object.defineProperty(e, "decodeHTML", {
- enumerable: !0,
- get: function() {
- return o.decodeHTML
- }
- }), Object.defineProperty(e, "decodeHTMLStrict", {
- enumerable: !0,
- get: function() {
- return o.decodeHTMLStrict
- }
- }), Object.defineProperty(e, "decodeHTML4", {
- enumerable: !0,
- get: function() {
- return o.decodeHTML
- }
- }), Object.defineProperty(e, "decodeHTML5", {
- enumerable: !0,
- get: function() {
- return o.decodeHTML
- }
- }), Object.defineProperty(e, "decodeHTML4Strict", {
- enumerable: !0,
- get: function() {
- return o.decodeHTMLStrict
- }
- }), Object.defineProperty(e, "decodeHTML5Strict", {
- enumerable: !0,
- get: function() {
- return o.decodeHTMLStrict
- }
- }), Object.defineProperty(e, "decodeXMLStrict", {
- enumerable: !0,
- get: function() {
- return o.decodeXML
- }
- })
- }(Zc);
- var Ou = "&(?:#x[a-f0-9]{1,6}|#[0-9]{1,7}|[a-z][a-z0-9]{1,31});",
- Du = /[\\&]/,
- Au = "[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^_`{|}~-]",
- Lu = new RegExp("\\\\" + Au + "|" + Ou, "gi"),
- Iu = new RegExp('[&<>"]', "g"),
- Ru = function(e) {
- return 92 === e.charCodeAt(0) ? e.charAt(1) : Zc.decodeHTML(e)
- };
-
- function Pu(e) {
- return Du.test(e) ? e.replace(Lu, Ru) : e
- }
-
- function Bu(e) {
- try {
- return Kc(e)
- } catch (t) {
- return e
- }
- }
-
- function Fu(e) {
- switch (e) {
- case "&":
- return "&";
- case "<":
- return "<";
- case ">":
- return ">";
- case '"':
- return """;
- default:
- return e
- }
- }
-
- function Hu(e) {
- return Iu.test(e) ? e.replace(Iu, Fu) : e
- }
-
- function zu(e, t) {
- for (var n = [], r = 0; r < t; r++) n.push(e);
- return n.join("")
- }
-
- function qu(e) {
- return !e || !/[^ \t]+/.test(e)
- }
- var Vu = function() {
- function e(e) {
- this.current = e, this.root = e, this.entering = !0
- }
- return e.prototype.next = function() {
- var e = this.current,
- t = this.entering;
- if (null === e) return null;
- var n = ju(e);
- return t && n ? e.firstChild ? (this.current = e.firstChild, this.entering = !0) : this.entering = !1 : e === this.root ? this.current = null : null === e.next ? (this.current = e.parent, this.entering = !1) : (this.current = e.next, this.entering = !0), {
- entering: t,
- node: e
- }
- }, e.prototype.resumeAt = function(e, t) {
- this.current = e, this.entering = !0 === t
- }, e
- }();
-
- function ju(e) {
- switch (e.type) {
- case "document":
- case "blockQuote":
- case "list":
- case "item":
- case "paragraph":
- case "heading":
- case "emph":
- case "strong":
- case "strike":
- case "link":
- case "image":
- case "table":
- case "tableHead":
- case "tableBody":
- case "tableRow":
- case "tableCell":
- case "tableDelimRow":
- case "customInline":
- return !0;
- default:
- return !1
- }
- }
- var $u = 1,
- _u = {};
-
- function Uu(e) {
- delete _u[e]
- }
- var Wu = function() {
- function e(e, t) {
- this.parent = null, this.prev = null, this.next = null, this.firstChild = null, this.lastChild = null, this.literal = null, this.id = "document" === e ? -1 : $u++, this.type = e, this.sourcepos = t, _u[this.id] = this
- }
- return e.prototype.isContainer = function() {
- return ju(this)
- }, e.prototype.unlink = function() {
- this.prev ? this.prev.next = this.next : this.parent && (this.parent.firstChild = this.next), this.next ? this.next.prev = this.prev : this.parent && (this.parent.lastChild = this.prev), this.parent = null, this.next = null, this.prev = null
- }, e.prototype.replaceWith = function(e) {
- this.insertBefore(e), this.unlink()
- }, e.prototype.insertAfter = function(e) {
- e.unlink(), e.next = this.next, e.next && (e.next.prev = e), e.prev = this, this.next = e, this.parent && (e.parent = this.parent, e.next || (e.parent.lastChild = e))
- }, e.prototype.insertBefore = function(e) {
- e.unlink(), e.prev = this.prev, e.prev && (e.prev.next = e), e.next = this, this.prev = e, e.parent = this.parent, e.prev || (e.parent.firstChild = e)
- }, e.prototype.appendChild = function(e) {
- e.unlink(), e.parent = this, this.lastChild ? (this.lastChild.next = e, e.prev = this.lastChild, this.lastChild = e) : (this.firstChild = e, this.lastChild = e)
- }, e.prototype.prependChild = function(e) {
- e.unlink(), e.parent = this, this.firstChild ? (this.firstChild.prev = e, e.next = this.firstChild, this.firstChild = e) : (this.firstChild = e, this.lastChild = e)
- }, e.prototype.walker = function() {
- return new Vu(this)
- }, e
- }(),
- Ju = function(e) {
- function t(t, n) {
- var r = e.call(this, t, n) || this;
- return r.open = !0, r.lineOffsets = null, r.stringContent = null, r.lastLineBlank = !1, r.lastLineChecked = !1, r.type = t, r
- }
- return $c(t, e), t
- }(Wu),
- Gu = function(e) {
- function t() {
- var t = null !== e && e.apply(this, arguments) || this;
- return t.listData = null, t
- }
- return $c(t, e), t
- }(Ju),
- Ku = function(e) {
- function t() {
- var t = null !== e && e.apply(this, arguments) || this;
- return t.level = 0, t.headingType = "atx", t
- }
- return $c(t, e), t
- }(Ju),
- Zu = function(e) {
- function t() {
- var t = null !== e && e.apply(this, arguments) || this;
- return t.isFenced = !1, t.fenceChar = null, t.fenceLength = 0, t.fenceOffset = -1, t.info = null, t.infoPadding = 0, t
- }
- return $c(t, e), t
- }(Ju),
- Xu = function(e) {
- function t() {
- var t = null !== e && e.apply(this, arguments) || this;
- return t.columns = [], t
- }
- return $c(t, e), t
- }(Ju),
- Qu = function(e) {
- function t() {
- var t = null !== e && e.apply(this, arguments) || this;
- return t.startIdx = 0, t.endIdx = 0, t.paddingLeft = 0, t.paddingRight = 0, t.ignored = !1, t
- }
- return $c(t, e), t
- }(Ju),
- Yu = function(e) {
- function t() {
- var t = null !== e && e.apply(this, arguments) || this;
- return t.title = "", t.dest = "", t.label = "", t
- }
- return $c(t, e), t
- }(Ju),
- ed = function(e) {
- function t() {
- var t = null !== e && e.apply(this, arguments) || this;
- return t.syntaxLength = 0, t.offset = -1, t.info = "", t
- }
- return $c(t, e), t
- }(Ju),
- td = function(e) {
- function t() {
- var t = null !== e && e.apply(this, arguments) || this;
- return t.htmlBlockType = -1, t
- }
- return $c(t, e), t
- }(Ju),
- nd = function(e) {
- function t() {
- var t = null !== e && e.apply(this, arguments) || this;
- return t.destination = null, t.title = null, t.extendedAutolink = !1, t
- }
- return $c(t, e), t
- }(Wu),
- rd = function(e) {
- function t() {
- var t = null !== e && e.apply(this, arguments) || this;
- return t.tickCount = 0, t
- }
- return $c(t, e), t
- }(Wu),
- od = function(e) {
- function t() {
- var t = null !== e && e.apply(this, arguments) || this;
- return t.info = "", t
- }
- return $c(t, e), t
- }(Wu);
-
- function id(e, t) {
- switch (e) {
- case "heading":
- return new Ku(e, t);
- case "list":
- case "item":
- return new Gu(e, t);
- case "link":
- case "image":
- return new nd(e, t);
- case "codeBlock":
- return new Zu(e, t);
- case "htmlBlock":
- return new td(e, t);
- case "table":
- return new Xu(e, t);
- case "tableCell":
- return new Qu(e, t);
- case "document":
- case "paragraph":
- case "blockQuote":
- case "thematicBreak":
- case "tableRow":
- case "tableBody":
- case "tableHead":
- case "frontMatter":
- return new Ju(e, t);
- case "code":
- return new rd(e, t);
- case "refDef":
- return new Yu(e, t);
- case "customBlock":
- return new ed(e, t);
- case "customInline":
- return new od(e, t);
- default:
- return new Wu(e, t)
- }
- }
-
- function sd(e) {
- return "codeBlock" === e.type
- }
-
- function ad(e) {
- return "list" === e.type
- }
-
- function ld(e) {
- return "refDef" === e.type
- }
-
- function cd(e) {
- return "customBlock" === e.type
- }
-
- function ud(e, t) {
- var n = id("text", t);
- return n.literal = e, n
- }
- var dd, pd = "[A-Za-z][A-Za-z0-9-]*",
- hd = "<" + pd + "(?:\\s+[a-zA-Z_:][a-zA-Z0-9:._-]*(?:\\s*=\\s*(?:[^\"'=<>`\\x00-\\x20]+|'[^']*'|\"[^\"]*\"))?)*\\s*/?>",
- fd = "" + pd + "\\s*[>]",
- md = new RegExp("^(?:<[A-Za-z][A-Za-z0-9-]*(?:\\s+[a-zA-Z_:][a-zA-Z0-9:._-]*(?:\\s*=\\s*(?:[^\"'=<>`\\x00-\\x20]+|'[^']*'|\"[^\"]*\"))?)*\\s*/?>|[A-Za-z][A-Za-z0-9-]*\\s*[>]|\x3c!----\x3e|\x3c!--(?:-?[^>-])(?:-?[^-])*--\x3e|[<][?].*?[?][>]|]*>|)", "i");
- if (String.fromCodePoint) dd = function(e) {
- try {
- return String.fromCodePoint(e)
- } catch (e) {
- if (e instanceof RangeError) return String.fromCharCode(65533);
- throw e
- }
- };
- else {
- var gd = String.fromCharCode,
- vd = Math.floor;
- dd = function() {
- for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t];
- var n, r, o = 16384,
- i = [],
- s = -1,
- a = e.length;
- if (!a) return "";
- for (var l = ""; ++s < a;) {
- var c = Number(e[s]);
- if (!isFinite(c) || c < 0 || c > 1114111 || vd(c) !== c) return String.fromCharCode(65533);
- c <= 65535 ? i.push(c) : (n = 55296 + ((c -= 65536) >> 10), r = c % 1024 + 56320, i.push(n, r)), (s + 1 === a || i.length > o) && (l += gd.apply(void 0, i), i.length = 0)
- }
- return l
- }
- }
- var yd = dd;
-
- function bd(e) {
- var t = /\)+$/.exec(e);
- if (t) {
- for (var n = 0, r = 0, o = e; r < o.length; r++) {
- var i = o[r];
- "(" === i ? n < 0 ? n = 1 : n += 1 : ")" === i && (n -= 1)
- }
- if (n < 0) {
- var s = Math.min(-n, t[0].length);
- return e.substring(0, e.length - s)
- }
- }
- return e
- }
-
- function wd(e) {
- return e.replace(/&[A-Za-z0-9]+;$/, "")
- }
-
- function kd(e) {
- return Uc(Uc([], function(e) {
- for (var t, n = new RegExp("(www|https?://).(?:[w-]+.)*[A-Za-z0-9-]+.[A-Za-z0-9-]+[^<\\s]*[^!.,:*_?~\\s]", "g"), r = []; t = n.exec(e);) {
- var o = wd(bd(t[0])),
- i = "www" === t[1] ? "http://" : "";
- r.push({
- text: o,
- range: [t.index, t.index + o.length - 1],
- url: "" + i + o
- })
- }
- return r
- }(e)), function(e) {
- for (var t, n = new RegExp("[\\w.+-]+@(?:[\\w-]+\\.)+[\\w-]+", "g"), r = []; t = n.exec(e);) {
- var o = t[0];
- /[_-]+$/.test(o) || r.push({
- text: o,
- range: [t.index, t.index + o.length - 1],
- url: "mailto:" + o
- })
- }
- return r
- }(e)).sort((function(e, t) {
- return e.range[0] - t.range[0]
- }))
- }
-
- function xd(e) {
- return e[e.length - 1]
- }
-
- function Cd(e) {
- return e.slice(1, e.length - 1).trim().replace(/[ \t\r\n]+/, " ").toLowerCase().toUpperCase()
- }
-
- function Td(e, t) {
- Object.keys(e).forEach((function(n) {
- t(n, e[n])
- }))
- }
-
- function Md(e) {
- return !Object.keys(e).length
- }
- var Sd = 126,
- Ed = 39,
- Nd = 34,
- Od = 36,
- Dd = "\\\\" + Au,
- Ad = new RegExp(/[!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E42\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC9\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDF3C-\uDF3E]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]/),
- Ld = new RegExp('^(?:"(' + Dd + '|[^"\\x00])*"|\'(' + Dd + "|[^'\\x00])*'|\\((" + Dd + "|[^()\\x00])*\\))"),
- Id = /^(?:<(?:[^<>\n\\\x00]|\\.)*>)/,
- Rd = new RegExp("^" + Au),
- Pd = new RegExp("^" + Ou, "i"),
- Bd = /`+/,
- Fd = /^`+/,
- Hd = /\.\.\./g,
- zd = /--+/g,
- qd = /^<([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/,
- Vd = /^<[A-Za-z][A-Za-z0-9.+-]{1,31}:[^<>\x00-\x20]*>/i,
- jd = /^ *(?:\n *)?/,
- $d = /^[ \t\n\x0b\x0c\x0d]/,
- _d = /^\s/,
- Ud = / *$/,
- Wd = /^ */,
- Jd = /^ *(?:\n|$)/,
- Gd = /^\[(?:[^\\\[\]]|\\.){0,1000}\]/,
- Kd = /^[^\n`\[\]\\!<&*_'"~$]+/m,
- Zd = function() {
- function e(e) {
- this.subject = "", this.delimiters = null, this.brackets = null, this.pos = 0, this.lineStartNum = 0, this.lineIdx = 0, this.lineOffsets = [0], this.linePosOffset = 0, this.refMap = {}, this.refLinkCandidateMap = {}, this.refDefCandidateMap = {}, this.options = e
- }
- return e.prototype.sourcepos = function(e, t) {
- var n = this.linePosOffset + this.lineOffsets[this.lineIdx],
- r = this.lineStartNum + this.lineIdx,
- o = [r, e + n];
- return "number" == typeof t ? [o, [r, t + n]] : o
- }, e.prototype.nextLine = function() {
- this.lineIdx += 1, this.linePosOffset = -this.pos
- }, e.prototype.match = function(e) {
- var t = e.exec(this.subject.slice(this.pos));
- return null === t ? null : (this.pos += t.index + t[0].length, t[0])
- }, e.prototype.peek = function() {
- return this.pos < this.subject.length ? this.subject.charCodeAt(this.pos) : -1
- }, e.prototype.spnl = function() {
- return this.match(jd), !0
- }, e.prototype.parseBackticks = function(e) {
- var t = this.pos + 1,
- n = this.match(Fd);
- if (null === n) return !1;
- for (var r, o = this.pos; null !== (r = this.match(Bd));)
- if (r === n) {
- var i = this.subject.slice(o, this.pos - n.length),
- s = this.sourcepos(t, this.pos),
- a = i.split("\n");
- if (a.length > 1) {
- var l = xd(a);
- this.lineIdx += a.length - 1, this.linePosOffset = -(this.pos - l.length - n.length), s[1] = this.sourcepos(this.pos), i = a.join(" ")
- }
- var c = id("code", s);
- return i.length > 0 && null !== i.match(/[^ ]/) && " " == i[0] && " " == i[i.length - 1] ? c.literal = i.slice(1, i.length - 1) : c.literal = i, c.tickCount = n.length, e.appendChild(c), !0
- } return this.pos = o, e.appendChild(ud(n, this.sourcepos(t, this.pos - 1))), !0
- }, e.prototype.parseBackslash = function(e) {
- var t, n = this.subject;
- this.pos += 1;
- var r = this.pos;
- return 10 === this.peek() ? (this.pos += 1, t = id("linebreak", this.sourcepos(this.pos - 1, this.pos)), e.appendChild(t), this.nextLine()) : Rd.test(n.charAt(this.pos)) ? (e.appendChild(ud(n.charAt(this.pos), this.sourcepos(r, this.pos))), this.pos += 1) : e.appendChild(ud("\\", this.sourcepos(r, r))), !0
- }, e.prototype.parseAutolink = function(e) {
- var t, n, r, o = this.pos + 1;
- return (t = this.match(qd)) ? (n = t.slice(1, t.length - 1), (r = id("link", this.sourcepos(o, this.pos))).destination = Bu("mailto:" + n), r.title = "", r.appendChild(ud(n, this.sourcepos(o + 1, this.pos - 1))), e.appendChild(r), !0) : !!(t = this.match(Vd)) && (n = t.slice(1, t.length - 1), (r = id("link", this.sourcepos(o, this.pos))).destination = Bu(n), r.title = "", r.appendChild(ud(n, this.sourcepos(o + 1, this.pos - 1))), e.appendChild(r), !0)
- }, e.prototype.parseHtmlTag = function(e) {
- var t = this.pos + 1,
- n = this.match(md);
- if (null === n) return !1;
- var r = id("htmlInline", this.sourcepos(t, this.pos));
- return r.literal = n, e.appendChild(r), !0
- }, e.prototype.scanDelims = function(e) {
- var t = 0,
- n = this.pos;
- if (e === Ed || e === Nd) t++, this.pos++;
- else
- for (; this.peek() === e;) t++, this.pos++;
- if (0 === t || t < 2 && (e === Sd || e === Od)) return this.pos = n, null;
- var r, o = 0 === n ? "\n" : this.subject.charAt(n - 1),
- i = this.peek();
- r = -1 === i ? "\n" : yd(i);
- var s, a, l = _d.test(r),
- c = Ad.test(r),
- u = _d.test(o),
- d = Ad.test(o),
- p = !l && (!c || u || d),
- h = !u && (!d || l || c);
- return 95 === e ? (s = p && (!h || d), a = h && (!p || c)) : e === Ed || e === Nd ? (s = p && !h, a = h) : e === Od ? (s = !l, a = !u) : (s = p, a = h), this.pos = n, {
- numdelims: t,
- canOpen: s,
- canClose: a
- }
- }, e.prototype.handleDelim = function(e, t) {
- var n = this.scanDelims(e);
- if (!n) return !1;
- var r = n.numdelims,
- o = this.pos + 1;
- this.pos += r;
- var i = ud(e === Ed ? "’" : e === Nd ? "“" : this.subject.slice(o - 1, this.pos), this.sourcepos(o, this.pos));
- return t.appendChild(i), (n.canOpen || n.canClose) && (this.options.smart || e !== Ed && e !== Nd) && (this.delimiters = {
- cc: e,
- numdelims: r,
- origdelims: r,
- node: i,
- previous: this.delimiters,
- next: null,
- canOpen: n.canOpen,
- canClose: n.canClose
- }, this.delimiters.previous && (this.delimiters.previous.next = this.delimiters)), !0
- }, e.prototype.removeDelimiter = function(e) {
- null !== e.previous && (e.previous.next = e.next), null === e.next ? this.delimiters = e.previous : e.next.previous = e.previous
- }, e.prototype.removeDelimitersBetween = function(e, t) {
- e.next !== t && (e.next = t, t.previous = e)
- }, e.prototype.processEmphasis = function(e) {
- var t, n, r, o, i, s, a, l = !1,
- c = ((t = {})[95] = [e, e, e], t[42] = [e, e, e], t[39] = [e], t[34] = [e], t[126] = [e], t[36] = [e], t);
- for (r = this.delimiters; null !== r && r.previous !== e;) r = r.previous;
- for (; null !== r;) {
- var u = r.cc,
- d = 95 === u || 42 === u;
- if (r.canClose) {
- for (n = r.previous, a = !1; null !== n && n !== e && n !== c[u][d ? r.origdelims % 3 : 0];) {
- if (l = d && (r.canOpen || n.canClose) && r.origdelims % 3 != 0 && (n.origdelims + r.origdelims) % 3 == 0, n.cc === r.cc && n.canOpen && !l) {
- a = !0;
- break
- }
- n = n.previous
- }
- if (o = r, d || u === Sd || u === Od)
- if (a) {
- if (n) {
- var p = r.numdelims >= 2 && n.numdelims >= 2 ? 2 : 1,
- h = d ? 0 : 1;
- i = n.node, s = r.node;
- var f = d ? 1 === p ? "emph" : "strong" : "strike";
- u === Od && (f = "customInline");
- var m = id(f),
- g = i.sourcepos[1],
- v = s.sourcepos[0];
- m.sourcepos = [
- [g[0], g[1] - p + 1],
- [v[0], v[1] + p - 1]
- ], i.sourcepos[1][1] -= p, s.sourcepos[0][1] += p, i.literal = i.literal.slice(p), s.literal = s.literal.slice(p), n.numdelims -= p, r.numdelims -= p;
- for (var y = i.next, b = void 0; y && y !== s;) b = y.next, y.unlink(), m.appendChild(y), y = b;
- if (u === Od) {
- var w = m.firstChild,
- k = w.literal || "",
- x = k.split(/\s/)[0];
- m.info = x, k.length <= x.length ? w.unlink() : (w.sourcepos[0][1] += x.length, w.literal = k.replace(x + " ", ""))
- }
- if (i.insertAfter(m), this.removeDelimitersBetween(n, r), n.numdelims <= h && (0 === n.numdelims && i.unlink(), this.removeDelimiter(n)), r.numdelims <= h) {
- 0 === r.numdelims && s.unlink();
- var C = r.next;
- this.removeDelimiter(r), r = C
- }
- }
- } else r = r.next;
- else u === Ed ? (r.node.literal = "’", a && (n.node.literal = "‘"), r = r.next) : u === Nd && (r.node.literal = "â€", a && (n.node.literal = "“"), r = r.next);
- a || (c[u][d ? o.origdelims % 3 : 0] = o.previous, o.canOpen || this.removeDelimiter(o))
- } else r = r.next
- }
- for (; null !== this.delimiters && this.delimiters !== e;) this.removeDelimiter(this.delimiters)
- }, e.prototype.parseLinkTitle = function() {
- var e = this.match(Ld);
- return null === e ? null : Pu(e.substr(1, e.length - 2))
- }, e.prototype.parseLinkDestination = function() {
- var e = this.match(Id);
- if (null === e) {
- if (60 === this.peek()) return null;
- for (var t = this.pos, n = 0, r = void 0; - 1 !== (r = this.peek());)
- if (92 === r && Rd.test(this.subject.charAt(this.pos + 1))) this.pos += 1, -1 !== this.peek() && (this.pos += 1);
- else if (40 === r) this.pos += 1, n += 1;
- else if (41 === r) {
- if (n < 1) break;
- this.pos += 1, n -= 1
- } else {
- if (null !== $d.exec(yd(r))) break;
- this.pos += 1
- }
- return this.pos === t && 41 !== r || 0 !== n ? null : Bu(Pu(e = this.subject.substr(t, this.pos - t)))
- }
- return Bu(Pu(e.substr(1, e.length - 2)))
- }, e.prototype.parseLinkLabel = function() {
- var e = this.match(Gd);
- return null === e || e.length > 1001 ? 0 : e.length
- }, e.prototype.parseOpenBracket = function(e) {
- var t = this.pos;
- this.pos += 1;
- var n = ud("[", this.sourcepos(this.pos, this.pos));
- return e.appendChild(n), this.addBracket(n, t, !1), !0
- }, e.prototype.parseBang = function(e) {
- var t = this.pos;
- if (this.pos += 1, 91 === this.peek()) {
- this.pos += 1;
- var n = ud("![", this.sourcepos(this.pos - 1, this.pos));
- e.appendChild(n), this.addBracket(n, t + 1, !0)
- } else {
- n = ud("!", this.sourcepos(this.pos, this.pos));
- e.appendChild(n)
- }
- return !0
- }, e.prototype.parseCloseBracket = function(e) {
- var t = null,
- n = null,
- r = !1;
- this.pos += 1;
- var o = this.pos,
- i = this.brackets;
- if (null === i) return e.appendChild(ud("]", this.sourcepos(o, o))), !0;
- if (!i.active) return e.appendChild(ud("]", this.sourcepos(o, o))), this.removeBracket(), !0;
- var s = i.image,
- a = this.pos;
- 40 === this.peek() && (this.pos++, this.spnl() && null !== (t = this.parseLinkDestination()) && this.spnl() && ($d.test(this.subject.charAt(this.pos - 1)) && (n = this.parseLinkTitle()), 1) && this.spnl() && 41 === this.peek() ? (this.pos += 1, r = !0) : this.pos = a);
- var l = "";
- if (!r) {
- var c = this.pos,
- u = this.parseLinkLabel();
- if (u > 2 ? l = this.subject.slice(c, c + u) : i.bracketAfter || (l = this.subject.slice(i.index, o)), 0 === u && (this.pos = a), l) {
- l = Cd(l);
- var d = this.refMap[l];
- d && (t = d.destination, n = d.title, r = !0)
- }
- }
- if (r) {
- var p = id(s ? "image" : "link");
- p.destination = t, p.title = n || "", p.sourcepos = [i.startpos, this.sourcepos(this.pos)];
- for (var h = i.node.next, f = void 0; h;) f = h.next, h.unlink(), p.appendChild(h), h = f;
- if (e.appendChild(p), this.processEmphasis(i.previousDelimiter), this.removeBracket(), i.node.unlink(), !s)
- for (i = this.brackets; null !== i;) i.image || (i.active = !1), i = i.previous;
- return this.options.referenceDefinition && (this.refLinkCandidateMap[e.id] = {
- node: e,
- refLabel: l
- }), !0
- }
- return this.removeBracket(), this.pos = o, e.appendChild(ud("]", this.sourcepos(o, o))), this.options.referenceDefinition && (this.refLinkCandidateMap[e.id] = {
- node: e,
- refLabel: l
- }), !0
- }, e.prototype.addBracket = function(e, t, n) {
- null !== this.brackets && (this.brackets.bracketAfter = !0), this.brackets = {
- node: e,
- startpos: this.sourcepos(t + (n ? 0 : 1)),
- previous: this.brackets,
- previousDelimiter: this.delimiters,
- index: t,
- image: n,
- active: !0
- }
- }, e.prototype.removeBracket = function() {
- this.brackets && (this.brackets = this.brackets.previous)
- }, e.prototype.parseEntity = function(e) {
- var t, n = this.pos + 1;
- return !!(t = this.match(Pd)) && (e.appendChild(ud(Zc.decodeHTML(t), this.sourcepos(n, this.pos))), !0)
- }, e.prototype.parseString = function(e) {
- var t, n = this.pos + 1;
- if (t = this.match(Kd)) {
- if (this.options.smart) {
- var r = t.replace(Hd, "…").replace(zd, (function(e) {
- var t = 0,
- n = 0;
- return e.length % 3 == 0 ? n = e.length / 3 : e.length % 2 == 0 ? t = e.length / 2 : e.length % 3 == 2 ? (t = 1, n = (e.length - 2) / 3) : (t = 2, n = (e.length - 4) / 3), zu("—", n) + zu("–", t)
- }));
- e.appendChild(ud(r, this.sourcepos(n, this.pos)))
- } else {
- var o = ud(t, this.sourcepos(n, this.pos));
- e.appendChild(o)
- }
- return !0
- }
- return !1
- }, e.prototype.parseNewline = function(e) {
- this.pos += 1;
- var t = e.lastChild;
- if (t && "text" === t.type && " " === t.literal[t.literal.length - 1]) {
- var n = " " === t.literal[t.literal.length - 2],
- r = t.literal.length;
- t.literal = t.literal.replace(Ud, "");
- var o = r - t.literal.length;
- t.sourcepos[1][1] -= o, e.appendChild(id(n ? "linebreak" : "softbreak", this.sourcepos(this.pos - o, this.pos)))
- } else e.appendChild(id("softbreak", this.sourcepos(this.pos, this.pos)));
- return this.nextLine(), this.match(Wd), !0
- }, e.prototype.parseReference = function(e, t) {
- if (!this.options.referenceDefinition) return 0;
- this.subject = e.stringContent, this.pos = 0;
- var n = null,
- r = this.pos,
- o = this.parseLinkLabel();
- if (0 === o) return 0;
- var i = this.subject.substr(0, o);
- if (58 !== this.peek()) return this.pos = r, 0;
- this.pos++, this.spnl();
- var s = this.parseLinkDestination();
- if (null === s) return this.pos = r, 0;
- var a = this.pos;
- this.spnl(), this.pos !== a && (n = this.parseLinkTitle()), null === n && (n = "", this.pos = a);
- var l = !0;
- if (null === this.match(Jd) && ("" === n ? l = !1 : (n = "", this.pos = a, l = null !== this.match(Jd))), !l) return this.pos = r, 0;
- var c = Cd(i);
- if ("" === c) return this.pos = r, 0;
- var u = this.getReferenceDefSourcepos(e);
- e.sourcepos[0][0] = u[1][0] + 1;
- var d = id("refDef", u);
- return d.title = n, d.dest = s, d.label = c, e.insertBefore(d), t[c] ? this.refDefCandidateMap[d.id] = d : t[c] = $p(d), this.pos - r
- }, e.prototype.mergeTextNodes = function(e) {
- for (var t, n = []; t = e.next();) {
- var r = t.entering,
- o = t.node;
- if (r && "text" === o.type) n.push(o);
- else if (1 === n.length) n = [];
- else if (n.length > 1) {
- var i = n[0],
- s = n[n.length - 1];
- i.sourcepos && s.sourcepos && (i.sourcepos[1] = s.sourcepos[1]), i.next = s.next, i.next && (i.next.prev = i);
- for (var a = 1; a < n.length; a += 1) i.literal += n[a].literal, n[a].unlink();
- n = []
- }
- }
- }, e.prototype.getReferenceDefSourcepos = function(e) {
- for (var t = e.stringContent.split(/\n|\r\n/), n = !1, r = 0, o = {
- line: 0,
- ch: 0
- }, i = 0; i < t.length; i += 1) {
- var s = t[i];
- if ($d.test(s)) break;
- if (/\:/.test(s) && 0 === r) {
- if (n) break;
- var a = s.indexOf(":") === s.length - 1 ? i + 1 : i;
- o = {
- line: a,
- ch: t[a].length
- }, n = !0
- }
- var l = s.match(/'|"/g);
- if (l && (r += l.length), 2 === r) {
- o = {
- line: i,
- ch: s.length
- };
- break
- }
- }
- return [
- [e.sourcepos[0][0], e.sourcepos[0][1]],
- [e.sourcepos[0][0] + o.line, o.ch]
- ]
- }, e.prototype.parseInline = function(e) {
- var t, n = !1,
- r = this.peek();
- if (-1 === r) return !1;
- switch (r) {
- case 10:
- n = this.parseNewline(e);
- break;
- case 92:
- n = this.parseBackslash(e);
- break;
- case 96:
- n = this.parseBackticks(e);
- break;
- case 42:
- case 95:
- case Sd:
- case Od:
- n = this.handleDelim(r, e);
- break;
- case Ed:
- case Nd:
- n = !!(null === (t = this.options) || void 0 === t ? void 0 : t.smart) && this.handleDelim(r, e);
- break;
- case 91:
- n = this.parseOpenBracket(e);
- break;
- case 33:
- n = this.parseBang(e);
- break;
- case 93:
- n = this.parseCloseBracket(e);
- break;
- case 60:
- n = this.parseAutolink(e) || this.parseHtmlTag(e);
- break;
- case 38:
- e.disabledEntityParse || (n = this.parseEntity(e));
- break;
- default:
- n = this.parseString(e)
- }
- return n || (this.pos += 1, e.appendChild(ud(yd(r), this.sourcepos(this.pos, this.pos + 1)))), !0
- }, e.prototype.parse = function(e) {
- for (this.subject = e.stringContent.trim(), this.pos = 0, this.delimiters = null, this.brackets = null, this.lineOffsets = e.lineOffsets || [0], this.lineIdx = 0, this.linePosOffset = 0, this.lineStartNum = e.sourcepos[0][0], function(e) {
- return "heading" === e.type
- }(e) && (this.lineOffsets[0] += e.level + 1); this.parseInline(e););
- e.stringContent = null, this.processEmphasis(null), this.mergeTextNodes(e.walker());
- var t = this.options,
- n = t.extendedAutolinks,
- r = t.customParser;
- if (n && function(e, t) {
- var n;
- "boolean" == typeof t && (t = kd);
- for (var r = function() {
- var e = n.entering,
- r = n.node;
- if (e && "text" === r.type && "link" !== r.parent.type) {
- var o = r.literal,
- i = t(o);
- if (!i || !i.length) return "continue";
- for (var s = 0, a = r.sourcepos[0], l = a[0], c = a[1], u = function(e, t) {
- return [
- [l, c + e],
- [l, c + t]
- ]
- }, d = [], p = 0, h = i; p < h.length; p++) {
- var f = h[p],
- m = f.range,
- g = f.url,
- v = f.text;
- m[0] > s && d.push(ud(o.substring(s, m[0]), u(s, m[0] - 1)));
- var y = id("link", u.apply(void 0, m));
- y.appendChild(ud(v, u.apply(void 0, m))), y.destination = g, y.extendedAutolink = !0, d.push(y), s = m[1] + 1
- }
- s < o.length && d.push(ud(o.substring(s), u(s, o.length - 1)));
- for (var b = 0, w = d; b < w.length; b++) {
- var k = w[b];
- r.insertBefore(k)
- }
- r.unlink()
- }
- }; n = e.next();) r()
- }(e.walker(), n), r && e.firstChild)
- for (var o, i = e.firstChild.walker(); o = i.next();) {
- var s = o.node,
- a = o.entering;
- r[s.type] && r[s.type](s, {
- entering: a,
- options: this.options
- })
- }
- }, e
- }(),
- Xd = /^\[([ \txX])\][ \t]+/;
- var Qd = /[^ \t\f\v\r\n]/,
- Yd = /^(?:`{3,}|~{3,})(?= *$)/;
-
- function ep(e) {
- for (var t = e; t;) {
- if (t.lastLineBlank) return !0;
- var n = t.type;
- if (t.lastLineChecked || "list" !== n && "item" !== n) {
- t.lastLineChecked = !0;
- break
- }
- t.lastLineChecked = !0, t = t.lastChild
- }
- return !1
- }
-
- function tp(e, t) {
- return t < e.length ? e.charCodeAt(t) : -1
- }
-
- function np(e) {
- return !Qd.test(e)
- }
-
- function rp(e) {
- return 32 === e || 9 === e
- }
- var op = /^\$\$$/,
- ip = {
- continue: function(e, t) {
- var n = e.currentLine,
- r = n.match(op);
- if (r) return e.lastLineLength = r[0].length, e.finalize(t, e.lineNumber), 2;
- for (var o = t.offset; o > 0 && rp(tp(n, e.offset));) e.advanceOffset(1, !0), o--;
- return 0
- },
- finalize: function(e, t) {
- if (null !== t.stringContent) {
- var n = t.stringContent,
- r = n.indexOf("\n"),
- o = n.slice(0, r),
- i = n.slice(r + 1),
- s = o.match(/^(\s*)(.*)/);
- t.info = Pu(s[2].trim()), t.literal = i, t.stringContent = null
- }
- },
- canContain: function() {
- return !1
- },
- acceptsLines: !0
- },
- sp = {
- continue: function() {
- return 1
- },
- finalize: function() {},
- canContain: function() {
- return !1
- },
- acceptsLines: !0
- },
- ap = {
- continue: function() {
- return 0
- },
- finalize: function(e, t) {
- for (var n = t.firstChild; n;) {
- if (ep(n) && n.next) {
- t.listData.tight = !1;
- break
- }
- for (var r = n.firstChild; r;) {
- if (ep(r) && (n.next || r.next)) {
- t.listData.tight = !1;
- break
- }
- r = r.next
- }
- n = n.next
- }
- },
- canContain: function(e) {
- return "item" === e
- },
- acceptsLines: !1
- },
- lp = {
- continue: function(e, t) {
- if (e.blank) {
- if (null === t.firstChild) return 1;
- e.advanceNextNonspace()
- } else {
- if (!(e.indent >= t.listData.markerOffset + t.listData.padding)) return 1;
- e.advanceOffset(t.listData.markerOffset + t.listData.padding, !0)
- }
- return 0
- },
- finalize: function(e, t) {
- if (t.firstChild && "paragraph" === t.firstChild.type) {
- var n = t.firstChild,
- r = n.stringContent.match(Xd);
- if (r) {
- var o = r[0].length;
- n.stringContent = n.stringContent.substring(o - 1), n.sourcepos[0][1] += o, n.lineOffsets[0] += o, t.listData.task = !0, t.listData.checked = /[xX]/.test(r[1])
- }
- }
- },
- canContain: function(e) {
- return "item" !== e
- },
- acceptsLines: !1
- },
- cp = {
- continue: function(e, t) {
- var n = e.currentLine,
- r = e.indent;
- if (t.isFenced) {
- var o = r <= 3 && n.charAt(e.nextNonspace) === t.fenceChar && n.slice(e.nextNonspace).match(Yd);
- if (o && o[0].length >= t.fenceLength) return e.lastLineLength = e.offset + r + o[0].length, e.finalize(t, e.lineNumber), 2;
- for (var i = t.fenceOffset; i > 0 && rp(tp(n, e.offset));) e.advanceOffset(1, !0), i--
- } else if (r >= 4) e.advanceOffset(4, !0);
- else {
- if (!e.blank) return 1;
- e.advanceNextNonspace()
- }
- return 0
- },
- finalize: function(e, t) {
- var n;
- if (null !== t.stringContent) {
- if (t.isFenced) {
- var r = t.stringContent,
- o = r.indexOf("\n"),
- i = r.slice(0, o),
- s = r.slice(o + 1),
- a = i.match(/^(\s*)(.*)/);
- t.infoPadding = a[1].length, t.info = Pu(a[2].trim()), t.literal = s
- } else t.literal = null === (n = t.stringContent) || void 0 === n ? void 0 : n.replace(/(\n *)+$/, "\n");
- t.stringContent = null
- }
- },
- canContain: function() {
- return !1
- },
- acceptsLines: !0
- },
- up = {
- continue: function(e) {
- return e.blank ? 1 : 0
- },
- finalize: function(e, t) {
- if (null !== t.stringContent) {
- for (var n, r = !1; 91 === tp(t.stringContent, 0) && (n = e.inlineParser.parseReference(t, e.refMap));) t.stringContent = t.stringContent.slice(n), r = !0;
- r && np(t.stringContent) && t.unlink()
- }
- },
- canContain: function() {
- return !1
- },
- acceptsLines: !0
- },
- dp = {
- document: {
- continue: function() {
- return 0
- },
- finalize: function() {},
- canContain: function(e) {
- return "item" !== e
- },
- acceptsLines: !1
- },
- list: ap,
- blockQuote: {
- continue: function(e) {
- var t = e.currentLine;
- return e.indented || 62 !== tp(t, e.nextNonspace) ? 1 : (e.advanceNextNonspace(), e.advanceOffset(1, !1), rp(tp(t, e.offset)) && e.advanceOffset(1, !0), 0)
- },
- finalize: function() {},
- canContain: function(e) {
- return "item" !== e
- },
- acceptsLines: !1
- },
- item: lp,
- heading: {
- continue: function() {
- return 1
- },
- finalize: function() {},
- canContain: function() {
- return !1
- },
- acceptsLines: !1
- },
- thematicBreak: {
- continue: function() {
- return 1
- },
- finalize: function() {},
- canContain: function() {
- return !1
- },
- acceptsLines: !1
- },
- codeBlock: cp,
- htmlBlock: {
- continue: function(e, t) {
- return !e.blank || 6 !== t.htmlBlockType && 7 !== t.htmlBlockType ? 0 : 1
- },
- finalize: function(e, t) {
- var n;
- t.literal = (null === (n = t.stringContent) || void 0 === n ? void 0 : n.replace(/(\n *)+$/, "")) || null, t.stringContent = null
- },
- canContain: function() {
- return !1
- },
- acceptsLines: !0
- },
- paragraph: up,
- table: {
- continue: function() {
- return 0
- },
- finalize: function() {},
- canContain: function(e) {
- return "tableHead" === e || "tableBody" === e
- },
- acceptsLines: !1
- },
- tableBody: {
- continue: function() {
- return 0
- },
- finalize: function() {},
- canContain: function(e) {
- return "tableRow" === e
- },
- acceptsLines: !1
- },
- tableHead: {
- continue: function() {
- return 1
- },
- finalize: function() {},
- canContain: function(e) {
- return "tableRow" === e || "tableDelimRow" === e
- },
- acceptsLines: !1
- },
- tableRow: {
- continue: function() {
- return 1
- },
- finalize: function() {},
- canContain: function(e) {
- return "tableCell" === e
- },
- acceptsLines: !1
- },
- tableCell: {
- continue: function() {
- return 1
- },
- finalize: function() {},
- canContain: function() {
- return !1
- },
- acceptsLines: !1
- },
- tableDelimRow: {
- continue: function() {
- return 1
- },
- finalize: function() {},
- canContain: function(e) {
- return "tableDelimCell" === e
- },
- acceptsLines: !1
- },
- tableDelimCell: {
- continue: function() {
- return 1
- },
- finalize: function() {},
- canContain: function() {
- return !1
- },
- acceptsLines: !1
- },
- refDef: sp,
- customBlock: ip,
- frontMatter: sp
- };
-
- function pp(e) {
- for (var t = 0, n = 0, r = [], o = 0; o < e.length; o += 1)
- if ("|" === e[o] && "\\" !== e[o - 1]) {
- var i = e.substring(t, o);
- 0 === t && qu(i) ? n = o + 1 : r.push(i), t = o + 1
- } t < e.length && (qu(i = e.substring(t, e.length)) || r.push(i));
- return [n, r]
- }
-
- function hp(e, t, n, r) {
- for (var o = [], i = 0, s = t; i < s.length; i++) {
- var a = s[i],
- l = a.match(/^[ \t]+/),
- c = l ? l[0].length : 0,
- u = void 0,
- d = void 0;
- if (c === a.length) c = 0, u = 0, d = "";
- else {
- var p = a.match(/[ \t]+$/);
- u = p ? p[0].length : 0, d = a.slice(c, a.length - u)
- }
- var h = r + c,
- f = id(e, [
- [n, r],
- [n, r + a.length - 1]
- ]);
- f.stringContent = d.replace(/\\\|/g, "|"), f.startIdx = o.length, f.endIdx = o.length, f.lineOffsets = [h - 1], f.paddingLeft = c, f.paddingRight = u, o.push(f), r += a.length + 1
- }
- return o
- }
-
- function fp(e) {
- var t = null,
- n = e.stringContent,
- r = n[0];
- return ":" === n[n.length - 1] ? t = ":" === r ? "center" : "right" : ":" === r && (t = "left"), {
- align: t
- }
- }
- var mp = /^(\$\$)(\s*[a-zA-Z])+/,
- gp = /^(\$\$)(\s*[a-zA-Z])+.*(\$\$)/,
- vp = /^`{3,}(?!.*`)|^~{3,}/,
- yp = [/./, /^<(?:script|pre|style)(?:\s|>|$)/i, /^/, /\?>/, />/, /\]\]>/],
- Dp = /^[#`~*+_=<>0-9-;$]/,
- Ap = /\r\n|\n|\r/;
-
- function Lp() {
- return id("document", [
- [1, 1],
- [0, 0]
- ])
- }
- var Ip = {
- smart: !1,
- tagFilter: !1,
- extendedAutolinks: !1,
- disallowedHtmlBlockTags: [],
- referenceDefinition: !1,
- disallowDeepHeading: !1,
- customParser: null,
- frontMatter: !1
- },
- Rp = function() {
- function e(e) {
- this.options = _c(_c({}, Ip), e), this.doc = Lp(), this.tip = this.doc, this.oldtip = this.doc, this.lineNumber = 0, this.offset = 0, this.column = 0, this.nextNonspace = 0, this.nextNonspaceColumn = 0, this.indent = 0, this.currentLine = "", this.indented = !1, this.blank = !1, this.partiallyConsumedTab = !1, this.allClosed = !0, this.lastMatchedContainer = this.doc, this.refMap = {}, this.refLinkCandidateMap = {}, this.refDefCandidateMap = {}, this.lastLineLength = 0, this.lines = [], this.options.frontMatter && (dp.frontMatter = Np, Mp.unshift(Ep)), this.inlineParser = new Zd(this.options)
- }
- return e.prototype.advanceOffset = function(e, t) {
- void 0 === t && (t = !1);
- for (var n, r, o, i = this.currentLine; e > 0 && (o = i[this.offset]);) "\t" === o ? (n = 4 - this.column % 4, t ? (this.partiallyConsumedTab = n > e, r = n > e ? e : n, this.column += r, this.offset += this.partiallyConsumedTab ? 0 : 1, e -= r) : (this.partiallyConsumedTab = !1, this.column += n, this.offset += 1, e -= 1)) : (this.partiallyConsumedTab = !1, this.offset += 1, this.column += 1, e -= 1)
- }, e.prototype.advanceNextNonspace = function() {
- this.offset = this.nextNonspace, this.column = this.nextNonspaceColumn, this.partiallyConsumedTab = !1
- }, e.prototype.findNextNonspace = function() {
- for (var e, t = this.currentLine, n = this.offset, r = this.column;
- "" !== (e = t.charAt(n));)
- if (" " === e) n++, r++;
- else {
- if ("\t" !== e) break;
- n++, r += 4 - r % 4
- } this.blank = "\n" === e || "\r" === e || "" === e, this.nextNonspace = n, this.nextNonspaceColumn = r, this.indent = this.nextNonspaceColumn - this.column, this.indented = this.indent >= 4
- }, e.prototype.addLine = function() {
- if (this.partiallyConsumedTab) {
- this.offset += 1;
- var e = 4 - this.column % 4;
- this.tip.stringContent += zu(" ", e)
- }
- this.tip.lineOffsets ? this.tip.lineOffsets.push(this.offset) : this.tip.lineOffsets = [this.offset], this.tip.stringContent += this.currentLine.slice(this.offset) + "\n"
- }, e.prototype.addChild = function(e, t) {
- for (; !dp[this.tip.type].canContain(e);) this.finalize(this.tip, this.lineNumber - 1);
- var n = t + 1,
- r = id(e, [
- [this.lineNumber, n],
- [0, 0]
- ]);
- return r.stringContent = "", this.tip.appendChild(r), this.tip = r, r
- }, e.prototype.closeUnmatchedBlocks = function() {
- if (!this.allClosed) {
- for (; this.oldtip !== this.lastMatchedContainer;) {
- var e = this.oldtip.parent;
- this.finalize(this.oldtip, this.lineNumber - 1), this.oldtip = e
- }
- this.allClosed = !0
- }
- }, e.prototype.finalize = function(e, t) {
- var n = e.parent;
- e.open = !1, e.sourcepos[1] = [t, this.lastLineLength], dp[e.type].finalize(this, e), this.tip = n
- }, e.prototype.processInlines = function(e) {
- var t, n = this.options.customParser,
- r = e.walker();
- for (this.inlineParser.refMap = this.refMap, this.inlineParser.refLinkCandidateMap = this.refLinkCandidateMap, this.inlineParser.refDefCandidateMap = this.refDefCandidateMap, this.inlineParser.options = this.options; t = r.next();) {
- var o = t.node,
- i = t.entering,
- s = o.type;
- n && n[s] && n[s](o, {
- entering: i,
- options: this.options
- }), i || "paragraph" !== s && "heading" !== s && ("tableCell" !== s || o.ignored) || this.inlineParser.parse(o)
- }
- }, e.prototype.incorporateLine = function(e) {
- var t = this.doc;
- this.oldtip = this.tip, this.offset = 0, this.column = 0, this.blank = !1, this.partiallyConsumedTab = !1, this.lineNumber += 1, -1 !== e.indexOf("\0") && (e = e.replace(/\0/g, "�")), this.currentLine = e;
- for (var n, r = !0;
- (n = t.lastChild) && n.open;) {
- switch (t = n, this.findNextNonspace(), dp[t.type].continue(this, t)) {
- case 0:
- break;
- case 1:
- r = !1;
- break;
- case 2:
- return void(this.lastLineLength = e.length);
- default:
- throw new Error("continue returned illegal value, must be 0, 1, or 2")
- }
- if (!r) {
- t = t.parent;
- break
- }
- }
- this.allClosed = t === this.oldtip, this.lastMatchedContainer = t;
- for (var o = "paragraph" !== t.type && dp[t.type].acceptsLines, i = Mp.length; !o;) {
- if (this.findNextNonspace(), "table" !== t.type && "tableBody" !== t.type && "paragraph" !== t.type && !this.indented && !Dp.test(e.slice(this.nextNonspace))) {
- this.advanceNextNonspace();
- break
- }
- for (var s = 0; s < i;) {
- var a = Mp[s](this, t);
- if (1 === a) {
- t = this.tip;
- break
- }
- if (2 === a) {
- t = this.tip, o = !0;
- break
- }
- s++
- }
- if (s === i) {
- this.advanceNextNonspace();
- break
- }
- }
- if (this.allClosed || this.blank || "paragraph" !== this.tip.type) {
- this.closeUnmatchedBlocks(), this.blank && t.lastChild && (t.lastChild.lastLineBlank = !0);
- for (var l = t.type, c = this.blank && !("blockQuote" === l || sd(t) && t.isFenced || "item" === l && !t.firstChild && t.sourcepos[0][0] === this.lineNumber), u = t; u;) u.lastLineBlank = c, u = u.parent;
- dp[l].acceptsLines ? (this.addLine(), function(e) {
- return "htmlBlock" === e.type
- }(t) && t.htmlBlockType >= 1 && t.htmlBlockType <= 5 && Op[t.htmlBlockType].test(this.currentLine.slice(this.offset)) && (this.lastLineLength = e.length, this.finalize(t, this.lineNumber))) : this.offset < e.length && !this.blank && (t = this.addChild("paragraph", this.offset), this.advanceNextNonspace(), this.addLine())
- } else this.addLine();
- this.lastLineLength = e.length
- }, e.prototype.parse = function(e, t) {
- this.doc = Lp(), this.tip = this.doc, this.lineNumber = 0, this.lastLineLength = 0, this.offset = 0, this.column = 0, this.lastMatchedContainer = this.doc, this.currentLine = "";
- var n = e.split(Ap),
- r = n.length;
- this.lines = t || n, this.options.referenceDefinition && this.clearRefMaps(), 10 === e.charCodeAt(e.length - 1) && (r -= 1);
- for (var o = 0; o < r; o++) this.incorporateLine(n[o]);
- for (; this.tip;) this.finalize(this.tip, r);
- return this.processInlines(this.doc), this.doc
- }, e.prototype.partialParseStart = function(e, t) {
- this.doc = Lp(), this.tip = this.doc, this.lineNumber = e - 1, this.lastLineLength = 0, this.offset = 0, this.column = 0, this.lastMatchedContainer = this.doc, this.currentLine = "";
- for (var n = t.length, r = 0; r < n; r++) this.incorporateLine(t[r]);
- return this.doc
- }, e.prototype.partialParseExtends = function(e) {
- for (var t = 0; t < e.length; t++) this.incorporateLine(e[t])
- }, e.prototype.partialParseFinish = function() {
- for (; this.tip;) this.finalize(this.tip, this.lineNumber);
- this.processInlines(this.doc)
- }, e.prototype.setRefMaps = function(e, t, n) {
- this.refMap = e, this.refLinkCandidateMap = t, this.refDefCandidateMap = n
- }, e.prototype.clearRefMaps = function() {
- [this.refMap, this.refLinkCandidateMap, this.refDefCandidateMap].forEach((function(e) {
- var t;
- t = e, Object.keys(t).forEach((function(e) {
- delete t[e]
- }))
- }))
- }, e
- }();
-
- function Pp(e, t) {
- return e[0] < t[0] ? 1 : e[0] > t[0] ? -1 : e[1] < t[1] ? 1 : e[1] > t[1] ? -1 : 0
- }
-
- function Bp(e, t) {
- var n = e[0];
- return 1 === Pp(e[1], t) ? 1 : -1 === Pp(n, t) ? -1 : 0
- }
-
- function Fp(e, t) {
- for (var n = 0, r = t; n < r.length; n++) {
- var o = r[n];
- e.insertBefore(o)
- }
- }
-
- function Hp(e, t) {
- var n = e[0];
- return e[1][0] < t ? 1 : n[0] > t ? -1 : 0
- }
-
- function zp(e, t) {
- for (var n = e.firstChild; n;) {
- var r = Hp(n.sourcepos, t);
- if (0 === r) return n;
- if (-1 === r) return n.prev || n;
- n = n.next
- }
- return e.lastChild
- }
-
- function qp(e) {
- return function(e) {
- return _u[e]
- }(e) || null
- }
-
- function Vp(e, t, n) {
- if (void 0 === n && (n = null), t)
- for (var r = t.walker(); t && t !== n;) {
- e(t);
- var o = r.next();
- if (!o) break;
- t = o.node
- }
- }
- var jp = /\r\n|\n|\r/;
-
- function $p(e) {
- return {
- id: e.id,
- title: e.title,
- sourcepos: e.sourcepos,
- unlinked: !1,
- destination: e.dest
- }
- }
- var _p = function() {
- function e(e, t) {
- this.refMap = {}, this.refLinkCandidateMap = {}, this.refDefCandidateMap = {}, this.referenceDefinition = !!(null == t ? void 0 : t.referenceDefinition), this.parser = new Rp(t), this.parser.setRefMaps(this.refMap, this.refLinkCandidateMap, this.refDefCandidateMap), this.eventHandlerMap = {
- change: []
- }, e = e || "", this.lineTexts = e.split(jp), this.root = this.parser.parse(e, this.lineTexts)
- }
- return e.prototype.updateLineTexts = function(e, t, n) {
- var r, o = e[0],
- i = e[1],
- s = t[0],
- a = t[1],
- l = n.split(jp),
- c = l.length,
- u = this.lineTexts[o - 1],
- d = this.lineTexts[s - 1];
- l[0] = u.slice(0, i - 1) + l[0], l[c - 1] = l[c - 1] + d.slice(a - 1);
- var p = s - o + 1;
- return (r = this.lineTexts).splice.apply(r, Uc([o - 1, p], l)), c - p
- }, e.prototype.updateRootNodeState = function() {
- if (1 === this.lineTexts.length && "" === this.lineTexts[0]) return this.root.lastLineBlank = !0, void(this.root.sourcepos = [
- [1, 1],
- [1, 0]
- ]);
- this.root.lastChild && (this.root.lastLineBlank = this.root.lastChild.lastLineBlank);
- for (var e = this.lineTexts, t = e.length - 1;
- "" === e[t];) t -= 1;
- e.length - 2 > t && (t += 1), this.root.sourcepos[1] = [t + 1, e[t].length]
- }, e.prototype.replaceRangeNodes = function(e, t, n) {
- e ? (Fp(e, n), function(e, t) {
- if (e.parent === t.parent && e !== t) {
- for (var n = e.next; n && n !== t;) {
- for (var r = n.next, o = 0, i = ["parent", "prev", "next"]; o < i.length; o++) {
- var s = i[o];
- n[s] && (Uu(n[s].id), n[s] = null)
- }
- n = r
- }
- e.next = t.next, t.next ? t.next.prev = e : e.parent.lastChild = e
- }
- }(e, t), [e.id, t.id].forEach((function(e) {
- return Uu(e)
- })), e.unlink()) : t ? (Fp(t, n), Uu(t.id), t.unlink()) : function(e, t) {
- for (var n = t.length - 1; n >= 0; n -= 1) e.prependChild(t[n])
- }(this.root, n)
- }, e.prototype.getNodeRange = function(e, t) {
- var n = zp(this.root, e[0]),
- r = zp(this.root, t[0]);
- return r && r.next && t[0] + 1 === r.next.sourcepos[0][0] && (r = r.next), [n, r]
- }, e.prototype.trigger = function(e, t) {
- this.eventHandlerMap[e].forEach((function(e) {
- e(t)
- }))
- }, e.prototype.extendEndLine = function(e) {
- for (;
- "" === this.lineTexts[e];) e += 1;
- return e
- }, e.prototype.parseRange = function(e, t, n, r) {
- var o;
- e && e.prev && (ad(e.prev) && function(e) {
- var t = e.match(/^[ \t]+/);
- if (t && (t[0].length >= 2 || /\t/.test(t[0]))) return !0;
- var n = t ? e.slice(t.length) : e;
- return xp.test(n) || Cp.test(n)
- }(this.lineTexts[n - 1]) || function(e) {
- return "table" === e.type
- }(e.prev) && (!np(o = this.lineTexts[n - 1]) && -1 !== o.indexOf("|"))) && (n = (e = e.prev).sourcepos[0][0]);
- for (var i = this.lineTexts.slice(n - 1, r), s = this.parser.partialParseStart(n, i), a = t ? t.next : this.root.firstChild, l = s.lastChild, c = l && sd(l) && l.open, u = l && cd(l) && l.open, d = l && ad(l);
- (c || u) && a || d && a && ("list" === a.type || a.sourcepos[0][1] >= 2);) {
- var p = this.extendEndLine(a.sourcepos[1][0]);
- this.parser.partialParseExtends(this.lineTexts.slice(r, p)), e || (e = t), t = a, r = p, a = a.next
- }
- return this.parser.partialParseFinish(), {
- newNodes: function(e) {
- for (var t = [], n = e.firstChild; n;) t.push(n), n = n.next;
- return t
- }(s),
- extStartNode: e,
- extEndNode: t
- }
- }, e.prototype.getRemovedNodeRange = function(e, t) {
- return !e || e && ld(e) || t && ld(t) ? null : {
- id: [e.id, t.id],
- line: [e.sourcepos[0][0] - 1, t.sourcepos[1][0] - 1]
- }
- }, e.prototype.markDeletedRefMap = function(e, t) {
- var n = this;
- if (!Md(this.refMap)) {
- var r = function(e) {
- if (ld(e)) {
- var t = n.refMap[e.label];
- t && e.id === t.id && (t.unlinked = !0)
- }
- };
- e && Vp(r, e.parent, t), t && Vp(r, t)
- }
- }, e.prototype.replaceWithNewRefDefState = function(e) {
- var t = this;
- if (!Md(this.refMap)) {
- var n = function(e) {
- if (ld(e)) {
- var n = e.label,
- r = t.refMap[n];
- r && !r.unlinked || (t.refMap[n] = $p(e))
- }
- };
- e.forEach((function(e) {
- Vp(n, e)
- }))
- }
- }, e.prototype.replaceWithRefDefCandidate = function() {
- var e = this;
- Md(this.refDefCandidateMap) || Td(this.refDefCandidateMap, (function(t, n) {
- var r = n.label,
- o = n.sourcepos,
- i = e.refMap[r];
- (!i || i.unlinked || i.sourcepos[0][0] > o[0][0]) && (e.refMap[r] = $p(n))
- }))
- }, e.prototype.getRangeWithRefDef = function(e, t, n, r, o) {
- if (this.referenceDefinition && !Md(this.refMap)) {
- var i = zp(this.root, e - 1),
- s = zp(this.root, t + 1);
- i && ld(i) && i !== n && i !== r && (e = (n = i).sourcepos[0][0]), s && ld(s) && s !== n && s !== r && (r = s, t = this.extendEndLine(r.sourcepos[1][0] + o))
- }
- return [n, r, e, t]
- }, e.prototype.parse = function(e, t, n) {
- void 0 === n && (n = 0);
- var r = this.getNodeRange(e, t),
- o = r[0],
- i = r[1],
- s = o ? Math.min(o.sourcepos[0][0], e[0]) : e[0],
- a = this.extendEndLine((i ? Math.max(i.sourcepos[1][0], t[0]) : t[0]) + n),
- l = this.parseRange.apply(this, this.getRangeWithRefDef(s, a, o, i, n)),
- c = l.newNodes,
- u = l.extStartNode,
- d = l.extEndNode,
- p = this.getRemovedNodeRange(u, d),
- h = d ? d.next : this.root.firstChild;
- return this.referenceDefinition ? (this.markDeletedRefMap(u, d), this.replaceRangeNodes(u, d, c), this.replaceWithNewRefDefState(c)) : this.replaceRangeNodes(u, d, c), {
- nodes: c,
- removedNodeRange: p,
- nextNode: h
- }
- }, e.prototype.parseRefLink = function() {
- var e = this,
- t = [];
- return Md(this.refMap) || Td(this.refMap, (function(n, r) {
- r.unlinked && delete e.refMap[n], Td(e.refLinkCandidateMap, (function(r, o) {
- var i = o.node;
- o.refLabel === n && t.push(e.parse(i.sourcepos[0], i.sourcepos[1]))
- }))
- })), t
- }, e.prototype.removeUnlinkedCandidate = function() {
- Md(this.refDefCandidateMap) || [this.refLinkCandidateMap, this.refDefCandidateMap].forEach((function(e) {
- Td(e, (function(t) {
- (function(e) {
- var t = qp(e);
- if (!t) return !0;
- for (; t && "document" !== t.type;) {
- if (!t.parent && !t.prev && !t.next) return !0;
- t = t.parent
- }
- return !1
- })(t) && delete e[t]
- }))
- }))
- }, e.prototype.editMarkdown = function(e, t, n) {
- var r = this.updateLineTexts(e, t, n),
- o = this.parse(e, t, r),
- i = function(e) {
- for (var t = [], n = 1; n < arguments.length; n++) t[n - 1] = arguments[n];
- var r = _c({}, e);
- return t.forEach((function(e) {
- delete r[e]
- })), r
- }(o, "nextNode");
- ! function(e, t) {
- if (e && e.parent && 0 !== t) {
- var n, r = e.parent.walker();
- for (r.resumeAt(e, !0); n = r.next();) {
- var o = n.node;
- n.entering && (o.sourcepos[0][0] += t, o.sourcepos[1][0] += t)
- }
- }
- }(o.nextNode, r), this.updateRootNodeState();
- var s = [i];
- return this.referenceDefinition && (this.removeUnlinkedCandidate(), this.replaceWithRefDefCandidate(), s = s.concat(this.parseRefLink())), this.trigger("change", s), s
- }, e.prototype.getLineTexts = function() {
- return this.lineTexts
- }, e.prototype.getRootNode = function() {
- return this.root
- }, e.prototype.findNodeAtPosition = function(e) {
- var t = function(e, t) {
- for (var n = e, r = null; n;) {
- var o = Bp(n.sourcepos, t);
- if (0 === o) {
- if (!n.firstChild) return n;
- r = n, n = n.firstChild
- } else {
- if (-1 === o) return r;
- if (!n.next) return r;
- n = n.next
- }
- }
- return n
- }(this.root, e);
- return t && t !== this.root ? t : null
- }, e.prototype.findFirstNodeAtLine = function(e) {
- return function(e, t) {
- for (var n = e.firstChild, r = null; n;) {
- var o = Hp(n.sourcepos, t);
- if (0 === o) {
- if (n.sourcepos[0][0] === t || !n.firstChild) return n;
- r = n, n = n.firstChild
- } else {
- if (-1 === o) break;
- r = n, n = n.next
- }
- }
- return r ? function(e) {
- for (; e.parent && "document" !== e.parent.type && e.parent.sourcepos[0][0] === e.sourcepos[0][0];) e = e.parent;
- return e
- }(function(e) {
- for (; e.lastChild;) e = e.lastChild;
- return e
- }(r)) : null
- }(this.root, e)
- }, e.prototype.on = function(e, t) {
- this.eventHandlerMap[e].push(t)
- }, e.prototype.off = function(e, t) {
- var n = this.eventHandlerMap[e],
- r = n.indexOf(t);
- n.splice(r, 1)
- }, e.prototype.findNodeById = function(e) {
- return qp(e)
- }, e.prototype.removeAllNode = function() {
- _u = {}
- }, e
- }(),
- Up = new RegExp("<(/?(?:" + ["title", "textarea", "style", "xmp", "iframe", "noembed", "noframes", "script", "plaintext"].join("|") + ")[^>]*>)", "ig");
-
- function Wp(e) {
- return Up.test(e) ? e.replace(Up, (function(e, t) {
- return "<" + t
- })) : e
- }
- var Jp = {
- heading: function(e, t) {
- return {
- type: t.entering ? "openTag" : "closeTag",
- tagName: "h" + e.level,
- outerNewLine: !0
- }
- },
- text: function(e) {
- return {
- type: "text",
- content: e.literal
- }
- },
- softbreak: function(e, t) {
- return {
- type: "html",
- content: t.options.softbreak
- }
- },
- linebreak: function() {
- return {
- type: "html",
- content: "
\n"
- }
- },
- emph: function(e, t) {
- return {
- type: t.entering ? "openTag" : "closeTag",
- tagName: "em"
- }
- },
- strong: function(e, t) {
- return {
- type: t.entering ? "openTag" : "closeTag",
- tagName: "strong"
- }
- },
- paragraph: function(e, t) {
- var n, r = t.entering,
- o = null === (n = e.parent) || void 0 === n ? void 0 : n.parent;
- return o && "list" === o.type && o.listData.tight ? null : {
- type: r ? "openTag" : "closeTag",
- tagName: "p",
- outerNewLine: !0
- }
- },
- thematicBreak: function() {
- return {
- type: "openTag",
- tagName: "hr",
- outerNewLine: !0,
- selfClose: !0
- }
- },
- blockQuote: function(e, t) {
- return {
- type: t.entering ? "openTag" : "closeTag",
- tagName: "blockquote",
- outerNewLine: !0,
- innerNewLine: !0
- }
- },
- list: function(e, t) {
- var n = t.entering,
- r = e.listData,
- o = r.type,
- i = r.start,
- s = "bullet" === o ? "ul" : "ol",
- a = {};
- return "ol" === s && null !== i && 1 !== i && (a.start = i.toString()), {
- type: n ? "openTag" : "closeTag",
- tagName: s,
- attributes: a,
- outerNewLine: !0
- }
- },
- item: function(e, t) {
- return {
- type: t.entering ? "openTag" : "closeTag",
- tagName: "li",
- outerNewLine: !0
- }
- },
- htmlInline: function(e, t) {
- return {
- type: "html",
- content: t.options.tagFilter ? Wp(e.literal) : e.literal
- }
- },
- htmlBlock: function(e, t) {
- var n = t.options,
- r = n.tagFilter ? Wp(e.literal) : e.literal;
- return n.nodeId ? [{
- type: "openTag",
- tagName: "div",
- outerNewLine: !0
- }, {
- type: "html",
- content: r
- }, {
- type: "closeTag",
- tagName: "div",
- outerNewLine: !0
- }] : {
- type: "html",
- content: r,
- outerNewLine: !0
- }
- },
- code: function(e) {
- return [{
- type: "openTag",
- tagName: "code"
- }, {
- type: "text",
- content: e.literal
- }, {
- type: "closeTag",
- tagName: "code"
- }]
- },
- codeBlock: function(e) {
- var t = e.info,
- n = t ? t.split(/\s+/) : [],
- r = [];
- return n.length > 0 && n[0].length > 0 && r.push("language-" + Hu(n[0])), [{
- type: "openTag",
- tagName: "pre",
- outerNewLine: !0
- }, {
- type: "openTag",
- tagName: "code",
- classNames: r
- }, {
- type: "text",
- content: e.literal
- }, {
- type: "closeTag",
- tagName: "code"
- }, {
- type: "closeTag",
- tagName: "pre",
- outerNewLine: !0
- }]
- },
- link: function(e, t) {
- if (t.entering) {
- var n = e,
- r = n.title,
- o = n.destination;
- return {
- type: "openTag",
- tagName: "a",
- attributes: _c({
- href: Hu(o)
- }, r && {
- title: Hu(r)
- })
- }
- }
- return {
- type: "closeTag",
- tagName: "a"
- }
- },
- image: function(e, t) {
- var n = t.getChildrenText,
- r = t.skipChildren,
- o = e,
- i = o.title,
- s = o.destination;
- return r(), {
- type: "openTag",
- tagName: "img",
- selfClose: !0,
- attributes: _c({
- src: Hu(s),
- alt: n(e)
- }, i && {
- title: Hu(i)
- })
- }
- },
- customBlock: function(e, t, n) {
- var r = e.info.trim().toLowerCase(),
- o = n[r];
- if (o) try {
- return o(e, t)
- } catch (e) {
- console.warn("[@toast-ui/editor] - The error occurred when " + r + " block node was parsed in markdown renderer: " + e)
- }
- return [{
- type: "openTag",
- tagName: "div",
- outerNewLine: !0
- }, {
- type: "text",
- content: e.literal
- }, {
- type: "closeTag",
- tagName: "div",
- outerNewLine: !0
- }]
- },
- frontMatter: function(e) {
- return [{
- type: "openTag",
- tagName: "div",
- outerNewLine: !0,
- attributes: {
- style: "white-space: pre; display: none;"
- }
- }, {
- type: "text",
- content: e.literal
- }, {
- type: "closeTag",
- tagName: "div",
- outerNewLine: !0
- }]
- },
- customInline: function(e, t, n) {
- var r = e,
- o = r.info,
- i = r.firstChild,
- s = o.trim().toLowerCase(),
- a = n[s],
- l = t.entering;
- if (a) try {
- return a(e, t)
- } catch (e) {
- console.warn("[@toast-ui/editor] - The error occurred when " + s + " inline node was parsed in markdown renderer: " + e)
- }
- return l ? [{
- type: "openTag",
- tagName: "span"
- }, {
- type: "text",
- content: "$$" + o + (i ? " " : "")
- }] : [{
- type: "text",
- content: "$$"
- }, {
- type: "closeTag",
- tagName: "span"
- }]
- }
- },
- Gp = {
- strike: function(e, t) {
- return {
- type: t.entering ? "openTag" : "closeTag",
- tagName: "del"
- }
- },
- item: function(e, t) {
- var n = t.entering,
- r = e.listData,
- o = r.checked,
- i = r.task;
- if (n) {
- var s = {
- type: "openTag",
- tagName: "li",
- outerNewLine: !0
- };
- return i ? [s, {
- type: "openTag",
- tagName: "input",
- selfClose: !0,
- attributes: _c(_c({}, o && {
- checked: ""
- }), {
- disabled: "",
- type: "checkbox"
- })
- }, {
- type: "text",
- content: " "
- }] : s
- }
- return {
- type: "closeTag",
- tagName: "li",
- outerNewLine: !0
- }
- },
- table: function(e, t) {
- return {
- type: t.entering ? "openTag" : "closeTag",
- tagName: "table",
- outerNewLine: !0
- }
- },
- tableHead: function(e, t) {
- return {
- type: t.entering ? "openTag" : "closeTag",
- tagName: "thead",
- outerNewLine: !0
- }
- },
- tableBody: function(e, t) {
- return {
- type: t.entering ? "openTag" : "closeTag",
- tagName: "tbody",
- outerNewLine: !0
- }
- },
- tableRow: function(e, t) {
- if (t.entering) return {
- type: "openTag",
- tagName: "tr",
- outerNewLine: !0
- };
- var n = [];
- if (e.lastChild)
- for (var r = e.parent.parent.columns.length, o = e.lastChild.endIdx + 1; o < r; o += 1) n.push({
- type: "openTag",
- tagName: "td",
- outerNewLine: !0
- }, {
- type: "closeTag",
- tagName: "td",
- outerNewLine: !0
- });
- return n.push({
- type: "closeTag",
- tagName: "tr",
- outerNewLine: !0
- }), n
- },
- tableCell: function(e, t) {
- var n = t.entering;
- if (e.ignored) return {
- type: "text",
- content: ""
- };
- var r = e.parent.parent,
- o = "tableHead" === r.type ? "th" : "td",
- i = r.parent.columns[e.startIdx],
- s = (null == i ? void 0 : i.align) ? {
- align: i.align
- } : null;
- return n ? _c({
- type: "openTag",
- tagName: o,
- outerNewLine: !0
- }, s && {
- attributes: s
- }) : {
- type: "closeTag",
- tagName: o,
- outerNewLine: !0
- }
- }
- },
- Kp = {
- softbreak: "\n",
- gfm: !1,
- tagFilter: !1,
- nodeId: !1
- };
-
- function Zp(e) {
- for (var t = [], n = e.walker(), r = null; r = n.next();) {
- var o = r.node;
- "text" === o.type && t.push(o.literal)
- }
- return t.join("")
- }
- var Xp = function() {
- function e(e) {
- this.buffer = [], this.options = _c(_c({}, Kp), e), this.convertors = this.createConvertors(), delete this.options.convertors
- }
- return e.prototype.createConvertors = function() {
- var e = _c({}, Jp);
- if (this.options.gfm && (e = _c(_c({}, e), Gp)), this.options.convertors) {
- var t = this.options.convertors,
- n = Object.keys(t),
- r = _c(_c({}, Jp), Gp);
- n.forEach((function(n) {
- var o = e[n],
- i = t[n],
- s = -1 === Object.keys(r).indexOf(n) ? n.toLowerCase() : n;
- e[s] = o ? function(e, t, n) {
- return t.origin = function() {
- return o(e, t, n)
- }, i(e, t)
- } : i
- }))
- }
- return e
- }, e.prototype.getConvertors = function() {
- return this.convertors
- }, e.prototype.getOptions = function() {
- return this.options
- }, e.prototype.render = function(e) {
- var t = this;
- this.buffer = [];
- for (var n = e.walker(), r = null, o = function() {
- var e = r.node,
- o = r.entering,
- s = i.convertors[e.type];
- if (!s) return "continue";
- var a = !1,
- l = {
- entering: o,
- leaf: !ju(e),
- options: i.options,
- getChildrenText: Zp,
- skipChildren: function() {
- a = !0
- }
- },
- c = cd(e) || function(e) {
- return "customInline" === e.type
- }(e) ? s(e, l, i.convertors) : s(e, l);
- c && ((Array.isArray(c) ? c : [c]).forEach((function(n, r) {
- "openTag" === n.type && t.options.nodeId && 0 === r && (n.attributes || (n.attributes = {}), n.attributes["data-nodeid"] = String(e.id)), t.renderHTMLNode(n)
- })), a && (n.resumeAt(e, !1), n.next()))
- }, i = this; r = n.next();) o();
- return this.addNewLine(), this.buffer.join("")
- }, e.prototype.renderHTMLNode = function(e) {
- switch (e.type) {
- case "openTag":
- case "closeTag":
- this.renderElementNode(e);
- break;
- case "text":
- this.renderTextNode(e);
- break;
- case "html":
- this.renderRawHtmlNode(e)
- }
- }, e.prototype.generateOpenTagString = function(e) {
- var t = this,
- n = e.tagName,
- r = e.classNames,
- o = e.attributes;
- this.buffer.push("<" + n), r && r.length > 0 && this.buffer.push(' class="' + r.join(" ") + '"'), o && Object.keys(o).forEach((function(e) {
- var n = o[e];
- t.buffer.push(" " + e + '="' + n + '"')
- })), e.selfClose && this.buffer.push(" /"), this.buffer.push(">")
- }, e.prototype.generateCloseTagString = function(e) {
- var t = e.tagName;
- this.buffer.push("" + t + ">")
- }, e.prototype.addNewLine = function() {
- this.buffer.length && "\n" !== xd(xd(this.buffer)) && this.buffer.push("\n")
- }, e.prototype.addOuterNewLine = function(e) {
- e.outerNewLine && this.addNewLine()
- }, e.prototype.addInnerNewLine = function(e) {
- e.innerNewLine && this.addNewLine()
- }, e.prototype.renderTextNode = function(e) {
- this.buffer.push(Hu(e.content))
- }, e.prototype.renderRawHtmlNode = function(e) {
- this.addOuterNewLine(e), this.buffer.push(e.content), this.addOuterNewLine(e)
- }, e.prototype.renderElementNode = function(e) {
- "openTag" === e.type ? (this.addOuterNewLine(e), this.generateOpenTagString(e), e.selfClose ? this.addOuterNewLine(e) : this.addInnerNewLine(e)) : (this.addInnerNewLine(e), this.generateCloseTagString(e), this.addOuterNewLine(e))
- }, e
- }(),
- Qp = n(368),
- Yp = n.n(Qp),
- eh = ["iframe", "embed"],
- th = [];
-
- function nh(e) {
- Ue(eh, e) && th.push(e.toLowerCase())
- }
-
- function rh(e, t) {
- return Yp().sanitize(e, o({
- ADD_TAGS: th,
- ADD_ATTR: ["rel", "target", "hreflang", "type"],
- FORBID_TAGS: ["input", "script", "textarea", "form", "button", "select", "meta", "style", "link", "title", "object", "base"]
- }, t))
- }
-
- function oh(e, t) {
- return e.literal.replace(new RegExp("(<\\s*" + t + "[^>]*>)|(" + t + "\\s*[>])", "ig"), "").trim()
- }
-
- function ih(e) {
- var t = (e = e.match(ga)[0]).match(new RegExp(ha, "g"));
- return t ? t.reduce((function(e, t) {
- var n = t.trim().split("="),
- r = n[0],
- o = n.slice(1);
- return o.length && (e[r] = o.join("=").replace(/'|"/g, "").trim()), e
- }), {}) : {}
- }
-
- function sh(e) {
- return vi()(e.attributes).reduce((function(e, t) {
- return e[t.nodeName] = t.nodeValue, e
- }), {})
- }
-
- function ah(e, t, n, r) {
- var o = r.getToDOMNode(t)(e),
- i = n(o.outerHTML),
- s = document.createElement("div");
- return s.innerHTML = i, {
- dom: o = s.firstChild,
- htmlAttrs: sh(o)
- }
- }
- var lh = {
- htmlBlock: function(e, t, n) {
- return {
- atom: !0,
- content: "block+",
- group: "block",
- attrs: {
- htmlAttrs: {
- default: {}
- },
- childrenHTML: {
- default: ""
- },
- htmlBlock: {
- default: !0
- }
- },
- parseDOM: [{
- tag: e,
- getAttrs: function(e) {
- return {
- htmlAttrs: sh(e),
- childrenHTML: e.innerHTML
- }
- }
- }],
- toDOM: function(r) {
- var o = ah(r, e, t, n),
- s = o.dom,
- a = o.htmlAttrs;
- return a.class = a.class ? a.class + " html-block" : "html-block", i([e, a], vi()(s.childNodes))
- }
- }
- },
- htmlInline: function(e, t, n) {
- return {
- attrs: {
- htmlAttrs: {
- default: {}
- },
- htmlInline: {
- default: !0
- }
- },
- parseDOM: [{
- tag: e,
- getAttrs: function(e) {
- return {
- htmlAttrs: sh(e)
- }
- }
- }],
- toDOM: function(r) {
- var o = ah(r, e, t, n).htmlAttrs;
- return [e, o, 0]
- }
- }
- }
- };
- var ch = /^\s*<\s*\//,
- uh = {
- paragraph: function(e, t) {
- var n = t.entering,
- r = t.origin;
- return t.options.nodeId ? {
- type: n ? "openTag" : "closeTag",
- outerNewLine: !0,
- tagName: "p"
- } : r()
- },
- softbreak: function(e) {
- return {
- type: "html",
- content: e.prev && "htmlInline" === e.prev.type && /
/.test(e.prev.literal) ? "\n" : "
\n"
- }
- },
- item: function(e, t) {
- if (t.entering) {
- var n = {},
- r = [];
- return e.listData.task && (n["data-task"] = "", r.push("task-list-item"), e.listData.checked && (r.push("checked"), n["data-task-checked"] = "")), {
- type: "openTag",
- tagName: "li",
- classNames: r,
- attributes: n,
- outerNewLine: !0
- }
- }
- return {
- type: "closeTag",
- tagName: "li",
- outerNewLine: !0
- }
- },
- code: function(e) {
- return [{
- type: "openTag",
- tagName: "code",
- attributes: {
- "data-backticks": String(e.tickCount)
- }
- }, {
- type: "text",
- content: e.literal
- }, {
- type: "closeTag",
- tagName: "code"
- }]
- },
- codeBlock: function(e) {
- var t = e,
- n = t.fenceLength,
- r = t.info,
- o = r ? r.split(/\s+/) : [],
- i = [],
- s = {};
- if (n > 3 && (s["data-backticks"] = n), o.length > 0 && o[0].length > 0) {
- var a = o[0];
- i.push("lang-" + a), s["data-language"] = a
- }
- return [{
- type: "openTag",
- tagName: "pre",
- classNames: i
- }, {
- type: "openTag",
- tagName: "code",
- attributes: s
- }, {
- type: "text",
- content: e.literal
- }, {
- type: "closeTag",
- tagName: "code"
- }, {
- type: "closeTag",
- tagName: "pre"
- }]
- },
- customInline: function(e, t) {
- var n = t.origin,
- r = t.entering,
- o = t.skipChildren,
- i = e.info;
- return -1 !== i.indexOf("widget") && r ? (o(), [{
- type: "openTag",
- tagName: "span",
- classNames: ["tui-widget"]
- }, {
- type: "html",
- content: Ys(i, oa(e)).outerHTML
- }, {
- type: "closeTag",
- tagName: "span"
- }]) : n()
- }
- };
-
- function dh(e, t) {
- var n = o({}, uh);
- return e && (n.link = function(t, n) {
- var r = n.entering,
- i = (0, n.origin)();
- return r && (i.attributes = o(o({}, i.attributes), e)), i
- }), t && Object.keys(t).forEach((function(e) {
- var r = n[e],
- i = t[e];
- r && Ga()(i) ? n[e] = function(e, t) {
- var n = o({}, t);
- return n.origin = function() {
- return r(e, t)
- }, i(e, n)
- } : Ue(["htmlBlock", "htmlInline"], e) && !Ga()(i) ? n[e] = function(e, t) {
- var n = e.literal.match(ga);
- if (n) {
- var r = n[0],
- s = n[1],
- a = n[3],
- l = (s || a).toLowerCase(),
- c = i[l],
- u = oh(e, l);
- if (c) {
- var d = o({}, e);
- return d.attrs = ih(r), d.childrenHTML = u, d.type = l, t.entering = !ch.test(e.literal), c(d, t)
- }
- }
- return t.origin()
- } : n[e] = i
- })), n
- }
- var ph = ["list", "item", "blockQuote"],
- hh = ["UL", "OL", "BLOCKQUOTE"];
-
- function fh(e, t) {
- var n, r = e.child(t);
- return !r.childCount || 1 === r.childCount && !(null === (n = r.firstChild.text) || void 0 === n ? void 0 : n.trim())
- }
-
- function mh(e, t, n) {
- var r = Is(t) - 1,
- o = Rs(t) - 1,
- i = n[r].getBoundingClientRect(),
- s = n[o].offsetTop - n[r].offsetTop + n[o].clientHeight;
- return {
- height: s <= 0 ? n[r].clientHeight : s + gh(e, n, Math.min(o + 1, e.childCount - 1)),
- rect: i
- }
- }
-
- function gh(e, t, n) {
- for (var r = e.childCount - 1, o = 0; n <= r && fh(e, n);) o += t[n].clientHeight, n += 1;
- return o
- }
-
- function vh(e, t) {
- for (var n = 0; e && e !== t && (Ue(hh, e.tagName) || (n += e.offsetTop), e.offsetParent !== t.offsetParent);) e = e.parentElement;
- return n
- }
-
- function yh(e, t, n) {
- return e && t > n + e.offsetTop ? yh(e.nextElementSibling, t, n) || e : null
- }
-
- function bh(e, t) {
- for (var n = e.querySelector('[data-nodeid="' + t.id + '"]'); !n || Fs(t);) t = t.parent, n = e.querySelector('[data-nodeid="' + t.id + '"]');
- return function(e) {
- var t = e.mdNode,
- n = e.el;
- for (;
- (Ue(ph, t.type) || "table" === t.type) && t.firstChild;) t = t.firstChild, n = n.firstElementChild;
- return {
- mdNode: t,
- el: n
- }
- }({
- mdNode: t,
- el: n
- })
- }
- var wh = {};
-
- function kh(e) {
- e && (delete wh[Number(e.getAttribute("data-nodeid"))], vi()(e.children).forEach((function(e) {
- kh(e)
- })))
- }
-
- function xh(e, t, n) {
- var r, o = wh[r = n] && wh[r].height,
- i = function(e) {
- return wh[e] && wh[e].offsetTop
- }(n),
- s = o || e.clientHeight,
- a = i || vh(e, t) || e.offsetTop;
- return o || function(e, t) {
- wh[e] = wh[e] || {}, wh[e].height = t
- }(n, s), i || function(e, t) {
- wh[e] = wh[e] || {}, wh[e].offsetTop = t
- }(n, a), {
- nodeHeight: s,
- offsetTop: a
- }
- }
- var Ch = xa("md-preview-highlight");
- var Th = function() {
- function e(e, t) {
- var n = document.createElement("div");
- this.el = n, this.eventEmitter = e, this.isViewer = !!t.isViewer, this.el.className = xa("md-preview");
- var r = t.linkAttributes,
- o = t.customHTMLRenderer,
- i = t.sanitizer,
- s = t.highlight,
- a = void 0 !== s && s;
- this.renderer = new Xp({
- gfm: !0,
- nodeId: !0,
- convertors: dh(r, o)
- }), this.cursorNodeId = null, this.sanitizer = i, this.initEvent(a), this.initContentSection(), this.isViewer && (this.previewContent.style.overflowWrap = "break-word")
- }
- return e.prototype.initContentSection = function() {
- this.previewContent = Ea('
<\/p>/gi, "