/* * Extracted from browser-delivered Turbopack chunk: 2a4e4dccbc3fdacb.bc4b655d5c.js * Module id: 999445 * For reading/searching only; this factory depends on the original Turbopack runtime. */ const moduleFactory = (e) => { "use strict"; var t = e.i(673654), n = (e, t) => { if ("slot" === e) return 0; if (e instanceof Function) return e(t); let { children: n, ...r } = null != t ? t : {}; if ("svg" === e) throw Error( "SVG elements are not supported in the JSX syntax, use the array syntax instead", ); return [e, r, n]; }, r = /^\s*>\s$/, i = t.Node.create({ name: "blockquote", addOptions: () => ({ HTMLAttributes: {} }), content: "block+", group: "block", defining: !0, parseHTML: () => [{ tag: "blockquote" }], renderHTML({ HTMLAttributes: e }) { return n("blockquote", { ...(0, t.mergeAttributes)(this.options.HTMLAttributes, e), children: n("slot", {}), }); }, parseMarkdown: (e, t) => t.createNode("blockquote", void 0, t.parseChildren(e.tokens || [])), renderMarkdown: (e, t) => { if (!e.content) return ""; let n = []; return ( e.content.forEach((e) => { let r = t .renderChildren([e]) .split("\n") .map((e) => ("" === e.trim() ? ">" : `> ${e}`)); n.push(r.join("\n")); }), n.join(` > `) ); }, addCommands() { return { setBlockquote: () => ({ commands: e }) => e.wrapIn(this.name), toggleBlockquote: () => ({ commands: e }) => e.toggleWrap(this.name), unsetBlockquote: () => ({ commands: e }) => e.lift(this.name), }; }, addKeyboardShortcuts() { return { "Mod-Shift-b": () => this.editor.commands.toggleBlockquote(), }; }, addInputRules() { return [(0, t.wrappingInputRule)({ find: r, type: this.type })]; }, }), o = /(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))$/, s = /(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))/g, l = /(?:^|\s)(__(?!\s+__)((?:[^_]+))__(?!\s+__))$/, a = /(?:^|\s)(__(?!\s+__)((?:[^_]+))__(?!\s+__))/g, d = t.Mark.create({ name: "bold", addOptions: () => ({ HTMLAttributes: {} }), parseHTML() { return [ { tag: "strong" }, { tag: "b", getAttrs: (e) => "normal" !== e.style.fontWeight && null, }, { style: "font-weight=400", clearMark: (e) => e.type.name === this.name, }, { style: "font-weight", getAttrs: (e) => /^(bold(er)?|[5-9]\d{2,})$/.test(e) && null, }, ]; }, renderHTML({ HTMLAttributes: e }) { return n("strong", { ...(0, t.mergeAttributes)(this.options.HTMLAttributes, e), children: n("slot", {}), }); }, markdownTokenName: "strong", parseMarkdown: (e, t) => t.applyMark("bold", t.parseInline(e.tokens || [])), renderMarkdown: (e, t) => `**${t.renderChildren(e)}**`, addCommands() { return { setBold: () => ({ commands: e }) => e.setMark(this.name), toggleBold: () => ({ commands: e }) => e.toggleMark(this.name), unsetBold: () => ({ commands: e }) => e.unsetMark(this.name), }; }, addKeyboardShortcuts() { return { "Mod-b": () => this.editor.commands.toggleBold(), "Mod-B": () => this.editor.commands.toggleBold(), }; }, addInputRules() { return [ (0, t.markInputRule)({ find: o, type: this.type }), (0, t.markInputRule)({ find: l, type: this.type }), ]; }, addPasteRules() { return [ (0, t.markPasteRule)({ find: s, type: this.type }), (0, t.markPasteRule)({ find: a, type: this.type }), ]; }, }), c = /(^|[^`])`([^`]+)`(?!`)$/, h = /(^|[^`])`([^`]+)`(?!`)/g, p = t.Mark.create({ name: "code", addOptions: () => ({ HTMLAttributes: {} }), excludes: "_", code: !0, exitable: !0, parseHTML: () => [{ tag: "code" }], renderHTML({ HTMLAttributes: e }) { return [ "code", (0, t.mergeAttributes)(this.options.HTMLAttributes, e), 0, ]; }, markdownTokenName: "codespan", parseMarkdown: (e, t) => t.applyMark("code", [{ type: "text", text: e.text || "" }]), renderMarkdown: (e, t) => e.content ? `\`${t.renderChildren(e.content)}\`` : "", addCommands() { return { setCode: () => ({ commands: e }) => e.setMark(this.name), toggleCode: () => ({ commands: e }) => e.toggleMark(this.name), unsetCode: () => ({ commands: e }) => e.unsetMark(this.name), }; }, addKeyboardShortcuts() { return { "Mod-e": () => this.editor.commands.toggleCode() }; }, addInputRules() { return [(0, t.markInputRule)({ find: c, type: this.type })]; }, addPasteRules() { return [(0, t.markPasteRule)({ find: h, type: this.type })]; }, }); e.i(608469); var u = e.i(111092), f = /^```([a-z]+)?[\s\n]$/, m = /^~~~([a-z]+)?[\s\n]$/, g = t.Node.create({ name: "codeBlock", addOptions: () => ({ languageClassPrefix: "language-", exitOnTripleEnter: !0, exitOnArrowDown: !0, defaultLanguage: null, enableTabIndentation: !1, tabSize: 4, HTMLAttributes: {}, }), content: "text*", marks: "", group: "block", code: !0, defining: !0, addAttributes() { return { language: { default: this.options.defaultLanguage, parseHTML: (e) => { var t; let { languageClassPrefix: n } = this.options; if (!n) return null; let r = [ ...((null == (t = e.firstElementChild) ? void 0 : t.classList) || []), ] .filter((e) => e.startsWith(n)) .map((e) => e.replace(n, ""))[0]; return r || null; }, rendered: !1, }, }; }, parseHTML: () => [{ tag: "pre", preserveWhitespace: "full" }], renderHTML({ node: e, HTMLAttributes: n }) { return [ "pre", (0, t.mergeAttributes)(this.options.HTMLAttributes, n), [ "code", { class: e.attrs.language ? this.options.languageClassPrefix + e.attrs.language : null, }, 0, ], ]; }, markdownTokenName: "code", parseMarkdown: (e, t) => { var n; return (null == (n = e.raw) ? void 0 : n.startsWith("```")) === !1 && "indented" !== e.codeBlockStyle ? [] : t.createNode( "codeBlock", { language: e.lang || null }, e.text ? [t.createTextNode(e.text)] : [], ); }, renderMarkdown: (e, t) => { var n; let r = (null == (n = e.attrs) ? void 0 : n.language) || ""; return e.content ? [`\`\`\`${r}`, t.renderChildren(e.content), "```"].join("\n") : `\`\`\`${r} \`\`\``; }, addCommands() { return { setCodeBlock: (e) => ({ commands: t }) => t.setNode(this.name, e), toggleCodeBlock: (e) => ({ commands: t }) => t.toggleNode(this.name, "paragraph", e), }; }, addKeyboardShortcuts() { return { "Mod-Alt-c": () => this.editor.commands.toggleCodeBlock(), Backspace: () => { let { empty: e, $anchor: t } = this.editor.state.selection, n = 1 === t.pos; return ( !!e && t.parent.type.name === this.name && (!!n || !t.parent.textContent.length) && this.editor.commands.clearNodes() ); }, Tab: ({ editor: e }) => { var t; if (!this.options.enableTabIndentation) return !1; let n = null != (t = this.options.tabSize) ? t : 4, { state: r } = e, { selection: i } = r, { $from: o, empty: s } = i; if (o.parent.type !== this.type) return !1; let l = " ".repeat(n); return s ? e.commands.insertContent(l) : e.commands.command(({ tr: e }) => { let { from: t, to: n } = i, o = r.doc .textBetween(t, n, "\n", "\n") .split("\n") .map((e) => l + e) .join("\n"); return e.replaceWith(t, n, r.schema.text(o)), !0; }); }, "Shift-Tab": ({ editor: e }) => { var t; if (!this.options.enableTabIndentation) return !1; let n = null != (t = this.options.tabSize) ? t : 4, { state: r } = e, { selection: i } = r, { $from: o, empty: s } = i; return ( o.parent.type === this.type && (s ? e.commands.command(({ tr: e }) => { var t; let { pos: i } = o, s = o.start(), l = o.end(), a = r.doc.textBetween(s, l, "\n", "\n").split("\n"), d = 0, c = 0, h = i - s; for (let e = 0; e < a.length; e += 1) { if (c + a[e].length >= h) { d = e; break; } c += a[e].length + 1; } let p = Math.min( ( (null == (t = a[d].match(/^ */)) ? void 0 : t[0]) || "" ).length, n, ); if (0 === p) return !0; let f = s; for (let e = 0; e < d; e += 1) f += a[e].length + 1; return ( e.delete(f, f + p), i - f <= p && e.setSelection(u.TextSelection.create(e.doc, f)), !0 ); }) : e.commands.command(({ tr: e }) => { let { from: t, to: o } = i, s = r.doc .textBetween(t, o, "\n", "\n") .split("\n") .map((e) => { var t; let r = Math.min( ( (null == (t = e.match(/^ */)) ? void 0 : t[0]) || "" ).length, n, ); return e.slice(r); }) .join("\n"); return e.replaceWith(t, o, r.schema.text(s)), !0; })) ); }, Enter: ({ editor: e }) => { if (!this.options.exitOnTripleEnter) return !1; let { state: t } = e, { selection: n } = t, { $from: r, empty: i } = n; if (!i || r.parent.type !== this.type) return !1; let o = r.parentOffset === r.parent.nodeSize - 2, s = r.parent.textContent.endsWith("\n\n"); return ( !!o && !!s && e .chain() .command(({ tr: e }) => (e.delete(r.pos - 2, r.pos), !0)) .exitCode() .run() ); }, ArrowDown: ({ editor: e }) => { if (!this.options.exitOnArrowDown) return !1; let { state: t } = e, { selection: n, doc: r } = t, { $from: i, empty: o } = n; if ( !o || i.parent.type !== this.type || i.parentOffset !== i.parent.nodeSize - 2 ) return !1; let s = i.after(); return ( void 0 !== s && (r.nodeAt(s) ? e.commands.command( ({ tr: e }) => ( e.setSelection(u.Selection.near(r.resolve(s))), !0 ), ) : e.commands.exitCode()) ); }, }; }, addInputRules() { return [ (0, t.textblockTypeInputRule)({ find: f, type: this.type, getAttributes: (e) => ({ language: e[1] }), }), (0, t.textblockTypeInputRule)({ find: m, type: this.type, getAttributes: (e) => ({ language: e[1] }), }), ]; }, addProseMirrorPlugins() { return [ new u.Plugin({ key: new u.PluginKey("codeBlockVSCodeHandler"), props: { handlePaste: (e, t) => { if (!t.clipboardData || this.editor.isActive(this.type.name)) return !1; let n = t.clipboardData.getData("text/plain"), r = t.clipboardData.getData("vscode-editor-data"), i = r ? JSON.parse(r) : void 0, o = null == i ? void 0 : i.mode; if (!n || !o) return !1; let { tr: s, schema: l } = e.state, a = l.text(n.replace(/\r\n?/g, "\n")); return ( s.replaceSelectionWith( this.type.create({ language: o }, a), ), s.selection.$from.parent.type !== this.type && s.setSelection( u.TextSelection.near( s.doc.resolve(Math.max(0, s.selection.from - 2)), ), ), s.setMeta("paste", !0), e.dispatch(s), !0 ); }, }, }), ]; }, }), y = t.Node.create({ name: "doc", topNode: !0, content: "block+", renderMarkdown: (e, t) => e.content ? t.renderChildren(e.content, "\n\n") : "", }), b = t.Node.create({ name: "hardBreak", markdownTokenName: "br", addOptions: () => ({ keepMarks: !0, HTMLAttributes: {} }), inline: !0, group: "inline", selectable: !1, linebreakReplacement: !0, parseHTML: () => [{ tag: "br" }], renderHTML({ HTMLAttributes: e }) { return ["br", (0, t.mergeAttributes)(this.options.HTMLAttributes, e)]; }, renderText: () => "\n", renderMarkdown: () => ` `, parseMarkdown: () => ({ type: "hardBreak" }), addCommands() { return { setHardBreak: () => ({ commands: e, chain: t, state: n, editor: r }) => e.first([ () => e.exitCode(), () => e.command(() => { let { selection: e, storedMarks: i } = n; if (e.$from.parent.type.spec.isolating) return !1; let { keepMarks: o } = this.options, { splittableMarks: s } = r.extensionManager, l = i || (e.$to.parentOffset && e.$from.marks()); return t() .insertContent({ type: this.name }) .command(({ tr: e, dispatch: t }) => { if (t && l && o) { let t = l.filter((e) => s.includes(e.type.name)); e.ensureMarks(t); } return !0; }) .run(); }), ]), }; }, addKeyboardShortcuts() { return { "Mod-Enter": () => this.editor.commands.setHardBreak(), "Shift-Enter": () => this.editor.commands.setHardBreak(), }; }, }), k = t.Node.create({ name: "heading", addOptions: () => ({ levels: [1, 2, 3, 4, 5, 6], HTMLAttributes: {} }), content: "inline*", group: "block", defining: !0, addAttributes: () => ({ level: { default: 1, rendered: !1 } }), parseHTML() { return this.options.levels.map((e) => ({ tag: `h${e}`, attrs: { level: e }, })); }, renderHTML({ node: e, HTMLAttributes: n }) { let r = this.options.levels.includes(e.attrs.level) ? e.attrs.level : this.options.levels[0]; return [ `h${r}`, (0, t.mergeAttributes)(this.options.HTMLAttributes, n), 0, ]; }, parseMarkdown: (e, t) => t.createNode( "heading", { level: e.depth || 1 }, t.parseInline(e.tokens || []), ), renderMarkdown: (e, t) => { var n; let r = (null == (n = e.attrs) ? void 0 : n.level) ? parseInt(e.attrs.level, 10) : 1, i = "#".repeat(r); return e.content ? `${i} ${t.renderChildren(e.content)}` : ""; }, addCommands() { return { setHeading: (e) => ({ commands: t }) => !!this.options.levels.includes(e.level) && t.setNode(this.name, e), toggleHeading: (e) => ({ commands: t }) => !!this.options.levels.includes(e.level) && t.toggleNode(this.name, "paragraph", e), }; }, addKeyboardShortcuts() { return this.options.levels.reduce( (e, t) => ({ ...e, ...{ [`Mod-Alt-${t}`]: () => this.editor.commands.toggleHeading({ level: t }), }, }), {}, ); }, addInputRules() { return this.options.levels.map((e) => (0, t.textblockTypeInputRule)({ find: RegExp( `^(#{${Math.min(...this.options.levels)},${e}})\\s$`, ), type: this.type, getAttributes: { level: e }, }), ); }, }), v = t.Node.create({ name: "horizontalRule", addOptions: () => ({ HTMLAttributes: {}, nextNodeType: "paragraph" }), group: "block", parseHTML: () => [{ tag: "hr" }], renderHTML({ HTMLAttributes: e }) { return ["hr", (0, t.mergeAttributes)(this.options.HTMLAttributes, e)]; }, markdownTokenName: "hr", parseMarkdown: (e, t) => t.createNode("horizontalRule"), renderMarkdown: () => "---", addCommands() { return { setHorizontalRule: () => ({ chain: e, state: n }) => { if (!(0, t.canInsertNode)(n, n.schema.nodes[this.name])) return !1; let { selection: r } = n, { $to: i } = r, o = e(); return ( (0, t.isNodeSelection)(r) ? o.insertContentAt(i.pos, { type: this.name }) : o.insertContent({ type: this.name }), o .command(({ state: e, tr: t, dispatch: n }) => { if (n) { let { $to: n } = t.selection, r = n.end(); if (n.nodeAfter) n.nodeAfter.isTextblock ? t.setSelection( u.TextSelection.create(t.doc, n.pos + 1), ) : n.nodeAfter.isBlock ? t.setSelection( u.NodeSelection.create(t.doc, n.pos), ) : t.setSelection( u.TextSelection.create(t.doc, n.pos), ); else { let i = e.schema.nodes[this.options.nextNodeType] || n.parent.type.contentMatch.defaultType, o = null == i ? void 0 : i.create(); o && (t.insert(r, o), t.setSelection( u.TextSelection.create(t.doc, r + 1), )); } t.scrollIntoView(); } return !0; }) .run() ); }, }; }, addInputRules() { return [ (0, t.nodeInputRule)({ find: /^(?:---|—-|___\s|\*\*\*\s)$/, type: this.type, }), ]; }, }), w = /(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))$/, S = /(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))/g, x = /(?:^|\s)(_(?!\s+_)((?:[^_]+))_(?!\s+_))$/, M = /(?:^|\s)(_(?!\s+_)((?:[^_]+))_(?!\s+_))/g, C = t.Mark.create({ name: "italic", addOptions: () => ({ HTMLAttributes: {} }), parseHTML() { return [ { tag: "em" }, { tag: "i", getAttrs: (e) => "normal" !== e.style.fontStyle && null, }, { style: "font-style=normal", clearMark: (e) => e.type.name === this.name, }, { style: "font-style=italic" }, ]; }, renderHTML({ HTMLAttributes: e }) { return [ "em", (0, t.mergeAttributes)(this.options.HTMLAttributes, e), 0, ]; }, addCommands() { return { setItalic: () => ({ commands: e }) => e.setMark(this.name), toggleItalic: () => ({ commands: e }) => e.toggleMark(this.name), unsetItalic: () => ({ commands: e }) => e.unsetMark(this.name), }; }, markdownTokenName: "em", parseMarkdown: (e, t) => t.applyMark("italic", t.parseInline(e.tokens || [])), renderMarkdown: (e, t) => `*${t.renderChildren(e)}*`, addKeyboardShortcuts() { return { "Mod-i": () => this.editor.commands.toggleItalic(), "Mod-I": () => this.editor.commands.toggleItalic(), }; }, addInputRules() { return [ (0, t.markInputRule)({ find: w, type: this.type }), (0, t.markInputRule)({ find: x, type: this.type }), ]; }, addPasteRules() { return [ (0, t.markPasteRule)({ find: S, type: this.type }), (0, t.markPasteRule)({ find: M, type: this.type }), ]; }, }); let T = "numeric", N = "ascii", E = "alpha", O = "asciinumeric", A = "alphanumeric", D = "domain", R = "emoji", I = "whitespace"; function P(e, t, n) { for (let r in (t[T] && ((t[O] = !0), (t[A] = !0)), t[N] && ((t[O] = !0), (t[E] = !0)), t[O] && (t[A] = !0), t[E] && (t[A] = !0), t[A] && (t[D] = !0), t[R] && (t[D] = !0), t)) { let t = (r in n || (n[r] = []), n[r]); 0 > t.indexOf(e) && t.push(e); } } function L(e = null) { (this.j = {}), (this.jr = []), (this.jd = null), (this.t = e); } (L.groups = {}), (L.prototype = { accepts() { return !!this.t; }, go(e) { let t = this.j[e]; if (t) return t; for (let t = 0; t < this.jr.length; t++) { let n = this.jr[t][0], r = this.jr[t][1]; if (r && n.test(e)) return r; } return this.jd; }, has(e, t = !1) { return t ? e in this.j : !!this.go(e); }, ta(e, t, n, r) { for (let i = 0; i < e.length; i++) this.tt(e[i], t, n, r); }, tr(e, t, n, r) { let i; return ( (r = r || L.groups), t && t.j ? (i = t) : ((i = new L(t)), n && r && P(t, n, r)), this.jr.push([e, i]), i ); }, ts(e, t, n, r) { let i = this, o = e.length; if (!o) return i; for (let t = 0; t < o - 1; t++) i = i.tt(e[t]); return i.tt(e[o - 1], t, n, r); }, tt(e, t, n, r) { if (((r = r || L.groups), t && t.j)) return (this.j[e] = t), t; let i, o = this.go(e); return ( o ? (Object.assign((i = new L()).j, o.j), i.jr.push.apply(i.jr, o.jr), (i.jd = o.jd), (i.t = o.t)) : (i = new L()), t && (r && (i.t && "string" == typeof i.t ? P( t, Object.assign( (function (e, t) { let n = {}; for (let r in t) t[r].indexOf(e) >= 0 && (n[r] = !0); return n; })(i.t, r), n, ), r, ) : n && P(t, n, r)), (i.t = t)), (this.j[e] = i), i ); }, }); let z = (e, t, n, r, i) => e.ta(t, n, r, i), B = (e, t, n, r, i) => e.tr(t, n, r, i), $ = (e, t, n, r, i) => e.ts(t, n, r, i), j = (e, t, n, r, i) => e.tt(t, n, r, i), F = "WORD", V = "UWORD", H = "ASCIINUMERICAL", W = "ALPHANUMERICAL", _ = "LOCALHOST", q = "UTLD", K = "SCHEME", U = "SLASH_SCHEME", J = "OPENBRACE", G = "CLOSEBRACE", Y = "OPENBRACKET", Q = "CLOSEBRACKET", X = "OPENPAREN", Z = "CLOSEPAREN", ee = "OPENANGLEBRACKET", et = "CLOSEANGLEBRACKET", en = "FULLWIDTHLEFTPAREN", er = "FULLWIDTHRIGHTPAREN", ei = "LEFTCORNERBRACKET", eo = "RIGHTCORNERBRACKET", es = "LEFTWHITECORNERBRACKET", el = "RIGHTWHITECORNERBRACKET", ea = "FULLWIDTHLESSTHAN", ed = "FULLWIDTHGREATERTHAN", ec = "AMPERSAND", eh = "APOSTROPHE", ep = "ASTERISK", eu = "BACKSLASH", ef = "BACKTICK", em = "CARET", eg = "COLON", ey = "COMMA", eb = "DOLLAR", ek = "EQUALS", ev = "EXCLAMATION", ew = "HYPHEN", eS = "PERCENT", ex = "PIPE", eM = "PLUS", eC = "POUND", eT = "QUERY", eN = "QUOTE", eE = "FULLWIDTHMIDDLEDOT", eO = "SEMI", eA = "SLASH", eD = "TILDE", eR = "UNDERSCORE", eI = "EMOJI"; var eP = Object.freeze({ __proto__: null, ALPHANUMERICAL: W, AMPERSAND: ec, APOSTROPHE: eh, ASCIINUMERICAL: H, ASTERISK: ep, AT: "AT", BACKSLASH: eu, BACKTICK: ef, CARET: em, CLOSEANGLEBRACKET: et, CLOSEBRACE: G, CLOSEBRACKET: Q, CLOSEPAREN: Z, COLON: eg, COMMA: ey, DOLLAR: eb, DOT: "DOT", EMOJI: eI, EQUALS: ek, EXCLAMATION: ev, FULLWIDTHGREATERTHAN: ed, FULLWIDTHLEFTPAREN: en, FULLWIDTHLESSTHAN: ea, FULLWIDTHMIDDLEDOT: eE, FULLWIDTHRIGHTPAREN: er, HYPHEN: ew, LEFTCORNERBRACKET: ei, LEFTWHITECORNERBRACKET: es, LOCALHOST: _, NL: "NL", NUM: "NUM", OPENANGLEBRACKET: ee, OPENBRACE: J, OPENBRACKET: Y, OPENPAREN: X, PERCENT: eS, PIPE: ex, PLUS: eM, POUND: eC, QUERY: eT, QUOTE: eN, RIGHTCORNERBRACKET: eo, RIGHTWHITECORNERBRACKET: el, SCHEME: K, SEMI: eO, SLASH: eA, SLASH_SCHEME: U, SYM: "SYM", TILDE: eD, TLD: "TLD", UNDERSCORE: eR, UTLD: q, UWORD: V, WORD: F, WS: "WS", }); let eL = /[a-z]/, ez = /\p{L}/u, eB = /\p{Emoji}/u, e$ = /\d/, ej = /\s/, eF = null, eV = null; function eH(e, t) { let n = (function (e) { let t = [], n = e.length, r = 0; for (; r < n; ) { let i, o = e.charCodeAt(r), s = o < 55296 || o > 56319 || r + 1 === n || (i = e.charCodeAt(r + 1)) < 56320 || i > 57343 ? e[r] : e.slice(r, r + 2); t.push(s), (r += s.length); } return t; })(t.replace(/[A-Z]/g, (e) => e.toLowerCase())), r = n.length, i = [], o = 0, s = 0; for (; s < r; ) { let l = e, a = null, d = 0, c = null, h = -1, p = -1; for (; s < r && (a = l.go(n[s])); ) (l = a).accepts() ? ((h = 0), (p = 0), (c = l)) : h >= 0 && ((h += n[s].length), p++), (d += n[s].length), (o += n[s].length), s++; (o -= h), (s -= p), (d -= h), i.push({ t: c.t, v: t.slice(o - d, o), s: o - d, e: o }); } return i; } function eW(e, t, n, r, i) { let o, s = t.length; for (let n = 0; n < s - 1; n++) { let s = t[n]; e.j[s] ? (o = e.j[s]) : (((o = new L(r)).jr = i.slice()), (e.j[s] = o)), (e = o); } return ((o = new L(n)).jr = i.slice()), (e.j[t[s - 1]] = o), o; } function e_(e) { let t = [], n = [], r = 0; for (; r < e.length; ) { let i = 0; for (; "0123456789".indexOf(e[r + i]) >= 0; ) i++; if (i > 0) { t.push(n.join("")); for (let t = parseInt(e.substring(r, r + i), 10); t > 0; t--) n.pop(); r += i; } else n.push(e[r]), r++; } return t; } let eq = { defaultProtocol: "http", events: null, format: eU, formatHref: eU, nl2br: !1, tagName: "a", target: null, rel: null, validate: !0, truncate: 1 / 0, className: null, attributes: null, ignoreTags: [], render: null, }; function eK(e, t = null) { let n = Object.assign({}, eq); e && (n = Object.assign(n, e instanceof eK ? e.o : e)); let r = n.ignoreTags, i = []; for (let e = 0; e < r.length; e++) i.push(r[e].toUpperCase()); (this.o = n), t && (this.defaultRender = t), (this.ignoreTags = i); } function eU(e) { return e; } function eJ(e, t) { (this.t = "token"), (this.v = e), (this.tk = t); } function eG(e, t) { class n extends eJ { constructor(t, n) { super(t, n), (this.t = e); } } for (let e in t) n.prototype[e] = t[e]; return (n.t = e), n; } (eK.prototype = { o: eq, ignoreTags: [], defaultRender: (e) => e, check(e) { return this.get("validate", e.toString(), e); }, get(e, t, n) { let r = null != t, i = this.o[e]; return ( i && ("object" == typeof i ? "function" == typeof (i = n.t in i ? i[n.t] : eq[e]) && r && (i = i(t, n)) : "function" == typeof i && r && (i = i(t, n.t, n))), i ); }, getObj(e, t, n) { let r = this.o[e]; return "function" == typeof r && null != t && (r = r(t, n.t, n)), r; }, render(e) { let t = e.render(this); return (this.get("render", null, e) || this.defaultRender)(t, e.t, e); }, }), (eJ.prototype = { isLink: !1, toString() { return this.v; }, toHref(e) { return this.toString(); }, toFormattedString(e) { let t = this.toString(), n = e.get("truncate", t, this), r = e.get("format", t, this); return n && r.length > n ? r.substring(0, n) + "…" : r; }, toFormattedHref(e) { return e.get( "formatHref", this.toHref(e.get("defaultProtocol")), this, ); }, startIndex() { return this.tk[0].s; }, endIndex() { return this.tk[this.tk.length - 1].e; }, toObject(e = eq.defaultProtocol) { return { type: this.t, value: this.toString(), isLink: this.isLink, href: this.toHref(e), start: this.startIndex(), end: this.endIndex(), }; }, toFormattedObject(e) { return { type: this.t, value: this.toFormattedString(e), isLink: this.isLink, href: this.toFormattedHref(e), start: this.startIndex(), end: this.endIndex(), }; }, validate(e) { return e.get("validate", this.toString(), this); }, render(e) { let t = this.toHref(e.get("defaultProtocol")), n = e.get("formatHref", t, this), r = e.get("tagName", t, this), i = this.toFormattedString(e), o = {}, s = e.get("className", t, this), l = e.get("target", t, this), a = e.get("rel", t, this), d = e.getObj("attributes", t, this), c = e.getObj("events", t, this); return ( (o.href = n), s && (o.class = s), l && (o.target = l), a && (o.rel = a), d && Object.assign(o, d), { tagName: r, attributes: o, content: i, eventListeners: c } ); }, }); let eY = eG("email", { isLink: !0, toHref() { return "mailto:" + this.toString(); }, }), eQ = eG("text"), eX = eG("nl"), eZ = eG("url", { isLink: !0, toHref(e = eq.defaultProtocol) { return this.hasProtocol() ? this.v : `${e}://${this.v}`; }, hasProtocol() { let e = this.tk; return e.length >= 2 && e[0].t !== _ && e[1].t === eg; }, }), e0 = (e) => new L(e); function e1(e, t, n) { let r = n[0].s, i = n[n.length - 1].e; return new e(t.slice(r, i), n); } let e2 = ("u" > typeof console && console && console.warn) || (() => {}), e3 = { scanner: null, parser: null, tokenQueue: [], pluginQueue: [], customSchemes: [], initialized: !1, }; function e4(e, t = !1) { if ( (e3.initialized && e2( `linkifyjs: already initialized - will not register custom scheme "${e}" until manual call of linkify.init(). Register all schemes and plugins before invoking linkify the first time.`, ), !/^[0-9a-z]+(-[0-9a-z]+)*$/.test(e)) ) throw Error(`linkifyjs: incorrect scheme format. 1. Must only contain digits, lowercase ASCII letters or "-" 2. Cannot start or end with "-" 3. "-" cannot repeat`); e3.customSchemes.push([e, t]); } function e5(e) { return ( e3.initialized || (function () { e3.scanner = (function (e = []) { let t = {}; L.groups = t; let n = new L(); null == eF && (eF = e_( "aaa1rp3bb0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4w0s2x0a2z0ure5ba0by2idu3namex4d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re3c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y3k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking4l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dad1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3nlop4pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t1u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d1tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2o0dyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0els3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6properties14fh2g1h1i0a1ds2m1ndle4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3nd0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4k2ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rckmsd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic4v1w1x1y1z2na0b1goya4me2vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rton4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0axi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0stone5umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp3ell3ia1ksha5oes2p0ping5uji3w3i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5mögensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lvo3te1ing3o2yage5u2wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2olterskluwer11odside6rk0s2ld3w2s1tc1f3xbox3erox4ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2", )), null == eV && (eV = e_( "ελ1υ2бг1ел3дети4ею2католик6ом3мкд2он1сква6онлайн5рг3рус2ф2сайт3рб3укр3қаз3հայ3ישראל5קום3ابوظبي5رامكو5لاردن4بحرين5جزائر5سعودية6عليان5مغرب5مارات5یران5بارت2زار4يتك3ھارت5تونس4سودان3رية5شبكة4عراق2ب2مان4فلسطين6قطر3كاثوليك6وم3مصر2ليسيا5وريتانيا7قع4همراه5پاکستان7ڀارت4कॉम3नेट3भारत0म्3ोत5संगठन5বাংলা5ভারত2ৰত4ਭਾਰਤ4ભારત4ଭାରତ4இந்தியா6லங்கை6சிங்கப்பூர்11భారత్5ಭಾರತ4ഭാരതം5ලංකා4คอม3ไทย3ລາວ3გე2みんな3アマゾン4クラウド4グーグル4コム2ストア3セール3ファッション6ポイント4世界2中信1国1國1文网3亚马逊3企业2佛山2信息2健康2八卦2公司1益2台湾1灣2商城1店1标2嘉里0大酒店5在线2大拿2天主教3娱乐2家電2广东2微博2慈善2我爱你3手机2招聘2政务1府2新加坡2闻2时尚2書籍2机构2淡马锡3游戏2澳門2点看2移动2组织机构4网址1店1站1络2联通2谷歌2购物2通販2集团2電訊盈科4飞利浦3食品2餐厅2香格里拉3港2닷넷1컴2삼성2한국2", )), j(n, "'", eh), j(n, "{", J), j(n, "}", G), j(n, "[", Y), j(n, "]", Q), j(n, "(", X), j(n, ")", Z), j(n, "<", ee), j(n, ">", et), j(n, "(", en), j(n, ")", er), j(n, "「", ei), j(n, "」", eo), j(n, "『", es), j(n, "』", el), j(n, "<", ea), j(n, ">", ed), j(n, "&", ec), j(n, "*", ep), j(n, "@", "AT"), j(n, "`", ef), j(n, "^", em), j(n, ":", eg), j(n, ",", ey), j(n, "$", eb), j(n, ".", "DOT"), j(n, "=", ek), j(n, "!", ev), j(n, "-", ew), j(n, "%", eS), j(n, "|", ex), j(n, "+", eM), j(n, "#", eC), j(n, "?", eT), j(n, '"', eN), j(n, "/", eA), j(n, ";", eO), j(n, "~", eD), j(n, "_", eR), j(n, "\\", eu), j(n, "・", eE); let r = B(n, e$, "NUM", { [T]: !0 }); B(r, e$, r); let i = B(r, eL, H, { [O]: !0 }), o = B(r, ez, W, { [A]: !0 }), s = B(n, eL, F, { [N]: !0 }); B(s, e$, i), B(s, eL, s), B(i, e$, i), B(i, eL, i); let l = B(n, ez, V, { [E]: !0 }); B(l, eL), B(l, e$, o), B(l, ez, l), B(o, e$, o), B(o, eL), B(o, ez, o); let a = j(n, "\n", "NL", { [I]: !0 }), d = j(n, "\r", "WS", { [I]: !0 }), c = B(n, ej, "WS", { [I]: !0 }); j(n, "", c), j(d, "\n", a), j(d, "", c), B(d, ej, c), j(c, "\r"), j(c, "\n"), B(c, ej, c), j(c, "", c); let h = B(n, eB, eI, { [R]: !0 }); j(h, "#"), B(h, eB, h), j(h, "️", h); let p = j(h, "‍"); j(p, "#"), B(p, eB, h); let u = [ [eL, s], [e$, i], ], f = [ [eL, null], [ez, l], [e$, o], ]; for (let e = 0; e < eF.length; e++) eW(n, eF[e], "TLD", F, u); for (let e = 0; e < eV.length; e++) eW(n, eV[e], q, V, f); P("TLD", { tld: !0, ascii: !0 }, t), P(q, { utld: !0, alpha: !0 }, t), eW(n, "file", K, F, u), eW(n, "mailto", K, F, u), eW(n, "http", U, F, u), eW(n, "https", U, F, u), eW(n, "ftp", U, F, u), eW(n, "ftps", U, F, u), P(K, { scheme: !0, ascii: !0 }, t), P(U, { slashscheme: !0, ascii: !0 }, t), (e = e.sort((e, t) => (e[0] > t[0] ? 1 : -1))); for (let t = 0; t < e.length; t++) { let r = e[t][0], i = e[t][1] ? { scheme: !0 } : { slashscheme: !0 }; r.indexOf("-") >= 0 ? (i[D] = !0) : eL.test(r) ? e$.test(r) ? (i[O] = !0) : (i[N] = !0) : (i[T] = !0), $(n, r, r, i); } return ( $(n, "localhost", _, { ascii: !0 }), (n.jd = new L("SYM")), { start: n, tokens: Object.assign({ groups: t }, eP) } ); })(e3.customSchemes); for (let e = 0; e < e3.tokenQueue.length; e++) e3.tokenQueue[e][1]({ scanner: e3.scanner }); e3.parser = (function ({ groups: e }) { let t = e.domain.concat([ ec, ep, "AT", eu, ef, em, eb, ek, ew, "NUM", eS, ex, eM, eC, eA, "SYM", eD, eR, ]), n = [ eh, eg, ey, "DOT", ev, eS, eT, eN, eO, ee, et, J, G, Q, Y, X, Z, en, er, ei, eo, es, el, ea, ed, ], r = [ ec, eh, ep, eu, ef, em, eb, ek, ew, J, G, eS, ex, eM, eC, eT, eA, "SYM", eD, eR, ], i = e0(), o = j(i, eD); z(o, r, o), z(o, e.domain, o); let s = e0(), l = e0(), a = e0(); z(i, e.domain, s), z(i, e.scheme, l), z(i, e.slashscheme, a), z(s, r, o), z(s, e.domain, s); let d = j(s, "AT"); j(o, "AT", d), j(l, "AT", d), j(a, "AT", d); let c = j(o, "DOT"); z(c, r, o), z(c, e.domain, o); let h = e0(); z(d, e.domain, h), z(h, e.domain, h); let p = j(h, "DOT"); z(p, e.domain, h); let u = e0(eY); z(p, e.tld, u), z(p, e.utld, u), j(d, _, u); let f = j(h, ew); j(f, ew, f), z(f, e.domain, h), z(u, e.domain, h), j(u, "DOT", p), j(u, ew, f), z(j(u, eg), e.numeric, eY); let m = j(s, ew), g = j(s, "DOT"); j(m, ew, m), z(m, e.domain, s), z(g, r, o), z(g, e.domain, s); let y = e0(eZ); z(g, e.tld, y), z(g, e.utld, y), z(y, e.domain, s), z(y, r, o), j(y, "DOT", g), j(y, ew, m), j(y, "AT", d); let b = j(y, eg), k = e0(eZ); z(b, e.numeric, k); let v = e0(eZ), w = e0(); z(v, t, v), z(v, n, w), z(w, t, v), z(w, n, w), j(y, eA, v), j(k, eA, v); let S = j(l, eg), x = j(a, eg), M = j(x, eA), C = j(M, eA); z(l, e.domain, s), j(l, "DOT", g), j(l, ew, m), z(a, e.domain, s), j(a, "DOT", g), j(a, ew, m), z(S, e.domain, v), j(S, eA, v), j(S, eT, v), z(C, e.domain, v), z(C, t, v), j(C, eA, v); let T = [ [J, G], [Y, Q], [X, Z], [ee, et], [en, er], [ei, eo], [es, el], [ea, ed], ]; for (let e = 0; e < T.length; e++) { let [r, i] = T[e], o = j(v, r); j(w, r, o), j(o, i, v); let s = e0(eZ); z(o, t, s); let l = e0(); z(o, n), z(s, t, s), z(s, n, l), z(l, t, s), z(l, n, l), j(s, i, v), j(l, i, v); } return j(i, _, y), j(i, "NL", eX), { start: i, tokens: eP }; })(e3.scanner.tokens); for (let e = 0; e < e3.pluginQueue.length; e++) e3.pluginQueue[e][1]({ scanner: e3.scanner, parser: e3.parser }); e3.initialized = !0; })(), (function (e, t, n) { let r = n.length, i = 0, o = [], s = []; for (; i < r; ) { let l = e, a = null, d = null, c = 0, h = null, p = -1; for (; i < r && !(a = l.go(n[i].t)); ) s.push(n[i++]); for (; i < r && (d = a || l.go(n[i].t)); ) (a = null), (l = d).accepts() ? ((p = 0), (h = l)) : p >= 0 && p++, i++, c++; if (p < 0) (i -= c) < r && (s.push(n[i]), i++); else { s.length > 0 && (o.push(e1(eQ, t, s)), (s = [])), (i -= p), (c -= p); let e = h.t, r = n.slice(i - c, i); o.push(e1(e, t, r)); } } return s.length > 0 && o.push(e1(eQ, t, s)), o; })(e3.parser.start, e, eH(e3.scanner.start, e)) ); } function e6(e, t = null, n = null) { if (t && "object" == typeof t) { if (n) throw Error(`linkifyjs: Invalid link type ${t}; must be a string`); (n = t), (t = null); } let r = new eK(n), i = e5(e), o = []; for (let e = 0; e < i.length; e++) { let n = i[e]; n.isLink && (!t || n.t === t) && r.check(n) && o.push(n.toFormattedObject(r)); } return o; } e5.scan = eH; var e9 = "[\0-   ᠎ -\u2029  ]", e7 = new RegExp(e9), e8 = RegExp(`${e9}$`), te = RegExp(e9, "g"); function tt(e, t) { let n = [ "http", "https", "ftp", "ftps", "mailto", "tel", "callto", "sms", "cid", "xmpp", ]; return ( t && t.forEach((e) => { let t = "string" == typeof e ? e : e.scheme; t && n.push(t); }), !e || e .replace(te, "") .match( RegExp( `^(?:(?:${n.join("|")}):|[^a-z]|[a-z0-9+.-]+(?:[^a-z+.-:]|$))`, "i", ), ) ); } var tn = t.Mark.create({ name: "link", priority: 1e3, keepOnSplit: !1, exitable: !0, onCreate() { this.options.validate && !this.options.shouldAutoLink && ((this.options.shouldAutoLink = this.options.validate), console.warn( "The `validate` option is deprecated. Rename to the `shouldAutoLink` option instead.", )), this.options.protocols.forEach((e) => { "string" == typeof e ? e4(e) : e4(e.scheme, e.optionalSlashes); }); }, onDestroy() { (L.groups = {}), (e3.scanner = null), (e3.parser = null), (e3.tokenQueue = []), (e3.pluginQueue = []), (e3.customSchemes = []), (e3.initialized = !1); }, inclusive() { return this.options.autolink; }, addOptions: () => ({ openOnClick: !0, enableClickSelection: !1, linkOnPaste: !0, autolink: !0, protocols: [], defaultProtocol: "http", HTMLAttributes: { target: "_blank", rel: "noopener noreferrer nofollow", class: null, }, isAllowedUri: (e, t) => !!tt(e, t.protocols), validate: (e) => !!e, shouldAutoLink: (e) => { let t = /^[a-z][a-z0-9+.-]*:\/\//i.test(e), n = /^[a-z][a-z0-9+.-]*:/i.test(e); if (t || (n && !e.includes("@"))) return !0; let r = (e.includes("@") ? e.split("@").pop() : e).split( /[/?#:]/, )[0]; return !/^\d{1,3}(\.\d{1,3}){3}$/.test(r) && !!/\./.test(r); }, }), addAttributes() { return { href: { default: null, parseHTML: (e) => e.getAttribute("href") }, target: { default: this.options.HTMLAttributes.target }, rel: { default: this.options.HTMLAttributes.rel }, class: { default: this.options.HTMLAttributes.class }, title: { default: null }, }; }, parseHTML() { return [ { tag: "a[href]", getAttrs: (e) => { let t = e.getAttribute("href"); return ( !!t && !!this.options.isAllowedUri(t, { defaultValidate: (e) => !!tt(e, this.options.protocols), protocols: this.options.protocols, defaultProtocol: this.options.defaultProtocol, }) && null ); }, }, ]; }, renderHTML({ HTMLAttributes: e }) { return this.options.isAllowedUri(e.href, { defaultValidate: (e) => !!tt(e, this.options.protocols), protocols: this.options.protocols, defaultProtocol: this.options.defaultProtocol, }) ? ["a", (0, t.mergeAttributes)(this.options.HTMLAttributes, e), 0] : [ "a", (0, t.mergeAttributes)(this.options.HTMLAttributes, { ...e, href: "", }), 0, ]; }, markdownTokenName: "link", parseMarkdown: (e, t) => t.applyMark("link", t.parseInline(e.tokens || []), { href: e.href, title: e.title || null, }), renderMarkdown: (e, t) => { var n, r, i, o; let s = null != (r = null == (n = e.attrs) ? void 0 : n.href) ? r : "", l = null != (o = null == (i = e.attrs) ? void 0 : i.title) ? o : "", a = t.renderChildren(e); return l ? `[${a}](${s} "${l}")` : `[${a}](${s})`; }, addCommands() { return { setLink: (e) => ({ chain: t }) => { let { href: n } = e; return ( !!this.options.isAllowedUri(n, { defaultValidate: (e) => !!tt(e, this.options.protocols), protocols: this.options.protocols, defaultProtocol: this.options.defaultProtocol, }) && t().setMark(this.name, e).setMeta("preventAutolink", !0).run() ); }, toggleLink: (e) => ({ chain: t }) => { let { href: n } = e || {}; return ( (!n || !!this.options.isAllowedUri(n, { defaultValidate: (e) => !!tt(e, this.options.protocols), protocols: this.options.protocols, defaultProtocol: this.options.defaultProtocol, })) && t() .toggleMark(this.name, e, { extendEmptyMarkRange: !0 }) .setMeta("preventAutolink", !0) .run() ); }, unsetLink: () => ({ chain: e }) => e() .unsetMark(this.name, { extendEmptyMarkRange: !0 }) .setMeta("preventAutolink", !0) .run(), }; }, addPasteRules() { return [ (0, t.markPasteRule)({ find: (e) => { let t = []; if (e) { let { protocols: n, defaultProtocol: r } = this.options, i = e6(e).filter( (e) => e.isLink && this.options.isAllowedUri(e.value, { defaultValidate: (e) => !!tt(e, n), protocols: n, defaultProtocol: r, }), ); i.length && i.forEach((e) => { this.options.shouldAutoLink(e.value) && t.push({ text: e.value, data: { href: e.href }, index: e.start, }); }); } return t; }, type: this.type, getAttributes: (e) => { var t; return { href: null == (t = e.data) ? void 0 : t.href }; }, }), ]; }, addProseMirrorPlugins() { var e, n, r; let i = [], { protocols: o, defaultProtocol: s } = this.options; return ( this.options.autolink && i.push( ((e = { type: this.type, defaultProtocol: this.options.defaultProtocol, validate: (e) => this.options.isAllowedUri(e, { defaultValidate: (e) => !!tt(e, o), protocols: o, defaultProtocol: s, }), shouldAutoLink: this.options.shouldAutoLink, }), new u.Plugin({ key: new u.PluginKey("autolink"), appendTransaction: (n, r, i) => { let o = n.some((e) => e.docChanged) && !r.doc.eq(i.doc), s = n.some((e) => e.getMeta("preventAutolink")); if (!o || s) return; let { tr: l } = i, a = (0, t.combineTransactionSteps)(r.doc, [...n]); if ( ((0, t.getChangedRanges)(a).forEach(({ newRange: n }) => { let r, o, s = (0, t.findChildrenInRange)( i.doc, n, (e) => e.isTextblock, ); if (s.length > 1) (r = s[0]), (o = i.doc.textBetween( r.pos, r.pos + r.node.nodeSize, void 0, " ", )); else if (s.length) { let e = i.doc.textBetween(n.from, n.to, " ", " "); if (!e8.test(e)) return; (r = s[0]), (o = i.doc.textBetween(r.pos, n.to, void 0, " ")); } if (r && o) { let n = o.split(e7).filter(Boolean); if (n.length <= 0) return !1; let s = n[n.length - 1], a = r.pos + o.lastIndexOf(s); if (!s) return !1; let d = e5(s).map((t) => t.toObject(e.defaultProtocol), ); if ( !(1 === d.length ? d[0].isLink : 3 === d.length && !!d[1].isLink && ["()", "[]"].includes(d[0].value + d[2].value)) ) return !1; d.filter((e) => e.isLink) .map((e) => ({ ...e, from: a + e.start + 1, to: a + e.end + 1, })) .filter( (e) => !i.schema.marks.code || !i.doc.rangeHasMark( e.from, e.to, i.schema.marks.code, ), ) .filter((t) => e.validate(t.value)) .filter((t) => e.shouldAutoLink(t.value)) .forEach((n) => { (0, t.getMarksBetween)(n.from, n.to, i.doc).some( (t) => t.mark.type === e.type, ) || l.addMark( n.from, n.to, e.type.create({ href: n.href }), ); }); } }), l.steps.length) ) return l; }, })), ), i.push( ((n = { type: this.type, editor: this.editor, openOnClick: "whenNotEditable" === this.options.openOnClick || this.options.openOnClick, enableClickSelection: this.options.enableClickSelection, }), new u.Plugin({ key: new u.PluginKey("handleClickLink"), props: { handleClick: (e, r, i) => { var o, s; if (0 !== i.button || !e.editable) return !1; let l = null; if (i.target instanceof HTMLAnchorElement) l = i.target; else { let e = i.target; if (!e) return !1; let t = n.editor.view.dom; (l = e.closest("a")) && !t.contains(l) && (l = null); } if (!l) return !1; let a = !1; if ( (n.enableClickSelection && (a = n.editor.commands.extendMarkRange(n.type.name)), n.openOnClick) ) { let r = (0, t.getAttributes)(e.state, n.type.name), i = null != (o = l.href) ? o : r.href, d = null != (s = l.target) ? s : r.target; i && (window.open(i, d), (a = !0)); } return a; }, }, })), ), this.options.linkOnPaste && i.push( ((r = { editor: this.editor, defaultProtocol: this.options.defaultProtocol, type: this.type, shouldAutoLink: this.options.shouldAutoLink, }), new u.Plugin({ key: new u.PluginKey("handlePasteLink"), props: { handlePaste: (e, t, n) => { let { shouldAutoLink: i } = r, { state: o } = e, { selection: s } = o, { empty: l } = s; if (l) return !1; let a = ""; n.content.forEach((e) => { a += e.textContent; }); let d = e6(a, { defaultProtocol: r.defaultProtocol, }).find((e) => e.isLink && e.value === a); return ( !!a && !!d && (void 0 === i || !!i(d.value)) && r.editor.commands.setMark(r.type, { href: d.href }) ); }, }, })), ), i ); }, }), tr = Object.defineProperty, ti = "textStyle", to = /^\s*([-+*])\s$/, ts = t.Node.create({ name: "bulletList", addOptions: () => ({ itemTypeName: "listItem", HTMLAttributes: {}, keepMarks: !1, keepAttributes: !1, }), group: "block list", content() { return `${this.options.itemTypeName}+`; }, parseHTML: () => [{ tag: "ul" }], renderHTML({ HTMLAttributes: e }) { return [ "ul", (0, t.mergeAttributes)(this.options.HTMLAttributes, e), 0, ]; }, markdownTokenName: "list", parseMarkdown: (e, t) => "list" !== e.type || e.ordered ? [] : { type: "bulletList", content: e.items ? t.parseChildren(e.items) : [], }, renderMarkdown: (e, t) => e.content ? t.renderChildren(e.content, "\n") : "", markdownOptions: { indentsContent: !0 }, addCommands() { return { toggleBulletList: () => ({ commands: e, chain: t }) => this.options.keepAttributes ? t() .toggleList( this.name, this.options.itemTypeName, this.options.keepMarks, ) .updateAttributes( "listItem", this.editor.getAttributes(ti), ) .run() : e.toggleList( this.name, this.options.itemTypeName, this.options.keepMarks, ), }; }, addKeyboardShortcuts() { return { "Mod-Shift-8": () => this.editor.commands.toggleBulletList(), }; }, addInputRules() { let e = (0, t.wrappingInputRule)({ find: to, type: this.type }); return ( (this.options.keepMarks || this.options.keepAttributes) && (e = (0, t.wrappingInputRule)({ find: to, type: this.type, keepMarks: this.options.keepMarks, keepAttributes: this.options.keepAttributes, getAttributes: () => this.editor.getAttributes(ti), editor: this.editor, })), [e] ); }, }), tl = t.Node.create({ name: "listItem", addOptions: () => ({ HTMLAttributes: {}, bulletListTypeName: "bulletList", orderedListTypeName: "orderedList", }), content: "paragraph block*", defining: !0, parseHTML: () => [{ tag: "li" }], renderHTML({ HTMLAttributes: e }) { return [ "li", (0, t.mergeAttributes)(this.options.HTMLAttributes, e), 0, ]; }, markdownTokenName: "list_item", parseMarkdown: (e, t) => { if ("list_item" !== e.type) return []; let n = []; if (e.tokens && e.tokens.length > 0) if (e.tokens.some((e) => "paragraph" === e.type)) n = t.parseChildren(e.tokens); else { let r = e.tokens[0]; if (r && "text" === r.type && r.tokens && r.tokens.length > 0) { if ( ((n = [ { type: "paragraph", content: t.parseInline(r.tokens) }, ]), e.tokens.length > 1) ) { let r = e.tokens.slice(1), i = t.parseChildren(r); n.push(...i); } } else n = t.parseChildren(e.tokens); } return ( 0 === n.length && (n = [{ type: "paragraph", content: [] }]), { type: "listItem", content: n } ); }, renderMarkdown: (e, n, r) => (0, t.renderNestedMarkdownContent)( e, n, (e) => { var t, n; if ("bulletList" === e.parentType) return "- "; if ("orderedList" === e.parentType) { let r = (null == (n = null == (t = e.meta) ? void 0 : t.parentAttrs) ? void 0 : n.start) || 1; return `${r + e.index}. `; } return "- "; }, r, ), addKeyboardShortcuts() { return { Enter: () => this.editor.commands.splitListItem(this.name), Tab: () => this.editor.commands.sinkListItem(this.name), "Shift-Tab": () => this.editor.commands.liftListItem(this.name), }; }, }), ta = {}, td = { findListItemPos: () => th, getNextListDepth: () => tp, handleBackspace: () => tg, handleDelete: () => tk, hasListBefore: () => tu, hasListItemAfter: () => tv, hasListItemBefore: () => tf, listItemHasSubList: () => tm, nextListIsDeeper: () => ty, nextListIsHigher: () => tb, }; for (var tc in td) tr(ta, tc, { get: td[tc], enumerable: !0 }); var th = (e, n) => { let { $from: r } = n.selection, i = (0, t.getNodeType)(e, n.schema), o = r.depth, s = r.pos, l = null; for (; o > 0 && null === l; ) r.node(o).type === i ? (l = o) : ((o -= 1), (s -= 1)); return null === l ? null : { $pos: n.doc.resolve(s), depth: l }; }, tp = (e, n) => { let r = th(e, n); if (!r) return !1; let [, i] = (0, t.getNodeAtPosition)(n, e, r.$pos.pos + 4); return i; }, tu = (e, t, n) => { let { $anchor: r } = e.selection, i = Math.max(0, r.pos - 2), o = e.doc.resolve(i).node(); return !!o && !!n.includes(o.type.name); }, tf = (e, t) => { var n; let { $anchor: r } = t.selection, i = t.doc.resolve(r.pos - 2); return ( 0 !== i.index() && (null == (n = i.nodeBefore) ? void 0 : n.type.name) === e ); }, tm = (e, n, r) => { if (!r) return !1; let i = (0, t.getNodeType)(e, n.schema), o = !1; return ( r.descendants((e) => { e.type === i && (o = !0); }), o ); }, tg = (e, n, r) => { if (e.commands.undoInputRule()) return !0; if (e.state.selection.from !== e.state.selection.to) return !1; if (!(0, t.isNodeActive)(e.state, n) && tu(e.state, n, r)) { let { $anchor: t } = e.state.selection, r = e.state.doc.resolve(t.before() - 1), i = []; r.node().descendants((e, t) => { e.type.name === n && i.push({ node: e, pos: t }); }); let o = i.at(-1); if (!o) return !1; let s = e.state.doc.resolve(r.start() + o.pos + 1); return e .chain() .cut({ from: t.start() - 1, to: t.end() + 1 }, s.end()) .joinForward() .run(); } if ( !(0, t.isNodeActive)(e.state, n) || !(0, t.isAtStartOfNode)(e.state) ) return !1; let i = th(n, e.state); if (!i) return !1; let o = e.state.doc.resolve(i.$pos.pos - 2).node(i.depth), s = tm(n, e.state, o); return tf(n, e.state) && !s ? e.commands.joinItemBackward() : e.chain().liftListItem(n).run(); }, ty = (e, t) => { let n = tp(e, t), r = th(e, t); return !!r && !!n && n > r.depth; }, tb = (e, t) => { let n = tp(e, t), r = th(e, t); return !!r && !!n && n < r.depth; }, tk = (e, n) => { if ( !(0, t.isNodeActive)(e.state, n) || !(0, t.isAtEndOfNode)(e.state, n) ) return !1; let { selection: r } = e.state, { $from: i, $to: o } = r; return ( !(!r.empty && i.sameParent(o)) && (ty(n, e.state) ? e .chain() .focus(e.state.selection.from + 4) .lift(n) .joinBackward() .run() : tb(n, e.state) ? e.chain().joinForward().joinBackward().run() : e.commands.joinItemForward()) ); }, tv = (e, t) => { var n; let { $anchor: r } = t.selection, i = t.doc.resolve(r.pos - r.parentOffset - 2); return ( i.index() !== i.parent.childCount - 1 && (null == (n = i.nodeAfter) ? void 0 : n.type.name) === e ); }, tw = t.Extension.create({ name: "listKeymap", addOptions: () => ({ listTypes: [ { itemName: "listItem", wrapperNames: ["bulletList", "orderedList"], }, { itemName: "taskItem", wrapperNames: ["taskList"] }, ], }), addKeyboardShortcuts() { return { Delete: ({ editor: e }) => { let t = !1; return ( this.options.listTypes.forEach(({ itemName: n }) => { void 0 !== e.state.schema.nodes[n] && tk(e, n) && (t = !0); }), t ); }, "Mod-Delete": ({ editor: e }) => { let t = !1; return ( this.options.listTypes.forEach(({ itemName: n }) => { void 0 !== e.state.schema.nodes[n] && tk(e, n) && (t = !0); }), t ); }, Backspace: ({ editor: e }) => { let t = !1; return ( this.options.listTypes.forEach( ({ itemName: n, wrapperNames: r }) => { void 0 !== e.state.schema.nodes[n] && tg(e, n, r) && (t = !0); }, ), t ); }, "Mod-Backspace": ({ editor: e }) => { let t = !1; return ( this.options.listTypes.forEach( ({ itemName: n, wrapperNames: r }) => { void 0 !== e.state.schema.nodes[n] && tg(e, n, r) && (t = !0); }, ), t ); }, }; }, }), tS = /^(\s*)(\d+)\.\s+(.*)$/, tx = /^\s/, tM = "textStyle", tC = /^(\d+)\.\s$/, tT = t.Node.create({ name: "orderedList", addOptions: () => ({ itemTypeName: "listItem", HTMLAttributes: {}, keepMarks: !1, keepAttributes: !1, }), group: "block list", content() { return `${this.options.itemTypeName}+`; }, addAttributes: () => ({ start: { default: 1, parseHTML: (e) => e.hasAttribute("start") ? parseInt(e.getAttribute("start") || "", 10) : 1, }, type: { default: null, parseHTML: (e) => e.getAttribute("type") }, }), parseHTML: () => [{ tag: "ol" }], renderHTML({ HTMLAttributes: e }) { let { start: n, ...r } = e; return 1 === n ? ["ol", (0, t.mergeAttributes)(this.options.HTMLAttributes, r), 0] : ["ol", (0, t.mergeAttributes)(this.options.HTMLAttributes, e), 0]; }, markdownTokenName: "list", parseMarkdown: (e, t) => { var n; if ("list" !== e.type || !e.ordered) return []; let r = e.start || 1, i = e.items ? ((n = e.items), n.map((e) => { if ("list_item" !== e.type) return t.parseChildren([e])[0]; let n = []; return ( e.tokens && e.tokens.length > 0 && e.tokens.forEach((e) => { if ( "paragraph" === e.type || "list" === e.type || "blockquote" === e.type || "code" === e.type ) n.push(...t.parseChildren([e])); else if ("text" === e.type && e.tokens) { let r = t.parseChildren([e]); n.push({ type: "paragraph", content: r }); } else { let r = t.parseChildren([e]); r.length > 0 && n.push(...r); } }), { type: "listItem", content: n } ); })) : []; return 1 !== r ? { type: "orderedList", attrs: { start: r }, content: i } : { type: "orderedList", content: i }; }, renderMarkdown: (e, t) => e.content ? t.renderChildren(e.content, "\n") : "", markdownTokenizer: { name: "orderedList", level: "block", start: (e) => { let t = e.match(/^(\s*)(\d+)\.\s+/), n = null == t ? void 0 : t.index; return void 0 !== n ? n : -1; }, tokenize: (e, t, n) => { var r; let i = e.split("\n"), [o, s] = (function (e) { let t = [], n = 0, r = 0; for (; n < e.length; ) { let i = e[n], o = i.match(tS); if (!o) break; let [, s, l, a] = o, d = s.length, c = a, h = n + 1, p = [i]; for (; h < e.length; ) { let t = e[h]; if (t.match(tS)) break; if ("" === t.trim()) p.push(t), (c += "\n"), (h += 1); else if (t.match(tx)) p.push(t), (c += ` ${t.slice(d + 2)}`), (h += 1); else break; } t.push({ indent: d, number: parseInt(l, 10), content: c.trim(), raw: p.join("\n"), }), (r = h), (n = h); } return [t, r]; })(i); if (0 === o.length) return; let l = (function e(t, n, r) { var i; let o = [], s = 0; for (; s < t.length; ) { let l = t[s]; if (l.indent === n) { let a = l.content.split("\n"), d = (null == (i = a[0]) ? void 0 : i.trim()) || "", c = []; d && c.push({ type: "paragraph", raw: d, tokens: r.inlineTokens(d), }); let h = a.slice(1).join("\n").trim(); if (h) { let e = r.blockTokens(h); c.push(...e); } let p = s + 1, u = []; for (; p < t.length && t[p].indent > n; ) u.push(t[p]), (p += 1); if (u.length > 0) { let t = Math.min(...u.map((e) => e.indent)), n = e(u, t, r); c.push({ type: "list", ordered: !0, start: u[0].number, items: n, raw: u.map((e) => e.raw).join("\n"), }); } o.push({ type: "list_item", raw: l.raw, tokens: c }), (s = p); } else s += 1; } return o; })(o, 0, n); if (0 !== l.length) return { type: "list", ordered: !0, start: (null == (r = o[0]) ? void 0 : r.number) || 1, items: l, raw: i.slice(0, s).join("\n"), }; }, }, markdownOptions: { indentsContent: !0 }, addCommands() { return { toggleOrderedList: () => ({ commands: e, chain: t }) => this.options.keepAttributes ? t() .toggleList( this.name, this.options.itemTypeName, this.options.keepMarks, ) .updateAttributes( "listItem", this.editor.getAttributes(tM), ) .run() : e.toggleList( this.name, this.options.itemTypeName, this.options.keepMarks, ), }; }, addKeyboardShortcuts() { return { "Mod-Shift-7": () => this.editor.commands.toggleOrderedList(), }; }, addInputRules() { let e = (0, t.wrappingInputRule)({ find: tC, type: this.type, getAttributes: (e) => ({ start: +e[1] }), joinPredicate: (e, t) => t.childCount + t.attrs.start === +e[1], }); return ( (this.options.keepMarks || this.options.keepAttributes) && (e = (0, t.wrappingInputRule)({ find: tC, type: this.type, keepMarks: this.options.keepMarks, keepAttributes: this.options.keepAttributes, getAttributes: (e) => ({ start: +e[1], ...this.editor.getAttributes(tM), }), joinPredicate: (e, t) => t.childCount + t.attrs.start === +e[1], editor: this.editor, })), [e] ); }, }), tN = /^\s*(\[([( |x])?\])\s$/, tE = t.Node.create({ name: "taskItem", addOptions: () => ({ nested: !1, HTMLAttributes: {}, taskListTypeName: "taskList", a11y: void 0, }), content() { return this.options.nested ? "paragraph block*" : "paragraph+"; }, defining: !0, addAttributes: () => ({ checked: { default: !1, keepOnSplit: !1, parseHTML: (e) => { let t = e.getAttribute("data-checked"); return "" === t || "true" === t; }, renderHTML: (e) => ({ "data-checked": e.checked }), }, }), parseHTML() { return [{ tag: `li[data-type="${this.name}"]`, priority: 51 }]; }, renderHTML({ node: e, HTMLAttributes: n }) { return [ "li", (0, t.mergeAttributes)(this.options.HTMLAttributes, n, { "data-type": this.name, }), [ "label", [ "input", { type: "checkbox", checked: e.attrs.checked ? "checked" : null, }, ], ["span"], ], ["div", 0], ]; }, parseMarkdown: (e, t) => { let n = []; if ( (e.tokens && e.tokens.length > 0 ? n.push(t.createNode("paragraph", {}, t.parseInline(e.tokens))) : e.text ? n.push( t.createNode("paragraph", {}, [ t.createNode("text", { text: e.text }), ]), ) : n.push(t.createNode("paragraph", {}, [])), e.nestedTokens && e.nestedTokens.length > 0) ) { let r = t.parseChildren(e.nestedTokens); n.push(...r); } return t.createNode("taskItem", { checked: e.checked || !1 }, n); }, renderMarkdown: (e, n) => { var r; let i = (null == (r = e.attrs) ? void 0 : r.checked) ? "x" : " ", o = `- [${i}] `; return (0, t.renderNestedMarkdownContent)(e, n, o); }, addKeyboardShortcuts() { let e = { Enter: () => this.editor.commands.splitListItem(this.name), "Shift-Tab": () => this.editor.commands.liftListItem(this.name), }; return this.options.nested ? { ...e, Tab: () => this.editor.commands.sinkListItem(this.name) } : e; }, addNodeView() { return ({ node: e, HTMLAttributes: n, getPos: r, editor: i }) => { let o = document.createElement("li"), s = document.createElement("label"), l = document.createElement("span"), a = document.createElement("input"), d = document.createElement("div"), c = (e) => { var t, n; a.ariaLabel = (null == (n = null == (t = this.options.a11y) ? void 0 : t.checkboxLabel) ? void 0 : n.call(t, e, a.checked)) || `Task item checkbox for ${e.textContent || "empty task item"}`; }; c(e), (s.contentEditable = "false"), (a.type = "checkbox"), a.addEventListener("mousedown", (e) => e.preventDefault()), a.addEventListener("change", (t) => { if (!i.isEditable && !this.options.onReadOnlyChecked) { a.checked = !a.checked; return; } let { checked: n } = t.target; i.isEditable && "function" == typeof r && i .chain() .focus(void 0, { scrollIntoView: !1 }) .command(({ tr: e }) => { let t = r(); if ("number" != typeof t) return !1; let i = e.doc.nodeAt(t); return ( e.setNodeMarkup(t, void 0, { ...(null == i ? void 0 : i.attrs), checked: n, }), !0 ); }) .run(), i.isEditable || !this.options.onReadOnlyChecked || this.options.onReadOnlyChecked(e, n) || (a.checked = !a.checked); }), Object.entries(this.options.HTMLAttributes).forEach(([e, t]) => { o.setAttribute(e, t); }), (o.dataset.checked = e.attrs.checked), (a.checked = e.attrs.checked), s.append(a, l), o.append(s, d), Object.entries(n).forEach(([e, t]) => { o.setAttribute(e, t); }); let h = new Set(Object.keys(n)); return { dom: o, contentDOM: d, update: (e) => { if (e.type !== this.type) return !1; (o.dataset.checked = e.attrs.checked), (a.checked = e.attrs.checked), c(e); let n = i.extensionManager.attributes, r = (0, t.getRenderedAttributes)(e, n), s = new Set(Object.keys(r)), l = this.options.HTMLAttributes; return ( h.forEach((e) => { s.has(e) || (e in l ? o.setAttribute(e, l[e]) : o.removeAttribute(e)); }), Object.entries(r).forEach(([e, t]) => { null == t ? e in l ? o.setAttribute(e, l[e]) : o.removeAttribute(e) : o.setAttribute(e, t); }), (h = s), !0 ); }, }; }; }, addInputRules() { return [ (0, t.wrappingInputRule)({ find: tN, type: this.type, getAttributes: (e) => ({ checked: "x" === e[e.length - 1] }), }), ]; }, }), tO = t.Node.create({ name: "taskList", addOptions: () => ({ itemTypeName: "taskItem", HTMLAttributes: {} }), group: "block list", content() { return `${this.options.itemTypeName}+`; }, parseHTML() { return [{ tag: `ul[data-type="${this.name}"]`, priority: 51 }]; }, renderHTML({ HTMLAttributes: e }) { return [ "ul", (0, t.mergeAttributes)(this.options.HTMLAttributes, e, { "data-type": this.name, }), 0, ]; }, parseMarkdown: (e, t) => t.createNode("taskList", {}, t.parseChildren(e.items || [])), renderMarkdown: (e, t) => e.content ? t.renderChildren(e.content, "\n") : "", markdownTokenizer: { name: "taskList", level: "block", start(e) { var t; let n = null == (t = e.match(/^\s*[-+*]\s+\[([ xX])\]\s+/)) ? void 0 : t.index; return void 0 !== n ? n : -1; }, tokenize(e, n, r) { let i = (e) => { let n = (0, t.parseIndentedBlocks)( e, { itemPattern: /^(\s*)([-+*])\s+\[([ xX])\]\s+(.*)$/, extractItemData: (e) => ({ indentLevel: e[1].length, mainContent: e[4], checked: "x" === e[3].toLowerCase(), }), createToken: (e, t) => ({ type: "taskItem", raw: "", mainContent: e.mainContent, indentLevel: e.indentLevel, checked: e.checked, text: e.mainContent, tokens: r.inlineTokens(e.mainContent), nestedTokens: t, }), customNestedParser: i, }, r, ); return n ? [{ type: "taskList", raw: n.raw, items: n.items }] : r.blockTokens(e); }, o = (0, t.parseIndentedBlocks)( e, { itemPattern: /^(\s*)([-+*])\s+\[([ xX])\]\s+(.*)$/, extractItemData: (e) => ({ indentLevel: e[1].length, mainContent: e[4], checked: "x" === e[3].toLowerCase(), }), createToken: (e, t) => ({ type: "taskItem", raw: "", mainContent: e.mainContent, indentLevel: e.indentLevel, checked: e.checked, text: e.mainContent, tokens: r.inlineTokens(e.mainContent), nestedTokens: t, }), customNestedParser: i, }, r, ); if (o) return { type: "taskList", raw: o.raw, items: o.items }; }, }, markdownOptions: { indentsContent: !0 }, addCommands() { return { toggleTaskList: () => ({ commands: e }) => e.toggleList(this.name, this.options.itemTypeName), }; }, addKeyboardShortcuts() { return { "Mod-Shift-9": () => this.editor.commands.toggleTaskList() }; }, }); t.Extension.create({ name: "listKit", addExtensions() { let e = []; return ( !1 !== this.options.bulletList && e.push(ts.configure(this.options.bulletList)), !1 !== this.options.listItem && e.push(tl.configure(this.options.listItem)), !1 !== this.options.listKeymap && e.push(tw.configure(this.options.listKeymap)), !1 !== this.options.orderedList && e.push(tT.configure(this.options.orderedList)), !1 !== this.options.taskItem && e.push(tE.configure(this.options.taskItem)), !1 !== this.options.taskList && e.push(tO.configure(this.options.taskList)), e ); }, }); var tA = " ", tD = t.Node.create({ name: "paragraph", priority: 1e3, addOptions: () => ({ HTMLAttributes: {} }), group: "block", content: "inline*", parseHTML: () => [{ tag: "p" }], renderHTML({ HTMLAttributes: e }) { return [ "p", (0, t.mergeAttributes)(this.options.HTMLAttributes, e), 0, ]; }, parseMarkdown: (e, t) => { let n = e.tokens || []; if (1 === n.length && "image" === n[0].type) return t.parseChildren([n[0]]); let r = t.parseInline(n); return 1 === r.length && "text" === r[0].type && (r[0].text === tA || " " === r[0].text) ? t.createNode("paragraph", void 0, []) : t.createNode("paragraph", void 0, r); }, renderMarkdown: (e, t) => { if (!e) return ""; let n = Array.isArray(e.content) ? e.content : []; return 0 === n.length ? tA : t.renderChildren(n); }, addCommands() { return { setParagraph: () => ({ commands: e }) => e.setNode(this.name), }; }, addKeyboardShortcuts() { return { "Mod-Alt-0": () => this.editor.commands.setParagraph() }; }, }), tR = /(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))$/, tI = /(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))/g, tP = t.Mark.create({ name: "strike", addOptions: () => ({ HTMLAttributes: {} }), parseHTML: () => [ { tag: "s" }, { tag: "del" }, { tag: "strike" }, { style: "text-decoration", consuming: !1, getAttrs: (e) => !!e.includes("line-through") && {}, }, ], renderHTML({ HTMLAttributes: e }) { return [ "s", (0, t.mergeAttributes)(this.options.HTMLAttributes, e), 0, ]; }, markdownTokenName: "del", parseMarkdown: (e, t) => t.applyMark("strike", t.parseInline(e.tokens || [])), renderMarkdown: (e, t) => `~~${t.renderChildren(e)}~~`, addCommands() { return { setStrike: () => ({ commands: e }) => e.setMark(this.name), toggleStrike: () => ({ commands: e }) => e.toggleMark(this.name), unsetStrike: () => ({ commands: e }) => e.unsetMark(this.name), }; }, addKeyboardShortcuts() { return { "Mod-Shift-s": () => this.editor.commands.toggleStrike() }; }, addInputRules() { return [(0, t.markInputRule)({ find: tR, type: this.type })]; }, addPasteRules() { return [(0, t.markPasteRule)({ find: tI, type: this.type })]; }, }), tL = t.Node.create({ name: "text", group: "inline", parseMarkdown: (e) => ({ type: "text", text: e.text || "" }), renderMarkdown: (e) => e.text || "", }), tz = t.Mark.create({ name: "underline", addOptions: () => ({ HTMLAttributes: {} }), parseHTML: () => [ { tag: "u" }, { style: "text-decoration", consuming: !1, getAttrs: (e) => !!e.includes("underline") && {}, }, ], renderHTML({ HTMLAttributes: e }) { return [ "u", (0, t.mergeAttributes)(this.options.HTMLAttributes, e), 0, ]; }, parseMarkdown(e, t) { return t.applyMark( this.name || "underline", t.parseInline(e.tokens || []), ); }, renderMarkdown: (e, t) => `++${t.renderChildren(e)}++`, markdownTokenizer: { name: "underline", level: "inline", start: (e) => e.indexOf("++"), tokenize(e, t, n) { let r = /^(\+\+)([\s\S]+?)(\+\+)/.exec(e); if (!r) return; let i = r[2].trim(); return { type: "underline", raw: r[0], text: i, tokens: n.inlineTokens(i), }; }, }, addCommands() { return { setUnderline: () => ({ commands: e }) => e.setMark(this.name), toggleUnderline: () => ({ commands: e }) => e.toggleMark(this.name), unsetUnderline: () => ({ commands: e }) => e.unsetMark(this.name), }; }, addKeyboardShortcuts() { return { "Mod-u": () => this.editor.commands.toggleUnderline(), "Mod-U": () => this.editor.commands.toggleUnderline(), }; }, }), tB = e.i(589430), t$ = t.Extension.create({ name: "starterKit", addExtensions() { var e, t, n, r; let o = []; return ( !1 !== this.options.bold && o.push(d.configure(this.options.bold)), !1 !== this.options.blockquote && o.push(i.configure(this.options.blockquote)), !1 !== this.options.bulletList && o.push(ts.configure(this.options.bulletList)), !1 !== this.options.code && o.push(p.configure(this.options.code)), !1 !== this.options.codeBlock && o.push(g.configure(this.options.codeBlock)), !1 !== this.options.document && o.push(y.configure(this.options.document)), !1 !== this.options.dropcursor && o.push(tB.Dropcursor.configure(this.options.dropcursor)), !1 !== this.options.gapcursor && o.push(tB.Gapcursor.configure(this.options.gapcursor)), !1 !== this.options.hardBreak && o.push(b.configure(this.options.hardBreak)), !1 !== this.options.heading && o.push(k.configure(this.options.heading)), !1 !== this.options.undoRedo && o.push(tB.UndoRedo.configure(this.options.undoRedo)), !1 !== this.options.horizontalRule && o.push(v.configure(this.options.horizontalRule)), !1 !== this.options.italic && o.push(C.configure(this.options.italic)), !1 !== this.options.listItem && o.push(tl.configure(this.options.listItem)), !1 !== this.options.listKeymap && o.push( tw.configure( null == (e = this.options) ? void 0 : e.listKeymap, ), ), !1 !== this.options.link && o.push( tn.configure(null == (t = this.options) ? void 0 : t.link), ), !1 !== this.options.orderedList && o.push(tT.configure(this.options.orderedList)), !1 !== this.options.paragraph && o.push(tD.configure(this.options.paragraph)), !1 !== this.options.strike && o.push(tP.configure(this.options.strike)), !1 !== this.options.text && o.push(tL.configure(this.options.text)), !1 !== this.options.underline && o.push( tz.configure(null == (n = this.options) ? void 0 : n.underline), ), !1 !== this.options.trailingNode && o.push( tB.TrailingNode.configure( null == (r = this.options) ? void 0 : r.trailingNode, ), ), o ); }, }); e.s(["default", () => t$], 999445); }; export default moduleFactory;