markdown-text-editor 1.9.1 → 1.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/markdown-text-editor.es.js +676 -647
- package/dist/markdown-text-editor.es.js.map +1 -1
- package/dist/markdown-text-editor.min.js +54 -56
- package/dist/markdown-text-editor.min.js.map +1 -1
- package/dist/markdown-text-editor.umd.js +54 -56
- package/dist/markdown-text-editor.umd.js.map +1 -1
- package/package.json +2 -2
|
@@ -100,107 +100,107 @@ var o = ((e = "") => {
|
|
|
100
100
|
hrRegex: i((e) => RegExp(`^ {0,${e}}((?:-[ ]*){3,}|(?:_[ ]*){3,}|(?:\\*[ ]*){3,})(?:\\n+|$)`)),
|
|
101
101
|
fencesBeginRegex: i((e) => RegExp(`^ {0,${e}}(?:\`\`\`|~~~)`)),
|
|
102
102
|
headingBeginRegex: i((e) => RegExp(`^ {0,${e}}#`)),
|
|
103
|
-
htmlBeginRegex: i((e) => RegExp(`^ {0,${e}}(?:</?(?:${
|
|
103
|
+
htmlBeginRegex: i((e) => RegExp(`^ {0,${e}}(?:</?(?:${_})(?: +|$|/?>)|<(?:script|pre|style|textarea|!--))`, "i")),
|
|
104
104
|
blockquoteBeginRegex: i((e) => RegExp(`^ {0,${e}}>`))
|
|
105
|
-
}, c = /^(?:[ \t]*(?:\n|$))+/, l = /^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/, u = /^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/, d = /^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/, f = /^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/, p = / {0,3}(?:[*+-]|\d{1,9}[.)])/, m = /^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |fences|blockquote|heading|hr|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,
|
|
106
|
-
blockquote: a(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",
|
|
105
|
+
}, c = /^(?:[ \t]*(?:\n|$))+/, l = /^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/, u = /^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/, d = /^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/, f = /^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/, p = / {0,3}(?:[*+-]|\d{1,9}[.)])/, m = /^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |fences|blockquote|heading|hr|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/, ee = a(m).replace(/bull/g, p).replace(/blockCode/g, /(?: {4}| {0,3}\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}(?:\s|$)/).replace(/hr/g, / {0,3}(?:(?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/).replace(/html/g, / {0,3}<[^\n>]+>\n/).replace(/\|table/g, "").getRegex(), te = a(m).replace(/bull/g, p).replace(/blockCode/g, /(?: {4}| {0,3}\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}(?:\s|$)/).replace(/hr/g, / {0,3}(?:(?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/).replace(/html/g, / {0,3}<[^\n>]+>\n/).replace(/table/g, / {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(), h = /^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table|[ \t]+\n)[^\n]+)*)/, g = /^[^\n]+/, ne = /(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/, re = a(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label", ne).replace("title", /(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(), ie = a(/^(bull)([ \t][^\n]*?)?(?:\n|$)/).replace(/bull/g, p).getRegex(), _ = "address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul", v = /<!--(?:-?>|[\s\S]*?(?:-->|$))/, ae = a("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n*|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>[^\\n]*\\n*|$)|<![A-Z][\\s\\S]*?(?:>[^\\n]*\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>[^\\n]*\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][a-z0-9-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][a-z0-9-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))", "i").replace("comment", v).replace("tag", _).replace("attribute", / +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(), oe = (e) => a(h).replace("hr", d).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("|lheading", "").replace("|table", "").replace("blockquote", " {0,3}>").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list", e).replace("html", "</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag", _).getRegex(), se = oe(/ {0,3}(?:[*+-]|1[.)])[ \t]+[^ \t\n]/), y = oe(/ {0,3}(?:[*+-]|\d{1,9}[.)])(?:[ \t]|\n|$)/), b = {
|
|
106
|
+
blockquote: a(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph", y).getRegex(),
|
|
107
107
|
code: l,
|
|
108
|
-
def:
|
|
108
|
+
def: re,
|
|
109
109
|
fences: u,
|
|
110
110
|
heading: f,
|
|
111
111
|
hr: d,
|
|
112
|
-
html:
|
|
113
|
-
lheading:
|
|
114
|
-
list:
|
|
112
|
+
html: ae,
|
|
113
|
+
lheading: ee,
|
|
114
|
+
list: ie,
|
|
115
115
|
newline: c,
|
|
116
|
-
paragraph:
|
|
116
|
+
paragraph: se,
|
|
117
117
|
table: r,
|
|
118
|
-
text:
|
|
119
|
-
},
|
|
120
|
-
...
|
|
121
|
-
lheading:
|
|
122
|
-
table:
|
|
123
|
-
paragraph: a(
|
|
124
|
-
},
|
|
125
|
-
...
|
|
126
|
-
html: a("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",
|
|
118
|
+
text: g
|
|
119
|
+
}, ce = a("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr", d).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("blockquote", " {0,3}>").replace("code", "(?: {4}| {0,3} )[^\\n]").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list", " {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html", "</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag", _).getRegex(), le = {
|
|
120
|
+
...b,
|
|
121
|
+
lheading: te,
|
|
122
|
+
table: ce,
|
|
123
|
+
paragraph: a(h).replace("hr", d).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("|lheading", "").replace("table", ce).replace("blockquote", " {0,3}>").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list", " {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]").replace("html", "</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag", _).getRegex()
|
|
124
|
+
}, ue = {
|
|
125
|
+
...b,
|
|
126
|
+
html: a("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment", v).replace(/tag/g, "(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),
|
|
127
127
|
def: /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,
|
|
128
128
|
heading: /^(#{1,6})(.*)(?:\n+|$)/,
|
|
129
129
|
fences: r,
|
|
130
130
|
lheading: /^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,
|
|
131
|
-
paragraph: a(
|
|
132
|
-
},
|
|
131
|
+
paragraph: a(h).replace("hr", d).replace("heading", " *#{1,6} *[^\n]").replace("lheading", ee).replace("|table", "").replace("blockquote", " {0,3}>").replace("|fences", "").replace("|list", "").replace("|html", "").replace("|tag", "").getRegex()
|
|
132
|
+
}, de = /^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/, fe = /^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/, pe = /^( {2,}|\\)\n(?!\s*$)[ \t]*/, me = /^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/, x = /[\p{P}\p{S}]/u, S = /[\s\p{P}\p{S}]/u, he = /[^\s\p{P}\p{S}]/u, ge = a(/^((?![*_])punctSpace)/, "u").replace(/punctSpace/g, S).getRegex(), _e = /[\p{Pi}\p{Ps}"']/u, ve = /(?!~)[\p{P}\p{S}]/u, C = /(?!~)[\s\p{P}\p{S}]/u, ye = /(?:[^\s\p{P}\p{S}]|~)/u, be = a(/link|precode-code|html/, "g").replace("link", /\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-", o ? "(?<!`)()" : "(^^|[^`])").replace("code", /(?<b>`+)[^`]+\k<b>(?!`)/).replace("html", /<(?! )[^<>]*?>/).getRegex(), xe = /^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/, Se = a(xe, "u").replace(/punct/g, x).getRegex(), Ce = a(xe, "u").replace(/punct/g, ve).getRegex(), we = a(/^(?:\*+(?:((?!\*)(?!openQuote)punct)|([^\s*]))?)|^_+(?:((?!_)(?!openQuote)punct)|([^\s_]))?/, "u").replace(/openQuote/g, _e).replace(/punct/g, x).getRegex(), Te = "^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)", Ee = a(Te, "gu").replace(/notPunctSpace/g, he).replace(/punctSpace/g, S).replace(/punct/g, x).getRegex(), De = a(Te, "gu").replace(/notPunctSpace/g, ye).replace(/punctSpace/g, C).replace(/punct/g, ve).getRegex(), w = a("^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)[\\s](\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|(?:(?!\\*)punct|notPunctSpace)(\\*+)(?!\\*)(?=notPunctSpace)", "gu").replace(/notPunctSpace/g, he).replace(/punctSpace/g, S).replace(/punct/g, x).getRegex(), Oe = a("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)", "gu").replace(/notPunctSpace/g, he).replace(/punctSpace/g, S).replace(/punct/g, x).getRegex(), T = a("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)[\\s](_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)|(?:(?!_)punct|notPunctSpace)(_+)(?!_)(?=notPunctSpace)", "gu").replace(/notPunctSpace/g, he).replace(/punctSpace/g, S).replace(/punct/g, x).getRegex(), ke = a(/^~~?(?:((?!~)punct)|[^\s~])/, "u").replace(/punct/g, x).getRegex(), E = a("^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)", "gu").replace(/notPunctSpace/g, he).replace(/punctSpace/g, S).replace(/punct/g, x).getRegex(), Ae = a(/\\(punct)/, "gu").replace(/punct/g, x).getRegex(), je = a(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme", /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email", /[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])?)+(?![-_])/).getRegex(), D = a(v).replace("(?:-->|$)", "-->").getRegex(), Me = a("^comment|^</[a-zA-Z][a-zA-Z0-9-]*\\s*>|^<[a-zA-Z][a-zA-Z0-9-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment", D).replace("attribute", /\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(), Ne = /\[(?:\\[\s\S]|[^\[\]\\])*\]/, Pe = a(/(?:\[(?:brackets|\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/).replace("brackets", Ne).getRegex(), Fe = a(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label", Pe).replace("href", /<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]+|(?=\))/).replace("title", /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(), O = a(/^!?\[(label)\]\[(ref)\]/).replace("label", Pe).replace("ref", ne).getRegex(), Ie = a(/^!?\[(ref)\](?:\[\])?/).replace("ref", ne).getRegex(), k = /(?!\s*\])(?:\\[\s\S]|[^\[\]\\]){1,999}/, Le = a(/(?:[^\[\]\\`]*(?:\[(?:brackets|\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\]))){0,999}?[^\[\]\\`]*?/).replace("brackets", Ne).getRegex(), Re = a("reflink|nolink(?!\\()", "g").replace("reflink", a(/^!?\[(label)\]\[(ref)\]/).replace("label", Le).replace("ref", k).getRegex()).replace("nolink", a(/^!?\[(ref)\](?:\[\])?/).replace("ref", k).getRegex()).getRegex(), ze = /[hH][tT][tT][pP][sS]?|[fF][tT][pP]/, Be = a(/(?:mailto:email|xmpp:email(?:\/[A-Za-z0-9@.]+)?)/).replace(/email/g, /[A-Za-z0-9._+-]+@[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![\w-])/).getRegex(), A = {
|
|
133
133
|
_backpedal: r,
|
|
134
|
-
anyPunctuation:
|
|
135
|
-
autolink:
|
|
134
|
+
anyPunctuation: Ae,
|
|
135
|
+
autolink: je,
|
|
136
136
|
blockSkip: be,
|
|
137
|
-
br:
|
|
138
|
-
code:
|
|
137
|
+
br: pe,
|
|
138
|
+
code: fe,
|
|
139
139
|
del: r,
|
|
140
140
|
delLDelim: r,
|
|
141
141
|
delRDelim: r,
|
|
142
142
|
emStrongLDelim: Se,
|
|
143
|
-
emStrongRDelimAst:
|
|
144
|
-
emStrongRDelimUnd:
|
|
145
|
-
escape:
|
|
146
|
-
link:
|
|
143
|
+
emStrongRDelimAst: Ee,
|
|
144
|
+
emStrongRDelimUnd: Oe,
|
|
145
|
+
escape: de,
|
|
146
|
+
link: Fe,
|
|
147
147
|
nolink: Ie,
|
|
148
148
|
punctuation: ge,
|
|
149
|
-
reflink:
|
|
150
|
-
reflinkSearch:
|
|
149
|
+
reflink: O,
|
|
150
|
+
reflinkSearch: Re,
|
|
151
151
|
tag: Me,
|
|
152
|
-
text:
|
|
152
|
+
text: me,
|
|
153
153
|
url: r
|
|
154
|
-
},
|
|
155
|
-
...
|
|
154
|
+
}, Ve = {
|
|
155
|
+
...A,
|
|
156
156
|
emStrongLDelim: we,
|
|
157
|
-
emStrongRDelimAst:
|
|
158
|
-
emStrongRDelimUnd:
|
|
159
|
-
link: a(/^!?\[(label)\]\((.*?)\)/).replace("label",
|
|
160
|
-
reflink: a(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",
|
|
161
|
-
},
|
|
162
|
-
...
|
|
163
|
-
emStrongRDelimAst:
|
|
157
|
+
emStrongRDelimAst: w,
|
|
158
|
+
emStrongRDelimUnd: T,
|
|
159
|
+
link: a(/^!?\[(label)\]\((.*?)\)/).replace("label", Pe).getRegex(),
|
|
160
|
+
reflink: a(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label", Pe).getRegex()
|
|
161
|
+
}, He = {
|
|
162
|
+
...A,
|
|
163
|
+
emStrongRDelimAst: De,
|
|
164
164
|
emStrongLDelim: Ce,
|
|
165
|
-
delLDelim:
|
|
166
|
-
delRDelim:
|
|
167
|
-
url: a(/^emailProtocol|^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("emailProtocol",
|
|
165
|
+
delLDelim: ke,
|
|
166
|
+
delRDelim: E,
|
|
167
|
+
url: a(/^emailProtocol|^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("emailProtocol", Be).replace("protocol", ze).replace("email", /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![\w-])/).getRegex(),
|
|
168
168
|
_backpedal: /(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,
|
|
169
169
|
del: /^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,
|
|
170
|
-
text: a(/^(?:[^a-zA-Z0-9](?=emailProtocol)|(`+|~+|[^`~])(?:(?=[`~])|(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9](?=emailProtocol)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))))/).replace("protocol",
|
|
170
|
+
text: a(/^(?:[^a-zA-Z0-9](?=emailProtocol)|(`+|~+|[^`~])(?:(?=[`~])|(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9](?=emailProtocol)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))))/).replace("protocol", ze).replace(/emailProtocol/g, /(?:mailto|xmpp):/).getRegex()
|
|
171
|
+
}, Ue = {
|
|
172
|
+
...He,
|
|
173
|
+
br: a(pe).replace("{2,}", "*").getRegex(),
|
|
174
|
+
text: a(He.text).replace("\\b_", "\\b_| {2,}\\n").replace(/\{2,\}/g, "*").getRegex()
|
|
175
|
+
}, We = {
|
|
176
|
+
normal: b,
|
|
177
|
+
gfm: le,
|
|
178
|
+
pedantic: ue
|
|
171
179
|
}, Ge = {
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
180
|
+
normal: A,
|
|
181
|
+
gfm: He,
|
|
182
|
+
breaks: Ue,
|
|
183
|
+
pedantic: Ve
|
|
175
184
|
}, Ke = {
|
|
176
|
-
normal: oe,
|
|
177
|
-
gfm: ce,
|
|
178
|
-
pedantic: le
|
|
179
|
-
}, qe = {
|
|
180
|
-
normal: He,
|
|
181
|
-
gfm: We,
|
|
182
|
-
breaks: Ge,
|
|
183
|
-
pedantic: Ue
|
|
184
|
-
}, Je = {
|
|
185
185
|
"&": "&",
|
|
186
186
|
"<": "<",
|
|
187
187
|
">": ">",
|
|
188
188
|
"\"": """,
|
|
189
189
|
"'": "'"
|
|
190
|
-
},
|
|
191
|
-
function
|
|
190
|
+
}, qe = (e) => Ke[e];
|
|
191
|
+
function j(e, t) {
|
|
192
192
|
if (t) {
|
|
193
|
-
if (s.escapeTest.test(e)) return e.replace(s.escapeReplace,
|
|
194
|
-
} else if (s.escapeTestNoEncode.test(e)) return e.replace(s.escapeReplaceNoEncode,
|
|
193
|
+
if (s.escapeTest.test(e)) return e.replace(s.escapeReplace, qe);
|
|
194
|
+
} else if (s.escapeTestNoEncode.test(e)) return e.replace(s.escapeReplaceNoEncode, qe);
|
|
195
195
|
return e;
|
|
196
196
|
}
|
|
197
|
-
function
|
|
197
|
+
function Je(e) {
|
|
198
198
|
return e.replace(s.numericCharacterReference, (e, t, n) => {
|
|
199
199
|
let r = t === void 0 ? Number.parseInt(n, 16) : Number.parseInt(t, 10);
|
|
200
200
|
return r === 0 || r > 1114111 || r >= 55296 && r <= 57343 ? "�" : String.fromCodePoint(r);
|
|
201
201
|
});
|
|
202
202
|
}
|
|
203
|
-
function
|
|
203
|
+
function M(e) {
|
|
204
204
|
try {
|
|
205
205
|
e = encodeURI(e).replace(s.percentDecode, "%");
|
|
206
206
|
} catch {
|
|
@@ -208,7 +208,7 @@ function Ze(e) {
|
|
|
208
208
|
}
|
|
209
209
|
return e;
|
|
210
210
|
}
|
|
211
|
-
function
|
|
211
|
+
function Ye(e, t) {
|
|
212
212
|
let n = e.replace(s.findPipe, (e, t, n) => {
|
|
213
213
|
let r = !1, i = t;
|
|
214
214
|
for (; --i >= 0 && n[i] === "\\";) r = !r;
|
|
@@ -221,7 +221,7 @@ function Qe(e, t) {
|
|
|
221
221
|
for (; r < n.length; r++) n[r] = n[r].trim().replace(s.slashPipe, "|");
|
|
222
222
|
return n;
|
|
223
223
|
}
|
|
224
|
-
function
|
|
224
|
+
function N(e, t, n) {
|
|
225
225
|
let r = e.length;
|
|
226
226
|
if (r === 0) return "";
|
|
227
227
|
let i = 0;
|
|
@@ -233,15 +233,15 @@ function A(e, t, n) {
|
|
|
233
233
|
}
|
|
234
234
|
return e.slice(0, r - i);
|
|
235
235
|
}
|
|
236
|
-
function
|
|
236
|
+
function Xe(e) {
|
|
237
237
|
let t = e.split("\n"), n = t.length - 1;
|
|
238
238
|
for (; n >= 0 && s.blankLine.test(t[n]);) n--;
|
|
239
239
|
return t.length - n <= 2 ? e : t.slice(0, n + 1).join("\n");
|
|
240
240
|
}
|
|
241
|
-
function
|
|
241
|
+
function Ze(e) {
|
|
242
242
|
return e.trim().toLowerCase().toUpperCase().toLowerCase();
|
|
243
243
|
}
|
|
244
|
-
function
|
|
244
|
+
function Qe(e, t) {
|
|
245
245
|
if (e.indexOf(t[1]) === -1) return -1;
|
|
246
246
|
let n = 0;
|
|
247
247
|
for (let r = 0; r < e.length; r++) if (e[r] === "\\") r++;
|
|
@@ -249,7 +249,7 @@ function M(e, t) {
|
|
|
249
249
|
else if (e[r] === t[1] && (n--, n < 0)) return r;
|
|
250
250
|
return n > 0 ? -2 : -1;
|
|
251
251
|
}
|
|
252
|
-
function
|
|
252
|
+
function $e(e, t = 0) {
|
|
253
253
|
let n = t, r = "";
|
|
254
254
|
for (let t of e) if (t === " ") {
|
|
255
255
|
let e = 4 - n % 4;
|
|
@@ -279,7 +279,7 @@ function et(e, t, n, r, i) {
|
|
|
279
279
|
tokens: d
|
|
280
280
|
};
|
|
281
281
|
}
|
|
282
|
-
function
|
|
282
|
+
function P(e, t, n) {
|
|
283
283
|
let r = e.match(n.other.indentCodeCompensation);
|
|
284
284
|
if (r === null) return t;
|
|
285
285
|
let i = r[1];
|
|
@@ -290,7 +290,7 @@ function tt(e, t, n) {
|
|
|
290
290
|
return e.slice(Math.min(r.length, i.length));
|
|
291
291
|
}).join("\n");
|
|
292
292
|
}
|
|
293
|
-
function
|
|
293
|
+
function tt(e, t, n, r) {
|
|
294
294
|
if (!t.includes("<")) return !1;
|
|
295
295
|
for (let i = 0; i < t.length; i++) {
|
|
296
296
|
if (t[i] === "\\") {
|
|
@@ -313,7 +313,7 @@ function nt(e, t, n, r) {
|
|
|
313
313
|
}
|
|
314
314
|
return !1;
|
|
315
315
|
}
|
|
316
|
-
var
|
|
316
|
+
var nt = class {
|
|
317
317
|
options;
|
|
318
318
|
rules;
|
|
319
319
|
lexer;
|
|
@@ -330,7 +330,7 @@ var rt = class {
|
|
|
330
330
|
code(e) {
|
|
331
331
|
let t = this.rules.block.code.exec(e);
|
|
332
332
|
if (t) {
|
|
333
|
-
let e = this.options.pedantic ? t[0] :
|
|
333
|
+
let e = this.options.pedantic ? t[0] : Xe(t[0]);
|
|
334
334
|
return {
|
|
335
335
|
type: "code",
|
|
336
336
|
raw: e,
|
|
@@ -342,7 +342,7 @@ var rt = class {
|
|
|
342
342
|
fences(e) {
|
|
343
343
|
let t = this.rules.block.fences.exec(e);
|
|
344
344
|
if (t) {
|
|
345
|
-
let e = t[0], n =
|
|
345
|
+
let e = t[0], n = P(e, t[3] || "", this.rules);
|
|
346
346
|
return {
|
|
347
347
|
type: "code",
|
|
348
348
|
raw: e,
|
|
@@ -356,12 +356,12 @@ var rt = class {
|
|
|
356
356
|
if (t) {
|
|
357
357
|
let e = t[2].trim();
|
|
358
358
|
if (this.rules.other.endingHash.test(e)) {
|
|
359
|
-
let t =
|
|
359
|
+
let t = N(e, "#");
|
|
360
360
|
(this.options.pedantic || !t || this.rules.other.endingSpaceTabChar.test(t)) && (e = t.trim());
|
|
361
361
|
}
|
|
362
362
|
return {
|
|
363
363
|
type: "heading",
|
|
364
|
-
raw:
|
|
364
|
+
raw: N(t[0], "\n"),
|
|
365
365
|
depth: t[1].length,
|
|
366
366
|
text: e,
|
|
367
367
|
tokens: this.lexer.inline(e)
|
|
@@ -372,13 +372,13 @@ var rt = class {
|
|
|
372
372
|
let t = this.rules.block.hr.exec(e);
|
|
373
373
|
if (t) return {
|
|
374
374
|
type: "hr",
|
|
375
|
-
raw:
|
|
375
|
+
raw: N(t[0], "\n")
|
|
376
376
|
};
|
|
377
377
|
}
|
|
378
378
|
blockquote(e) {
|
|
379
379
|
let t = this.rules.block.blockquote.exec(e);
|
|
380
380
|
if (t) {
|
|
381
|
-
let e =
|
|
381
|
+
let e = N(t[0], "\n").split("\n"), n = "", r = "", i = [];
|
|
382
382
|
for (; e.length > 0;) {
|
|
383
383
|
let t = !1, a = [], o = 0;
|
|
384
384
|
for (; o < e.length; o++) if (this.rules.other.blockquoteStart.test(e[o])) a.push(e[o]), t = !0;
|
|
@@ -432,7 +432,7 @@ ${d.join("\n")}`), r = r.substring(0, r.length - t.text.length) + s.text;
|
|
|
432
432
|
let n = !1, r = "", s = "";
|
|
433
433
|
if (!(t = a.exec(e)) || this.rules.block.hr.test(e)) break;
|
|
434
434
|
r = t[0], e = e.substring(r.length);
|
|
435
|
-
let c = t[2].split("\n", 1)[0], l = t[1].length, u = this.options.pedantic ?
|
|
435
|
+
let c = t[2].split("\n", 1)[0], l = t[1].length, u = this.options.pedantic ? $e(c, l) : c.replace(this.rules.other.leadingSpaceTab, (e) => $e(e, l)), d = e.split("\n", 1)[0], f = !u.trim(), p = 0;
|
|
436
436
|
if (this.options.pedantic ? (p = 2, s = u.trimStart()) : f ? p = l + 1 : (p = u.search(this.rules.other.nonSpaceChar), p = p > 4 ? 1 : p, s = u.slice(p), p += l), f && this.rules.other.blankLine.test(d) && (r += d + "\n", e = e.substring(d.length + 1), n = !0), !n) {
|
|
437
437
|
let t = this.rules.other.nextBulletRegex(p), n = this.rules.other.hrRegex(p), i = this.rules.other.fencesBeginRegex(p), a = this.rules.other.headingBeginRegex(p), o = this.rules.other.htmlBeginRegex(p), c = this.rules.other.blockquoteBeginRegex(p);
|
|
438
438
|
for (; e;) {
|
|
@@ -497,7 +497,7 @@ ${d.join("\n")}`), r = r.substring(0, r.length - t.text.length) + s.text;
|
|
|
497
497
|
html(e) {
|
|
498
498
|
let t = this.rules.block.html.exec(e);
|
|
499
499
|
if (t) {
|
|
500
|
-
let e =
|
|
500
|
+
let e = Xe(t[0]);
|
|
501
501
|
return {
|
|
502
502
|
type: "html",
|
|
503
503
|
block: !0,
|
|
@@ -510,11 +510,11 @@ ${d.join("\n")}`), r = r.substring(0, r.length - t.text.length) + s.text;
|
|
|
510
510
|
def(e) {
|
|
511
511
|
let t = this.rules.block.def.exec(e);
|
|
512
512
|
if (t) {
|
|
513
|
-
let e =
|
|
513
|
+
let e = Ze(t[1]).replace(this.rules.other.multipleSpaceGlobal, " "), n = t[2] ? t[2].replace(this.rules.other.hrefBrackets, "$1").replace(this.rules.inline.anyPunctuation, "$1") : "", r = t[3] ? t[3].substring(1, t[3].length - 1).replace(this.rules.inline.anyPunctuation, "$1") : t[3];
|
|
514
514
|
return {
|
|
515
515
|
type: "def",
|
|
516
516
|
tag: e,
|
|
517
|
-
raw:
|
|
517
|
+
raw: N(t[0], "\n"),
|
|
518
518
|
href: n,
|
|
519
519
|
title: r
|
|
520
520
|
};
|
|
@@ -523,9 +523,9 @@ ${d.join("\n")}`), r = r.substring(0, r.length - t.text.length) + s.text;
|
|
|
523
523
|
table(e) {
|
|
524
524
|
let t = this.rules.block.table.exec(e);
|
|
525
525
|
if (!t || !this.rules.other.tableDelimiter.test(t[2])) return;
|
|
526
|
-
let n =
|
|
526
|
+
let n = Ye(t[1]), r = t[2].replace(this.rules.other.tableAlignChars, "").split("|"), i = t[3]?.trim() ? t[3].replace(this.rules.other.tableRowBlankLine, "").split("\n") : [], a = {
|
|
527
527
|
type: "table",
|
|
528
|
-
raw:
|
|
528
|
+
raw: N(t[0], "\n"),
|
|
529
529
|
header: [],
|
|
530
530
|
align: [],
|
|
531
531
|
rows: []
|
|
@@ -538,7 +538,7 @@ ${d.join("\n")}`), r = r.substring(0, r.length - t.text.length) + s.text;
|
|
|
538
538
|
header: !0,
|
|
539
539
|
align: a.align[e]
|
|
540
540
|
});
|
|
541
|
-
for (let e of i) a.rows.push(
|
|
541
|
+
for (let e of i) a.rows.push(Ye(e, a.header.length).map((e, t) => ({
|
|
542
542
|
text: e,
|
|
543
543
|
tokens: this.lexer.inline(e),
|
|
544
544
|
header: !1,
|
|
@@ -553,7 +553,7 @@ ${d.join("\n")}`), r = r.substring(0, r.length - t.text.length) + s.text;
|
|
|
553
553
|
let e = t[1].trim();
|
|
554
554
|
return {
|
|
555
555
|
type: "heading",
|
|
556
|
-
raw:
|
|
556
|
+
raw: N(t[0], "\n"),
|
|
557
557
|
depth: t[2].charAt(0) === "=" ? 1 : 2,
|
|
558
558
|
text: e,
|
|
559
559
|
tokens: this.lexer.inline(e)
|
|
@@ -604,14 +604,14 @@ ${d.join("\n")}`), r = r.substring(0, r.length - t.text.length) + s.text;
|
|
|
604
604
|
let t = this.rules.inline.link.exec(e);
|
|
605
605
|
if (t) {
|
|
606
606
|
let n = t[0].charAt(0) === "!" ? 2 : 1;
|
|
607
|
-
if (!this.options.pedantic &&
|
|
607
|
+
if (!this.options.pedantic && tt(e, t[1], n, this.rules)) return;
|
|
608
608
|
let r = t[2].trim();
|
|
609
609
|
if (!this.options.pedantic && this.rules.other.startAngleBracket.test(r)) {
|
|
610
610
|
if (!this.rules.other.endAngleBracket.test(r)) return;
|
|
611
|
-
let e =
|
|
611
|
+
let e = N(r.slice(0, -1), "\\");
|
|
612
612
|
if ((r.length - e.length) % 2 == 0) return;
|
|
613
613
|
} else {
|
|
614
|
-
let e =
|
|
614
|
+
let e = Qe(t[2], "()");
|
|
615
615
|
if (e === -2) return;
|
|
616
616
|
if (e > -1) {
|
|
617
617
|
let n = (t[0].indexOf("!") === 0 ? 5 : 4) + t[1].length + e;
|
|
@@ -633,8 +633,8 @@ ${d.join("\n")}`), r = r.substring(0, r.length - t.text.length) + s.text;
|
|
|
633
633
|
let n;
|
|
634
634
|
if ((n = this.rules.inline.reflink.exec(e)) || (n = this.rules.inline.nolink.exec(e))) {
|
|
635
635
|
let r = n[0].charAt(0) === "!" ? 2 : 1;
|
|
636
|
-
if (!this.options.pedantic &&
|
|
637
|
-
let i = t[
|
|
636
|
+
if (!this.options.pedantic && tt(e, n[1], r, this.rules)) return;
|
|
637
|
+
let i = t[Ze((n[2] || n[1]).replace(this.rules.other.multipleSpaceGlobal, " "))];
|
|
638
638
|
if (!i) {
|
|
639
639
|
let e = n[0].charAt(0);
|
|
640
640
|
return {
|
|
@@ -776,19 +776,19 @@ ${d.join("\n")}`), r = r.substring(0, r.length - t.text.length) + s.text;
|
|
|
776
776
|
return {
|
|
777
777
|
type: "text",
|
|
778
778
|
raw: t[0],
|
|
779
|
-
text: e ? t[0] :
|
|
779
|
+
text: e ? t[0] : Je(t[0]),
|
|
780
780
|
escaped: e
|
|
781
781
|
};
|
|
782
782
|
}
|
|
783
783
|
}
|
|
784
|
-
},
|
|
784
|
+
}, F = class e {
|
|
785
785
|
tokens;
|
|
786
786
|
options;
|
|
787
787
|
state;
|
|
788
788
|
inlineQueue;
|
|
789
789
|
tokenizer;
|
|
790
790
|
constructor(e) {
|
|
791
|
-
this.tokens = [], this.tokens.links = Object.create(null), this.options = e || t, this.options.tokenizer = this.options.tokenizer || new
|
|
791
|
+
this.tokens = [], this.tokens.links = Object.create(null), this.options = e || t, this.options.tokenizer = this.options.tokenizer || new nt(), this.tokenizer = this.options.tokenizer, this.tokenizer.options = this.options, this.tokenizer.lexer = this, this.inlineQueue = [], this.state = {
|
|
792
792
|
inLink: !1,
|
|
793
793
|
inRawBlock: !1,
|
|
794
794
|
linkEmitted: !1,
|
|
@@ -796,15 +796,15 @@ ${d.join("\n")}`), r = r.substring(0, r.length - t.text.length) + s.text;
|
|
|
796
796
|
};
|
|
797
797
|
let n = {
|
|
798
798
|
other: s,
|
|
799
|
-
block:
|
|
800
|
-
inline:
|
|
799
|
+
block: We.normal,
|
|
800
|
+
inline: Ge.normal
|
|
801
801
|
};
|
|
802
|
-
this.options.pedantic ? (n.block =
|
|
802
|
+
this.options.pedantic ? (n.block = We.pedantic, n.inline = Ge.pedantic) : this.options.gfm && (n.block = We.gfm, n.inline = this.options.breaks ? Ge.breaks : Ge.gfm), this.tokenizer.rules = n;
|
|
803
803
|
}
|
|
804
804
|
static get rules() {
|
|
805
805
|
return {
|
|
806
|
-
block:
|
|
807
|
-
inline:
|
|
806
|
+
block: We,
|
|
807
|
+
inline: Ge
|
|
808
808
|
};
|
|
809
809
|
}
|
|
810
810
|
static lex(t, n) {
|
|
@@ -922,7 +922,7 @@ ${d.join("\n")}`), r = r.substring(0, r.length - t.text.length) + s.text;
|
|
|
922
922
|
for (let n of e.matchAll(this.tokenizer.rules.inline.blockSkip)) if (t.test(n[0]) && e.charAt(n.index - 1) !== "!") return !0;
|
|
923
923
|
for (let t of e.matchAll(this.tokenizer.rules.inline.reflinkSearch)) {
|
|
924
924
|
let e = t[0], n = e.lastIndexOf("[");
|
|
925
|
-
if (e.charAt(0) !== "!" && Object.hasOwn(this.tokens.links,
|
|
925
|
+
if (e.charAt(0) !== "!" && Object.hasOwn(this.tokens.links, Ze(e.slice(n + 1, -1))) && !(n > 1 && this.linkInText(e.slice(1, n - 1)))) return !0;
|
|
926
926
|
}
|
|
927
927
|
return !1;
|
|
928
928
|
}
|
|
@@ -932,7 +932,7 @@ ${d.join("\n")}`), r = r.substring(0, r.length - t.text.length) + s.text;
|
|
|
932
932
|
if (this.tokens.links && e.includes("[")) {
|
|
933
933
|
let e = this.tokenizer.rules.inline.reflinkSearch, t = (n) => {
|
|
934
934
|
let r = n.lastIndexOf("[");
|
|
935
|
-
if (!Object.hasOwn(this.tokens.links,
|
|
935
|
+
if (!Object.hasOwn(this.tokens.links, Ze(n.slice(r + 1, -1)))) return n;
|
|
936
936
|
if (r > 1 && n.charAt(0) !== "!") {
|
|
937
937
|
let i = n.slice(1, r - 1);
|
|
938
938
|
if (this.linkInText(i)) return "[" + i.replace(e, t) + "][" + "a".repeat(n.length - r - 2) + "]";
|
|
@@ -1022,7 +1022,7 @@ ${d.join("\n")}`), r = r.substring(0, r.length - t.text.length) + s.text;
|
|
|
1022
1022
|
if (this.options.silent) console.error(t);
|
|
1023
1023
|
else throw Error(t);
|
|
1024
1024
|
}
|
|
1025
|
-
},
|
|
1025
|
+
}, rt = class {
|
|
1026
1026
|
options;
|
|
1027
1027
|
parser;
|
|
1028
1028
|
constructor(e) {
|
|
@@ -1033,7 +1033,7 @@ ${d.join("\n")}`), r = r.substring(0, r.length - t.text.length) + s.text;
|
|
|
1033
1033
|
}
|
|
1034
1034
|
code({ text: e, lang: t, escaped: n }) {
|
|
1035
1035
|
let r = (t || "").match(s.notSpaceStart)?.[0], i = e ? e.replace(s.endingNewline, "") + "\n" : "";
|
|
1036
|
-
return r ? "<pre><code class=\"language-" +
|
|
1036
|
+
return r ? "<pre><code class=\"language-" + j(r) + "\">" + (n ? i : j(i, !0)) + "</code></pre>\n" : "<pre><code>" + (n ? i : j(i, !0)) + "</code></pre>\n";
|
|
1037
1037
|
}
|
|
1038
1038
|
blockquote({ tokens: e }) {
|
|
1039
1039
|
return `<blockquote>
|
|
@@ -1103,7 +1103,7 @@ ${e}</tr>
|
|
|
1103
1103
|
return `<em>${this.parser.parseInline(e)}</em>`;
|
|
1104
1104
|
}
|
|
1105
1105
|
codespan({ text: e }) {
|
|
1106
|
-
return `<code>${
|
|
1106
|
+
return `<code>${j(e, !0)}</code>`;
|
|
1107
1107
|
}
|
|
1108
1108
|
br(e) {
|
|
1109
1109
|
return "<br>";
|
|
@@ -1112,24 +1112,24 @@ ${e}</tr>
|
|
|
1112
1112
|
return `<del>${this.parser.parseInline(e)}</del>`;
|
|
1113
1113
|
}
|
|
1114
1114
|
link({ href: e, title: t, text: n, tokens: r, autolink: i }) {
|
|
1115
|
-
let a = i ?
|
|
1115
|
+
let a = i ? j(n, !0) : this.parser.parseInline(r), o = M(e);
|
|
1116
1116
|
if (o === null) return a;
|
|
1117
|
-
e =
|
|
1117
|
+
e = j(o, i);
|
|
1118
1118
|
let s = "<a href=\"" + e + "\"";
|
|
1119
|
-
return t && (s += " title=\"" +
|
|
1119
|
+
return t && (s += " title=\"" + j(t) + "\""), s += ">" + a + "</a>", s;
|
|
1120
1120
|
}
|
|
1121
1121
|
image({ href: e, title: t, text: n, tokens: r }) {
|
|
1122
1122
|
r && (n = this.parser.parseInline(r, this.parser.textRenderer));
|
|
1123
|
-
let i =
|
|
1124
|
-
if (i === null) return
|
|
1123
|
+
let i = M(e);
|
|
1124
|
+
if (i === null) return j(n);
|
|
1125
1125
|
e = i;
|
|
1126
|
-
let a = `<img src="${
|
|
1127
|
-
return t && (a += ` title="${
|
|
1126
|
+
let a = `<img src="${j(e)}" alt="${j(n)}"`;
|
|
1127
|
+
return t && (a += ` title="${j(t)}"`), a += ">", a;
|
|
1128
1128
|
}
|
|
1129
1129
|
text(e) {
|
|
1130
|
-
return "tokens" in e && e.tokens ? this.parser.parseInline(e.tokens) : "escaped" in e && e.escaped ? e.text :
|
|
1130
|
+
return "tokens" in e && e.tokens ? this.parser.parseInline(e.tokens) : "escaped" in e && e.escaped ? e.text : j(e.text);
|
|
1131
1131
|
}
|
|
1132
|
-
},
|
|
1132
|
+
}, it = class {
|
|
1133
1133
|
strong({ text: e }) {
|
|
1134
1134
|
return e;
|
|
1135
1135
|
}
|
|
@@ -1160,12 +1160,12 @@ ${e}</tr>
|
|
|
1160
1160
|
checkbox({ raw: e }) {
|
|
1161
1161
|
return e;
|
|
1162
1162
|
}
|
|
1163
|
-
},
|
|
1163
|
+
}, I = class e {
|
|
1164
1164
|
options;
|
|
1165
1165
|
renderer;
|
|
1166
1166
|
textRenderer;
|
|
1167
1167
|
constructor(e) {
|
|
1168
|
-
this.options = e || t, this.options.renderer = this.options.renderer || new
|
|
1168
|
+
this.options = e || t, this.options.renderer = this.options.renderer || new rt(), this.renderer = this.options.renderer, this.renderer.options = this.options, this.renderer.parser = this, this.textRenderer = new it();
|
|
1169
1169
|
}
|
|
1170
1170
|
static parse(t, n) {
|
|
1171
1171
|
return new e(n).parse(t);
|
|
@@ -1313,7 +1313,7 @@ ${e}</tr>
|
|
|
1313
1313
|
}
|
|
1314
1314
|
return n;
|
|
1315
1315
|
}
|
|
1316
|
-
},
|
|
1316
|
+
}, at = class {
|
|
1317
1317
|
options;
|
|
1318
1318
|
block;
|
|
1319
1319
|
constructor(e) {
|
|
@@ -1343,22 +1343,22 @@ ${e}</tr>
|
|
|
1343
1343
|
return e;
|
|
1344
1344
|
}
|
|
1345
1345
|
provideLexer(e = this.block) {
|
|
1346
|
-
return e ?
|
|
1346
|
+
return e ? F.lex : F.lexInline;
|
|
1347
1347
|
}
|
|
1348
1348
|
provideParser(e = this.block) {
|
|
1349
|
-
return e ?
|
|
1349
|
+
return e ? I.parse : I.parseInline;
|
|
1350
1350
|
}
|
|
1351
1351
|
}, ot = class {
|
|
1352
1352
|
defaults = e();
|
|
1353
1353
|
options = this.setOptions;
|
|
1354
1354
|
parse = this.parseMarkdown(!0);
|
|
1355
1355
|
parseInline = this.parseMarkdown(!1);
|
|
1356
|
-
Parser =
|
|
1357
|
-
Renderer =
|
|
1358
|
-
TextRenderer =
|
|
1359
|
-
Lexer =
|
|
1360
|
-
Tokenizer =
|
|
1361
|
-
Hooks =
|
|
1356
|
+
Parser = I;
|
|
1357
|
+
Renderer = rt;
|
|
1358
|
+
TextRenderer = it;
|
|
1359
|
+
Lexer = F;
|
|
1360
|
+
Tokenizer = nt;
|
|
1361
|
+
Hooks = at;
|
|
1362
1362
|
constructor(...e) {
|
|
1363
1363
|
this.use(...e);
|
|
1364
1364
|
}
|
|
@@ -1409,7 +1409,7 @@ ${e}</tr>
|
|
|
1409
1409
|
}
|
|
1410
1410
|
"childTokens" in e && e.childTokens && (t.childTokens[e.name] = e.childTokens);
|
|
1411
1411
|
}), n.extensions = t), e.renderer) {
|
|
1412
|
-
let t = this.defaults.renderer || new
|
|
1412
|
+
let t = this.defaults.renderer || new rt(this.defaults);
|
|
1413
1413
|
for (let n in e.renderer) {
|
|
1414
1414
|
if (!(n in t)) throw Error(`renderer '${n}' does not exist`);
|
|
1415
1415
|
if (["options", "parser"].includes(n)) continue;
|
|
@@ -1422,7 +1422,7 @@ ${e}</tr>
|
|
|
1422
1422
|
n.renderer = t;
|
|
1423
1423
|
}
|
|
1424
1424
|
if (e.tokenizer) {
|
|
1425
|
-
let t = this.defaults.tokenizer || new
|
|
1425
|
+
let t = this.defaults.tokenizer || new nt(this.defaults);
|
|
1426
1426
|
for (let n in e.tokenizer) {
|
|
1427
1427
|
if (!(n in t)) throw Error(`tokenizer '${n}' does not exist`);
|
|
1428
1428
|
if ([
|
|
@@ -1439,13 +1439,13 @@ ${e}</tr>
|
|
|
1439
1439
|
n.tokenizer = t;
|
|
1440
1440
|
}
|
|
1441
1441
|
if (e.hooks) {
|
|
1442
|
-
let t = this.defaults.hooks || new
|
|
1442
|
+
let t = this.defaults.hooks || new at();
|
|
1443
1443
|
for (let n in e.hooks) {
|
|
1444
1444
|
if (!(n in t)) throw Error(`hook '${n}' does not exist`);
|
|
1445
1445
|
if (["options", "block"].includes(n)) continue;
|
|
1446
1446
|
let r = n, i = e.hooks[r], a = t[r];
|
|
1447
|
-
t[r] =
|
|
1448
|
-
if (this.defaults.async &&
|
|
1447
|
+
t[r] = at.passThroughHooks.has(n) ? (e) => {
|
|
1448
|
+
if (this.defaults.async && at.passThroughHooksRespectAsync.has(n)) return (async () => {
|
|
1449
1449
|
let n = await i.call(t, e);
|
|
1450
1450
|
return a.call(t, n);
|
|
1451
1451
|
})();
|
|
@@ -1482,10 +1482,10 @@ ${e}</tr>
|
|
|
1482
1482
|
}, this;
|
|
1483
1483
|
}
|
|
1484
1484
|
lexer(e, t) {
|
|
1485
|
-
return
|
|
1485
|
+
return F.lex(e, t ?? this.defaults);
|
|
1486
1486
|
}
|
|
1487
1487
|
parser(e, t) {
|
|
1488
|
-
return
|
|
1488
|
+
return I.parse(e, t ?? this.defaults);
|
|
1489
1489
|
}
|
|
1490
1490
|
parseMarkdown(e) {
|
|
1491
1491
|
return (t, n) => {
|
|
@@ -1497,16 +1497,16 @@ ${e}</tr>
|
|
|
1497
1497
|
if (typeof t > "u" || t === null) return a(/* @__PURE__ */ Error("marked(): input parameter is undefined or null"));
|
|
1498
1498
|
if (typeof t != "string") return a(/* @__PURE__ */ Error("marked(): input parameter is of type " + Object.prototype.toString.call(t) + ", string expected"));
|
|
1499
1499
|
if (i.hooks && (i.hooks.options = i, i.hooks.block = e), i.async) return (async () => {
|
|
1500
|
-
let n = i.hooks ? await i.hooks.preprocess(t) : t, r = await (i.hooks ? await i.hooks.provideLexer(e) : e ?
|
|
1500
|
+
let n = i.hooks ? await i.hooks.preprocess(t) : t, r = await (i.hooks ? await i.hooks.provideLexer(e) : e ? F.lex : F.lexInline)(n, i), a = i.hooks ? await i.hooks.processAllTokens(r) : r;
|
|
1501
1501
|
i.walkTokens && await Promise.all(this.walkTokens(a, i.walkTokens));
|
|
1502
|
-
let o = await (i.hooks ? await i.hooks.provideParser(e) : e ?
|
|
1502
|
+
let o = await (i.hooks ? await i.hooks.provideParser(e) : e ? I.parse : I.parseInline)(a, i);
|
|
1503
1503
|
return i.hooks ? await i.hooks.postprocess(o) : o;
|
|
1504
1504
|
})().catch(a);
|
|
1505
1505
|
try {
|
|
1506
1506
|
i.hooks && (t = i.hooks.preprocess(t));
|
|
1507
|
-
let n = (i.hooks ? i.hooks.provideLexer(e) : e ?
|
|
1507
|
+
let n = (i.hooks ? i.hooks.provideLexer(e) : e ? F.lex : F.lexInline)(t, i);
|
|
1508
1508
|
i.hooks && (n = i.hooks.processAllTokens(n)), i.walkTokens && this.walkTokens(n, i.walkTokens);
|
|
1509
|
-
let r = (i.hooks ? i.hooks.provideParser(e) : e ?
|
|
1509
|
+
let r = (i.hooks ? i.hooks.provideParser(e) : e ? I.parse : I.parseInline)(n, i);
|
|
1510
1510
|
return i.hooks && (r = i.hooks.postprocess(r)), r;
|
|
1511
1511
|
} catch (e) {
|
|
1512
1512
|
return a(e);
|
|
@@ -1516,29 +1516,29 @@ ${e}</tr>
|
|
|
1516
1516
|
onError(e, t) {
|
|
1517
1517
|
return (n) => {
|
|
1518
1518
|
if (n.message += "\nPlease report this to https://github.com/markedjs/marked.", e) {
|
|
1519
|
-
let e = "<p>An error occurred:</p><pre>" +
|
|
1519
|
+
let e = "<p>An error occurred:</p><pre>" + j(n.message + "", !0) + "</pre>";
|
|
1520
1520
|
return t ? Promise.resolve(e) : e;
|
|
1521
1521
|
}
|
|
1522
1522
|
if (t) return Promise.reject(n);
|
|
1523
1523
|
throw n;
|
|
1524
1524
|
};
|
|
1525
1525
|
}
|
|
1526
|
-
},
|
|
1527
|
-
function
|
|
1528
|
-
return
|
|
1526
|
+
}, st = new ot();
|
|
1527
|
+
function L(e, t) {
|
|
1528
|
+
return st.parse(e, t);
|
|
1529
1529
|
}
|
|
1530
|
-
|
|
1531
|
-
return
|
|
1532
|
-
},
|
|
1533
|
-
function
|
|
1534
|
-
return
|
|
1530
|
+
L.options = L.setOptions = function(e) {
|
|
1531
|
+
return st.setOptions(e), L.defaults = st.defaults, n(L.defaults), L;
|
|
1532
|
+
}, L.getDefaults = e, L.defaults = t;
|
|
1533
|
+
function ct(...e) {
|
|
1534
|
+
return st.use(...e), L.defaults = st.defaults, n(L.defaults), L;
|
|
1535
1535
|
}
|
|
1536
|
-
|
|
1537
|
-
return
|
|
1538
|
-
},
|
|
1536
|
+
L.use = ct, L.walkTokens = function(e, t) {
|
|
1537
|
+
return st.walkTokens(e, t);
|
|
1538
|
+
}, L.parseInline = st.parseInline, L.Parser = I, L.parser = I.parse, L.Renderer = rt, L.TextRenderer = it, L.Lexer = F, L.lexer = F.lex, L.Tokenizer = nt, L.Hooks = at, L.parse = L, L.options, L.setOptions, L.walkTokens, L.parseInline, I.parse, F.lex;
|
|
1539
1539
|
//#endregion
|
|
1540
1540
|
//#region node_modules/dompurify/dist/purify.es.mjs
|
|
1541
|
-
function
|
|
1541
|
+
function R(e, t) {
|
|
1542
1542
|
this.v = e, this.k = t;
|
|
1543
1543
|
}
|
|
1544
1544
|
function lt(e, t) {
|
|
@@ -1587,7 +1587,7 @@ function ht(e) {
|
|
|
1587
1587
|
var t, n;
|
|
1588
1588
|
function r(t, n) {
|
|
1589
1589
|
try {
|
|
1590
|
-
var a = e[t](n), o = a.value, s = o instanceof
|
|
1590
|
+
var a = e[t](n), o = a.value, s = o instanceof R;
|
|
1591
1591
|
Promise.resolve(s ? o.v : o).then(function(n) {
|
|
1592
1592
|
if (s) {
|
|
1593
1593
|
var c = t === "return" && o.k ? t : "next";
|
|
@@ -1630,7 +1630,7 @@ ht.prototype[typeof Symbol == "function" && Symbol.asyncIterator || "@@asyncIter
|
|
|
1630
1630
|
}, ht.prototype.return = function(e) {
|
|
1631
1631
|
return this._invoke("return", e);
|
|
1632
1632
|
};
|
|
1633
|
-
var gt = Object.entries,
|
|
1633
|
+
var gt = Object.entries, _t = Object.setPrototypeOf, vt = Object.isFrozen, yt = Object.getPrototypeOf, z = Object.getOwnPropertyDescriptor, B = Object.freeze, V = Object.seal, bt = Object.create, xt = typeof Reflect < "u" && Reflect, St = xt.apply, Ct = xt.construct;
|
|
1634
1634
|
B ||= function(e) {
|
|
1635
1635
|
return e;
|
|
1636
1636
|
}, V ||= function(e) {
|
|
@@ -1641,11 +1641,9 @@ B ||= function(e) {
|
|
|
1641
1641
|
}, Ct ||= function(e) {
|
|
1642
1642
|
return new e(...[...arguments].slice(1));
|
|
1643
1643
|
};
|
|
1644
|
-
var
|
|
1644
|
+
var H = K(Array.prototype.forEach);
|
|
1645
1645
|
Array.prototype.indexOf;
|
|
1646
|
-
var
|
|
1647
|
-
Array.prototype.slice;
|
|
1648
|
-
var Ot = K(Array.prototype.splice), kt = Array.isArray, At = K(String.prototype.toLowerCase), jt = K(String.prototype.toString), Mt = K(String.prototype.match), Nt = K(String.prototype.replace), Pt = K(String.prototype.indexOf), Ft = K(String.prototype.trim), It = K(Number.prototype.toString), Lt = K(Boolean.prototype.toString), Rt = typeof BigInt > "u" ? null : K(BigInt.prototype.toString), zt = typeof Symbol > "u" ? null : K(Symbol.prototype.toString), H = K(Object.prototype.hasOwnProperty), U = K(Object.prototype.toString), W = K(RegExp.prototype.test), G = Bt(TypeError);
|
|
1646
|
+
var wt = K(Array.prototype.lastIndexOf), Tt = K(Array.prototype.pop), Et = K(Array.prototype.push), Dt = K(Array.prototype.slice), Ot = K(Array.prototype.splice), kt = Array.isArray, At = Wt(Set), jt = K(Set.prototype.add), Mt = K(Set.prototype.has), Nt = K(String.prototype.toLowerCase), Pt = K(String.prototype.toString), Ft = K(String.prototype.match), It = K(String.prototype.replace), Lt = K(String.prototype.indexOf), Rt = K(String.prototype.trim), zt = K(Number.prototype.toString), Bt = K(Boolean.prototype.toString), Vt = typeof BigInt > "u" ? null : K(BigInt.prototype.toString), Ht = typeof Symbol > "u" ? null : K(Symbol.prototype.toString), U = K(Object.prototype.hasOwnProperty), Ut = K(Object.prototype.toString), W = K(RegExp.prototype.test), G = Wt(TypeError);
|
|
1649
1647
|
function K(e) {
|
|
1650
1648
|
return function(t) {
|
|
1651
1649
|
t instanceof RegExp && (t.lastIndex = 0);
|
|
@@ -1653,27 +1651,27 @@ function K(e) {
|
|
|
1653
1651
|
return St(e, t, n);
|
|
1654
1652
|
};
|
|
1655
1653
|
}
|
|
1656
|
-
function
|
|
1654
|
+
function Wt(e) {
|
|
1657
1655
|
return function() {
|
|
1658
1656
|
return Ct(e, [...arguments]);
|
|
1659
1657
|
};
|
|
1660
1658
|
}
|
|
1661
1659
|
function q(e, t) {
|
|
1662
|
-
let n = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] :
|
|
1663
|
-
if (
|
|
1660
|
+
let n = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : Nt;
|
|
1661
|
+
if (_t && _t(e, null), !kt(t)) return e;
|
|
1664
1662
|
let r = t.length;
|
|
1665
1663
|
for (; r--;) {
|
|
1666
1664
|
let i = t[r];
|
|
1667
1665
|
if (typeof i == "string") {
|
|
1668
1666
|
let e = n(i);
|
|
1669
|
-
e !== i && (
|
|
1667
|
+
e !== i && (vt(t) || (t[r] = e), i = e);
|
|
1670
1668
|
}
|
|
1671
1669
|
e[i] = !0;
|
|
1672
1670
|
}
|
|
1673
1671
|
return e;
|
|
1674
1672
|
}
|
|
1675
|
-
function
|
|
1676
|
-
for (let t = 0; t < e.length; t++)
|
|
1673
|
+
function Gt(e) {
|
|
1674
|
+
for (let t = 0; t < e.length; t++) U(e, t) || (e[t] = null);
|
|
1677
1675
|
return e;
|
|
1678
1676
|
}
|
|
1679
1677
|
function J(e) {
|
|
@@ -1681,53 +1679,61 @@ function J(e) {
|
|
|
1681
1679
|
for (let r of gt(e)) {
|
|
1682
1680
|
var n = pt(r, 2);
|
|
1683
1681
|
let i = n[0], a = n[1];
|
|
1684
|
-
|
|
1682
|
+
U(e, i) && (t[i] = kt(a) ? Gt(a) : a && typeof a == "object" && a.constructor === Object ? J(a) : a);
|
|
1685
1683
|
}
|
|
1686
1684
|
return t;
|
|
1687
1685
|
}
|
|
1688
|
-
function
|
|
1686
|
+
function Kt(e) {
|
|
1689
1687
|
switch (typeof e) {
|
|
1690
1688
|
case "string": return e;
|
|
1691
|
-
case "number": return
|
|
1692
|
-
case "boolean": return
|
|
1693
|
-
case "bigint": return
|
|
1694
|
-
case "symbol": return
|
|
1695
|
-
case "undefined": return
|
|
1689
|
+
case "number": return zt(e);
|
|
1690
|
+
case "boolean": return Bt(e);
|
|
1691
|
+
case "bigint": return Vt ? Vt(e) : "0";
|
|
1692
|
+
case "symbol": return Ht ? Ht(e) : "Symbol()";
|
|
1693
|
+
case "undefined": return Ut(e);
|
|
1696
1694
|
case "function":
|
|
1697
1695
|
case "object": {
|
|
1698
|
-
if (e === null) return
|
|
1696
|
+
if (e === null) return Ut(e);
|
|
1699
1697
|
let t = e, n = Y(t, "toString");
|
|
1700
1698
|
if (typeof n == "function") {
|
|
1701
1699
|
let e = n(t);
|
|
1702
|
-
return typeof e == "string" ? e :
|
|
1700
|
+
return typeof e == "string" ? e : Ut(e);
|
|
1703
1701
|
}
|
|
1704
|
-
return
|
|
1702
|
+
return Ut(e);
|
|
1705
1703
|
}
|
|
1706
|
-
default: return
|
|
1704
|
+
default: return Ut(e);
|
|
1707
1705
|
}
|
|
1708
1706
|
}
|
|
1709
1707
|
function Y(e, t) {
|
|
1710
1708
|
for (; e !== null;) {
|
|
1711
|
-
let n =
|
|
1709
|
+
let n = z(e, t);
|
|
1712
1710
|
if (n) {
|
|
1713
1711
|
if (n.get) return K(n.get);
|
|
1714
1712
|
if (typeof n.value == "function") return K(n.value);
|
|
1715
1713
|
}
|
|
1716
|
-
e =
|
|
1714
|
+
e = yt(e);
|
|
1717
1715
|
}
|
|
1718
1716
|
function n() {
|
|
1719
1717
|
return null;
|
|
1720
1718
|
}
|
|
1721
1719
|
return n;
|
|
1722
1720
|
}
|
|
1723
|
-
function
|
|
1721
|
+
function qt(e, t) {
|
|
1722
|
+
for (; e !== null;) {
|
|
1723
|
+
let n = z(e, t);
|
|
1724
|
+
if (n) return n.get ? K(n.get) : null;
|
|
1725
|
+
e = yt(e);
|
|
1726
|
+
}
|
|
1727
|
+
return null;
|
|
1728
|
+
}
|
|
1729
|
+
function Jt(e) {
|
|
1724
1730
|
try {
|
|
1725
1731
|
return W(e, ""), !0;
|
|
1726
1732
|
} catch {
|
|
1727
1733
|
return !1;
|
|
1728
1734
|
}
|
|
1729
1735
|
}
|
|
1730
|
-
var
|
|
1736
|
+
var Yt = B(/* @__PURE__ */ "a.abbr.acronym.address.area.article.aside.audio.b.bdi.bdo.big.blink.blockquote.body.br.button.canvas.caption.center.cite.code.col.colgroup.content.data.datalist.dd.decorator.del.details.dfn.dialog.dir.div.dl.dt.element.em.fieldset.figcaption.figure.font.footer.form.h1.h2.h3.h4.h5.h6.head.header.hgroup.hr.html.i.img.input.ins.kbd.label.legend.li.main.map.mark.marquee.menu.menuitem.meter.nav.nobr.ol.optgroup.option.output.p.picture.pre.progress.q.rp.rt.ruby.s.samp.search.section.select.shadow.slot.small.source.spacer.span.strike.strong.style.sub.summary.sup.table.tbody.td.template.textarea.tfoot.th.thead.time.tr.track.tt.u.ul.var.video.wbr".split(".")), Xt = B(/* @__PURE__ */ "svg.a.altglyph.altglyphdef.altglyphitem.animatecolor.animatemotion.animatetransform.circle.clippath.defs.desc.ellipse.enterkeyhint.exportparts.filter.font.g.glyph.glyphref.hkern.image.inputmode.line.lineargradient.marker.mask.metadata.mpath.part.path.pattern.polygon.polyline.radialgradient.rect.stop.style.switch.symbol.text.textpath.title.tref.tspan.view.vkern".split(".")), Zt = B([
|
|
1731
1737
|
"feBlend",
|
|
1732
1738
|
"feColorMatrix",
|
|
1733
1739
|
"feComponentTransfer",
|
|
@@ -1753,7 +1759,7 @@ var Wt = B(/* @__PURE__ */ "a.abbr.acronym.address.area.article.aside.audio.b.bd
|
|
|
1753
1759
|
"feSpotLight",
|
|
1754
1760
|
"feTile",
|
|
1755
1761
|
"feTurbulence"
|
|
1756
|
-
]),
|
|
1762
|
+
]), Qt = B([
|
|
1757
1763
|
"animate",
|
|
1758
1764
|
"color-profile",
|
|
1759
1765
|
"cursor",
|
|
@@ -1776,7 +1782,7 @@ var Wt = B(/* @__PURE__ */ "a.abbr.acronym.address.area.article.aside.audio.b.bd
|
|
|
1776
1782
|
"solidcolor",
|
|
1777
1783
|
"unknown",
|
|
1778
1784
|
"use"
|
|
1779
|
-
]),
|
|
1785
|
+
]), $t = B(/* @__PURE__ */ "math.menclose.merror.mfenced.mfrac.mglyph.mi.mlabeledtr.mmultiscripts.mn.mo.mover.mpadded.mphantom.mroot.mrow.ms.mspace.msqrt.mstyle.msub.msup.msubsup.mtable.mtd.mtext.mtr.munder.munderover.mprescripts".split(".")), en = B([
|
|
1780
1786
|
"maction",
|
|
1781
1787
|
"maligngroup",
|
|
1782
1788
|
"malignmark",
|
|
@@ -1792,13 +1798,13 @@ var Wt = B(/* @__PURE__ */ "a.abbr.acronym.address.area.article.aside.audio.b.bd
|
|
|
1792
1798
|
"annotation-xml",
|
|
1793
1799
|
"mprescripts",
|
|
1794
1800
|
"none"
|
|
1795
|
-
]),
|
|
1801
|
+
]), tn = B(["#text"]), nn = B(/* @__PURE__ */ "accept.action.align.alt.autocapitalize.autocomplete.autopictureinpicture.autoplay.background.bgcolor.border.capture.cellpadding.cellspacing.checked.cite.class.clear.color.cols.colspan.command.commandfor.controls.controlslist.coords.crossorigin.datetime.decoding.default.dir.disabled.disablepictureinpicture.disableremoteplayback.download.draggable.enctype.enterkeyhint.exportparts.face.for.headers.height.hidden.high.href.hreflang.id.inert.inputmode.integrity.ismap.kind.label.lang.list.loading.loop.low.max.maxlength.media.method.min.minlength.multiple.muted.name.nonce.noshade.novalidate.nowrap.open.optimum.part.pattern.placeholder.playsinline.popover.popovertarget.popovertargetaction.poster.preload.pubdate.radiogroup.readonly.rel.required.rev.reversed.role.rows.rowspan.spellcheck.scope.selected.shape.size.sizes.slot.span.srclang.start.src.srcset.step.style.summary.tabindex.title.translate.type.usemap.valign.value.width.wrap.xmlns".split(".")), rn = B(/* @__PURE__ */ "accent-height.accumulate.additive.alignment-baseline.amplitude.ascent.attributename.attributetype.azimuth.basefrequency.baseline-shift.begin.bias.by.class.clip.clippathunits.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.cx.cy.d.dx.dy.diffuseconstant.direction.display.divisor.dominant-baseline.dur.edgemode.elevation.end.exponent.fill.fill-opacity.fill-rule.filter.filterunits.flood-color.flood-opacity.font-family.font-size.font-size-adjust.font-stretch.font-style.font-variant.font-weight.fx.fy.g1.g2.glyph-name.glyphref.gradientunits.gradienttransform.height.href.id.image-rendering.in.in2.intercept.k.k1.k2.k3.k4.kerning.keypoints.keysplines.keytimes.lang.lengthadjust.letter-spacing.kernelmatrix.kernelunitlength.lighting-color.local.marker-end.marker-mid.marker-start.markerheight.markerunits.markerwidth.maskcontentunits.maskunits.max.mask.mask-type.media.method.mode.min.name.numoctaves.offset.operator.opacity.order.orient.orientation.origin.overflow.paint-order.path.pathlength.patterncontentunits.patterntransform.patternunits.pointer-events.points.preservealpha.preserveaspectratio.primitiveunits.r.rx.ry.radius.refx.refy.repeatcount.repeatdur.restart.result.rotate.scale.seed.shape-rendering.slope.specularconstant.specularexponent.spreadmethod.startoffset.stddeviation.stitchtiles.stop-color.stop-opacity.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke.stroke-width.style.surfacescale.systemlanguage.tabindex.tablevalues.targetx.targety.transform.transform-origin.text-anchor.text-decoration.text-orientation.text-rendering.textlength.type.u1.u2.unicode.values.vector-effect.viewbox.visibility.version.vert-adv-y.vert-origin-x.vert-origin-y.width.word-spacing.wrap.writing-mode.xchannelselector.ychannelselector.x.x1.x2.xmlns.y.y1.y2.z.zoomandpan".split(".")), an = B(/* @__PURE__ */ "accent.accentunder.align.bevelled.close.columnalign.columnlines.columnspacing.columnspan.denomalign.depth.dir.display.displaystyle.encoding.fence.frame.height.href.id.largeop.length.linethickness.lquote.lspace.mathbackground.mathcolor.mathsize.mathvariant.maxsize.minsize.movablelimits.notation.numalign.open.rowalign.rowlines.rowspacing.rowspan.rspace.rquote.scriptlevel.scriptminsize.scriptsizemultiplier.selection.separator.separators.stretchy.subscriptshift.supscriptshift.symmetric.voffset.width.xmlns".split(".")), on = B([
|
|
1796
1802
|
"xlink:href",
|
|
1797
1803
|
"xml:id",
|
|
1798
1804
|
"xlink:title",
|
|
1799
1805
|
"xml:space",
|
|
1800
1806
|
"xmlns:xlink"
|
|
1801
|
-
]),
|
|
1807
|
+
]), sn = V(/{{[\w\W]*|^[\w\W]*}}/g), cn = V(/<%[\w\W]*|^[\w\W]*%>/g), ln = V(/\${[\w\W]*/g), un = V(/^data-[\-\w.\u00B7-\uFFFF]+$/), dn = V(/^aria-[\-\w]+$/), fn = V(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i), pn = V(/^(?:\w+script|data):/i), mn = V(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g), hn = V(/^html$/i), gn = V(/^[a-z][.\w]*(-[.\w]+)+$/i), _n = V(/<[/\w!]/g), vn = V(/<[/\w]/g), yn = V(/<\/no(script|embed|frames)/i), bn = V(/\/>/i), X = {
|
|
1802
1808
|
element: 1,
|
|
1803
1809
|
attribute: 2,
|
|
1804
1810
|
text: 3,
|
|
@@ -1811,7 +1817,7 @@ var Wt = B(/* @__PURE__ */ "a.abbr.acronym.address.area.article.aside.audio.b.bd
|
|
|
1811
1817
|
documentType: 10,
|
|
1812
1818
|
documentFragment: 11,
|
|
1813
1819
|
notation: 12
|
|
1814
|
-
},
|
|
1820
|
+
}, xn = B(q({}, [
|
|
1815
1821
|
"style",
|
|
1816
1822
|
"script",
|
|
1817
1823
|
"xmp",
|
|
@@ -1820,14 +1826,9 @@ var Wt = B(/* @__PURE__ */ "a.abbr.acronym.address.area.article.aside.audio.b.bd
|
|
|
1820
1826
|
"noframes",
|
|
1821
1827
|
"plaintext",
|
|
1822
1828
|
"noscript"
|
|
1823
|
-
]
|
|
1824
|
-
let e = {};
|
|
1825
|
-
return wt(Z, (t) => {
|
|
1826
|
-
e[t] = V(RegExp("</" + t + "(?=[\\t\\n\\f\\r />])", "i"));
|
|
1827
|
-
}), B(e);
|
|
1828
|
-
}(), vn = function() {
|
|
1829
|
+
])), Sn = function() {
|
|
1829
1830
|
return typeof window > "u" ? null : window;
|
|
1830
|
-
},
|
|
1831
|
+
}, Cn = function(e, t) {
|
|
1831
1832
|
if (typeof e != "object" || typeof e.createPolicy != "function") return null;
|
|
1832
1833
|
let n = null, r = "data-tt-policy-suffix";
|
|
1833
1834
|
t && t.hasAttribute(r) && (n = t.getAttribute(r));
|
|
@@ -1844,7 +1845,7 @@ var Wt = B(/* @__PURE__ */ "a.abbr.acronym.address.area.article.aside.audio.b.bd
|
|
|
1844
1845
|
} catch {
|
|
1845
1846
|
return console.warn("TrustedTypes policy " + i + " could not be created."), null;
|
|
1846
1847
|
}
|
|
1847
|
-
},
|
|
1848
|
+
}, wn = function() {
|
|
1848
1849
|
return {
|
|
1849
1850
|
afterSanitizeAttributes: [],
|
|
1850
1851
|
afterSanitizeElements: [],
|
|
@@ -1856,59 +1857,61 @@ var Wt = B(/* @__PURE__ */ "a.abbr.acronym.address.area.article.aside.audio.b.bd
|
|
|
1856
1857
|
uponSanitizeElement: [],
|
|
1857
1858
|
uponSanitizeShadowNode: []
|
|
1858
1859
|
};
|
|
1859
|
-
},
|
|
1860
|
-
return
|
|
1861
|
-
},
|
|
1862
|
-
let r =
|
|
1860
|
+
}, Tn = function(e, t, n, r) {
|
|
1861
|
+
return U(e, t) && kt(e[t]) ? q(r.base ? J(r.base) : {}, e[t], r.transform) : n;
|
|
1862
|
+
}, En = function(e, t, n) {
|
|
1863
|
+
let r = U(e, t) ? e[t] : void 0;
|
|
1863
1864
|
return r && typeof r == "object" ? J(r) : n();
|
|
1864
1865
|
};
|
|
1865
|
-
function
|
|
1866
|
-
let e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] :
|
|
1867
|
-
if (t.version = "3.4.
|
|
1866
|
+
function Dn() {
|
|
1867
|
+
let e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : Sn(), t = (e) => Dn(e);
|
|
1868
|
+
if (t.version = "3.4.17", t.removed = [], !e || !e.document || e.document.nodeType !== X.document || !e.Element) return t.isSupported = !1, t;
|
|
1868
1869
|
let n = e.document, r = n, i = r.currentScript;
|
|
1869
1870
|
e.DocumentFragment;
|
|
1870
1871
|
let a = e.HTMLTemplateElement, o = e.Node, s = e.Element, c = e.NodeFilter;
|
|
1871
1872
|
e.NamedNodeMap === void 0 && (e.NamedNodeMap || e.MozNamedAttrMap), e.HTMLFormElement;
|
|
1872
|
-
let l = e.DOMParser, u = e.trustedTypes, d = s.prototype, f = Y(d, "cloneNode"), p = Y(d, "remove"), m = Y(d, "removeAttributeNode"),
|
|
1873
|
-
return
|
|
1874
|
-
},
|
|
1875
|
-
return
|
|
1873
|
+
let l = e.DOMParser, u = e.trustedTypes, d = s.prototype, f = Y(d, "cloneNode"), p = Y(d, "remove"), m = Y(d, "removeAttributeNode"), ee = Y(d, "nextSibling"), te = Y(d, "childNodes"), h = Y(d, "parentNode"), g = Y(d, "shadowRoot"), ne = Y(d, "attributes"), re = o && o.prototype ? Y(o.prototype, "nodeType") : null, ie = o && o.prototype ? Y(o.prototype, "nodeName") : null, _ = o && o.prototype ? Y(o.prototype, "ownerDocument") : null, v = function(e) {
|
|
1874
|
+
return re ? re(e) : e.nodeType;
|
|
1875
|
+
}, ae = function(e) {
|
|
1876
|
+
return ie ? ie(e) : e.nodeName;
|
|
1877
|
+
}, oe = qt(d, "namespaceURI"), se = function(e) {
|
|
1878
|
+
return oe ? oe(e) : e.namespaceURI;
|
|
1876
1879
|
};
|
|
1877
1880
|
if (typeof a == "function") {
|
|
1878
1881
|
let e = n.createElement("template");
|
|
1879
1882
|
e.content && e.content.ownerDocument && (n = e.content.ownerDocument);
|
|
1880
1883
|
}
|
|
1881
|
-
let
|
|
1882
|
-
if (
|
|
1883
|
-
},
|
|
1884
|
-
|
|
1884
|
+
let y, b = "", ce, le = !1, ue = 0, de = function() {
|
|
1885
|
+
if (ue > 0) throw G("A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the \"DOMPurify and Trusted Types\" section of the README.");
|
|
1886
|
+
}, fe = function(e) {
|
|
1887
|
+
de(), ue++;
|
|
1885
1888
|
try {
|
|
1886
|
-
return
|
|
1889
|
+
return y.createHTML(e);
|
|
1887
1890
|
} finally {
|
|
1888
|
-
|
|
1891
|
+
ue--;
|
|
1889
1892
|
}
|
|
1890
|
-
},
|
|
1891
|
-
|
|
1893
|
+
}, pe = function(e) {
|
|
1894
|
+
de(), ue++;
|
|
1892
1895
|
try {
|
|
1893
|
-
return
|
|
1896
|
+
return y.createScriptURL(e);
|
|
1894
1897
|
} finally {
|
|
1895
|
-
|
|
1896
|
-
}
|
|
1897
|
-
},
|
|
1898
|
-
return
|
|
1899
|
-
},
|
|
1900
|
-
t.isSupported = typeof gt == "function" && typeof
|
|
1901
|
-
let
|
|
1902
|
-
...
|
|
1903
|
-
...
|
|
1904
|
-
...Kt,
|
|
1905
|
-
...Jt,
|
|
1906
|
-
...Xt
|
|
1907
|
-
]), T = null, De = q({}, [
|
|
1898
|
+
ue--;
|
|
1899
|
+
}
|
|
1900
|
+
}, me = function() {
|
|
1901
|
+
return le ||= (ce = Cn(u, i), !0), ce;
|
|
1902
|
+
}, x = n, S = x.implementation, he = x.createNodeIterator, ge = x.createDocumentFragment, _e = x.getElementsByTagName, ve = r.importNode, C = wn();
|
|
1903
|
+
t.isSupported = typeof gt == "function" && typeof h == "function" && S && S.createHTMLDocument !== void 0;
|
|
1904
|
+
let ye = sn, be = cn, xe = ln, Se = un, Ce = dn, we = pn, Te = mn, Ee = gn, De = fn, w = null, Oe = q({}, [
|
|
1905
|
+
...Yt,
|
|
1906
|
+
...Xt,
|
|
1908
1907
|
...Zt,
|
|
1909
|
-
...Qt,
|
|
1910
1908
|
...$t,
|
|
1911
|
-
...
|
|
1909
|
+
...tn
|
|
1910
|
+
]), T = null, ke = q({}, [
|
|
1911
|
+
...nn,
|
|
1912
|
+
...rn,
|
|
1913
|
+
...an,
|
|
1914
|
+
...on
|
|
1912
1915
|
]), E = Object.seal(bt(null, {
|
|
1913
1916
|
tagNameCheck: {
|
|
1914
1917
|
writable: !0,
|
|
@@ -1928,7 +1931,7 @@ function Cn() {
|
|
|
1928
1931
|
enumerable: !0,
|
|
1929
1932
|
value: !1
|
|
1930
1933
|
}
|
|
1931
|
-
})),
|
|
1934
|
+
})), Ae = null, je = null, D = Object.seal(bt(null, {
|
|
1932
1935
|
tagCheck: {
|
|
1933
1936
|
writable: !0,
|
|
1934
1937
|
configurable: !1,
|
|
@@ -1941,14 +1944,14 @@ function Cn() {
|
|
|
1941
1944
|
enumerable: !0,
|
|
1942
1945
|
value: null
|
|
1943
1946
|
}
|
|
1944
|
-
})),
|
|
1947
|
+
})), Me = !0, Ne = !0, Pe = !1, Fe = !0, O = !1, Ie = !0, k = !1, Le = !1, Re = null, ze = null, Be = !1, A = !1, Ve = !1, He = !1, Ue = !0, We = !1, Ge = "user-content-", Ke = !0, qe = !1, j = null, Je = {}, M = null, Ye = q({}, /* @__PURE__ */ "annotation-xml.audio.colgroup.desc.foreignobject.head.iframe.math.mi.mn.mo.ms.mtext.noembed.noframes.noscript.plaintext.script.selectedcontent.style.svg.template.thead.title.video.xmp".split(".")), N = null, Xe = q({}, [
|
|
1945
1948
|
"audio",
|
|
1946
1949
|
"video",
|
|
1947
1950
|
"img",
|
|
1948
1951
|
"source",
|
|
1949
1952
|
"image",
|
|
1950
1953
|
"track"
|
|
1951
|
-
]),
|
|
1954
|
+
]), Ze = null, Qe = q({}, [
|
|
1952
1955
|
"alt",
|
|
1953
1956
|
"class",
|
|
1954
1957
|
"for",
|
|
@@ -1963,77 +1966,72 @@ function Cn() {
|
|
|
1963
1966
|
"value",
|
|
1964
1967
|
"style",
|
|
1965
1968
|
"xmlns"
|
|
1966
|
-
]), $e = "http://www.w3.org/1998/Math/MathML",
|
|
1969
|
+
]), $e = "http://www.w3.org/1998/Math/MathML", et = "http://www.w3.org/2000/svg", P = "http://www.w3.org/1999/xhtml", tt = P, nt = !1, F = null, rt = q({}, [
|
|
1967
1970
|
$e,
|
|
1968
|
-
|
|
1969
|
-
|
|
1970
|
-
],
|
|
1971
|
+
et,
|
|
1972
|
+
P
|
|
1973
|
+
], Pt), it = B([
|
|
1971
1974
|
"mi",
|
|
1972
1975
|
"mo",
|
|
1973
1976
|
"mn",
|
|
1974
1977
|
"ms",
|
|
1975
1978
|
"mtext"
|
|
1976
|
-
]),
|
|
1979
|
+
]), I = q({}, it), at = B(["annotation-xml"]), ot = q({}, at), st = q({}, [
|
|
1977
1980
|
"title",
|
|
1978
1981
|
"style",
|
|
1979
1982
|
"font",
|
|
1980
1983
|
"a",
|
|
1981
1984
|
"script"
|
|
1982
|
-
]),
|
|
1985
|
+
]), L = null, ct = ["application/xhtml+xml", "text/html"], R = null, lt = null, ut = n.createElement("form"), dt = function(e) {
|
|
1983
1986
|
return e instanceof RegExp || e instanceof Function;
|
|
1984
|
-
},
|
|
1987
|
+
}, ft = function() {
|
|
1985
1988
|
let e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
1986
|
-
if (
|
|
1987
|
-
(!e || typeof e != "object") && (e = {}), e = J(e),
|
|
1988
|
-
transform:
|
|
1989
|
-
base:
|
|
1990
|
-
}),
|
|
1991
|
-
transform:
|
|
1992
|
-
base:
|
|
1993
|
-
}),
|
|
1994
|
-
let t =
|
|
1995
|
-
if (E = bt(null),
|
|
1989
|
+
if (lt && lt === e) return;
|
|
1990
|
+
(!e || typeof e != "object") && (e = {}), e = J(e), L = ct.indexOf(e.PARSER_MEDIA_TYPE) === -1 ? "text/html" : e.PARSER_MEDIA_TYPE, R = L === "application/xhtml+xml" ? Pt : Nt, w = Tn(e, "ALLOWED_TAGS", Oe, { transform: R }), T = Tn(e, "ALLOWED_ATTR", ke, { transform: R }), F = Tn(e, "ALLOWED_NAMESPACES", rt, { transform: Pt }), Ze = Tn(e, "ADD_URI_SAFE_ATTR", Qe, {
|
|
1991
|
+
transform: R,
|
|
1992
|
+
base: Qe
|
|
1993
|
+
}), N = Tn(e, "ADD_DATA_URI_TAGS", Xe, {
|
|
1994
|
+
transform: R,
|
|
1995
|
+
base: Xe
|
|
1996
|
+
}), M = Tn(e, "FORBID_CONTENTS", Ye, { transform: R }), Ae = Tn(e, "FORBID_TAGS", J({}), { transform: R }), je = Tn(e, "FORBID_ATTR", J({}), { transform: R }), Je = U(e, "USE_PROFILES") ? e.USE_PROFILES && typeof e.USE_PROFILES == "object" ? J(e.USE_PROFILES) : e.USE_PROFILES : !1, Me = e.ALLOW_ARIA_ATTR !== !1, Ne = e.ALLOW_DATA_ATTR !== !1, Pe = e.ALLOW_UNKNOWN_PROTOCOLS || !1, Fe = e.ALLOW_SELF_CLOSE_IN_ATTR !== !1, O = e.SAFE_FOR_TEMPLATES || !1, Ie = e.SAFE_FOR_XML !== !1, k = e.WHOLE_DOCUMENT || !1, A = e.RETURN_DOM || !1, Ve = e.RETURN_DOM_FRAGMENT || !1, He = e.RETURN_TRUSTED_TYPE || !1, Be = e.FORCE_BODY || !1, Ue = e.SANITIZE_DOM !== !1, We = e.SANITIZE_NAMED_PROPS || !1, Ke = e.KEEP_CONTENT !== !1, qe = e.IN_PLACE || !1, De = Jt(e.ALLOWED_URI_REGEXP) ? e.ALLOWED_URI_REGEXP : fn, tt = typeof e.NAMESPACE == "string" ? e.NAMESPACE : P, I = En(e, "MATHML_TEXT_INTEGRATION_POINTS", () => q({}, it)), ot = En(e, "HTML_INTEGRATION_POINTS", () => q({}, at));
|
|
1997
|
+
let t = En(e, "CUSTOM_ELEMENT_HANDLING", () => bt(null));
|
|
1998
|
+
if (E = bt(null), U(t, "tagNameCheck") && dt(t.tagNameCheck) && (E.tagNameCheck = t.tagNameCheck), U(t, "attributeNameCheck") && dt(t.attributeNameCheck) && (E.attributeNameCheck = t.attributeNameCheck), U(t, "allowCustomizedBuiltInElements") && typeof t.allowCustomizedBuiltInElements == "boolean" && (E.allowCustomizedBuiltInElements = t.allowCustomizedBuiltInElements), V(E), O && (Ne = !1), Ve && (A = !0), Je && (w = q({}, tn), T = bt(null), Je.html === !0 && (q(w, Yt), q(T, nn)), Je.svg === !0 && (q(w, Xt), q(T, rn), q(T, on)), Je.svgFilters === !0 && (q(w, Zt), q(T, rn), q(T, on)), Je.mathMl === !0 && (q(w, $t), q(T, an), q(T, on))), D.tagCheck = null, D.attributeCheck = null, U(e, "ADD_TAGS") && (typeof e.ADD_TAGS == "function" ? D.tagCheck = e.ADD_TAGS : kt(e.ADD_TAGS) && (w === Oe && (w = J(w)), q(w, e.ADD_TAGS, R))), U(e, "ADD_ATTR") && (typeof e.ADD_ATTR == "function" ? D.attributeCheck = e.ADD_ATTR : kt(e.ADD_ATTR) && (T === ke && (T = J(T)), q(T, e.ADD_ATTR, R))), U(e, "ADD_FORBID_CONTENTS") && kt(e.ADD_FORBID_CONTENTS) && (M === Ye && (M = J(M)), q(M, e.ADD_FORBID_CONTENTS, R)), Ke && (w["#text"] = !0), k && q(w, [
|
|
1996
1999
|
"html",
|
|
1997
2000
|
"head",
|
|
1998
2001
|
"body"
|
|
1999
|
-
]), w.table && (q(w, ["tbody"]), delete
|
|
2002
|
+
]), w.table && (q(w, ["tbody"]), delete Ae.tbody), e.TRUSTED_TYPES_POLICY) {
|
|
2000
2003
|
if (typeof e.TRUSTED_TYPES_POLICY.createHTML != "function") throw G("TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.");
|
|
2001
2004
|
if (typeof e.TRUSTED_TYPES_POLICY.createScriptURL != "function") throw G("TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.");
|
|
2002
|
-
let t =
|
|
2003
|
-
|
|
2005
|
+
let t = y;
|
|
2006
|
+
y = e.TRUSTED_TYPES_POLICY;
|
|
2004
2007
|
try {
|
|
2005
|
-
|
|
2008
|
+
b = fe("");
|
|
2006
2009
|
} catch (e) {
|
|
2007
|
-
throw
|
|
2008
|
-
}
|
|
2009
|
-
} else e.TRUSTED_TYPES_POLICY === null ? (
|
|
2010
|
-
B && B(e),
|
|
2011
|
-
},
|
|
2012
|
-
...
|
|
2013
|
-
...
|
|
2014
|
-
...
|
|
2015
|
-
]),
|
|
2016
|
-
return t.namespaceURI ===
|
|
2017
|
-
},
|
|
2018
|
-
return t.namespaceURI ===
|
|
2019
|
-
},
|
|
2020
|
-
return t.namespaceURI ===
|
|
2021
|
-
},
|
|
2022
|
-
let t =
|
|
2023
|
-
(
|
|
2024
|
-
namespaceURI: N,
|
|
2025
|
-
tagName: "template"
|
|
2026
|
-
});
|
|
2027
|
-
let n = At(e.tagName), r = At(t.tagName);
|
|
2028
|
-
return tt[e.namespaceURI] ? e.namespaceURI === j ? ft(n, t, r) : e.namespaceURI === $e ? pt(n, t, r) : e.namespaceURI === M ? mt(n, t, r) : !!(I === "application/xhtml+xml" && tt[e.namespaceURI]) : !1;
|
|
2010
|
+
throw y = t, e;
|
|
2011
|
+
}
|
|
2012
|
+
} else e.TRUSTED_TYPES_POLICY === null ? (y = void 0, b = "") : (y === void 0 && (y = me()), y && typeof b == "string" && (b = fe("")));
|
|
2013
|
+
B && B(e), lt = e;
|
|
2014
|
+
}, pt = q({}, [
|
|
2015
|
+
...Xt,
|
|
2016
|
+
...Zt,
|
|
2017
|
+
...Qt
|
|
2018
|
+
]), mt = q({}, [...$t, ...en]), ht = function(e, t, n) {
|
|
2019
|
+
return t.namespaceURI === P ? e === "svg" : t.namespaceURI === $e ? e === "svg" && (n === "annotation-xml" || I[n]) : !!pt[e];
|
|
2020
|
+
}, _t = function(e, t, n) {
|
|
2021
|
+
return t.namespaceURI === P ? e === "math" : t.namespaceURI === et ? e === "math" && ot[n] : !!mt[e];
|
|
2022
|
+
}, vt = function(e, t, n) {
|
|
2023
|
+
return t.namespaceURI === et && !ot[n] || t.namespaceURI === $e && !I[n] ? !1 : !mt[e] && (st[e] || !pt[e]);
|
|
2024
|
+
}, yt = function(e) {
|
|
2025
|
+
let t = se(e), n = Nt(ae(e)), r = h(e), i, a;
|
|
2026
|
+
return r && v(r) === X.element ? (i = { namespaceURI: se(r) }, a = Nt(ae(r))) : (i = { namespaceURI: tt }, a = "template"), F[t] ? t === et ? ht(n, i, a) : t === $e ? _t(n, i, a) : t === P ? vt(n, i, a) : !!(L === "application/xhtml+xml" && F[t]) : !1;
|
|
2029
2027
|
}, z = function(e) {
|
|
2030
|
-
|
|
2028
|
+
Et(t.removed, { element: e });
|
|
2031
2029
|
try {
|
|
2032
|
-
|
|
2030
|
+
h(e).removeChild(e);
|
|
2033
2031
|
} catch {
|
|
2034
|
-
if (p(e), !
|
|
2032
|
+
if (p(e), !h(e)) throw G("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place");
|
|
2035
2033
|
}
|
|
2036
|
-
},
|
|
2034
|
+
}, xt = function(e, t, n) {
|
|
2037
2035
|
try {
|
|
2038
2036
|
m(e, t);
|
|
2039
2037
|
} catch {
|
|
@@ -2041,31 +2039,26 @@ function Cn() {
|
|
|
2041
2039
|
e.removeAttribute(n);
|
|
2042
2040
|
} catch {}
|
|
2043
2041
|
}
|
|
2044
|
-
},
|
|
2045
|
-
|
|
2046
|
-
let t =
|
|
2047
|
-
|
|
2048
|
-
|
|
2049
|
-
|
|
2050
|
-
|
|
2051
|
-
|
|
2052
|
-
|
|
2053
|
-
p(e);
|
|
2054
|
-
} catch {}
|
|
2055
|
-
});
|
|
2056
|
-
}
|
|
2057
|
-
let n = ee(e);
|
|
2042
|
+
}, St = function(e) {
|
|
2043
|
+
Vt(e);
|
|
2044
|
+
let t = te(e);
|
|
2045
|
+
t && H(Dt(t), (e) => {
|
|
2046
|
+
try {
|
|
2047
|
+
p(e);
|
|
2048
|
+
} catch {}
|
|
2049
|
+
});
|
|
2050
|
+
let n = v(e) === X.element ? ne(e) : null;
|
|
2058
2051
|
if (n) for (let t = n.length - 1; t >= 0; --t) {
|
|
2059
2052
|
let r = n[t], i = r && r.name;
|
|
2060
|
-
typeof i == "string" &&
|
|
2053
|
+
typeof i == "string" && xt(e, r, i);
|
|
2061
2054
|
}
|
|
2062
|
-
},
|
|
2055
|
+
}, Ct = function(e, n, r) {
|
|
2063
2056
|
if (!r) try {
|
|
2064
2057
|
r = n.getAttributeNode(e);
|
|
2065
2058
|
} catch {
|
|
2066
2059
|
r = null;
|
|
2067
2060
|
}
|
|
2068
|
-
|
|
2061
|
+
Et(t.removed, {
|
|
2069
2062
|
attribute: r || null,
|
|
2070
2063
|
from: n
|
|
2071
2064
|
});
|
|
@@ -2077,150 +2070,193 @@ function Cn() {
|
|
|
2077
2070
|
} catch {}
|
|
2078
2071
|
}
|
|
2079
2072
|
if (e === "is") {
|
|
2080
|
-
if (
|
|
2073
|
+
if (A || Ve) try {
|
|
2081
2074
|
z(n);
|
|
2082
2075
|
} catch {}
|
|
2083
2076
|
else try {
|
|
2084
2077
|
n.setAttribute(e, "");
|
|
2085
2078
|
} catch {}
|
|
2086
2079
|
}
|
|
2087
|
-
},
|
|
2088
|
-
let t =
|
|
2080
|
+
}, zt = function(e) {
|
|
2081
|
+
let t = ne(e);
|
|
2089
2082
|
if (t) for (let n = t.length - 1; n >= 0; --n) {
|
|
2090
2083
|
let r = t[n], i = r && r.name;
|
|
2091
|
-
typeof i != "string" || T[
|
|
2084
|
+
typeof i != "string" || T[R(i)] || xt(e, r, i);
|
|
2092
2085
|
}
|
|
2093
|
-
},
|
|
2094
|
-
let
|
|
2095
|
-
for (;
|
|
2096
|
-
let e =
|
|
2097
|
-
|
|
2098
|
-
|
|
2099
|
-
|
|
2100
|
-
|
|
2101
|
-
|
|
2102
|
-
|
|
2103
|
-
|
|
2104
|
-
|
|
2105
|
-
|
|
2106
|
-
|
|
2107
|
-
|
|
2108
|
-
|
|
2086
|
+
}, Bt = function(e, t) {
|
|
2087
|
+
let n = arguments.length > 2 && arguments[2] !== void 0 && arguments[2], r = [e];
|
|
2088
|
+
for (; r.length > 0;) {
|
|
2089
|
+
let e = r.pop();
|
|
2090
|
+
if (t(e) === !1) continue;
|
|
2091
|
+
if (n && v(e) === X.element) {
|
|
2092
|
+
let t = g(e);
|
|
2093
|
+
Q(t) && r.push(t);
|
|
2094
|
+
}
|
|
2095
|
+
let i = te(e);
|
|
2096
|
+
if (i) for (let e = i.length - 1; e >= 0; --e) r.push(i[e]);
|
|
2097
|
+
}
|
|
2098
|
+
}, Vt = function(e) {
|
|
2099
|
+
Bt(e, (e) => {
|
|
2100
|
+
v(e) === X.element && zt(e);
|
|
2101
|
+
});
|
|
2102
|
+
}, Ht = function(e) {
|
|
2103
|
+
let t = [];
|
|
2104
|
+
return Bt(e, (e) => {
|
|
2105
|
+
t.push(e);
|
|
2106
|
+
}, !0), t;
|
|
2107
|
+
}, Ut = function(e, t) {
|
|
2108
|
+
let n = At();
|
|
2109
|
+
H(Ht(e), (e) => {
|
|
2110
|
+
v(e) === X.element && jt(n, e);
|
|
2111
|
+
}), H(t, (e) => {
|
|
2112
|
+
v(e) === X.element && !Mt(n, e) && zt(e);
|
|
2113
|
+
});
|
|
2114
|
+
}, K = function(e, n) {
|
|
2115
|
+
let r = !1;
|
|
2116
|
+
return H(t.removed, (t) => {
|
|
2117
|
+
t.element && (r ||= t.element === e, Vt(t.element));
|
|
2118
|
+
}), Ut(e, n), r;
|
|
2119
|
+
}, Wt = function(e, t) {
|
|
2120
|
+
let n = j, r = null, i = () => (r || (r = At(), H(t, (e) => {
|
|
2121
|
+
jt(r, e);
|
|
2122
|
+
})), r);
|
|
2123
|
+
for (let t = 0;; t++) {
|
|
2124
|
+
let r = Ht(e), a = [e], o = !1;
|
|
2125
|
+
if (H(r, (e) => {
|
|
2126
|
+
v(e) === X.documentFragment ? Et(a, e) : !o && !Mt(n, e) && (o = Mt(i(), e));
|
|
2127
|
+
}), !o) return;
|
|
2128
|
+
if (t >= 8) throw G("the tree kept changing during in-place sanitization; refusing to return it");
|
|
2129
|
+
H(a, (t, n) => {
|
|
2130
|
+
Gt(t, n > 0, e, i());
|
|
2131
|
+
});
|
|
2132
|
+
}
|
|
2133
|
+
}, Gt = function(e, t, n, r) {
|
|
2134
|
+
let i = jn(e), a;
|
|
2135
|
+
for (; a = i.nextNode();) Mt(r, a) && !Mt(j, a) && (t && $(C.uponSanitizeShadowNode, a, null), Hn(a, n), Yn(a, n), Q(a.content) && Xn(a.content));
|
|
2136
|
+
}, On = function(e) {
|
|
2137
|
+
j && jt(j, e);
|
|
2138
|
+
}, Z = function(e, t) {
|
|
2139
|
+
return Ie ? e === "patchsrc" || e === "for" && t !== "label" && t !== "output" : !1;
|
|
2140
|
+
}, kn = function(e) {
|
|
2141
|
+
Ie && Bt(e, (e) => {
|
|
2142
|
+
let t = v(e);
|
|
2143
|
+
if (t === X.processingInstruction || t === X.comment && W(vn, e.data)) {
|
|
2109
2144
|
try {
|
|
2110
2145
|
p(e);
|
|
2111
2146
|
} catch {}
|
|
2112
|
-
|
|
2147
|
+
return !1;
|
|
2113
2148
|
}
|
|
2114
|
-
if (
|
|
2115
|
-
let t = e, n =
|
|
2149
|
+
if (t === X.element) {
|
|
2150
|
+
let t = e, n = R(ae(e));
|
|
2116
2151
|
try {
|
|
2117
|
-
t.hasAttribute && t.hasAttribute("patchsrc") && t.removeAttribute("patchsrc"), t.hasAttribute && t.hasAttribute("for") &&
|
|
2152
|
+
t.hasAttribute && t.hasAttribute("patchsrc") && t.removeAttribute("patchsrc"), t.hasAttribute && t.hasAttribute("for") && Z("for", n) && t.removeAttribute("for");
|
|
2118
2153
|
} catch {}
|
|
2119
2154
|
}
|
|
2120
|
-
|
|
2121
|
-
|
|
2122
|
-
|
|
2123
|
-
}, Lt = function(e) {
|
|
2155
|
+
return !0;
|
|
2156
|
+
});
|
|
2157
|
+
}, An = function(e) {
|
|
2124
2158
|
let t = null, r = null;
|
|
2125
|
-
if (
|
|
2159
|
+
if (Be) e = "<remove></remove>" + e;
|
|
2126
2160
|
else {
|
|
2127
|
-
let t =
|
|
2161
|
+
let t = Ft(e, /^[\r\n\t ]+/);
|
|
2128
2162
|
r = t && t[0];
|
|
2129
2163
|
}
|
|
2130
|
-
|
|
2131
|
-
let i =
|
|
2132
|
-
if (
|
|
2133
|
-
t = new l().parseFromString(i,
|
|
2164
|
+
L === "application/xhtml+xml" && tt === P && (e = "<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>" + e + "</body></html>");
|
|
2165
|
+
let i = y ? fe(e) : e;
|
|
2166
|
+
if (tt === P) try {
|
|
2167
|
+
t = new l().parseFromString(i, L);
|
|
2134
2168
|
} catch {}
|
|
2135
2169
|
if (!t || !t.documentElement) {
|
|
2136
|
-
t =
|
|
2170
|
+
t = S.createDocument(tt, "template", null);
|
|
2137
2171
|
try {
|
|
2138
|
-
t.documentElement.innerHTML =
|
|
2172
|
+
t.documentElement.innerHTML = nt ? b : i;
|
|
2139
2173
|
} catch {}
|
|
2140
2174
|
}
|
|
2141
2175
|
let a = t.body || t.documentElement;
|
|
2142
|
-
return e && r && a.insertBefore(n.createTextNode(r), a.childNodes[0] || null),
|
|
2143
|
-
},
|
|
2144
|
-
let t =
|
|
2145
|
-
return
|
|
2146
|
-
},
|
|
2147
|
-
return e =
|
|
2148
|
-
},
|
|
2149
|
-
e
|
|
2150
|
-
let t =
|
|
2151
|
-
|
|
2152
|
-
|
|
2153
|
-
i && wt(i, (e) => {
|
|
2154
|
-
Bt(e.content) && U(e.content);
|
|
2176
|
+
return e && r && a.insertBefore(n.createTextNode(r), a.childNodes[0] || null), tt === P ? _e.call(t, k ? "html" : "body")[0] : k ? t.documentElement : a;
|
|
2177
|
+
}, jn = function(e) {
|
|
2178
|
+
let t = _ ? _(e) : e.ownerDocument;
|
|
2179
|
+
return he.call(t || e, e, c.SHOW_ELEMENT | c.SHOW_COMMENT | c.SHOW_TEXT | c.SHOW_PROCESSING_INSTRUCTION | c.SHOW_CDATA_SECTION, null);
|
|
2180
|
+
}, Mn = function(e) {
|
|
2181
|
+
return e = It(e, ye, " "), e = It(e, be, " "), e = It(e, xe, " "), e;
|
|
2182
|
+
}, Nn = function(e) {
|
|
2183
|
+
Pn(e);
|
|
2184
|
+
let t = e.querySelectorAll?.call(e, "template");
|
|
2185
|
+
t && H(t, (e) => {
|
|
2186
|
+
Q(e.content) && Nn(e.content);
|
|
2155
2187
|
});
|
|
2156
|
-
},
|
|
2157
|
-
|
|
2158
|
-
|
|
2159
|
-
|
|
2160
|
-
|
|
2188
|
+
}, Pn = function(e) {
|
|
2189
|
+
e.normalize();
|
|
2190
|
+
let t = _ ? _(e) : e.ownerDocument, n = he.call(t || e, e, c.SHOW_TEXT | c.SHOW_COMMENT | c.SHOW_CDATA_SECTION | c.SHOW_PROCESSING_INSTRUCTION, null), r = n.nextNode();
|
|
2191
|
+
for (; r;) r.data = Mn(r.data), r = n.nextNode();
|
|
2192
|
+
}, Fn = function(e) {
|
|
2193
|
+
let t = ie ? ie(e) : null;
|
|
2194
|
+
return typeof t != "string" || R(t) !== "form" ? !1 : typeof e.nodeName != "string" || typeof e.textContent != "string" || typeof e.removeChild != "function" || e.attributes !== ne(e) || typeof e.removeAttribute != "function" || typeof e.removeAttributeNode != "function" || typeof e.getAttributeNode != "function" || typeof e.setAttribute != "function" || typeof e.namespaceURI != "string" || typeof e.insertBefore != "function" || typeof e.hasChildNodes != "function" || e.nodeType !== re(e) || e.childNodes !== te(e);
|
|
2195
|
+
}, Q = function(e) {
|
|
2196
|
+
if (!re || typeof e != "object" || !e) return !1;
|
|
2161
2197
|
try {
|
|
2162
|
-
return
|
|
2198
|
+
return re(e) === X.documentFragment;
|
|
2163
2199
|
} catch {
|
|
2164
2200
|
return !1;
|
|
2165
2201
|
}
|
|
2166
|
-
},
|
|
2167
|
-
if (!
|
|
2202
|
+
}, In = function(e) {
|
|
2203
|
+
if (!re || typeof e != "object" || !e) return !1;
|
|
2168
2204
|
try {
|
|
2169
|
-
return typeof
|
|
2205
|
+
return typeof re(e) == "number";
|
|
2170
2206
|
} catch {
|
|
2171
2207
|
return !1;
|
|
2172
2208
|
}
|
|
2173
2209
|
};
|
|
2174
|
-
function
|
|
2175
|
-
e.length !== 0 &&
|
|
2176
|
-
e.call(t, n, r,
|
|
2210
|
+
function $(e, n, r) {
|
|
2211
|
+
e.length !== 0 && H(e, (e) => {
|
|
2212
|
+
e.call(t, n, r, lt);
|
|
2177
2213
|
});
|
|
2178
2214
|
}
|
|
2179
|
-
let
|
|
2180
|
-
return !!(
|
|
2181
|
-
},
|
|
2215
|
+
let Ln = function(e, t) {
|
|
2216
|
+
return !!(Ie && e.hasChildNodes() && !In(e.firstElementChild) && W(_n, e.textContent) && W(_n, e.innerHTML) || Ie && xn[t] && v(e) === X.element && se(e) === P && (In(e.firstElementChild) || typeof e.textContent == "string" && W(_n, e.textContent)) || e.nodeType === X.processingInstruction || Ie && e.nodeType === X.comment && W(vn, e.data));
|
|
2217
|
+
}, Rn = function(e, t) {
|
|
2182
2218
|
return e instanceof RegExp ? W(e, t) : e instanceof Function && !!e(t, ...[...arguments].slice(2));
|
|
2183
|
-
},
|
|
2184
|
-
if (!
|
|
2185
|
-
if (Ke && !
|
|
2186
|
-
let t =
|
|
2219
|
+
}, zn = function(e, t, n) {
|
|
2220
|
+
if (!Ae[t] && Gn(t) && Rn(E.tagNameCheck, t)) return !1;
|
|
2221
|
+
if (Ke && !M[t] && !M[Nt(t)]) {
|
|
2222
|
+
let t = h(e), r = te(e);
|
|
2187
2223
|
if (r && t) {
|
|
2188
2224
|
let i = r.length;
|
|
2189
2225
|
for (let a = i - 1; a >= 0; --a) {
|
|
2190
2226
|
let i = e === n ? f(r[a], !0) : r[a];
|
|
2191
|
-
t.insertBefore(i,
|
|
2227
|
+
t.insertBefore(i, ee(e));
|
|
2192
2228
|
}
|
|
2193
2229
|
}
|
|
2194
2230
|
}
|
|
2195
2231
|
return z(e), !0;
|
|
2196
|
-
},
|
|
2232
|
+
}, Bn = function(e, t, n, r) {
|
|
2197
2233
|
return e.length === 0 ? t : t === n || t === r ? J(t) : t;
|
|
2198
|
-
},
|
|
2199
|
-
return e === t ||
|
|
2200
|
-
},
|
|
2201
|
-
if (
|
|
2202
|
-
if (
|
|
2203
|
-
let r =
|
|
2204
|
-
if (w =
|
|
2234
|
+
}, Vn = function(e, t) {
|
|
2235
|
+
return e === t || h(e) !== null ? !1 : (qe && Vt(e), !0);
|
|
2236
|
+
}, Hn = function(e, n) {
|
|
2237
|
+
if (On(e), $(C.beforeSanitizeElements, e, null), Vn(e, n)) return !0;
|
|
2238
|
+
if (Fn(e)) return z(e), !0;
|
|
2239
|
+
let r = R(ae(e));
|
|
2240
|
+
if (w = Bn(C.uponSanitizeElement, w, Oe, Re), $(C.uponSanitizeElement, e, {
|
|
2205
2241
|
tagName: r,
|
|
2206
2242
|
allowedTags: w
|
|
2207
|
-
}),
|
|
2208
|
-
if (
|
|
2209
|
-
if (
|
|
2210
|
-
let t =
|
|
2211
|
-
return t === !1 && (
|
|
2243
|
+
}), Vn(e, n)) return !0;
|
|
2244
|
+
if (Ln(e, r)) return z(e), !0;
|
|
2245
|
+
if (Ae[r] || !(D.tagCheck instanceof Function && D.tagCheck(r)) && !w[r]) {
|
|
2246
|
+
let t = zn(e, r, n);
|
|
2247
|
+
return t === !1 && ($(C.afterSanitizeElements, e, null), Vn(e, n)) ? !0 : t;
|
|
2212
2248
|
}
|
|
2213
|
-
if (
|
|
2249
|
+
if (v(e) === X.element && !yt(e) || (r === "noscript" || r === "noembed" || r === "noframes") && W(yn, e.innerHTML)) return z(e), !0;
|
|
2214
2250
|
if (O && e.nodeType === X.text) {
|
|
2215
|
-
let n =
|
|
2216
|
-
e.textContent !== n && (
|
|
2251
|
+
let n = Mn(e.textContent);
|
|
2252
|
+
e.textContent !== n && (Et(t.removed, { element: e.cloneNode() }), e.textContent = n);
|
|
2217
2253
|
}
|
|
2218
|
-
return
|
|
2219
|
-
},
|
|
2220
|
-
if (
|
|
2254
|
+
return $(C.afterSanitizeElements, e, null), Vn(e, n);
|
|
2255
|
+
}, Un = function(e, t, r) {
|
|
2256
|
+
if (je[t] || Z(t, e) || Ue && (t === "id" || t === "name") && (r in n || r in ut)) return !1;
|
|
2221
2257
|
let i = T[t] || D.attributeCheck instanceof Function && D.attributeCheck(t, e);
|
|
2222
|
-
return
|
|
2223
|
-
},
|
|
2258
|
+
return Ne && W(Se, t) || Me && W(Ce, t) ? !0 : i ? Ze[t] || W(De, It(r, Te, "")) || (t === "src" || t === "xlink:href" || t === "href") && e !== "script" && Lt(r, "data:") === 0 && N[e] || Pe && !W(we, It(r, Te, "")) ? !0 : !r : Gn(e) && Rn(E.tagNameCheck, e) && Rn(E.attributeNameCheck, t, e) || t === "is" && E.allowCustomizedBuiltInElements && Rn(E.tagNameCheck, r);
|
|
2259
|
+
}, Wn = q({}, [
|
|
2224
2260
|
"annotation-xml",
|
|
2225
2261
|
"color-profile",
|
|
2226
2262
|
"font-face",
|
|
@@ -2229,67 +2265,65 @@ function Cn() {
|
|
|
2229
2265
|
"font-face-src",
|
|
2230
2266
|
"font-face-uri",
|
|
2231
2267
|
"missing-glyph"
|
|
2232
|
-
]),
|
|
2233
|
-
return !
|
|
2234
|
-
},
|
|
2235
|
-
if (
|
|
2236
|
-
case "TrustedHTML": return
|
|
2237
|
-
case "TrustedScriptURL": return
|
|
2268
|
+
]), Gn = function(e) {
|
|
2269
|
+
return !Wn[Nt(e)] && W(Ee, e);
|
|
2270
|
+
}, Kn = function(e, t, n, r) {
|
|
2271
|
+
if (y && typeof u == "object" && typeof u.getAttributeType == "function" && !n) switch (u.getAttributeType(e, t)) {
|
|
2272
|
+
case "TrustedHTML": return fe(r);
|
|
2273
|
+
case "TrustedScriptURL": return pe(r);
|
|
2238
2274
|
}
|
|
2239
2275
|
return r;
|
|
2240
|
-
},
|
|
2276
|
+
}, qn = function(e, t, n, r) {
|
|
2241
2277
|
try {
|
|
2242
|
-
return n ? e.setAttributeNS(n, t, r) : e.setAttribute(t, r), !
|
|
2278
|
+
return n ? e.setAttributeNS(n, t, r) : e.setAttribute(t, r), !Fn(e) || (z(e), !1);
|
|
2243
2279
|
} catch {
|
|
2244
|
-
return
|
|
2280
|
+
return Ct(t, e), !1;
|
|
2245
2281
|
}
|
|
2246
|
-
},
|
|
2247
|
-
|
|
2282
|
+
}, Jn = function(e, t) {
|
|
2283
|
+
return Ie && W(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i, t) ? !0 : Nt(e) === "attributename" && Ft(t, "href") !== null;
|
|
2284
|
+
}, Yn = function(e, n) {
|
|
2285
|
+
if ($(C.beforeSanitizeAttributes, e, null), Vn(e, n)) return;
|
|
2248
2286
|
let r = e.attributes;
|
|
2249
|
-
if (!r ||
|
|
2250
|
-
T =
|
|
2287
|
+
if (!r || Fn(e)) return;
|
|
2288
|
+
T = Bn(C.uponSanitizeAttribute, T, ke, ze);
|
|
2251
2289
|
let i = {
|
|
2252
2290
|
attrName: "",
|
|
2253
2291
|
attrValue: "",
|
|
2254
2292
|
keepAttr: !0,
|
|
2255
2293
|
allowedAttributes: T,
|
|
2256
2294
|
forceKeepAttr: void 0
|
|
2257
|
-
}, a = r.length, o =
|
|
2295
|
+
}, a = r.length, o = R(e.nodeName);
|
|
2258
2296
|
for (; a--;) {
|
|
2259
|
-
let n = r[a], s = n.name, c = n.namespaceURI, l = n.value, u =
|
|
2260
|
-
if (i.attrName = u, i.attrValue = f, i.keepAttr = !0, i.forceKeepAttr = void 0,
|
|
2261
|
-
|
|
2262
|
-
continue;
|
|
2263
|
-
}
|
|
2264
|
-
if (u === "attributename" && Mt(f, "href")) {
|
|
2265
|
-
yt(s, e, n);
|
|
2297
|
+
let n = r[a], s = n.name, c = n.namespaceURI, l = n.value, u = R(s), d = l, f = s === "value" ? d : Rt(d), p = !1;
|
|
2298
|
+
if (i.attrName = u, i.attrValue = f, i.keepAttr = !0, i.forceKeepAttr = void 0, $(C.uponSanitizeAttribute, e, i), f = i.attrValue, We && (u === "id" || u === "name") && Lt(f, Ge) !== 0 && (Ct(s, e, n), f = Ge + f, p = !0), Jn(s, f)) {
|
|
2299
|
+
Ct(s, e, n);
|
|
2266
2300
|
continue;
|
|
2267
2301
|
}
|
|
2268
2302
|
if (!i.forceKeepAttr) {
|
|
2269
2303
|
if (!i.keepAttr) {
|
|
2270
|
-
|
|
2304
|
+
Ct(s, e, n);
|
|
2271
2305
|
continue;
|
|
2272
2306
|
}
|
|
2273
|
-
if (!
|
|
2274
|
-
|
|
2307
|
+
if (!Fe && W(bn, f)) {
|
|
2308
|
+
Ct(s, e, n);
|
|
2275
2309
|
continue;
|
|
2276
2310
|
}
|
|
2277
|
-
if (O && (f =
|
|
2278
|
-
|
|
2311
|
+
if (O && (f = Mn(f)), !Un(o, u, f)) {
|
|
2312
|
+
Ct(s, e, n);
|
|
2279
2313
|
continue;
|
|
2280
2314
|
}
|
|
2281
|
-
f =
|
|
2315
|
+
f = Kn(o, u, c, f), f !== d && qn(e, s, c, f) && p && Tt(t.removed);
|
|
2282
2316
|
}
|
|
2283
2317
|
}
|
|
2284
|
-
|
|
2285
|
-
},
|
|
2286
|
-
let t = null, n =
|
|
2287
|
-
for (
|
|
2288
|
-
let e =
|
|
2289
|
-
|
|
2318
|
+
$(C.afterSanitizeAttributes, e, null), Vn(e, n);
|
|
2319
|
+
}, Xn = function(e) {
|
|
2320
|
+
let t = null, n = jn(e);
|
|
2321
|
+
for ($(C.beforeSanitizeShadowDOM, e, null); t = n.nextNode();) if ($(C.uponSanitizeShadowNode, t, null), Hn(t, e), Yn(t, e), Q(t.content) && Xn(t.content), v(t) === X.element) {
|
|
2322
|
+
let e = g(t);
|
|
2323
|
+
Q(e) && (Zn(e), Xn(e));
|
|
2290
2324
|
}
|
|
2291
|
-
|
|
2292
|
-
},
|
|
2325
|
+
O && Pn(e), $(C.afterSanitizeShadowDOM, e, null);
|
|
2326
|
+
}, Zn = function(e) {
|
|
2293
2327
|
let t = [{
|
|
2294
2328
|
node: e,
|
|
2295
2329
|
shadow: null
|
|
@@ -2297,27 +2331,27 @@ function Cn() {
|
|
|
2297
2331
|
for (; t.length > 0;) {
|
|
2298
2332
|
let e = t.pop();
|
|
2299
2333
|
if (e.shadow) {
|
|
2300
|
-
|
|
2334
|
+
Xn(e.shadow);
|
|
2301
2335
|
continue;
|
|
2302
2336
|
}
|
|
2303
|
-
let n = e.node, r =
|
|
2337
|
+
let n = e.node, r = v(n) === X.element, i = te(n);
|
|
2304
2338
|
if (i) for (let e = i.length - 1; e >= 0; --e) t.push({
|
|
2305
2339
|
node: i[e],
|
|
2306
2340
|
shadow: null
|
|
2307
2341
|
});
|
|
2308
2342
|
if (r) {
|
|
2309
|
-
let e =
|
|
2310
|
-
if (typeof e == "string" &&
|
|
2343
|
+
let e = ie ? ie(n) : null;
|
|
2344
|
+
if (typeof e == "string" && R(e) === "template") {
|
|
2311
2345
|
let e = n.content;
|
|
2312
|
-
|
|
2346
|
+
Q(e) && t.push({
|
|
2313
2347
|
node: e,
|
|
2314
2348
|
shadow: null
|
|
2315
2349
|
});
|
|
2316
2350
|
}
|
|
2317
2351
|
}
|
|
2318
2352
|
if (r) {
|
|
2319
|
-
let e =
|
|
2320
|
-
|
|
2353
|
+
let e = g(n);
|
|
2354
|
+
Q(e) && t.push({
|
|
2321
2355
|
node: null,
|
|
2322
2356
|
shadow: e
|
|
2323
2357
|
}, {
|
|
@@ -2329,78 +2363,73 @@ function Cn() {
|
|
|
2329
2363
|
};
|
|
2330
2364
|
return t.sanitize = function(e) {
|
|
2331
2365
|
let n = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, i = null, a = null, o = null, s = null;
|
|
2332
|
-
if (
|
|
2366
|
+
if (nt = !e, nt && (e = "<!-->"), typeof e != "string" && !In(e) && (e = Kt(e), typeof e != "string")) throw G("dirty is not a string, aborting");
|
|
2333
2367
|
if (!t.isSupported) return e;
|
|
2334
|
-
|
|
2335
|
-
let c = qe && typeof e != "string" &&
|
|
2368
|
+
Le ? (w = Re, T = ze) : ft(n), (C.uponSanitizeElement.length > 0 || C.uponSanitizeAttribute.length > 0) && (w = J(w)), C.uponSanitizeAttribute.length > 0 && (T = J(T)), t.removed = [];
|
|
2369
|
+
let c = qe && typeof e != "string" && In(e), l = [], u = j;
|
|
2336
2370
|
if (c) {
|
|
2337
|
-
|
|
2338
|
-
let t =
|
|
2371
|
+
kn(e);
|
|
2372
|
+
let t = ae(e);
|
|
2339
2373
|
if (typeof t == "string") {
|
|
2340
|
-
let n =
|
|
2341
|
-
if (!w[n] ||
|
|
2374
|
+
let n = R(t);
|
|
2375
|
+
if (!w[n] || Ae[n]) throw St(e), G("root node is forbidden and cannot be sanitized in-place");
|
|
2342
2376
|
}
|
|
2343
|
-
if (
|
|
2344
|
-
|
|
2345
|
-
|
|
2346
|
-
} catch (t) {
|
|
2347
|
-
throw vt(e), t;
|
|
2348
|
-
}
|
|
2349
|
-
} else if (Vt(e)) i = Lt("<!---->"), a = i.ownerDocument.importNode(e, !0), a.nodeType === X.element && a.nodeName === "BODY" || a.nodeName === "HTML" ? i = a : i.appendChild(a), In(i);
|
|
2377
|
+
if (Fn(e)) throw St(e), G("root node is clobbered and cannot be sanitized in-place");
|
|
2378
|
+
l = Ht(e), j = At();
|
|
2379
|
+
} else if (In(e)) i = An("<!---->"), a = i.ownerDocument.importNode(e, !0), a.nodeType === X.element && a.nodeName === "BODY" || a.nodeName === "HTML" ? i = a : i.appendChild(a), Zn(i);
|
|
2350
2380
|
else {
|
|
2351
|
-
if (!
|
|
2352
|
-
if (i =
|
|
2381
|
+
if (!A && !O && !k && e.indexOf("<") === -1) return y && He ? fe(e) : e;
|
|
2382
|
+
if (i = An(e), !i) return A ? null : He ? b : "";
|
|
2353
2383
|
}
|
|
2354
|
-
i &&
|
|
2355
|
-
let
|
|
2384
|
+
i && Be && z(i.firstChild);
|
|
2385
|
+
let d = c ? e : i;
|
|
2356
2386
|
try {
|
|
2357
|
-
|
|
2358
|
-
|
|
2359
|
-
|
|
2360
|
-
|
|
2361
|
-
|
|
2362
|
-
|
|
2387
|
+
c && Zn(e);
|
|
2388
|
+
let t = jn(d);
|
|
2389
|
+
for (; o = t.nextNode();) Hn(o, d), Yn(o, d), Q(o.content) && Xn(o.content);
|
|
2390
|
+
c && Wt(e, l);
|
|
2391
|
+
} catch (t) {
|
|
2392
|
+
throw c && (St(e), K(e, l)), t;
|
|
2393
|
+
} finally {
|
|
2394
|
+
j = u;
|
|
2363
2395
|
}
|
|
2364
2396
|
if (c) {
|
|
2365
|
-
|
|
2366
|
-
|
|
2367
|
-
|
|
2368
|
-
|
|
2369
|
-
|
|
2370
|
-
}
|
|
2371
|
-
if (Be) {
|
|
2372
|
-
if (O && U(i), Ve) for (s = me.call(i.ownerDocument); i.firstChild;) s.appendChild(i.firstChild);
|
|
2397
|
+
if (K(e, l)) throw G("a node selected for removal could not be safely returned; refusing to sanitize in place");
|
|
2398
|
+
return O && Nn(e), e;
|
|
2399
|
+
}
|
|
2400
|
+
if (A) {
|
|
2401
|
+
if (O && Nn(i), Ve) for (s = ge.call(i.ownerDocument); i.firstChild;) s.appendChild(i.firstChild);
|
|
2373
2402
|
else s = i;
|
|
2374
|
-
return (T.shadowroot || T.shadowrootmode) && (s =
|
|
2403
|
+
return (T.shadowroot || T.shadowrootmode) && (s = ve.call(r, s, !0)), s;
|
|
2375
2404
|
}
|
|
2376
|
-
let
|
|
2377
|
-
return
|
|
2405
|
+
let f = k ? i.outerHTML : i.innerHTML;
|
|
2406
|
+
return k && w["!doctype"] && i.ownerDocument && i.ownerDocument.doctype && i.ownerDocument.doctype.name && W(hn, i.ownerDocument.doctype.name) && (f = "<!DOCTYPE " + i.ownerDocument.doctype.name + ">\n" + f), O && (f = Mn(f)), y && He ? fe(f) : f;
|
|
2378
2407
|
}, t.setConfig = function() {
|
|
2379
2408
|
let e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
2380
|
-
|
|
2409
|
+
ft(e), Le = !0, Re = w, ze = T;
|
|
2381
2410
|
}, t.clearConfig = function() {
|
|
2382
|
-
|
|
2411
|
+
lt = null, Le = !1, Re = null, ze = null, y = ce, b = "";
|
|
2383
2412
|
}, t.isValidAttribute = function(e, t, n) {
|
|
2384
|
-
|
|
2385
|
-
let r =
|
|
2386
|
-
return
|
|
2413
|
+
lt || ft({});
|
|
2414
|
+
let r = R(e), i = R(t);
|
|
2415
|
+
return typeof n == "string" && (Jn(t, n) || !Fe && W(bn, n)) ? !1 : Un(r, i, n);
|
|
2387
2416
|
}, t.addHook = function(e, t) {
|
|
2388
|
-
typeof t == "function" &&
|
|
2417
|
+
typeof t == "function" && U(C, e) && Et(C[e], t);
|
|
2389
2418
|
}, t.removeHook = function(e, t) {
|
|
2390
|
-
if (
|
|
2419
|
+
if (U(C, e)) {
|
|
2391
2420
|
if (t !== void 0) {
|
|
2392
|
-
let n =
|
|
2421
|
+
let n = wt(C[e], t);
|
|
2393
2422
|
return n === -1 ? void 0 : Ot(C[e], n, 1)[0];
|
|
2394
2423
|
}
|
|
2395
|
-
return
|
|
2424
|
+
return Tt(C[e]);
|
|
2396
2425
|
}
|
|
2397
2426
|
}, t.removeHooks = function(e) {
|
|
2398
|
-
|
|
2427
|
+
U(C, e) && (C[e] = []);
|
|
2399
2428
|
}, t.removeAllHooks = function() {
|
|
2400
|
-
C =
|
|
2429
|
+
C = wn();
|
|
2401
2430
|
}, t;
|
|
2402
2431
|
}
|
|
2403
|
-
var
|
|
2432
|
+
var On = Dn(), Z = class {
|
|
2404
2433
|
constructor(e, t) {
|
|
2405
2434
|
this.editor = e, this.defaultText = `${t} text`, this.button = this.createButton(), this.title = t;
|
|
2406
2435
|
}
|
|
@@ -2414,7 +2443,7 @@ var wn = Cn(), Q = class {
|
|
|
2414
2443
|
}
|
|
2415
2444
|
return t;
|
|
2416
2445
|
}
|
|
2417
|
-
},
|
|
2446
|
+
}, kn = class extends Z {
|
|
2418
2447
|
constructor(e) {
|
|
2419
2448
|
super(e, "Bold"), this.button = this.createButton("\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M7 5h6a3.5 3.5 0 0 1 0 7h-6l0 -7\" /><path d=\"M13 12h1a3.5 3.5 0 0 1 0 7h-7v-7\" /></svg>\n ");
|
|
2420
2449
|
}
|
|
@@ -2431,7 +2460,7 @@ var wn = Cn(), Q = class {
|
|
|
2431
2460
|
} else a = `**${i || "Bold text"}**`, i || (o = 2);
|
|
2432
2461
|
this.editor.insertText(a, o, o);
|
|
2433
2462
|
}
|
|
2434
|
-
},
|
|
2463
|
+
}, An = class extends Z {
|
|
2435
2464
|
constructor(e) {
|
|
2436
2465
|
super(e, "Italic"), this.button = this.createButton("\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M11 5l6 0\" /><path d=\"M7 19l6 0\" /><path d=\"M14 5l-4 14\" /></svg>\n ");
|
|
2437
2466
|
}
|
|
@@ -2448,7 +2477,7 @@ var wn = Cn(), Q = class {
|
|
|
2448
2477
|
} else a = `*${i || "Italic text"}*`, i || (o = 1);
|
|
2449
2478
|
this.editor.insertText(a, o, o);
|
|
2450
2479
|
}
|
|
2451
|
-
},
|
|
2480
|
+
}, jn = class extends Z {
|
|
2452
2481
|
constructor(e) {
|
|
2453
2482
|
super(e, "Strikethrough"), this.button = this.createButton("\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M5 12l14 0\" /><path d=\"M16 6.5a4 2 0 0 0 -4 -1.5h-1a3.5 3.5 0 0 0 0 7h2a3.5 3.5 0 0 1 0 7h-1.5a4 2 0 0 1 -4 -1.5\" /></svg>\n ");
|
|
2454
2483
|
}
|
|
@@ -2461,7 +2490,7 @@ var wn = Cn(), Q = class {
|
|
|
2461
2490
|
} else a = `~~${i || "Strikethrough text"}~~`, o = 2;
|
|
2462
2491
|
this.editor.insertText(a, o, o);
|
|
2463
2492
|
}
|
|
2464
|
-
},
|
|
2493
|
+
}, Mn = class extends Z {
|
|
2465
2494
|
constructor(e) {
|
|
2466
2495
|
super(e, "Unordered list"), this.button = this.createButton("\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M9 6l11 0\" /><path d=\"M9 12l11 0\" /><path d=\"M9 18l11 0\" /><path d=\"M5 6l0 .01\" /><path d=\"M5 12l0 .01\" /><path d=\"M5 18l0 .01\" /></svg>\n ");
|
|
2467
2496
|
}
|
|
@@ -2474,7 +2503,7 @@ var wn = Cn(), Q = class {
|
|
|
2474
2503
|
} else a = `- ${i || "Unordered list"}`, o = 2;
|
|
2475
2504
|
this.editor.insertText(a, o);
|
|
2476
2505
|
}
|
|
2477
|
-
},
|
|
2506
|
+
}, Nn = class extends Z {
|
|
2478
2507
|
constructor(e) {
|
|
2479
2508
|
super(e, "Ordered list"), this.button = this.createButton("\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M11 6h9\" /><path d=\"M11 12h9\" /><path d=\"M12 18h8\" /><path d=\"M4 16a2 2 0 1 1 4 0c0 .591 -.5 1 -1 1.5l-3 2.5h4\" /><path d=\"M6 10v-6l-2 2\" /></svg>\n ");
|
|
2480
2509
|
}
|
|
@@ -2487,7 +2516,7 @@ var wn = Cn(), Q = class {
|
|
|
2487
2516
|
} else a = `1. ${i || "Ordered list"}`, o = 3;
|
|
2488
2517
|
this.editor.insertText(a, o);
|
|
2489
2518
|
}
|
|
2490
|
-
},
|
|
2519
|
+
}, Pn = class extends Z {
|
|
2491
2520
|
constructor(e) {
|
|
2492
2521
|
super(e, "Preview"), this.preview = !0, this.button = this.createButton("\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 4v16\" /><path d=\"M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14\" /><path d=\"M12 13l7.5 -7.5\" /><path d=\"M12 18l8 -8\" /><path d=\"M15 20l5 -5\" /><path d=\"M12 8l4 -4\" /></svg>\n ");
|
|
2493
2522
|
let t = this.button.querySelector("button");
|
|
@@ -2518,7 +2547,7 @@ var wn = Cn(), Q = class {
|
|
|
2518
2547
|
destroy() {
|
|
2519
2548
|
this.preview || (document.removeEventListener("keydown", this._escHandler), document.querySelector("body")?.classList.remove("fj:overflow-hidden"));
|
|
2520
2549
|
}
|
|
2521
|
-
},
|
|
2550
|
+
}, Fn = class extends Z {
|
|
2522
2551
|
constructor(e) {
|
|
2523
2552
|
super(e, "Check list"), this.button = this.createButton("\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M3.5 5.5l1.5 1.5l2.5 -2.5\" /><path d=\"M3.5 11.5l1.5 1.5l2.5 -2.5\" /><path d=\"M3.5 17.5l1.5 1.5l2.5 -2.5\" /><path d=\"M11 6l9 0\" /><path d=\"M11 12l9 0\" /><path d=\"M11 18l9 0\" /></svg>\n ");
|
|
2524
2553
|
}
|
|
@@ -2535,7 +2564,7 @@ var wn = Cn(), Q = class {
|
|
|
2535
2564
|
}
|
|
2536
2565
|
this.editor.insertText(s, c);
|
|
2537
2566
|
}
|
|
2538
|
-
},
|
|
2567
|
+
}, Q = class extends Z {
|
|
2539
2568
|
constructor(e) {
|
|
2540
2569
|
super(e, "Blockquote"), this.button = this.createButton("\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M10 11h-4a1 1 0 0 1 -1 -1v-3a1 1 0 0 1 1 -1h3a1 1 0 0 1 1 1v6c0 2.667 -1.333 4.333 -4 5\" /><path d=\"M19 11h-4a1 1 0 0 1 -1 -1v-3a1 1 0 0 1 1 -1h3a1 1 0 0 1 1 1v6c0 2.667 -1.333 4.333 -4 5\" /></svg>\n ");
|
|
2541
2570
|
}
|
|
@@ -2551,7 +2580,7 @@ var wn = Cn(), Q = class {
|
|
|
2551
2580
|
};
|
|
2552
2581
|
//#endregion
|
|
2553
2582
|
//#region src/components/modal.js
|
|
2554
|
-
function
|
|
2583
|
+
function In(e, t, n, r = "") {
|
|
2555
2584
|
let i = e.target.closest(".markdown-editor-wrapper");
|
|
2556
2585
|
i.querySelector(".markdown-modal") && i.querySelector(".markdown-modal").remove();
|
|
2557
2586
|
let a = `
|
|
@@ -2567,7 +2596,7 @@ function Nn(e, t, n, r = "") {
|
|
|
2567
2596
|
}
|
|
2568
2597
|
//#endregion
|
|
2569
2598
|
//#region src/components/toolbar/tools/LinkTool.js
|
|
2570
|
-
var
|
|
2599
|
+
var $ = class extends Z {
|
|
2571
2600
|
constructor(e) {
|
|
2572
2601
|
super(e, "Link"), this.button = this.createButton("\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M9 15l6 -6\" /><path d=\"M11 6l.463 -.536a5 5 0 0 1 7.071 7.072l-.534 .464\" /><path d=\"M13 18l-.397 .534a5.068 5.068 0 0 1 -7.127 0a4.972 4.972 0 0 1 0 -7.071l.524 -.463\" /></svg>\n ");
|
|
2573
2602
|
}
|
|
@@ -2577,7 +2606,7 @@ var Pn = class extends Q {
|
|
|
2577
2606
|
let e = s.match(/^\]\(([^)]+)\)/);
|
|
2578
2607
|
e && (r = o.length - 1, i += e[0].length, n.setSelectionRange(r, i));
|
|
2579
2608
|
}
|
|
2580
|
-
let c = a.substring(r, i), l = c && c.match(/^\[([^\]]+)\]\(([^)]+)\)$/), u = l ? l[1] : c, d = l ? l[2] : "", f =
|
|
2609
|
+
let c = a.substring(r, i), l = c && c.match(/^\[([^\]]+)\]\(([^)]+)\)$/), u = l ? l[1] : c, d = l ? l[2] : "", f = In(e, "fj:max-w-sm", `
|
|
2581
2610
|
<div class="fj:flex fj:justify-between fj:items-center fj:gap-3">
|
|
2582
2611
|
<div class="fj:font-medium">${this.editor.label("Link")}</div>
|
|
2583
2612
|
<button type="button" class="modal-close-btn fj:me-btn fj:me-btn-ghost fj:me-btn-xs fj:me-btn-circle" aria-label="${this.editor.label("Close")}">
|
|
@@ -2602,7 +2631,7 @@ var Pn = class extends Q {
|
|
|
2602
2631
|
}
|
|
2603
2632
|
});
|
|
2604
2633
|
}
|
|
2605
|
-
},
|
|
2634
|
+
}, Ln = class extends Z {
|
|
2606
2635
|
constructor(e) {
|
|
2607
2636
|
super(e, "Heading"), this.button = this.createButton("\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M7 12h10\" /><path d=\"M7 5v14\" /><path d=\"M17 5v14\" /><path d=\"M15 19h4\" /><path d=\"M15 5h4\" /><path d=\"M5 19h4\" /><path d=\"M5 5h4\" /></svg>\n ");
|
|
2608
2637
|
}
|
|
@@ -2636,16 +2665,16 @@ var Pn = class extends Q {
|
|
|
2636
2665
|
return s.className = "fj:me-popover", s.appendChild(n), s.appendChild(i), s;
|
|
2637
2666
|
}
|
|
2638
2667
|
applyHeading(e) {
|
|
2639
|
-
let t = this.editor.usertextarea, { selectionStart: n, selectionEnd: r } = t, i = t.value, a = i.lastIndexOf("\n", n - 1) + 1, o = i.indexOf("\n", r), s = o === -1 ? i.length : o, c = i.substring(a, s), l = (c.match(/^(#+)\s/) || [])[1], u = c.replace(/^#+\s*/, ""), d = `${"#".repeat(e)} `, f = l && l.length === e ? u || "Heading" : u ? `${d}${u}` : `${d}Heading
|
|
2668
|
+
let t = this.editor.usertextarea, { selectionStart: n, selectionEnd: r } = t, i = t.value, a = i.lastIndexOf("\n", n - 1) + 1, o = i.indexOf("\n", r), s = o === -1 ? i.length : o, c = i.substring(a, s), l = (c.match(/^(#+)\s/) || [])[1], u = c.replace(/^#+\s*/, ""), d = `${"#".repeat(e)} `, f = l && l.length === e ? u || "Heading" : u ? `${d}${u}` : `${d}Heading`, p = t.scrollTop;
|
|
2640
2669
|
t.value = `${i.substring(0, a)}${f}${i.substring(s)}`, t.focus();
|
|
2641
|
-
let
|
|
2642
|
-
t.setSelectionRange(
|
|
2670
|
+
let m = a + (f === u || f === "Heading" ? 0 : d.length), ee = a + f.length;
|
|
2671
|
+
t.setSelectionRange(m, ee), this.editor.render(), this.editor.notifyChange(), this.editor.restoreScroll(p);
|
|
2643
2672
|
}
|
|
2644
2673
|
applySyntax() {}
|
|
2645
2674
|
};
|
|
2646
2675
|
//#endregion
|
|
2647
2676
|
//#region src/utils/imageUpload.js
|
|
2648
|
-
async function
|
|
2677
|
+
async function Rn(e, { uploadUrl: t, params: n = {}, alt: r = "" } = {}) {
|
|
2649
2678
|
let i = new FormData();
|
|
2650
2679
|
i.append("image_file", e), i.append("image_alt", r);
|
|
2651
2680
|
for (let [e, t] of Object.entries(n)) i.append(e, t);
|
|
@@ -2663,7 +2692,7 @@ async function In(e, { uploadUrl: t, params: n = {}, alt: r = "" } = {}) {
|
|
|
2663
2692
|
}
|
|
2664
2693
|
//#endregion
|
|
2665
2694
|
//#region src/components/toolbar/tools/ImageTool.js
|
|
2666
|
-
var
|
|
2695
|
+
var zn = class extends Z {
|
|
2667
2696
|
constructor(e, t = {}) {
|
|
2668
2697
|
super(e, "Image link"), this.config = t, this.fileInputConfig = t.fileInput || !1, this.altInputConfig = t.altInput === void 0 ? { required: !0 } : t.altInput, this.button = this.createButton("\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M15 8h.01\" /><path d=\"M12.5 21h-6.5a3 3 0 0 1 -3 -3v-12a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v6.5\" /><path d=\"M3 16l5 -5c.928 -.893 2.072 -.893 3 0l4 4\" /><path d=\"M14 14l1 -1c.67 -.644 1.45 -.824 2.182 -.54\" /><path d=\"M16 19h6\" /><path d=\"M19 16v6\" /></svg>\n ");
|
|
2669
2698
|
}
|
|
@@ -2673,12 +2702,12 @@ var Ln = class extends Q {
|
|
|
2673
2702
|
let e = s.match(/^\]\(([^)]+)\)/);
|
|
2674
2703
|
e && (r = o.length - 2, i += e[0].length, n.setSelectionRange(r, i));
|
|
2675
2704
|
}
|
|
2676
|
-
let c = a.substring(r, i), l = this.fileInputConfig.accept ? this.fileInputConfig.accept.map((e) => `image/${e}`).join(",") : "image/*", u = typeof this.altInputConfig == "boolean" ? this.altInputConfig : this.altInputConfig.required !== !1, d = this.fileInputConfig.uploadUrl || null, f = this.fileInputConfig.params || {}, p = c && c.match(/^!\[([^\]]*)\]\(([^)]+)\)$/), m = p ? p[1] : c,
|
|
2677
|
-
this.fileInputConfig && (
|
|
2705
|
+
let c = a.substring(r, i), l = this.fileInputConfig.accept ? this.fileInputConfig.accept.map((e) => `image/${e}`).join(",") : "image/*", u = typeof this.altInputConfig == "boolean" ? this.altInputConfig : this.altInputConfig.required !== !1, d = this.fileInputConfig.uploadUrl || null, f = this.fileInputConfig.params || {}, p = c && c.match(/^!\[([^\]]*)\]\(([^)]+)\)$/), m = p ? p[1] : c, ee = p ? p[2] : "", te = "";
|
|
2706
|
+
this.fileInputConfig && (te = `
|
|
2678
2707
|
<input type="file" accept="${l}" class="img-file-input fj:me-input fj:w-full">
|
|
2679
2708
|
<div class="fj:me-divider fj:my-1">OR</div>
|
|
2680
2709
|
`);
|
|
2681
|
-
let
|
|
2710
|
+
let h = In(e, "fj:max-w-sm", `
|
|
2682
2711
|
<div class="fj:flex fj:justify-between fj:items-center fj:gap-3">
|
|
2683
2712
|
<div class="fj:font-medium">${t.label("Image")}</div>
|
|
2684
2713
|
<button type="button" class="modal-close-btn fj:me-btn fj:me-btn-ghost fj:me-btn-xs fj:me-btn-circle" aria-label="${t.label("Close")}">
|
|
@@ -2686,16 +2715,16 @@ var Ln = class extends Q {
|
|
|
2686
2715
|
</button>
|
|
2687
2716
|
</div>
|
|
2688
2717
|
<div class="fj:mt-4 fj:flex fj:flex-col fj:gap-y-4">
|
|
2689
|
-
${
|
|
2690
|
-
<input type="url" placeholder="${t.label("URL")}" class="img-link-input fj:me-input fj:w-full" value="${
|
|
2718
|
+
${te}
|
|
2719
|
+
<input type="url" placeholder="${t.label("URL")}" class="img-link-input fj:me-input fj:w-full" value="${ee}" required>
|
|
2691
2720
|
<input type="text" placeholder="${t.label("Alt text")}" class="img-link-alt-input fj:me-input fj:w-full" value="${m}" ${u ? "required" : ""}>
|
|
2692
2721
|
<button type="button" class="submit-img-link fj:me-btn fj:me-btn-sm fj:self-end">${t.label("Apply")}</button>
|
|
2693
2722
|
</div>`, "Image");
|
|
2694
|
-
|
|
2695
|
-
let
|
|
2696
|
-
|
|
2723
|
+
h.querySelector(".modal-close-btn").addEventListener("click", () => h.close());
|
|
2724
|
+
let g = h.querySelector(".submit-img-link");
|
|
2725
|
+
g.addEventListener("click", async (e) => {
|
|
2697
2726
|
e.preventDefault();
|
|
2698
|
-
let n =
|
|
2727
|
+
let n = h.querySelector(".img-file-input"), r = h.querySelector(".img-link-input"), i = h.querySelector(".img-link-alt-input"), a = n?.files[0];
|
|
2699
2728
|
if (a && (r.required = !1), u && !i.validity.valid) {
|
|
2700
2729
|
i.reportValidity(), a && (r.required = !0);
|
|
2701
2730
|
return;
|
|
@@ -2706,25 +2735,25 @@ var Ln = class extends Q {
|
|
|
2706
2735
|
}
|
|
2707
2736
|
if (a && d) {
|
|
2708
2737
|
let e = n.files[0];
|
|
2709
|
-
|
|
2738
|
+
g.disabled = !0, g.textContent = t.label("Uploading...");
|
|
2710
2739
|
try {
|
|
2711
|
-
let { path: t, alt: n } = await
|
|
2740
|
+
let { path: t, alt: n } = await Rn(e, {
|
|
2712
2741
|
uploadUrl: d,
|
|
2713
2742
|
params: f,
|
|
2714
2743
|
alt: i.value
|
|
2715
2744
|
});
|
|
2716
2745
|
r.value = t, n && !i.value.trim() && (i.value = n);
|
|
2717
2746
|
} catch (e) {
|
|
2718
|
-
alert(e.message || "Upload failed."),
|
|
2747
|
+
alert(e.message || "Upload failed."), g.disabled = !1, g.textContent = t.label("Apply"), r.required = !0;
|
|
2719
2748
|
return;
|
|
2720
2749
|
}
|
|
2721
|
-
|
|
2750
|
+
g.disabled = !1, g.textContent = t.label("Apply");
|
|
2722
2751
|
}
|
|
2723
2752
|
let o = r.value, s = ``;
|
|
2724
|
-
t.insertText(s),
|
|
2753
|
+
t.insertText(s), h.close();
|
|
2725
2754
|
});
|
|
2726
2755
|
}
|
|
2727
|
-
},
|
|
2756
|
+
}, Bn = class extends Z {
|
|
2728
2757
|
constructor(e) {
|
|
2729
2758
|
super(e, "Undo"), this.button = this.createButton("\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M9 14l-4 -4l4 -4\" /><path d=\"M5 10h11a4 4 0 1 1 0 8h-1\" /></svg>\n ");
|
|
2730
2759
|
}
|
|
@@ -2732,7 +2761,7 @@ var Ln = class extends Q {
|
|
|
2732
2761
|
let e = this.editor.undoRedoManager;
|
|
2733
2762
|
e && e.undo();
|
|
2734
2763
|
}
|
|
2735
|
-
},
|
|
2764
|
+
}, Vn = class extends Z {
|
|
2736
2765
|
constructor(e) {
|
|
2737
2766
|
super(e, "Redo"), this.button = this.createButton("\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M15 14l4 -4l-4 -4\" /><path d=\"M19 10h-11a4 4 0 1 0 0 8h1\" /></svg>\n ");
|
|
2738
2767
|
}
|
|
@@ -2740,7 +2769,7 @@ var Ln = class extends Q {
|
|
|
2740
2769
|
let e = this.editor.undoRedoManager;
|
|
2741
2770
|
e && e.redo();
|
|
2742
2771
|
}
|
|
2743
|
-
},
|
|
2772
|
+
}, Hn = class extends Z {
|
|
2744
2773
|
constructor(e) {
|
|
2745
2774
|
super(e, "Indent"), this.button = this.createButton("\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M20 6l-11 0\" /><path d=\"M20 12l-7 0\" /><path d=\"M20 18l-11 0\" /><path d=\"M4 8l4 4l-4 4\" /></svg>\n ");
|
|
2746
2775
|
}
|
|
@@ -2748,7 +2777,7 @@ var Ln = class extends Q {
|
|
|
2748
2777
|
let e = this.editor.indentManager;
|
|
2749
2778
|
e && (e.indent(), this.editor.render());
|
|
2750
2779
|
}
|
|
2751
|
-
},
|
|
2780
|
+
}, Un = class extends Z {
|
|
2752
2781
|
constructor(e) {
|
|
2753
2782
|
super(e, "Outdent"), this.button = this.createButton("\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M20 6l-7 0\" /><path d=\"M20 12l-9 0\" /><path d=\"M20 18l-7 0\" /><path d=\"M8 8l-4 4l4 4\" /></svg>\n ");
|
|
2754
2783
|
}
|
|
@@ -2756,7 +2785,7 @@ var Ln = class extends Q {
|
|
|
2756
2785
|
let t = this.editor.indentManager;
|
|
2757
2786
|
t && (t.outdent(), this.editor.render());
|
|
2758
2787
|
}
|
|
2759
|
-
},
|
|
2788
|
+
}, Wn = class extends Z {
|
|
2760
2789
|
constructor(e) {
|
|
2761
2790
|
super(e, "Code"), this.button = this.createButton("\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M7 8l-4 4l4 4\" /><path d=\"M17 8l4 4l-4 4\" /><path d=\"M14 4l-4 16\" /></svg>\n ");
|
|
2762
2791
|
}
|
|
@@ -2773,7 +2802,7 @@ var Ln = class extends Q {
|
|
|
2773
2802
|
let a = `\`${i || "code"}\``;
|
|
2774
2803
|
this.editor.insertText(a, 1, 1);
|
|
2775
2804
|
}
|
|
2776
|
-
},
|
|
2805
|
+
}, Gn = class extends Z {
|
|
2777
2806
|
constructor(e) {
|
|
2778
2807
|
super(e, "Code Block"), this.button = this.createButton("\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M8 9l3 3l-3 3\" /><path d=\"M13 15l3 0\" /><rect x=\"3\" y=\"4\" width=\"18\" height=\"16\" rx=\"2\" /></svg>\n ");
|
|
2779
2808
|
}
|
|
@@ -2787,7 +2816,7 @@ var Ln = class extends Q {
|
|
|
2787
2816
|
let i = `\`\`\`\n${r || "code"}\n\`\`\``;
|
|
2788
2817
|
this.editor.insertText(i, 4, 4);
|
|
2789
2818
|
}
|
|
2790
|
-
},
|
|
2819
|
+
}, Kn = class extends Z {
|
|
2791
2820
|
constructor(e) {
|
|
2792
2821
|
super(e, "Horizontal Rule"), this.button = this.createButton("\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M4 12l16 0\" stroke-width=\"3\"/><path d=\"M4 7l6 0\" /><path d=\"M4 17l6 0\" /><path d=\"M14 7l6 0\" /><path d=\"M14 17l6 0\" /></svg>\n ");
|
|
2793
2822
|
}
|
|
@@ -2795,7 +2824,7 @@ var Ln = class extends Q {
|
|
|
2795
2824
|
let e = this.editor.usertextarea, { selectionStart: t } = e, n = e.value, r = t === 0 || n[t - 1] === "\n" ? "---\n" : "\n\n---\n";
|
|
2796
2825
|
this.editor.insertText(r, r.length, 0);
|
|
2797
2826
|
}
|
|
2798
|
-
},
|
|
2827
|
+
}, qn = class extends Z {
|
|
2799
2828
|
constructor(e) {
|
|
2800
2829
|
super(e, "Table"), this.button = this.createButton("\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14z\" /><path d=\"M3 10h18\" /><path d=\"M10 3v18\" /></svg>\n ");
|
|
2801
2830
|
}
|
|
@@ -2806,26 +2835,26 @@ var Ln = class extends Q {
|
|
|
2806
2835
|
};
|
|
2807
2836
|
//#endregion
|
|
2808
2837
|
//#region src/utils/variables.js
|
|
2809
|
-
function
|
|
2838
|
+
function Jn(e) {
|
|
2810
2839
|
let t = (e) => e && e.label && typeof e.value == "string", n = [];
|
|
2811
2840
|
for (let r of Array.isArray(e) ? e : []) r && (Array.isArray(r.items) ? n.push(...r.items.filter(t)) : t(r) && n.push(r));
|
|
2812
2841
|
return n;
|
|
2813
2842
|
}
|
|
2814
|
-
function
|
|
2815
|
-
let n =
|
|
2843
|
+
function Yn(e, t) {
|
|
2844
|
+
let n = Jn(t).filter((e) => typeof e.sample == "string");
|
|
2816
2845
|
return n.length ? n.slice().sort((e, t) => t.value.length - e.value.length).reduce((e, t) => e.split(t.value).join(t.sample), e) : e;
|
|
2817
2846
|
}
|
|
2818
2847
|
//#endregion
|
|
2819
2848
|
//#region src/components/toolbar/tools/VariableTool.js
|
|
2820
|
-
var
|
|
2849
|
+
var Xn = "\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M7 4a2 2 0 0 0 -2 2v3a2 2 0 0 1 -2 2a2 2 0 0 1 2 2v3a2 2 0 0 0 2 2\" /><path d=\"M17 4a2 2 0 0 1 2 2v3a2 2 0 0 0 2 2a2 2 0 0 0 -2 2v3a2 2 0 0 1 -2 2\" /></svg>\n", Zn = class extends Z {
|
|
2821
2850
|
constructor(e) {
|
|
2822
2851
|
super(e, "Variables");
|
|
2823
2852
|
}
|
|
2824
2853
|
createButton() {
|
|
2825
2854
|
let e = this.editor.variables ?? [];
|
|
2826
|
-
if (!
|
|
2855
|
+
if (!Jn(e).length) return null;
|
|
2827
2856
|
let t = `variable-popover-${Math.random().toString(36).slice(2, 7)}`, n = document.createElement("button");
|
|
2828
|
-
n.innerHTML =
|
|
2857
|
+
n.innerHTML = Xn, n.querySelector("svg")?.setAttribute("aria-hidden", "true"), n.type = "button", n.title = this.editor.label("Insert variable"), n.setAttribute("aria-label", this.editor.label("Insert variable")), n.setAttribute("aria-haspopup", "menu"), n.className = "markdown-btn variable-btn fj:me-btn fj:me-btn-xs fj:me-btn-square fj:me-btn-ghost fj:me-popover-toggle", n.setAttribute("popovertarget", t);
|
|
2829
2858
|
let r = document.createElement("div");
|
|
2830
2859
|
r.id = t, r.setAttribute("role", "menu"), r.setAttribute("aria-label", this.editor.label("Variables")), r.className = "fj:me-popover-content", r.setAttribute("popover", "");
|
|
2831
2860
|
let i = document.createElement("ul");
|
|
@@ -2856,14 +2885,14 @@ var Jn = "\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"
|
|
|
2856
2885
|
}), n.appendChild(r), n;
|
|
2857
2886
|
}
|
|
2858
2887
|
applySyntax() {}
|
|
2859
|
-
},
|
|
2888
|
+
}, Qn = class extends Z {
|
|
2860
2889
|
constructor(e, t = {}) {
|
|
2861
2890
|
super(e, t.title || "Custom"), this.action = t.action, this.button = typeof this.action == "function" ? this.createButton(t.icon || "") : null, this.shortcut = this.button ? t.shortcut : void 0, this.button || console.warn("[MarkdownEditor] A custom tool needs an action function. Skipping it.", t);
|
|
2862
2891
|
}
|
|
2863
2892
|
applySyntax(e) {
|
|
2864
2893
|
this.action(this.editor, e);
|
|
2865
2894
|
}
|
|
2866
|
-
},
|
|
2895
|
+
}, $n = class {
|
|
2867
2896
|
constructor(e, t, { standalone: n = !1 } = {}) {
|
|
2868
2897
|
this.editor = e, this.options = t, this.standalone = n, this.tools = [], this.toolbar = document.createElement("div"), this.toolbar.className = n ? "toolbar not-prose fj:flex fj:items-center fj:gap-x-1" : "toolbar not-prose fj:me-surface fj:me-surface-outline fj:border-base-soft fj:border-0 fj:border-b fj:flex fj:items-center fj:gap-x-1 fj:p-1.5 fj:overflow-x-auto", this.toolbar.setAttribute("role", "toolbar"), this.toolbar.setAttribute("aria-label", e.label("Editor toolbar")), this.init();
|
|
2869
2898
|
}
|
|
@@ -2872,32 +2901,32 @@ var Jn = "\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"
|
|
|
2872
2901
|
}
|
|
2873
2902
|
init() {
|
|
2874
2903
|
let e = {
|
|
2875
|
-
heading:
|
|
2876
|
-
ul:
|
|
2877
|
-
ol:
|
|
2878
|
-
checklist:
|
|
2879
|
-
bold:
|
|
2880
|
-
italic:
|
|
2881
|
-
strikethrough:
|
|
2882
|
-
blockquote:
|
|
2883
|
-
code:
|
|
2884
|
-
codeblock:
|
|
2885
|
-
hr:
|
|
2886
|
-
table:
|
|
2887
|
-
link:
|
|
2888
|
-
image:
|
|
2889
|
-
undo:
|
|
2890
|
-
redo:
|
|
2891
|
-
indent:
|
|
2892
|
-
outdent:
|
|
2893
|
-
variables:
|
|
2904
|
+
heading: Ln,
|
|
2905
|
+
ul: Mn,
|
|
2906
|
+
ol: Nn,
|
|
2907
|
+
checklist: Fn,
|
|
2908
|
+
bold: kn,
|
|
2909
|
+
italic: An,
|
|
2910
|
+
strikethrough: jn,
|
|
2911
|
+
blockquote: Q,
|
|
2912
|
+
code: Wn,
|
|
2913
|
+
codeblock: Gn,
|
|
2914
|
+
hr: Kn,
|
|
2915
|
+
table: qn,
|
|
2916
|
+
link: $,
|
|
2917
|
+
image: zn,
|
|
2918
|
+
undo: Bn,
|
|
2919
|
+
redo: Vn,
|
|
2920
|
+
indent: Hn,
|
|
2921
|
+
outdent: Un,
|
|
2922
|
+
variables: Zn
|
|
2894
2923
|
};
|
|
2895
2924
|
if (this.options.forEach((t) => {
|
|
2896
2925
|
let n, r;
|
|
2897
2926
|
if (typeof t == "string") n = e[t];
|
|
2898
2927
|
else if (typeof t == "function") n = t;
|
|
2899
2928
|
else if (t && typeof t.tool == "function") n = t.tool, r = t.config;
|
|
2900
|
-
else if (t && t.custom) n =
|
|
2929
|
+
else if (t && t.custom) n = Qn, r = t.custom;
|
|
2901
2930
|
else if (typeof t == "object") {
|
|
2902
2931
|
let i = Object.keys(t)[0];
|
|
2903
2932
|
r = t[i], n = e[i];
|
|
@@ -2908,20 +2937,20 @@ var Jn = "\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"
|
|
|
2908
2937
|
}
|
|
2909
2938
|
}), !this.standalone) {
|
|
2910
2939
|
if (this.options.includes("preview")) {
|
|
2911
|
-
let e = new
|
|
2940
|
+
let e = new Pn(this.editor);
|
|
2912
2941
|
this.editor.previewTool = e, this.toolbar.appendChild(e.button);
|
|
2913
2942
|
}
|
|
2914
2943
|
this.editor.editorContainer.insertBefore(this.toolbar, this.editor.markdownEditorDiv);
|
|
2915
2944
|
}
|
|
2916
2945
|
}
|
|
2917
|
-
},
|
|
2946
|
+
}, er = class {
|
|
2918
2947
|
constructor(e) {
|
|
2919
2948
|
this.previewContainer = document.createElement("div"), this.previewContainer.className = "preview-wrapper fj:p-2 fj:hidden fj:me-surface fj:me-surface-outline fj:border-base-soft fj:border-0 fj:border-l", this.previewContainer.setAttribute("role", "region"), this.previewContainer.setAttribute("aria-label", "Preview"), this.previewContent = document.createElement("div"), this.previewContent.className = "preview-content fj:mte-prose fj:mte-prose-sm fj:md:mte-prose-base fj:me-prose-frutjam fj:p-1.5 fj:overflow-y-auto fj:h-full fj:max-w-full", this.previewContainer.appendChild(this.previewContent), e.appendChild(this.previewContainer);
|
|
2920
2949
|
}
|
|
2921
2950
|
getPreviewContent() {
|
|
2922
2951
|
return this.previewContent;
|
|
2923
2952
|
}
|
|
2924
|
-
},
|
|
2953
|
+
}, tr = class {
|
|
2925
2954
|
constructor(e, t = {}) {
|
|
2926
2955
|
this.options = t, this.footer = document.createElement("div"), this.footer.className = "editor-footer not-prose fj:me-surface fj:me-surface-outline fj:border-base-soft fj:border-0 fj:border-t fj:flex fj:justify-between fj:items-center fj:px-3 fj:py-1 fj:text-xs fj:opacity-60 fj:select-none", this.footer.setAttribute("aria-hidden", "true"), this.positionEl = document.createElement("span"), this.charsEl = document.createElement("span"), this.wordsEl = document.createElement("span"), (this.options.line || this.options.col) && this.footer.appendChild(this.positionEl), this.options.chars && this.footer.appendChild(this.charsEl), this.options.words && this.footer.appendChild(this.wordsEl), e.appendChild(this.footer);
|
|
2927
2956
|
}
|
|
@@ -2936,7 +2965,7 @@ var Jn = "\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"
|
|
|
2936
2965
|
this.wordsEl.textContent = `${e.toLocaleString()} words`;
|
|
2937
2966
|
}
|
|
2938
2967
|
}
|
|
2939
|
-
},
|
|
2968
|
+
}, nr = class {
|
|
2940
2969
|
diff(e, t, n = {}) {
|
|
2941
2970
|
let r;
|
|
2942
2971
|
typeof n == "function" ? (r = n, n = {}) : "callback" in n && (r = n.callback);
|
|
@@ -2959,7 +2988,7 @@ var Jn = "\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"
|
|
|
2959
2988
|
lastComponent: void 0
|
|
2960
2989
|
}], f = this.extractCommon(d[0], t, e, 0, n);
|
|
2961
2990
|
if (d[0].oldPos + 1 >= o && f + 1 >= a) return i(this.buildValues(d[0].lastComponent, t, e));
|
|
2962
|
-
let p = -Infinity, m = Infinity,
|
|
2991
|
+
let p = -Infinity, m = Infinity, ee = () => {
|
|
2963
2992
|
for (let r = Math.max(p, -s); r <= Math.min(m, s); r += 2) {
|
|
2964
2993
|
let s, c = d[r - 1], l = d[r + 1];
|
|
2965
2994
|
c && (d[r - 1] = void 0);
|
|
@@ -2968,12 +2997,12 @@ var Jn = "\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"
|
|
|
2968
2997
|
let e = l.oldPos - r;
|
|
2969
2998
|
u = l && 0 <= e && e < a;
|
|
2970
2999
|
}
|
|
2971
|
-
let
|
|
2972
|
-
if (!u && !
|
|
3000
|
+
let ee = c && c.oldPos + 1 < o;
|
|
3001
|
+
if (!u && !ee) {
|
|
2973
3002
|
d[r] = void 0;
|
|
2974
3003
|
continue;
|
|
2975
3004
|
}
|
|
2976
|
-
if (s = !
|
|
3005
|
+
if (s = !ee || u && c.oldPos < l.oldPos ? this.addToPath(l, !0, !1, 0, n) : this.addToPath(c, !1, !0, 1, n), f = this.extractCommon(s, t, e, r, n), s.oldPos + 1 >= o && f + 1 >= a) return i(this.buildValues(s.lastComponent, t, e)) || !0;
|
|
2977
3006
|
d[r] = s, s.oldPos + 1 >= o && (m = Math.min(m, r - 1)), f + 1 >= a && (p = Math.max(p, r + 1));
|
|
2978
3007
|
}
|
|
2979
3008
|
s++;
|
|
@@ -2981,11 +3010,11 @@ var Jn = "\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"
|
|
|
2981
3010
|
if (r) (function e() {
|
|
2982
3011
|
setTimeout(function() {
|
|
2983
3012
|
if (s > c || Date.now() > u) return r(void 0);
|
|
2984
|
-
|
|
3013
|
+
ee() || e();
|
|
2985
3014
|
}, 0);
|
|
2986
3015
|
})();
|
|
2987
3016
|
else for (; s <= c && Date.now() <= u;) {
|
|
2988
|
-
let e =
|
|
3017
|
+
let e = ee();
|
|
2989
3018
|
if (e) return e;
|
|
2990
3019
|
}
|
|
2991
3020
|
}
|
|
@@ -3068,42 +3097,42 @@ var Jn = "\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"
|
|
|
3068
3097
|
}
|
|
3069
3098
|
return r;
|
|
3070
3099
|
}
|
|
3071
|
-
},
|
|
3072
|
-
function
|
|
3073
|
-
return
|
|
3100
|
+
}, rr = new class extends nr {}();
|
|
3101
|
+
function ir(e, t, n) {
|
|
3102
|
+
return rr.diff(e, t, n);
|
|
3074
3103
|
}
|
|
3075
3104
|
//#endregion
|
|
3076
3105
|
//#region node_modules/diff/libesm/util/string.js
|
|
3077
|
-
function
|
|
3106
|
+
function ar(e, t) {
|
|
3078
3107
|
let n = 0;
|
|
3079
3108
|
for (; n < e.length && n < t.length; n++) if (e[n] != t[n]) return e.slice(0, n);
|
|
3080
3109
|
return e.slice(0, n);
|
|
3081
3110
|
}
|
|
3082
|
-
function
|
|
3111
|
+
function or(e, t) {
|
|
3083
3112
|
let n;
|
|
3084
3113
|
if (!e || !t || e[e.length - 1] != t[t.length - 1]) return "";
|
|
3085
3114
|
for (n = 0; n < e.length && n < t.length; n++) if (e[e.length - (n + 1)] != t[t.length - (n + 1)]) return e.slice(-n);
|
|
3086
3115
|
return e.slice(-n);
|
|
3087
3116
|
}
|
|
3088
|
-
function
|
|
3117
|
+
function sr(e, t, n) {
|
|
3089
3118
|
if (e.slice(0, t.length) != t) throw Error(`string ${JSON.stringify(e)} doesn't start with prefix ${JSON.stringify(t)}; this is a bug`);
|
|
3090
3119
|
return n + e.slice(t.length);
|
|
3091
3120
|
}
|
|
3092
|
-
function
|
|
3121
|
+
function cr(e, t, n) {
|
|
3093
3122
|
if (!t) return e + n;
|
|
3094
3123
|
if (e.slice(-t.length) != t) throw Error(`string ${JSON.stringify(e)} doesn't end with suffix ${JSON.stringify(t)}; this is a bug`);
|
|
3095
3124
|
return e.slice(0, -t.length) + n;
|
|
3096
3125
|
}
|
|
3097
|
-
function
|
|
3098
|
-
return
|
|
3126
|
+
function lr(e, t) {
|
|
3127
|
+
return sr(e, t, "");
|
|
3099
3128
|
}
|
|
3100
|
-
function
|
|
3101
|
-
return
|
|
3129
|
+
function ur(e, t) {
|
|
3130
|
+
return cr(e, t, "");
|
|
3102
3131
|
}
|
|
3103
|
-
function
|
|
3104
|
-
return t.slice(0,
|
|
3132
|
+
function dr(e, t) {
|
|
3133
|
+
return t.slice(0, fr(e, t));
|
|
3105
3134
|
}
|
|
3106
|
-
function
|
|
3135
|
+
function fr(e, t) {
|
|
3107
3136
|
let n = 0;
|
|
3108
3137
|
e.length > t.length && (n = e.length - t.length);
|
|
3109
3138
|
let r = t.length;
|
|
@@ -3121,7 +3150,7 @@ function lr(e, t) {
|
|
|
3121
3150
|
}
|
|
3122
3151
|
return a;
|
|
3123
3152
|
}
|
|
3124
|
-
function
|
|
3153
|
+
function pr(e, t) {
|
|
3125
3154
|
let n = [];
|
|
3126
3155
|
for (let r of Array.from(t.segment(e))) {
|
|
3127
3156
|
let e = r.segment;
|
|
@@ -3129,27 +3158,27 @@ function ur(e, t) {
|
|
|
3129
3158
|
}
|
|
3130
3159
|
return n;
|
|
3131
3160
|
}
|
|
3132
|
-
function
|
|
3133
|
-
if (t) return
|
|
3161
|
+
function mr(e, t) {
|
|
3162
|
+
if (t) return gr(e, t)[1];
|
|
3134
3163
|
let n;
|
|
3135
3164
|
for (n = e.length - 1; n >= 0 && e[n].match(/\s/); n--);
|
|
3136
3165
|
return e.substring(n + 1);
|
|
3137
3166
|
}
|
|
3138
|
-
function
|
|
3139
|
-
if (t) return
|
|
3167
|
+
function hr(e, t) {
|
|
3168
|
+
if (t) return gr(e, t)[0];
|
|
3140
3169
|
let n = e.match(/^\s*/);
|
|
3141
3170
|
return n ? n[0] : "";
|
|
3142
3171
|
}
|
|
3143
|
-
function
|
|
3144
|
-
if (!t) return [
|
|
3172
|
+
function gr(e, t) {
|
|
3173
|
+
if (!t) return [hr(e), mr(e)];
|
|
3145
3174
|
if (t.resolvedOptions().granularity != "word") throw Error("The segmenter passed must have a granularity of \"word\"");
|
|
3146
|
-
let n =
|
|
3175
|
+
let n = pr(e, t), r = n[0], i = n[n.length - 1];
|
|
3147
3176
|
return [/\s/.test(r) ? r : "", /\s/.test(i) ? i : ""];
|
|
3148
3177
|
}
|
|
3149
3178
|
//#endregion
|
|
3150
3179
|
//#region node_modules/diff/libesm/diff/word.js
|
|
3151
|
-
var
|
|
3152
|
-
new class extends
|
|
3180
|
+
var _r = "a-zA-Z0-9_\\u{AD}\\u{C0}-\\u{D6}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}", vr = RegExp(`[${_r}]+|\\s+|[^${_r}]`, "ug");
|
|
3181
|
+
new class extends nr {
|
|
3153
3182
|
equals(e, t, n) {
|
|
3154
3183
|
return n.ignoreCase && (e = e.toLowerCase(), t = t.toLowerCase()), e.trim() === t.trim();
|
|
3155
3184
|
}
|
|
@@ -3158,8 +3187,8 @@ new class extends $ {
|
|
|
3158
3187
|
if (t.intlSegmenter) {
|
|
3159
3188
|
let r = t.intlSegmenter;
|
|
3160
3189
|
if (r.resolvedOptions().granularity != "word") throw Error("The segmenter passed must have a granularity of \"word\"");
|
|
3161
|
-
n =
|
|
3162
|
-
} else n = e.match(
|
|
3190
|
+
n = pr(e, r);
|
|
3191
|
+
} else n = e.match(vr) || [];
|
|
3163
3192
|
let r = [], i = null;
|
|
3164
3193
|
return n.forEach((e) => {
|
|
3165
3194
|
/\s/.test(e) ? i == null ? r.push(e) : r.push(r.pop() + e) : i != null && /\s/.test(i) ? r[r.length - 1] == i ? r.push(r.pop() + e) : r.push(i + e) : r.push(e), i = e;
|
|
@@ -3172,57 +3201,57 @@ new class extends $ {
|
|
|
3172
3201
|
if (!e || t.oneChangePerToken) return e;
|
|
3173
3202
|
let n = null, r = null, i = null;
|
|
3174
3203
|
return e.forEach((e) => {
|
|
3175
|
-
e.added ? r = e : e.removed ? i = e : ((r || i) &&
|
|
3176
|
-
}), (r || i) &&
|
|
3204
|
+
e.added ? r = e : e.removed ? i = e : ((r || i) && yr(n, i, r, e, t.intlSegmenter), n = e, r = null, i = null);
|
|
3205
|
+
}), (r || i) && yr(n, i, r, null, t.intlSegmenter), e;
|
|
3177
3206
|
}
|
|
3178
3207
|
}();
|
|
3179
|
-
function
|
|
3208
|
+
function yr(e, t, n, r, i) {
|
|
3180
3209
|
if (t && n) {
|
|
3181
|
-
let [a, o] =
|
|
3210
|
+
let [a, o] = gr(t.value, i), [s, c] = gr(n.value, i);
|
|
3182
3211
|
if (e) {
|
|
3183
|
-
let r =
|
|
3184
|
-
e.value =
|
|
3212
|
+
let r = ar(a, s);
|
|
3213
|
+
e.value = cr(e.value, s, r), t.value = lr(t.value, r), n.value = lr(n.value, r);
|
|
3185
3214
|
}
|
|
3186
3215
|
if (r) {
|
|
3187
|
-
let e =
|
|
3188
|
-
r.value =
|
|
3216
|
+
let e = or(o, c);
|
|
3217
|
+
r.value = sr(r.value, c, e), t.value = ur(t.value, e), n.value = ur(n.value, e);
|
|
3189
3218
|
}
|
|
3190
3219
|
} else if (n) {
|
|
3191
3220
|
if (e) {
|
|
3192
|
-
let e =
|
|
3221
|
+
let e = hr(n.value, i);
|
|
3193
3222
|
n.value = n.value.substring(e.length);
|
|
3194
3223
|
}
|
|
3195
3224
|
if (r) {
|
|
3196
|
-
let e =
|
|
3225
|
+
let e = hr(r.value, i);
|
|
3197
3226
|
r.value = r.value.substring(e.length);
|
|
3198
3227
|
}
|
|
3199
3228
|
} else if (e && r) {
|
|
3200
|
-
let n =
|
|
3201
|
-
t.value =
|
|
3202
|
-
let c =
|
|
3203
|
-
t.value =
|
|
3229
|
+
let n = hr(r.value, i), [a, o] = gr(t.value, i), s = ar(n, a);
|
|
3230
|
+
t.value = lr(t.value, s);
|
|
3231
|
+
let c = or(lr(n, s), o);
|
|
3232
|
+
t.value = ur(t.value, c), r.value = sr(r.value, n, c), e.value = cr(e.value, n, n.slice(0, n.length - c.length));
|
|
3204
3233
|
} else if (r) {
|
|
3205
|
-
let e =
|
|
3206
|
-
t.value =
|
|
3234
|
+
let e = hr(r.value, i), n = dr(mr(t.value, i), e);
|
|
3235
|
+
t.value = ur(t.value, n);
|
|
3207
3236
|
} else if (e) {
|
|
3208
|
-
let n =
|
|
3209
|
-
t.value =
|
|
3237
|
+
let n = dr(mr(e.value, i), hr(t.value, i));
|
|
3238
|
+
t.value = lr(t.value, n);
|
|
3210
3239
|
}
|
|
3211
3240
|
}
|
|
3212
|
-
new class extends
|
|
3241
|
+
new class extends nr {
|
|
3213
3242
|
tokenize(e) {
|
|
3214
|
-
let t = RegExp(`(\\r?\\n)|[${
|
|
3243
|
+
let t = RegExp(`(\\r?\\n)|[${_r}]+|[^\\S\\n\\r]+|[^${_r}]`, "ug");
|
|
3215
3244
|
return e.match(t) || [];
|
|
3216
3245
|
}
|
|
3217
|
-
}(), new class extends
|
|
3246
|
+
}(), new class extends nr {
|
|
3218
3247
|
constructor() {
|
|
3219
|
-
super(...arguments), this.tokenize =
|
|
3248
|
+
super(...arguments), this.tokenize = br;
|
|
3220
3249
|
}
|
|
3221
3250
|
equals(e, t, n) {
|
|
3222
3251
|
return n.ignoreWhitespace ? ((!n.newlineIsToken || !e.includes("\n")) && (e = e.trim()), (!n.newlineIsToken || !t.includes("\n")) && (t = t.trim())) : n.ignoreNewlineAtEof && !n.newlineIsToken && (e.endsWith("\n") && (e = e.slice(0, -1)), t.endsWith("\n") && (t = t.slice(0, -1))), super.equals(e, t, n);
|
|
3223
3252
|
}
|
|
3224
3253
|
}();
|
|
3225
|
-
function
|
|
3254
|
+
function br(e, t) {
|
|
3226
3255
|
t.stripTrailingCr && (e = e.replace(/\r\n/g, "\n"));
|
|
3227
3256
|
let n = [], r = e.split(/(\n|\r\n)/);
|
|
3228
3257
|
r[r.length - 1] || r.pop();
|
|
@@ -3234,10 +3263,10 @@ function _r(e, t) {
|
|
|
3234
3263
|
}
|
|
3235
3264
|
//#endregion
|
|
3236
3265
|
//#region node_modules/diff/libesm/diff/sentence.js
|
|
3237
|
-
function
|
|
3266
|
+
function xr(e) {
|
|
3238
3267
|
return e == "." || e == "!" || e == "?";
|
|
3239
3268
|
}
|
|
3240
|
-
new class extends
|
|
3269
|
+
new class extends nr {
|
|
3241
3270
|
tokenize(e) {
|
|
3242
3271
|
let t = [], n = 0;
|
|
3243
3272
|
for (let r = 0; r < e.length; r++) {
|
|
@@ -3245,39 +3274,39 @@ new class extends $ {
|
|
|
3245
3274
|
t.push(e.slice(n));
|
|
3246
3275
|
break;
|
|
3247
3276
|
}
|
|
3248
|
-
if (
|
|
3277
|
+
if (xr(e[r]) && e[r + 1].match(/\s/)) {
|
|
3249
3278
|
for (t.push(e.slice(n, r + 1)), r = n = r + 1; e[r + 1]?.match(/\s/);) r++;
|
|
3250
3279
|
t.push(e.slice(n, r + 1)), n = r + 1;
|
|
3251
3280
|
}
|
|
3252
3281
|
}
|
|
3253
3282
|
return t;
|
|
3254
3283
|
}
|
|
3255
|
-
}(), new class extends
|
|
3284
|
+
}(), new class extends nr {
|
|
3256
3285
|
tokenize(e) {
|
|
3257
3286
|
return e.split(/([{}:;,]|\s+)/);
|
|
3258
3287
|
}
|
|
3259
|
-
}(), new class extends
|
|
3288
|
+
}(), new class extends nr {
|
|
3260
3289
|
constructor() {
|
|
3261
|
-
super(...arguments), this.tokenize =
|
|
3290
|
+
super(...arguments), this.tokenize = br;
|
|
3262
3291
|
}
|
|
3263
3292
|
get useLongestToken() {
|
|
3264
3293
|
return !0;
|
|
3265
3294
|
}
|
|
3266
3295
|
castInput(e, t) {
|
|
3267
3296
|
let { undefinedReplacement: n, stringifyReplacer: r = (e, t) => t === void 0 ? n : t } = t;
|
|
3268
|
-
return typeof e == "string" ? e : JSON.stringify(
|
|
3297
|
+
return typeof e == "string" ? e : JSON.stringify(Sr(e, null, null, r), null, " ");
|
|
3269
3298
|
}
|
|
3270
3299
|
equals(e, t, n) {
|
|
3271
3300
|
return super.equals(e.replace(/,([\r\n])/g, "$1"), t.replace(/,([\r\n])/g, "$1"), n);
|
|
3272
3301
|
}
|
|
3273
3302
|
}();
|
|
3274
|
-
function
|
|
3303
|
+
function Sr(e, t, n, r, i) {
|
|
3275
3304
|
t ||= [], n ||= [], r && (e = r(i === void 0 ? "" : i, e));
|
|
3276
3305
|
let a = 0;
|
|
3277
3306
|
for (; a < t.length; a += 1) if (t[a] === e) return n[a];
|
|
3278
3307
|
let o;
|
|
3279
3308
|
if (Object.prototype.toString.call(e) === "[object Array]") {
|
|
3280
|
-
for (t.push(e), o = Array(e.length), n.push(o), a = 0; a < e.length; a += 1) o[a] =
|
|
3309
|
+
for (t.push(e), o = Array(e.length), n.push(o), a = 0; a < e.length; a += 1) o[a] = Sr(e[a], t, n, r, String(a));
|
|
3281
3310
|
return t.pop(), n.pop(), o;
|
|
3282
3311
|
}
|
|
3283
3312
|
if (e && e.toJSON && (e = e.toJSON()), typeof e == "object" && e) {
|
|
@@ -3286,12 +3315,12 @@ function yr(e, t, n, r, i) {
|
|
|
3286
3315
|
for (s in e)
|
|
3287
3316
|
/* istanbul ignore else */
|
|
3288
3317
|
Object.prototype.hasOwnProperty.call(e, s) && i.push(s);
|
|
3289
|
-
for (i.sort(), a = 0; a < i.length; a += 1) s = i[a], o[s] =
|
|
3318
|
+
for (i.sort(), a = 0; a < i.length; a += 1) s = i[a], o[s] = Sr(e[s], t, n, r, s);
|
|
3290
3319
|
t.pop(), n.pop();
|
|
3291
3320
|
} else o = e;
|
|
3292
3321
|
return o;
|
|
3293
3322
|
}
|
|
3294
|
-
new class extends
|
|
3323
|
+
new class extends nr {
|
|
3295
3324
|
tokenize(e) {
|
|
3296
3325
|
return e.slice();
|
|
3297
3326
|
}
|
|
@@ -3304,7 +3333,7 @@ new class extends $ {
|
|
|
3304
3333
|
}();
|
|
3305
3334
|
//#endregion
|
|
3306
3335
|
//#region src/utils/UndoRedoManager.js
|
|
3307
|
-
var
|
|
3336
|
+
var Cr = class {
|
|
3308
3337
|
constructor(e) {
|
|
3309
3338
|
this.editor = e, this.textarea = e.usertextarea, this.undoStack = [], this.redoStack = [], this.lastValue = this.textarea.value, this.lastSelection = {
|
|
3310
3339
|
selectionStart: this.textarea.selectionStart,
|
|
@@ -3338,7 +3367,7 @@ var br = class {
|
|
|
3338
3367
|
let e = this.textarea.value || "";
|
|
3339
3368
|
if (e === this.lastValue) return;
|
|
3340
3369
|
clearTimeout(this._debounceTimer);
|
|
3341
|
-
let t =
|
|
3370
|
+
let t = ir(this.lastValue, e);
|
|
3342
3371
|
this.undoStack.push({
|
|
3343
3372
|
diff: t,
|
|
3344
3373
|
selection: { ...this.lastSelection }
|
|
@@ -3378,7 +3407,7 @@ var br = class {
|
|
|
3378
3407
|
_restoreState(e, t) {
|
|
3379
3408
|
this.textarea.value = e, this.textarea.setSelectionRange(t.selectionStart, t.selectionEnd), this.lastValue = e, this.lastSelection = { ...t }, this.editor.render && this.editor.render(), this.editor.notifyChange(), this.textarea.focus();
|
|
3380
3409
|
}
|
|
3381
|
-
},
|
|
3410
|
+
}, wr = class {
|
|
3382
3411
|
constructor(e, t) {
|
|
3383
3412
|
this.editor = e, this.textarea = e.usertextarea, this.renderCallback = t, this.pairs = {
|
|
3384
3413
|
"{": "}",
|
|
@@ -3471,7 +3500,7 @@ var br = class {
|
|
|
3471
3500
|
_applyChange(e, t, n) {
|
|
3472
3501
|
this.textarea.value = e, this.textarea.setSelectionRange(t, n);
|
|
3473
3502
|
}
|
|
3474
|
-
},
|
|
3503
|
+
}, Tr = class {
|
|
3475
3504
|
constructor(e) {
|
|
3476
3505
|
this.editor = e, this.textarea = e.usertextarea, this._keydownHandler = (e) => {
|
|
3477
3506
|
e.key === "Enter" && this.handleEnter(e);
|
|
@@ -3497,12 +3526,12 @@ var br = class {
|
|
|
3497
3526
|
this.textarea.setSelectionRange(o, o), this.editor.render(), this.editor.notifyChange();
|
|
3498
3527
|
}
|
|
3499
3528
|
}
|
|
3500
|
-
},
|
|
3529
|
+
}, Er = [
|
|
3501
3530
|
{
|
|
3502
3531
|
key: "b",
|
|
3503
3532
|
ctrl: !0,
|
|
3504
3533
|
shift: !1,
|
|
3505
|
-
ToolClass:
|
|
3534
|
+
ToolClass: kn,
|
|
3506
3535
|
label: "Ctrl+B",
|
|
3507
3536
|
btnClass: "bold-btn"
|
|
3508
3537
|
},
|
|
@@ -3510,7 +3539,7 @@ var br = class {
|
|
|
3510
3539
|
key: "i",
|
|
3511
3540
|
ctrl: !0,
|
|
3512
3541
|
shift: !1,
|
|
3513
|
-
ToolClass:
|
|
3542
|
+
ToolClass: An,
|
|
3514
3543
|
label: "Ctrl+I",
|
|
3515
3544
|
btnClass: "italic-btn"
|
|
3516
3545
|
},
|
|
@@ -3518,7 +3547,7 @@ var br = class {
|
|
|
3518
3547
|
key: "k",
|
|
3519
3548
|
ctrl: !0,
|
|
3520
3549
|
shift: !1,
|
|
3521
|
-
ToolClass:
|
|
3550
|
+
ToolClass: $,
|
|
3522
3551
|
label: "Ctrl+K",
|
|
3523
3552
|
btnClass: "link-btn"
|
|
3524
3553
|
},
|
|
@@ -3526,7 +3555,7 @@ var br = class {
|
|
|
3526
3555
|
key: "`",
|
|
3527
3556
|
ctrl: !0,
|
|
3528
3557
|
shift: !1,
|
|
3529
|
-
ToolClass:
|
|
3558
|
+
ToolClass: Wn,
|
|
3530
3559
|
label: "Ctrl+`",
|
|
3531
3560
|
btnClass: "code-btn"
|
|
3532
3561
|
},
|
|
@@ -3534,7 +3563,7 @@ var br = class {
|
|
|
3534
3563
|
key: "s",
|
|
3535
3564
|
ctrl: !0,
|
|
3536
3565
|
shift: !0,
|
|
3537
|
-
ToolClass:
|
|
3566
|
+
ToolClass: jn,
|
|
3538
3567
|
label: "Ctrl+Shift+S",
|
|
3539
3568
|
btnClass: "strikethrough-btn"
|
|
3540
3569
|
},
|
|
@@ -3542,12 +3571,12 @@ var br = class {
|
|
|
3542
3571
|
key: "l",
|
|
3543
3572
|
ctrl: !0,
|
|
3544
3573
|
shift: !1,
|
|
3545
|
-
ToolClass:
|
|
3574
|
+
ToolClass: Mn,
|
|
3546
3575
|
label: "Ctrl+L",
|
|
3547
3576
|
btnClass: "ul-btn"
|
|
3548
3577
|
}
|
|
3549
3578
|
];
|
|
3550
|
-
function
|
|
3579
|
+
function Dr(e) {
|
|
3551
3580
|
let t = String(e).split("+").map((e) => e.trim().toLowerCase()), n = t.pop();
|
|
3552
3581
|
return n ? {
|
|
3553
3582
|
key: n,
|
|
@@ -3556,11 +3585,11 @@ function wr(e) {
|
|
|
3556
3585
|
alt: t.includes("alt")
|
|
3557
3586
|
} : null;
|
|
3558
3587
|
}
|
|
3559
|
-
var
|
|
3588
|
+
var Or = class {
|
|
3560
3589
|
constructor(e) {
|
|
3561
3590
|
this.editor = e, this.toolShortcuts = (e.toolbarInstance?.tools ?? []).filter((e) => e.shortcut).map((e) => ({
|
|
3562
3591
|
tool: e,
|
|
3563
|
-
combo:
|
|
3592
|
+
combo: Dr(e.shortcut)
|
|
3564
3593
|
})).filter((e) => e.combo), this._handler = this._onKeyDown.bind(this), this._docHandler = this._onDocKeyDown.bind(this), e.usertextarea.addEventListener("keydown", this._handler), document.addEventListener("keydown", this._docHandler), this._updateTooltips();
|
|
3565
3594
|
}
|
|
3566
3595
|
_onKeyDown(e) {
|
|
@@ -3574,14 +3603,14 @@ var Tr = class {
|
|
|
3574
3603
|
"2",
|
|
3575
3604
|
"3"
|
|
3576
3605
|
].includes(e.key)) {
|
|
3577
|
-
e.preventDefault(), new
|
|
3606
|
+
e.preventDefault(), new Ln(this.editor).applyHeading(parseInt(e.key));
|
|
3578
3607
|
return;
|
|
3579
3608
|
}
|
|
3580
3609
|
for (let { tool: i, combo: a } of this.toolShortcuts) if (r === a.key && t === a.ctrl && n === a.shift && e.altKey === a.alt) {
|
|
3581
3610
|
e.preventDefault(), i.applySyntax(e);
|
|
3582
3611
|
return;
|
|
3583
3612
|
}
|
|
3584
|
-
for (let i of
|
|
3613
|
+
for (let i of Er) if (r === i.key && t === i.ctrl && n === i.shift) {
|
|
3585
3614
|
e.preventDefault(), new i.ToolClass(this.editor).applySyntax(e);
|
|
3586
3615
|
return;
|
|
3587
3616
|
}
|
|
@@ -3593,7 +3622,7 @@ var Tr = class {
|
|
|
3593
3622
|
}
|
|
3594
3623
|
}
|
|
3595
3624
|
_updateTooltips() {
|
|
3596
|
-
for (let { btnClass: e, label: t } of
|
|
3625
|
+
for (let { btnClass: e, label: t } of Er) {
|
|
3597
3626
|
let n = this.editor.editorContainer.querySelector(`.${e}`);
|
|
3598
3627
|
n && (n.title += ` (${t})`);
|
|
3599
3628
|
}
|
|
@@ -3606,7 +3635,7 @@ var Tr = class {
|
|
|
3606
3635
|
destroy() {
|
|
3607
3636
|
this.editor.usertextarea.removeEventListener("keydown", this._handler), document.removeEventListener("keydown", this._docHandler);
|
|
3608
3637
|
}
|
|
3609
|
-
},
|
|
3638
|
+
}, kr = class {
|
|
3610
3639
|
constructor(e) {
|
|
3611
3640
|
this.editor = e, this._matches = [], this._currentIndex = -1, this._caseSensitive = !1, this._panel = null, this._findInput = null, this._replaceInput = null, this._countEl = null, this._replaceRow = null, this._caseSensitiveBtn = null, this._highlightEl = null, this._scrollHandler = null, this._taHandler = this._onTextareaKeyDown.bind(this), e.usertextarea.addEventListener("keydown", this._taHandler);
|
|
3612
3641
|
}
|
|
@@ -3758,7 +3787,7 @@ var Tr = class {
|
|
|
3758
3787
|
destroy() {
|
|
3759
3788
|
this.editor.usertextarea.removeEventListener("keydown", this._taHandler), this._scrollHandler && this.editor.usertextarea.removeEventListener("scroll", this._scrollHandler), this._clearMatchHighlight(), this._panel?.remove();
|
|
3760
3789
|
}
|
|
3761
|
-
},
|
|
3790
|
+
}, Ar = /^https?:\/\/\S+$/i, jr = class {
|
|
3762
3791
|
constructor(e) {
|
|
3763
3792
|
this.editor = e, this.textarea = e.usertextarea, this._pasteHandler = (e) => this._onPaste(e), this._dropHandler = (e) => this._onDrop(e), this._dragOverHandler = (e) => {
|
|
3764
3793
|
this._carriesFiles(e.dataTransfer) && e.preventDefault();
|
|
@@ -3784,7 +3813,7 @@ var Tr = class {
|
|
|
3784
3813
|
return;
|
|
3785
3814
|
}
|
|
3786
3815
|
let n = e.clipboardData?.getData("text/plain")?.trim(), { selectionStart: r, selectionEnd: i } = this.textarea;
|
|
3787
|
-
if (n && i > r &&
|
|
3816
|
+
if (n && i > r && Ar.test(n)) {
|
|
3788
3817
|
e.preventDefault();
|
|
3789
3818
|
let t = `[${this.textarea.value.slice(r, i)}](${n})`;
|
|
3790
3819
|
this.editor.insertText(t, t.length, 0);
|
|
@@ -3807,7 +3836,7 @@ var Tr = class {
|
|
|
3807
3836
|
let e = `![${this.editor.label("Uploading...")}]()`;
|
|
3808
3837
|
this.editor.insertText(e, e.length, 0);
|
|
3809
3838
|
try {
|
|
3810
|
-
let { path: n, alt: r } = await
|
|
3839
|
+
let { path: n, alt: r } = await Rn(t, this.editor.imageUpload);
|
|
3811
3840
|
this._replace(e, ``);
|
|
3812
3841
|
} catch (t) {
|
|
3813
3842
|
this._replace(e, `![${this.editor.label("Upload failed")}]()`), console.error("[MarkdownEditor] Image upload failed.", t);
|
|
@@ -3821,9 +3850,9 @@ var Tr = class {
|
|
|
3821
3850
|
let i = r + t.length;
|
|
3822
3851
|
n.setSelectionRange(i, i), this.editor.render(), this.editor.notifyChange();
|
|
3823
3852
|
}
|
|
3824
|
-
},
|
|
3853
|
+
}, Mr = new ot({ breaks: !0 }), Nr = class {
|
|
3825
3854
|
constructor(e, t = {}) {
|
|
3826
|
-
this.usertextarea = typeof e == "string" ? document.querySelector(e) : e, this.options = t, this.mode = t.mode || "plain", this.preview = !this.options.toolbar || this.options.toolbar.includes("preview"), this.footerOptions = this._parseFooterOptions(t.footer), this.variables = this._parseVariables(t.toolbar), this.imageUpload = this._parseImageUpload(t.toolbar), this.previewTimer = null, this.init(), this.undoRedoManager = new
|
|
3855
|
+
this.usertextarea = typeof e == "string" ? document.querySelector(e) : e, this.options = t, this.mode = t.mode || "plain", this.preview = !this.options.toolbar || this.options.toolbar.includes("preview"), this.footerOptions = this._parseFooterOptions(t.footer), this.variables = this._parseVariables(t.toolbar), this.imageUpload = this._parseImageUpload(t.toolbar), this.previewTimer = null, this.init(), this.undoRedoManager = new Cr(this), this.listManager = new Tr(this), this.indentManager = new wr(this), this.shortcutManager = new Or(this), this.findReplace = new kr(this), this.pasteManager = new jr(this);
|
|
3827
3856
|
}
|
|
3828
3857
|
label(e) {
|
|
3829
3858
|
return this.options.labels?.[e] ?? e;
|
|
@@ -3856,7 +3885,7 @@ var Tr = class {
|
|
|
3856
3885
|
return this.usertextarea.tagName === "TEXTAREA";
|
|
3857
3886
|
}
|
|
3858
3887
|
applyDefaultAttributes() {
|
|
3859
|
-
this.usertextarea.id && document.querySelector(`label[for="${this.usertextarea.id}"]`) || this.usertextarea.getAttribute("aria-label") || this.usertextarea.getAttribute("aria-labelledby") || (this.usertextarea.setAttribute("aria-label", this.options.label || "Markdown editor"), this._addedAriaLabel = !0), this.usertextarea.classList.add("editor-textarea", "fj:focus:ring-0", "fj:focus:outline-0", "fj:border-0", "fj:border-base-soft", "fj:px-4", "fj:py-2", "fj:max-w-full", "fj:w-full", "fj:h-full", "fj:bg-transparent", "fj:outline-0", "fj:appearance-none", "fj:overflow-y-auto"), this.usertextarea.hasAttribute("placeholder") || (this.usertextarea.placeholder = this.options.placeholder || "Write your markdown...");
|
|
3888
|
+
this.usertextarea.id && document.querySelector(`label[for="${this.usertextarea.id}"]`) || this.usertextarea.getAttribute("aria-label") || this.usertextarea.getAttribute("aria-labelledby") || (this.usertextarea.setAttribute("aria-label", this.options.label || "Markdown editor"), this._addedAriaLabel = !0), this.usertextarea.classList.add("editor-textarea", "fj:focus:ring-0", "fj:focus:outline-0", "fj:border-0", "fj:border-base-soft", "fj:px-4", "fj:py-2", "fj:max-w-full", "fj:w-full", "fj:h-full", "fj:bg-transparent", "fj:outline-0", "fj:appearance-none", "fj:overflow-y-auto", "fj:resize-none"), this.usertextarea.hasAttribute("placeholder") || (this.usertextarea.placeholder = this.options.placeholder || "Write your markdown...");
|
|
3860
3889
|
}
|
|
3861
3890
|
buildEditorLayout() {
|
|
3862
3891
|
this.editorContainer = document.createElement("div"), this.editorContainer.className = "\n markdown-editor-wrapper\n fj:me-surface\n fj:me-surface-outline\n fj:me-surface-rounded\n fj:overflow-hidden\n fj:flex\n fj:flex-col\n ";
|
|
@@ -3865,10 +3894,10 @@ var Tr = class {
|
|
|
3865
3894
|
}
|
|
3866
3895
|
addTextareaWrapper() {
|
|
3867
3896
|
let e = document.createElement("div");
|
|
3868
|
-
e.className = "\n textarea-wrapper\n not-prose\n fj:me-surface\n fj:h-full\n fj:min-h-0\n fj:relative\n fj:grid\n ", this.mode == "hybrid" && (this.displayLayer = document.createElement("div"), this.displayLayer.setAttribute("data-placeholder", this.usertextarea.placeholder), this.displayLayer.setAttribute("aria-hidden", !0), this.displayLayer.className = "\n display-layer\n fj:px-4\n fj:py-2\n fj:whitespace-pre-wrap fj:wrap-break-word\n fj:pointer-events-none\n fj:absolute\n fj:inset-0\n fj:m-0\n fj:box-border\n fj:z-0\n fj:overflow-y-auto\n fj:empty:after:content-[attr(data-placeholder)]\n fj:empty:after:absolute\n fj:empty:after:inset-0\n fj:empty:after:px-4\n fj:empty:after:py-2\n fj:empty:after:text-[CanvasText]\n fj:empty:after:opacity-50\n ", this.usertextarea.className += "\n fj:text-transparent\n fj:caret-primary\n fj:
|
|
3897
|
+
e.className = "\n textarea-wrapper\n not-prose\n fj:me-surface\n fj:h-full\n fj:min-h-0\n fj:relative\n fj:grid\n ", this.mode == "hybrid" && (this.displayLayer = document.createElement("div"), this.displayLayer.setAttribute("data-placeholder", this.usertextarea.placeholder), this.displayLayer.setAttribute("aria-hidden", !0), this.displayLayer.className = "\n display-layer\n fj:px-4\n fj:py-2\n fj:whitespace-pre-wrap fj:wrap-break-word\n fj:pointer-events-none\n fj:absolute\n fj:inset-0\n fj:m-0\n fj:box-border\n fj:z-0\n fj:overflow-y-auto\n fj:empty:after:content-[attr(data-placeholder)]\n fj:empty:after:absolute\n fj:empty:after:inset-0\n fj:empty:after:px-4\n fj:empty:after:py-2\n fj:empty:after:text-[CanvasText]\n fj:empty:after:opacity-50\n ", this.usertextarea.className += "\n fj:text-transparent\n fj:caret-primary\n fj:outline-none\n fj:m-0\n fj:box-border\n fj:relative\n fj:z-10\n ", e.appendChild(this.displayLayer)), e.appendChild(this.usertextarea), this.markdownEditorDiv.appendChild(e);
|
|
3869
3898
|
}
|
|
3870
3899
|
addPreviewWrapper() {
|
|
3871
|
-
let e = new
|
|
3900
|
+
let e = new er(this.markdownEditorDiv);
|
|
3872
3901
|
this.previewContent = e.getPreviewContent();
|
|
3873
3902
|
}
|
|
3874
3903
|
addInputListener() {
|
|
@@ -3899,13 +3928,13 @@ var Tr = class {
|
|
|
3899
3928
|
"strikethrough"
|
|
3900
3929
|
]) {
|
|
3901
3930
|
let n = Object.create(this);
|
|
3902
|
-
return n.usertextarea = e, n.
|
|
3903
|
-
let { selectionStart: i, selectionEnd: a, value: o } = e;
|
|
3904
|
-
e.value = o.slice(0, i) + t + o.slice(a), e.focus(), e.setSelectionRange(i + n, i + t.length - r);
|
|
3905
|
-
}, new
|
|
3931
|
+
return n.usertextarea = e, n.render = () => {}, n.notifyChange = () => {}, n.insertText = (t, n = 0, r = 0) => {
|
|
3932
|
+
let { selectionStart: i, selectionEnd: a, value: o } = e, s = e.scrollTop;
|
|
3933
|
+
e.value = o.slice(0, i) + t + o.slice(a), e.focus(), e.setSelectionRange(i + n, i + t.length - r), e.scrollTop = s;
|
|
3934
|
+
}, new $n(n, t, { standalone: !0 }).toolbar;
|
|
3906
3935
|
}
|
|
3907
3936
|
_renderMarkdown(e) {
|
|
3908
|
-
let t = this.options.renderer ?? ((e) =>
|
|
3937
|
+
let t = this.options.renderer ?? ((e) => Mr.parse(e)), n = this.options.sanitizer ?? ((e) => On.sanitize(e)), r = Yn(e, this.variables), i = t(r);
|
|
3909
3938
|
return this.options.renderer && !this._taskListWarned && /^\s*[-*] \[[ xX]\] /m.test(r) && !/type=["']?checkbox/.test(i) && (this._taskListWarned = !0, console.warn("[MarkdownEditor] Task list syntax found, but the custom renderer emitted no checkboxes. Clickable checkboxes in the preview need a task-list plugin, e.g. markdown-it-task-lists.")), n(i);
|
|
3910
3939
|
}
|
|
3911
3940
|
wirePreviewCheckboxes() {
|
|
@@ -3927,10 +3956,10 @@ var Tr = class {
|
|
|
3927
3956
|
addFooter() {
|
|
3928
3957
|
if (!this.footerOptions) return;
|
|
3929
3958
|
let { line: e, col: t, chars: n, words: r } = this.footerOptions;
|
|
3930
|
-
(e || t || n || r) && (this.footer = new
|
|
3959
|
+
(e || t || n || r) && (this.footer = new tr(this.editorContainer, this.footerOptions), this.footer.update(this.usertextarea), this._footerUpdate = () => this.footer.update(this.usertextarea), this.usertextarea.addEventListener("input", this._footerUpdate), this.usertextarea.addEventListener("click", this._footerUpdate), this.usertextarea.addEventListener("keyup", this._footerUpdate), this.usertextarea.addEventListener("focus", this._footerUpdate));
|
|
3931
3960
|
}
|
|
3932
3961
|
addToolbar() {
|
|
3933
|
-
this.toolbarInstance = new
|
|
3962
|
+
this.toolbarInstance = new $n(this, this.options.toolbar || [
|
|
3934
3963
|
"undo",
|
|
3935
3964
|
"redo",
|
|
3936
3965
|
"heading",
|
|
@@ -3953,13 +3982,13 @@ var Tr = class {
|
|
|
3953
3982
|
]);
|
|
3954
3983
|
}
|
|
3955
3984
|
insertText(e, t = 0, n = 0) {
|
|
3956
|
-
let { selectionStart: r, selectionEnd: i } = this.usertextarea, a = this.usertextarea.value;
|
|
3957
|
-
this.usertextarea.value = `${a.substring(0, r)}${e}${a.substring(i)}`, this.usertextarea.focus(), this.usertextarea.setSelectionRange(r + t, r + e.length - n), this.
|
|
3985
|
+
let { selectionStart: r, selectionEnd: i } = this.usertextarea, a = this.usertextarea.value, o = this.usertextarea.scrollTop;
|
|
3986
|
+
this.usertextarea.value = `${a.substring(0, r)}${e}${a.substring(i)}`, this.usertextarea.focus(), this.usertextarea.setSelectionRange(r + t, r + e.length - n), this.render(), this.notifyChange(), this.restoreScroll(o);
|
|
3958
3987
|
}
|
|
3959
|
-
|
|
3960
|
-
|
|
3961
|
-
e.scrollTop = (r - Math.floor(i / 2)) * n;
|
|
3988
|
+
restoreScroll(e) {
|
|
3989
|
+
this.usertextarea.scrollTop = e;
|
|
3962
3990
|
}
|
|
3991
|
+
scrollToView() {}
|
|
3963
3992
|
_highlight(e) {
|
|
3964
3993
|
let t = e.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
|
|
3965
3994
|
return t = t.replace(/```(\w+)?\n([\s\S]*?)```/g, "<span class=\"fj:opacity-30\">```$1</span>\n$2<span class=\"fj:opacity-30\">```</span>").replace(/`([^`\n]+)`/g, "<span class=\"fj:opacity-40\">`</span><span class=\"fj:text-accent\">$1</span><span class=\"fj:opacity-40\">`</span>").replace(/^(#+ )(.*)$/gm, "<span class=\"fj:text-primary\"><span class=\"fj:opacity-40\">$1</span><span class=\"faux-bold\">$2</span></span>").replace(/\*\*(.*?)\*\*/g, "<span class=\"fj:text-secondary\"><span class=\"fj:opacity-40\">**</span><span class=\"faux-bold\">$1</span><span class=\"fj:opacity-40\">**</span></span>").replace(/^([\s]*)([\-\*] |[\d]+\. |\[[\s xX]\] )(.*)$/gm, "$1<span class=\"fj:text-primary\">$2</span>$3").replace(/(\*|_)(.*?)\1/g, "<span class=\"fj:text-accent\"><span class=\"fj:opacity-40\">$1</span>$2<span class=\"fj:opacity-40\">$1</span></span>").replace(/~~(.*?)~~/g, "<span class=\"fj:line-through fj:opacity-70\"><span class=\"fj:opacity-40\">~~</span>$1<span class=\"fj:opacity-40\">~~</span></span>").replace(/(?<!~)(~)([^~]+)\1(?!~)/g, "<span class=\"fj:line-through fj:opacity-70\"><span class=\"fj:opacity-40\">$1</span>$2<span class=\"fj:opacity-40\">$1</span></span>").replace(/(!?\[)(.*?)(\]\()(.*?)(\))/g, "<span class=\"fj:opacity-40\">$1</span><span class=\"fj:text-primary\">$2</span><span class=\"fj:opacity-40\">$3</span><span class=\"fj:underline fj:opacity-50\">$4</span><span class=\"fj:opacity-50\">$5</span>"), e.endsWith("\n") && (t += " "), t;
|
|
@@ -3980,13 +4009,13 @@ var Tr = class {
|
|
|
3980
4009
|
for (let e = 0; e < t.length; e++) t[e] !== n[e] && (this._lineNodes[e].innerHTML = t[e] + (e < t.length - 1 ? "\n" : ""), n[e] = t[e]);
|
|
3981
4010
|
}
|
|
3982
4011
|
_autoGrow() {
|
|
3983
|
-
if (this.editorContainer.classList.contains("is-fullscreen")) return;
|
|
4012
|
+
if (this.editorContainer.classList.contains("is-fullscreen") || (this._autoHeight !== void 0 && this.editorContainer.style.height !== this._autoHeight && (this._userResized = !0), this._userResized)) return;
|
|
3984
4013
|
let e = this.usertextarea;
|
|
3985
4014
|
e.style.height = "1px";
|
|
3986
4015
|
let t = e.scrollHeight;
|
|
3987
4016
|
e.style.height = "";
|
|
3988
|
-
let n = this.options.maxHeight ?? 500;
|
|
3989
|
-
|
|
4017
|
+
let n = this.options.maxHeight ?? 500, r = Math.min(t, n) + this._toolbarH + this._footerH + 1;
|
|
4018
|
+
Number.isFinite(r) && (this._autoHeight = r + "px", this.editorContainer.style.height = this._autoHeight);
|
|
3990
4019
|
}
|
|
3991
4020
|
notifyChange() {
|
|
3992
4021
|
this.options.onChange && this.options.onChange(this.usertextarea.value);
|
|
@@ -4023,8 +4052,8 @@ var Tr = class {
|
|
|
4023
4052
|
].forEach((e) => this.usertextarea.classList.remove(e)), this._addedAriaLabel && this.usertextarea.removeAttribute("aria-label"), this.usertextarea.style.height = "", e.insertBefore(this.usertextarea, this.editorContainer), this.editorContainer.remove());
|
|
4024
4053
|
}
|
|
4025
4054
|
};
|
|
4026
|
-
|
|
4055
|
+
Nr.Tool = Z, Nr.modal = In;
|
|
4027
4056
|
//#endregion
|
|
4028
|
-
export {
|
|
4057
|
+
export { Nr as default };
|
|
4029
4058
|
|
|
4030
4059
|
//# sourceMappingURL=markdown-text-editor.es.js.map
|