import { __commonJS } from "./chunk-FOSKEDPS.js"; // node_modules/vditor/dist/index.js var require_dist = __commonJS({ "node_modules/vditor/dist/index.js"(exports, module) { (function webpackUniversalModuleDefinition(root, factory) { if (typeof exports === "object" && typeof module === "object") module.exports = factory(); else if (typeof define === "function" && define.amd) define([], factory); else if (typeof exports === "object") exports["Vditor"] = factory(); else root["Vditor"] = factory(); })(exports, function() { return ( /******/ (() => { var __webpack_modules__ = { /***/ 173: ( /***/ (module2) => { var diff_match_patch = function() { this.Diff_Timeout = 1; this.Diff_EditCost = 4; this.Match_Threshold = 0.5; this.Match_Distance = 1e3; this.Patch_DeleteThreshold = 0.5; this.Patch_Margin = 4; this.Match_MaxBits = 32; }; var DIFF_DELETE = -1; var DIFF_INSERT = 1; var DIFF_EQUAL = 0; diff_match_patch.Diff = function(op, text) { return [op, text]; }; diff_match_patch.prototype.diff_main = function(text1, text2, opt_checklines, opt_deadline) { if (typeof opt_deadline == "undefined") { if (this.Diff_Timeout <= 0) { opt_deadline = Number.MAX_VALUE; } else { opt_deadline = (/* @__PURE__ */ new Date()).getTime() + this.Diff_Timeout * 1e3; } } var deadline = opt_deadline; if (text1 == null || text2 == null) { throw new Error("Null input. (diff_main)"); } if (text1 == text2) { if (text1) { return [new diff_match_patch.Diff(DIFF_EQUAL, text1)]; } return []; } if (typeof opt_checklines == "undefined") { opt_checklines = true; } var checklines = opt_checklines; var commonlength = this.diff_commonPrefix(text1, text2); var commonprefix = text1.substring(0, commonlength); text1 = text1.substring(commonlength); text2 = text2.substring(commonlength); commonlength = this.diff_commonSuffix(text1, text2); var commonsuffix = text1.substring(text1.length - commonlength); text1 = text1.substring(0, text1.length - commonlength); text2 = text2.substring(0, text2.length - commonlength); var diffs = this.diff_compute_(text1, text2, checklines, deadline); if (commonprefix) { diffs.unshift(new diff_match_patch.Diff(DIFF_EQUAL, commonprefix)); } if (commonsuffix) { diffs.push(new diff_match_patch.Diff(DIFF_EQUAL, commonsuffix)); } this.diff_cleanupMerge(diffs); return diffs; }; diff_match_patch.prototype.diff_compute_ = function(text1, text2, checklines, deadline) { var diffs; if (!text1) { return [new diff_match_patch.Diff(DIFF_INSERT, text2)]; } if (!text2) { return [new diff_match_patch.Diff(DIFF_DELETE, text1)]; } var longtext = text1.length > text2.length ? text1 : text2; var shorttext = text1.length > text2.length ? text2 : text1; var i = longtext.indexOf(shorttext); if (i != -1) { diffs = [new diff_match_patch.Diff(DIFF_INSERT, longtext.substring(0, i)), new diff_match_patch.Diff(DIFF_EQUAL, shorttext), new diff_match_patch.Diff(DIFF_INSERT, longtext.substring(i + shorttext.length))]; if (text1.length > text2.length) { diffs[0][0] = diffs[2][0] = DIFF_DELETE; } return diffs; } if (shorttext.length == 1) { return [new diff_match_patch.Diff(DIFF_DELETE, text1), new diff_match_patch.Diff(DIFF_INSERT, text2)]; } var hm = this.diff_halfMatch_(text1, text2); if (hm) { var text1_a = hm[0]; var text1_b = hm[1]; var text2_a = hm[2]; var text2_b = hm[3]; var mid_common = hm[4]; var diffs_a = this.diff_main(text1_a, text2_a, checklines, deadline); var diffs_b = this.diff_main(text1_b, text2_b, checklines, deadline); return diffs_a.concat([new diff_match_patch.Diff(DIFF_EQUAL, mid_common)], diffs_b); } if (checklines && text1.length > 100 && text2.length > 100) { return this.diff_lineMode_(text1, text2, deadline); } return this.diff_bisect_(text1, text2, deadline); }; diff_match_patch.prototype.diff_lineMode_ = function(text1, text2, deadline) { var a = this.diff_linesToChars_(text1, text2); text1 = a.chars1; text2 = a.chars2; var linearray = a.lineArray; var diffs = this.diff_main(text1, text2, false, deadline); this.diff_charsToLines_(diffs, linearray); this.diff_cleanupSemantic(diffs); diffs.push(new diff_match_patch.Diff(DIFF_EQUAL, "")); var pointer = 0; var count_delete = 0; var count_insert = 0; var text_delete = ""; var text_insert = ""; while (pointer < diffs.length) { switch (diffs[pointer][0]) { case DIFF_INSERT: count_insert++; text_insert += diffs[pointer][1]; break; case DIFF_DELETE: count_delete++; text_delete += diffs[pointer][1]; break; case DIFF_EQUAL: if (count_delete >= 1 && count_insert >= 1) { diffs.splice(pointer - count_delete - count_insert, count_delete + count_insert); pointer = pointer - count_delete - count_insert; var subDiff = this.diff_main(text_delete, text_insert, false, deadline); for (var j = subDiff.length - 1; j >= 0; j--) { diffs.splice(pointer, 0, subDiff[j]); } pointer = pointer + subDiff.length; } count_insert = 0; count_delete = 0; text_delete = ""; text_insert = ""; break; } pointer++; } diffs.pop(); return diffs; }; diff_match_patch.prototype.diff_bisect_ = function(text1, text2, deadline) { var text1_length = text1.length; var text2_length = text2.length; var max_d = Math.ceil((text1_length + text2_length) / 2); var v_offset = max_d; var v_length = 2 * max_d; var v1 = new Array(v_length); var v2 = new Array(v_length); for (var x = 0; x < v_length; x++) { v1[x] = -1; v2[x] = -1; } v1[v_offset + 1] = 0; v2[v_offset + 1] = 0; var delta = text1_length - text2_length; var front = delta % 2 != 0; var k1start = 0; var k1end = 0; var k2start = 0; var k2end = 0; for (var d = 0; d < max_d; d++) { if ((/* @__PURE__ */ new Date()).getTime() > deadline) { break; } for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) { var k1_offset = v_offset + k1; var x1; if (k1 == -d || k1 != d && v1[k1_offset - 1] < v1[k1_offset + 1]) { x1 = v1[k1_offset + 1]; } else { x1 = v1[k1_offset - 1] + 1; } var y1 = x1 - k1; while (x1 < text1_length && y1 < text2_length && text1.charAt(x1) == text2.charAt(y1)) { x1++; y1++; } v1[k1_offset] = x1; if (x1 > text1_length) { k1end += 2; } else if (y1 > text2_length) { k1start += 2; } else if (front) { var k2_offset = v_offset + delta - k1; if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] != -1) { var x2 = text1_length - v2[k2_offset]; if (x1 >= x2) { return this.diff_bisectSplit_(text1, text2, x1, y1, deadline); } } } } for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) { var k2_offset = v_offset + k2; var x2; if (k2 == -d || k2 != d && v2[k2_offset - 1] < v2[k2_offset + 1]) { x2 = v2[k2_offset + 1]; } else { x2 = v2[k2_offset - 1] + 1; } var y2 = x2 - k2; while (x2 < text1_length && y2 < text2_length && text1.charAt(text1_length - x2 - 1) == text2.charAt(text2_length - y2 - 1)) { x2++; y2++; } v2[k2_offset] = x2; if (x2 > text1_length) { k2end += 2; } else if (y2 > text2_length) { k2start += 2; } else if (!front) { var k1_offset = v_offset + delta - k2; if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] != -1) { var x1 = v1[k1_offset]; var y1 = v_offset + x1 - k1_offset; x2 = text1_length - x2; if (x1 >= x2) { return this.diff_bisectSplit_(text1, text2, x1, y1, deadline); } } } } } return [new diff_match_patch.Diff(DIFF_DELETE, text1), new diff_match_patch.Diff(DIFF_INSERT, text2)]; }; diff_match_patch.prototype.diff_bisectSplit_ = function(text1, text2, x, y, deadline) { var text1a = text1.substring(0, x); var text2a = text2.substring(0, y); var text1b = text1.substring(x); var text2b = text2.substring(y); var diffs = this.diff_main(text1a, text2a, false, deadline); var diffsb = this.diff_main(text1b, text2b, false, deadline); return diffs.concat(diffsb); }; diff_match_patch.prototype.diff_linesToChars_ = function(text1, text2) { var lineArray = []; var lineHash = {}; lineArray[0] = ""; function diff_linesToCharsMunge_(text) { var chars = ""; var lineStart = 0; var lineEnd = -1; var lineArrayLength = lineArray.length; while (lineEnd < text.length - 1) { lineEnd = text.indexOf("\n", lineStart); if (lineEnd == -1) { lineEnd = text.length - 1; } var line = text.substring(lineStart, lineEnd + 1); if (lineHash.hasOwnProperty ? lineHash.hasOwnProperty(line) : lineHash[line] !== void 0) { chars += String.fromCharCode(lineHash[line]); } else { if (lineArrayLength == maxLines) { line = text.substring(lineStart); lineEnd = text.length; } chars += String.fromCharCode(lineArrayLength); lineHash[line] = lineArrayLength; lineArray[lineArrayLength++] = line; } lineStart = lineEnd + 1; } return chars; } var maxLines = 4e4; var chars1 = diff_linesToCharsMunge_(text1); maxLines = 65535; var chars2 = diff_linesToCharsMunge_(text2); return { chars1, chars2, lineArray }; }; diff_match_patch.prototype.diff_charsToLines_ = function(diffs, lineArray) { for (var i = 0; i < diffs.length; i++) { var chars = diffs[i][1]; var text = []; for (var j = 0; j < chars.length; j++) { text[j] = lineArray[chars.charCodeAt(j)]; } diffs[i][1] = text.join(""); } }; diff_match_patch.prototype.diff_commonPrefix = function(text1, text2) { if (!text1 || !text2 || text1.charAt(0) != text2.charAt(0)) { return 0; } var pointermin = 0; var pointermax = Math.min(text1.length, text2.length); var pointermid = pointermax; var pointerstart = 0; while (pointermin < pointermid) { if (text1.substring(pointerstart, pointermid) == text2.substring(pointerstart, pointermid)) { pointermin = pointermid; pointerstart = pointermin; } else { pointermax = pointermid; } pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin); } return pointermid; }; diff_match_patch.prototype.diff_commonSuffix = function(text1, text2) { if (!text1 || !text2 || text1.charAt(text1.length - 1) != text2.charAt(text2.length - 1)) { return 0; } var pointermin = 0; var pointermax = Math.min(text1.length, text2.length); var pointermid = pointermax; var pointerend = 0; while (pointermin < pointermid) { if (text1.substring(text1.length - pointermid, text1.length - pointerend) == text2.substring(text2.length - pointermid, text2.length - pointerend)) { pointermin = pointermid; pointerend = pointermin; } else { pointermax = pointermid; } pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin); } return pointermid; }; diff_match_patch.prototype.diff_commonOverlap_ = function(text1, text2) { var text1_length = text1.length; var text2_length = text2.length; if (text1_length == 0 || text2_length == 0) { return 0; } if (text1_length > text2_length) { text1 = text1.substring(text1_length - text2_length); } else if (text1_length < text2_length) { text2 = text2.substring(0, text1_length); } var text_length = Math.min(text1_length, text2_length); if (text1 == text2) { return text_length; } var best = 0; var length = 1; while (true) { var pattern = text1.substring(text_length - length); var found = text2.indexOf(pattern); if (found == -1) { return best; } length += found; if (found == 0 || text1.substring(text_length - length) == text2.substring(0, length)) { best = length; length++; } } }; diff_match_patch.prototype.diff_halfMatch_ = function(text1, text2) { if (this.Diff_Timeout <= 0) { return null; } var longtext = text1.length > text2.length ? text1 : text2; var shorttext = text1.length > text2.length ? text2 : text1; if (longtext.length < 4 || shorttext.length * 2 < longtext.length) { return null; } var dmp = this; function diff_halfMatchI_(longtext2, shorttext2, i) { var seed = longtext2.substring(i, i + Math.floor(longtext2.length / 4)); var j = -1; var best_common = ""; var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b; while ((j = shorttext2.indexOf(seed, j + 1)) != -1) { var prefixLength = dmp.diff_commonPrefix(longtext2.substring(i), shorttext2.substring(j)); var suffixLength = dmp.diff_commonSuffix(longtext2.substring(0, i), shorttext2.substring(0, j)); if (best_common.length < suffixLength + prefixLength) { best_common = shorttext2.substring(j - suffixLength, j) + shorttext2.substring(j, j + prefixLength); best_longtext_a = longtext2.substring(0, i - suffixLength); best_longtext_b = longtext2.substring(i + prefixLength); best_shorttext_a = shorttext2.substring(0, j - suffixLength); best_shorttext_b = shorttext2.substring(j + prefixLength); } } if (best_common.length * 2 >= longtext2.length) { return [best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b, best_common]; } else { return null; } } var hm1 = diff_halfMatchI_(longtext, shorttext, Math.ceil(longtext.length / 4)); var hm2 = diff_halfMatchI_(longtext, shorttext, Math.ceil(longtext.length / 2)); var hm; if (!hm1 && !hm2) { return null; } else if (!hm2) { hm = hm1; } else if (!hm1) { hm = hm2; } else { hm = hm1[4].length > hm2[4].length ? hm1 : hm2; } var text1_a, text1_b, text2_a, text2_b; if (text1.length > text2.length) { text1_a = hm[0]; text1_b = hm[1]; text2_a = hm[2]; text2_b = hm[3]; } else { text2_a = hm[0]; text2_b = hm[1]; text1_a = hm[2]; text1_b = hm[3]; } var mid_common = hm[4]; return [text1_a, text1_b, text2_a, text2_b, mid_common]; }; diff_match_patch.prototype.diff_cleanupSemantic = function(diffs) { var changes = false; var equalities = []; var equalitiesLength = 0; var lastEquality = null; var pointer = 0; var length_insertions1 = 0; var length_deletions1 = 0; var length_insertions2 = 0; var length_deletions2 = 0; while (pointer < diffs.length) { if (diffs[pointer][0] == DIFF_EQUAL) { equalities[equalitiesLength++] = pointer; length_insertions1 = length_insertions2; length_deletions1 = length_deletions2; length_insertions2 = 0; length_deletions2 = 0; lastEquality = diffs[pointer][1]; } else { if (diffs[pointer][0] == DIFF_INSERT) { length_insertions2 += diffs[pointer][1].length; } else { length_deletions2 += diffs[pointer][1].length; } if (lastEquality && lastEquality.length <= Math.max(length_insertions1, length_deletions1) && lastEquality.length <= Math.max(length_insertions2, length_deletions2)) { diffs.splice(equalities[equalitiesLength - 1], 0, new diff_match_patch.Diff(DIFF_DELETE, lastEquality)); diffs[equalities[equalitiesLength - 1] + 1][0] = DIFF_INSERT; equalitiesLength--; equalitiesLength--; pointer = equalitiesLength > 0 ? equalities[equalitiesLength - 1] : -1; length_insertions1 = 0; length_deletions1 = 0; length_insertions2 = 0; length_deletions2 = 0; lastEquality = null; changes = true; } } pointer++; } if (changes) { this.diff_cleanupMerge(diffs); } this.diff_cleanupSemanticLossless(diffs); pointer = 1; while (pointer < diffs.length) { if (diffs[pointer - 1][0] == DIFF_DELETE && diffs[pointer][0] == DIFF_INSERT) { var deletion = diffs[pointer - 1][1]; var insertion = diffs[pointer][1]; var overlap_length1 = this.diff_commonOverlap_(deletion, insertion); var overlap_length2 = this.diff_commonOverlap_(insertion, deletion); if (overlap_length1 >= overlap_length2) { if (overlap_length1 >= deletion.length / 2 || overlap_length1 >= insertion.length / 2) { diffs.splice(pointer, 0, new diff_match_patch.Diff(DIFF_EQUAL, insertion.substring(0, overlap_length1))); diffs[pointer - 1][1] = deletion.substring(0, deletion.length - overlap_length1); diffs[pointer + 1][1] = insertion.substring(overlap_length1); pointer++; } } else { if (overlap_length2 >= deletion.length / 2 || overlap_length2 >= insertion.length / 2) { diffs.splice(pointer, 0, new diff_match_patch.Diff(DIFF_EQUAL, deletion.substring(0, overlap_length2))); diffs[pointer - 1][0] = DIFF_INSERT; diffs[pointer - 1][1] = insertion.substring(0, insertion.length - overlap_length2); diffs[pointer + 1][0] = DIFF_DELETE; diffs[pointer + 1][1] = deletion.substring(overlap_length2); pointer++; } } pointer++; } pointer++; } }; diff_match_patch.prototype.diff_cleanupSemanticLossless = function(diffs) { function diff_cleanupSemanticScore_(one, two) { if (!one || !two) { return 6; } var char1 = one.charAt(one.length - 1); var char2 = two.charAt(0); var nonAlphaNumeric1 = char1.match(diff_match_patch.nonAlphaNumericRegex_); var nonAlphaNumeric2 = char2.match(diff_match_patch.nonAlphaNumericRegex_); var whitespace1 = nonAlphaNumeric1 && char1.match(diff_match_patch.whitespaceRegex_); var whitespace2 = nonAlphaNumeric2 && char2.match(diff_match_patch.whitespaceRegex_); var lineBreak1 = whitespace1 && char1.match(diff_match_patch.linebreakRegex_); var lineBreak2 = whitespace2 && char2.match(diff_match_patch.linebreakRegex_); var blankLine1 = lineBreak1 && one.match(diff_match_patch.blanklineEndRegex_); var blankLine2 = lineBreak2 && two.match(diff_match_patch.blanklineStartRegex_); if (blankLine1 || blankLine2) { return 5; } else if (lineBreak1 || lineBreak2) { return 4; } else if (nonAlphaNumeric1 && !whitespace1 && whitespace2) { return 3; } else if (whitespace1 || whitespace2) { return 2; } else if (nonAlphaNumeric1 || nonAlphaNumeric2) { return 1; } return 0; } var pointer = 1; while (pointer < diffs.length - 1) { if (diffs[pointer - 1][0] == DIFF_EQUAL && diffs[pointer + 1][0] == DIFF_EQUAL) { var equality1 = diffs[pointer - 1][1]; var edit = diffs[pointer][1]; var equality2 = diffs[pointer + 1][1]; var commonOffset = this.diff_commonSuffix(equality1, edit); if (commonOffset) { var commonString = edit.substring(edit.length - commonOffset); equality1 = equality1.substring(0, equality1.length - commonOffset); edit = commonString + edit.substring(0, edit.length - commonOffset); equality2 = commonString + equality2; } var bestEquality1 = equality1; var bestEdit = edit; var bestEquality2 = equality2; var bestScore = diff_cleanupSemanticScore_(equality1, edit) + diff_cleanupSemanticScore_(edit, equality2); while (edit.charAt(0) === equality2.charAt(0)) { equality1 += edit.charAt(0); edit = edit.substring(1) + equality2.charAt(0); equality2 = equality2.substring(1); var score = diff_cleanupSemanticScore_(equality1, edit) + diff_cleanupSemanticScore_(edit, equality2); if (score >= bestScore) { bestScore = score; bestEquality1 = equality1; bestEdit = edit; bestEquality2 = equality2; } } if (diffs[pointer - 1][1] != bestEquality1) { if (bestEquality1) { diffs[pointer - 1][1] = bestEquality1; } else { diffs.splice(pointer - 1, 1); pointer--; } diffs[pointer][1] = bestEdit; if (bestEquality2) { diffs[pointer + 1][1] = bestEquality2; } else { diffs.splice(pointer + 1, 1); pointer--; } } } pointer++; } }; diff_match_patch.nonAlphaNumericRegex_ = /[^a-zA-Z0-9]/; diff_match_patch.whitespaceRegex_ = /\s/; diff_match_patch.linebreakRegex_ = /[\r\n]/; diff_match_patch.blanklineEndRegex_ = /\n\r?\n$/; diff_match_patch.blanklineStartRegex_ = /^\r?\n\r?\n/; diff_match_patch.prototype.diff_cleanupEfficiency = function(diffs) { var changes = false; var equalities = []; var equalitiesLength = 0; var lastEquality = null; var pointer = 0; var pre_ins = false; var pre_del = false; var post_ins = false; var post_del = false; while (pointer < diffs.length) { if (diffs[pointer][0] == DIFF_EQUAL) { if (diffs[pointer][1].length < this.Diff_EditCost && (post_ins || post_del)) { equalities[equalitiesLength++] = pointer; pre_ins = post_ins; pre_del = post_del; lastEquality = diffs[pointer][1]; } else { equalitiesLength = 0; lastEquality = null; } post_ins = post_del = false; } else { if (diffs[pointer][0] == DIFF_DELETE) { post_del = true; } else { post_ins = true; } if (lastEquality && (pre_ins && pre_del && post_ins && post_del || lastEquality.length < this.Diff_EditCost / 2 && pre_ins + pre_del + post_ins + post_del == 3)) { diffs.splice(equalities[equalitiesLength - 1], 0, new diff_match_patch.Diff(DIFF_DELETE, lastEquality)); diffs[equalities[equalitiesLength - 1] + 1][0] = DIFF_INSERT; equalitiesLength--; lastEquality = null; if (pre_ins && pre_del) { post_ins = post_del = true; equalitiesLength = 0; } else { equalitiesLength--; pointer = equalitiesLength > 0 ? equalities[equalitiesLength - 1] : -1; post_ins = post_del = false; } changes = true; } } pointer++; } if (changes) { this.diff_cleanupMerge(diffs); } }; diff_match_patch.prototype.diff_cleanupMerge = function(diffs) { diffs.push(new diff_match_patch.Diff(DIFF_EQUAL, "")); var pointer = 0; var count_delete = 0; var count_insert = 0; var text_delete = ""; var text_insert = ""; var commonlength; while (pointer < diffs.length) { switch (diffs[pointer][0]) { case DIFF_INSERT: count_insert++; text_insert += diffs[pointer][1]; pointer++; break; case DIFF_DELETE: count_delete++; text_delete += diffs[pointer][1]; pointer++; break; case DIFF_EQUAL: if (count_delete + count_insert > 1) { if (count_delete !== 0 && count_insert !== 0) { commonlength = this.diff_commonPrefix(text_insert, text_delete); if (commonlength !== 0) { if (pointer - count_delete - count_insert > 0 && diffs[pointer - count_delete - count_insert - 1][0] == DIFF_EQUAL) { diffs[pointer - count_delete - count_insert - 1][1] += text_insert.substring(0, commonlength); } else { diffs.splice(0, 0, new diff_match_patch.Diff(DIFF_EQUAL, text_insert.substring(0, commonlength))); pointer++; } text_insert = text_insert.substring(commonlength); text_delete = text_delete.substring(commonlength); } commonlength = this.diff_commonSuffix(text_insert, text_delete); if (commonlength !== 0) { diffs[pointer][1] = text_insert.substring(text_insert.length - commonlength) + diffs[pointer][1]; text_insert = text_insert.substring(0, text_insert.length - commonlength); text_delete = text_delete.substring(0, text_delete.length - commonlength); } } pointer -= count_delete + count_insert; diffs.splice(pointer, count_delete + count_insert); if (text_delete.length) { diffs.splice(pointer, 0, new diff_match_patch.Diff(DIFF_DELETE, text_delete)); pointer++; } if (text_insert.length) { diffs.splice(pointer, 0, new diff_match_patch.Diff(DIFF_INSERT, text_insert)); pointer++; } pointer++; } else if (pointer !== 0 && diffs[pointer - 1][0] == DIFF_EQUAL) { diffs[pointer - 1][1] += diffs[pointer][1]; diffs.splice(pointer, 1); } else { pointer++; } count_insert = 0; count_delete = 0; text_delete = ""; text_insert = ""; break; } } if (diffs[diffs.length - 1][1] === "") { diffs.pop(); } var changes = false; pointer = 1; while (pointer < diffs.length - 1) { if (diffs[pointer - 1][0] == DIFF_EQUAL && diffs[pointer + 1][0] == DIFF_EQUAL) { if (diffs[pointer][1].substring(diffs[pointer][1].length - diffs[pointer - 1][1].length) == diffs[pointer - 1][1]) { diffs[pointer][1] = diffs[pointer - 1][1] + diffs[pointer][1].substring(0, diffs[pointer][1].length - diffs[pointer - 1][1].length); diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1]; diffs.splice(pointer - 1, 1); changes = true; } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) == diffs[pointer + 1][1]) { diffs[pointer - 1][1] += diffs[pointer + 1][1]; diffs[pointer][1] = diffs[pointer][1].substring(diffs[pointer + 1][1].length) + diffs[pointer + 1][1]; diffs.splice(pointer + 1, 1); changes = true; } } pointer++; } if (changes) { this.diff_cleanupMerge(diffs); } }; diff_match_patch.prototype.diff_xIndex = function(diffs, loc) { var chars1 = 0; var chars2 = 0; var last_chars1 = 0; var last_chars2 = 0; var x; for (x = 0; x < diffs.length; x++) { if (diffs[x][0] !== DIFF_INSERT) { chars1 += diffs[x][1].length; } if (diffs[x][0] !== DIFF_DELETE) { chars2 += diffs[x][1].length; } if (chars1 > loc) { break; } last_chars1 = chars1; last_chars2 = chars2; } if (diffs.length != x && diffs[x][0] === DIFF_DELETE) { return last_chars2; } return last_chars2 + (loc - last_chars1); }; diff_match_patch.prototype.diff_prettyHtml = function(diffs) { var html = []; var pattern_amp = /&/g; var pattern_lt = //g; var pattern_para = /\n/g; for (var x = 0; x < diffs.length; x++) { var op = diffs[x][0]; var data = diffs[x][1]; var text = data.replace(pattern_amp, "&").replace(pattern_lt, "<").replace(pattern_gt, ">").replace(pattern_para, "¶
"); switch (op) { case DIFF_INSERT: html[x] = '' + text + ""; break; case DIFF_DELETE: html[x] = '' + text + ""; break; case DIFF_EQUAL: html[x] = "" + text + ""; break; } } return html.join(""); }; diff_match_patch.prototype.diff_text1 = function(diffs) { var text = []; for (var x = 0; x < diffs.length; x++) { if (diffs[x][0] !== DIFF_INSERT) { text[x] = diffs[x][1]; } } return text.join(""); }; diff_match_patch.prototype.diff_text2 = function(diffs) { var text = []; for (var x = 0; x < diffs.length; x++) { if (diffs[x][0] !== DIFF_DELETE) { text[x] = diffs[x][1]; } } return text.join(""); }; diff_match_patch.prototype.diff_levenshtein = function(diffs) { var levenshtein = 0; var insertions = 0; var deletions = 0; for (var x = 0; x < diffs.length; x++) { var op = diffs[x][0]; var data = diffs[x][1]; switch (op) { case DIFF_INSERT: insertions += data.length; break; case DIFF_DELETE: deletions += data.length; break; case DIFF_EQUAL: levenshtein += Math.max(insertions, deletions); insertions = 0; deletions = 0; break; } } levenshtein += Math.max(insertions, deletions); return levenshtein; }; diff_match_patch.prototype.diff_toDelta = function(diffs) { var text = []; for (var x = 0; x < diffs.length; x++) { switch (diffs[x][0]) { case DIFF_INSERT: text[x] = "+" + encodeURI(diffs[x][1]); break; case DIFF_DELETE: text[x] = "-" + diffs[x][1].length; break; case DIFF_EQUAL: text[x] = "=" + diffs[x][1].length; break; } } return text.join(" ").replace(/%20/g, " "); }; diff_match_patch.prototype.diff_fromDelta = function(text1, delta) { var diffs = []; var diffsLength = 0; var pointer = 0; var tokens = delta.split(/\t/g); for (var x = 0; x < tokens.length; x++) { var param = tokens[x].substring(1); switch (tokens[x].charAt(0)) { case "+": try { diffs[diffsLength++] = new diff_match_patch.Diff(DIFF_INSERT, decodeURI(param)); } catch (ex) { throw new Error("Illegal escape in diff_fromDelta: " + param); } break; case "-": case "=": var n = parseInt(param, 10); if (isNaN(n) || n < 0) { throw new Error("Invalid number in diff_fromDelta: " + param); } var text = text1.substring(pointer, pointer += n); if (tokens[x].charAt(0) == "=") { diffs[diffsLength++] = new diff_match_patch.Diff(DIFF_EQUAL, text); } else { diffs[diffsLength++] = new diff_match_patch.Diff(DIFF_DELETE, text); } break; default: if (tokens[x]) { throw new Error("Invalid diff operation in diff_fromDelta: " + tokens[x]); } } } if (pointer != text1.length) { throw new Error("Delta length (" + pointer + ") does not equal source text length (" + text1.length + ")."); } return diffs; }; diff_match_patch.prototype.match_main = function(text, pattern, loc) { if (text == null || pattern == null || loc == null) { throw new Error("Null input. (match_main)"); } loc = Math.max(0, Math.min(loc, text.length)); if (text == pattern) { return 0; } else if (!text.length) { return -1; } else if (text.substring(loc, loc + pattern.length) == pattern) { return loc; } else { return this.match_bitap_(text, pattern, loc); } }; diff_match_patch.prototype.match_bitap_ = function(text, pattern, loc) { if (pattern.length > this.Match_MaxBits) { throw new Error("Pattern too long for this browser."); } var s = this.match_alphabet_(pattern); var dmp = this; function match_bitapScore_(e, x) { var accuracy = e / pattern.length; var proximity = Math.abs(loc - x); if (!dmp.Match_Distance) { return proximity ? 1 : accuracy; } return accuracy + proximity / dmp.Match_Distance; } var score_threshold = this.Match_Threshold; var best_loc = text.indexOf(pattern, loc); if (best_loc != -1) { score_threshold = Math.min(match_bitapScore_(0, best_loc), score_threshold); best_loc = text.lastIndexOf(pattern, loc + pattern.length); if (best_loc != -1) { score_threshold = Math.min(match_bitapScore_(0, best_loc), score_threshold); } } var matchmask = 1 << pattern.length - 1; best_loc = -1; var bin_min, bin_mid; var bin_max = pattern.length + text.length; var last_rd; for (var d = 0; d < pattern.length; d++) { bin_min = 0; bin_mid = bin_max; while (bin_min < bin_mid) { if (match_bitapScore_(d, loc + bin_mid) <= score_threshold) { bin_min = bin_mid; } else { bin_max = bin_mid; } bin_mid = Math.floor((bin_max - bin_min) / 2 + bin_min); } bin_max = bin_mid; var start = Math.max(1, loc - bin_mid + 1); var finish = Math.min(loc + bin_mid, text.length) + pattern.length; var rd = Array(finish + 2); rd[finish + 1] = (1 << d) - 1; for (var j = finish; j >= start; j--) { var charMatch = s[text.charAt(j - 1)]; if (d === 0) { rd[j] = (rd[j + 1] << 1 | 1) & charMatch; } else { rd[j] = (rd[j + 1] << 1 | 1) & charMatch | ((last_rd[j + 1] | last_rd[j]) << 1 | 1) | last_rd[j + 1]; } if (rd[j] & matchmask) { var score = match_bitapScore_(d, j - 1); if (score <= score_threshold) { score_threshold = score; best_loc = j - 1; if (best_loc > loc) { start = Math.max(1, 2 * loc - best_loc); } else { break; } } } } if (match_bitapScore_(d + 1, loc) > score_threshold) { break; } last_rd = rd; } return best_loc; }; diff_match_patch.prototype.match_alphabet_ = function(pattern) { var s = {}; for (var i = 0; i < pattern.length; i++) { s[pattern.charAt(i)] = 0; } for (var i = 0; i < pattern.length; i++) { s[pattern.charAt(i)] |= 1 << pattern.length - i - 1; } return s; }; diff_match_patch.prototype.patch_addContext_ = function(patch, text) { if (text.length == 0) { return; } if (patch.start2 === null) { throw Error("patch not initialized"); } var pattern = text.substring(patch.start2, patch.start2 + patch.length1); var padding = 0; while (text.indexOf(pattern) != text.lastIndexOf(pattern) && pattern.length < this.Match_MaxBits - this.Patch_Margin - this.Patch_Margin) { padding += this.Patch_Margin; pattern = text.substring(patch.start2 - padding, patch.start2 + patch.length1 + padding); } padding += this.Patch_Margin; var prefix = text.substring(patch.start2 - padding, patch.start2); if (prefix) { patch.diffs.unshift(new diff_match_patch.Diff(DIFF_EQUAL, prefix)); } var suffix = text.substring(patch.start2 + patch.length1, patch.start2 + patch.length1 + padding); if (suffix) { patch.diffs.push(new diff_match_patch.Diff(DIFF_EQUAL, suffix)); } patch.start1 -= prefix.length; patch.start2 -= prefix.length; patch.length1 += prefix.length + suffix.length; patch.length2 += prefix.length + suffix.length; }; diff_match_patch.prototype.patch_make = function(a, opt_b, opt_c) { var text1, diffs; if (typeof a == "string" && typeof opt_b == "string" && typeof opt_c == "undefined") { text1 = /** @type {string} */ a; diffs = this.diff_main( text1, /** @type {string} */ opt_b, true ); if (diffs.length > 2) { this.diff_cleanupSemantic(diffs); this.diff_cleanupEfficiency(diffs); } } else if (a && typeof a == "object" && typeof opt_b == "undefined" && typeof opt_c == "undefined") { diffs = /** @type {!Array.} */ a; text1 = this.diff_text1(diffs); } else if (typeof a == "string" && opt_b && typeof opt_b == "object" && typeof opt_c == "undefined") { text1 = /** @type {string} */ a; diffs = /** @type {!Array.} */ opt_b; } else if (typeof a == "string" && typeof opt_b == "string" && opt_c && typeof opt_c == "object") { text1 = /** @type {string} */ a; diffs = /** @type {!Array.} */ opt_c; } else { throw new Error("Unknown call format to patch_make."); } if (diffs.length === 0) { return []; } var patches = []; var patch = new diff_match_patch.patch_obj(); var patchDiffLength = 0; var char_count1 = 0; var char_count2 = 0; var prepatch_text = text1; var postpatch_text = text1; for (var x = 0; x < diffs.length; x++) { var diff_type = diffs[x][0]; var diff_text = diffs[x][1]; if (!patchDiffLength && diff_type !== DIFF_EQUAL) { patch.start1 = char_count1; patch.start2 = char_count2; } switch (diff_type) { case DIFF_INSERT: patch.diffs[patchDiffLength++] = diffs[x]; patch.length2 += diff_text.length; postpatch_text = postpatch_text.substring(0, char_count2) + diff_text + postpatch_text.substring(char_count2); break; case DIFF_DELETE: patch.length1 += diff_text.length; patch.diffs[patchDiffLength++] = diffs[x]; postpatch_text = postpatch_text.substring(0, char_count2) + postpatch_text.substring(char_count2 + diff_text.length); break; case DIFF_EQUAL: if (diff_text.length <= 2 * this.Patch_Margin && patchDiffLength && diffs.length != x + 1) { patch.diffs[patchDiffLength++] = diffs[x]; patch.length1 += diff_text.length; patch.length2 += diff_text.length; } else if (diff_text.length >= 2 * this.Patch_Margin) { if (patchDiffLength) { this.patch_addContext_(patch, prepatch_text); patches.push(patch); patch = new diff_match_patch.patch_obj(); patchDiffLength = 0; prepatch_text = postpatch_text; char_count1 = char_count2; } } break; } if (diff_type !== DIFF_INSERT) { char_count1 += diff_text.length; } if (diff_type !== DIFF_DELETE) { char_count2 += diff_text.length; } } if (patchDiffLength) { this.patch_addContext_(patch, prepatch_text); patches.push(patch); } return patches; }; diff_match_patch.prototype.patch_deepCopy = function(patches) { var patchesCopy = []; for (var x = 0; x < patches.length; x++) { var patch = patches[x]; var patchCopy = new diff_match_patch.patch_obj(); patchCopy.diffs = []; for (var y = 0; y < patch.diffs.length; y++) { patchCopy.diffs[y] = new diff_match_patch.Diff(patch.diffs[y][0], patch.diffs[y][1]); } patchCopy.start1 = patch.start1; patchCopy.start2 = patch.start2; patchCopy.length1 = patch.length1; patchCopy.length2 = patch.length2; patchesCopy[x] = patchCopy; } return patchesCopy; }; diff_match_patch.prototype.patch_apply = function(patches, text) { if (patches.length == 0) { return [text, []]; } patches = this.patch_deepCopy(patches); var nullPadding = this.patch_addPadding(patches); text = nullPadding + text + nullPadding; this.patch_splitMax(patches); var delta = 0; var results = []; for (var x = 0; x < patches.length; x++) { var expected_loc = patches[x].start2 + delta; var text1 = this.diff_text1(patches[x].diffs); var start_loc; var end_loc = -1; if (text1.length > this.Match_MaxBits) { start_loc = this.match_main(text, text1.substring(0, this.Match_MaxBits), expected_loc); if (start_loc != -1) { end_loc = this.match_main(text, text1.substring(text1.length - this.Match_MaxBits), expected_loc + text1.length - this.Match_MaxBits); if (end_loc == -1 || start_loc >= end_loc) { start_loc = -1; } } } else { start_loc = this.match_main(text, text1, expected_loc); } if (start_loc == -1) { results[x] = false; delta -= patches[x].length2 - patches[x].length1; } else { results[x] = true; delta = start_loc - expected_loc; var text2; if (end_loc == -1) { text2 = text.substring(start_loc, start_loc + text1.length); } else { text2 = text.substring(start_loc, end_loc + this.Match_MaxBits); } if (text1 == text2) { text = text.substring(0, start_loc) + this.diff_text2(patches[x].diffs) + text.substring(start_loc + text1.length); } else { var diffs = this.diff_main(text1, text2, false); if (text1.length > this.Match_MaxBits && this.diff_levenshtein(diffs) / text1.length > this.Patch_DeleteThreshold) { results[x] = false; } else { this.diff_cleanupSemanticLossless(diffs); var index1 = 0; var index2; for (var y = 0; y < patches[x].diffs.length; y++) { var mod = patches[x].diffs[y]; if (mod[0] !== DIFF_EQUAL) { index2 = this.diff_xIndex(diffs, index1); } if (mod[0] === DIFF_INSERT) { text = text.substring(0, start_loc + index2) + mod[1] + text.substring(start_loc + index2); } else if (mod[0] === DIFF_DELETE) { text = text.substring(0, start_loc + index2) + text.substring(start_loc + this.diff_xIndex(diffs, index1 + mod[1].length)); } if (mod[0] !== DIFF_DELETE) { index1 += mod[1].length; } } } } } } text = text.substring(nullPadding.length, text.length - nullPadding.length); return [text, results]; }; diff_match_patch.prototype.patch_addPadding = function(patches) { var paddingLength = this.Patch_Margin; var nullPadding = ""; for (var x = 1; x <= paddingLength; x++) { nullPadding += String.fromCharCode(x); } for (var x = 0; x < patches.length; x++) { patches[x].start1 += paddingLength; patches[x].start2 += paddingLength; } var patch = patches[0]; var diffs = patch.diffs; if (diffs.length == 0 || diffs[0][0] != DIFF_EQUAL) { diffs.unshift(new diff_match_patch.Diff(DIFF_EQUAL, nullPadding)); patch.start1 -= paddingLength; patch.start2 -= paddingLength; patch.length1 += paddingLength; patch.length2 += paddingLength; } else if (paddingLength > diffs[0][1].length) { var extraLength = paddingLength - diffs[0][1].length; diffs[0][1] = nullPadding.substring(diffs[0][1].length) + diffs[0][1]; patch.start1 -= extraLength; patch.start2 -= extraLength; patch.length1 += extraLength; patch.length2 += extraLength; } patch = patches[patches.length - 1]; diffs = patch.diffs; if (diffs.length == 0 || diffs[diffs.length - 1][0] != DIFF_EQUAL) { diffs.push(new diff_match_patch.Diff(DIFF_EQUAL, nullPadding)); patch.length1 += paddingLength; patch.length2 += paddingLength; } else if (paddingLength > diffs[diffs.length - 1][1].length) { var extraLength = paddingLength - diffs[diffs.length - 1][1].length; diffs[diffs.length - 1][1] += nullPadding.substring(0, extraLength); patch.length1 += extraLength; patch.length2 += extraLength; } return nullPadding; }; diff_match_patch.prototype.patch_splitMax = function(patches) { var patch_size = this.Match_MaxBits; for (var x = 0; x < patches.length; x++) { if (patches[x].length1 <= patch_size) { continue; } var bigpatch = patches[x]; patches.splice(x--, 1); var start1 = bigpatch.start1; var start2 = bigpatch.start2; var precontext = ""; while (bigpatch.diffs.length !== 0) { var patch = new diff_match_patch.patch_obj(); var empty = true; patch.start1 = start1 - precontext.length; patch.start2 = start2 - precontext.length; if (precontext !== "") { patch.length1 = patch.length2 = precontext.length; patch.diffs.push(new diff_match_patch.Diff(DIFF_EQUAL, precontext)); } while (bigpatch.diffs.length !== 0 && patch.length1 < patch_size - this.Patch_Margin) { var diff_type = bigpatch.diffs[0][0]; var diff_text = bigpatch.diffs[0][1]; if (diff_type === DIFF_INSERT) { patch.length2 += diff_text.length; start2 += diff_text.length; patch.diffs.push(bigpatch.diffs.shift()); empty = false; } else if (diff_type === DIFF_DELETE && patch.diffs.length == 1 && patch.diffs[0][0] == DIFF_EQUAL && diff_text.length > 2 * patch_size) { patch.length1 += diff_text.length; start1 += diff_text.length; empty = false; patch.diffs.push(new diff_match_patch.Diff(diff_type, diff_text)); bigpatch.diffs.shift(); } else { diff_text = diff_text.substring(0, patch_size - patch.length1 - this.Patch_Margin); patch.length1 += diff_text.length; start1 += diff_text.length; if (diff_type === DIFF_EQUAL) { patch.length2 += diff_text.length; start2 += diff_text.length; } else { empty = false; } patch.diffs.push(new diff_match_patch.Diff(diff_type, diff_text)); if (diff_text == bigpatch.diffs[0][1]) { bigpatch.diffs.shift(); } else { bigpatch.diffs[0][1] = bigpatch.diffs[0][1].substring(diff_text.length); } } } precontext = this.diff_text2(patch.diffs); precontext = precontext.substring(precontext.length - this.Patch_Margin); var postcontext = this.diff_text1(bigpatch.diffs).substring(0, this.Patch_Margin); if (postcontext !== "") { patch.length1 += postcontext.length; patch.length2 += postcontext.length; if (patch.diffs.length !== 0 && patch.diffs[patch.diffs.length - 1][0] === DIFF_EQUAL) { patch.diffs[patch.diffs.length - 1][1] += postcontext; } else { patch.diffs.push(new diff_match_patch.Diff(DIFF_EQUAL, postcontext)); } } if (!empty) { patches.splice(++x, 0, patch); } } } }; diff_match_patch.prototype.patch_toText = function(patches) { var text = []; for (var x = 0; x < patches.length; x++) { text[x] = patches[x]; } return text.join(""); }; diff_match_patch.prototype.patch_fromText = function(textline) { var patches = []; if (!textline) { return patches; } var text = textline.split("\n"); var textPointer = 0; var patchHeader = /^@@ -(\d+),?(\d*) \+(\d+),?(\d*) @@$/; while (textPointer < text.length) { var m = text[textPointer].match(patchHeader); if (!m) { throw new Error("Invalid patch string: " + text[textPointer]); } var patch = new diff_match_patch.patch_obj(); patches.push(patch); patch.start1 = parseInt(m[1], 10); if (m[2] === "") { patch.start1--; patch.length1 = 1; } else if (m[2] == "0") { patch.length1 = 0; } else { patch.start1--; patch.length1 = parseInt(m[2], 10); } patch.start2 = parseInt(m[3], 10); if (m[4] === "") { patch.start2--; patch.length2 = 1; } else if (m[4] == "0") { patch.length2 = 0; } else { patch.start2--; patch.length2 = parseInt(m[4], 10); } textPointer++; while (textPointer < text.length) { var sign = text[textPointer].charAt(0); try { var line = decodeURI(text[textPointer].substring(1)); } catch (ex) { throw new Error("Illegal escape in patch_fromText: " + line); } if (sign == "-") { patch.diffs.push(new diff_match_patch.Diff(DIFF_DELETE, line)); } else if (sign == "+") { patch.diffs.push(new diff_match_patch.Diff(DIFF_INSERT, line)); } else if (sign == " ") { patch.diffs.push(new diff_match_patch.Diff(DIFF_EQUAL, line)); } else if (sign == "@") { break; } else if (sign === "") { } else { throw new Error('Invalid patch mode "' + sign + '" in: ' + line); } textPointer++; } } return patches; }; diff_match_patch.patch_obj = function() { this.diffs = []; this.start1 = null; this.start2 = null; this.length1 = 0; this.length2 = 0; }; diff_match_patch.patch_obj.prototype.toString = function() { var coords1, coords2; if (this.length1 === 0) { coords1 = this.start1 + ",0"; } else if (this.length1 == 1) { coords1 = this.start1 + 1; } else { coords1 = this.start1 + 1 + "," + this.length1; } if (this.length2 === 0) { coords2 = this.start2 + ",0"; } else if (this.length2 == 1) { coords2 = this.start2 + 1; } else { coords2 = this.start2 + 1 + "," + this.length2; } var text = ["@@ -" + coords1 + " +" + coords2 + " @@\n"]; var op; for (var x = 0; x < this.diffs.length; x++) { switch (this.diffs[x][0]) { case DIFF_INSERT: op = "+"; break; case DIFF_DELETE: op = "-"; break; case DIFF_EQUAL: op = " "; break; } text[x + 1] = op + encodeURI(this.diffs[x][1]) + "\n"; } return text.join("").replace(/%20/g, " "); }; module2.exports = diff_match_patch; module2.exports.diff_match_patch = diff_match_patch; module2.exports.DIFF_DELETE = DIFF_DELETE; module2.exports.DIFF_INSERT = DIFF_INSERT; module2.exports.DIFF_EQUAL = DIFF_EQUAL; } ), /***/ 408: ( /***/ (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => { "use strict"; __webpack_require__2.d(__webpack_exports__2, { "default": () => ( /* binding */ method ) }); var abcRender = __webpack_require__2(135); var adapterRender = __webpack_require__2(840); var chartRender = __webpack_require__2(775); var codeRender = __webpack_require__2(428); var flowchartRender = __webpack_require__2(325); var graphvizRender = __webpack_require__2(483); var highlightRender = __webpack_require__2(999); ; var lazyLoadImageRender = function(element) { if (element === void 0) { element = document; } var loadImg = function(it) { var testImage = document.createElement("img"); testImage.src = it.getAttribute("data-src"); testImage.addEventListener("load", function() { if (!it.getAttribute("style") && !it.getAttribute("class") && !it.getAttribute("width") && !it.getAttribute("height")) { if (testImage.naturalHeight > testImage.naturalWidth && testImage.naturalWidth / testImage.naturalHeight < document.querySelector(".vditor-reset").clientWidth / (window.innerHeight - 40) && testImage.naturalHeight > window.innerHeight - 40) { it.style.height = window.innerHeight - 40 + "px"; } } it.src = testImage.src; }); it.removeAttribute("data-src"); }; if (!("IntersectionObserver" in window)) { element.querySelectorAll("img").forEach(function(imgElement) { if (imgElement.getAttribute("data-src")) { loadImg(imgElement); } }); return false; } if (window.vditorImageIntersectionObserver) { window.vditorImageIntersectionObserver.disconnect(); element.querySelectorAll("img").forEach(function(imgElement) { window.vditorImageIntersectionObserver.observe(imgElement); }); } else { window.vditorImageIntersectionObserver = new IntersectionObserver(function(entries) { entries.forEach(function(entrie) { if ((typeof entrie.isIntersecting === "undefined" ? entrie.intersectionRatio !== 0 : entrie.isIntersecting) && entrie.target.getAttribute("data-src")) { loadImg(entrie.target); } }); }); element.querySelectorAll("img").forEach(function(imgElement) { window.vditorImageIntersectionObserver.observe(imgElement); }); } }; var mathRender = __webpack_require__2(472); var mediaRender = __webpack_require__2(280); var mermaidRender = __webpack_require__2(637); var SMILESRender = __webpack_require__2(825); var markmapRender = __webpack_require__2(11); var mindmapRender = __webpack_require__2(194); var outlineRender = __webpack_require__2(436); var plantumlRender = __webpack_require__2(229); var constants = __webpack_require__2(145); var setContentTheme = __webpack_require__2(538); var addScript = __webpack_require__2(413); var hasClosest = __webpack_require__2(106); var merge = __webpack_require__2(673); ; var anchorRender = function(type) { document.querySelectorAll(".vditor-anchor").forEach(function(anchor) { if (type === 1) { anchor.classList.add("vditor-anchor--left"); } anchor.onclick = function() { var id = anchor.getAttribute("href").substr(1); var top = document.getElementById("vditorAnchor-" + id).offsetTop; document.querySelector("html").scrollTop = top; }; }); window.onhashchange = function() { var element = document.getElementById("vditorAnchor-" + decodeURIComponent(window.location.hash.substr(1))); if (element) { document.querySelector("html").scrollTop = element.offsetTop; } }; }; var setLute = __webpack_require__2(214); var selection = __webpack_require__2(810); ; var speechRender = function(element, lang) { if (lang === void 0) { lang = "zh_CN"; } if (typeof speechSynthesis === "undefined" || typeof SpeechSynthesisUtterance === "undefined") { return; } var getVoice = function() { var voices = speechSynthesis.getVoices(); var currentVoice; var defaultVoice; voices.forEach(function(item) { if (item.lang === lang.replace("_", "-")) { currentVoice = item; } if (item.default) { defaultVoice = item; } }); if (!currentVoice) { currentVoice = defaultVoice; } return currentVoice; }; var playSVG = ''; var pauseSVG = ''; if (!document.getElementById("vditorIconScript")) { playSVG = ''; pauseSVG = ''; } var speechDom = document.querySelector(".vditor-speech"); if (!speechDom) { speechDom = document.createElement("button"); speechDom.className = "vditor-speech"; element.insertAdjacentElement("beforeend", speechDom); if (speechSynthesis.onvoiceschanged !== void 0) { speechSynthesis.onvoiceschanged = getVoice; } } var voice = getVoice(); var utterThis = new SpeechSynthesisUtterance(); utterThis.voice = voice; utterThis.onend = utterThis.onerror = function() { speechDom.style.display = "none"; speechSynthesis.cancel(); speechDom.classList.remove("vditor-speech--current"); speechDom.innerHTML = playSVG; }; element.addEventListener(window.ontouchstart !== void 0 ? "touchend" : "click", function(event) { var target = event.target; if (target.classList.contains("vditor-speech") || target.parentElement.classList.contains("vditor-speech")) { if (!speechDom.classList.contains("vditor-speech--current")) { utterThis.text = speechDom.getAttribute("data-text"); speechSynthesis.speak(utterThis); speechDom.classList.add("vditor-speech--current"); speechDom.innerHTML = pauseSVG; } else { if (speechSynthesis.speaking) { if (speechSynthesis.paused) { speechSynthesis.resume(); speechDom.innerHTML = pauseSVG; } else { speechSynthesis.pause(); speechDom.innerHTML = playSVG; } } } (0, selection.Hc)(window.vditorSpeechRange); element.focus(); return; } speechDom.style.display = "none"; speechSynthesis.cancel(); speechDom.classList.remove("vditor-speech--current"); speechDom.innerHTML = playSVG; if (getSelection().rangeCount === 0) { return; } var range = getSelection().getRangeAt(0); var text = range.toString().trim(); if (!text) { return; } window.vditorSpeechRange = range.cloneRange(); var rect = range.getBoundingClientRect(); speechDom.innerHTML = playSVG; speechDom.style.display = "block"; speechDom.style.top = rect.top + rect.height + document.querySelector("html").scrollTop - 20 + "px"; if (window.ontouchstart !== void 0) { speechDom.style.left = event.changedTouches[event.changedTouches.length - 1].pageX + 2 + "px"; } else { speechDom.style.left = event.clientX + 2 + "px"; } speechDom.setAttribute("data-text", text); }); }; ; var __awaiter = function(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function(resolve) { resolve(value); }); } return new (P || (P = Promise))(function(resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = function(thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function(v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var mergeOptions = function(options) { var _a; var defaultOption = { anchor: 0, cdn: constants.g.CDN, customEmoji: {}, emojiPath: "".concat(constants.g.CDN, "/dist/images/emoji"), hljs: constants.g.HLJS_OPTIONS, icon: "ant", lang: "zh_CN", markdown: constants.g.MARKDOWN_OPTIONS, math: constants.g.MATH_OPTIONS, mode: "light", speech: { enable: false }, render: { media: { enable: true } }, theme: constants.g.THEME_OPTIONS }; if (options.cdn) { if (!((_a = options.theme) === null || _a === void 0 ? void 0 : _a.path)) { defaultOption.theme.path = "".concat(options.cdn, "/dist/css/content-theme"); } if (!options.emojiPath) { defaultOption.emojiPath = "".concat(options.cdn, "/dist/images/emoji"); } } return (0, merge.T)(defaultOption, options); }; var md2html = function(mdText, options) { var mergedOptions = mergeOptions(options); return (0, addScript.G)("".concat(mergedOptions.cdn, "/dist/js/lute/lute.min.js"), "vditorLuteScript").then(function() { var lute = (0, setLute.X)({ autoSpace: mergedOptions.markdown.autoSpace, gfmAutoLink: mergedOptions.markdown.gfmAutoLink, codeBlockPreview: mergedOptions.markdown.codeBlockPreview, emojiSite: mergedOptions.emojiPath, emojis: mergedOptions.customEmoji, fixTermTypo: mergedOptions.markdown.fixTermTypo, footnotes: mergedOptions.markdown.footnotes, headingAnchor: mergedOptions.anchor !== 0, inlineMathDigit: mergedOptions.math.inlineDigit, lazyLoadImage: mergedOptions.lazyLoadImage, linkBase: mergedOptions.markdown.linkBase, linkPrefix: mergedOptions.markdown.linkPrefix, listStyle: mergedOptions.markdown.listStyle, mark: mergedOptions.markdown.mark, mathBlockPreview: mergedOptions.markdown.mathBlockPreview, paragraphBeginningSpace: mergedOptions.markdown.paragraphBeginningSpace, sanitize: mergedOptions.markdown.sanitize, toc: mergedOptions.markdown.toc }); if (options === null || options === void 0 ? void 0 : options.renderers) { lute.SetJSRenderers({ renderers: { Md2HTML: options.renderers } }); } lute.SetHeadingID(true); return lute.Md2HTML(mdText); }); }; var previewRender = function(previewElement, markdown, options) { return __awaiter(void 0, void 0, void 0, function() { var mergedOptions, html, i18nScriptPrefix, i18nScriptID_1; return __generator(this, function(_a) { switch (_a.label) { case 0: mergedOptions = mergeOptions(options); return [4, md2html(markdown, mergedOptions)]; case 1: html = _a.sent(); if (mergedOptions.transform) { html = mergedOptions.transform(html); } previewElement.innerHTML = html; previewElement.classList.add("vditor-reset"); if (!!mergedOptions.i18n) return [3, 5]; if (!!["de_DE", "en_US", "es_ES", "fr_FR", "ja_JP", "ko_KR", "pt_BR", "ru_RU", "sv_SE", "vi_VN", "zh_CN", "zh_TW"].includes(mergedOptions.lang)) return [3, 2]; throw new Error("options.lang error, see https://ld246.com/article/1549638745630#options"); case 2: i18nScriptPrefix = "vditorI18nScript"; i18nScriptID_1 = i18nScriptPrefix + mergedOptions.lang; document.querySelectorAll('head script[id^="'.concat(i18nScriptPrefix, '"]')).forEach(function(el) { if (el.id !== i18nScriptID_1) { document.head.removeChild(el); } }); return [4, (0, addScript.G)("".concat(mergedOptions.cdn, "/dist/js/i18n/").concat(mergedOptions.lang, ".js"), i18nScriptID_1)]; case 3: _a.sent(); _a.label = 4; case 4: return [3, 6]; case 5: window.VditorI18n = mergedOptions.i18n; _a.label = 6; case 6: if (!mergedOptions.icon) return [3, 8]; return [4, (0, addScript.G)("".concat(mergedOptions.cdn, "/dist/js/icons/").concat(mergedOptions.icon, ".js"), "vditorIconScript")]; case 7: _a.sent(); _a.label = 8; case 8: (0, setContentTheme.Z)(mergedOptions.theme.current, mergedOptions.theme.path); if (mergedOptions.anchor === 1) { previewElement.classList.add("vditor-reset--anchor"); } (0, codeRender.O)(previewElement, mergedOptions.hljs); (0, highlightRender.s)(mergedOptions.hljs, previewElement, mergedOptions.cdn); (0, mathRender.H)(previewElement, { cdn: mergedOptions.cdn, math: mergedOptions.math }); (0, mermaidRender.i)(previewElement, mergedOptions.cdn, mergedOptions.mode); (0, SMILESRender.J)(previewElement, mergedOptions.cdn, mergedOptions.mode); (0, markmapRender.K)(previewElement, mergedOptions.cdn); (0, flowchartRender.P)(previewElement, mergedOptions.cdn); (0, graphvizRender.v)(previewElement, mergedOptions.cdn); (0, chartRender.p)(previewElement, mergedOptions.cdn, mergedOptions.mode); (0, mindmapRender.P)(previewElement, mergedOptions.cdn, mergedOptions.mode); (0, plantumlRender.B)(previewElement, mergedOptions.cdn); (0, abcRender.Q)(previewElement, mergedOptions.cdn); if (mergedOptions.render.media.enable) { (0, mediaRender.Y)(previewElement); } if (mergedOptions.speech.enable) { speechRender(previewElement); } if (mergedOptions.anchor !== 0) { anchorRender(mergedOptions.anchor); } if (mergedOptions.after) { mergedOptions.after(); } if (mergedOptions.lazyLoadImage) { lazyLoadImageRender(previewElement); } previewElement.addEventListener("click", function(event) { var spanElement = (0, hasClosest.lG)(event.target, "SPAN"); if (spanElement && (0, hasClosest.fb)(spanElement, "vditor-toc")) { var headingElement = previewElement.querySelector("#" + spanElement.getAttribute("data-target-id")); if (headingElement) { window.scrollTo(window.scrollX, headingElement.offsetTop); } return; } }); return [ 2 /*return*/ ]; } }); }); }; var preview_image = __webpack_require__2(190); var setCodeTheme = __webpack_require__2(580); ; var Vditor = ( /** @class */ function() { function Vditor2() { } Vditor2.adapterRender = adapterRender; Vditor2.previewImage = preview_image.E; Vditor2.codeRender = codeRender.O; Vditor2.graphvizRender = graphvizRender.v; Vditor2.highlightRender = highlightRender.s; Vditor2.mathRender = mathRender.H; Vditor2.mermaidRender = mermaidRender.i; Vditor2.SMILESRender = SMILESRender.J; Vditor2.markmapRender = markmapRender.K; Vditor2.flowchartRender = flowchartRender.P; Vditor2.chartRender = chartRender.p; Vditor2.abcRender = abcRender.Q; Vditor2.mindmapRender = mindmapRender.P; Vditor2.plantumlRender = plantumlRender.B; Vditor2.outlineRender = outlineRender.k; Vditor2.mediaRender = mediaRender.Y; Vditor2.speechRender = speechRender; Vditor2.lazyLoadImageRender = lazyLoadImageRender; Vditor2.md2html = md2html; Vditor2.preview = previewRender; Vditor2.setCodeTheme = setCodeTheme.Y; Vditor2.setContentTheme = setContentTheme.Z; return Vditor2; }() ); const method = Vditor; } ), /***/ 145: ( /***/ (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => { "use strict"; __webpack_require__2.d(__webpack_exports__2, { /* harmony export */ "H": () => ( /* binding */ _VDITOR_VERSION ), /* harmony export */ "g": () => ( /* binding */ Constants ) /* harmony export */ }); var _VDITOR_VERSION = "3.11.2"; var Constants = ( /** @class */ function() { function Constants2() { } Constants2.ZWSP = "​"; Constants2.DROP_EDITOR = "application/editor"; Constants2.MOBILE_WIDTH = 520; Constants2.CLASS_MENU_DISABLED = "vditor-menu--disabled"; Constants2.EDIT_TOOLBARS = [ "emoji", "headings", "bold", "italic", "strike", "link", "list", "ordered-list", "outdent", "indent", "check", "line", "quote", "code", "inline-code", "insert-after", "insert-before", "upload", "record", "table" ]; Constants2.CODE_THEME = [ "a11y-dark", "agate", "an-old-hope", "androidstudio", "arta", "atom-one-dark", "atom-one-dark-reasonable", "base16/3024", "base16/apathy", "base16/apprentice", "base16/ashes", "base16/atelier-cave", "base16/atelier-dune", "base16/atelier-estuary", "base16/atelier-forest", "base16/atelier-heath", "base16/atelier-lakeside", "base16/atelier-plateau", "base16/atelier-savanna", "base16/atelier-seaside", "base16/atelier-sulphurpool", "base16/atlas", "base16/bespin", "base16/black-metal", "base16/black-metal-bathory", "base16/black-metal-burzum", "base16/black-metal-dark-funeral", "base16/black-metal-gorgoroth", "base16/black-metal-immortal", "base16/black-metal-khold", "base16/black-metal-marduk", "base16/black-metal-mayhem", "base16/black-metal-nile", "base16/black-metal-venom", "base16/brewer", "base16/bright", "base16/brogrammer", "base16/brush-trees-dark", "base16/chalk", "base16/circus", "base16/classic-dark", "base16/codeschool", "base16/colors", "base16/danqing", "base16/darcula", "base16/dark-violet", "base16/darkmoss", "base16/darktooth", "base16/decaf", "base16/default-dark", "base16/dracula", "base16/edge-dark", "base16/eighties", "base16/embers", "base16/equilibrium-dark", "base16/equilibrium-gray-dark", "base16/espresso", "base16/eva", "base16/eva-dim", "base16/flat", "base16/framer", "base16/gigavolt", "base16/google-dark", "base16/grayscale-dark", "base16/green-screen", "base16/gruvbox-dark-hard", "base16/gruvbox-dark-medium", "base16/gruvbox-dark-pale", "base16/gruvbox-dark-soft", "base16/hardcore", "base16/harmonic16-dark", "base16/heetch-dark", "base16/helios", "base16/hopscotch", "base16/horizon-dark", "base16/humanoid-dark", "base16/ia-dark", "base16/icy-dark", "base16/ir-black", "base16/isotope", "base16/kimber", "base16/london-tube", "base16/macintosh", "base16/marrakesh", "base16/materia", "base16/material", "base16/material-darker", "base16/material-palenight", "base16/material-vivid", "base16/mellow-purple", "base16/mocha", "base16/monokai", "base16/nebula", "base16/nord", "base16/nova", "base16/ocean", "base16/oceanicnext", "base16/onedark", "base16/outrun-dark", "base16/papercolor-dark", "base16/paraiso", "base16/pasque", "base16/phd", "base16/pico", "base16/pop", "base16/porple", "base16/qualia", "base16/railscasts", "base16/rebecca", "base16/ros-pine", "base16/ros-pine-moon", "base16/sandcastle", "base16/seti-ui", "base16/silk-dark", "base16/snazzy", "base16/solar-flare", "base16/solarized-dark", "base16/spacemacs", "base16/summercamp", "base16/summerfruit-dark", "base16/synth-midnight-terminal-dark", "base16/tango", "base16/tender", "base16/tomorrow-night", "base16/twilight", "base16/unikitty-dark", "base16/vulcan", "base16/windows-10", "base16/windows-95", "base16/windows-high-contrast", "base16/windows-nt", "base16/woodland", "base16/xcode-dusk", "base16/zenburn", "codepen-embed", "dark", "devibeans", "far", "felipec", "github-dark", "github-dark-dimmed", "gml", "gradient-dark", "hybrid", "ir-black", "isbl-editor-dark", "kimbie-dark", "lioshi", "monokai", "monokai-sublime", "night-owl", "nnfx-dark", "nord", "obsidian", "panda-syntax-dark", "paraiso-dark", "pojoaque", "qtcreator-dark", "rainbow", "shades-of-purple", "srcery", "stackoverflow-dark", "sunburst", "tomorrow-night-blue", "tomorrow-night-bright", "tokyo-night-dark", "vs2015", "xt256", "ant-design", "a11y-light", "arduino-light", "ascetic", "atom-one-light", "base16/atelier-cave-light", "base16/atelier-dune-light", "base16/atelier-estuary-light", "base16/atelier-forest-light", "base16/atelier-heath-light", "base16/atelier-lakeside-light", "base16/atelier-plateau-light", "base16/atelier-savanna-light", "base16/atelier-seaside-light", "base16/atelier-sulphurpool-light", "base16/brush-trees", "base16/classic-light", "base16/cupcake", "base16/cupertino", "base16/default-light", "base16/dirtysea", "base16/edge-light", "base16/equilibrium-gray-light", "base16/equilibrium-light", "base16/fruit-soda", "base16/github", "base16/google-light", "base16/grayscale-light", "base16/gruvbox-light-hard", "base16/gruvbox-light-medium", "base16/gruvbox-light-soft", "base16/harmonic16-light", "base16/heetch-light", "base16/humanoid-light", "base16/horizon-light", "base16/ia-light", "base16/material-lighter", "base16/mexico-light", "base16/one-light", "base16/papercolor-light", "base16/ros-pine-dawn", "base16/sagelight", "base16/shapeshifter", "base16/silk-light", "base16/solar-flare-light", "base16/solarized-light", "base16/summerfruit-light", "base16/synth-midnight-terminal-light", "base16/tomorrow", "base16/unikitty-light", "base16/windows-10-light", "base16/windows-95-light", "base16/windows-high-contrast-light", "brown-paper", "base16/windows-nt-light", "color-brewer", "docco", "foundation", "github", "googlecode", "gradient-light", "grayscale", "idea", "intellij-light", "isbl-editor-light", "kimbie-light", "lightfair", "magula", "mono-blue", "nnfx-light", "panda-syntax-light", "paraiso-light", "purebasic", "qtcreator-light", "routeros", "school-book", "stackoverflow-light", "tokyo-night-light", "vs", "xcode", "default" ]; Constants2.ALIAS_CODE_LANGUAGES = [ // 自定义 "abc", "plantuml", "mermaid", "flowchart", "echarts", "mindmap", "graphviz", "math", "markmap", "smiles", // 别名 "js", "ts", "html", "toml", "c#", "bat" ]; Constants2.CDN = "https://unpkg.com/vditor@".concat("3.11.2"); Constants2.MARKDOWN_OPTIONS = { autoSpace: false, gfmAutoLink: true, codeBlockPreview: true, fixTermTypo: false, footnotes: true, linkBase: "", linkPrefix: "", listStyle: false, mark: false, mathBlockPreview: true, paragraphBeginningSpace: false, sanitize: true, toc: false }; Constants2.HLJS_OPTIONS = { enable: true, lineNumber: false, defaultLang: "", style: "github" }; Constants2.MATH_OPTIONS = { engine: "KaTeX", inlineDigit: false, macros: {} }; Constants2.THEME_OPTIONS = { current: "light", list: { "ant-design": "Ant Design", "dark": "Dark", "light": "Light", "wechat": "WeChat" }, path: "".concat(Constants2.CDN, "/dist/css/content-theme") }; return Constants2; }() ); } ), /***/ 825: ( /***/ (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => { "use strict"; __webpack_require__2.d(__webpack_exports__2, { /* harmony export */ "J": () => ( /* binding */ SMILESRender ) /* harmony export */ }); var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__2(145); var _util_addScript__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__2(413); var _adapterRender__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__2(840); var _util_function__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__2(494); var SMILESRender = function(element, cdn, theme) { if (element === void 0) { element = document; } if (cdn === void 0) { cdn = _constants__WEBPACK_IMPORTED_MODULE_0__.g.CDN; } var SMILESElements = _adapterRender__WEBPACK_IMPORTED_MODULE_1__.SMILESRenderAdapter.getElements(element); if (SMILESElements.length > 0) { (0, _util_addScript__WEBPACK_IMPORTED_MODULE_2__.G)("".concat(cdn, "/dist/js/smiles-drawer/smiles-drawer.min.js?v=2.1.7"), "vditorAbcjsScript").then(function() { var sd = new SmiDrawer({}, {}); SMILESElements.forEach(function(item) { var code = _adapterRender__WEBPACK_IMPORTED_MODULE_1__.SMILESRenderAdapter.getCode(item).trim(); if (item.getAttribute("data-processed") === "true" || code.trim() === "") { return; } var id = "smiles" + (0, _util_function__WEBPACK_IMPORTED_MODULE_3__.Wb)(); item.innerHTML = ''); sd.draw(code, "#" + id, theme === "dark" ? "dark" : void 0); item.setAttribute("data-processed", "true"); }); }); } }; } ), /***/ 135: ( /***/ (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => { "use strict"; __webpack_require__2.d(__webpack_exports__2, { /* harmony export */ "Q": () => ( /* binding */ abcRender ) /* harmony export */ }); var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__2(145); var _util_addScript__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__2(413); var _adapterRender__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__2(840); var abcRender = function(element, cdn) { if (element === void 0) { element = document; } if (cdn === void 0) { cdn = _constants__WEBPACK_IMPORTED_MODULE_0__.g.CDN; } var abcElements = _adapterRender__WEBPACK_IMPORTED_MODULE_1__.abcRenderAdapter.getElements(element); if (abcElements.length > 0) { (0, _util_addScript__WEBPACK_IMPORTED_MODULE_2__.G)("".concat(cdn, "/dist/js/abcjs/abcjs_basic.min.js"), "vditorAbcjsScript").then(function() { abcElements.forEach(function(item) { if (item.parentElement.classList.contains("vditor-wysiwyg__pre") || item.parentElement.classList.contains("vditor-ir__marker--pre")) { return; } if (item.getAttribute("data-processed") === "true") { return; } ABCJS.renderAbc(item, _adapterRender__WEBPACK_IMPORTED_MODULE_1__.abcRenderAdapter.getCode(item).trim()); item.style.overflowX = "auto"; item.setAttribute("data-processed", "true"); }); }); } }; } ), /***/ 840: ( /***/ (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => { "use strict"; __webpack_require__2.r(__webpack_exports__2); __webpack_require__2.d(__webpack_exports__2, { /* harmony export */ "mathRenderAdapter": () => ( /* binding */ mathRenderAdapter ), /* harmony export */ "SMILESRenderAdapter": () => ( /* binding */ SMILESRenderAdapter ), /* harmony export */ "mermaidRenderAdapter": () => ( /* binding */ mermaidRenderAdapter ), /* harmony export */ "markmapRenderAdapter": () => ( /* binding */ markmapRenderAdapter ), /* harmony export */ "mindmapRenderAdapter": () => ( /* binding */ mindmapRenderAdapter ), /* harmony export */ "chartRenderAdapter": () => ( /* binding */ chartRenderAdapter ), /* harmony export */ "abcRenderAdapter": () => ( /* binding */ abcRenderAdapter ), /* harmony export */ "graphvizRenderAdapter": () => ( /* binding */ graphvizRenderAdapter ), /* harmony export */ "flowchartRenderAdapter": () => ( /* binding */ flowchartRenderAdapter ), /* harmony export */ "plantumlRenderAdapter": () => ( /* binding */ plantumlRenderAdapter ) /* harmony export */ }); var mathRenderAdapter = { getCode: function(el) { return el.textContent; }, getElements: function(element) { return element.querySelectorAll(".language-math"); } }; var SMILESRenderAdapter = { getCode: function(el) { return el.textContent; }, getElements: function(element) { return element.querySelectorAll(".language-smiles"); } }; var mermaidRenderAdapter = { /** 不仅要返回code,并且需要将 code 设置为 el 的 innerHTML */ getCode: function(el) { return el.textContent; }, getElements: function(element) { return element.querySelectorAll(".language-mermaid"); } }; var markmapRenderAdapter = { getCode: function(el) { return el.textContent; }, getElements: function(element) { return element.querySelectorAll(".language-markmap"); } }; var mindmapRenderAdapter = { getCode: function(el) { return el.getAttribute("data-code"); }, getElements: function(el) { return el.querySelectorAll(".language-mindmap"); } }; var chartRenderAdapter = { getCode: function(el) { return el.innerText; }, getElements: function(el) { return el.querySelectorAll(".language-echarts"); } }; var abcRenderAdapter = { getCode: function(el) { return el.textContent; }, getElements: function(el) { return el.querySelectorAll(".language-abc"); } }; var graphvizRenderAdapter = { getCode: function(el) { return el.textContent; }, getElements: function(el) { return el.querySelectorAll(".language-graphviz"); } }; var flowchartRenderAdapter = { getCode: function(el) { return el.textContent; }, getElements: function(el) { return el.querySelectorAll(".language-flowchart"); } }; var plantumlRenderAdapter = { getCode: function(el) { return el.textContent; }, getElements: function(el) { return el.querySelectorAll(".language-plantuml"); } }; } ), /***/ 775: ( /***/ (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => { "use strict"; __webpack_require__2.d(__webpack_exports__2, { /* harmony export */ "p": () => ( /* binding */ chartRender ) /* harmony export */ }); var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__2(145); var _util_addScript__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__2(413); var _adapterRender__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__2(840); var _util_function__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__2(494); var __awaiter = function(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function(resolve) { resolve(value); }); } return new (P || (P = Promise))(function(resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = function(thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function(v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var chartRender = function(element, cdn, theme) { if (element === void 0) { element = document; } if (cdn === void 0) { cdn = _constants__WEBPACK_IMPORTED_MODULE_0__.g.CDN; } var echartsElements = _adapterRender__WEBPACK_IMPORTED_MODULE_1__.chartRenderAdapter.getElements(element); if (echartsElements.length > 0) { (0, _util_addScript__WEBPACK_IMPORTED_MODULE_2__.G)("".concat(cdn, "/dist/js/echarts/echarts.min.js?v=5.5.1"), "vditorEchartsScript").then(function() { echartsElements.forEach(function(e) { return __awaiter(void 0, void 0, void 0, function() { var text, option, error_1; return __generator(this, function(_a) { switch (_a.label) { case 0: if (e.parentElement.classList.contains("vditor-wysiwyg__pre") || e.parentElement.classList.contains("vditor-ir__marker--pre")) { return [ 2 /*return*/ ]; } text = _adapterRender__WEBPACK_IMPORTED_MODULE_1__.chartRenderAdapter.getCode(e).trim(); if (!text) { return [ 2 /*return*/ ]; } _a.label = 1; case 1: _a.trys.push([1, 3, , 4]); if (e.getAttribute("data-processed") === "true") { return [ 2 /*return*/ ]; } return [4, (0, _util_function__WEBPACK_IMPORTED_MODULE_3__.Qf)(text)]; case 2: option = _a.sent(); echarts.init(e, theme === "dark" ? "dark" : void 0).setOption(option); e.setAttribute("data-processed", "true"); return [3, 4]; case 3: error_1 = _a.sent(); e.className = "vditor-reset--error"; e.innerHTML = "echarts render error:
".concat(error_1); return [3, 4]; case 4: return [ 2 /*return*/ ]; } }); }); }); }); } }; } ), /***/ 428: ( /***/ (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => { "use strict"; __webpack_require__2.d(__webpack_exports__2, { /* harmony export */ "O": () => ( /* binding */ codeRender ) /* harmony export */ }); var _util_code160to32__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__2(105); var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__2(145); var codeRender = function(element, option) { Array.from(element.querySelectorAll("pre > code")).filter(function(e, index) { if (e.parentElement.classList.contains("vditor-wysiwyg__pre") || e.parentElement.classList.contains("vditor-ir__marker--pre")) { return false; } if (e.classList.contains("language-mermaid") || e.classList.contains("language-flowchart") || e.classList.contains("language-echarts") || e.classList.contains("language-mindmap") || e.classList.contains("language-plantuml") || e.classList.contains("language-markmap") || e.classList.contains("language-abc") || e.classList.contains("language-graphviz") || e.classList.contains("language-math") || e.classList.contains("language-smiles")) { return false; } if (e.style.maxHeight.indexOf("px") > -1) { return false; } if (element.classList.contains("vditor-preview") && index > 5) { return false; } return true; }).forEach(function(e) { var _a, _b, _c; var codeText = e.innerText; if (e.classList.contains("highlight-chroma")) { var codeElement = e.cloneNode(true); codeElement.querySelectorAll(".highlight-ln").forEach(function(item) { item.remove(); }); codeText = codeElement.innerText; } else if (codeText.endsWith("\n")) { codeText = codeText.substr(0, codeText.length - 1); } var iconHTML = ''; if (!document.getElementById("vditorIconScript")) { iconHTML = ''; } var divElement = document.createElement("div"); divElement.className = "vditor-copy"; divElement.innerHTML = '`).concat(iconHTML, ""); var textarea = document.createElement("textarea"); textarea.value = (0, _util_code160to32__WEBPACK_IMPORTED_MODULE_1__.X)(codeText); divElement.insertAdjacentElement("afterbegin", textarea); if (option && option.renderMenu) { option.renderMenu(e, divElement); } e.before(divElement); e.style.maxHeight = window.outerHeight - 40 + "px"; e.insertAdjacentHTML("afterend", ''.concat(_constants__WEBPACK_IMPORTED_MODULE_0__.g.ZWSP, "")); }); }; } ), /***/ 325: ( /***/ (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => { "use strict"; __webpack_require__2.d(__webpack_exports__2, { /* harmony export */ "P": () => ( /* binding */ flowchartRender ) /* harmony export */ }); var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__2(145); var _util_addScript__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__2(413); var _adapterRender__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__2(840); var flowchartRender = function(element, cdn) { if (cdn === void 0) { cdn = _constants__WEBPACK_IMPORTED_MODULE_0__.g.CDN; } var flowchartElements = _adapterRender__WEBPACK_IMPORTED_MODULE_1__.flowchartRenderAdapter.getElements(element); if (flowchartElements.length === 0) { return; } (0, _util_addScript__WEBPACK_IMPORTED_MODULE_2__.G)("".concat(cdn, "/dist/js/flowchart.js/flowchart.min.js"), "vditorFlowchartScript").then(function() { flowchartElements.forEach(function(item) { if (item.getAttribute("data-processed") === "true") { return; } var flowchartObj = flowchart.parse(_adapterRender__WEBPACK_IMPORTED_MODULE_1__.flowchartRenderAdapter.getCode(item)); item.innerHTML = ""; flowchartObj.drawSVG(item); item.setAttribute("data-processed", "true"); }); }); }; } ), /***/ 483: ( /***/ (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => { "use strict"; __webpack_require__2.d(__webpack_exports__2, { /* harmony export */ "v": () => ( /* binding */ graphvizRender ) /* harmony export */ }); var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__2(145); var _util_addScript__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__2(413); var _adapterRender__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__2(840); var graphvizRender = function(element, cdn) { if (cdn === void 0) { cdn = _constants__WEBPACK_IMPORTED_MODULE_0__.g.CDN; } var graphvizElements = _adapterRender__WEBPACK_IMPORTED_MODULE_1__.graphvizRenderAdapter.getElements(element); if (graphvizElements.length === 0) { return; } (0, _util_addScript__WEBPACK_IMPORTED_MODULE_2__.G)("".concat(cdn, "/dist/js/graphviz/viz.js"), "vditorGraphVizScript").then(function() { graphvizElements.forEach(function(e) { var code = _adapterRender__WEBPACK_IMPORTED_MODULE_1__.graphvizRenderAdapter.getCode(e); if (e.parentElement.classList.contains("vditor-wysiwyg__pre") || e.parentElement.classList.contains("vditor-ir__marker--pre")) { return; } if (e.getAttribute("data-processed") === "true" || code.trim() === "") { return; } try { var blob = new Blob(["importScripts('".concat(document.getElementById("vditorGraphVizScript").src.replace("viz.js", "full.render.js"), "');")], { type: "application/javascript" }); var url = window.URL || window.webkitURL; var blobUrl = url.createObjectURL(blob); var worker = new Worker(blobUrl); new Viz({ worker }).renderSVGElement(code).then(function(result) { e.innerHTML = result.outerHTML; }).catch(function(error) { e.innerHTML = "graphviz render error:
".concat(error); e.className = "vditor-reset--error"; }); } catch (e2) { console.error("graphviz error", e2); } e.setAttribute("data-processed", "true"); }); }); }; } ), /***/ 999: ( /***/ (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => { "use strict"; __webpack_require__2.d(__webpack_exports__2, { /* harmony export */ "s": () => ( /* binding */ highlightRender ) /* harmony export */ }); var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__2(145); var _util_addScript__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__2(413); var _util_addStyle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__2(290); var highlightRender = function(hljsOption, element, cdn) { if (element === void 0) { element = document; } if (cdn === void 0) { cdn = _constants__WEBPACK_IMPORTED_MODULE_0__.g.CDN; } var style = hljsOption.style; if (!_constants__WEBPACK_IMPORTED_MODULE_0__.g.CODE_THEME.includes(style)) { style = "github"; } var vditorHljsStyle = document.getElementById("vditorHljsStyle"); var href = "".concat(cdn, "/dist/js/highlight.js/styles/").concat(style, ".min.css"); if (vditorHljsStyle && vditorHljsStyle.getAttribute("href") !== href) { vditorHljsStyle.remove(); } (0, _util_addStyle__WEBPACK_IMPORTED_MODULE_1__.c)("".concat(cdn, "/dist/js/highlight.js/styles/").concat(style, ".min.css"), "vditorHljsStyle"); if (hljsOption.enable === false) { return; } var codes = element.querySelectorAll("pre > code"); if (codes.length === 0) { return; } (0, _util_addScript__WEBPACK_IMPORTED_MODULE_2__.G)("".concat(cdn, "/dist/js/highlight.js/highlight.min.js?v=11.7.0"), "vditorHljsScript").then(function() { (0, _util_addScript__WEBPACK_IMPORTED_MODULE_2__.G)("".concat(cdn, "/dist/js/highlight.js/third-languages.js?v=1.0.1"), "vditorHljsThirdScript").then(function() { element.querySelectorAll("pre > code").forEach(function(block) { if (block.parentElement.classList.contains("vditor-ir__marker--pre") || block.parentElement.classList.contains("vditor-wysiwyg__pre")) { return; } if (block.classList.contains("language-mermaid") || block.classList.contains("language-flowchart") || block.classList.contains("language-echarts") || block.classList.contains("language-mindmap") || block.classList.contains("language-plantuml") || block.classList.contains("language-smiles") || block.classList.contains("language-abc") || block.classList.contains("language-graphviz") || block.classList.contains("language-math")) { return; } if (hljsOption.defaultLang !== "" && block.className.indexOf("language-") === -1) { block.classList.add("language-" + hljsOption.defaultLang); } var language = block.className.replace("language-", ""); if (!window.hljs.getLanguage(language)) { language = "plaintext"; } block.innerHTML = window.hljs.highlight(block.textContent, { language, ignoreIllegals: true }).value; block.classList.add("hljs"); if (!hljsOption.lineNumber) { return; } block.classList.add("vditor-linenumber"); var linenNumberTemp = block.querySelector(".vditor-linenumber__temp"); if (!linenNumberTemp) { linenNumberTemp = document.createElement("div"); linenNumberTemp.className = "vditor-linenumber__temp"; block.insertAdjacentElement("beforeend", linenNumberTemp); } var whiteSpace = getComputedStyle(block).whiteSpace; var isSoftWrap = false; if (whiteSpace === "pre-wrap" || whiteSpace === "pre-line") { isSoftWrap = true; } var lineNumberHTML = ""; var lineList = block.textContent.split(/\r\n|\r|\n/g); lineList.pop(); lineList.map(function(line) { var lineHeight = ""; if (isSoftWrap) { linenNumberTemp.textContent = line || "\n"; lineHeight = ' style="height:'.concat(linenNumberTemp.getBoundingClientRect().height, 'px"'); } lineNumberHTML += ""); }); linenNumberTemp.style.display = "none"; lineNumberHTML = ''.concat(lineNumberHTML, ""); block.insertAdjacentHTML("beforeend", lineNumberHTML); }); }); }); }; } ), /***/ 11: ( /***/ (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => { "use strict"; __webpack_require__2.d(__webpack_exports__2, { /* harmony export */ "K": () => ( /* binding */ markmapRender ) /* harmony export */ }); var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__2(145); var _util_addScript__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__2(413); var _adapterRender__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__2(840); var enabled = {}; var transform = function(transformer, content) { var result = transformer.transform(content); var keys = Object.keys(result.features).filter(function(key) { return !enabled[key]; }); keys.forEach(function(key) { enabled[key] = true; }); var _a = transformer.getAssets(keys), styles = _a.styles, scripts = _a.scripts; var markmap = window.markmap; if (styles) markmap.loadCSS(styles); if (scripts) markmap.loadJS(scripts); return result; }; var init = function(el, code) { var _a = window.markmap, Transformer = _a.Transformer, Markmap = _a.Markmap, deriveOptions = _a.deriveOptions, globalCSS = _a.globalCSS; var transformer = new Transformer(); el.innerHTML = ''; var svg = el.firstChild; var mm = Markmap.create(svg, null); var _b = transform(transformer, code), root = _b.root, frontmatter = _b.frontmatter; var markmapOptions = frontmatter === null || frontmatter === void 0 ? void 0 : frontmatter.markmap; var frontmatterOptions = deriveOptions(markmapOptions); mm.setData(root, frontmatterOptions); mm.fit(); }; var markmapRender = function(element, cdn) { if (element === void 0) { element = document; } if (cdn === void 0) { cdn = _constants__WEBPACK_IMPORTED_MODULE_0__.g.CDN; } var markmapElements = _adapterRender__WEBPACK_IMPORTED_MODULE_1__.markmapRenderAdapter.getElements(element); if (markmapElements.length === 0) { return; } (0, _util_addScript__WEBPACK_IMPORTED_MODULE_2__.G)("".concat(cdn, "/dist/js/markmap/markmap.min.js"), "vditorMarkerScript").then(function() { markmapElements.forEach(function(item) { var code = _adapterRender__WEBPACK_IMPORTED_MODULE_1__.markmapRenderAdapter.getCode(item); if (item.getAttribute("data-processed") === "true" || code.trim() === "") { return; } var render = document.createElement("div"); render.className = "language-markmap"; item.parentNode.appendChild(render); init(render, code); if (item.parentNode.childNodes[0].nodeName == "CODE") { item.parentNode.removeChild(item.parentNode.childNodes[0]); } }); }); }; } ), /***/ 472: ( /***/ (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => { "use strict"; __webpack_require__2.d(__webpack_exports__2, { /* harmony export */ "H": () => ( /* binding */ mathRender ) /* harmony export */ }); var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__2(145); var _util_addScript__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__2(413); var _util_addStyle__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__2(290); var _util_code160to32__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__2(105); var _adapterRender__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__2(840); var mathRender = function(element, options) { if (element === void 0) { element = document; } var mathElements = _adapterRender__WEBPACK_IMPORTED_MODULE_1__.mathRenderAdapter.getElements(element); if (mathElements.length === 0) { return; } var defaultOptions = { cdn: _constants__WEBPACK_IMPORTED_MODULE_0__.g.CDN, math: { engine: "KaTeX", inlineDigit: false, macros: {} } }; if (options && options.math) { options.math = Object.assign({}, defaultOptions.math, options.math); } options = Object.assign({}, defaultOptions, options); if (options.math.engine === "KaTeX") { (0, _util_addStyle__WEBPACK_IMPORTED_MODULE_2__.c)("".concat(options.cdn, "/dist/js/katex/katex.min.css?v=0.16.9"), "vditorKatexStyle"); (0, _util_addScript__WEBPACK_IMPORTED_MODULE_3__.G)("".concat(options.cdn, "/dist/js/katex/katex.min.js?v=0.16.9"), "vditorKatexScript").then(function() { (0, _util_addScript__WEBPACK_IMPORTED_MODULE_3__.G)("".concat(options.cdn, "/dist/js/katex/mhchem.min.js?v=0.16.9"), "vditorKatexChemScript").then(function() { mathElements.forEach(function(mathElement) { if (mathElement.parentElement.classList.contains("vditor-wysiwyg__pre") || mathElement.parentElement.classList.contains("vditor-ir__marker--pre")) { return; } if (mathElement.getAttribute("data-math")) { return; } var math = (0, _util_code160to32__WEBPACK_IMPORTED_MODULE_4__.X)(_adapterRender__WEBPACK_IMPORTED_MODULE_1__.mathRenderAdapter.getCode(mathElement)); mathElement.setAttribute("data-math", math); try { mathElement.innerHTML = katex.renderToString(math, { displayMode: mathElement.tagName === "DIV", output: "html", macros: options.math.macros }); } catch (e) { mathElement.innerHTML = e.message; mathElement.className = "language-math vditor-reset--error"; } mathElement.addEventListener("copy", function(event) { event.stopPropagation(); event.preventDefault(); var vditorMathElement = event.currentTarget.closest(".language-math"); event.clipboardData.setData("text/html", vditorMathElement.innerHTML); event.clipboardData.setData("text/plain", vditorMathElement.getAttribute("data-math")); }); }); }); }); } else if (options.math.engine === "MathJax") { var chainAsync_1 = function(fns) { if (fns.length === 0) { return; } var curr = 0; var last = fns[fns.length - 1]; var next = function() { var fn = fns[curr++]; fn === last ? fn() : fn(next); }; next(); }; if (!window.MathJax) { window.MathJax = { loader: { paths: { mathjax: "".concat(options.cdn, "/dist/js/mathjax") } }, startup: { typeset: false }, tex: { macros: options.math.macros } }; Object.assign(window.MathJax, options.math.mathJaxOptions); } (0, _util_addScript__WEBPACK_IMPORTED_MODULE_3__.J)("".concat(options.cdn, "/dist/js/mathjax/tex-svg-full.js"), "protyleMathJaxScript"); var renderMath_1 = function(mathElement, next) { var math = (0, _util_code160to32__WEBPACK_IMPORTED_MODULE_4__.X)(mathElement.textContent).trim(); var mathOptions = window.MathJax.getMetricsFor(mathElement); mathOptions.display = mathElement.tagName === "DIV"; window.MathJax.tex2svgPromise(math, mathOptions).then(function(node) { mathElement.innerHTML = ""; mathElement.setAttribute("data-math", math); mathElement.append(node); window.MathJax.startup.document.clear(); window.MathJax.startup.document.updateDocument(); var errorTextElement = node.querySelector('[data-mml-node="merror"]'); if (errorTextElement && errorTextElement.textContent.trim() !== "") { mathElement.innerHTML = errorTextElement.textContent.trim(); mathElement.className = "vditor-reset--error"; } if (next) { next(); } }); }; window.MathJax.startup.promise.then(function() { var chains = []; var _loop_1 = function(i2) { var mathElement = mathElements[i2]; if (!mathElement.parentElement.classList.contains("vditor-wysiwyg__pre") && !mathElement.parentElement.classList.contains("vditor-ir__marker--pre") && !mathElement.getAttribute("data-math") && (0, _util_code160to32__WEBPACK_IMPORTED_MODULE_4__.X)(mathElement.textContent).trim()) { chains.push(function(next) { if (i2 === mathElements.length - 1) { renderMath_1(mathElement); } else { renderMath_1(mathElement, next); } }); } }; for (var i = 0; i < mathElements.length; i++) { _loop_1(i); } chainAsync_1(chains); }); } }; } ), /***/ 280: ( /***/ (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => { "use strict"; __webpack_require__2.d(__webpack_exports__2, { /* harmony export */ "Y": () => ( /* binding */ mediaRender ) /* harmony export */ }); var _util_function__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__2(494); var videoRender = function(element, url) { element.insertAdjacentHTML("afterend", '')); element.remove(); }; var audioRender = function(element, url) { element.insertAdjacentHTML("afterend", '')); element.remove(); }; var iframeRender = function(element, url) { var youtubeMatch = url.match(/\/\/(?:www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))([\w|-]{11})(?:(?:[\?&]t=)(\S+))?/); var youkuMatch = url.match(/\/\/v\.youku\.com\/v_show\/id_(\w+)=*\.html/); var qqMatch = url.match(/\/\/v\.qq\.com\/x\/cover\/.*\/([^\/]+)\.html\??.*/); var coubMatch = url.match(/(?:www\.|\/\/)coub\.com\/view\/(\w+)/); var facebookMatch = url.match(/(?:www\.|\/\/)facebook\.com\/([^\/]+)\/videos\/([0-9]+)/); var dailymotionMatch = url.match(/.+dailymotion.com\/(video|hub)\/(\w+)\?/); var bilibiliMatch = url.match(/(?:www\.|\/\/)bilibili\.com\/video\/(\w+)/); var tedMatch = url.match(/(?:www\.|\/\/)ted\.com\/talks\/(\w+)/); if (youtubeMatch && youtubeMatch[1].length === 11) { element.insertAdjacentHTML("afterend", '')); element.remove(); } else if (youkuMatch && youkuMatch[1]) { element.insertAdjacentHTML("afterend", '')); element.remove(); } else if (qqMatch && qqMatch[1]) { element.insertAdjacentHTML("afterend", '')); element.remove(); } else if (coubMatch && coubMatch[1]) { element.insertAdjacentHTML("afterend", '')); element.remove(); } else if (facebookMatch && facebookMatch[0]) { element.insertAdjacentHTML("afterend", '')); element.remove(); } else if (dailymotionMatch && dailymotionMatch[2]) { element.insertAdjacentHTML("afterend", '')); element.remove(); } else if (url.indexOf("bilibili.com") > -1 && (url.indexOf("bvid=") > -1 || bilibiliMatch && bilibiliMatch[1])) { var params_1 = { bvid: (0, _util_function__WEBPACK_IMPORTED_MODULE_0__.on)("bvid", url) || bilibiliMatch && bilibiliMatch[1], page: "1", high_quality: "1", as_wide: "1", allowfullscreen: "true", autoplay: "0" }; new URL(url.startsWith("http") ? url : "https:" + url).search.split("&").forEach(function(item, index) { if (!item) { return; } if (index === 0) { item = item.substr(1); } var keyValue = item.split("="); params_1[keyValue[0]] = keyValue[1]; }); var src_1 = "https://player.bilibili.com/player.html?"; var keys_1 = Object.keys(params_1); keys_1.forEach(function(key, index) { src_1 += "".concat(key, "=").concat(params_1[key]); if (index < keys_1.length - 1) { src_1 += "&"; } }); element.insertAdjacentHTML("afterend", '')); element.remove(); } else if (tedMatch && tedMatch[1]) { element.insertAdjacentHTML("afterend", '')); element.remove(); } }; var mediaRender = function(element) { if (!element) { return; } element.querySelectorAll("a").forEach(function(aElement) { var url = aElement.getAttribute("href"); if (!url) { return; } if (url.match(/^.+.(mp4|m4v|ogg|ogv|webm)$/)) { videoRender(aElement, url); } else if (url.match(/^.+.(mp3|wav|flac)$/)) { audioRender(aElement, url); } else { iframeRender(aElement, url); } }); }; } ), /***/ 637: ( /***/ (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => { "use strict"; __webpack_require__2.d(__webpack_exports__2, { /* harmony export */ "i": () => ( /* binding */ mermaidRender ) /* harmony export */ }); var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__2(145); var _util_addScript__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__2(413); var _adapterRender__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__2(840); var _util_function__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__2(494); var __awaiter = function(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function(resolve) { resolve(value); }); } return new (P || (P = Promise))(function(resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = function(thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function(v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var mermaidRender = function(element, cdn, theme) { if (element === void 0) { element = document; } if (cdn === void 0) { cdn = _constants__WEBPACK_IMPORTED_MODULE_0__.g.CDN; } var mermaidElements = _adapterRender__WEBPACK_IMPORTED_MODULE_1__.mermaidRenderAdapter.getElements(element); if (mermaidElements.length === 0) { return; } (0, _util_addScript__WEBPACK_IMPORTED_MODULE_2__.G)("".concat(cdn, "/dist/js/mermaid/mermaid.min.js?v=11.6.0"), "vditorMermaidScript").then(function() { var config = { securityLevel: "loose", altFontFamily: "sans-serif", fontFamily: "sans-serif", startOnLoad: false, flowchart: { htmlLabels: true, useMaxWidth: true }, sequence: { useMaxWidth: true, diagramMarginX: 8, diagramMarginY: 8, boxMargin: 8, showSequenceNumbers: true // Mermaid 时序图增加序号 https://github.com/siyuan-note/siyuan/pull/6992 https://mermaid.js.org/syntax/sequenceDiagram.html#sequencenumbers }, gantt: { leftPadding: 75, rightPadding: 20 } }; if (theme === "dark") { config.theme = "dark"; } mermaid.initialize(config); mermaidElements.forEach(function(item) { return __awaiter(void 0, void 0, void 0, function() { var code, id, mermaidData, e_1, errorElement; return __generator(this, function(_a) { switch (_a.label) { case 0: code = _adapterRender__WEBPACK_IMPORTED_MODULE_1__.mermaidRenderAdapter.getCode(item); if (item.getAttribute("data-processed") === "true" || code.trim() === "") { return [ 2 /*return*/ ]; } id = "mermaid" + (0, _util_function__WEBPACK_IMPORTED_MODULE_3__.Wb)(); _a.label = 1; case 1: _a.trys.push([1, 3, , 4]); return [4, mermaid.render(id, item.textContent)]; case 2: mermaidData = _a.sent(); item.innerHTML = mermaidData.svg; return [3, 4]; case 3: e_1 = _a.sent(); errorElement = document.querySelector("#" + id); item.innerHTML = "".concat(errorElement.outerHTML, '
\n
').concat(e_1.message.replace(/\n/, "
"), "
"); errorElement.parentElement.remove(); return [3, 4]; case 4: item.setAttribute("data-processed", "true"); return [ 2 /*return*/ ]; } }); }); }); }); }; } ), /***/ 194: ( /***/ (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => { "use strict"; __webpack_require__2.d(__webpack_exports__2, { /* harmony export */ "P": () => ( /* binding */ mindmapRender ) /* harmony export */ }); var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__2(145); var _util_addScript__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__2(413); var _adapterRender__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__2(840); var mindmapRender = function(element, cdn, theme) { if (element === void 0) { element = document; } if (cdn === void 0) { cdn = _constants__WEBPACK_IMPORTED_MODULE_0__.g.CDN; } var mindmapElements = _adapterRender__WEBPACK_IMPORTED_MODULE_1__.mindmapRenderAdapter.getElements(element); if (mindmapElements.length > 0) { (0, _util_addScript__WEBPACK_IMPORTED_MODULE_2__.G)("".concat(cdn, "/dist/js/echarts/echarts.min.js?v=5.5.1"), "vditorEchartsScript").then(function() { mindmapElements.forEach(function(e) { if (e.parentElement.classList.contains("vditor-wysiwyg__pre") || e.parentElement.classList.contains("vditor-ir__marker--pre")) { return; } var text = _adapterRender__WEBPACK_IMPORTED_MODULE_1__.mindmapRenderAdapter.getCode(e); if (!text) { return; } try { if (e.getAttribute("data-processed") === "true") { return; } echarts.init(e, theme === "dark" ? "dark" : void 0).setOption({ series: [ { data: [JSON.parse(decodeURIComponent(text))], initialTreeDepth: -1, itemStyle: { borderWidth: 0, color: "#4285f4" }, label: { backgroundColor: "#f6f8fa", borderColor: "#d1d5da", borderRadius: 5, borderWidth: 0.5, color: "#586069", lineHeight: 20, offset: [-5, 0], padding: [0, 5], position: "insideRight" }, lineStyle: { color: "#d1d5da", width: 1 }, roam: true, symbol: function(value, params) { var _a; if ((_a = params === null || params === void 0 ? void 0 : params.data) === null || _a === void 0 ? void 0 : _a.children) { return "circle"; } else { return "path://"; } }, type: "tree" } ], tooltip: { trigger: "item", triggerOn: "mousemove" } }); e.setAttribute("data-processed", "true"); } catch (error) { e.className = "vditor-reset--error"; e.innerHTML = "mindmap render error:
".concat(error); } }); }); } }; } ), /***/ 436: ( /***/ (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => { "use strict"; __webpack_require__2.d(__webpack_exports__2, { /* harmony export */ "k": () => ( /* binding */ outlineRender ) /* harmony export */ }); var _util_hasClosestByHeadings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__2(771); var _mathRender__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__2(472); var outlineRender = function(contentElement, targetElement, vditor) { var tocHTML = ""; var ids = []; Array.from(contentElement.children).forEach(function(item, index) { if ((0, _util_hasClosestByHeadings__WEBPACK_IMPORTED_MODULE_1__.W)(item)) { if (vditor) { var lastIndex = item.id.lastIndexOf("_"); item.id = item.id.substring(0, lastIndex === -1 ? void 0 : lastIndex) + "_" + index; } ids.push(item.id); tocHTML += item.outerHTML.replace("", ""); } }); if (tocHTML === "") { targetElement.innerHTML = ""; return ""; } var tempElement = document.createElement("div"); if (vditor) { vditor.lute.SetToC(true); if (vditor.currentMode === "wysiwyg" && !vditor.preview.element.contains(contentElement)) { tempElement.innerHTML = vditor.lute.SpinVditorDOM("

[ToC]

" + tocHTML); } else if (vditor.currentMode === "ir" && !vditor.preview.element.contains(contentElement)) { tempElement.innerHTML = vditor.lute.SpinVditorIRDOM("

[ToC]

" + tocHTML); } else { tempElement.innerHTML = vditor.lute.HTML2VditorDOM("

[ToC]

" + tocHTML); } vditor.lute.SetToC(vditor.options.preview.markdown.toc); } else { targetElement.classList.add("vditor-outline"); var lute = Lute.New(); lute.SetToC(true); tempElement.innerHTML = lute.HTML2VditorDOM("

[ToC]

" + tocHTML); } var headingsElement = tempElement.firstElementChild.querySelectorAll("li > span[data-target-id]"); headingsElement.forEach(function(item, index) { if (item.nextElementSibling && item.nextElementSibling.tagName === "UL") { var iconHTML = ""; if (!document.getElementById("vditorIconScript")) { iconHTML = ''; } item.innerHTML = "".concat(iconHTML, "").concat(item.innerHTML, ""); } else { item.innerHTML = "".concat(item.innerHTML, ""); } item.setAttribute("data-target-id", ids[index]); }); tocHTML = tempElement.firstElementChild.innerHTML; if (headingsElement.length === 0) { targetElement.innerHTML = ""; return tocHTML; } targetElement.innerHTML = tocHTML; if (vditor) { (0, _mathRender__WEBPACK_IMPORTED_MODULE_0__.H)(targetElement, { cdn: vditor.options.cdn, math: vditor.options.preview.math }); } targetElement.firstElementChild.addEventListener("click", function(event) { var target = event.target; while (target && !target.isEqualNode(targetElement)) { if (target.classList.contains("vditor-outline__action")) { if (target.classList.contains("vditor-outline__action--close")) { target.classList.remove("vditor-outline__action--close"); target.parentElement.nextElementSibling.setAttribute("style", "display:block"); } else { target.classList.add("vditor-outline__action--close"); target.parentElement.nextElementSibling.setAttribute("style", "display:none"); } event.preventDefault(); event.stopPropagation(); break; } else if (target.getAttribute("data-target-id")) { event.preventDefault(); event.stopPropagation(); var idElement = document.getElementById(target.getAttribute("data-target-id")); if (!idElement) { return; } if (vditor) { if (vditor.options.height === "auto") { var windowScrollY = idElement.offsetTop + vditor.element.offsetTop; if (!vditor.options.toolbarConfig.pin) { windowScrollY += vditor.toolbar.element.offsetHeight; } window.scrollTo(window.scrollX, windowScrollY); } else { if (vditor.element.offsetTop < window.scrollY) { window.scrollTo(window.scrollX, vditor.element.offsetTop); } if (vditor.preview.element.contains(contentElement)) { contentElement.parentElement.scrollTop = idElement.offsetTop; } else { contentElement.scrollTop = idElement.offsetTop; } } } else { window.scrollTo(window.scrollX, idElement.offsetTop); } break; } target = target.parentElement; } }); return tocHTML; }; } ), /***/ 229: ( /***/ (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => { "use strict"; __webpack_require__2.d(__webpack_exports__2, { /* harmony export */ "B": () => ( /* binding */ plantumlRender ) /* harmony export */ }); var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__2(145); var _util_addScript__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__2(413); var _adapterRender__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__2(840); var plantumlRender = function(element, cdn) { if (element === void 0) { element = document; } if (cdn === void 0) { cdn = _constants__WEBPACK_IMPORTED_MODULE_0__.g.CDN; } var plantumlElements = _adapterRender__WEBPACK_IMPORTED_MODULE_1__.plantumlRenderAdapter.getElements(element); if (plantumlElements.length === 0) { return; } (0, _util_addScript__WEBPACK_IMPORTED_MODULE_2__.G)("".concat(cdn, "/dist/js/plantuml/plantuml-encoder.min.js"), "vditorPlantumlScript").then(function() { plantumlElements.forEach(function(e) { if (e.parentElement.classList.contains("vditor-wysiwyg__pre") || e.parentElement.classList.contains("vditor-ir__marker--pre")) { return; } var text = _adapterRender__WEBPACK_IMPORTED_MODULE_1__.plantumlRenderAdapter.getCode(e).trim(); if (!text) { return; } try { e.innerHTML = ''); } catch (error) { e.className = "vditor-reset--error"; e.innerHTML = "plantuml render error:
".concat(error); } }); }); }; } ), /***/ 214: ( /***/ (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => { "use strict"; __webpack_require__2.d(__webpack_exports__2, { /* harmony export */ "X": () => ( /* binding */ setLute ) /* harmony export */ }); var setLute = function(options) { var lute = Lute.New(); lute.PutEmojis(options.emojis); lute.SetEmojiSite(options.emojiSite); lute.SetHeadingAnchor(options.headingAnchor); lute.SetInlineMathAllowDigitAfterOpenMarker(options.inlineMathDigit); lute.SetAutoSpace(options.autoSpace); lute.SetToC(options.toc); lute.SetFootnotes(options.footnotes); lute.SetFixTermTypo(options.fixTermTypo); lute.SetVditorCodeBlockPreview(options.codeBlockPreview); lute.SetVditorMathBlockPreview(options.mathBlockPreview); lute.SetSanitize(options.sanitize); lute.SetChineseParagraphBeginningSpace(options.paragraphBeginningSpace); lute.SetRenderListStyle(options.listStyle); lute.SetLinkBase(options.linkBase); lute.SetLinkPrefix(options.linkPrefix); lute.SetMark(options.mark); lute.SetGFMAutoLink(options.gfmAutoLink); if (options.lazyLoadImage) { lute.SetImageLazyLoading(options.lazyLoadImage); } return lute; }; } ), /***/ 190: ( /***/ (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => { "use strict"; __webpack_require__2.d(__webpack_exports__2, { /* harmony export */ "E": () => ( /* binding */ previewImage ) /* harmony export */ }); var previewImage = function(oldImgElement, lang, theme) { if (lang === void 0) { lang = "zh_CN"; } if (theme === void 0) { theme = "classic"; } var oldImgRect = oldImgElement.getBoundingClientRect(); var height = 36; document.body.insertAdjacentHTML("beforeend", '
\n
\n \n \n ').concat(window.VditorI18n.spin, ` X  `).concat(window.VditorI18n.close, `
\n
\n
')); document.body.style.overflow = "hidden"; var imgElement = document.querySelector(".vditor-img img"); var translate3d = "translate3d(".concat(Math.max(0, window.innerWidth - oldImgElement.naturalWidth) / 2, "px, ").concat(Math.max(0, window.innerHeight - height - oldImgElement.naturalHeight) / 2, "px, 0)"); setTimeout(function() { imgElement.setAttribute("style", "transition: transform .3s ease-in-out;transform: ".concat(translate3d)); setTimeout(function() { imgElement.parentElement.scrollTo((imgElement.parentElement.scrollWidth - imgElement.parentElement.clientWidth) / 2, (imgElement.parentElement.scrollHeight - imgElement.parentElement.clientHeight) / 2); }, 400); }); var btnElement = document.querySelector(".vditor-img__btn"); btnElement.addEventListener("click", function() { var deg = parseInt(btnElement.getAttribute("data-deg"), 10) + 90; if (deg / 90 % 2 === 1 && oldImgElement.naturalWidth > imgElement.parentElement.clientHeight) { imgElement.style.transform = "translate3d(".concat(Math.max(0, window.innerWidth - oldImgElement.naturalWidth) / 2, "px, ").concat(oldImgElement.naturalWidth / 2 - oldImgElement.naturalHeight / 2, "px, 0) rotateZ(").concat(deg, "deg)"); } else { imgElement.style.transform = "".concat(translate3d, " rotateZ(").concat(deg, "deg)"); } btnElement.setAttribute("data-deg", deg.toString()); setTimeout(function() { imgElement.parentElement.scrollTo((imgElement.parentElement.scrollWidth - imgElement.parentElement.clientWidth) / 2, (imgElement.parentElement.scrollHeight - imgElement.parentElement.clientHeight) / 2); }, 400); }); }; } ), /***/ 580: ( /***/ (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => { "use strict"; __webpack_require__2.d(__webpack_exports__2, { /* harmony export */ "Y": () => ( /* binding */ setCodeTheme ) /* harmony export */ }); var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__2(145); var _util_addStyle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__2(290); var setCodeTheme = function(codeTheme, cdn) { if (cdn === void 0) { cdn = _constants__WEBPACK_IMPORTED_MODULE_0__.g.CDN; } if (!_constants__WEBPACK_IMPORTED_MODULE_0__.g.CODE_THEME.includes(codeTheme)) { codeTheme = "github"; } var vditorHljsStyle = document.getElementById("vditorHljsStyle"); var href = "".concat(cdn, "/dist/js/highlight.js/styles/").concat(codeTheme, ".min.css"); if (!vditorHljsStyle) { (0, _util_addStyle__WEBPACK_IMPORTED_MODULE_1__.c)(href, "vditorHljsStyle"); } else if (vditorHljsStyle.getAttribute("href") !== href) { vditorHljsStyle.remove(); (0, _util_addStyle__WEBPACK_IMPORTED_MODULE_1__.c)(href, "vditorHljsStyle"); } }; } ), /***/ 538: ( /***/ (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => { "use strict"; __webpack_require__2.d(__webpack_exports__2, { /* harmony export */ "Z": () => ( /* binding */ setContentTheme ) /* harmony export */ }); var _util_addStyle__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__2(290); var setContentTheme = function(contentTheme, path) { if (!contentTheme || !path) { return; } var vditorContentTheme = document.getElementById("vditorContentTheme"); var cssPath = "".concat(path, "/").concat(contentTheme, ".css"); if (!vditorContentTheme) { (0, _util_addStyle__WEBPACK_IMPORTED_MODULE_0__.c)(cssPath, "vditorContentTheme"); } else if (vditorContentTheme.getAttribute("href") !== cssPath) { vditorContentTheme.remove(); (0, _util_addStyle__WEBPACK_IMPORTED_MODULE_0__.c)(cssPath, "vditorContentTheme"); } }; } ), /***/ 413: ( /***/ (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => { "use strict"; __webpack_require__2.d(__webpack_exports__2, { /* harmony export */ "J": () => ( /* binding */ addScriptSync ), /* harmony export */ "G": () => ( /* binding */ addScript ) /* harmony export */ }); var addScriptSync = function(path, id) { if (document.getElementById(id)) { return false; } var xhrObj = new XMLHttpRequest(); xhrObj.open("GET", path, false); xhrObj.setRequestHeader("Accept", "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript, */*; q=0.01"); xhrObj.send(""); var scriptElement = document.createElement("script"); scriptElement.type = "text/javascript"; scriptElement.text = xhrObj.responseText; scriptElement.id = id; document.head.appendChild(scriptElement); }; var addScript = function(path, id) { return new Promise(function(resolve, reject) { if (document.getElementById(id)) { resolve(true); return false; } var scriptElement = document.createElement("script"); scriptElement.src = path; scriptElement.async = true; document.head.appendChild(scriptElement); scriptElement.onerror = function(event) { reject(event); }; scriptElement.onload = function() { if (document.getElementById(id)) { scriptElement.remove(); resolve(true); return false; } scriptElement.id = id; resolve(true); }; }); }; } ), /***/ 290: ( /***/ (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => { "use strict"; __webpack_require__2.d(__webpack_exports__2, { /* harmony export */ "c": () => ( /* binding */ addStyle ) /* harmony export */ }); var addStyle = function(url, id) { if (!document.getElementById(id)) { var styleElement = document.createElement("link"); styleElement.id = id; styleElement.rel = "stylesheet"; styleElement.type = "text/css"; styleElement.href = url; document.getElementsByTagName("head")[0].appendChild(styleElement); } }; } ), /***/ 105: ( /***/ (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => { "use strict"; __webpack_require__2.d(__webpack_exports__2, { /* harmony export */ "X": () => ( /* binding */ code160to32 ) /* harmony export */ }); var code160to32 = function(text) { return text.replace(/\u00a0/g, " "); }; } ), /***/ 410: ( /***/ (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => { "use strict"; __webpack_require__2.d(__webpack_exports__2, { /* harmony export */ "G6": () => ( /* binding */ isSafari ), /* harmony export */ "vU": () => ( /* binding */ isFirefox ), /* harmony export */ "pK": () => ( /* binding */ accessLocalStorage ), /* harmony export */ "Le": () => ( /* binding */ getEventName ), /* harmony export */ "yl": () => ( /* binding */ isCtrl ), /* harmony export */ "ns": () => ( /* binding */ updateHotkeyTip ), /* harmony export */ "i7": () => ( /* binding */ isChrome ) /* harmony export */ }); var isSafari = function() { return navigator.userAgent.indexOf("Safari") > -1 && navigator.userAgent.indexOf("Chrome") === -1; }; var isFirefox = function() { return navigator.userAgent.toLowerCase().indexOf("firefox") > -1; }; var accessLocalStorage = function() { try { return typeof localStorage !== "undefined"; } catch (e) { return false; } }; var getEventName = function() { if (navigator.userAgent.indexOf("iPhone") > -1) { return "touchstart"; } else { return "click"; } }; var isCtrl = function(event) { if (navigator.platform.toUpperCase().indexOf("MAC") >= 0) { if (event.metaKey && !event.ctrlKey) { return true; } return false; } else { if (!event.metaKey && event.ctrlKey) { return true; } return false; } }; var updateHotkeyTip = function(hotkey) { if (/Mac/.test(navigator.platform) || navigator.platform === "iPhone") { if (hotkey.indexOf("⇧") > -1 && isFirefox()) { hotkey = hotkey.replace(";", ":").replace("=", "+").replace("-", "_"); } } else { if (hotkey.startsWith("⌘")) { hotkey = hotkey.replace("⌘", "⌘+"); } else if (hotkey.startsWith("⌥") && hotkey.substr(1, 1) !== "⌘") { hotkey = hotkey.replace("⌥", "⌥+"); } else { hotkey = hotkey.replace("⇧⌘", "⌘+⇧+").replace("⌥⌘", "⌥+⌘+"); } hotkey = hotkey.replace("⌘", "Ctrl").replace("⇧", "Shift").replace("⌥", "Alt"); if (hotkey.indexOf("Shift") > -1) { hotkey = hotkey.replace(";", ":").replace("=", "+").replace("-", "_"); } } return hotkey; }; var isChrome = function() { return /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor); }; } ), /***/ 494: ( /***/ (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => { "use strict"; __webpack_require__2.d(__webpack_exports__2, { /* harmony export */ "Wb": () => ( /* binding */ genUUID ), /* harmony export */ "on": () => ( /* binding */ getSearch ), /* harmony export */ "Qf": () => ( /* binding */ looseJsonParse ) /* harmony export */ }); var genUUID = function() { return ([1e7].toString() + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, function(c) { return (parseInt(c, 10) ^ window.crypto.getRandomValues(new Uint32Array(1))[0] & 15 >> parseInt(c, 10) / 4).toString(16); }); }; var getSearch = function(key, link) { if (link === void 0) { link = window.location.search; } var params = link.substring(link.indexOf("?")); var hashIndex = params.indexOf("#"); var urlSearchParams = new URLSearchParams(params.substring(0, hashIndex >= 0 ? hashIndex : void 0)); return urlSearchParams.get(key); }; var looseJsonParse = function(text) { return Function('"use strict";return ('.concat(text, ")"))(); }; } ), /***/ 106: ( /***/ (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => { "use strict"; __webpack_require__2.d(__webpack_exports__2, { /* harmony export */ "JQ": () => ( /* binding */ hasTopClosestByClassName ), /* harmony export */ "E2": () => ( /* binding */ hasTopClosestByTag ), /* harmony export */ "O9": () => ( /* binding */ getTopList ), /* harmony export */ "a1": () => ( /* binding */ hasClosestByAttribute ), /* harmony export */ "F9": () => ( /* binding */ hasClosestBlock ), /* harmony export */ "lG": () => ( /* binding */ hasClosestByMatchTag ), /* harmony export */ "fb": () => ( /* binding */ hasClosestByClassName ), /* harmony export */ "DX": () => ( /* binding */ getLastNode ) /* harmony export */ }); var _hasClosestByHeadings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__2(771); var hasTopClosestByClassName = function(element, className) { var closest = hasClosestByClassName(element, className); var parentClosest = false; var findTop = false; while (closest && !closest.classList.contains("vditor-reset") && !findTop) { parentClosest = hasClosestByClassName(closest.parentElement, className); if (parentClosest) { closest = parentClosest; } else { findTop = true; } } return closest || false; }; var hasTopClosestByAttribute = function(element, attr, value) { var closest = hasClosestByAttribute(element, attr, value); var parentClosest = false; var findTop = false; while (closest && !closest.classList.contains("vditor-reset") && !findTop) { parentClosest = hasClosestByAttribute(closest.parentElement, attr, value); if (parentClosest) { closest = parentClosest; } else { findTop = true; } } return closest || false; }; var hasTopClosestByTag = function(element, nodeName) { var closest = (0, _hasClosestByHeadings__WEBPACK_IMPORTED_MODULE_0__.S)(element, nodeName); var parentClosest = false; var findTop = false; while (closest && !closest.classList.contains("vditor-reset") && !findTop) { parentClosest = (0, _hasClosestByHeadings__WEBPACK_IMPORTED_MODULE_0__.S)(closest.parentElement, nodeName); if (parentClosest) { closest = parentClosest; } else { findTop = true; } } return closest || false; }; var getTopList = function(element) { var topUlElement = hasTopClosestByTag(element, "UL"); var topOlElement = hasTopClosestByTag(element, "OL"); var topListElement = topUlElement; if (topOlElement && (!topUlElement || topUlElement && topOlElement.contains(topUlElement))) { topListElement = topOlElement; } return topListElement; }; var hasClosestByAttribute = function(element, attr, value) { if (!element) { return false; } if (element.nodeType === 3) { element = element.parentElement; } var e = element; var isClosest = false; while (e && !isClosest && !e.classList.contains("vditor-reset")) { if (e.getAttribute(attr) === value) { isClosest = true; } else { e = e.parentElement; } } return isClosest && e; }; var hasClosestBlock = function(element) { if (!element) { return false; } if (element.nodeType === 3) { element = element.parentElement; } var e = element; var isClosest = false; var blockElement = hasClosestByAttribute(element, "data-block", "0"); if (blockElement) { return blockElement; } while (e && !isClosest && !e.classList.contains("vditor-reset")) { if (e.tagName === "H1" || e.tagName === "H2" || e.tagName === "H3" || e.tagName === "H4" || e.tagName === "H5" || e.tagName === "H6" || e.tagName === "P" || e.tagName === "BLOCKQUOTE" || e.tagName === "OL" || e.tagName === "UL") { isClosest = true; } else { e = e.parentElement; } } return isClosest && e; }; var hasClosestByMatchTag = function(element, nodeName) { if (!element) { return false; } if (element.nodeType === 3) { element = element.parentElement; } var e = element; var isClosest = false; while (e && !isClosest && !e.classList.contains("vditor-reset")) { if (e.nodeName === nodeName) { isClosest = true; } else { e = e.parentElement; } } return isClosest && e; }; var hasClosestByClassName = function(element, className) { if (!element) { return false; } if (element.nodeType === 3) { element = element.parentElement; } var e = element; var isClosest = false; while (e && !isClosest && !e.classList.contains("vditor-reset")) { if (e.classList.contains(className)) { isClosest = true; } else { e = e.parentElement; } } return isClosest && e; }; var getLastNode = function(node) { while (node && node.lastChild) { node = node.lastChild; } return node; }; } ), /***/ 771: ( /***/ (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => { "use strict"; __webpack_require__2.d(__webpack_exports__2, { /* harmony export */ "S": () => ( /* binding */ hasClosestByTag ), /* harmony export */ "W": () => ( /* binding */ hasClosestByHeadings ) /* harmony export */ }); var hasClosestByTag = function(element, nodeName) { if (!element) { return false; } if (element.nodeType === 3) { element = element.parentElement; } var e = element; var isClosest = false; while (e && !isClosest && !e.classList.contains("vditor-reset")) { if (e.nodeName.indexOf(nodeName) === 0) { isClosest = true; } else { e = e.parentElement; } } return isClosest && e; }; var hasClosestByHeadings = function(element) { var headingElement = hasClosestByTag(element, "H"); if (headingElement && headingElement.tagName.length === 2 && headingElement.tagName !== "HR") { return headingElement; } return false; }; } ), /***/ 673: ( /***/ (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => { "use strict"; __webpack_require__2.d(__webpack_exports__2, { /* harmony export */ "T": () => ( /* binding */ merge ) /* harmony export */ }); var merge = function() { var options = []; for (var _i = 0; _i < arguments.length; _i++) { options[_i] = arguments[_i]; } var target = {}; var merger = function(obj) { for (var prop in obj) { if (obj.hasOwnProperty(prop)) { if (Object.prototype.toString.call(obj[prop]) === "[object Object]") { target[prop] = merge(target[prop], obj[prop]); } else { target[prop] = obj[prop]; } } } }; for (var i = 0; i < options.length; i++) { merger(options[i]); } return target; }; } ), /***/ 810: ( /***/ (__unused_webpack_module, __webpack_exports__2, __webpack_require__2) => { "use strict"; __webpack_require__2.d(__webpack_exports__2, { /* harmony export */ "zh": () => ( /* binding */ getEditorRange ), /* harmony export */ "Ny": () => ( /* binding */ getCursorPosition ), /* harmony export */ "Gb": () => ( /* binding */ selectIsEditor ), /* harmony export */ "Hc": () => ( /* binding */ setSelectionFocus ), /* harmony export */ "im": () => ( /* binding */ getSelectPosition ), /* harmony export */ "$j": () => ( /* binding */ setSelectionByPosition ), /* harmony export */ "ib": () => ( /* binding */ setRangeByWbr ), /* harmony export */ "oC": () => ( /* binding */ insertHTML ) /* harmony export */ }); var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__2(145); var _compatibility__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__2(410); var _hasClosest__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__2(106); var getEditorRange = function(vditor) { var range; var element = vditor[vditor.currentMode].element; if (getSelection().rangeCount > 0) { range = getSelection().getRangeAt(0); if (element.isEqualNode(range.startContainer) || element.contains(range.startContainer)) { return range; } } if (vditor[vditor.currentMode].range) { return vditor[vditor.currentMode].range; } element.focus(); range = element.ownerDocument.createRange(); range.setStart(element, 0); range.collapse(true); return range; }; var getCursorPosition = function(editor) { var range = window.getSelection().getRangeAt(0); if (!editor.contains(range.startContainer) && !(0, _hasClosest__WEBPACK_IMPORTED_MODULE_1__.fb)(range.startContainer, "vditor-panel--none")) { return { left: 0, top: 0 }; } var parentRect = editor.parentElement.getBoundingClientRect(); var cursorRect; if (range.getClientRects().length === 0) { if (range.startContainer.nodeType === 3) { var parent_1 = range.startContainer.parentElement; if (parent_1 && parent_1.getClientRects().length > 0) { cursorRect = parent_1.getClientRects()[0]; } else { return { left: 0, top: 0 }; } } else { var children = range.startContainer.children; if (children[range.startOffset] && children[range.startOffset].getClientRects().length > 0) { cursorRect = children[range.startOffset].getClientRects()[0]; } else if (range.startContainer.childNodes.length > 0) { var cloneRange = range.cloneRange(); range.selectNode(range.startContainer.childNodes[Math.max(0, range.startOffset - 1)]); cursorRect = range.getClientRects()[0]; range.setEnd(cloneRange.endContainer, cloneRange.endOffset); range.setStart(cloneRange.startContainer, cloneRange.startOffset); } else { cursorRect = range.startContainer.getClientRects()[0]; } if (!cursorRect) { var parentElement = range.startContainer.childNodes[range.startOffset]; while (!parentElement.getClientRects || parentElement.getClientRects && parentElement.getClientRects().length === 0) { parentElement = parentElement.parentElement; } cursorRect = parentElement.getClientRects()[0]; } } } else { cursorRect = range.getClientRects()[0]; } return { left: cursorRect.left - parentRect.left, top: cursorRect.top - parentRect.top }; }; var selectIsEditor = function(editor, range) { if (!range) { if (getSelection().rangeCount === 0) { return false; } else { range = getSelection().getRangeAt(0); } } var container = range.commonAncestorContainer; return editor.isEqualNode(container) || editor.contains(container); }; var setSelectionFocus = function(range) { var selection = window.getSelection(); selection.removeAllRanges(); selection.addRange(range); }; var getSelectPosition = function(selectElement, editorElement, range) { var position = { end: 0, start: 0 }; if (!range) { if (getSelection().rangeCount === 0) { return position; } range = window.getSelection().getRangeAt(0); } if (selectIsEditor(editorElement, range)) { var preSelectionRange = range.cloneRange(); if (selectElement.childNodes[0] && selectElement.childNodes[0].childNodes[0]) { preSelectionRange.setStart(selectElement.childNodes[0].childNodes[0], 0); } else { preSelectionRange.selectNodeContents(selectElement); } preSelectionRange.setEnd(range.startContainer, range.startOffset); position.start = preSelectionRange.toString().length; position.end = position.start + range.toString().length; } return position; }; var setSelectionByPosition = function(start, end, editor) { var charIndex = 0; var line = 0; var pNode = editor.childNodes[line]; var foundStart = false; var stop = false; start = Math.max(0, start); end = Math.max(0, end); var range = editor.ownerDocument.createRange(); range.setStart(pNode || editor, 0); range.collapse(true); while (!stop && pNode) { var nextCharIndex = charIndex + pNode.textContent.length; if (!foundStart && start >= charIndex && start <= nextCharIndex) { if (start === 0) { range.setStart(pNode, 0); } else { if (pNode.childNodes[0].nodeType === 3) { range.setStart(pNode.childNodes[0], start - charIndex); } else if (pNode.nextSibling) { range.setStartBefore(pNode.nextSibling); } else { range.setStartAfter(pNode); } } foundStart = true; if (start === end) { stop = true; break; } } if (foundStart && end >= charIndex && end <= nextCharIndex) { if (end === 0) { range.setEnd(pNode, 0); } else { if (pNode.childNodes[0].nodeType === 3) { range.setEnd(pNode.childNodes[0], end - charIndex); } else if (pNode.nextSibling) { range.setEndBefore(pNode.nextSibling); } else { range.setEndAfter(pNode); } } stop = true; } charIndex = nextCharIndex; pNode = editor.childNodes[++line]; } if (!stop && editor.childNodes[line - 1]) { range.setStartBefore(editor.childNodes[line - 1]); } setSelectionFocus(range); return range; }; var setRangeByWbr = function(element, range) { var wbrElement = element.querySelector("wbr"); if (!wbrElement) { return; } if (!wbrElement.previousElementSibling) { if (wbrElement.previousSibling) { range.setStart(wbrElement.previousSibling, wbrElement.previousSibling.textContent.length); } else if (wbrElement.nextSibling) { if (wbrElement.nextSibling.nodeType === 3) { range.setStart(wbrElement.nextSibling, 0); } else { range.setStartBefore(wbrElement.nextSibling); } } else { range.setStart(wbrElement.parentElement, 0); } } else { if (wbrElement.previousElementSibling.isSameNode(wbrElement.previousSibling)) { if (wbrElement.previousElementSibling.lastChild) { range.setStartBefore(wbrElement); range.collapse(true); setSelectionFocus(range); if ((0, _compatibility__WEBPACK_IMPORTED_MODULE_2__.i7)() && (wbrElement.previousElementSibling.tagName === "EM" || wbrElement.previousElementSibling.tagName === "STRONG" || wbrElement.previousElementSibling.tagName === "S")) { range.insertNode(document.createTextNode(_constants__WEBPACK_IMPORTED_MODULE_0__.g.ZWSP)); range.collapse(false); } wbrElement.remove(); return; } else { range.setStartAfter(wbrElement.previousElementSibling); } } else { range.setStart(wbrElement.previousSibling, wbrElement.previousSibling.textContent.length); } } range.collapse(true); wbrElement.remove(); setSelectionFocus(range); }; var insertHTML = function(html, vditor) { var tempElement = document.createElement("div"); tempElement.innerHTML = html; var tempBlockElement = tempElement.querySelectorAll("p"); if (tempBlockElement.length === 1 && !tempBlockElement[0].previousSibling && !tempBlockElement[0].nextSibling && vditor[vditor.currentMode].element.children.length > 0 && tempElement.firstElementChild.tagName === "P") { html = tempBlockElement[0].innerHTML.trim(); } var pasteElement = document.createElement("div"); pasteElement.innerHTML = html; var range = getEditorRange(vditor); if (range.toString() !== "") { vditor[vditor.currentMode].preventInput = true; document.execCommand("delete", false, ""); } if (pasteElement.firstElementChild && pasteElement.firstElementChild.getAttribute("data-block") === "0") { pasteElement.lastElementChild.insertAdjacentHTML("beforeend", ""); var blockElement = (0, _hasClosest__WEBPACK_IMPORTED_MODULE_1__.F9)(range.startContainer); if (!blockElement) { vditor[vditor.currentMode].element.insertAdjacentHTML("beforeend", pasteElement.innerHTML); } else { var liElement = (0, _hasClosest__WEBPACK_IMPORTED_MODULE_1__.lG)(range.startContainer, "LI"); if (liElement && pasteElement.firstElementChild.tagName === "UL") { liElement.insertAdjacentHTML("afterend", pasteElement.firstElementChild.innerHTML); } else { blockElement.insertAdjacentHTML("afterend", pasteElement.innerHTML); } } setRangeByWbr(vditor[vditor.currentMode].element, range); } else { var pasteTemplate = document.createElement("template"); pasteTemplate.innerHTML = html; range.insertNode(pasteTemplate.content.cloneNode(true)); range.collapse(false); setSelectionFocus(range); } }; } ) /******/ }; var __webpack_module_cache__ = {}; function __webpack_require__(moduleId) { var cachedModule = __webpack_module_cache__[moduleId]; if (cachedModule !== void 0) { return cachedModule.exports; } var module2 = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; __webpack_modules__[moduleId](module2, module2.exports, __webpack_require__); return module2.exports; } (() => { __webpack_require__.d = (exports2, definition) => { for (var key in definition) { if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports2, key)) { Object.defineProperty(exports2, key, { enumerable: true, get: definition[key] }); } } }; })(); (() => { __webpack_require__.o = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop); })(); (() => { __webpack_require__.r = (exports2) => { if (typeof Symbol !== "undefined" && Symbol.toStringTag) { Object.defineProperty(exports2, Symbol.toStringTag, { value: "Module" }); } Object.defineProperty(exports2, "__esModule", { value: true }); }; })(); var __webpack_exports__ = {}; (() => { "use strict"; __webpack_require__.d(__webpack_exports__, { "default": () => ( /* binding */ src ) }); var method = __webpack_require__(408); var constants = __webpack_require__(145); var code160to32 = __webpack_require__(105); ; var getMarkdown = function(vditor) { if (vditor.currentMode === "sv") { return (0, code160to32.X)("".concat(vditor.sv.element.textContent, "\n").replace(/\n\n$/, "\n")); } else if (vditor.currentMode === "wysiwyg") { return vditor.lute.VditorDOM2Md(vditor.wysiwyg.element.innerHTML); } else if (vditor.currentMode === "ir") { return vditor.lute.VditorIRDOM2Md(vditor.ir.element.innerHTML); } return ""; }; var addScript = __webpack_require__(413); ; var DevTools = ( /** @class */ function() { function DevTools2() { this.element = document.createElement("div"); this.element.className = "vditor-devtools"; this.element.innerHTML = '
'; } DevTools2.prototype.renderEchart = function(vditor) { var _this = this; if (vditor.devtools.element.style.display !== "block") { return; } (0, addScript.G)("".concat(vditor.options.cdn, "/dist/js/echarts/echarts.min.js?v=5.5.1"), "vditorEchartsScript").then(function() { if (!_this.ASTChart) { _this.ASTChart = echarts.init(vditor.devtools.element.lastElementChild); } try { _this.element.lastElementChild.style.display = "block"; _this.element.firstElementChild.innerHTML = ""; _this.ASTChart.setOption({ series: [ { data: JSON.parse(vditor.lute.RenderEChartsJSON(getMarkdown(vditor))), initialTreeDepth: -1, label: { align: "left", backgroundColor: "rgba(68, 77, 86, .68)", borderRadius: 3, color: "#d1d5da", fontSize: 12, lineHeight: 12, offset: [9, 12], padding: [2, 4, 2, 4], position: "top", verticalAlign: "middle" }, lineStyle: { color: "#4285f4", type: "curve", width: 1 }, orient: "vertical", roam: true, type: "tree" } ], toolbox: { bottom: 25, emphasis: { iconStyle: { color: "#4285f4" } }, feature: { restore: { show: true }, saveAsImage: { show: true } }, right: 15, show: true } }); _this.ASTChart.resize(); } catch (e) { _this.element.lastElementChild.style.display = "none"; _this.element.firstElementChild.innerHTML = e; } }); }; return DevTools2; }() ); var compatibility = __webpack_require__(410); ; var removeCurrentToolbar = function(toolbar, names) { names.forEach(function(name) { if (!toolbar[name]) { return; } var itemElement = toolbar[name].children[0]; if (itemElement && itemElement.classList.contains("vditor-menu--current")) { itemElement.classList.remove("vditor-menu--current"); } }); }; var setCurrentToolbar = function(toolbar, names) { names.forEach(function(name) { if (!toolbar[name]) { return; } var itemElement = toolbar[name].children[0]; if (itemElement && !itemElement.classList.contains("vditor-menu--current")) { itemElement.classList.add("vditor-menu--current"); } }); }; var enableToolbar = function(toolbar, names) { names.forEach(function(name) { if (!toolbar[name]) { return; } var itemElement = toolbar[name].children[0]; if (itemElement && itemElement.classList.contains(constants.g.CLASS_MENU_DISABLED)) { itemElement.classList.remove(constants.g.CLASS_MENU_DISABLED); } }); }; var disableToolbar = function(toolbar, names) { names.forEach(function(name) { if (!toolbar[name]) { return; } var itemElement = toolbar[name].children[0]; if (itemElement && !itemElement.classList.contains(constants.g.CLASS_MENU_DISABLED)) { itemElement.classList.add(constants.g.CLASS_MENU_DISABLED); } }); }; var hideToolbar = function(toolbar, names) { names.forEach(function(name) { if (!toolbar[name]) { return; } if (toolbar[name]) { toolbar[name].style.display = "none"; } }); }; var showToolbar = function(toolbar, names) { names.forEach(function(name) { if (!toolbar[name]) { return; } if (toolbar[name]) { toolbar[name].style.display = "block"; } }); }; var hidePanel = function(vditor, panels, exceptElement) { if (panels.includes("subToolbar")) { vditor.toolbar.element.querySelectorAll(".vditor-hint").forEach(function(item) { if (exceptElement && item.isEqualNode(exceptElement)) { return; } item.style.display = "none"; }); if (vditor.toolbar.elements.emoji) { vditor.toolbar.elements.emoji.lastElementChild.style.display = "none"; } } if (panels.includes("hint")) { vditor.hint.element.style.display = "none"; } if (vditor.wysiwyg.popover && panels.includes("popover")) { vditor.wysiwyg.popover.style.display = "none"; } }; var toggleSubMenu = function(vditor, panelElement, actionBtn, level) { actionBtn.addEventListener((0, compatibility.Le)(), function(event) { event.preventDefault(); event.stopPropagation(); if (actionBtn.classList.contains(constants.g.CLASS_MENU_DISABLED)) { return; } vditor.toolbar.element.querySelectorAll(".vditor-hint--current").forEach(function(item) { item.classList.remove("vditor-hint--current"); }); if (panelElement.style.display === "block") { panelElement.style.display = "none"; } else { hidePanel(vditor, ["subToolbar", "hint", "popover"], actionBtn.parentElement.parentElement); if (!actionBtn.classList.contains("vditor-tooltipped")) { actionBtn.classList.add("vditor-hint--current"); } panelElement.style.display = "block"; if (vditor.toolbar.element.getBoundingClientRect().right - actionBtn.getBoundingClientRect().right < 250) { panelElement.classList.add("vditor-panel--left"); } else { panelElement.classList.remove("vditor-panel--left"); } } }); }; var hasClosest = __webpack_require__(106); var hasClosestByHeadings = __webpack_require__(771); ; var log = function(method2, content, type, print) { if (print) { console.log("".concat(method2, " - ").concat(type, ": ").concat(content)); } }; var abcRender = __webpack_require__(135); var chartRender = __webpack_require__(775); var codeRender = __webpack_require__(428); var flowchartRender = __webpack_require__(325); var graphvizRender = __webpack_require__(483); var highlightRender = __webpack_require__(999); var mathRender = __webpack_require__(472); var mermaidRender = __webpack_require__(637); var markmapRender = __webpack_require__(11); var mindmapRender = __webpack_require__(194); var plantumlRender = __webpack_require__(229); var SMILESRender = __webpack_require__(825); ; var processPasteCode = function(html, text, type) { if (type === void 0) { type = "sv"; } var tempElement = document.createElement("div"); tempElement.innerHTML = html; var isCode = false; if (tempElement.childElementCount === 1 && tempElement.lastElementChild.style.fontFamily.indexOf("monospace") > -1) { isCode = true; } var pres = tempElement.querySelectorAll("pre"); if (tempElement.childElementCount === 1 && pres.length === 1 && pres[0].className !== "vditor-wysiwyg" && pres[0].className !== "vditor-sv") { isCode = true; } if (html.indexOf('\n

') === 0) { isCode = true; } if (tempElement.childElementCount === 1 && tempElement.firstElementChild.tagName === "TABLE" && tempElement.querySelector(".line-number") && tempElement.querySelector(".line-content")) { isCode = true; } if (isCode) { var code = text || html; if (/\n/.test(code) || pres.length === 1) { if (type === "wysiwyg") { return '

'.concat(code.replace(/&/g, "&").replace(/
"); } return "\n```\n" + code.replace(/&/g, "&").replace(/".concat(code.replace(/&/g, "&").replace(/"); } return "`".concat(code, "`"); } } return false; }; var processCodeRender = function(previewPanel, vditor) { if (!previewPanel) { return; } if (previewPanel.parentElement.getAttribute("data-type") === "html-block") { previewPanel.setAttribute("data-render", "1"); return; } var language = previewPanel.firstElementChild.className.replace("language-", ""); if (language === "abc") { (0, abcRender.Q)(previewPanel, vditor.options.cdn); } else if (language === "mermaid") { (0, mermaidRender.i)(previewPanel, vditor.options.cdn, vditor.options.theme); } else if (language === "smiles") { (0, SMILESRender.J)(previewPanel, vditor.options.cdn, vditor.options.theme); } else if (language === "markmap") { (0, markmapRender.K)(previewPanel, vditor.options.cdn); } else if (language === "flowchart") { (0, flowchartRender.P)(previewPanel, vditor.options.cdn); } else if (language === "echarts") { (0, chartRender.p)(previewPanel, vditor.options.cdn, vditor.options.theme); } else if (language === "mindmap") { (0, mindmapRender.P)(previewPanel, vditor.options.cdn, vditor.options.theme); } else if (language === "plantuml") { (0, plantumlRender.B)(previewPanel, vditor.options.cdn); } else if (language === "graphviz") { (0, graphvizRender.v)(previewPanel, vditor.options.cdn); } else if (language === "math") { (0, mathRender.H)(previewPanel, { cdn: vditor.options.cdn, math: vditor.options.preview.math }); } else { var cRender = vditor.options.customRenders.find(function(item) { if (item.language === language) { item.render(previewPanel, vditor); return true; } }); if (!cRender) { (0, highlightRender.s)(Object.assign({}, vditor.options.preview.hljs), previewPanel, vditor.options.cdn); (0, codeRender.O)(previewPanel, vditor.options.preview.hljs); } } previewPanel.setAttribute("data-render", "1"); }; var selection = __webpack_require__(810); ; var renderToc = function(vditor) { if (vditor.currentMode === "sv") { return; } var editorElement = vditor[vditor.currentMode].element; var tocHTML = vditor.outline.render(vditor); if (tocHTML === "") { tocHTML = "[ToC]"; } editorElement.querySelectorAll('[data-type="toc-block"]').forEach(function(item) { item.innerHTML = tocHTML; (0, mathRender.H)(item, { cdn: vditor.options.cdn, math: vditor.options.preview.math }); }); }; var clickToc = function(event, vditor) { var spanElement = (0, hasClosest.lG)(event.target, "SPAN"); if (spanElement && (0, hasClosest.fb)(spanElement, "vditor-toc")) { var headingElement = vditor[vditor.currentMode].element.querySelector("#" + spanElement.getAttribute("data-target-id")); if (headingElement) { if (vditor.options.height === "auto") { var windowScrollY = headingElement.offsetTop + vditor.element.offsetTop; if (!vditor.options.toolbarConfig.pin) { windowScrollY += vditor.toolbar.element.offsetHeight; } window.scrollTo(window.scrollX, windowScrollY); } else { if (vditor.element.offsetTop < window.scrollY) { window.scrollTo(window.scrollX, vditor.element.offsetTop); } vditor[vditor.currentMode].element.scrollTop = headingElement.offsetTop; } } return; } }; var keydownToc = function(blockElement, vditor, event, range) { if (blockElement.previousElementSibling && blockElement.previousElementSibling.classList.contains("vditor-toc")) { if (event.key === "Backspace" && (0, selection.im)(blockElement, vditor[vditor.currentMode].element, range).start === 0) { blockElement.previousElementSibling.remove(); execAfterRender(vditor); return true; } if (insertBeforeBlock(vditor, event, range, blockElement, blockElement.previousElementSibling)) { return true; } } if (blockElement.nextElementSibling && blockElement.nextElementSibling.classList.contains("vditor-toc")) { if (event.key === "Delete" && (0, selection.im)(blockElement, vditor[vditor.currentMode].element, range).start >= blockElement.textContent.trimRight().length) { blockElement.nextElementSibling.remove(); execAfterRender(vditor); return true; } if (insertAfterBlock(vditor, event, range, blockElement, blockElement.nextElementSibling)) { return true; } } if (event.key === "Backspace" || event.key === "Delete") { var tocElement = (0, hasClosest.fb)(range.startContainer, "vditor-toc"); if (tocElement) { tocElement.remove(); execAfterRender(vditor); return true; } } }; ; var input = function(vditor, range, ignoreSpace, event) { if (ignoreSpace === void 0) { ignoreSpace = false; } var blockElement = (0, hasClosest.F9)(range.startContainer); if (blockElement && !ignoreSpace && blockElement.getAttribute("data-type") !== "code-block") { if (isHrMD(blockElement.innerHTML) && blockElement.previousElementSibling || isHeadingMD(blockElement.innerHTML)) { return; } var startOffset = (0, selection.im)(blockElement, vditor.ir.element, range).start; var startSpace = true; for ( var i = startOffset - 1; // 软换行后有空格 i > blockElement.textContent.substr(0, startOffset).lastIndexOf("\n"); i-- ) { if (blockElement.textContent.charAt(i) !== " " && // 多个 tab 前删除不形成代码块 https://github.com/Vanessa219/vditor/issues/162 1 blockElement.textContent.charAt(i) !== " ") { startSpace = false; break; } } if (startOffset === 0) { startSpace = false; } var endSpace = true; for (var i = startOffset - 1; i < blockElement.textContent.length; i++) { if (blockElement.textContent.charAt(i) !== " " && blockElement.textContent.charAt(i) !== "\n") { endSpace = false; break; } } if (startSpace) { if (typeof vditor.options.input === "function") { vditor.options.input(getMarkdown(vditor)); } return; } if (endSpace && /^#{1,6} $/.test(blockElement.textContent)) { endSpace = false; } if (endSpace) { var markerElement = (0, hasClosest.fb)(range.startContainer, "vditor-ir__marker"); if (markerElement) { } else { var previousNode = range.startContainer.previousSibling; if (previousNode && previousNode.nodeType !== 3 && previousNode.classList.contains("vditor-ir__node--expand")) { previousNode.classList.remove("vditor-ir__node--expand"); } if (typeof vditor.options.input === "function") { vditor.options.input(getMarkdown(vditor)); } return; } } } vditor.ir.element.querySelectorAll(".vditor-ir__node--expand").forEach(function(item) { item.classList.remove("vditor-ir__node--expand"); }); if (!blockElement) { blockElement = vditor.ir.element; } if (!blockElement.querySelector("wbr")) { var previewRenderElement = (0, hasClosest.fb)(range.startContainer, "vditor-ir__preview"); if (previewRenderElement) { previewRenderElement.previousElementSibling.insertAdjacentHTML("beforeend", ""); } else { range.insertNode(document.createElement("wbr")); } } blockElement.querySelectorAll("[style]").forEach(function(item) { item.removeAttribute("style"); }); if (blockElement.getAttribute("data-type") === "link-ref-defs-block") { blockElement = vditor.ir.element; } var isIRElement = blockElement.isEqualNode(vditor.ir.element); var footnoteElement = (0, hasClosest.a1)(blockElement, "data-type", "footnotes-block"); var html = ""; if (!isIRElement) { var blockquoteElement = (0, hasClosestByHeadings.S)(range.startContainer, "BLOCKQUOTE"); var topListElement = (0, hasClosest.O9)(range.startContainer); if (topListElement) { blockElement = topListElement; } if (blockquoteElement && (!topListElement || topListElement && !blockquoteElement.contains(topListElement))) { blockElement = blockquoteElement; } if (footnoteElement) { blockElement = footnoteElement; } html = blockElement.outerHTML; if (blockElement.tagName === "UL" || blockElement.tagName === "OL") { var listPrevElement = blockElement.previousElementSibling; var listNextElement = blockElement.nextElementSibling; if (listPrevElement && (listPrevElement.tagName === "UL" || listPrevElement.tagName === "OL")) { html = listPrevElement.outerHTML + html; listPrevElement.remove(); } if (listNextElement && (listNextElement.tagName === "UL" || listNextElement.tagName === "OL")) { html = html + listNextElement.outerHTML; listNextElement.remove(); } html = html.replace("

", "

  • "); } else if (blockElement.previousElementSibling && blockElement.previousElementSibling.textContent.replace(constants.g.ZWSP, "") !== "" && event && event.inputType === "insertParagraph") { html = blockElement.previousElementSibling.outerHTML + html; blockElement.previousElementSibling.remove(); } if (!blockElement.innerText.startsWith("```")) { vditor.ir.element.querySelectorAll("[data-type='link-ref-defs-block']").forEach(function(item) { if (item && !blockElement.isEqualNode(item)) { html += item.outerHTML; item.remove(); } }); vditor.ir.element.querySelectorAll("[data-type='footnotes-block']").forEach(function(item) { if (item && !blockElement.isEqualNode(item)) { html += item.outerHTML; item.remove(); } }); } } else { html = blockElement.innerHTML; } log("SpinVditorIRDOM", html, "argument", vditor.options.debugger); html = vditor.lute.SpinVditorIRDOM(html); log("SpinVditorIRDOM", html, "result", vditor.options.debugger); if (isIRElement) { blockElement.innerHTML = html; } else { blockElement.outerHTML = html; if (footnoteElement) { var footnoteItemElement = (0, hasClosest.a1)(vditor.ir.element.querySelector("wbr"), "data-type", "footnotes-def"); if (footnoteItemElement) { var footnoteItemText = footnoteItemElement.textContent; var marker = footnoteItemText.substring(1, footnoteItemText.indexOf("]:")); var footnoteRefElement = vditor.ir.element.querySelector('sup[data-type="footnotes-ref"][data-footnotes-label="'.concat(marker, '"]')); if (footnoteRefElement) { footnoteRefElement.setAttribute("aria-label", footnoteItemText.substr(marker.length + 3).trim().substr(0, 24)); } } } } var firstLinkRefDefElement; var allLinkRefDefsElement = vditor.ir.element.querySelectorAll("[data-type='link-ref-defs-block']"); allLinkRefDefsElement.forEach(function(item, index) { if (index === 0) { firstLinkRefDefElement = item; } else { firstLinkRefDefElement.insertAdjacentHTML("beforeend", item.innerHTML); item.remove(); } }); if (allLinkRefDefsElement.length > 0) { vditor.ir.element.insertAdjacentElement("beforeend", allLinkRefDefsElement[0]); } var firstFootnoteElement; var allFootnoteElement = vditor.ir.element.querySelectorAll("[data-type='footnotes-block']"); allFootnoteElement.forEach(function(item, index) { if (index === 0) { firstFootnoteElement = item; } else { firstFootnoteElement.insertAdjacentHTML("beforeend", item.innerHTML); item.remove(); } }); if (allFootnoteElement.length > 0) { vditor.ir.element.insertAdjacentElement("beforeend", allFootnoteElement[0]); } (0, selection.ib)(vditor.ir.element, range); vditor.ir.element.querySelectorAll(".vditor-ir__preview[data-render='2']").forEach(function(item) { processCodeRender(item, vditor); }); renderToc(vditor); process_processAfterRender(vditor, { enableAddUndoStack: true, enableHint: true, enableInput: true }); }; ; var matchHotKey = function(hotKey, event) { if (hotKey === "") { return false; } if (hotKey.indexOf("⇧") === -1 && hotKey.indexOf("⌘") === -1 && hotKey.indexOf("⌥") === -1) { if (!(0, compatibility.yl)(event) && !event.altKey && !event.shiftKey && event.code === hotKey) { return true; } return false; } if (hotKey === "⇧Tab") { if (!(0, compatibility.yl)(event) && !event.altKey && event.shiftKey && event.code === "Tab") { return true; } return false; } var hotKeys = hotKey.split(""); if (hotKey.startsWith("⌥")) { var keyCode = hotKeys.length === 3 ? hotKeys[2] : hotKeys[1]; if ((hotKeys.length === 3 ? (0, compatibility.yl)(event) : !(0, compatibility.yl)(event)) && event.altKey && !event.shiftKey && event.code === (/^[0-9]$/.test(keyCode) ? "Digit" : "Key") + keyCode) { return true; } return false; } if (hotKey === "⌘Enter") { hotKeys = ["⌘", "Enter"]; } var hasShift = hotKeys.length > 2 && hotKeys[0] === "⇧"; var key = hasShift ? hotKeys[2] : hotKeys[1]; if (hasShift && ((0, compatibility.vU)() || !/Mac/.test(navigator.platform))) { if (key === "-") { key = "_"; } else if (key === "=") { key = "+"; } } if ((0, compatibility.yl)(event) && event.key.toLowerCase() === key.toLowerCase() && !event.altKey && (!hasShift && !event.shiftKey || hasShift && event.shiftKey)) { return true; } return false; }; ; var nextIsNode = function(range) { var startContainer = range.startContainer; if (startContainer.nodeType === 3 && startContainer.nodeValue.length !== range.startOffset) { return false; } var nextNode = startContainer.nextSibling; while (nextNode && nextNode.textContent === "") { nextNode = nextNode.nextSibling; } if (!nextNode) { var markerElement = (0, hasClosest.fb)(startContainer, "vditor-ir__marker"); if (markerElement && !markerElement.nextSibling) { var parentNextNode = startContainer.parentElement.parentElement.nextSibling; if (parentNextNode && parentNextNode.nodeType !== 3 && parentNextNode.classList.contains("vditor-ir__node")) { return parentNextNode; } } return false; } else if (nextNode && nextNode.nodeType !== 3 && nextNode.classList.contains("vditor-ir__node") && !nextNode.getAttribute("data-block")) { return nextNode; } return false; }; var previousIsNode = function(range) { var startContainer = range.startContainer; var previousNode = startContainer.previousSibling; if (startContainer.nodeType === 3 && range.startOffset === 0 && previousNode && previousNode.nodeType !== 3 && // *em*|text previousNode.classList.contains("vditor-ir__node") && !previousNode.getAttribute("data-block")) { return previousNode; } return false; }; var expandMarker = function(range, vditor) { vditor.ir.element.querySelectorAll(".vditor-ir__node--expand").forEach(function(item) { item.classList.remove("vditor-ir__node--expand"); }); var nodeElement = (0, hasClosest.JQ)(range.startContainer, "vditor-ir__node"); var nodeElementEnd = !range.collapsed && (0, hasClosest.JQ)(range.endContainer, "vditor-ir__node"); if (!range.collapsed && (!nodeElement || nodeElement !== nodeElementEnd)) { return; } if (nodeElement) { nodeElement.classList.add("vditor-ir__node--expand"); nodeElement.classList.remove("vditor-ir__node--hidden"); (0, selection.Hc)(range); } var nextNode = nextIsNode(range); if (nextNode) { nextNode.classList.add("vditor-ir__node--expand"); nextNode.classList.remove("vditor-ir__node--hidden"); return; } var previousNode = previousIsNode(range); if (previousNode) { previousNode.classList.add("vditor-ir__node--expand"); previousNode.classList.remove("vditor-ir__node--hidden"); return; } }; ; var processKeydown = function(vditor, event) { vditor.ir.composingLock = event.isComposing; if (event.isComposing) { return false; } if (event.key.indexOf("Arrow") === -1 && event.key !== "Meta" && event.key !== "Control" && event.key !== "Alt" && event.key !== "Shift" && event.key !== "CapsLock" && event.key !== "Escape" && !/^F\d{1,2}$/.test(event.key)) { vditor.undo.recordFirstPosition(vditor, event); } var range = (0, selection.zh)(vditor); var startContainer = range.startContainer; if (!fixGSKeyBackspace(event, vditor, startContainer)) { return false; } fixCJKPosition(range, vditor, event); fixHR(range); if (event.key !== "Enter" && event.key !== "Tab" && event.key !== "Backspace" && event.key.indexOf("Arrow") === -1 && !(0, compatibility.yl)(event) && event.key !== "Escape" && event.key !== "Delete") { return false; } var newlineElement = (0, hasClosest.a1)(startContainer, "data-newline", "1"); if (!(0, compatibility.yl)(event) && !event.altKey && !event.shiftKey && event.key === "Enter" && newlineElement && range.startOffset < newlineElement.textContent.length) { var beforeMarkerElement = newlineElement.previousElementSibling; if (beforeMarkerElement) { range.insertNode(document.createTextNode(beforeMarkerElement.textContent)); range.collapse(false); } var afterMarkerElement = newlineElement.nextSibling; if (afterMarkerElement) { range.insertNode(document.createTextNode(afterMarkerElement.textContent)); range.collapse(true); } } var pElement = (0, hasClosest.lG)(startContainer, "P"); if (fixMarkdown(event, vditor, pElement, range)) { return true; } if (fixList(range, vditor, pElement, event)) { return true; } if (fixBlockquote(vditor, range, event, pElement)) { return true; } var preRenderElement = (0, hasClosest.fb)(startContainer, "vditor-ir__marker--pre"); if (preRenderElement && preRenderElement.tagName === "PRE") { var codeRenderElement = preRenderElement.firstChild; if (fixCodeBlock(vditor, event, preRenderElement, range)) { return true; } if ((codeRenderElement.getAttribute("data-type") === "math-block" || codeRenderElement.getAttribute("data-type") === "html-block") && insertBeforeBlock(vditor, event, range, codeRenderElement, preRenderElement.parentElement)) { return true; } if (insertAfterBlock(vditor, event, range, codeRenderElement, preRenderElement.parentElement)) { return true; } } var preBeforeElement = (0, hasClosest.a1)(startContainer, "data-type", "code-block-info"); if (preBeforeElement) { if (event.key === "Enter" || event.key === "Tab") { range.selectNodeContents(preBeforeElement.nextElementSibling.firstChild); range.collapse(true); event.preventDefault(); hidePanel(vditor, ["hint"]); return true; } if (event.key === "Backspace") { var start = (0, selection.im)(preBeforeElement, vditor.ir.element).start; if (start === 1) { range.setStart(startContainer, 0); } if (start === 2) { vditor.hint.recentLanguage = ""; } } if (insertBeforeBlock(vditor, event, range, preBeforeElement, preBeforeElement.parentElement)) { hidePanel(vditor, ["hint"]); return true; } } var cellElement = (0, hasClosest.lG)(startContainer, "TD") || (0, hasClosest.lG)(startContainer, "TH"); if (event.key.indexOf("Arrow") > -1 && cellElement) { var tableElement = isFirstCell(cellElement); if (tableElement && insertBeforeBlock(vditor, event, range, cellElement, tableElement)) { return true; } var table2Element = isLastCell(cellElement); if (table2Element && insertAfterBlock(vditor, event, range, cellElement, table2Element)) { return true; } } if (fixTable(vditor, event, range)) { return true; } if (fixTask(vditor, range, event)) { return true; } if (fixTab(vditor, range, event)) { return true; } var headingElement = (0, hasClosestByHeadings.W)(startContainer); if (headingElement) { if (matchHotKey("⌘=", event)) { var headingMarkerElement = headingElement.querySelector(".vditor-ir__marker--heading"); if (headingMarkerElement && headingMarkerElement.textContent.trim().length > 1) { process_processHeading(vditor, headingMarkerElement.textContent.substr(1)); } event.preventDefault(); return true; } if (matchHotKey("⌘-", event)) { var headingMarkerElement = headingElement.querySelector(".vditor-ir__marker--heading"); if (headingMarkerElement && headingMarkerElement.textContent.trim().length < 6) { process_processHeading(vditor, headingMarkerElement.textContent.trim() + "# "); } event.preventDefault(); return true; } } var blockElement = (0, hasClosest.F9)(startContainer); if (event.key === "Backspace" && !(0, compatibility.yl)(event) && !event.shiftKey && !event.altKey && range.toString() === "") { if (fixDelete(vditor, range, event, pElement)) { return true; } if (blockElement && blockElement.previousElementSibling && blockElement.tagName !== "UL" && blockElement.tagName !== "OL" && (blockElement.previousElementSibling.getAttribute("data-type") === "code-block" || blockElement.previousElementSibling.getAttribute("data-type") === "math-block")) { var rangeStart = (0, selection.im)(blockElement, vditor.ir.element, range).start; if (rangeStart === 0 || rangeStart === 1 && blockElement.innerText.startsWith(constants.g.ZWSP)) { range.selectNodeContents(blockElement.previousElementSibling.querySelector(".vditor-ir__marker--pre code")); range.collapse(false); expandMarker(range, vditor); if (blockElement.textContent.trim().replace(constants.g.ZWSP, "") === "") { blockElement.remove(); process_processAfterRender(vditor); } event.preventDefault(); return true; } } if (headingElement) { var headingLength = headingElement.firstElementChild.textContent.length; if ((0, selection.im)(headingElement, vditor.ir.element).start === headingLength && headingLength !== 0) { range.setStart(headingElement.firstElementChild.firstChild, headingLength - 1); range.collapse(true); (0, selection.Hc)(range); } } } if ((event.key === "ArrowUp" || event.key === "ArrowDown") && blockElement) { blockElement.querySelectorAll(".vditor-ir__node").forEach(function(item) { if (!item.contains(startContainer)) { item.classList.add("vditor-ir__node--hidden"); } }); if (fixFirefoxArrowUpTable(event, blockElement, range)) { return true; } } fixCursorDownInlineMath(range, event.key); if (blockElement && keydownToc(blockElement, vditor, event, range)) { event.preventDefault(); return true; } return false; }; var preview_image = __webpack_require__(190); ; var combineFootnote = function(elements, afterCombine) { elements.querySelectorAll("[data-type=footnotes-link]").forEach(function(el) { var root = el.parentElement; var footnote = root.nextSibling; while (footnote) { if (footnote.textContent.startsWith(" ")) { var thisNode = footnote; thisNode.childNodes.forEach(function(node) { root.append(node.cloneNode(true)); }); footnote = footnote.nextSibling; thisNode.remove(); } else { break; } } afterCombine && afterCombine(root); }); }; ; var inputEvent = function(vditor, event) { var _a; var range = getSelection().getRangeAt(0).cloneRange(); var startContainer = range.startContainer; if (range.startContainer.nodeType !== 3 && range.startContainer.tagName === "DIV") { startContainer = range.startContainer.childNodes[range.startOffset - 1]; } var blockElement = (0, hasClosest.a1)(startContainer, "data-block", "0"); if (blockElement && event && (event.inputType === "deleteContentBackward" || event.data === " ")) { var startOffset = (0, selection.im)(blockElement, vditor.sv.element, range).start; var startSpace = true; for ( var i = startOffset - 1; // 软换行后有空格 i > blockElement.textContent.substr(0, startOffset).lastIndexOf("\n"); i-- ) { if (blockElement.textContent.charAt(i) !== " " && // 多个 tab 前删除不形成代码块 https://github.com/Vanessa219/vditor/issues/162 1 blockElement.textContent.charAt(i) !== " ") { startSpace = false; break; } } if (startOffset === 0) { startSpace = false; } if (startSpace) { processAfterRender(vditor); return; } if (event.inputType === "deleteContentBackward") { var codeBlockMarkerElement = (0, hasClosest.a1)(startContainer, "data-type", "code-block-open-marker") || (0, hasClosest.a1)(startContainer, "data-type", "code-block-close-marker"); if (codeBlockMarkerElement) { if (codeBlockMarkerElement.getAttribute("data-type") === "code-block-close-marker") { var openMarkerElement = getSideByType(startContainer, "code-block-open-marker"); if (openMarkerElement) { openMarkerElement.textContent = codeBlockMarkerElement.textContent; processAfterRender(vditor); return; } } if (codeBlockMarkerElement.getAttribute("data-type") === "code-block-open-marker") { var openMarkerElement = getSideByType(startContainer, "code-block-close-marker", false); if (openMarkerElement) { openMarkerElement.textContent = codeBlockMarkerElement.textContent; processAfterRender(vditor); return; } } } var mathBlockMarkerElement = (0, hasClosest.a1)(startContainer, "data-type", "math-block-open-marker"); if (mathBlockMarkerElement) { var mathBlockCloseElement = mathBlockMarkerElement.nextElementSibling.nextElementSibling; if (mathBlockCloseElement && mathBlockCloseElement.getAttribute("data-type") === "math-block-close-marker") { mathBlockCloseElement.remove(); processAfterRender(vditor); } return; } blockElement.querySelectorAll('[data-type="code-block-open-marker"]').forEach(function(item) { if (item.textContent.length === 1) { item.remove(); } }); blockElement.querySelectorAll('[data-type="code-block-close-marker"]').forEach(function(item) { if (item.textContent.length === 1) { item.remove(); } }); var headingElement = (0, hasClosest.a1)(startContainer, "data-type", "heading-marker"); if (headingElement && headingElement.textContent.indexOf("#") === -1) { processAfterRender(vditor); return; } } if ((event.data === " " || event.inputType === "deleteContentBackward") && ((0, hasClosest.a1)(startContainer, "data-type", "padding") || (0, hasClosest.a1)(startContainer, "data-type", "li-marker") || (0, hasClosest.a1)(startContainer, "data-type", "task-marker") || (0, hasClosest.a1)(startContainer, "data-type", "blockquote-marker"))) { processAfterRender(vditor); return; } } if (blockElement && blockElement.textContent.trimRight() === "$$") { processAfterRender(vditor); return; } if (!blockElement) { blockElement = vditor.sv.element; } if (((_a = blockElement.firstElementChild) === null || _a === void 0 ? void 0 : _a.getAttribute("data-type")) === "link-ref-defs-block") { blockElement = vditor.sv.element; } if ((0, hasClosest.a1)(startContainer, "data-type", "footnotes-link")) { blockElement = vditor.sv.element; } if (blockElement.textContent.indexOf(Lute.Caret) === -1) { range.insertNode(document.createTextNode(Lute.Caret)); } blockElement.querySelectorAll("[style]").forEach(function(item) { item.removeAttribute("style"); }); blockElement.querySelectorAll("font").forEach(function(item) { item.outerHTML = item.innerHTML; }); var html = blockElement.textContent; var isSVElement = blockElement.isEqualNode(vditor.sv.element); if (isSVElement) { html = blockElement.textContent; } else { if (blockElement.previousElementSibling) { html = blockElement.previousElementSibling.textContent + html; blockElement.previousElementSibling.remove(); } if (blockElement.previousElementSibling && html.indexOf("---\n") === 0) { html = blockElement.previousElementSibling.textContent + html; blockElement.previousElementSibling.remove(); } var footnotes_1 = ""; vditor.sv.element.querySelectorAll("[data-type='link-ref-defs-block']").forEach(function(item, index) { if (item && !blockElement.isEqualNode(item.parentElement)) { footnotes_1 += item.parentElement.textContent + "\n"; item.parentElement.remove(); } }); vditor.sv.element.querySelectorAll("[data-type='footnotes-link']").forEach(function(item, index) { if (item && !blockElement.isEqualNode(item.parentElement)) { footnotes_1 += item.parentElement.textContent + "\n"; item.parentElement.remove(); } }); html = footnotes_1 + html; } html = processSpinVditorSVDOM(html, vditor); if (isSVElement) { blockElement.innerHTML = html; } else { blockElement.outerHTML = html; } vditor.sv.element.querySelectorAll("[data-type='link-ref-defs-block']").forEach(function(item) { vditor.sv.element.insertAdjacentElement("beforeend", item.parentElement); }); combineFootnote(vditor.sv.element, function(root) { vditor.sv.element.insertAdjacentElement("beforeend", root); }); (0, selection.ib)(vditor.sv.element, range); scrollCenter(vditor); processAfterRender(vditor, { enableAddUndoStack: true, enableHint: true, enableInput: true }); }; ; var processKeydown_processKeydown = function(vditor, event) { var _a, _b, _c, _d, _e; vditor.sv.composingLock = event.isComposing; if (event.isComposing) { return false; } if (event.key.indexOf("Arrow") === -1 && event.key !== "Meta" && event.key !== "Control" && event.key !== "Alt" && event.key !== "Shift" && event.key !== "CapsLock" && event.key !== "Escape" && !/^F\d{1,2}$/.test(event.key)) { vditor.undo.recordFirstPosition(vditor, event); } if (event.key !== "Enter" && event.key !== "Tab" && event.key !== "Backspace" && event.key.indexOf("Arrow") === -1 && !(0, compatibility.yl)(event) && event.key !== "Escape") { return false; } var range = (0, selection.zh)(vditor); var startContainer = range.startContainer; if (range.startContainer.nodeType !== 3 && range.startContainer.tagName === "DIV") { startContainer = range.startContainer.childNodes[range.startOffset - 1]; } var textElement = (0, hasClosest.a1)(startContainer, "data-type", "text"); var blockquoteMarkerElement = (0, hasClosest.a1)(startContainer, "data-type", "blockquote-marker"); if (!blockquoteMarkerElement && range.startOffset === 0 && textElement && textElement.previousElementSibling && textElement.previousElementSibling.getAttribute("data-type") === "blockquote-marker") { blockquoteMarkerElement = textElement.previousElementSibling; } if (blockquoteMarkerElement) { if (event.key === "Enter" && !(0, compatibility.yl)(event) && !event.altKey && blockquoteMarkerElement.nextElementSibling.textContent.trim() === "" && (0, selection.im)(blockquoteMarkerElement, vditor.sv.element, range).start === blockquoteMarkerElement.textContent.length) { if (((_a = blockquoteMarkerElement.previousElementSibling) === null || _a === void 0 ? void 0 : _a.getAttribute("data-type")) === "padding") { blockquoteMarkerElement.previousElementSibling.setAttribute("data-action", "enter-remove"); } blockquoteMarkerElement.remove(); processAfterRender(vditor); event.preventDefault(); return true; } } var listMarkerElement = (0, hasClosest.a1)(startContainer, "data-type", "li-marker"); var taskMarkerElement = (0, hasClosest.a1)(startContainer, "data-type", "task-marker"); var listLastMarkerElement = listMarkerElement; if (!listLastMarkerElement) { if (taskMarkerElement && taskMarkerElement.nextElementSibling.getAttribute("data-type") !== "task-marker") { listLastMarkerElement = taskMarkerElement; } } if (!listLastMarkerElement && range.startOffset === 0 && textElement && textElement.previousElementSibling && (textElement.previousElementSibling.getAttribute("data-type") === "li-marker" || textElement.previousElementSibling.getAttribute("data-type") === "task-marker")) { listLastMarkerElement = textElement.previousElementSibling; } if (listLastMarkerElement) { var startIndex = (0, selection.im)(listLastMarkerElement, vditor.sv.element, range).start; var isTask = listLastMarkerElement.getAttribute("data-type") === "task-marker"; var listFirstMarkerElement = listLastMarkerElement; if (isTask) { listFirstMarkerElement = listLastMarkerElement.previousElementSibling.previousElementSibling.previousElementSibling; } if (startIndex === listLastMarkerElement.textContent.length) { if (event.key === "Enter" && !(0, compatibility.yl)(event) && !event.altKey && !event.shiftKey && listLastMarkerElement.nextElementSibling.textContent.trim() === "") { if (((_b = listFirstMarkerElement.previousElementSibling) === null || _b === void 0 ? void 0 : _b.getAttribute("data-type")) === "padding") { listFirstMarkerElement.previousElementSibling.remove(); inputEvent(vditor); } else { if (isTask) { listFirstMarkerElement.remove(); listLastMarkerElement.previousElementSibling.previousElementSibling.remove(); listLastMarkerElement.previousElementSibling.remove(); } listLastMarkerElement.nextElementSibling.remove(); listLastMarkerElement.remove(); processAfterRender(vditor); } event.preventDefault(); return true; } if (event.key === "Tab") { if (event.shiftKey) { if (listFirstMarkerElement.previousElementSibling.getAttribute("data-type") === "padding") { listFirstMarkerElement.previousElementSibling.remove(); } } else { listFirstMarkerElement.insertAdjacentHTML("beforebegin", ''.concat(listFirstMarkerElement.textContent.replace(/\S/g, " "), "")); } if (/^\d/.test(listFirstMarkerElement.textContent)) { listFirstMarkerElement.textContent = listFirstMarkerElement.textContent.replace(/^\d{1,}/, "1"); range.selectNodeContents(listLastMarkerElement.firstChild); range.collapse(false); } inputEvent(vditor); event.preventDefault(); return true; } } } if (fixTab(vditor, range, event)) { return true; } var blockElement = (0, hasClosest.a1)(startContainer, "data-block", "0"); var spanElement = (0, hasClosestByHeadings.S)(startContainer, "SPAN"); if (event.key === "Enter" && !(0, compatibility.yl)(event) && !event.altKey && !event.shiftKey && blockElement) { var isFirst = false; var newLineMatch = blockElement.textContent.match(/^\n+/); if ((0, selection.im)(blockElement, vditor.sv.element).start <= (newLineMatch ? newLineMatch[0].length : 0)) { isFirst = true; } var newLineText = "\n"; if (spanElement) { if (((_c = spanElement.previousElementSibling) === null || _c === void 0 ? void 0 : _c.getAttribute("data-action")) === "enter-remove") { spanElement.previousElementSibling.remove(); processAfterRender(vditor); event.preventDefault(); return true; } else { newLineText += processPreviousMarkers(spanElement); } } range.insertNode(document.createTextNode(newLineText)); range.collapse(false); if (blockElement && blockElement.textContent.trim() !== "" && !isFirst) { inputEvent(vditor); } else { processAfterRender(vditor); } event.preventDefault(); return true; } if (event.key === "Backspace" && !(0, compatibility.yl)(event) && !event.altKey && !event.shiftKey) { if (spanElement && ((_d = spanElement.previousElementSibling) === null || _d === void 0 ? void 0 : _d.getAttribute("data-type")) === "newline" && (0, selection.im)(spanElement, vditor.sv.element, range).start === 1 && // 飘号的处理需在 inputEvent 中,否则上下飘号对不齐 spanElement.getAttribute("data-type").indexOf("code-block-") === -1) { range.setStart(spanElement, 0); range.extractContents(); if (spanElement.textContent.trim() !== "") { inputEvent(vditor); } else { processAfterRender(vditor); } event.preventDefault(); return true; } if (blockElement && (0, selection.im)(blockElement, vditor.sv.element, range).start === 0 && blockElement.previousElementSibling) { range.extractContents(); var previousLastElement = blockElement.previousElementSibling.lastElementChild; if (previousLastElement.getAttribute("data-type") === "newline") { previousLastElement.remove(); previousLastElement = blockElement.previousElementSibling.lastElementChild; } if (previousLastElement.getAttribute("data-type") !== "newline") { previousLastElement.insertAdjacentHTML("afterend", blockElement.innerHTML); blockElement.remove(); } if (blockElement.textContent.trim() !== "" && !((_e = blockElement.previousElementSibling) === null || _e === void 0 ? void 0 : _e.querySelector('[data-type="code-block-open-marker"]'))) { inputEvent(vditor); } else { if (previousLastElement.getAttribute("data-type") !== "newline") { range.selectNodeContents(previousLastElement.lastChild); range.collapse(false); } processAfterRender(vditor); } event.preventDefault(); return true; } } return false; }; var setContentTheme = __webpack_require__(538); ; var setTheme = function(vditor) { if (vditor.options.theme === "dark") { vditor.element.classList.add("vditor--dark"); } else { vditor.element.classList.remove("vditor--dark"); } }; ; var initUI = function(vditor) { vditor.element.innerHTML = ""; vditor.element.classList.add("vditor"); if (vditor.options.rtl) { vditor.element.setAttribute("dir", "rtl"); } setTheme(vditor); (0, setContentTheme.Z)(vditor.options.preview.theme.current, vditor.options.preview.theme.path); if (typeof vditor.options.height === "number") { vditor.element.style.height = vditor.options.height + "px"; } else { vditor.element.style.height = vditor.options.height; } if (typeof vditor.options.minHeight === "number") { vditor.element.style.minHeight = vditor.options.minHeight + "px"; } if (typeof vditor.options.width === "number") { vditor.element.style.width = vditor.options.width + "px"; } else { vditor.element.style.width = vditor.options.width; } vditor.element.appendChild(vditor.toolbar.element); var contentElement = document.createElement("div"); contentElement.className = "vditor-content"; if (vditor.options.outline.position === "left") { contentElement.appendChild(vditor.outline.element); } contentElement.appendChild(vditor.wysiwyg.element.parentElement); contentElement.appendChild(vditor.sv.element); contentElement.appendChild(vditor.ir.element.parentElement); contentElement.appendChild(vditor.preview.element); if (vditor.toolbar.elements.devtools) { contentElement.appendChild(vditor.devtools.element); } if (vditor.options.outline.position === "right") { vditor.outline.element.classList.add("vditor-outline--right"); contentElement.appendChild(vditor.outline.element); } if (vditor.upload) { contentElement.appendChild(vditor.upload.element); } if (vditor.options.resize.enable) { contentElement.appendChild(vditor.resize.element); } contentElement.appendChild(vditor.hint.element); contentElement.appendChild(vditor.tip.element); vditor.element.appendChild(contentElement); contentElement.addEventListener("click", function() { hidePanel(vditor, ["subToolbar"]); }); if (vditor.toolbar.elements.export) { vditor.element.insertAdjacentHTML("beforeend", ''); } setEditMode(vditor, vditor.options.mode, afterRender(vditor)); document.execCommand("DefaultParagraphSeparator", false, "p"); if (navigator.userAgent.indexOf("iPhone") > -1 && typeof window.visualViewport !== "undefined") { var pendingUpdate_1 = false; var viewportHandler = function(event) { if (pendingUpdate_1) { return; } pendingUpdate_1 = true; requestAnimationFrame(function() { pendingUpdate_1 = false; var layoutViewport = vditor.toolbar.element; layoutViewport.style.transform = "none"; if (layoutViewport.getBoundingClientRect().top < 0) { layoutViewport.style.transform = "translate(0, ".concat(-layoutViewport.getBoundingClientRect().top, "px)"); } }); }; window.visualViewport.addEventListener("scroll", viewportHandler); window.visualViewport.addEventListener("resize", viewportHandler); } }; var setPadding = function(vditor) { var minPadding = window.innerWidth <= constants.g.MOBILE_WIDTH ? 10 : 35; if (vditor.wysiwyg.element.parentElement.style.display !== "none") { var padding = (vditor.wysiwyg.element.parentElement.clientWidth - vditor.options.preview.maxWidth) / 2; vditor.wysiwyg.element.style.padding = "10px ".concat(Math.max(minPadding, padding), "px"); } if (vditor.ir.element.parentElement.style.display !== "none") { var padding = (vditor.ir.element.parentElement.clientWidth - vditor.options.preview.maxWidth) / 2; vditor.ir.element.style.padding = "10px ".concat(Math.max(minPadding, padding), "px"); } if (vditor.preview.element.style.display !== "block") { vditor.toolbar.element.style.paddingLeft = Math.max(5, parseInt(vditor[vditor.currentMode].element.style.paddingLeft || "0", 10) + (vditor.options.outline.position === "left" ? vditor.outline.element.offsetWidth : 0)) + "px"; } else { vditor.toolbar.element.style.paddingLeft = 5 + (vditor.options.outline.position === "left" ? vditor.outline.element.offsetWidth : 0) + "px"; } }; var setTypewriterPosition = function(vditor) { if (!vditor.options.typewriterMode) { return; } var height = window.innerHeight; if (typeof vditor.options.height === "number") { height = vditor.options.height; if (typeof vditor.options.minHeight === "number") { height = Math.max(height, vditor.options.minHeight); } height = Math.min(window.innerHeight, height); } else { height = vditor.element.clientHeight; } if (vditor.element.classList.contains("vditor--fullscreen")) { height = window.innerHeight; } vditor[vditor.currentMode].element.style.setProperty("--editor-bottom", (height - vditor.toolbar.element.offsetHeight) / 2 + "px"); }; var resizeCb; function UIUnbindListener() { window.removeEventListener("resize", resizeCb); } var afterRender = function(vditor) { setTypewriterPosition(vditor); UIUnbindListener(); window.addEventListener("resize", resizeCb = function() { setPadding(vditor); setTypewriterPosition(vditor); }); var initValue = (0, compatibility.pK)() && localStorage.getItem(vditor.options.cache.id); if (!vditor.options.cache.enable || !initValue) { if (vditor.options.value) { initValue = vditor.options.value; } else if (vditor.originalInnerHTML) { initValue = vditor.lute.HTML2Md(vditor.originalInnerHTML); } else if (!vditor.options.cache.enable) { initValue = ""; } } return initValue || ""; }; ; var highlightToolbarIR = function(vditor) { clearTimeout(vditor[vditor.currentMode].hlToolbarTimeoutId); vditor[vditor.currentMode].hlToolbarTimeoutId = window.setTimeout(function() { if (vditor[vditor.currentMode].element.getAttribute("contenteditable") === "false") { return; } if (!(0, selection.Gb)(vditor[vditor.currentMode].element)) { return; } removeCurrentToolbar(vditor.toolbar.elements, constants.g.EDIT_TOOLBARS); enableToolbar(vditor.toolbar.elements, constants.g.EDIT_TOOLBARS); var range = (0, selection.zh)(vditor); var typeElement = range.startContainer; if (range.startContainer.nodeType === 3) { typeElement = range.startContainer.parentElement; } if (typeElement.classList.contains("vditor-reset")) { typeElement = typeElement.childNodes[range.startOffset]; } var headingElement = vditor.currentMode === "sv" ? (0, hasClosest.a1)(typeElement, "data-type", "heading") : (0, hasClosestByHeadings.W)(typeElement); if (headingElement) { setCurrentToolbar(vditor.toolbar.elements, ["headings"]); } var quoteElement = vditor.currentMode === "sv" ? (0, hasClosest.a1)(typeElement, "data-type", "blockquote") : (0, hasClosest.lG)(typeElement, "BLOCKQUOTE"); if (quoteElement) { setCurrentToolbar(vditor.toolbar.elements, ["quote"]); } var strongElement = (0, hasClosest.a1)(typeElement, "data-type", "strong"); if (strongElement) { setCurrentToolbar(vditor.toolbar.elements, ["bold"]); } var emElement = (0, hasClosest.a1)(typeElement, "data-type", "em"); if (emElement) { setCurrentToolbar(vditor.toolbar.elements, ["italic"]); } var sElement = (0, hasClosest.a1)(typeElement, "data-type", "s"); if (sElement) { setCurrentToolbar(vditor.toolbar.elements, ["strike"]); } var aElement = (0, hasClosest.a1)(typeElement, "data-type", "a"); if (aElement) { setCurrentToolbar(vditor.toolbar.elements, ["link"]); } var liElement = (0, hasClosest.lG)(typeElement, "LI"); if (liElement) { if (liElement.classList.contains("vditor-task")) { setCurrentToolbar(vditor.toolbar.elements, ["check"]); } else if (liElement.parentElement.tagName === "OL") { setCurrentToolbar(vditor.toolbar.elements, ["ordered-list"]); } else if (liElement.parentElement.tagName === "UL") { setCurrentToolbar(vditor.toolbar.elements, ["list"]); } enableToolbar(vditor.toolbar.elements, ["outdent", "indent"]); } else { disableToolbar(vditor.toolbar.elements, ["outdent", "indent"]); } var codeBlockElement = (0, hasClosest.a1)(typeElement, "data-type", "code-block"); if (codeBlockElement) { disableToolbar(vditor.toolbar.elements, [ "headings", "bold", "italic", "strike", "line", "quote", "list", "ordered-list", "check", "code", "inline-code", "upload", "link", "table", "record" ]); setCurrentToolbar(vditor.toolbar.elements, ["code"]); } var codeElement = (0, hasClosest.a1)(typeElement, "data-type", "code"); if (codeElement) { disableToolbar(vditor.toolbar.elements, [ "headings", "bold", "italic", "strike", "line", "quote", "list", "ordered-list", "check", "code", "upload", "link", "table", "record" ]); setCurrentToolbar(vditor.toolbar.elements, ["inline-code"]); } var tableElement = (0, hasClosest.a1)(typeElement, "data-type", "table"); if (tableElement) { disableToolbar(vditor.toolbar.elements, [ "headings", "list", "ordered-list", "check", "line", "quote", "code", "table" ]); } }, 200); }; ; var afterRenderEvent = function(vditor, options) { if (options === void 0) { options = { enableAddUndoStack: true, enableHint: false, enableInput: true }; } if (options.enableHint) { vditor.hint.render(vditor); } clearTimeout(vditor.wysiwyg.afterRenderTimeoutId); vditor.wysiwyg.afterRenderTimeoutId = window.setTimeout(function() { if (vditor.wysiwyg.composingLock) { return; } var text = getMarkdown(vditor); if (typeof vditor.options.input === "function" && options.enableInput) { vditor.options.input(text); } if (vditor.options.counter.enable) { vditor.counter.render(vditor, text); } if (vditor.options.cache.enable && (0, compatibility.pK)()) { localStorage.setItem(vditor.options.cache.id, text); if (vditor.options.cache.after) { vditor.options.cache.after(text); } } if (vditor.devtools) { vditor.devtools.renderEchart(vditor); } if (options.enableAddUndoStack) { vditor.undo.addToUndoStack(vditor); } }, vditor.options.undoDelay); }; ; var previoueIsEmptyA = function(node) { var previousNode = node.previousSibling; while (previousNode) { if (previousNode.nodeType !== 3 && previousNode.tagName === "A" && !previousNode.previousSibling && previousNode.innerHTML.replace(constants.g.ZWSP, "") === "" && previousNode.nextSibling) { return previousNode; } previousNode = previousNode.previousSibling; } return false; }; var nextIsCode = function(range) { var nextNode = range.startContainer.nextSibling; while (nextNode && nextNode.textContent === "") { nextNode = nextNode.nextSibling; } if (nextNode && nextNode.nodeType !== 3 && (nextNode.tagName === "CODE" || nextNode.getAttribute("data-type") === "math-inline" || nextNode.getAttribute("data-type") === "html-entity" || nextNode.getAttribute("data-type") === "html-inline")) { return true; } return false; }; var getNextHTML = function(node) { var html = ""; var nextNode = node.nextSibling; while (nextNode) { if (nextNode.nodeType === 3) { html += nextNode.textContent; } else { html += nextNode.outerHTML; } nextNode = nextNode.nextSibling; } return html; }; var getPreviousHTML = function(node) { var html = ""; var previousNode = node.previousSibling; while (previousNode) { if (previousNode.nodeType === 3) { html = previousNode.textContent + html; } else { html = previousNode.outerHTML + html; } previousNode = previousNode.previousSibling; } return html; }; var getRenderElementNextNode = function(blockCodeElement) { var nextNode = blockCodeElement; while (nextNode && !nextNode.nextSibling) { nextNode = nextNode.parentElement; } return nextNode.nextSibling; }; var splitElement = function(range) { var previousHTML = getPreviousHTML(range.startContainer); var nextHTML = getNextHTML(range.startContainer); var text = range.startContainer.textContent; var offset = range.startOffset; var beforeHTML = ""; var afterHTML = ""; if (text.substr(0, offset) !== "" && text.substr(0, offset) !== constants.g.ZWSP || previousHTML) { beforeHTML = "".concat(previousHTML).concat(text.substr(0, offset)); } if (text.substr(offset) !== "" && text.substr(offset) !== constants.g.ZWSP || nextHTML) { afterHTML = "".concat(text.substr(offset)).concat(nextHTML); } return { afterHTML, beforeHTML }; }; var modifyPre = function(vditor, range) { Array.from(vditor.wysiwyg.element.childNodes).find(function(node) { if (node.nodeType === 3) { var pElement = document.createElement("p"); pElement.setAttribute("data-block", "0"); pElement.textContent = node.textContent; var cloneRangeOffset = range.startContainer.nodeType === 3 ? range.startOffset : node.textContent.length; node.parentNode.insertBefore(pElement, node); node.remove(); range.setStart(pElement.firstChild, Math.min(pElement.firstChild.textContent.length, cloneRangeOffset)); range.collapse(true); (0, selection.Hc)(range); return true; } else if (!node.getAttribute("data-block")) { if (node.tagName === "P") { node.remove(); } else { if (node.tagName === "DIV") { range.insertNode(document.createElement("wbr")); node.outerHTML = '

    '.concat(node.innerHTML, "

    "); } else { if (node.tagName === "BR") { node.outerHTML = '

    '.concat(node.outerHTML, "

    "); } else { range.insertNode(document.createElement("wbr")); node.outerHTML = '

    '.concat(node.outerHTML, "

    "); } } (0, selection.ib)(vditor.wysiwyg.element, range); range = getSelection().getRangeAt(0); } return true; } }); }; ; var setHeading = function(vditor, tagName) { var range = (0, selection.zh)(vditor); var blockElement = (0, hasClosest.F9)(range.startContainer); if (!blockElement) { blockElement = range.startContainer.childNodes[range.startOffset]; } if (!blockElement && vditor.wysiwyg.element.children.length === 0) { blockElement = vditor.wysiwyg.element; } if (blockElement && !blockElement.classList.contains("vditor-wysiwyg__block")) { range.insertNode(document.createElement("wbr")); if (blockElement.innerHTML.trim() === "") { blockElement.innerHTML = "
    "; } if (blockElement.tagName === "BLOCKQUOTE" || blockElement.classList.contains("vditor-reset")) { blockElement.innerHTML = "<".concat(tagName, ' data-block="0">').concat(blockElement.innerHTML.trim(), ""); } else { blockElement.outerHTML = "<".concat(tagName, ' data-block="0">').concat(blockElement.innerHTML.trim(), ""); } (0, selection.ib)(vditor.wysiwyg.element, range); renderToc(vditor); } }; var removeHeading = function(vditor) { var range = getSelection().getRangeAt(0); var blockElement = (0, hasClosest.F9)(range.startContainer); if (!blockElement) { blockElement = range.startContainer.childNodes[range.startOffset]; } if (blockElement) { range.insertNode(document.createElement("wbr")); blockElement.outerHTML = '

    '.concat(blockElement.innerHTML, "

    "); (0, selection.ib)(vditor.wysiwyg.element, range); } vditor.wysiwyg.popover.style.display = "none"; }; ; var showCode = function(previewElement, vditor, first) { if (first === void 0) { first = true; } var previousElement = previewElement.previousElementSibling; var range = previousElement.ownerDocument.createRange(); if (previousElement.tagName === "CODE") { previousElement.style.display = "inline-block"; if (first) { range.setStart(previousElement.firstChild, 1); } else { range.selectNodeContents(previousElement); } } else { previousElement.style.display = "block"; if (!previousElement.firstChild.firstChild) { previousElement.firstChild.appendChild(document.createTextNode("")); } range.selectNodeContents(previousElement.firstChild); } if (first) { range.collapse(true); } else { range.collapse(false); } (0, selection.Hc)(range); if (previewElement.firstElementChild.classList.contains("language-mindmap")) { return; } scrollCenter(vditor); }; ; var wysiwyg_processKeydown_processKeydown = function(vditor, event) { vditor.wysiwyg.composingLock = event.isComposing; if (event.isComposing) { return false; } if (event.key.indexOf("Arrow") === -1 && event.key !== "Meta" && event.key !== "Control" && event.key !== "Alt" && event.key !== "Shift" && event.key !== "CapsLock" && event.key !== "Escape" && !/^F\d{1,2}$/.test(event.key)) { vditor.undo.recordFirstPosition(vditor, event); } var range = (0, selection.zh)(vditor); var startContainer = range.startContainer; if (!fixGSKeyBackspace(event, vditor, startContainer)) { return false; } fixCJKPosition(range, vditor, event); fixHR(range); if (event.key !== "Enter" && event.key !== "Tab" && event.key !== "Backspace" && event.key.indexOf("Arrow") === -1 && !(0, compatibility.yl)(event) && event.key !== "Escape" && event.key !== "Delete") { return false; } var blockElement = (0, hasClosest.F9)(startContainer); var pElement = (0, hasClosest.lG)(startContainer, "P"); if (fixMarkdown(event, vditor, pElement, range)) { return true; } if (fixList(range, vditor, pElement, event)) { return true; } if (fixTable(vditor, event, range)) { return true; } var codeRenderElement = (0, hasClosest.fb)(startContainer, "vditor-wysiwyg__block"); if (codeRenderElement) { if (event.key === "Escape" && codeRenderElement.children.length === 2) { vditor.wysiwyg.popover.style.display = "none"; codeRenderElement.firstElementChild.style.display = "none"; vditor.wysiwyg.element.blur(); event.preventDefault(); return true; } if (!(0, compatibility.yl)(event) && !event.shiftKey && event.altKey && event.key === "Enter" && codeRenderElement.getAttribute("data-type") === "code-block") { var inputElemment = vditor.wysiwyg.popover.querySelector(".vditor-input"); inputElemment.focus(); inputElemment.select(); event.preventDefault(); return true; } if (codeRenderElement.getAttribute("data-block") === "0") { if (fixCodeBlock(vditor, event, codeRenderElement.firstElementChild, range)) { return true; } if (insertAfterBlock(vditor, event, range, codeRenderElement.firstElementChild, codeRenderElement)) { return true; } if (codeRenderElement.getAttribute("data-type") !== "yaml-front-matter" && insertBeforeBlock(vditor, event, range, codeRenderElement.firstElementChild, codeRenderElement)) { return true; } } } if (fixBlockquote(vditor, range, event, pElement)) { return true; } var topBQElement = (0, hasClosest.E2)(startContainer, "BLOCKQUOTE"); if (topBQElement) { if (!event.shiftKey && event.altKey && event.key === "Enter") { if (!(0, compatibility.yl)(event)) { range.setStartAfter(topBQElement); } else { range.setStartBefore(topBQElement); } (0, selection.Hc)(range); var node = document.createElement("p"); node.setAttribute("data-block", "0"); node.innerHTML = "\n"; range.insertNode(node); range.collapse(true); (0, selection.Hc)(range); afterRenderEvent(vditor); scrollCenter(vditor); event.preventDefault(); return true; } } var headingElement = (0, hasClosestByHeadings.W)(startContainer); if (headingElement) { if (headingElement.tagName === "H6" && startContainer.textContent.length === range.startOffset && !(0, compatibility.yl)(event) && !event.shiftKey && !event.altKey && event.key === "Enter") { var pTempElement = document.createElement("p"); pTempElement.textContent = "\n"; pTempElement.setAttribute("data-block", "0"); startContainer.parentElement.insertAdjacentElement("afterend", pTempElement); range.setStart(pTempElement, 0); (0, selection.Hc)(range); afterRenderEvent(vditor); scrollCenter(vditor); event.preventDefault(); return true; } if (matchHotKey("⌘=", event)) { var index = parseInt(headingElement.tagName.substr(1), 10) - 1; if (index > 0) { setHeading(vditor, "h".concat(index)); afterRenderEvent(vditor); } event.preventDefault(); return true; } if (matchHotKey("⌘-", event)) { var index = parseInt(headingElement.tagName.substr(1), 10) + 1; if (index < 7) { setHeading(vditor, "h".concat(index)); afterRenderEvent(vditor); } event.preventDefault(); return true; } if (event.key === "Backspace" && !(0, compatibility.yl)(event) && !event.shiftKey && !event.altKey && headingElement.textContent.length === 1) { removeHeading(vditor); } } if (fixTask(vditor, range, event)) { return true; } if (event.altKey && event.key === "Enter" && !(0, compatibility.yl)(event) && !event.shiftKey) { var aElement = (0, hasClosest.lG)(startContainer, "A"); var linRefElement = (0, hasClosest.a1)(startContainer, "data-type", "link-ref"); var footnoteRefElement = (0, hasClosest.a1)(startContainer, "data-type", "footnotes-ref"); if (aElement || linRefElement || footnoteRefElement || headingElement && headingElement.tagName.length === 2) { var inputElement = vditor.wysiwyg.popover.querySelector("input"); inputElement.focus(); inputElement.select(); } } if (removeBlockElement(vditor, event)) { return true; } if (matchHotKey("⇧⌘U", event)) { var itemElement = vditor.wysiwyg.popover.querySelector('[data-type="up"]'); if (itemElement) { itemElement.click(); event.preventDefault(); return true; } } if (matchHotKey("⇧⌘D", event)) { var itemElement = vditor.wysiwyg.popover.querySelector('[data-type="down"]'); if (itemElement) { itemElement.click(); event.preventDefault(); return true; } } if (fixTab(vditor, range, event)) { return true; } if (!(0, compatibility.yl)(event) && event.shiftKey && !event.altKey && event.key === "Enter" && startContainer.parentElement.tagName !== "LI" && startContainer.parentElement.tagName !== "P") { if (["STRONG", "STRIKE", "S", "I", "EM", "B"].includes(startContainer.parentElement.tagName)) { range.insertNode(document.createTextNode("\n" + constants.g.ZWSP)); } else { range.insertNode(document.createTextNode("\n")); } range.collapse(false); (0, selection.Hc)(range); afterRenderEvent(vditor); scrollCenter(vditor); event.preventDefault(); return true; } if (event.key === "Backspace" && !(0, compatibility.yl)(event) && !event.shiftKey && !event.altKey && range.toString() === "") { if (fixDelete(vditor, range, event, pElement)) { return true; } if (blockElement) { if (blockElement.previousElementSibling && blockElement.previousElementSibling.classList.contains("vditor-wysiwyg__block") && blockElement.previousElementSibling.getAttribute("data-block") === "0" && blockElement.tagName !== "UL" && blockElement.tagName !== "OL") { var rangeStart = (0, selection.im)(blockElement, vditor.wysiwyg.element, range).start; if (rangeStart === 0 && range.startOffset === 0 || // https://github.com/Vanessa219/vditor/issues/894 rangeStart === 1 && blockElement.innerText.startsWith(constants.g.ZWSP)) { showCode(blockElement.previousElementSibling.lastElementChild, vditor, false); if (blockElement.innerHTML.trim().replace(constants.g.ZWSP, "") === "") { blockElement.remove(); afterRenderEvent(vditor); } event.preventDefault(); return true; } } var rangeStartOffset = range.startOffset; if (range.toString() === "" && startContainer.nodeType === 3 && startContainer.textContent.charAt(rangeStartOffset - 2) === "\n" && startContainer.textContent.charAt(rangeStartOffset - 1) !== constants.g.ZWSP && ["STRONG", "STRIKE", "S", "I", "EM", "B"].includes(startContainer.parentElement.tagName)) { startContainer.textContent = startContainer.textContent.substring(0, rangeStartOffset - 1) + constants.g.ZWSP; range.setStart(startContainer, rangeStartOffset); range.collapse(true); afterRenderEvent(vditor); event.preventDefault(); return true; } if (startContainer.textContent === constants.g.ZWSP && range.startOffset === 1 && !startContainer.previousSibling && nextIsCode(range)) { startContainer.textContent = ""; } blockElement.querySelectorAll("span.vditor-wysiwyg__block[data-type='math-inline']").forEach(function(item) { item.firstElementChild.style.display = "inline"; item.lastElementChild.style.display = "none"; }); blockElement.querySelectorAll("span.vditor-wysiwyg__block[data-type='html-entity']").forEach(function(item) { item.firstElementChild.style.display = "inline"; item.lastElementChild.style.display = "none"; }); } } if ((0, compatibility.vU)() && range.startOffset === 1 && startContainer.textContent.indexOf(constants.g.ZWSP) > -1 && startContainer.previousSibling && startContainer.previousSibling.nodeType !== 3 && startContainer.previousSibling.tagName === "CODE" && (event.key === "Backspace" || event.key === "ArrowLeft")) { range.selectNodeContents(startContainer.previousSibling); range.collapse(false); event.preventDefault(); return true; } if (fixFirefoxArrowUpTable(event, blockElement, range)) { event.preventDefault(); return true; } fixCursorDownInlineMath(range, event.key); if (event.key === "ArrowDown") { var nextElement = startContainer.nextSibling; if (nextElement && nextElement.nodeType !== 3 && nextElement.getAttribute("data-type") === "math-inline") { range.setStartAfter(nextElement); } } if (blockElement && keydownToc(blockElement, vditor, event, range)) { event.preventDefault(); return true; } return false; }; var removeBlockElement = function(vditor, event) { if (matchHotKey("⇧⌘X", event)) { var itemElement = vditor.wysiwyg.popover.querySelector('[data-type="remove"]'); if (itemElement) { itemElement.click(); } event.preventDefault(); return true; } }; ; var highlightToolbarWYSIWYG = function(vditor) { clearTimeout(vditor.wysiwyg.hlToolbarTimeoutId); vditor.wysiwyg.hlToolbarTimeoutId = window.setTimeout(function() { if (vditor.wysiwyg.element.getAttribute("contenteditable") === "false") { return; } if (!(0, selection.Gb)(vditor.wysiwyg.element)) { return; } removeCurrentToolbar(vditor.toolbar.elements, constants.g.EDIT_TOOLBARS); enableToolbar(vditor.toolbar.elements, constants.g.EDIT_TOOLBARS); var range = getSelection().getRangeAt(0); var typeElement = range.startContainer; if (range.startContainer.nodeType === 3) { typeElement = range.startContainer.parentElement; } else { typeElement = typeElement.childNodes[range.startOffset >= typeElement.childNodes.length ? typeElement.childNodes.length - 1 : range.startOffset]; } var footnotesElement = (0, hasClosest.a1)(typeElement, "data-type", "footnotes-block"); if (footnotesElement) { vditor.wysiwyg.popover.innerHTML = ""; genClose(footnotesElement, vditor); customWysiwygToolbar(vditor, "footnotes-block"); setPopoverPosition(vditor, footnotesElement); return; } var liElement = (0, hasClosest.lG)(typeElement, "LI"); if (liElement) { if (liElement.classList.contains("vditor-task")) { setCurrentToolbar(vditor.toolbar.elements, ["check"]); } else if (liElement.parentElement.tagName === "OL") { setCurrentToolbar(vditor.toolbar.elements, ["ordered-list"]); } else if (liElement.parentElement.tagName === "UL") { setCurrentToolbar(vditor.toolbar.elements, ["list"]); } enableToolbar(vditor.toolbar.elements, ["outdent", "indent"]); } else { disableToolbar(vditor.toolbar.elements, ["outdent", "indent"]); } if ((0, hasClosest.lG)(typeElement, "BLOCKQUOTE")) { setCurrentToolbar(vditor.toolbar.elements, ["quote"]); } if ((0, hasClosest.lG)(typeElement, "B") || (0, hasClosest.lG)(typeElement, "STRONG")) { setCurrentToolbar(vditor.toolbar.elements, ["bold"]); } if ((0, hasClosest.lG)(typeElement, "I") || (0, hasClosest.lG)(typeElement, "EM")) { setCurrentToolbar(vditor.toolbar.elements, ["italic"]); } if ((0, hasClosest.lG)(typeElement, "STRIKE") || (0, hasClosest.lG)(typeElement, "S")) { setCurrentToolbar(vditor.toolbar.elements, ["strike"]); } vditor.wysiwyg.element.querySelectorAll(".vditor-comment--focus").forEach(function(item) { item.classList.remove("vditor-comment--focus"); }); var commentElement = (0, hasClosest.fb)(typeElement, "vditor-comment"); if (commentElement) { var ids_1 = commentElement.getAttribute("data-cmtids").split(" "); if (ids_1.length > 1 && commentElement.nextSibling.isSameNode(commentElement.nextElementSibling)) { var nextIds_1 = commentElement.nextElementSibling.getAttribute("data-cmtids").split(" "); ids_1.find(function(id) { if (nextIds_1.includes(id)) { ids_1 = [id]; return true; } }); } vditor.wysiwyg.element.querySelectorAll(".vditor-comment").forEach(function(item) { if (item.getAttribute("data-cmtids").indexOf(ids_1[0]) > -1) { item.classList.add("vditor-comment--focus"); } }); } var aElement = (0, hasClosest.lG)(typeElement, "A"); if (aElement) { setCurrentToolbar(vditor.toolbar.elements, ["link"]); } var tableElement = (0, hasClosest.lG)(typeElement, "TABLE"); var headingElement = (0, hasClosestByHeadings.W)(typeElement); if ((0, hasClosest.lG)(typeElement, "CODE")) { if ((0, hasClosest.lG)(typeElement, "PRE")) { disableToolbar(vditor.toolbar.elements, [ "headings", "bold", "italic", "strike", "line", "quote", "list", "ordered-list", "check", "code", "inline-code", "upload", "link", "table", "record" ]); setCurrentToolbar(vditor.toolbar.elements, ["code"]); } else { disableToolbar(vditor.toolbar.elements, [ "headings", "bold", "italic", "strike", "line", "quote", "list", "ordered-list", "check", "code", "upload", "link", "table", "record" ]); setCurrentToolbar(vditor.toolbar.elements, ["inline-code"]); } } else if (headingElement) { disableToolbar(vditor.toolbar.elements, ["bold"]); setCurrentToolbar(vditor.toolbar.elements, ["headings"]); } else if (tableElement) { disableToolbar(vditor.toolbar.elements, ["table"]); } var tocElement = (0, hasClosest.fb)(typeElement, "vditor-toc"); if (tocElement) { vditor.wysiwyg.popover.innerHTML = ""; genClose(tocElement, vditor); customWysiwygToolbar(vditor, "vditor-toc"); setPopoverPosition(vditor, tocElement); return; } var blockquoteElement = (0, hasClosestByHeadings.S)(typeElement, "BLOCKQUOTE"); if (blockquoteElement) { vditor.wysiwyg.popover.innerHTML = ""; genUp(range, blockquoteElement, vditor); genDown(range, blockquoteElement, vditor); genClose(blockquoteElement, vditor); customWysiwygToolbar(vditor, "blockquote"); setPopoverPosition(vditor, blockquoteElement); } if (liElement) { vditor.wysiwyg.popover.innerHTML = ""; genUp(range, liElement, vditor); genDown(range, liElement, vditor); genClose(liElement, vditor); customWysiwygToolbar(vditor, "li"); setPopoverPosition(vditor, liElement); } if (tableElement) { var lang = vditor.options.lang; var options = vditor.options; vditor.wysiwyg.popover.innerHTML = ""; var updateTable_1 = function() { var oldRow = tableElement.rows.length; var oldColumn = tableElement.rows[0].cells.length; var row = parseInt(input_1.value, 10) || oldRow; var column = parseInt(input2_1.value, 10) || oldColumn; if (row === oldRow && oldColumn === column) { return; } if (oldColumn !== column) { var columnDiff = column - oldColumn; for (var i = 0; i < tableElement.rows.length; i++) { if (columnDiff > 0) { for (var j = 0; j < columnDiff; j++) { if (i === 0) { tableElement.rows[i].lastElementChild.insertAdjacentHTML("afterend", " "); } else { tableElement.rows[i].lastElementChild.insertAdjacentHTML("afterend", " "); } } } else { for (var k = oldColumn - 1; k >= column; k--) { tableElement.rows[i].cells[k].remove(); } } } } if (oldRow !== row) { var rowDiff = row - oldRow; if (rowDiff > 0) { var rowHTML = ""; for (var m = 0; m < column; m++) { rowHTML += " "; } for (var l = 0; l < rowDiff; l++) { if (tableElement.querySelector("tbody")) { tableElement.querySelector("tbody").insertAdjacentHTML("beforeend", rowHTML); } else { tableElement.querySelector("thead").insertAdjacentHTML("afterend", rowHTML + ""); } } } else { for (var m = oldRow - 1; m >= row; m--) { tableElement.rows[m].remove(); if (tableElement.rows.length === 1) { tableElement.querySelector("tbody").remove(); } } } } if (typeof vditor.options.input === "function") { vditor.options.input(getMarkdown(vditor)); } }; var setAlign_1 = function(type) { setTableAlign(tableElement, type); if (type === "right") { left_1.classList.remove("vditor-icon--current"); center_1.classList.remove("vditor-icon--current"); right_1.classList.add("vditor-icon--current"); } else if (type === "center") { left_1.classList.remove("vditor-icon--current"); right_1.classList.remove("vditor-icon--current"); center_1.classList.add("vditor-icon--current"); } else { center_1.classList.remove("vditor-icon--current"); right_1.classList.remove("vditor-icon--current"); left_1.classList.add("vditor-icon--current"); } (0, selection.Hc)(range); afterRenderEvent(vditor); }; var td = (0, hasClosest.lG)(typeElement, "TD"); var th = (0, hasClosest.lG)(typeElement, "TH"); var alignType = "left"; if (td) { alignType = td.getAttribute("align") || "left"; } else if (th) { alignType = th.getAttribute("align") || "center"; } var left_1 = document.createElement("button"); left_1.setAttribute("type", "button"); left_1.setAttribute("aria-label", window.VditorI18n.alignLeft + "<" + (0, compatibility.ns)("⇧⌘L") + ">"); left_1.setAttribute("data-type", "left"); left_1.innerHTML = ''; left_1.className = "vditor-icon vditor-tooltipped vditor-tooltipped__n" + (alignType === "left" ? " vditor-icon--current" : ""); left_1.onclick = function() { setAlign_1("left"); }; var center_1 = document.createElement("button"); center_1.setAttribute("type", "button"); center_1.setAttribute("aria-label", window.VditorI18n.alignCenter + "<" + (0, compatibility.ns)("⇧⌘C") + ">"); center_1.setAttribute("data-type", "center"); center_1.innerHTML = ''; center_1.className = "vditor-icon vditor-tooltipped vditor-tooltipped__n" + (alignType === "center" ? " vditor-icon--current" : ""); center_1.onclick = function() { setAlign_1("center"); }; var right_1 = document.createElement("button"); right_1.setAttribute("type", "button"); right_1.setAttribute("aria-label", window.VditorI18n.alignRight + "<" + (0, compatibility.ns)("⇧⌘R") + ">"); right_1.setAttribute("data-type", "right"); right_1.innerHTML = ''; right_1.className = "vditor-icon vditor-tooltipped vditor-tooltipped__n" + (alignType === "right" ? " vditor-icon--current" : ""); right_1.onclick = function() { setAlign_1("right"); }; var insertRowElement = document.createElement("button"); insertRowElement.setAttribute("type", "button"); insertRowElement.setAttribute("aria-label", window.VditorI18n.insertRowBelow + "<" + (0, compatibility.ns)("⌘=") + ">"); insertRowElement.setAttribute("data-type", "insertRow"); insertRowElement.innerHTML = ''; insertRowElement.className = "vditor-icon vditor-tooltipped vditor-tooltipped__n"; insertRowElement.onclick = function() { var startContainer = getSelection().getRangeAt(0).startContainer; var cellElement = (0, hasClosest.lG)(startContainer, "TD") || (0, hasClosest.lG)(startContainer, "TH"); if (cellElement) { insertRow(vditor, range, cellElement); } }; var insertRowBElement = document.createElement("button"); insertRowBElement.setAttribute("type", "button"); insertRowBElement.setAttribute("aria-label", window.VditorI18n.insertRowAbove + "<" + (0, compatibility.ns)("⇧⌘F") + ">"); insertRowBElement.setAttribute("data-type", "insertRow"); insertRowBElement.innerHTML = ''; insertRowBElement.className = "vditor-icon vditor-tooltipped vditor-tooltipped__n"; insertRowBElement.onclick = function() { var startContainer = getSelection().getRangeAt(0).startContainer; var cellElement = (0, hasClosest.lG)(startContainer, "TD") || (0, hasClosest.lG)(startContainer, "TH"); if (cellElement) { insertRowAbove(vditor, range, cellElement); } }; var insertColumnElement = document.createElement("button"); insertColumnElement.setAttribute("type", "button"); insertColumnElement.setAttribute("aria-label", window.VditorI18n.insertColumnRight + "<" + (0, compatibility.ns)("⇧⌘=") + ">"); insertColumnElement.setAttribute("data-type", "insertColumn"); insertColumnElement.innerHTML = ''; insertColumnElement.className = "vditor-icon vditor-tooltipped vditor-tooltipped__n"; insertColumnElement.onclick = function() { var startContainer = getSelection().getRangeAt(0).startContainer; var cellElement = (0, hasClosest.lG)(startContainer, "TD") || (0, hasClosest.lG)(startContainer, "TH"); if (cellElement) { insertColumn(vditor, tableElement, cellElement); } }; var insertColumnBElement = document.createElement("button"); insertColumnBElement.setAttribute("type", "button"); insertColumnBElement.setAttribute("aria-label", window.VditorI18n.insertColumnLeft + "<" + (0, compatibility.ns)("⇧⌘G") + ">"); insertColumnBElement.setAttribute("data-type", "insertColumn"); insertColumnBElement.innerHTML = ''; insertColumnBElement.className = "vditor-icon vditor-tooltipped vditor-tooltipped__n"; insertColumnBElement.onclick = function() { var startContainer = getSelection().getRangeAt(0).startContainer; var cellElement = (0, hasClosest.lG)(startContainer, "TD") || (0, hasClosest.lG)(startContainer, "TH"); if (cellElement) { insertColumn(vditor, tableElement, cellElement, "beforebegin"); } }; var deleteRowElement = document.createElement("button"); deleteRowElement.setAttribute("type", "button"); deleteRowElement.setAttribute("aria-label", window.VditorI18n["delete-row"] + "<" + (0, compatibility.ns)("⌘-") + ">"); deleteRowElement.setAttribute("data-type", "deleteRow"); deleteRowElement.innerHTML = ''; deleteRowElement.className = "vditor-icon vditor-tooltipped vditor-tooltipped__n"; deleteRowElement.onclick = function() { var startContainer = getSelection().getRangeAt(0).startContainer; var cellElement = (0, hasClosest.lG)(startContainer, "TD") || (0, hasClosest.lG)(startContainer, "TH"); if (cellElement) { deleteRow(vditor, range, cellElement); } }; var deleteColumnElement = document.createElement("button"); deleteColumnElement.setAttribute("type", "button"); deleteColumnElement.setAttribute("aria-label", window.VditorI18n["delete-column"] + "<" + (0, compatibility.ns)("⇧⌘-") + ">"); deleteColumnElement.setAttribute("data-type", "deleteColumn"); deleteColumnElement.innerHTML = ''; deleteColumnElement.className = "vditor-icon vditor-tooltipped vditor-tooltipped__n"; deleteColumnElement.onclick = function() { var startContainer = getSelection().getRangeAt(0).startContainer; var cellElement = (0, hasClosest.lG)(startContainer, "TD") || (0, hasClosest.lG)(startContainer, "TH"); if (cellElement) { deleteColumn(vditor, range, tableElement, cellElement); } }; var inputWrap = document.createElement("span"); inputWrap.setAttribute("aria-label", window.VditorI18n.row); inputWrap.className = "vditor-tooltipped vditor-tooltipped__n"; var input_1 = document.createElement("input"); inputWrap.appendChild(input_1); input_1.type = "number"; input_1.min = "1"; input_1.className = "vditor-input"; input_1.style.width = "42px"; input_1.style.textAlign = "center"; input_1.setAttribute("placeholder", window.VditorI18n.row); input_1.value = tableElement.rows.length.toString(); input_1.oninput = function() { updateTable_1(); }; input_1.onkeydown = function(event) { if (event.isComposing) { return; } if (event.key === "Tab") { input2_1.focus(); input2_1.select(); event.preventDefault(); return; } if (removeBlockElement(vditor, event)) { return; } if (focusToElement(event, range)) { return; } }; var input2Wrap = document.createElement("span"); input2Wrap.setAttribute("aria-label", window.VditorI18n.column); input2Wrap.className = "vditor-tooltipped vditor-tooltipped__n"; var input2_1 = document.createElement("input"); input2Wrap.appendChild(input2_1); input2_1.type = "number"; input2_1.min = "1"; input2_1.className = "vditor-input"; input2_1.style.width = "42px"; input2_1.style.textAlign = "center"; input2_1.setAttribute("placeholder", window.VditorI18n.column); input2_1.value = tableElement.rows[0].cells.length.toString(); input2_1.oninput = function() { updateTable_1(); }; input2_1.onkeydown = function(event) { if (event.isComposing) { return; } if (event.key === "Tab") { input_1.focus(); input_1.select(); event.preventDefault(); return; } if (removeBlockElement(vditor, event)) { return; } if (focusToElement(event, range)) { return; } }; genUp(range, tableElement, vditor); genDown(range, tableElement, vditor); genClose(tableElement, vditor); vditor.wysiwyg.popover.insertAdjacentElement("beforeend", left_1); vditor.wysiwyg.popover.insertAdjacentElement("beforeend", center_1); vditor.wysiwyg.popover.insertAdjacentElement("beforeend", right_1); vditor.wysiwyg.popover.insertAdjacentElement("beforeend", insertRowBElement); vditor.wysiwyg.popover.insertAdjacentElement("beforeend", insertRowElement); vditor.wysiwyg.popover.insertAdjacentElement("beforeend", insertColumnBElement); vditor.wysiwyg.popover.insertAdjacentElement("beforeend", insertColumnElement); vditor.wysiwyg.popover.insertAdjacentElement("beforeend", deleteRowElement); vditor.wysiwyg.popover.insertAdjacentElement("beforeend", deleteColumnElement); vditor.wysiwyg.popover.insertAdjacentElement("beforeend", inputWrap); vditor.wysiwyg.popover.insertAdjacentHTML("beforeend", " x "); vditor.wysiwyg.popover.insertAdjacentElement("beforeend", input2Wrap); customWysiwygToolbar(vditor, "table"); setPopoverPosition(vditor, tableElement); } var linkRefElement = (0, hasClosest.a1)(typeElement, "data-type", "link-ref"); if (linkRefElement) { genLinkRefPopover(vditor, linkRefElement, range); } var footnotesRefElement = (0, hasClosest.a1)(typeElement, "data-type", "footnotes-ref"); if (footnotesRefElement) { var lang = vditor.options.lang; var options = vditor.options; vditor.wysiwyg.popover.innerHTML = ""; var inputWrap = document.createElement("span"); inputWrap.setAttribute("aria-label", window.VditorI18n.footnoteRef + "<" + (0, compatibility.ns)("⌥Enter") + ">"); inputWrap.className = "vditor-tooltipped vditor-tooltipped__n"; var input_2 = document.createElement("input"); inputWrap.appendChild(input_2); input_2.className = "vditor-input"; input_2.setAttribute("placeholder", window.VditorI18n.footnoteRef + "<" + (0, compatibility.ns)("⌥Enter") + ">"); input_2.style.width = "120px"; input_2.value = footnotesRefElement.getAttribute("data-footnotes-label"); input_2.oninput = function() { if (input_2.value.trim() !== "") { footnotesRefElement.setAttribute("data-footnotes-label", input_2.value); } if (typeof vditor.options.input === "function") { vditor.options.input(getMarkdown(vditor)); } }; input_2.onkeydown = function(event) { if (event.isComposing) { return; } if (removeBlockElement(vditor, event)) { return; } if (focusToElement(event, range)) { return; } }; genClose(footnotesRefElement, vditor); vditor.wysiwyg.popover.insertAdjacentElement("beforeend", inputWrap); customWysiwygToolbar(vditor, "footnotes-ref"); setPopoverPosition(vditor, footnotesRefElement); } var blockRenderElement = (0, hasClosest.fb)(typeElement, "vditor-wysiwyg__block"); var isBlock = blockRenderElement ? blockRenderElement.getAttribute("data-type").indexOf("block") > -1 : false; vditor.wysiwyg.element.querySelectorAll(".vditor-wysiwyg__preview").forEach(function(itemElement) { if (!blockRenderElement || blockRenderElement && isBlock && !blockRenderElement.contains(itemElement)) { var previousElement = itemElement.previousElementSibling; previousElement.style.display = "none"; } }); if (blockRenderElement && isBlock) { vditor.wysiwyg.popover.innerHTML = ""; genUp(range, blockRenderElement, vditor); genDown(range, blockRenderElement, vditor); genClose(blockRenderElement, vditor); if (blockRenderElement.getAttribute("data-type") === "code-block") { var languageWrap = document.createElement("span"); languageWrap.setAttribute("aria-label", window.VditorI18n.language + "<" + (0, compatibility.ns)("⌥Enter") + ">"); languageWrap.className = "vditor-tooltipped vditor-tooltipped__n"; var language_1 = document.createElement("input"); languageWrap.appendChild(language_1); var codeElement_1 = blockRenderElement.firstElementChild.firstElementChild; language_1.className = "vditor-input"; language_1.setAttribute("placeholder", window.VditorI18n.language + "<" + (0, compatibility.ns)("⌥Enter") + ">"); language_1.value = codeElement_1.className.indexOf("language-") > -1 ? codeElement_1.className.split("-")[1].split(" ")[0] : ""; language_1.oninput = function(e) { if (language_1.value.trim() !== "") { codeElement_1.className = "language-".concat(language_1.value); } else { codeElement_1.className = ""; vditor.hint.recentLanguage = ""; } if (blockRenderElement.lastElementChild.classList.contains("vditor-wysiwyg__preview")) { blockRenderElement.lastElementChild.innerHTML = blockRenderElement.firstElementChild.innerHTML; processCodeRender(blockRenderElement.lastElementChild, vditor); } afterRenderEvent(vditor); if (e.detail === 1) { range.setStart(codeElement_1.firstChild, 0); range.collapse(true); (0, selection.Hc)(range); } }; language_1.onkeydown = function(event) { if (event.isComposing) { return; } if (removeBlockElement(vditor, event)) { return; } if (event.key === "Escape" && vditor.hint.element.style.display === "block") { vditor.hint.element.style.display = "none"; event.preventDefault(); return; } vditor.hint.select(event, vditor); focusToElement(event, range); }; language_1.onkeyup = function(event) { var _a, _b; if (event.isComposing || event.key === "Enter" || event.key === "ArrowUp" || event.key === "Escape" || event.key === "ArrowDown") { return; } var matchLangData = []; var key = language_1.value.substring(0, language_1.selectionStart); (vditor.options.preview.hljs.langs || constants.g.ALIAS_CODE_LANGUAGES.concat(((_b = (_a = window.hljs) === null || _a === void 0 ? void 0 : _a.listLanguages()) !== null && _b !== void 0 ? _b : []).sort())).forEach(function(keyName) { if (keyName.indexOf(key.toLowerCase()) > -1) { matchLangData.push({ html: keyName, value: keyName }); } }); vditor.hint.genHTML(matchLangData, key, vditor); event.preventDefault(); }; vditor.wysiwyg.popover.insertAdjacentElement("beforeend", languageWrap); customWysiwygToolbar(vditor, "code-block"); } else { customWysiwygToolbar(vditor, "block"); } setPopoverPosition(vditor, blockRenderElement); } else { blockRenderElement = void 0; } if (headingElement) { vditor.wysiwyg.popover.innerHTML = ""; var inputWrap = document.createElement("span"); inputWrap.setAttribute("aria-label", "ID<" + (0, compatibility.ns)("⌥Enter") + ">"); inputWrap.className = "vditor-tooltipped vditor-tooltipped__n"; var input_3 = document.createElement("input"); inputWrap.appendChild(input_3); input_3.className = "vditor-input"; input_3.setAttribute("placeholder", "ID<" + (0, compatibility.ns)("⌥Enter") + ">"); input_3.style.width = "120px"; input_3.value = headingElement.getAttribute("data-id") || ""; input_3.oninput = function() { headingElement.setAttribute("data-id", input_3.value); if (typeof vditor.options.input === "function") { vditor.options.input(getMarkdown(vditor)); } }; input_3.onkeydown = function(event) { if (event.isComposing) { return; } if (removeBlockElement(vditor, event)) { return; } if (focusToElement(event, range)) { return; } }; genUp(range, headingElement, vditor); genDown(range, headingElement, vditor); genClose(headingElement, vditor); vditor.wysiwyg.popover.insertAdjacentElement("beforeend", inputWrap); customWysiwygToolbar(vditor, "heading"); setPopoverPosition(vditor, headingElement); } if (aElement) { genAPopover(vditor, aElement, range); } if (!blockquoteElement && !liElement && !tableElement && !blockRenderElement && !aElement && !linkRefElement && !footnotesRefElement && !headingElement && !tocElement) { var blockElement = (0, hasClosest.a1)(typeElement, "data-block", "0"); if (blockElement && blockElement.parentElement.isEqualNode(vditor.wysiwyg.element)) { vditor.wysiwyg.popover.innerHTML = ""; genUp(range, blockElement, vditor); genDown(range, blockElement, vditor); genClose(blockElement, vditor); customWysiwygToolbar(vditor, "block"); setPopoverPosition(vditor, blockElement); } else { vditor.wysiwyg.popover.style.display = "none"; } } vditor.wysiwyg.element.querySelectorAll('span[data-type="backslash"] > span').forEach(function(item) { item.style.display = "none"; }); var backslashElement = (0, hasClosest.a1)(range.startContainer, "data-type", "backslash"); if (backslashElement) { backslashElement.querySelector("span").style.display = "inline"; } }, 200); }; var setPopoverPosition = function(vditor, element) { var targetElement = element; var tableElement = (0, hasClosest.lG)(element, "TABLE"); if (tableElement) { targetElement = tableElement; } vditor.wysiwyg.popover.style.left = "0"; vditor.wysiwyg.popover.style.display = "block"; vditor.wysiwyg.popover.style.top = Math.max(-8, targetElement.offsetTop - 21 - vditor.wysiwyg.element.scrollTop) + "px"; vditor.wysiwyg.popover.style.left = Math.min(targetElement.offsetLeft, vditor.wysiwyg.element.clientWidth - vditor.wysiwyg.popover.clientWidth) + "px"; vditor.wysiwyg.popover.setAttribute("data-top", (targetElement.offsetTop - 21).toString()); }; var genLinkRefPopover = function(vditor, linkRefElement, range) { if (range === void 0) { range = getSelection().getRangeAt(0); } vditor.wysiwyg.popover.innerHTML = ""; var updateLinkRef = function() { if (input2.value.trim() !== "") { if (linkRefElement.tagName === "IMG") { linkRefElement.setAttribute("alt", input2.value); } else { linkRefElement.textContent = input2.value; } } if (input1.value.trim() !== "") { linkRefElement.setAttribute("data-link-label", input1.value); } if (typeof vditor.options.input === "function") { vditor.options.input(getMarkdown(vditor)); } }; var inputWrap = document.createElement("span"); inputWrap.setAttribute("aria-label", window.VditorI18n.textIsNotEmpty); inputWrap.className = "vditor-tooltipped vditor-tooltipped__n"; var input2 = document.createElement("input"); inputWrap.appendChild(input2); input2.className = "vditor-input"; input2.setAttribute("placeholder", window.VditorI18n.textIsNotEmpty); input2.style.width = "120px"; input2.value = linkRefElement.getAttribute("alt") || linkRefElement.textContent; input2.oninput = function() { updateLinkRef(); }; input2.onkeydown = function(event) { if (removeBlockElement(vditor, event)) { return; } if (focusToElement(event, range)) { return; } linkHotkey(vditor, linkRefElement, event, input1); }; var input1Wrap = document.createElement("span"); input1Wrap.setAttribute("aria-label", window.VditorI18n.linkRef); input1Wrap.className = "vditor-tooltipped vditor-tooltipped__n"; var input1 = document.createElement("input"); input1Wrap.appendChild(input1); input1.className = "vditor-input"; input1.setAttribute("placeholder", window.VditorI18n.linkRef); input1.value = linkRefElement.getAttribute("data-link-label"); input1.oninput = function() { updateLinkRef(); }; input1.onkeydown = function(event) { if (removeBlockElement(vditor, event)) { return; } if (focusToElement(event, range)) { return; } linkHotkey(vditor, linkRefElement, event, input2); }; genClose(linkRefElement, vditor); vditor.wysiwyg.popover.insertAdjacentElement("beforeend", inputWrap); vditor.wysiwyg.popover.insertAdjacentElement("beforeend", input1Wrap); customWysiwygToolbar(vditor, "link-ref"); setPopoverPosition(vditor, linkRefElement); }; var genUp = function(range, element, vditor) { var previousElement = element.previousElementSibling; if (!previousElement || !element.parentElement.isEqualNode(vditor.wysiwyg.element) && element.tagName !== "LI") { return; } var upElement = document.createElement("button"); upElement.setAttribute("type", "button"); upElement.setAttribute("data-type", "up"); upElement.setAttribute("aria-label", window.VditorI18n.up + "<" + (0, compatibility.ns)("⇧⌘U") + ">"); upElement.innerHTML = ''; upElement.className = "vditor-icon vditor-tooltipped vditor-tooltipped__n"; upElement.onclick = function() { range.insertNode(document.createElement("wbr")); previousElement.insertAdjacentElement("beforebegin", element); (0, selection.ib)(vditor.wysiwyg.element, range); afterRenderEvent(vditor); highlightToolbarWYSIWYG(vditor); scrollCenter(vditor); }; vditor.wysiwyg.popover.insertAdjacentElement("beforeend", upElement); }; var genDown = function(range, element, vditor) { var nextElement = element.nextElementSibling; if (!nextElement || !element.parentElement.isEqualNode(vditor.wysiwyg.element) && element.tagName !== "LI") { return; } var downElement = document.createElement("button"); downElement.setAttribute("type", "button"); downElement.setAttribute("data-type", "down"); downElement.setAttribute("aria-label", window.VditorI18n.down + "<" + (0, compatibility.ns)("⇧⌘D") + ">"); downElement.innerHTML = ''; downElement.className = "vditor-icon vditor-tooltipped vditor-tooltipped__n"; downElement.onclick = function() { range.insertNode(document.createElement("wbr")); nextElement.insertAdjacentElement("afterend", element); (0, selection.ib)(vditor.wysiwyg.element, range); afterRenderEvent(vditor); highlightToolbarWYSIWYG(vditor); scrollCenter(vditor); }; vditor.wysiwyg.popover.insertAdjacentElement("beforeend", downElement); }; var genClose = function(element, vditor) { var close = document.createElement("button"); close.setAttribute("type", "button"); close.setAttribute("data-type", "remove"); close.setAttribute("aria-label", window.VditorI18n.remove + "<" + (0, compatibility.ns)("⇧⌘X") + ">"); close.innerHTML = ''; close.className = "vditor-icon vditor-tooltipped vditor-tooltipped__n"; close.onclick = function() { var range = (0, selection.zh)(vditor); range.setStartAfter(element); (0, selection.Hc)(range); element.remove(); afterRenderEvent(vditor); highlightToolbarWYSIWYG(vditor); if (["H1", "H2", "H3", "H4", "H5", "H6"].includes(element.tagName)) { renderToc(vditor); } }; vditor.wysiwyg.popover.insertAdjacentElement("beforeend", close); }; var linkHotkey = function(vditor, element, event, nextInputElement) { if (event.isComposing) { return; } if (event.key === "Tab") { nextInputElement.focus(); nextInputElement.select(); event.preventDefault(); return; } if (!(0, compatibility.yl)(event) && !event.shiftKey && event.altKey && event.key === "Enter") { var range = (0, selection.zh)(vditor); element.insertAdjacentHTML("afterend", constants.g.ZWSP); range.setStartAfter(element.nextSibling); range.collapse(true); (0, selection.Hc)(range); event.preventDefault(); } }; var genAPopover = function(vditor, aElement, range) { vditor.wysiwyg.popover.innerHTML = ""; var updateA = function() { if (input2.value.trim() !== "") { aElement.innerHTML = input2.value; } aElement.setAttribute("href", input1.value); aElement.setAttribute("title", input22.value); afterRenderEvent(vditor); }; aElement.querySelectorAll("[data-marker]").forEach(function(item) { item.removeAttribute("data-marker"); }); var inputWrap = document.createElement("span"); inputWrap.setAttribute("aria-label", window.VditorI18n.textIsNotEmpty); inputWrap.className = "vditor-tooltipped vditor-tooltipped__n"; var input2 = document.createElement("input"); inputWrap.appendChild(input2); input2.className = "vditor-input"; input2.setAttribute("placeholder", window.VditorI18n.textIsNotEmpty); input2.style.width = "120px"; input2.value = aElement.innerHTML || ""; input2.oninput = function() { updateA(); }; input2.onkeydown = function(event) { if (removeBlockElement(vditor, event)) { return; } if (focusToElement(event, range)) { return; } linkHotkey(vditor, aElement, event, input1); }; var input1Wrap = document.createElement("span"); input1Wrap.setAttribute("aria-label", window.VditorI18n.link); input1Wrap.className = "vditor-tooltipped vditor-tooltipped__n"; var input1 = document.createElement("input"); input1Wrap.appendChild(input1); input1.className = "vditor-input"; input1.setAttribute("placeholder", window.VditorI18n.link); input1.value = aElement.getAttribute("href") || ""; input1.oninput = function() { updateA(); }; input1.onkeydown = function(event) { if (removeBlockElement(vditor, event)) { return; } if (focusToElement(event, range)) { return; } linkHotkey(vditor, aElement, event, input22); }; var input2Wrap = document.createElement("span"); input2Wrap.setAttribute("aria-label", window.VditorI18n.tooltipText); input2Wrap.className = "vditor-tooltipped vditor-tooltipped__n"; var input22 = document.createElement("input"); input2Wrap.appendChild(input22); input22.className = "vditor-input"; input22.setAttribute("placeholder", window.VditorI18n.tooltipText); input22.style.width = "60px"; input22.value = aElement.getAttribute("title") || ""; input22.oninput = function() { updateA(); }; input22.onkeydown = function(event) { if (removeBlockElement(vditor, event)) { return; } if (focusToElement(event, range)) { return; } linkHotkey(vditor, aElement, event, input2); }; genClose(aElement, vditor); vditor.wysiwyg.popover.insertAdjacentElement("beforeend", inputWrap); vditor.wysiwyg.popover.insertAdjacentElement("beforeend", input1Wrap); vditor.wysiwyg.popover.insertAdjacentElement("beforeend", input2Wrap); customWysiwygToolbar(vditor, "a"); setPopoverPosition(vditor, aElement); }; var genImagePopover = function(event, vditor) { var imgElement = event.target; vditor.wysiwyg.popover.innerHTML = ""; var updateImg = function() { imgElement.setAttribute("src", inputElement.value); imgElement.setAttribute("alt", alt.value); imgElement.setAttribute("title", title.value); if (typeof vditor.options.input === "function") { vditor.options.input(getMarkdown(vditor)); } }; var inputWrap = document.createElement("span"); inputWrap.setAttribute("aria-label", window.VditorI18n.imageURL); inputWrap.className = "vditor-tooltipped vditor-tooltipped__n"; var inputElement = document.createElement("input"); inputWrap.appendChild(inputElement); inputElement.className = "vditor-input"; inputElement.setAttribute("placeholder", window.VditorI18n.imageURL); inputElement.value = imgElement.getAttribute("src") || ""; inputElement.oninput = function() { updateImg(); }; inputElement.onkeydown = function(elementEvent) { removeBlockElement(vditor, elementEvent); }; var altWrap = document.createElement("span"); altWrap.setAttribute("aria-label", window.VditorI18n.alternateText); altWrap.className = "vditor-tooltipped vditor-tooltipped__n"; var alt = document.createElement("input"); altWrap.appendChild(alt); alt.className = "vditor-input"; alt.setAttribute("placeholder", window.VditorI18n.alternateText); alt.style.width = "52px"; alt.value = imgElement.getAttribute("alt") || ""; alt.oninput = function() { updateImg(); }; alt.onkeydown = function(elementEvent) { removeBlockElement(vditor, elementEvent); }; var titleWrap = document.createElement("span"); titleWrap.setAttribute("aria-label", window.VditorI18n.title); titleWrap.className = "vditor-tooltipped vditor-tooltipped__n"; var title = document.createElement("input"); titleWrap.appendChild(title); title.className = "vditor-input"; title.setAttribute("placeholder", window.VditorI18n.title); title.value = imgElement.getAttribute("title") || ""; title.oninput = function() { updateImg(); }; title.onkeydown = function(elementEvent) { removeBlockElement(vditor, elementEvent); }; genClose(imgElement, vditor); vditor.wysiwyg.popover.insertAdjacentElement("beforeend", inputWrap); vditor.wysiwyg.popover.insertAdjacentElement("beforeend", altWrap); vditor.wysiwyg.popover.insertAdjacentElement("beforeend", titleWrap); customWysiwygToolbar(vditor, "image"); setPopoverPosition(vditor, imgElement); }; var focusToElement = function(event, range) { if (!(0, compatibility.yl)(event) && !event.shiftKey && event.key === "Enter" || event.key === "Escape") { if (range) { (0, selection.Hc)(range); } event.preventDefault(); event.stopPropagation(); return true; } }; var customWysiwygToolbar = function(vditor, type) { vditor.options.customWysiwygToolbar(type, vditor.wysiwyg.popover); }; ; var highlightToolbar = function(vditor) { if (vditor.currentMode === "wysiwyg") { highlightToolbarWYSIWYG(vditor); } else if (vditor.currentMode === "ir") { highlightToolbarIR(vditor); } }; ; var renderDomByMd = function(vditor, md, options) { if (options === void 0) { options = { enableAddUndoStack: true, enableHint: false, enableInput: true }; } var editorElement = vditor.wysiwyg.element; editorElement.innerHTML = vditor.lute.Md2VditorDOM(md); editorElement.querySelectorAll(".vditor-wysiwyg__preview[data-render='2']").forEach(function(item) { processCodeRender(item, vditor); item.previousElementSibling.setAttribute("style", "display:none"); }); afterRenderEvent(vditor, options); }; ; var cancelBES = function(range, vditor, commandName) { var element = range.startContainer.parentElement; var jump = false; var lastTagName = ""; var lastEndTagName = ""; var splitHTML = splitElement(range); var lastBeforeHTML = splitHTML.beforeHTML; var lastAfterHTML = splitHTML.afterHTML; while (element && !jump) { var tagName = element.tagName; if (tagName === "STRIKE") { tagName = "S"; } if (tagName === "I") { tagName = "EM"; } if (tagName === "B") { tagName = "STRONG"; } if (tagName === "S" || tagName === "STRONG" || tagName === "EM") { var insertHTML = ""; var previousHTML = ""; var nextHTML = ""; if (element.parentElement.getAttribute("data-block") !== "0") { previousHTML = getPreviousHTML(element); nextHTML = getNextHTML(element); } if (lastBeforeHTML || previousHTML) { insertHTML = "".concat(previousHTML, "<").concat(tagName, ">").concat(lastBeforeHTML, ""); lastBeforeHTML = insertHTML; } if (commandName === "bold" && tagName === "STRONG" || commandName === "italic" && tagName === "EM" || commandName === "strikeThrough" && tagName === "S") { insertHTML += "".concat(lastTagName).concat(constants.g.ZWSP, "").concat(lastEndTagName); jump = true; } if (lastAfterHTML || nextHTML) { lastAfterHTML = "<".concat(tagName, ">").concat(lastAfterHTML, "").concat(nextHTML); insertHTML += lastAfterHTML; } if (element.parentElement.getAttribute("data-block") !== "0") { element = element.parentElement; element.innerHTML = insertHTML; } else { element.outerHTML = insertHTML; element = element.parentElement; } lastTagName = "<".concat(tagName, ">") + lastTagName; lastEndTagName = "") + lastEndTagName; } else { jump = true; } } (0, selection.ib)(vditor.wysiwyg.element, range); }; var toolbarEvent = function(vditor, actionBtn, event) { if (vditor.wysiwyg.composingLock && event instanceof CustomEvent) { return; } var useHighlight = true; var useRender = true; if (vditor.wysiwyg.element.querySelector("wbr")) { vditor.wysiwyg.element.querySelector("wbr").remove(); } var range = (0, selection.zh)(vditor); var commandName = actionBtn.getAttribute("data-type"); if (actionBtn.classList.contains("vditor-menu--current")) { if (commandName === "strike") { commandName = "strikeThrough"; } if (commandName === "quote") { var quoteElement = (0, hasClosest.lG)(range.startContainer, "BLOCKQUOTE"); if (!quoteElement) { quoteElement = range.startContainer.childNodes[range.startOffset]; } if (quoteElement) { useHighlight = false; actionBtn.classList.remove("vditor-menu--current"); range.insertNode(document.createElement("wbr")); quoteElement.outerHTML = quoteElement.innerHTML.trim() === "" ? '

    '.concat(quoteElement.innerHTML, "

    ") : quoteElement.innerHTML; (0, selection.ib)(vditor.wysiwyg.element, range); } } else if (commandName === "inline-code") { var inlineCodeElement = (0, hasClosest.lG)(range.startContainer, "CODE"); if (!inlineCodeElement) { inlineCodeElement = range.startContainer.childNodes[range.startOffset]; } if (inlineCodeElement) { inlineCodeElement.outerHTML = inlineCodeElement.innerHTML.replace(constants.g.ZWSP, "") + ""; (0, selection.ib)(vditor.wysiwyg.element, range); } } else if (commandName === "link") { if (!range.collapsed) { document.execCommand("unlink", false, ""); } else { range.selectNode(range.startContainer.parentElement); document.execCommand("unlink", false, ""); } } else if (commandName === "check" || commandName === "list" || commandName === "ordered-list") { listToggle(vditor, range, commandName); (0, selection.ib)(vditor.wysiwyg.element, range); useHighlight = false; actionBtn.classList.remove("vditor-menu--current"); } else { useHighlight = false; actionBtn.classList.remove("vditor-menu--current"); if (range.toString() === "") { cancelBES(range, vditor, commandName); } else { document.execCommand(commandName, false, ""); } } } else { if (vditor.wysiwyg.element.childNodes.length === 0) { vditor.wysiwyg.element.innerHTML = '

    '; (0, selection.ib)(vditor.wysiwyg.element, range); } var blockElement = (0, hasClosest.F9)(range.startContainer); if (commandName === "quote") { if (!blockElement) { blockElement = range.startContainer.childNodes[range.startOffset]; } if (blockElement) { useHighlight = false; actionBtn.classList.add("vditor-menu--current"); range.insertNode(document.createElement("wbr")); var liElement = (0, hasClosest.lG)(range.startContainer, "LI"); if (liElement && blockElement.contains(liElement)) { liElement.innerHTML = '
    '.concat(liElement.innerHTML, "
    "); } else { blockElement.outerHTML = '
    '.concat(blockElement.outerHTML, "
    "); } (0, selection.ib)(vditor.wysiwyg.element, range); } } else if (commandName === "check" || commandName === "list" || commandName === "ordered-list") { listToggle(vditor, range, commandName, false); (0, selection.ib)(vditor.wysiwyg.element, range); useHighlight = false; removeCurrentToolbar(vditor.toolbar.elements, ["check", "list", "ordered-list"]); actionBtn.classList.add("vditor-menu--current"); } else if (commandName === "inline-code") { if (range.toString() === "") { var node = document.createElement("code"); node.textContent = constants.g.ZWSP; range.insertNode(node); range.setStart(node.firstChild, 1); range.collapse(true); (0, selection.Hc)(range); } else if (range.startContainer.nodeType === 3) { var node = document.createElement("code"); range.surroundContents(node); range.insertNode(node); (0, selection.Hc)(range); } actionBtn.classList.add("vditor-menu--current"); } else if (commandName === "code") { var node = document.createElement("div"); node.className = "vditor-wysiwyg__block"; node.setAttribute("data-type", "code-block"); node.setAttribute("data-block", "0"); node.setAttribute("data-marker", "```"); if (range.toString() === "") { node.innerHTML = "
    \n
    "; } else { node.innerHTML = "
    ".concat(range.toString(), "
    "); range.deleteContents(); } range.insertNode(node); if (blockElement) { blockElement.outerHTML = vditor.lute.SpinVditorDOM(blockElement.outerHTML); } (0, selection.ib)(vditor.wysiwyg.element, range); vditor.wysiwyg.element.querySelectorAll(".vditor-wysiwyg__preview[data-render='2']").forEach(function(item) { processCodeRender(item, vditor); }); actionBtn.classList.add("vditor-menu--disabled"); } else if (commandName === "link") { if (range.toString() === "") { var aElement = document.createElement("a"); aElement.innerText = constants.g.ZWSP; range.insertNode(aElement); range.setStart(aElement.firstChild, 1); range.collapse(true); genAPopover(vditor, aElement, range); var textInputElement = vditor.wysiwyg.popover.querySelector("input"); textInputElement.value = ""; textInputElement.focus(); useRender = false; } else { var node = document.createElement("a"); node.setAttribute("href", ""); node.innerHTML = range.toString(); range.surroundContents(node); range.insertNode(node); (0, selection.Hc)(range); genAPopover(vditor, node, range); var textInputElements = vditor.wysiwyg.popover.querySelectorAll("input"); textInputElements[0].value = node.innerText; textInputElements[1].focus(); } useHighlight = false; actionBtn.classList.add("vditor-menu--current"); } else if (commandName === "table") { var tableHTML_1 = '
    col1col2col3
    '; if (range.toString().trim() === "") { if (blockElement && blockElement.innerHTML.trim().replace(constants.g.ZWSP, "") === "") { blockElement.outerHTML = tableHTML_1; } else { document.execCommand("insertHTML", false, tableHTML_1); } range.selectNode(vditor.wysiwyg.element.querySelector("wbr").previousSibling); vditor.wysiwyg.element.querySelector("wbr").remove(); (0, selection.Hc)(range); } else { tableHTML_1 = ''; var tableText = range.toString().split("\n"); var delimiter_1 = tableText[0].split(",").length > tableText[0].split(" ").length ? "," : " "; tableText.forEach(function(rows, index) { if (index === 0) { rows.split(delimiter_1).forEach(function(header, subIndex) { if (subIndex === 0) { tableHTML_1 += ""); } else { tableHTML_1 += ""); } }); tableHTML_1 += ""; } else { if (index === 1) { tableHTML_1 += ""; } else { tableHTML_1 += ""; } rows.split(delimiter_1).forEach(function(cell) { tableHTML_1 += ""); }); tableHTML_1 += ""; } }); tableHTML_1 += "
    ".concat(header, "".concat(header, "
    ".concat(cell, "
    "; document.execCommand("insertHTML", false, tableHTML_1); (0, selection.ib)(vditor.wysiwyg.element, range); } useHighlight = false; actionBtn.classList.add("vditor-menu--disabled"); } else if (commandName === "line") { if (blockElement) { var hrHTML = '

    \n

    '; if (blockElement.innerHTML.trim() === "") { blockElement.outerHTML = hrHTML; } else { blockElement.insertAdjacentHTML("afterend", hrHTML); } (0, selection.ib)(vditor.wysiwyg.element, range); } } else { useHighlight = false; actionBtn.classList.add("vditor-menu--current"); if (commandName === "strike") { commandName = "strikeThrough"; } if (range.toString() === "" && (commandName === "bold" || commandName === "italic" || commandName === "strikeThrough")) { var tagName = "strong"; if (commandName === "italic") { tagName = "em"; } else if (commandName === "strikeThrough") { tagName = "s"; } var node = document.createElement(tagName); node.textContent = constants.g.ZWSP; range.insertNode(node); if (node.previousSibling && node.previousSibling.textContent === constants.g.ZWSP) { node.previousSibling.textContent = ""; } range.setStart(node.firstChild, 1); range.collapse(true); (0, selection.Hc)(range); } else { document.execCommand(commandName, false, ""); } } } if (useHighlight) { highlightToolbarWYSIWYG(vditor); } if (useRender) { afterRenderEvent(vditor); } }; ; var MenuItem = ( /** @class */ function() { function MenuItem2(vditor, menuItem) { var _a; var _this = this; this.element = document.createElement("div"); if (menuItem.className) { (_a = this.element.classList).add.apply(_a, menuItem.className.split(" ")); } var hotkey = menuItem.hotkey ? " <".concat((0, compatibility.ns)(menuItem.hotkey), ">") : ""; if (menuItem.level === 2) { hotkey = menuItem.hotkey ? " <".concat((0, compatibility.ns)(menuItem.hotkey), ">") : ""; } var tip = menuItem.tip ? menuItem.tip + hotkey : "".concat(window.VditorI18n[menuItem.name]).concat(hotkey); var tagName = menuItem.name === "upload" ? "div" : "button"; if (menuItem.level === 2) { this.element.innerHTML = "<".concat(tagName, ' data-type="').concat(menuItem.name, '">').concat(tip, ""); } else { this.element.classList.add("vditor-toolbar__item"); var iconElement = document.createElement(tagName); iconElement.setAttribute("data-type", menuItem.name); iconElement.className = "vditor-tooltipped vditor-tooltipped__".concat(menuItem.tipPosition); iconElement.setAttribute("aria-label", tip); iconElement.innerHTML = menuItem.icon; this.element.appendChild(iconElement); } if (!menuItem.prefix) { return; } this.element.children[0].addEventListener((0, compatibility.Le)(), function(event) { event.preventDefault(); if (_this.element.firstElementChild.classList.contains(constants.g.CLASS_MENU_DISABLED)) { return; } if (vditor.currentMode === "wysiwyg") { toolbarEvent(vditor, _this.element.children[0], event); } else if (vditor.currentMode === "ir") { process_processToolbar(vditor, _this.element.children[0], menuItem.prefix || "", menuItem.suffix || ""); } else { processToolbar(vditor, _this.element.children[0], menuItem.prefix || "", menuItem.suffix || ""); } }); } return MenuItem2; }() ); ; var __extends = function() { var extendStatics = function(d, b) { extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { d2.__proto__ = b2; } || function(d2, b2) { for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; }; return extendStatics(d, b); }; return function(d, b) { if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; }(); var setEditMode = function(vditor, type, event) { var markdownText; if (typeof event !== "string") { hidePanel(vditor, ["subToolbar", "hint"]); event.preventDefault(); markdownText = getMarkdown(vditor); } else { markdownText = event; } if (vditor.currentMode === type && typeof event !== "string") { return; } if (vditor.devtools) { vditor.devtools.renderEchart(vditor); } if (vditor.options.preview.mode === "both" && type === "sv") { vditor.preview.element.style.display = "block"; } else { vditor.preview.element.style.display = "none"; } enableToolbar(vditor.toolbar.elements, constants.g.EDIT_TOOLBARS); removeCurrentToolbar(vditor.toolbar.elements, constants.g.EDIT_TOOLBARS); disableToolbar(vditor.toolbar.elements, ["outdent", "indent"]); if (type === "ir") { hideToolbar(vditor.toolbar.elements, ["both"]); showToolbar(vditor.toolbar.elements, ["outdent", "indent", "outline", "insert-before", "insert-after"]); vditor.sv.element.style.display = "none"; vditor.wysiwyg.element.parentElement.style.display = "none"; vditor.ir.element.parentElement.style.display = "block"; vditor.lute.SetVditorIR(true); vditor.lute.SetVditorWYSIWYG(false); vditor.lute.SetVditorSV(false); vditor.currentMode = "ir"; vditor.ir.element.innerHTML = vditor.lute.Md2VditorIRDOM(markdownText); process_processAfterRender(vditor, { enableAddUndoStack: true, enableHint: false, enableInput: false }); setPadding(vditor); vditor.ir.element.querySelectorAll(".vditor-ir__preview[data-render='2']").forEach(function(item) { processCodeRender(item, vditor); }); vditor.ir.element.querySelectorAll(".vditor-toc").forEach(function(item) { (0, mathRender.H)(item, { cdn: vditor.options.cdn, math: vditor.options.preview.math }); }); } else if (type === "wysiwyg") { hideToolbar(vditor.toolbar.elements, ["both"]); showToolbar(vditor.toolbar.elements, ["outdent", "indent", "outline", "insert-before", "insert-after"]); vditor.sv.element.style.display = "none"; vditor.wysiwyg.element.parentElement.style.display = "block"; vditor.ir.element.parentElement.style.display = "none"; vditor.lute.SetVditorIR(false); vditor.lute.SetVditorWYSIWYG(true); vditor.lute.SetVditorSV(false); vditor.currentMode = "wysiwyg"; setPadding(vditor); renderDomByMd(vditor, markdownText, { enableAddUndoStack: true, enableHint: false, enableInput: false }); vditor.wysiwyg.element.querySelectorAll(".vditor-toc").forEach(function(item) { (0, mathRender.H)(item, { cdn: vditor.options.cdn, math: vditor.options.preview.math }); }); vditor.wysiwyg.popover.style.display = "none"; } else if (type === "sv") { showToolbar(vditor.toolbar.elements, ["both"]); hideToolbar(vditor.toolbar.elements, ["outdent", "indent", "outline", "insert-before", "insert-after"]); vditor.wysiwyg.element.parentElement.style.display = "none"; vditor.ir.element.parentElement.style.display = "none"; if (vditor.options.preview.mode === "both") { vditor.sv.element.style.display = "block"; } else if (vditor.options.preview.mode === "editor") { vditor.sv.element.style.display = "block"; } vditor.lute.SetVditorIR(false); vditor.lute.SetVditorWYSIWYG(false); vditor.lute.SetVditorSV(true); vditor.currentMode = "sv"; var svHTML = processSpinVditorSVDOM(markdownText, vditor); if (svHTML === "
    ") { svHTML = ""; } vditor.sv.element.innerHTML = svHTML; combineFootnote(vditor.sv.element); processAfterRender(vditor, { enableAddUndoStack: true, enableHint: false, enableInput: false }); setPadding(vditor); } vditor.undo.resetIcon(vditor); if (typeof event !== "string") { vditor[vditor.currentMode].element.focus(); highlightToolbar(vditor); } renderToc(vditor); setTypewriterPosition(vditor); if (vditor.toolbar.elements["edit-mode"]) { vditor.toolbar.elements["edit-mode"].querySelectorAll("button").forEach(function(item) { item.classList.remove("vditor-menu--current"); }); vditor.toolbar.elements["edit-mode"].querySelector('button[data-mode="'.concat(vditor.currentMode, '"]')).classList.add("vditor-menu--current"); } vditor.outline.toggle(vditor, vditor.currentMode !== "sv" && vditor.options.outline.enable, typeof event !== "string"); }; var EditMode = ( /** @class */ function(_super) { __extends(EditMode2, _super); function EditMode2(vditor, menuItem) { var _this = _super.call(this, vditor, menuItem) || this; var panelElement = document.createElement("div"); panelElement.className = "vditor-hint".concat(menuItem.level === 2 ? "" : " vditor-panel--arrow"); panelElement.innerHTML = '\n\n"); _this.element.appendChild(panelElement); _this._bindEvent(vditor, panelElement, menuItem); return _this; } EditMode2.prototype._bindEvent = function(vditor, panelElement, menuItem) { var actionBtn = this.element.children[0]; toggleSubMenu(vditor, panelElement, actionBtn, menuItem.level); panelElement.children.item(0).addEventListener((0, compatibility.Le)(), function(event) { setEditMode(vditor, "wysiwyg", event); event.preventDefault(); event.stopPropagation(); }); panelElement.children.item(1).addEventListener((0, compatibility.Le)(), function(event) { setEditMode(vditor, "ir", event); event.preventDefault(); event.stopPropagation(); }); panelElement.children.item(2).addEventListener((0, compatibility.Le)(), function(event) { setEditMode(vditor, "sv", event); event.preventDefault(); event.stopPropagation(); }); }; return EditMode2; }(MenuItem) ); ; var getSelectText = function(editor, range) { if ((0, selection.Gb)(editor, range)) { return getSelection().toString(); } return ""; }; ; var focusEvent = function(vditor, editorElement) { editorElement.addEventListener("focus", function() { if (vditor.options.focus) { vditor.options.focus(getMarkdown(vditor)); } hidePanel(vditor, ["subToolbar", "hint"]); }); }; var dblclickEvent = function(vditor, editorElement) { editorElement.addEventListener("dblclick", function(event) { if (event.target.tagName === "IMG") { if (vditor.options.image.preview) { vditor.options.image.preview(event.target); } else if (vditor.options.image.isPreview) { (0, preview_image.E)(event.target, vditor.options.lang, vditor.options.theme); } } }); }; var blurEvent = function(vditor, editorElement) { editorElement.addEventListener("blur", function(event) { if (vditor.currentMode === "ir") { var expandElement = vditor.ir.element.querySelector(".vditor-ir__node--expand"); if (expandElement) { expandElement.classList.remove("vditor-ir__node--expand"); } } else if (vditor.currentMode === "wysiwyg" && !vditor.wysiwyg.selectPopover.contains(event.relatedTarget)) { vditor.wysiwyg.hideComment(); } vditor[vditor.currentMode].range = (0, selection.zh)(vditor); if (vditor.options.blur) { vditor.options.blur(getMarkdown(vditor)); } }); }; var dropEvent = function(vditor, editorElement) { editorElement.addEventListener("dragstart", function(event) { event.dataTransfer.setData(constants.g.DROP_EDITOR, constants.g.DROP_EDITOR); }); editorElement.addEventListener("drop", function(event) { if (event.dataTransfer.getData(constants.g.DROP_EDITOR)) { execAfterRender(vditor); } else if (event.dataTransfer.types.includes("Files") || event.dataTransfer.types.includes("text/html")) { paste(vditor, event, { pasteCode: function(code) { document.execCommand("insertHTML", false, code); } }); } }); }; var copyEvent = function(vditor, editorElement, copy) { editorElement.addEventListener("copy", function(event) { return copy(event, vditor); }); }; var cutEvent = function(vditor, editorElement, copy) { editorElement.addEventListener("cut", function(event) { copy(event, vditor); if (vditor.options.comment.enable && vditor.currentMode === "wysiwyg") { vditor.wysiwyg.getComments(vditor); } document.execCommand("delete"); }); }; var scrollCenter = function(vditor) { if (vditor.currentMode === "wysiwyg" && vditor.options.comment.enable) { vditor.options.comment.adjustTop(vditor.wysiwyg.getComments(vditor, true)); } if (!vditor.options.typewriterMode) { return; } var editorElement = vditor[vditor.currentMode].element; var cursorTop = (0, selection.Ny)(editorElement).top; if (vditor.options.height === "auto" && !vditor.element.classList.contains("vditor--fullscreen")) { window.scrollTo(window.scrollX, cursorTop + vditor.element.offsetTop + vditor.toolbar.element.offsetHeight - window.innerHeight / 2 + 10); } if (vditor.options.height !== "auto" || vditor.element.classList.contains("vditor--fullscreen")) { editorElement.scrollTop = cursorTop + editorElement.scrollTop - editorElement.clientHeight / 2 + 10; } }; var hotkeyEvent = function(vditor, editorElement) { editorElement.addEventListener("keydown", function(event) { if (!event.isComposing && vditor.options.keydown) { vditor.options.keydown(event); } if ((vditor.options.hint.extend.length > 1 || vditor.toolbar.elements.emoji) && vditor.hint.select(event, vditor)) { return; } if (vditor.options.comment.enable && vditor.currentMode === "wysiwyg" && (event.key === "Backspace" || matchHotKey("⌘X", event))) { vditor.wysiwyg.getComments(vditor); } if (vditor.currentMode === "sv") { if (processKeydown_processKeydown(vditor, event)) { return; } } else if (vditor.currentMode === "wysiwyg") { if (wysiwyg_processKeydown_processKeydown(vditor, event)) { return; } } else if (vditor.currentMode === "ir") { if (processKeydown(vditor, event)) { return; } } if (vditor.options.ctrlEnter && matchHotKey("⌘Enter", event)) { vditor.options.ctrlEnter(getMarkdown(vditor)); event.preventDefault(); return; } if (matchHotKey("⌘Z", event) && !vditor.toolbar.elements.undo) { vditor.undo.undo(vditor); event.preventDefault(); return; } if (matchHotKey("⌘Y", event) && !vditor.toolbar.elements.redo) { vditor.undo.redo(vditor); event.preventDefault(); return; } if (event.key === "Escape") { if (vditor.hint.element.style.display === "block") { vditor.hint.element.style.display = "none"; } else if (vditor.options.esc && !event.isComposing) { vditor.options.esc(getMarkdown(vditor)); } event.preventDefault(); return; } if ((0, compatibility.yl)(event) && event.altKey && !event.shiftKey && /^Digit[1-6]$/.test(event.code)) { if (vditor.currentMode === "wysiwyg") { var tagName = event.code.replace("Digit", "H"); if ((0, hasClosest.lG)(getSelection().getRangeAt(0).startContainer, tagName)) { removeHeading(vditor); } else { setHeading(vditor, tagName); } afterRenderEvent(vditor); } else if (vditor.currentMode === "sv") { processHeading(vditor, "#".repeat(parseInt(event.code.replace("Digit", ""), 10)) + " "); } else if (vditor.currentMode === "ir") { process_processHeading(vditor, "#".repeat(parseInt(event.code.replace("Digit", ""), 10)) + " "); } event.preventDefault(); return true; } if ((0, compatibility.yl)(event) && event.altKey && !event.shiftKey && /^Digit[7-9]$/.test(event.code)) { if (event.code === "Digit7") { setEditMode(vditor, "wysiwyg", event); } else if (event.code === "Digit8") { setEditMode(vditor, "ir", event); } else if (event.code === "Digit9") { setEditMode(vditor, "sv", event); } return true; } vditor.options.toolbar.find(function(menuItem) { if (!menuItem.hotkey || menuItem.toolbar) { if (menuItem.toolbar) { var sub = menuItem.toolbar.find(function(subMenuItem) { if (!subMenuItem.hotkey) { return false; } if (matchHotKey(subMenuItem.hotkey, event)) { vditor.toolbar.elements[subMenuItem.name].children[0].dispatchEvent(new CustomEvent((0, compatibility.Le)())); event.preventDefault(); return true; } }); return sub ? true : false; } return false; } if (matchHotKey(menuItem.hotkey, event)) { vditor.toolbar.elements[menuItem.name].children[0].dispatchEvent(new CustomEvent((0, compatibility.Le)())); event.preventDefault(); return true; } }); }); }; var selectEvent = function(vditor, editorElement) { editorElement.addEventListener("selectstart", function(event) { editorElement.onmouseup = function() { setTimeout(function() { var selectText = getSelectText(vditor[vditor.currentMode].element); if (selectText.trim()) { if (vditor.currentMode === "wysiwyg" && vditor.options.comment.enable) { if (!(0, hasClosest.a1)(event.target, "data-type", "footnotes-block") && !(0, hasClosest.a1)(event.target, "data-type", "link-ref-defs-block")) { vditor.wysiwyg.showComment(); } else { vditor.wysiwyg.hideComment(); } } if (vditor.options.select) { vditor.options.select(selectText); } } else { if (vditor.currentMode === "wysiwyg" && vditor.options.comment.enable) { vditor.wysiwyg.hideComment(); } if (typeof vditor.options.unSelect === "function") { vditor.options.unSelect(); } } }); }; }); }; ; var processPaste = function(vditor, text) { var range = (0, selection.zh)(vditor); range.extractContents(); range.insertNode(document.createTextNode(Lute.Caret)); range.insertNode(document.createTextNode(text)); var blockElement = (0, hasClosest.a1)(range.startContainer, "data-block", "0"); if (!blockElement) { blockElement = vditor.sv.element; } var spinHTML = vditor.lute.SpinVditorSVDOM(blockElement.textContent); spinHTML = "
    " + spinHTML.replace(/
    \n<\/span><\/span>
    \n<\/span><\/span>
    \n

    \n
    <') + "
    "; if (blockElement.isEqualNode(vditor.sv.element)) { blockElement.innerHTML = spinHTML; } else { blockElement.outerHTML = spinHTML; } combineFootnote(vditor.sv.element); (0, selection.ib)(vditor.sv.element, range); scrollCenter(vditor); }; var getSideByType = function(spanNode, type, isPrevious) { if (isPrevious === void 0) { isPrevious = true; } var sideElement = spanNode; if (sideElement.nodeType === 3) { sideElement = sideElement.parentElement; } while (sideElement) { if (sideElement.getAttribute("data-type") === type) { return sideElement; } if (isPrevious) { sideElement = sideElement.previousElementSibling; } else { sideElement = sideElement.nextElementSibling; } } return false; }; var processSpinVditorSVDOM = function(html, vditor) { log("SpinVditorSVDOM", html, "argument", vditor.options.debugger); var spinHTML = vditor.lute.SpinVditorSVDOM(html); html = "
    " + spinHTML.replace(/
    \n<\/span><\/span>
    \n<\/span><\/span>
    \n

    \n
    <') + "
    "; log("SpinVditorSVDOM", html, "result", vditor.options.debugger); return html; }; var processPreviousMarkers = function(spanElement) { var spanType = spanElement.getAttribute("data-type"); var previousElement = spanElement.previousElementSibling; var markerText = spanType && spanType !== "text" && spanType !== "table" && spanType !== "heading-marker" && spanType !== "newline" && spanType !== "yaml-front-matter-open-marker" && spanType !== "yaml-front-matter-close-marker" && spanType !== "code-block-info" && spanType !== "code-block-close-marker" && spanType !== "code-block-open-marker" ? spanElement.textContent : ""; var hasNL = false; if (spanType === "newline") { hasNL = true; } while (previousElement && !hasNL) { var previousType = previousElement.getAttribute("data-type"); if (previousType === "li-marker" || previousType === "blockquote-marker" || previousType === "task-marker" || previousType === "padding") { var previousText = previousElement.textContent; if (previousType === "li-marker" && (spanType === "code-block-open-marker" || spanType === "code-block-info")) { markerText = previousText.replace(/\S/g, " ") + markerText; } else if (spanType === "code-block-close-marker" && previousElement.nextElementSibling.isSameNode(spanElement)) { var openMarker = getSideByType(spanElement, "code-block-open-marker"); if (openMarker && openMarker.previousElementSibling) { previousElement = openMarker.previousElementSibling; markerText = previousText + markerText; } } else { markerText = previousText + markerText; } } else if (previousType === "newline") { hasNL = true; } previousElement = previousElement.previousElementSibling; } return markerText; }; var processAfterRender = function(vditor, options) { if (options === void 0) { options = { enableAddUndoStack: true, enableHint: false, enableInput: true }; } if (options.enableHint) { vditor.hint.render(vditor); } vditor.preview.render(vditor); var text = getMarkdown(vditor); if (typeof vditor.options.input === "function" && options.enableInput) { vditor.options.input(text); } if (vditor.options.counter.enable) { vditor.counter.render(vditor, text); } if (vditor.options.cache.enable && (0, compatibility.pK)()) { localStorage.setItem(vditor.options.cache.id, text); if (vditor.options.cache.after) { vditor.options.cache.after(text); } } if (vditor.devtools) { vditor.devtools.renderEchart(vditor); } clearTimeout(vditor.sv.processTimeoutId); vditor.sv.processTimeoutId = window.setTimeout(function() { if (options.enableAddUndoStack && !vditor.sv.composingLock) { vditor.undo.addToUndoStack(vditor); } }, vditor.options.undoDelay); }; var processHeading = function(vditor, value) { var range = (0, selection.zh)(vditor); var headingElement = (0, hasClosestByHeadings.S)(range.startContainer, "SPAN"); if (headingElement && headingElement.textContent.trim() !== "") { value = "\n" + value; } range.collapse(true); document.execCommand("insertHTML", false, value); }; var processToolbar = function(vditor, actionBtn, prefix, suffix) { var range = (0, selection.zh)(vditor); var commandName = actionBtn.getAttribute("data-type"); if (vditor.sv.element.childNodes.length === 0) { vditor.sv.element.innerHTML = '
    \n
    '; (0, selection.ib)(vditor.sv.element, range); } var blockElement = (0, hasClosest.F9)(range.startContainer); var spanElement = (0, hasClosestByHeadings.S)(range.startContainer, "SPAN"); if (!blockElement) { return; } if (commandName === "link") { var html = void 0; if (range.toString() === "") { html = "".concat(prefix).concat(Lute.Caret).concat(suffix); } else { html = "".concat(prefix).concat(range.toString()).concat(suffix.replace(")", Lute.Caret + ")")); } document.execCommand("insertHTML", false, html); return; } else if (commandName === "italic" || commandName === "bold" || commandName === "strike" || commandName === "inline-code" || commandName === "code" || commandName === "table" || commandName === "line") { var html = void 0; if (range.toString() === "") { html = "".concat(prefix).concat(Lute.Caret).concat(commandName === "code" ? "" : suffix); } else { html = "".concat(prefix).concat(range.toString()).concat(Lute.Caret).concat(commandName === "code" ? "" : suffix); } if (commandName === "table" || commandName === "code" && spanElement && spanElement.textContent !== "") { html = "\n\n" + html; } else if (commandName === "line") { html = "\n\n".concat(prefix, "\n").concat(Lute.Caret); } document.execCommand("insertHTML", false, html); return; } else if (commandName === "check" || commandName === "list" || commandName === "ordered-list" || commandName === "quote") { if (spanElement) { var marker = "* "; if (commandName === "check") { marker = "* [ ] "; } else if (commandName === "ordered-list") { marker = "1. "; } else if (commandName === "quote") { marker = "> "; } var newLine = getSideByType(spanElement, "newline"); if (newLine) { newLine.insertAdjacentText("afterend", marker); } else { blockElement.insertAdjacentText("afterbegin", marker); } inputEvent(vditor); return; } } (0, selection.ib)(vditor.sv.element, range); processAfterRender(vditor); }; ; var getElement = function(vditor) { switch (vditor.currentMode) { case "ir": return vditor.ir.element; case "wysiwyg": return vditor.wysiwyg.element; case "sv": return vditor.sv.element; } }; ; var setHeaders = function(vditor, xhr) { if (vditor.options.upload.setHeaders) { vditor.options.upload.headers = vditor.options.upload.setHeaders(); } if (vditor.options.upload.headers) { Object.keys(vditor.options.upload.headers).forEach(function(key) { xhr.setRequestHeader(key, vditor.options.upload.headers[key]); }); } }; ; var __awaiter = function(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function(resolve) { resolve(value); }); } return new (P || (P = Promise))(function(resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = function(thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function(v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var Upload = ( /** @class */ function() { function Upload2() { this.isUploading = false; this.element = document.createElement("div"); this.element.className = "vditor-upload"; } return Upload2; }() ); var validateFile = function(vditor, files) { vditor.tip.hide(); var uploadFileList = []; var errorTip = ""; var uploadingStr = ""; var lang = vditor.options.lang; var options = vditor.options; var _loop_1 = function(iMax2, i2) { var file = files[i2]; var validate = true; if (!file.name) { errorTip += "
  • ".concat(window.VditorI18n.nameEmpty, "
  • "); validate = false; } if (file.size > vditor.options.upload.max) { errorTip += "
  • ".concat(file.name, " ").concat(window.VditorI18n.over, " ").concat(vditor.options.upload.max / 1024 / 1024, "M
  • "); validate = false; } var lastIndex = file.name.lastIndexOf("."); var fileExt = file.name.substr(lastIndex); var filename = vditor.options.upload.filename(file.name.substr(0, lastIndex)) + fileExt; if (vditor.options.upload.accept) { var isAccept = vditor.options.upload.accept.split(",").some(function(item) { var type = item.trim(); if (type.indexOf(".") === 0) { if (fileExt.toLowerCase() === type.toLowerCase()) { return true; } } else { if (file.type.split("/")[0] === type.split("/")[0]) { return true; } } return false; }); if (!isAccept) { errorTip += "
  • ".concat(file.name, " ").concat(window.VditorI18n.fileTypeError, "
  • "); validate = false; } } if (validate) { uploadFileList.push(file); uploadingStr += "
  • ".concat(filename, " ").concat(window.VditorI18n.uploading, ' ').concat(window.VditorI18n.cancelUpload, "
  • "); } }; for (var iMax = files.length, i = 0; i < iMax; i++) { _loop_1(iMax, i); } vditor.tip.show("")); if (vditor.options.upload.cancel) { var vditorCancelUploadElement = vditor.tip.element.querySelector(".vditorCancelUpload"); if (vditorCancelUploadElement) { vditorCancelUploadElement.addEventListener("click", function() { vditor.options.upload.cancel(uploadFileList); vditor.tip.hide(); vditor.upload.isUploading = false; }); } } return uploadFileList; }; var genUploadedLabel = function(responseText, vditor) { var editorElement = getElement(vditor); editorElement.focus(); var response = JSON.parse(responseText); var errorTip = ""; if (response.code === 1) { errorTip = "".concat(response.msg); } if (response.data.errFiles && response.data.errFiles.length > 0) { errorTip = ""; } if (errorTip) { vditor.tip.show(errorTip); } else { vditor.tip.hide(); } var succFileText = ""; Object.keys(response.data.succMap).forEach(function(key) { var path = response.data.succMap[key]; var lastIndex = key.lastIndexOf("."); var type = key.substr(lastIndex); var filename = vditor.options.upload.filename(key.substr(0, lastIndex)) + type; type = type.toLowerCase(); if (type.indexOf(".wav") === 0 || type.indexOf(".mp3") === 0 || type.indexOf(".ogg") === 0) { if (vditor.currentMode === "wysiwyg") { succFileText += '
    <audio controls="controls" src="'.concat(path, '"></audio>
    \n'); } else if (vditor.currentMode === "ir") { succFileText += '\n'); } else { succFileText += "[".concat(filename, "](").concat(path, ")\n"); } } else if (type.indexOf(".apng") === 0 || type.indexOf(".bmp") === 0 || type.indexOf(".gif") === 0 || type.indexOf(".ico") === 0 || type.indexOf(".cur") === 0 || type.indexOf(".jpg") === 0 || type.indexOf(".jpeg") === 0 || type.indexOf(".jfif") === 0 || type.indexOf(".pjp") === 0 || type.indexOf(".pjpeg") === 0 || type.indexOf(".png") === 0 || type.indexOf(".svg") === 0 || type.indexOf(".webp") === 0) { if (vditor.currentMode === "wysiwyg") { succFileText += ''.concat(filename, '\n'); } else { succFileText += "![".concat(filename, "](").concat(path, ")\n"); } } else { if (vditor.currentMode === "wysiwyg") { succFileText += '').concat(filename, "\n"); } else { succFileText += "[".concat(filename, "](").concat(path, ")\n"); } } }); (0, selection.Hc)(vditor.upload.range); document.execCommand("insertHTML", false, succFileText); vditor.upload.range = getSelection().getRangeAt(0).cloneRange(); }; var uploadFiles = function(vditor, files, element) { return __awaiter(void 0, void 0, void 0, function() { var fileList, filesMax, i, fileItem, isValidate, isValidate, editorElement, validateResult, formData, extraData, _i, _a, key, i, iMax, xhr; return __generator(this, function(_b) { switch (_b.label) { case 0: fileList = []; filesMax = vditor.options.upload.multiple === true ? files.length : 1; for (i = 0; i < filesMax; i++) { fileItem = files[i]; if (fileItem instanceof DataTransferItem) { fileItem = fileItem.getAsFile(); } fileList.push(fileItem); } if (!vditor.options.upload.handler) return [3, 2]; return [4, vditor.options.upload.handler(fileList)]; case 1: isValidate = _b.sent(); if (element) { element.value = ""; } if (typeof isValidate === "string") { vditor.tip.show(isValidate); return [ 2 /*return*/ ]; } return [ 2 /*return*/ ]; case 2: if (!vditor.options.upload.url || !vditor.upload) { if (element) { element.value = ""; } vditor.tip.show("please config: options.upload.url"); return [ 2 /*return*/ ]; } if (!vditor.options.upload.file) return [3, 4]; return [4, vditor.options.upload.file(fileList)]; case 3: fileList = _b.sent(); _b.label = 4; case 4: if (vditor.options.upload.validate) { isValidate = vditor.options.upload.validate(fileList); if (typeof isValidate === "string") { vditor.tip.show(isValidate); return [ 2 /*return*/ ]; } } editorElement = getElement(vditor); vditor.upload.range = (0, selection.zh)(vditor); validateResult = validateFile(vditor, fileList); if (validateResult.length === 0) { if (element) { element.value = ""; } return [ 2 /*return*/ ]; } formData = new FormData(); extraData = vditor.options.upload.extraData; for (_i = 0, _a = Object.keys(extraData); _i < _a.length; _i++) { key = _a[_i]; formData.append(key, extraData[key]); } for (i = 0, iMax = validateResult.length; i < iMax; i++) { formData.append(vditor.options.upload.fieldName, validateResult[i]); } xhr = new XMLHttpRequest(); vditor.upload.xhr = xhr; xhr.open("POST", vditor.options.upload.url); if (vditor.options.upload.token) { xhr.setRequestHeader("X-Upload-Token", vditor.options.upload.token); } if (vditor.options.upload.withCredentials) { xhr.withCredentials = true; } setHeaders(vditor, xhr); vditor.upload.isUploading = true; editorElement.setAttribute("contenteditable", "false"); xhr.onreadystatechange = function() { if (xhr.readyState === XMLHttpRequest.DONE) { vditor.upload.isUploading = false; editorElement.setAttribute("contenteditable", "true"); if (xhr.status >= 200 && xhr.status < 300) { if (vditor.options.upload.success) { vditor.options.upload.success(editorElement, xhr.responseText); } else { var responseText = xhr.responseText; if (vditor.options.upload.format) { responseText = vditor.options.upload.format(files, xhr.responseText); } genUploadedLabel(responseText, vditor); } } else { if (vditor.options.upload.error) { vditor.options.upload.error(xhr.responseText); } else { vditor.tip.show(xhr.responseText); } } if (element) { element.value = ""; } vditor.upload.element.style.display = "none"; vditor.upload.xhr = void 0; } }; xhr.upload.onprogress = function(event) { if (!event.lengthComputable) { return; } var progress = event.loaded / event.total * 100; vditor.upload.element.style.display = "block"; var progressBar = vditor.upload.element; progressBar.style.width = progress + "%"; }; xhr.send(formData); return [ 2 /*return*/ ]; } }); }); }; ; var input_input = function(vditor, range, event) { var _a; var blockElement = (0, hasClosest.F9)(range.startContainer); if (!blockElement) { blockElement = vditor.wysiwyg.element; } if (event && event.inputType !== "formatItalic" && event.inputType !== "deleteByDrag" && event.inputType !== "insertFromDrop" && event.inputType !== "formatBold" && event.inputType !== "formatRemove" && event.inputType !== "formatStrikeThrough" && event.inputType !== "insertUnorderedList" && event.inputType !== "insertOrderedList" && event.inputType !== "formatOutdent" && event.inputType !== "formatIndent" && event.inputType !== "" || !event) { var previousAEmptyElement = previoueIsEmptyA(range.startContainer); if (previousAEmptyElement) { previousAEmptyElement.remove(); } vditor.wysiwyg.element.querySelectorAll("wbr").forEach(function(wbr) { wbr.remove(); }); range.insertNode(document.createElement("wbr")); blockElement.querySelectorAll("[style]").forEach(function(item) { item.removeAttribute("style"); }); blockElement.querySelectorAll(".vditor-comment").forEach(function(item) { if (item.textContent.trim() === "") { item.classList.remove("vditor-comment", "vditor-comment--focus"); item.removeAttribute("data-cmtids"); } }); (_a = blockElement.previousElementSibling) === null || _a === void 0 ? void 0 : _a.querySelectorAll(".vditor-comment").forEach(function(item) { if (item.textContent.trim() === "") { item.classList.remove("vditor-comment", "vditor-comment--focus"); item.removeAttribute("data-cmtids"); } }); var html_1 = ""; if (blockElement.getAttribute("data-type") === "link-ref-defs-block") { blockElement = vditor.wysiwyg.element; } var isWYSIWYGElement = blockElement.isEqualNode(vditor.wysiwyg.element); var footnoteElement = (0, hasClosest.a1)(blockElement, "data-type", "footnotes-block"); if (!isWYSIWYGElement) { var topListElement = (0, hasClosest.O9)(range.startContainer); if (topListElement && !footnoteElement) { var blockquoteElement = (0, hasClosestByHeadings.S)(range.startContainer, "BLOCKQUOTE"); if (blockquoteElement) { blockElement = (0, hasClosest.F9)(range.startContainer) || blockElement; } else { blockElement = topListElement; } } if (footnoteElement) { blockElement = footnoteElement; } html_1 = blockElement.outerHTML; if (blockElement.tagName === "UL" || blockElement.tagName === "OL") { var listPrevElement = blockElement.previousElementSibling; var listNextElement = blockElement.nextElementSibling; if (listPrevElement && (listPrevElement.tagName === "UL" || listPrevElement.tagName === "OL")) { html_1 = listPrevElement.outerHTML + html_1; listPrevElement.remove(); } if (listNextElement && (listNextElement.tagName === "UL" || listNextElement.tagName === "OL")) { html_1 = html_1 + listNextElement.outerHTML; listNextElement.remove(); } html_1 = html_1.replace("

    ", "

  • "); } if (!blockElement.innerText.startsWith("```")) { vditor.wysiwyg.element.querySelectorAll("[data-type='link-ref-defs-block']").forEach(function(item) { if (item && !blockElement.isEqualNode(item)) { html_1 += item.outerHTML; item.remove(); } }); vditor.wysiwyg.element.querySelectorAll("[data-type='footnotes-block']").forEach(function(item) { if (item && !blockElement.isEqualNode(item)) { html_1 += item.outerHTML; item.remove(); } }); } } else { html_1 = blockElement.innerHTML; } html_1 = html_1.replace(/<\/(strong|b)>/g, "").replace(/<\/(em|i)>/g, "").replace(/<\/(s|strike)>/g, ""); if (html_1 === '

    ```

    ' && vditor.hint.recentLanguage) { html_1 = '

    ```

    '.replace("```", "```" + vditor.hint.recentLanguage); } log("SpinVditorDOM", html_1, "argument", vditor.options.debugger); html_1 = vditor.lute.SpinVditorDOM(html_1); log("SpinVditorDOM", html_1, "result", vditor.options.debugger); if (isWYSIWYGElement) { blockElement.innerHTML = html_1; } else { blockElement.outerHTML = html_1; if (footnoteElement) { var footnoteItemElement = (0, hasClosest.E2)(vditor.wysiwyg.element.querySelector("wbr"), "LI"); if (footnoteItemElement) { var footnoteRefElement = vditor.wysiwyg.element.querySelector('sup[data-type="footnotes-ref"][data-footnotes-label="'.concat(footnoteItemElement.getAttribute("data-marker"), '"]')); if (footnoteRefElement) { footnoteRefElement.setAttribute("aria-label", footnoteItemElement.textContent.trim().substr(0, 24)); } } } } var firstLinkRefDefElement_1; var allLinkRefDefsElement = vditor.wysiwyg.element.querySelectorAll("[data-type='link-ref-defs-block']"); allLinkRefDefsElement.forEach(function(item, index) { if (index === 0) { firstLinkRefDefElement_1 = item; } else { firstLinkRefDefElement_1.insertAdjacentHTML("beforeend", item.innerHTML); item.remove(); } }); if (allLinkRefDefsElement.length > 0) { vditor.wysiwyg.element.insertAdjacentElement("beforeend", allLinkRefDefsElement[0]); } var firstFootnoteElement_1; var allFootnoteElement = vditor.wysiwyg.element.querySelectorAll("[data-type='footnotes-block']"); allFootnoteElement.forEach(function(item, index) { if (index === 0) { firstFootnoteElement_1 = item; } else { firstFootnoteElement_1.insertAdjacentHTML("beforeend", item.innerHTML); item.remove(); } }); if (allFootnoteElement.length > 0) { vditor.wysiwyg.element.insertAdjacentElement("beforeend", allFootnoteElement[0]); } (0, selection.ib)(vditor.wysiwyg.element, range); vditor.wysiwyg.element.querySelectorAll(".vditor-wysiwyg__preview[data-render='2']").forEach(function(item) { processCodeRender(item, vditor); }); if (event && (event.inputType === "deleteContentBackward" || event.inputType === "deleteContentForward") && vditor.options.comment.enable) { vditor.wysiwyg.triggerRemoveComment(vditor); vditor.options.comment.adjustTop(vditor.wysiwyg.getComments(vditor, true)); } } renderToc(vditor); afterRenderEvent(vditor, { enableAddUndoStack: true, enableHint: true, enableInput: true }); }; ; var __makeTemplateObject = function(cooked, raw) { if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } return cooked; }; var fixBrowserBehavior_awaiter = function(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function(resolve) { resolve(value); }); } return new (P || (P = Promise))(function(resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var fixBrowserBehavior_generator = function(thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function(v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var fixGSKeyBackspace = function(event, vditor, startContainer) { if (event.keyCode === 229 && event.code === "" && event.key === "Unidentified" && vditor.currentMode !== "sv") { var blockElement = (0, hasClosest.F9)(startContainer); if (blockElement && blockElement.textContent.trim() === "") { vditor[vditor.currentMode].composingLock = true; return false; } } return true; }; var fixCJKPosition = function(range, vditor, event) { if (event.key === "Enter" || event.key === "Tab" || event.key === "Backspace" || event.key.indexOf("Arrow") > -1 || (0, compatibility.yl)(event) || event.key === "Escape" || event.shiftKey || event.altKey) { return; } var pLiElement = (0, hasClosest.lG)(range.startContainer, "P") || (0, hasClosest.lG)(range.startContainer, "LI"); if (pLiElement && (0, selection.im)(pLiElement, vditor[vditor.currentMode].element, range).start === 0) { if (pLiElement.nodeValue) { pLiElement.nodeValue = pLiElement.nodeValue.replace(/\u2006/g, ""); } var zwspNode = document.createTextNode(constants.g.ZWSP); range.insertNode(zwspNode); range.setStartAfter(zwspNode); } }; var fixCursorDownInlineMath = function(range, key) { if (key === "ArrowDown" || key === "ArrowUp") { var inlineElement = (0, hasClosest.a1)(range.startContainer, "data-type", "math-inline") || (0, hasClosest.a1)(range.startContainer, "data-type", "html-entity") || (0, hasClosest.a1)(range.startContainer, "data-type", "html-inline"); if (inlineElement) { if (key === "ArrowDown") { range.setStartAfter(inlineElement.parentElement); } if (key === "ArrowUp") { range.setStartBefore(inlineElement.parentElement); } } } }; var insertEmptyBlock = function(vditor, position) { var range = (0, selection.zh)(vditor); var blockElement = (0, hasClosest.F9)(range.startContainer); if (blockElement) { blockElement.insertAdjacentHTML(position, '

    '.concat(constants.g.ZWSP, "\n

    ")); (0, selection.ib)(vditor[vditor.currentMode].element, range); highlightToolbar(vditor); execAfterRender(vditor); } }; var isFirstCell = function(cellElement) { var tableElement = (0, hasClosest.lG)(cellElement, "TABLE"); if (tableElement && tableElement.rows[0].cells[0].isSameNode(cellElement)) { return tableElement; } return false; }; var isLastCell = function(cellElement) { var tableElement = (0, hasClosest.lG)(cellElement, "TABLE"); if (tableElement && tableElement.lastElementChild.lastElementChild.lastElementChild.isSameNode(cellElement)) { return tableElement; } return false; }; var goPreviousCell = function(cellElement, range, isSelected) { if (isSelected === void 0) { isSelected = true; } var previousElement = cellElement.previousElementSibling; if (!previousElement) { if (cellElement.parentElement.previousElementSibling) { previousElement = cellElement.parentElement.previousElementSibling.lastElementChild; } else if (cellElement.parentElement.parentElement.tagName === "TBODY" && cellElement.parentElement.parentElement.previousElementSibling) { previousElement = cellElement.parentElement.parentElement.previousElementSibling.lastElementChild.lastElementChild; } else { previousElement = null; } } if (previousElement) { range.selectNodeContents(previousElement); if (!isSelected) { range.collapse(false); } (0, selection.Hc)(range); } return previousElement; }; var insertAfterBlock = function(vditor, event, range, element, blockElement) { var position = (0, selection.im)(element, vditor[vditor.currentMode].element, range); if (event.key === "ArrowDown" && element.textContent.trimRight().substr(position.start).indexOf("\n") === -1 || event.key === "ArrowRight" && position.start >= element.textContent.trimRight().length) { var nextElement = blockElement.nextElementSibling; if (!nextElement || nextElement && (nextElement.tagName === "TABLE" || nextElement.getAttribute("data-type"))) { blockElement.insertAdjacentHTML("afterend", '

    '.concat(constants.g.ZWSP, "

    ")); (0, selection.ib)(vditor[vditor.currentMode].element, range); } else { range.selectNodeContents(nextElement); range.collapse(true); (0, selection.Hc)(range); } event.preventDefault(); return true; } return false; }; var insertBeforeBlock = function(vditor, event, range, element, blockElement) { var position = (0, selection.im)(element, vditor[vditor.currentMode].element, range); if (event.key === "ArrowUp" && element.textContent.substr(0, position.start).indexOf("\n") === -1 || (event.key === "ArrowLeft" || event.key === "Backspace" && range.toString() === "") && position.start === 0) { var previousElement = blockElement.previousElementSibling; if (!previousElement || previousElement && (previousElement.tagName === "TABLE" || previousElement.getAttribute("data-type"))) { blockElement.insertAdjacentHTML("beforebegin", '

    '.concat(constants.g.ZWSP, "

    ")); (0, selection.ib)(vditor[vditor.currentMode].element, range); } else { range.selectNodeContents(previousElement); range.collapse(false); (0, selection.Hc)(range); } event.preventDefault(); return true; } return false; }; var listToggle = function(vditor, range, type, cancel) { if (cancel === void 0) { cancel = true; } var itemElement = (0, hasClosest.lG)(range.startContainer, "LI"); vditor[vditor.currentMode].element.querySelectorAll("wbr").forEach(function(wbr) { wbr.remove(); }); range.insertNode(document.createElement("wbr")); if (cancel && itemElement) { var pHTML = ""; for (var i = 0; i < itemElement.parentElement.childElementCount; i++) { var inputElement = itemElement.parentElement.children[i].querySelector("input"); if (inputElement) { inputElement.remove(); } pHTML += '

    '.concat(itemElement.parentElement.children[i].innerHTML.trimLeft(), "

    "); } itemElement.parentElement.insertAdjacentHTML("beforebegin", pHTML); itemElement.parentElement.remove(); } else { if (!itemElement) { var blockElement = (0, hasClosest.a1)(range.startContainer, "data-block", "0"); if (!blockElement) { vditor[vditor.currentMode].element.querySelector("wbr").remove(); blockElement = vditor[vditor.currentMode].element.querySelector("p"); blockElement.innerHTML = ""; } if (type === "check") { blockElement.insertAdjacentHTML("beforebegin", '
    • '.concat(blockElement.innerHTML, "
    ")); blockElement.remove(); } else if (type === "list") { blockElement.insertAdjacentHTML("beforebegin", '
    • '.concat(blockElement.innerHTML, "
    ")); blockElement.remove(); } else if (type === "ordered-list") { blockElement.insertAdjacentHTML("beforebegin", '
    1. '.concat(blockElement.innerHTML, "
    ")); blockElement.remove(); } } else { if (type === "check") { itemElement.parentElement.querySelectorAll("li").forEach(function(item) { item.insertAdjacentHTML("afterbegin", ''.concat(item.textContent.indexOf(" ") === 0 ? "" : " ")); item.classList.add("vditor-task"); }); } else { if (itemElement.querySelector("input")) { itemElement.parentElement.querySelectorAll("li").forEach(function(item) { item.querySelector("input").remove(); item.classList.remove("vditor-task"); }); } var element = void 0; if (type === "list") { element = document.createElement("ul"); element.setAttribute("data-marker", "*"); } else { element = document.createElement("ol"); element.setAttribute("data-marker", "1."); } element.setAttribute("data-block", "0"); element.setAttribute("data-tight", itemElement.parentElement.getAttribute("data-tight")); element.innerHTML = itemElement.parentElement.innerHTML; itemElement.parentElement.parentNode.replaceChild(element, itemElement.parentElement); } } } }; var listIndent = function(vditor, liElement, range) { var previousElement = liElement.previousElementSibling; if (liElement && previousElement) { var liElements_1 = [liElement]; Array.from(range.cloneContents().children).forEach(function(item, index) { if (item.nodeType !== 3 && liElement && item.textContent.trim() !== "" && liElement.getAttribute("data-node-id") === item.getAttribute("data-node-id")) { if (index !== 0) { liElements_1.push(liElement); } liElement = liElement.nextElementSibling; } }); vditor[vditor.currentMode].element.querySelectorAll("wbr").forEach(function(wbr) { wbr.remove(); }); range.insertNode(document.createElement("wbr")); var liParentElement = previousElement.parentElement; var liHTML_1 = ""; liElements_1.forEach(function(item) { var marker = item.getAttribute("data-marker"); if (marker.length !== 1) { marker = "1".concat(marker.slice(-1)); } liHTML_1 += '
  • ').concat(item.innerHTML, "
  • "); item.remove(); }); previousElement.insertAdjacentHTML("beforeend", "<".concat(liParentElement.tagName, ' data-block="0">').concat(liHTML_1, "")); if (vditor.currentMode === "wysiwyg") { liParentElement.outerHTML = vditor.lute.SpinVditorDOM(liParentElement.outerHTML); } else { liParentElement.outerHTML = vditor.lute.SpinVditorIRDOM(liParentElement.outerHTML); } (0, selection.ib)(vditor[vditor.currentMode].element, range); var tempTopListElement = (0, hasClosest.O9)(range.startContainer); if (tempTopListElement) { tempTopListElement.querySelectorAll(".vditor-".concat(vditor.currentMode, "__preview[data-render='2']")).forEach(function(item) { processCodeRender(item, vditor); if (vditor.currentMode === "wysiwyg") { item.previousElementSibling.setAttribute("style", "display:none"); } }); } execAfterRender(vditor); highlightToolbar(vditor); } else { vditor[vditor.currentMode].element.focus(); } }; var listOutdent = function(vditor, liElement, range, topListElement) { var liParentLiElement = (0, hasClosest.lG)(liElement.parentElement, "LI"); if (liParentLiElement) { vditor[vditor.currentMode].element.querySelectorAll("wbr").forEach(function(wbr) { wbr.remove(); }); range.insertNode(document.createElement("wbr")); var liParentElement = liElement.parentElement; var liParentAfterElement = liParentElement.cloneNode(); var liElements_2 = [liElement]; Array.from(range.cloneContents().children).forEach(function(item, index) { if (item.nodeType !== 3 && liElement && item.textContent.trim() !== "" && liElement.getAttribute("data-node-id") === item.getAttribute("data-node-id")) { if (index !== 0) { liElements_2.push(liElement); } liElement = liElement.nextElementSibling; } }); var isMatch_1 = false; var afterHTML_1 = ""; liParentElement.querySelectorAll("li").forEach(function(item) { if (isMatch_1) { afterHTML_1 += item.outerHTML; if (!item.nextElementSibling && !item.previousElementSibling) { item.parentElement.remove(); } else { item.remove(); } } if (item.isSameNode(liElements_2[liElements_2.length - 1])) { isMatch_1 = true; } }); liElements_2.reverse().forEach(function(item) { liParentLiElement.insertAdjacentElement("afterend", item); }); if (afterHTML_1) { liParentAfterElement.innerHTML = afterHTML_1; liElements_2[0].insertAdjacentElement("beforeend", liParentAfterElement); } if (vditor.currentMode === "wysiwyg") { topListElement.outerHTML = vditor.lute.SpinVditorDOM(topListElement.outerHTML); } else { topListElement.outerHTML = vditor.lute.SpinVditorIRDOM(topListElement.outerHTML); } (0, selection.ib)(vditor[vditor.currentMode].element, range); var tempTopListElement = (0, hasClosest.O9)(range.startContainer); if (tempTopListElement) { tempTopListElement.querySelectorAll(".vditor-".concat(vditor.currentMode, "__preview[data-render='2']")).forEach(function(item) { processCodeRender(item, vditor); if (vditor.currentMode === "wysiwyg") { item.previousElementSibling.setAttribute("style", "display:none"); } }); } execAfterRender(vditor); highlightToolbar(vditor); } else { vditor[vditor.currentMode].element.focus(); } }; var setTableAlign = function(tableElement, type) { var cell = getSelection().getRangeAt(0).startContainer.parentElement; var columnCnt = tableElement.rows[0].cells.length; var rowCnt = tableElement.rows.length; var currentColumn = 0; for (var i = 0; i < rowCnt; i++) { for (var j = 0; j < columnCnt; j++) { if (tableElement.rows[i].cells[j].isSameNode(cell)) { currentColumn = j; break; } } } for (var k = 0; k < rowCnt; k++) { tableElement.rows[k].cells[currentColumn].setAttribute("align", type); } }; var isHrMD = function(text) { var marker = text.trimRight().split("\n").pop(); if (marker === "") { return false; } if (marker.replace(/ |-/g, "") === "" || marker.replace(/ |_/g, "") === "" || marker.replace(/ |\*/g, "") === "") { if (marker.replace(/ /g, "").length > 2) { if (marker.indexOf("-") > -1 && marker.trimLeft().indexOf(" ") === -1 && text.trimRight().split("\n").length > 1) { return false; } if (marker.indexOf(" ") === 0 || marker.indexOf(" ") === 0) { return false; } return true; } return false; } return false; }; var isHeadingMD = function(text) { var textArray = text.trimRight().split("\n"); text = textArray.pop(); if (text.indexOf(" ") === 0 || text.indexOf(" ") === 0) { return false; } text = text.trimLeft(); if (text === "" || textArray.length === 0) { return false; } if (text.replace(/-/g, "") === "" || text.replace(/=/g, "") === "") { return true; } return false; }; var execAfterRender = function(vditor, options) { if (options === void 0) { options = { enableAddUndoStack: true, enableHint: false, enableInput: true }; } if (vditor.currentMode === "wysiwyg") { afterRenderEvent(vditor, options); } else if (vditor.currentMode === "ir") { process_processAfterRender(vditor, options); } else if (vditor.currentMode === "sv") { processAfterRender(vditor, options); } }; var fixList = function(range, vditor, pElement, event) { var _a; var startContainer = range.startContainer; var liElement = (0, hasClosest.lG)(startContainer, "LI"); if (liElement) { if (!(0, compatibility.yl)(event) && !event.altKey && event.key === "Enter" && // fix li 中有多个 P 时,在第一个 P 中换行会在下方生成新的 li (!event.shiftKey && pElement && liElement.contains(pElement) && pElement.nextElementSibling)) { if (liElement && !liElement.textContent.endsWith("\n")) { liElement.insertAdjacentText("beforeend", "\n"); } range.insertNode(document.createTextNode("\n\n")); range.collapse(false); execAfterRender(vditor); event.preventDefault(); return true; } if (!(0, compatibility.yl)(event) && !event.shiftKey && !event.altKey && event.key === "Backspace" && !liElement.previousElementSibling && range.toString() === "" && (0, selection.im)(liElement, vditor[vditor.currentMode].element, range).start === 0) { if (liElement.nextElementSibling) { liElement.parentElement.insertAdjacentHTML("beforebegin", '

    '.concat(liElement.innerHTML, "

    ")); liElement.remove(); } else { liElement.parentElement.outerHTML = '

    '.concat(liElement.innerHTML, "

    "); } (0, selection.ib)(vditor[vditor.currentMode].element, range); execAfterRender(vditor); event.preventDefault(); return true; } if (!(0, compatibility.yl)(event) && !event.shiftKey && !event.altKey && event.key === "Backspace" && liElement.textContent.trim().replace(constants.g.ZWSP, "") === "" && range.toString() === "" && ((_a = liElement.previousElementSibling) === null || _a === void 0 ? void 0 : _a.tagName) === "LI") { liElement.previousElementSibling.insertAdjacentText("beforeend", "\n\n"); range.selectNodeContents(liElement.previousElementSibling); range.collapse(false); liElement.remove(); (0, selection.ib)(vditor[vditor.currentMode].element, range); execAfterRender(vditor); event.preventDefault(); return true; } if (!(0, compatibility.yl)(event) && !event.altKey && event.key === "Tab") { var isFirst = false; if (range.startOffset === 0 && (startContainer.nodeType === 3 && !startContainer.previousSibling || startContainer.nodeType !== 3 && startContainer.nodeName === "LI")) { isFirst = true; } else if (liElement.classList.contains("vditor-task") && range.startOffset === 1 && startContainer.previousSibling.nodeType !== 3 && startContainer.previousSibling.tagName === "INPUT") { isFirst = true; } if (isFirst || range.toString() !== "") { if (event.shiftKey) { listOutdent(vditor, liElement, range, liElement.parentElement); } else { listIndent(vditor, liElement, range); } event.preventDefault(); return true; } } } return false; }; var fixTab = function(vditor, range, event) { if (vditor.options.tab && event.key === "Tab") { if (event.shiftKey) { } else { if (range.toString() === "") { range.insertNode(document.createTextNode(vditor.options.tab)); range.collapse(false); } else { range.extractContents(); range.insertNode(document.createTextNode(vditor.options.tab)); range.collapse(false); } } (0, selection.Hc)(range); execAfterRender(vditor); event.preventDefault(); return true; } }; var fixMarkdown = function(event, vditor, pElement, range) { if (!pElement) { return; } if (!(0, compatibility.yl)(event) && !event.altKey && event.key === "Enter") { var pText = String.raw(templateObject_1 || (templateObject_1 = __makeTemplateObject(["", ""], ["", ""])), pElement.textContent).replace(/\\\|/g, "").trim(); var pTextList = pText.split("|"); if (pText.startsWith("|") && pText.endsWith("|") && pTextList.length > 3) { var tableHeaderMD = pTextList.map(function() { return "---"; }).join("|"); tableHeaderMD = pElement.textContent + "\n" + tableHeaderMD.substring(3, tableHeaderMD.length - 3) + "\n|"; pElement.outerHTML = vditor.lute.SpinVditorDOM(tableHeaderMD); (0, selection.ib)(vditor[vditor.currentMode].element, range); execAfterRender(vditor); scrollCenter(vditor); event.preventDefault(); return true; } if (isHrMD(pElement.innerHTML) && pElement.previousElementSibling) { var pInnerHTML = ""; var innerHTMLList = pElement.innerHTML.trimRight().split("\n"); if (innerHTMLList.length > 1) { innerHTMLList.pop(); pInnerHTML = '

    '.concat(innerHTMLList.join("\n"), "

    "); } pElement.insertAdjacentHTML("afterend", "".concat(pInnerHTML, '

    \n

    ')); pElement.remove(); (0, selection.ib)(vditor[vditor.currentMode].element, range); execAfterRender(vditor); scrollCenter(vditor); event.preventDefault(); return true; } if (isHeadingMD(pElement.innerHTML)) { if (vditor.currentMode === "wysiwyg") { pElement.outerHTML = vditor.lute.SpinVditorDOM(pElement.innerHTML + '

    \n

    '); } else { pElement.outerHTML = vditor.lute.SpinVditorIRDOM(pElement.innerHTML + '

    \n

    '); } (0, selection.ib)(vditor[vditor.currentMode].element, range); execAfterRender(vditor); scrollCenter(vditor); event.preventDefault(); return true; } } if (range.collapsed && pElement.previousElementSibling && event.key === "Backspace" && !(0, compatibility.yl)(event) && !event.altKey && !event.shiftKey && pElement.textContent.trimRight().split("\n").length > 1 && (0, selection.im)(pElement, vditor[vditor.currentMode].element, range).start === 0) { var lastElement = (0, hasClosest.DX)(pElement.previousElementSibling); if (!lastElement.textContent.endsWith("\n")) { lastElement.textContent = lastElement.textContent + "\n"; } lastElement.parentElement.insertAdjacentHTML("beforeend", "".concat(pElement.innerHTML)); pElement.remove(); (0, selection.ib)(vditor[vditor.currentMode].element, range); return false; } return false; }; var insertRow = function(vditor, range, cellElement) { var rowHTML = ""; for (var m = 0; m < cellElement.parentElement.childElementCount; m++) { rowHTML += ' '); } if (cellElement.tagName === "TH") { cellElement.parentElement.parentElement.insertAdjacentHTML("afterend", "".concat(rowHTML, "")); } else { cellElement.parentElement.insertAdjacentHTML("afterend", "".concat(rowHTML, "")); } execAfterRender(vditor); }; var insertRowAbove = function(vditor, range, cellElement) { var rowHTML = ""; for (var m = 0; m < cellElement.parentElement.childElementCount; m++) { if (cellElement.tagName === "TH") { rowHTML += ' '); } else { rowHTML += ' '); } } if (cellElement.tagName === "TH") { cellElement.parentElement.parentElement.insertAdjacentHTML("beforebegin", "".concat(rowHTML, "")); range.insertNode(document.createElement("wbr")); var theadHTML = cellElement.parentElement.innerHTML.replace(//g, "").replace(/<\/th>/g, ""); cellElement.parentElement.parentElement.nextElementSibling.insertAdjacentHTML("afterbegin", theadHTML); cellElement.parentElement.parentElement.remove(); (0, selection.ib)(vditor.ir.element, range); } else { cellElement.parentElement.insertAdjacentHTML("beforebegin", "".concat(rowHTML, "")); } execAfterRender(vditor); }; var insertColumn = function(vditor, tableElement, cellElement, type) { if (type === void 0) { type = "afterend"; } var index = 0; var previousElement = cellElement.previousElementSibling; while (previousElement) { index++; previousElement = previousElement.previousElementSibling; } for (var i = 0; i < tableElement.rows.length; i++) { if (i === 0) { tableElement.rows[i].cells[index].insertAdjacentHTML(type, " "); } else { tableElement.rows[i].cells[index].insertAdjacentHTML(type, " "); } } execAfterRender(vditor); }; var deleteRow = function(vditor, range, cellElement) { if (cellElement.tagName === "TD") { var tbodyElement = cellElement.parentElement.parentElement; if (cellElement.parentElement.previousElementSibling) { range.selectNodeContents(cellElement.parentElement.previousElementSibling.lastElementChild); } else { range.selectNodeContents(tbodyElement.previousElementSibling.lastElementChild.lastElementChild); } if (tbodyElement.childElementCount === 1) { tbodyElement.remove(); } else { cellElement.parentElement.remove(); } range.collapse(false); (0, selection.Hc)(range); execAfterRender(vditor); } }; var deleteColumn = function(vditor, range, tableElement, cellElement) { var index = 0; var previousElement = cellElement.previousElementSibling; while (previousElement) { index++; previousElement = previousElement.previousElementSibling; } if (cellElement.previousElementSibling || cellElement.nextElementSibling) { range.selectNodeContents(cellElement.previousElementSibling || cellElement.nextElementSibling); range.collapse(true); } for (var i = 0; i < tableElement.rows.length; i++) { var cells = tableElement.rows[i].cells; if (cells.length === 1) { tableElement.remove(); highlightToolbar(vditor); break; } cells[index].remove(); } (0, selection.Hc)(range); execAfterRender(vditor); }; var fixTable = function(vditor, event, range) { var startContainer = range.startContainer; var cellElement = (0, hasClosest.lG)(startContainer, "TD") || (0, hasClosest.lG)(startContainer, "TH"); if (cellElement) { if (!(0, compatibility.yl)(event) && !event.altKey && event.key === "Enter") { if (!cellElement.lastElementChild || cellElement.lastElementChild && (!cellElement.lastElementChild.isSameNode(cellElement.lastChild) || cellElement.lastElementChild.tagName !== "BR")) { cellElement.insertAdjacentHTML("beforeend", "
    "); } var brElement = document.createElement("br"); range.insertNode(brElement); range.setStartAfter(brElement); execAfterRender(vditor); scrollCenter(vditor); event.preventDefault(); return true; } if (event.key === "Tab") { if (event.shiftKey) { goPreviousCell(cellElement, range); event.preventDefault(); return true; } var nextElement = cellElement.nextElementSibling; if (!nextElement) { if (cellElement.parentElement.nextElementSibling) { nextElement = cellElement.parentElement.nextElementSibling.firstElementChild; } else if (cellElement.parentElement.parentElement.tagName === "THEAD" && cellElement.parentElement.parentElement.nextElementSibling) { nextElement = cellElement.parentElement.parentElement.nextElementSibling.firstElementChild.firstElementChild; } else { nextElement = null; } } if (nextElement) { range.selectNodeContents(nextElement); (0, selection.Hc)(range); } event.preventDefault(); return true; } var tableElement = cellElement.parentElement.parentElement.parentElement; if (event.key === "ArrowUp") { event.preventDefault(); if (cellElement.tagName === "TH") { if (tableElement.previousElementSibling) { range.selectNodeContents(tableElement.previousElementSibling); range.collapse(false); (0, selection.Hc)(range); } else { insertEmptyBlock(vditor, "beforebegin"); } return true; } var m = 0; var trElement = cellElement.parentElement; for (; m < trElement.cells.length; m++) { if (trElement.cells[m].isSameNode(cellElement)) { break; } } var previousElement = trElement.previousElementSibling; if (!previousElement) { previousElement = trElement.parentElement.previousElementSibling.firstChild; } range.selectNodeContents(previousElement.cells[m]); range.collapse(false); (0, selection.Hc)(range); return true; } if (event.key === "ArrowDown") { event.preventDefault(); var trElement = cellElement.parentElement; if (!trElement.nextElementSibling && cellElement.tagName === "TD") { if (tableElement.nextElementSibling) { range.selectNodeContents(tableElement.nextElementSibling); range.collapse(true); (0, selection.Hc)(range); } else { insertEmptyBlock(vditor, "afterend"); } return true; } var m = 0; for (; m < trElement.cells.length; m++) { if (trElement.cells[m].isSameNode(cellElement)) { break; } } var nextElement = trElement.nextElementSibling; if (!nextElement) { nextElement = trElement.parentElement.nextElementSibling.firstChild; } range.selectNodeContents(nextElement.cells[m]); range.collapse(true); (0, selection.Hc)(range); return true; } if (vditor.currentMode === "wysiwyg" && !(0, compatibility.yl)(event) && event.key === "Enter" && !event.shiftKey && event.altKey) { var inputElement = vditor.wysiwyg.popover.querySelector(".vditor-input"); inputElement.focus(); inputElement.select(); event.preventDefault(); return true; } if (!(0, compatibility.yl)(event) && !event.shiftKey && !event.altKey && event.key === "Backspace" && range.startOffset === 0 && range.toString() === "") { var previousCellElement = goPreviousCell(cellElement, range, false); if (!previousCellElement && tableElement) { if (tableElement.textContent.trim() === "") { tableElement.outerHTML = '

    \n

    '; (0, selection.ib)(vditor[vditor.currentMode].element, range); } else { range.setStartBefore(tableElement); range.collapse(true); } execAfterRender(vditor); } event.preventDefault(); return true; } if (matchHotKey("⇧⌘F", event)) { insertRowAbove(vditor, range, cellElement); event.preventDefault(); return true; } if (matchHotKey("⌘=", event)) { insertRow(vditor, range, cellElement); event.preventDefault(); return true; } if (matchHotKey("⇧⌘G", event)) { insertColumn(vditor, tableElement, cellElement, "beforebegin"); event.preventDefault(); return true; } if (matchHotKey("⇧⌘=", event)) { insertColumn(vditor, tableElement, cellElement); event.preventDefault(); return true; } if (matchHotKey("⌘-", event)) { deleteRow(vditor, range, cellElement); event.preventDefault(); return true; } if (matchHotKey("⇧⌘-", event)) { deleteColumn(vditor, range, tableElement, cellElement); event.preventDefault(); return true; } if (matchHotKey("⇧⌘L", event)) { if (vditor.currentMode === "ir") { setTableAlign(tableElement, "left"); execAfterRender(vditor); event.preventDefault(); return true; } else { var itemElement = vditor.wysiwyg.popover.querySelector('[data-type="left"]'); if (itemElement) { itemElement.click(); event.preventDefault(); return true; } } } if (matchHotKey("⇧⌘C", event)) { if (vditor.currentMode === "ir") { setTableAlign(tableElement, "center"); execAfterRender(vditor); event.preventDefault(); return true; } else { var itemElement = vditor.wysiwyg.popover.querySelector('[data-type="center"]'); if (itemElement) { itemElement.click(); event.preventDefault(); return true; } } } if (matchHotKey("⇧⌘R", event)) { if (vditor.currentMode === "ir") { setTableAlign(tableElement, "right"); execAfterRender(vditor); event.preventDefault(); return true; } else { var itemElement = vditor.wysiwyg.popover.querySelector('[data-type="right"]'); if (itemElement) { itemElement.click(); event.preventDefault(); return true; } } } } return false; }; var fixCodeBlock = function(vditor, event, codeRenderElement, range) { if (codeRenderElement.tagName === "PRE" && matchHotKey("⌘A", event)) { range.selectNodeContents(codeRenderElement.firstElementChild); event.preventDefault(); return true; } if (vditor.options.tab && event.key === "Tab" && !event.shiftKey && range.toString() === "") { range.insertNode(document.createTextNode(vditor.options.tab)); range.collapse(false); execAfterRender(vditor); event.preventDefault(); return true; } if (event.key === "Backspace" && !(0, compatibility.yl)(event) && !event.shiftKey && !event.altKey) { var codePosition = (0, selection.im)(codeRenderElement, vditor[vditor.currentMode].element, range); if ((codePosition.start === 0 || codePosition.start === 1 && codeRenderElement.innerText === "\n") && range.toString() === "") { codeRenderElement.parentElement.outerHTML = '

    '.concat(codeRenderElement.firstElementChild.innerHTML, "

    "); (0, selection.ib)(vditor[vditor.currentMode].element, range); execAfterRender(vditor); event.preventDefault(); return true; } } if (!(0, compatibility.yl)(event) && !event.altKey && event.key === "Enter") { if (!codeRenderElement.firstElementChild.textContent.endsWith("\n")) { codeRenderElement.firstElementChild.insertAdjacentText("beforeend", "\n"); } range.extractContents(); range.insertNode(document.createTextNode("\n")); range.collapse(false); (0, selection.Hc)(range); if (!(0, compatibility.vU)()) { if (vditor.currentMode === "wysiwyg") { input_input(vditor, range); } else { input(vditor, range); } } scrollCenter(vditor); event.preventDefault(); return true; } return false; }; var fixBlockquote = function(vditor, range, event, pElement) { var startContainer = range.startContainer; var blockquoteElement = (0, hasClosest.lG)(startContainer, "BLOCKQUOTE"); if (blockquoteElement && range.toString() === "") { if (event.key === "Backspace" && !(0, compatibility.yl)(event) && !event.shiftKey && !event.altKey && (0, selection.im)(blockquoteElement, vditor[vditor.currentMode].element, range).start === 0) { range.insertNode(document.createElement("wbr")); blockquoteElement.outerHTML = blockquoteElement.innerHTML; (0, selection.ib)(vditor[vditor.currentMode].element, range); execAfterRender(vditor); event.preventDefault(); return true; } if (pElement && event.key === "Enter" && !(0, compatibility.yl)(event) && !event.shiftKey && !event.altKey && pElement.parentElement.tagName === "BLOCKQUOTE") { var isEmpty = false; if (pElement.innerHTML.replace(constants.g.ZWSP, "") === "\n" || pElement.innerHTML.replace(constants.g.ZWSP, "") === "") { isEmpty = true; pElement.remove(); } else if (pElement.innerHTML.endsWith("\n\n") && (0, selection.im)(pElement, vditor[vditor.currentMode].element, range).start === pElement.textContent.length - 1) { pElement.innerHTML = pElement.innerHTML.substr(0, pElement.innerHTML.length - 2); isEmpty = true; } if (isEmpty) { blockquoteElement.insertAdjacentHTML("afterend", '

    '.concat(constants.g.ZWSP, "\n

    ")); (0, selection.ib)(vditor[vditor.currentMode].element, range); execAfterRender(vditor); event.preventDefault(); return true; } } var blockElement = (0, hasClosest.F9)(startContainer); if (vditor.currentMode === "wysiwyg" && blockElement && matchHotKey("⇧⌘;", event)) { range.insertNode(document.createElement("wbr")); blockElement.outerHTML = '
    '.concat(blockElement.outerHTML, "
    "); (0, selection.ib)(vditor.wysiwyg.element, range); afterRenderEvent(vditor); event.preventDefault(); return true; } if (insertAfterBlock(vditor, event, range, blockquoteElement, blockquoteElement)) { return true; } if (insertBeforeBlock(vditor, event, range, blockquoteElement, blockquoteElement)) { return true; } } return false; }; var fixTask = function(vditor, range, event) { var startContainer = range.startContainer; var taskItemElement = (0, hasClosest.lG)(startContainer, "LI"); if (taskItemElement && taskItemElement.classList.contains("vditor-task")) { if (matchHotKey("⇧⌘J", event)) { var inputElement = taskItemElement.firstElementChild; if (inputElement.checked) { inputElement.removeAttribute("checked"); } else { inputElement.setAttribute("checked", "checked"); } execAfterRender(vditor); event.preventDefault(); return true; } if (event.key === "Backspace" && !(0, compatibility.yl)(event) && !event.shiftKey && !event.altKey && range.toString() === "" && range.startOffset === 1 && (startContainer.nodeType === 3 && startContainer.previousSibling && startContainer.previousSibling.tagName === "INPUT" || startContainer.nodeType !== 3)) { var previousElement = taskItemElement.previousElementSibling; taskItemElement.querySelector("input").remove(); if (previousElement) { var lastNode = (0, hasClosest.DX)(previousElement); lastNode.parentElement.insertAdjacentHTML("beforeend", "" + taskItemElement.innerHTML.trim()); taskItemElement.remove(); } else { taskItemElement.parentElement.insertAdjacentHTML("beforebegin", '

    '.concat(taskItemElement.innerHTML.trim() || "\n", "

    ")); if (taskItemElement.nextElementSibling) { taskItemElement.remove(); } else { taskItemElement.parentElement.remove(); } } (0, selection.ib)(vditor[vditor.currentMode].element, range); execAfterRender(vditor); event.preventDefault(); return true; } if (event.key === "Enter" && !(0, compatibility.yl)(event) && !event.shiftKey && !event.altKey) { if (taskItemElement.textContent.trim() === "") { if ((0, hasClosest.fb)(taskItemElement.parentElement, "vditor-task")) { var topListElement = (0, hasClosest.O9)(startContainer); if (topListElement) { listOutdent(vditor, taskItemElement, range, topListElement); } } else { if (taskItemElement.nextElementSibling) { var afterHTML_2 = ""; var beforeHTML_1 = ""; var isAfter_1 = false; Array.from(taskItemElement.parentElement.children).forEach(function(taskItem) { if (taskItemElement.isSameNode(taskItem)) { isAfter_1 = true; } else { if (isAfter_1) { afterHTML_2 += taskItem.outerHTML; } else { beforeHTML_1 += taskItem.outerHTML; } } }); var parentTagName = taskItemElement.parentElement.tagName; var dataMarker = taskItemElement.parentElement.tagName === "OL" ? "" : ' data-marker="'.concat(taskItemElement.parentElement.getAttribute("data-marker"), '"'); var startAttribute = ""; if (beforeHTML_1) { startAttribute = taskItemElement.parentElement.tagName === "UL" ? "" : ' start="1"'; beforeHTML_1 = "<".concat(parentTagName, ' data-tight="true"').concat(dataMarker, ' data-block="0">').concat(beforeHTML_1, ""); } taskItemElement.parentElement.outerHTML = "".concat(beforeHTML_1, '

    \n

    <').concat(parentTagName, '\n data-tight="true"').concat(dataMarker, ' data-block="0"').concat(startAttribute, ">").concat(afterHTML_2, ""); } else { taskItemElement.parentElement.insertAdjacentHTML("afterend", '

    \n

    '); if (taskItemElement.parentElement.querySelectorAll("li").length === 1) { taskItemElement.parentElement.remove(); } else { taskItemElement.remove(); } } } } else if (startContainer.nodeType !== 3 && range.startOffset === 0 && startContainer.firstChild.tagName === "INPUT") { range.setStart(startContainer.childNodes[1], 1); } else { range.setEndAfter(taskItemElement.lastChild); taskItemElement.insertAdjacentHTML("afterend", '
  • ')); document.querySelector("wbr").after(range.extractContents()); } (0, selection.ib)(vditor[vditor.currentMode].element, range); execAfterRender(vditor); scrollCenter(vditor); event.preventDefault(); return true; } } return false; }; var fixDelete = function(vditor, range, event, pElement) { if (range.startContainer.nodeType !== 3) { var rangeElement = range.startContainer.children[range.startOffset]; if (rangeElement && rangeElement.tagName === "HR") { range.selectNodeContents(rangeElement.previousElementSibling); range.collapse(false); event.preventDefault(); return true; } } if (pElement) { var previousElement = pElement.previousElementSibling; if (previousElement && (0, selection.im)(pElement, vditor[vditor.currentMode].element, range).start === 0 && ((0, compatibility.vU)() && previousElement.tagName === "HR" || previousElement.tagName === "TABLE")) { if (previousElement.tagName === "TABLE") { var lastCellElement = previousElement.lastElementChild.lastElementChild.lastElementChild; lastCellElement.innerHTML = lastCellElement.innerHTML.trimLeft() + "" + pElement.textContent.trim(); pElement.remove(); } else { previousElement.remove(); } (0, selection.ib)(vditor[vditor.currentMode].element, range); execAfterRender(vditor); event.preventDefault(); return true; } } return false; }; var fixHR = function(range) { if ((0, compatibility.vU)() && range.startContainer.nodeType !== 3 && range.startContainer.tagName === "HR") { range.setStartBefore(range.startContainer); } }; var fixFirefoxArrowUpTable = function(event, blockElement, range) { var _a, _b; if (!(0, compatibility.vU)()) { return false; } if (event.key === "ArrowUp" && blockElement && ((_a = blockElement.previousElementSibling) === null || _a === void 0 ? void 0 : _a.tagName) === "TABLE") { var tableElement = blockElement.previousElementSibling; range.selectNodeContents(tableElement.rows[tableElement.rows.length - 1].lastElementChild); range.collapse(false); event.preventDefault(); return true; } if (event.key === "ArrowDown" && blockElement && ((_b = blockElement.nextElementSibling) === null || _b === void 0 ? void 0 : _b.tagName) === "TABLE") { range.selectNodeContents(blockElement.nextElementSibling.rows[0].cells[0]); range.collapse(true); event.preventDefault(); return true; } return false; }; var paste = function(vditor, event, callback) { return fixBrowserBehavior_awaiter(void 0, void 0, void 0, function() { var textHTML, textPlain, files, renderers, renderLinkDest, doc, height, code, codeElement, position, tempElement, fileReader_1, file_1, range, blockElement, range; var _a; return fixBrowserBehavior_generator(this, function(_b) { switch (_b.label) { case 0: if (vditor[vditor.currentMode].element.getAttribute("contenteditable") !== "true") { return [ 2 /*return*/ ]; } event.stopPropagation(); event.preventDefault(); if ("clipboardData" in event) { textHTML = event.clipboardData.getData("text/html"); textPlain = event.clipboardData.getData("text/plain"); files = event.clipboardData.files; } else { textHTML = event.dataTransfer.getData("text/html"); textPlain = event.dataTransfer.getData("text/plain"); if (event.dataTransfer.types.includes("Files")) { files = event.dataTransfer.items; } } renderers = {}; renderLinkDest = function(node, entering) { if (!entering) { return ["", Lute.WalkContinue]; } if (vditor.options.upload.renderLinkDest) { return vditor.options.upload.renderLinkDest(vditor, node, entering); } var src2 = node.TokensStr(); if (node.__internal_object__.Parent.Type === 34 && src2 && src2.indexOf("file://") === -1 && vditor.options.upload.linkToImgUrl) { var xhr_1 = new XMLHttpRequest(); xhr_1.open("POST", vditor.options.upload.linkToImgUrl); if (vditor.options.upload.token) { xhr_1.setRequestHeader("X-Upload-Token", vditor.options.upload.token); } if (vditor.options.upload.withCredentials) { xhr_1.withCredentials = true; } setHeaders(vditor, xhr_1); xhr_1.setRequestHeader("Content-Type", "application/json; charset=utf-8"); xhr_1.onreadystatechange = function() { if (xhr_1.readyState === XMLHttpRequest.DONE) { if (xhr_1.status === 200) { var responseText = xhr_1.responseText; if (vditor.options.upload.linkToImgFormat) { responseText = vditor.options.upload.linkToImgFormat(xhr_1.responseText); } var responseJSON_1 = JSON.parse(responseText); if (responseJSON_1.code !== 0) { vditor.tip.show(responseJSON_1.msg); return; } var original_1 = responseJSON_1.data.originalURL; if (vditor.currentMode === "sv") { vditor.sv.element.querySelectorAll(".vditor-sv__marker--link").forEach(function(item) { if (item.textContent === original_1) { item.textContent = responseJSON_1.data.url; } }); } else { var imgElement = vditor[vditor.currentMode].element.querySelector('img[src="'.concat(original_1, '"]')); imgElement.src = responseJSON_1.data.url; if (vditor.currentMode === "ir") { imgElement.previousElementSibling.previousElementSibling.innerHTML = responseJSON_1.data.url; } } execAfterRender(vditor); } else { vditor.tip.show(xhr_1.responseText); } if (vditor.options.upload.linkToImgCallback) { vditor.options.upload.linkToImgCallback(xhr_1.responseText); } } }; xhr_1.send(JSON.stringify({ url: src2 })); } if (vditor.currentMode === "ir") { return [''.concat(Lute.EscapeHTMLStr(src2), ""), Lute.WalkContinue]; } else if (vditor.currentMode === "wysiwyg") { return ["", Lute.WalkContinue]; } else { return [''.concat(Lute.EscapeHTMLStr(src2), ""), Lute.WalkContinue]; } }; if (textHTML.replace(/&/g, "&").replace(/<(|\/)(html|body|meta)[^>]*?>/ig, "").trim() === '').concat(textPlain, "") || textHTML.replace(/&/g, "&").replace(/<(|\/)(html|body|meta)[^>]*?>/ig, "").trim() === '').concat(textPlain, "")) { textHTML = ""; } doc = new DOMParser().parseFromString(textHTML, "text/html"); if (doc.body) { textHTML = doc.body.innerHTML; } textHTML = Lute.Sanitize(textHTML); vditor.wysiwyg.getComments(vditor); height = vditor[vditor.currentMode].element.scrollHeight; code = processPasteCode(textHTML, textPlain, vditor.currentMode); codeElement = vditor.currentMode === "sv" ? (0, hasClosest.a1)(event.target, "data-type", "code-block") : (0, hasClosest.lG)(event.target, "CODE"); if (!codeElement) return [3, 1]; if (vditor.currentMode === "sv") { document.execCommand("insertHTML", false, textPlain.replace(/&/g, "&").replace(/ 0)) return [3, 9]; if (!(vditor.options.upload.url || vditor.options.upload.handler)) return [3, 7]; return [4, uploadFiles(vditor, files)]; case 6: _b.sent(); return [3, 8]; case 7: fileReader_1 = new FileReader(); if ("clipboardData" in event) { files = event.clipboardData.files; file_1 = files[0]; } else if (event.dataTransfer.types.includes("Files")) { files = event.dataTransfer.items; file_1 = files[0].getAsFile(); } if (file_1 && file_1.type.startsWith("image")) { fileReader_1.readAsDataURL(file_1); fileReader_1.onload = function() { var imgHTML = ""; if (vditor.currentMode === "wysiwyg") { imgHTML += ''.concat(file_1.name, '\n'); } else { imgHTML += "![".concat(file_1.name, "](").concat(fileReader_1.result.toString(), ")\n"); } document.execCommand("insertHTML", false, imgHTML); }; } _b.label = 8; case 8: return [3, 10]; case 9: if (textPlain.trim() !== "" && files.length === 0) { range = (0, selection.zh)(vditor); if (range.toString() !== "" && vditor.lute.IsValidLinkDest(textPlain)) { textPlain = "[".concat(range.toString(), "](").concat(textPlain, ")"); } if (vditor.currentMode === "ir") { renderers.Md2VditorIRDOM = { renderLinkDest }; vditor.lute.SetJSRenderers({ renderers }); (0, selection.oC)(Lute.Sanitize(vditor.lute.Md2VditorIRDOM(textPlain)), vditor); } else if (vditor.currentMode === "wysiwyg") { renderers.Md2VditorDOM = { renderLinkDest }; vditor.lute.SetJSRenderers({ renderers }); (0, selection.oC)(Lute.Sanitize(vditor.lute.Md2VditorDOM(textPlain)), vditor); } else { renderers.Md2VditorSVDOM = { renderLinkDest }; vditor.lute.SetJSRenderers({ renderers }); processPaste(vditor, textPlain); } vditor.outline.render(vditor); } _b.label = 10; case 10: if (vditor.currentMode !== "sv") { blockElement = (0, hasClosest.F9)((0, selection.zh)(vditor).startContainer); if (blockElement) { range = (0, selection.zh)(vditor); vditor[vditor.currentMode].element.querySelectorAll("wbr").forEach(function(wbr) { wbr.remove(); }); range.insertNode(document.createElement("wbr")); if (vditor.currentMode === "wysiwyg") { blockElement.outerHTML = vditor.lute.SpinVditorDOM(blockElement.outerHTML); } else { blockElement.outerHTML = vditor.lute.SpinVditorIRDOM(blockElement.outerHTML); } (0, selection.ib)(vditor[vditor.currentMode].element, range); } vditor[vditor.currentMode].element.querySelectorAll(".vditor-".concat(vditor.currentMode, "__preview[data-render='2']")).forEach(function(item) { processCodeRender(item, vditor); }); } vditor.wysiwyg.triggerRemoveComment(vditor); execAfterRender(vditor); if (vditor[vditor.currentMode].element.scrollHeight - height > Math.min(vditor[vditor.currentMode].element.clientHeight, window.innerHeight) / 2) { scrollCenter(vditor); } return [ 2 /*return*/ ]; } }); }); }; var processVMLImage = function(vditor, root, rtfData) { return fixBrowserBehavior_awaiter(void 0, void 0, void 0, function() { var regexPictureHeader, regexPicture, regImages, images, _i, regImages_1, image, imageType, shapes, i, img, newSrc, imgs, i, src2, _a; return fixBrowserBehavior_generator(this, function(_b) { switch (_b.label) { case 0: if (!rtfData) { return [ 2 /*return*/ ]; } regexPictureHeader = /{\\pict[\s\S]+?\\bliptag-?\d+(\\blipupi-?\d+)?({\\\*\\blipuid\s?[\da-fA-F]+)?[\s}]*?/; regexPicture = new RegExp("(?:(" + regexPictureHeader.source + "))([\\da-fA-F\\s]+)\\}", "g"); regImages = rtfData.match(regexPicture); images = []; if (regImages) { for (_i = 0, regImages_1 = regImages; _i < regImages_1.length; _i++) { image = regImages_1[_i]; imageType = void 0; if (image.includes("\\pngblip")) { imageType = "image/png"; } else if (image.includes("\\jpegblip")) { imageType = "image/jpeg"; } if (imageType) { images.push({ hex: image.replace(regexPictureHeader, "").replace(/[^\da-fA-F]/g, ""), type: imageType }); } } } shapes = []; walk(root, function(child) { if (child.tagName === "V:SHAPE") { walk(child, function(sub) { if (sub.tagName === "V:IMAGEDATA") shapes.push({ shape: child, img: sub }); }); return false; } }); for (i = 0; i < shapes.length; i++) { img = document.createElement("img"); newSrc = "data:" + images[i].type + ";base64," + btoa((images[i].hex.match(/\w{2}/g) || []).map(function(char) { return String.fromCharCode(parseInt(char, 16)); }).join("")); img.src = newSrc; img.title = shapes[i].img.getAttribute("title"); shapes[i].shape.parentNode.replaceChild(img, shapes[i].shape); } imgs = root.querySelectorAll("img"); i = 0; _b.label = 1; case 1: if (!(i < imgs.length)) return [3, 4]; src2 = imgs[i].src || ""; if (!src2) return [3, 3]; _a = imgs[i]; return [4, vditor.options.upload.base64ToLink(src2)]; case 2: _a.src = _b.sent(); _b.label = 3; case 3: i++; return [3, 1]; case 4: return [ 2 /*return*/ ]; } }); }); }; var walk = function(el, fn) { var goNext = fn(el); if (goNext !== false) for (var i = 0; i < el.children.length; i++) { walk(el.children[i], fn); } }; var templateObject_1; ; var processHint = function(vditor) { var _a, _b; vditor.hint.render(vditor); var startContainer = (0, selection.zh)(vditor).startContainer; var preBeforeElement = (0, hasClosest.a1)(startContainer, "data-type", "code-block-info"); if (preBeforeElement) { if (preBeforeElement.textContent.replace(constants.g.ZWSP, "") === "" && vditor.hint.recentLanguage) { preBeforeElement.textContent = constants.g.ZWSP + vditor.hint.recentLanguage; var range = (0, selection.zh)(vditor); range.selectNodeContents(preBeforeElement); } else { var matchLangData_1 = []; var key_1 = preBeforeElement.textContent.substring(0, (0, selection.im)(preBeforeElement, vditor.ir.element).start).replace(constants.g.ZWSP, ""); (vditor.options.preview.hljs.langs || constants.g.ALIAS_CODE_LANGUAGES.concat(((_b = (_a = window.hljs) === null || _a === void 0 ? void 0 : _a.listLanguages()) !== null && _b !== void 0 ? _b : []).sort())).forEach(function(keyName) { if (keyName.indexOf(key_1.toLowerCase()) > -1) { matchLangData_1.push({ html: keyName, value: keyName }); } }); vditor.hint.genHTML(matchLangData_1, key_1, vditor); } } }; var process_processAfterRender = function(vditor, options) { if (options === void 0) { options = { enableAddUndoStack: true, enableHint: false, enableInput: true }; } if (options.enableHint) { processHint(vditor); } clearTimeout(vditor.ir.processTimeoutId); vditor.ir.processTimeoutId = window.setTimeout(function() { if (vditor.ir.composingLock) { return; } var text = getMarkdown(vditor); if (typeof vditor.options.input === "function" && options.enableInput) { vditor.options.input(text); } if (vditor.options.counter.enable) { vditor.counter.render(vditor, text); } if (vditor.options.cache.enable && (0, compatibility.pK)()) { localStorage.setItem(vditor.options.cache.id, text); if (vditor.options.cache.after) { vditor.options.cache.after(text); } } if (vditor.devtools) { vditor.devtools.renderEchart(vditor); } if (options.enableAddUndoStack) { vditor.undo.addToUndoStack(vditor); } }, vditor.options.undoDelay); }; var process_processHeading = function(vditor, value) { var range = (0, selection.zh)(vditor); var headingElement = (0, hasClosest.F9)(range.startContainer) || range.startContainer; if (headingElement) { var headingMarkerElement = headingElement.querySelector(".vditor-ir__marker--heading"); if (headingMarkerElement) { headingMarkerElement.innerHTML = value; } else { headingElement.insertAdjacentText("afterbegin", value); range.selectNodeContents(headingElement); range.collapse(false); } input(vditor, range.cloneRange()); highlightToolbarIR(vditor); } }; var removeInline = function(range, vditor, type) { var inlineElement = (0, hasClosest.a1)(range.startContainer, "data-type", type); if (inlineElement) { inlineElement.firstElementChild.remove(); inlineElement.lastElementChild.remove(); range.insertNode(document.createElement("wbr")); var tempElement = document.createElement("div"); tempElement.innerHTML = vditor.lute.SpinVditorIRDOM(inlineElement.outerHTML); inlineElement.outerHTML = tempElement.firstElementChild.innerHTML.trim(); } }; var process_processToolbar = function(vditor, actionBtn, prefix, suffix) { var range = (0, selection.zh)(vditor); var commandName = actionBtn.getAttribute("data-type"); var typeElement = range.startContainer; if (typeElement.nodeType === 3) { typeElement = typeElement.parentElement; } var useHighlight = true; if (actionBtn.classList.contains("vditor-menu--current")) { if (commandName === "quote") { var quoteElement = (0, hasClosest.lG)(typeElement, "BLOCKQUOTE"); if (quoteElement) { range.insertNode(document.createElement("wbr")); quoteElement.outerHTML = quoteElement.innerHTML.trim() === "" ? '

    '.concat(quoteElement.innerHTML, "

    ") : quoteElement.innerHTML; } } else if (commandName === "link") { var aElement = (0, hasClosest.a1)(range.startContainer, "data-type", "a"); if (aElement) { var aTextElement = (0, hasClosest.fb)(range.startContainer, "vditor-ir__link"); if (aTextElement) { range.insertNode(document.createElement("wbr")); aElement.outerHTML = aTextElement.innerHTML; } else { aElement.outerHTML = aElement.querySelector(".vditor-ir__link").innerHTML + ""; } } } else if (commandName === "italic") { removeInline(range, vditor, "em"); } else if (commandName === "bold") { removeInline(range, vditor, "strong"); } else if (commandName === "strike") { removeInline(range, vditor, "s"); } else if (commandName === "inline-code") { removeInline(range, vditor, "code"); } else if (commandName === "check" || commandName === "list" || commandName === "ordered-list") { listToggle(vditor, range, commandName); useHighlight = false; actionBtn.classList.remove("vditor-menu--current"); } } else { if (vditor.ir.element.childNodes.length === 0) { vditor.ir.element.innerHTML = '

    '; (0, selection.ib)(vditor.ir.element, range); } var blockElement = (0, hasClosest.F9)(range.startContainer); if (commandName === "line") { if (blockElement) { var hrHTML = '

    \n

    '; if (blockElement.innerHTML.trim() === "") { blockElement.outerHTML = hrHTML; } else { blockElement.insertAdjacentHTML("afterend", hrHTML); } } } else if (commandName === "quote") { if (blockElement) { range.insertNode(document.createElement("wbr")); blockElement.outerHTML = '
    '.concat(blockElement.outerHTML, "
    "); useHighlight = false; actionBtn.classList.add("vditor-menu--current"); } } else if (commandName === "link") { var html = void 0; if (range.toString() === "") { html = "".concat(prefix, "").concat(suffix); } else { html = "".concat(prefix).concat(range.toString()).concat(suffix.replace(")", ")")); } document.execCommand("insertHTML", false, html); useHighlight = false; actionBtn.classList.add("vditor-menu--current"); } else if (commandName === "italic" || commandName === "bold" || commandName === "strike" || commandName === "inline-code" || commandName === "code" || commandName === "table") { var html = void 0; if (range.toString() === "") { html = "".concat(prefix, "").concat(suffix); } else { if (commandName === "code") { html = "".concat(prefix, "\n").concat(range.toString(), "").concat(suffix); } else if (commandName === "table") { html = "".concat(prefix).concat(range.toString(), "").concat(suffix); } else { html = "".concat(prefix).concat(range.toString()).concat(suffix, ""); } range.deleteContents(); } if (commandName === "table" || commandName === "code") { html = "\n" + html + "\n\n"; } var spanElement = document.createElement("span"); spanElement.innerHTML = html; range.insertNode(spanElement); input(vditor, range); if (commandName === "table") { range.selectNodeContents(getSelection().getRangeAt(0).startContainer.parentElement); (0, selection.Hc)(range); } } else if (commandName === "check" || commandName === "list" || commandName === "ordered-list") { listToggle(vditor, range, commandName, false); useHighlight = false; removeCurrentToolbar(vditor.toolbar.elements, ["check", "list", "ordered-list"]); actionBtn.classList.add("vditor-menu--current"); } } (0, selection.ib)(vditor.ir.element, range); process_processAfterRender(vditor); if (useHighlight) { highlightToolbarIR(vditor); } }; ; var hint_awaiter = function(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function(resolve) { resolve(value); }); } return new (P || (P = Promise))(function(resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var hint_generator = function(thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function(v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var Hint = ( /** @class */ function() { function Hint2(hintExtends) { var _this = this; this.splitChar = ""; this.lastIndex = -1; this.fillEmoji = function(element, vditor) { _this.element.style.display = "none"; var value = decodeURIComponent(element.getAttribute("data-value")); var range = window.getSelection().getRangeAt(0); if (vditor.currentMode === "ir") { var preBeforeElement = (0, hasClosest.a1)(range.startContainer, "data-type", "code-block-info"); if (preBeforeElement) { preBeforeElement.textContent = constants.g.ZWSP + value.trimRight(); range.selectNodeContents(preBeforeElement); range.collapse(false); process_processAfterRender(vditor); preBeforeElement.parentElement.querySelectorAll("code").forEach(function(item) { item.className = "language-" + value.trimRight(); }); processCodeRender(preBeforeElement.parentElement.querySelector(".vditor-ir__preview"), vditor); _this.recentLanguage = value.trimRight(); return; } } if (vditor.currentMode === "wysiwyg" && range.startContainer.nodeType !== 3) { var startContainer = range.startContainer; var inputElement = void 0; if (startContainer.classList.contains("vditor-input")) { inputElement = startContainer; } else { inputElement = startContainer.firstElementChild; } if (inputElement && inputElement.classList.contains("vditor-input")) { inputElement.value = value.trimRight(); range.selectNodeContents(inputElement); range.collapse(false); inputElement.dispatchEvent(new CustomEvent("input", { detail: 1 })); _this.recentLanguage = value.trimRight(); return; } } range.setStart(range.startContainer, _this.lastIndex); range.deleteContents(); if (vditor.options.hint.parse) { if (vditor.currentMode === "sv") { (0, selection.oC)(vditor.lute.SpinVditorSVDOM(value), vditor); } else if (vditor.currentMode === "wysiwyg") { (0, selection.oC)(vditor.lute.SpinVditorDOM(value), vditor); } else { (0, selection.oC)(vditor.lute.SpinVditorIRDOM(value), vditor); } } else { (0, selection.oC)(value, vditor); } if (_this.splitChar === ":" && value.indexOf(":") > -1 && vditor.currentMode !== "sv") { range.insertNode(document.createTextNode(" ")); } range.collapse(false); (0, selection.Hc)(range); if (vditor.currentMode === "wysiwyg") { var preElement = (0, hasClosest.fb)(range.startContainer, "vditor-wysiwyg__block"); if (preElement && preElement.lastElementChild.classList.contains("vditor-wysiwyg__preview")) { preElement.lastElementChild.innerHTML = preElement.firstElementChild.innerHTML; processCodeRender(preElement.lastElementChild, vditor); } } else if (vditor.currentMode === "ir") { var preElement = (0, hasClosest.fb)(range.startContainer, "vditor-ir__marker--pre"); if (preElement && preElement.nextElementSibling.classList.contains("vditor-ir__preview")) { preElement.nextElementSibling.innerHTML = preElement.innerHTML; processCodeRender(preElement.nextElementSibling, vditor); } } execAfterRender(vditor); }; this.timeId = -1; this.element = document.createElement("div"); this.element.className = "vditor-hint"; this.recentLanguage = ""; hintExtends.push({ key: ":" }); } Hint2.prototype.render = function(vditor) { var _this = this; if (!window.getSelection().focusNode) { return; } var currentLineValue; var range = getSelection().getRangeAt(0); currentLineValue = range.startContainer.textContent.substring(0, range.startOffset) || ""; var key = this.getKey(currentLineValue, vditor.options.hint.extend); if (typeof key === "undefined") { this.element.style.display = "none"; clearTimeout(this.timeId); } else { if (this.splitChar === ":") { var emojiHint_1 = key === "" ? vditor.options.hint.emoji : vditor.lute.GetEmojis(); var matchEmojiData_1 = []; Object.keys(emojiHint_1).forEach(function(keyName) { if (keyName.indexOf(key.toLowerCase()) === 0) { if (emojiHint_1[keyName].indexOf(".") > -1) { matchEmojiData_1.push({ html: ' :').concat(keyName, ":"), value: ":".concat(keyName, ":") }); } else { matchEmojiData_1.push({ html: ''.concat(emojiHint_1[keyName], "").concat(keyName), value: emojiHint_1[keyName] }); } } }); this.genHTML(matchEmojiData_1, key, vditor); } else { vditor.options.hint.extend.forEach(function(item) { if (item.key === _this.splitChar) { clearTimeout(_this.timeId); _this.timeId = window.setTimeout(function() { return hint_awaiter(_this, void 0, void 0, function() { var _a; return hint_generator(this, function(_b) { switch (_b.label) { case 0: _a = this.genHTML; return [4, item.hint(key)]; case 1: _a.apply(this, [_b.sent(), key, vditor]); return [ 2 /*return*/ ]; } }); }); }, vditor.options.hint.delay); } }); } } }; Hint2.prototype.genHTML = function(data, key, vditor) { var _this = this; if (data.length === 0) { this.element.style.display = "none"; return; } var editorElement = vditor[vditor.currentMode].element; var textareaPosition = (0, selection.Ny)(editorElement); var x = textareaPosition.left + (vditor.options.outline.position === "left" ? vditor.outline.element.offsetWidth : 0); var y = textareaPosition.top; var hintsHTML = ""; data.forEach(function(hintData, i) { if (i > 7) { return; } var html = hintData.html; if (key !== "") { var lastIndex = html.lastIndexOf(">") + 1; var replaceHtml = html.substr(lastIndex); var replaceIndex = replaceHtml.toLowerCase().indexOf(key.toLowerCase()); if (replaceIndex > -1) { replaceHtml = replaceHtml.substring(0, replaceIndex) + "" + replaceHtml.substring(replaceIndex, replaceIndex + key.length) + "" + replaceHtml.substring(replaceIndex + key.length); html = html.substr(0, lastIndex) + replaceHtml; } } hintsHTML += '"); }); this.element.innerHTML = hintsHTML; var lineHeight = parseInt(document.defaultView.getComputedStyle(editorElement, null).getPropertyValue("line-height"), 10); this.element.style.top = "".concat(y + (lineHeight || 22), "px"); this.element.style.left = "".concat(x, "px"); this.element.style.display = "block"; this.element.style.right = "auto"; this.element.querySelectorAll("button").forEach(function(element) { element.addEventListener("click", function(event) { _this.fillEmoji(element, vditor); event.preventDefault(); }); }); if (this.element.getBoundingClientRect().bottom > window.innerHeight) { this.element.style.top = "".concat(y - this.element.offsetHeight, "px"); } if (this.element.getBoundingClientRect().right > window.innerWidth) { this.element.style.left = "auto"; this.element.style.right = "0"; } }; Hint2.prototype.select = function(event, vditor) { if (this.element.querySelectorAll("button").length === 0 || this.element.style.display === "none") { return false; } var currentHintElement = this.element.querySelector(".vditor-hint--current"); if (event.key === "ArrowDown") { event.preventDefault(); event.stopPropagation(); currentHintElement.removeAttribute("class"); if (!currentHintElement.nextElementSibling) { this.element.children[0].className = "vditor-hint--current"; } else { currentHintElement.nextElementSibling.className = "vditor-hint--current"; } return true; } else if (event.key === "ArrowUp") { event.preventDefault(); event.stopPropagation(); currentHintElement.removeAttribute("class"); if (!currentHintElement.previousElementSibling) { var length_1 = this.element.children.length; this.element.children[length_1 - 1].className = "vditor-hint--current"; } else { currentHintElement.previousElementSibling.className = "vditor-hint--current"; } return true; } else if (!(0, compatibility.yl)(event) && !event.shiftKey && !event.altKey && event.key === "Enter" && !event.isComposing) { event.preventDefault(); event.stopPropagation(); this.fillEmoji(currentHintElement, vditor); return true; } return false; }; Hint2.prototype.getKey = function(currentLineValue, extend) { var _this = this; this.lastIndex = -1; this.splitChar = ""; extend.forEach(function(item) { var currentLastIndex = currentLineValue.lastIndexOf(item.key); if (_this.lastIndex < currentLastIndex) { _this.splitChar = item.key; _this.lastIndex = currentLastIndex; } }); var key; if (this.lastIndex === -1) { return key; } var lineArray = currentLineValue.split(this.splitChar); var lastItem = lineArray[lineArray.length - 1]; var maxLength = 32; if (lineArray.length > 1 && lastItem.trim() === lastItem) { if (lineArray.length === 2 && lineArray[0] === "" && lineArray[1].length < maxLength) { key = lineArray[1]; } else { var preChar = lineArray[lineArray.length - 2].slice(-1); if ((0, code160to32.X)(preChar) === " " && lastItem.length < maxLength) { key = lastItem; } } } return key; }; return Hint2; }() ); ; var IR = ( /** @class */ function() { function IR2(vditor) { this.composingLock = false; var divElement = document.createElement("div"); divElement.className = "vditor-ir"; divElement.innerHTML = '
    ');
                      this.element = divElement.firstElementChild;
                      this.bindEvent(vditor);
                      focusEvent(vditor, this.element);
                      dblclickEvent(vditor, this.element);
                      blurEvent(vditor, this.element);
                      hotkeyEvent(vditor, this.element);
                      selectEvent(vditor, this.element);
                      dropEvent(vditor, this.element);
                      copyEvent(vditor, this.element, this.copy);
                      cutEvent(vditor, this.element, this.copy);
                    }
                    IR2.prototype.copy = function(event, vditor) {
                      var range = getSelection().getRangeAt(0);
                      if (range.toString() === "") {
                        return;
                      }
                      event.stopPropagation();
                      event.preventDefault();
                      var tempElement = document.createElement("div");
                      tempElement.appendChild(range.cloneContents());
                      event.clipboardData.setData("text/plain", vditor.lute.VditorIRDOM2Md(tempElement.innerHTML).trim());
                      event.clipboardData.setData("text/html", "");
                    };
                    IR2.prototype.bindEvent = function(vditor) {
                      var _this = this;
                      this.element.addEventListener("paste", function(event) {
                        paste(vditor, event, {
                          pasteCode: function(code) {
                            document.execCommand("insertHTML", false, code);
                          }
                        });
                      });
                      this.element.addEventListener("scroll", function() {
                        hidePanel(vditor, ["hint"]);
                      });
                      this.element.addEventListener("compositionstart", function(event) {
                        _this.composingLock = true;
                      });
                      this.element.addEventListener("compositionend", function(event) {
                        if (!(0, compatibility.vU)()) {
                          input(vditor, getSelection().getRangeAt(0).cloneRange());
                        }
                        _this.composingLock = false;
                      });
                      this.element.addEventListener("input", function(event) {
                        if (event.inputType === "deleteByDrag" || event.inputType === "insertFromDrop") {
                          return;
                        }
                        if (_this.preventInput) {
                          _this.preventInput = false;
                          process_processAfterRender(vditor, {
                            enableAddUndoStack: true,
                            enableHint: true,
                            enableInput: true
                          });
                          return;
                        }
                        if (_this.composingLock || event.data === "‘" || event.data === "“" || event.data === "《") {
                          return;
                        }
                        input(vditor, getSelection().getRangeAt(0).cloneRange(), false, event);
                      });
                      this.element.addEventListener("click", function(event) {
                        if (event.target.tagName === "INPUT") {
                          if (event.target.checked) {
                            event.target.setAttribute("checked", "checked");
                          } else {
                            event.target.removeAttribute("checked");
                          }
                          _this.preventInput = true;
                          process_processAfterRender(vditor);
                          return;
                        }
                        var range = (0, selection.zh)(vditor);
                        var previewElement = (0, hasClosest.fb)(event.target, "vditor-ir__preview");
                        if (!previewElement) {
                          previewElement = (0, hasClosest.fb)(range.startContainer, "vditor-ir__preview");
                        }
                        if (previewElement) {
                          if (previewElement.previousElementSibling.firstElementChild) {
                            range.selectNodeContents(previewElement.previousElementSibling.firstElementChild);
                          } else {
                            range.selectNodeContents(previewElement.previousElementSibling);
                          }
                          range.collapse(true);
                          (0, selection.Hc)(range);
                          scrollCenter(vditor);
                        }
                        if (event.target.tagName === "IMG") {
                          var linkElement = event.target.parentElement.querySelector(".vditor-ir__marker--link");
                          if (linkElement) {
                            range.selectNode(linkElement);
                            (0, selection.Hc)(range);
                          }
                        }
                        var aElement = (0, hasClosest.a1)(event.target, "data-type", "a");
                        if (aElement && !aElement.classList.contains("vditor-ir__node--expand")) {
                          if (vditor.options.link.click) {
                            vditor.options.link.click(aElement.querySelector(":scope > .vditor-ir__marker--link"));
                          } else if (vditor.options.link.isOpen) {
                            window.open(aElement.querySelector(":scope > .vditor-ir__marker--link").textContent);
                          }
                          return;
                        }
                        if (event.target.isEqualNode(_this.element) && _this.element.lastElementChild && range.collapsed) {
                          var lastRect = _this.element.lastElementChild.getBoundingClientRect();
                          if (event.y > lastRect.top + lastRect.height) {
                            if (_this.element.lastElementChild.tagName === "P" && _this.element.lastElementChild.textContent.trim().replace(constants.g.ZWSP, "") === "") {
                              range.selectNodeContents(_this.element.lastElementChild);
                              range.collapse(false);
                            } else {
                              _this.element.insertAdjacentHTML("beforeend", '

    '.concat(constants.g.ZWSP, "

    ")); (0, selection.ib)(_this.element, range); } } } if (range.toString() === "") { expandMarker(range, vditor); } else { setTimeout(function() { expandMarker((0, selection.zh)(vditor), vditor); }); } clickToc(event, vditor); highlightToolbarIR(vditor); }); this.element.addEventListener("keyup", function(event) { if (event.isComposing || (0, compatibility.yl)(event)) { return; } if (event.key === "Enter") { scrollCenter(vditor); } highlightToolbarIR(vditor); if ((event.key === "Backspace" || event.key === "Delete") && vditor.ir.element.innerHTML !== "" && vditor.ir.element.childNodes.length === 1 && vditor.ir.element.firstElementChild && vditor.ir.element.firstElementChild.tagName === "P" && vditor.ir.element.firstElementChild.childElementCount === 0 && (vditor.ir.element.textContent === "" || vditor.ir.element.textContent === "\n")) { vditor.ir.element.innerHTML = ""; return; } var range = (0, selection.zh)(vditor); if (event.key === "Backspace") { if ((0, compatibility.vU)() && range.startContainer.textContent === "\n" && range.startOffset === 1) { range.startContainer.textContent = ""; expandMarker(range, vditor); } _this.element.querySelectorAll(".language-math").forEach(function(item) { var brElement = item.querySelector("br"); if (brElement) { brElement.remove(); } }); } else if (event.key.indexOf("Arrow") > -1) { if (event.key === "ArrowLeft" || event.key === "ArrowRight") { processHint(vditor); } expandMarker(range, vditor); } else if (event.keyCode === 229 && event.code === "" && event.key === "Unidentified") { expandMarker(range, vditor); } var previewRenderElement = (0, hasClosest.fb)(range.startContainer, "vditor-ir__preview"); if (previewRenderElement) { if (event.key === "ArrowUp" || event.key === "ArrowLeft") { if (previewRenderElement.previousElementSibling.firstElementChild) { range.selectNodeContents(previewRenderElement.previousElementSibling.firstElementChild); } else { range.selectNodeContents(previewRenderElement.previousElementSibling); } range.collapse(false); event.preventDefault(); return true; } if (previewRenderElement.tagName === "SPAN" && (event.key === "ArrowDown" || event.key === "ArrowRight")) { if (previewRenderElement.parentElement.getAttribute("data-type") === "html-entity") { previewRenderElement.parentElement.insertAdjacentText("afterend", constants.g.ZWSP); range.setStart(previewRenderElement.parentElement.nextSibling, 1); } else { range.selectNodeContents(previewRenderElement.parentElement.lastElementChild); } range.collapse(false); event.preventDefault(); return true; } } }); }; return IR2; }() ); ; var getHTML = function(vditor) { if (vditor.currentMode === "sv") { return vditor.lute.Md2HTML(getMarkdown(vditor)); } else if (vditor.currentMode === "wysiwyg") { return vditor.lute.VditorDOM2HTML(vditor.wysiwyg.element.innerHTML); } else if (vditor.currentMode === "ir") { return vditor.lute.VditorIRDOM2HTML(vditor.ir.element.innerHTML); } }; var setLute = __webpack_require__(214); var outlineRender = __webpack_require__(436); ; var Outline = ( /** @class */ function() { function Outline2(outlineLabel) { this.element = document.createElement("div"); this.element.className = "vditor-outline"; this.element.innerHTML = '
    '.concat(outlineLabel, '
    \n
    '); } Outline2.prototype.render = function(vditor) { var html = ""; if (vditor.preview.element.style.display === "block") { html = (0, outlineRender.k)(vditor.preview.previewElement, this.element.lastElementChild, vditor); } else { html = (0, outlineRender.k)(vditor[vditor.currentMode].element, this.element.lastElementChild, vditor); } return html; }; Outline2.prototype.toggle = function(vditor, show, focus) { var _a; if (show === void 0) { show = true; } if (focus === void 0) { focus = true; } var btnElement = (_a = vditor.toolbar.elements.outline) === null || _a === void 0 ? void 0 : _a.firstElementChild; if (show && window.innerWidth >= constants.g.MOBILE_WIDTH) { this.element.style.display = "block"; this.render(vditor); btnElement === null || btnElement === void 0 ? void 0 : btnElement.classList.add("vditor-menu--current"); } else { this.element.style.display = "none"; btnElement === null || btnElement === void 0 ? void 0 : btnElement.classList.remove("vditor-menu--current"); } if (focus && getSelection().rangeCount > 0) { var range = getSelection().getRangeAt(0); if (vditor[vditor.currentMode].element.contains(range.startContainer)) { (0, selection.Hc)(range); } } setPadding(vditor); }; return Outline2; }() ); var mediaRender = __webpack_require__(280); ; var Preview = ( /** @class */ function() { function Preview2(vditor) { var _this = this; this.element = document.createElement("div"); this.element.className = "vditor-preview"; this.previewElement = document.createElement("div"); this.previewElement.className = "vditor-reset"; if (vditor.options.classes.preview) { this.previewElement.classList.add(vditor.options.classes.preview); } this.previewElement.style.maxWidth = vditor.options.preview.maxWidth + "px"; this.previewElement.addEventListener("copy", function(event) { if (event.target.tagName === "TEXTAREA") { return; } var tempElement = document.createElement("div"); tempElement.className = "vditor-reset"; tempElement.appendChild(getSelection().getRangeAt(0).cloneContents()); _this.copyToX(vditor, tempElement, "default"); event.preventDefault(); }); this.previewElement.addEventListener("click", function(event) { var spanElement = (0, hasClosest.lG)(event.target, "SPAN"); if (spanElement && (0, hasClosest.fb)(spanElement, "vditor-toc")) { var headingElement = _this.previewElement.querySelector("#" + spanElement.getAttribute("data-target-id")); if (headingElement) { _this.element.scrollTop = headingElement.offsetTop; } return; } if (event.target.tagName === "A") { if (vditor.options.link.click) { vditor.options.link.click(event.target); } else if (vditor.options.link.isOpen) { window.open(event.target.getAttribute("href")); } event.preventDefault(); return; } if (event.target.tagName === "IMG") { if (vditor.options.image.preview) { vditor.options.image.preview(event.target); } else if (vditor.options.image.isPreview) { (0, preview_image.E)(event.target, vditor.options.lang, vditor.options.theme); } } }); this.element.appendChild(this.previewElement); var actions = vditor.options.preview.actions; if (actions.length === 0) { return; } var actionElement = document.createElement("div"); actionElement.className = "vditor-preview__action"; var actionHtml = []; for (var i = 0; i < actions.length; i++) { var action = actions[i]; if (typeof action === "object") { actionHtml.push('")); continue; } switch (action) { case "desktop": actionHtml.push(''); break; case "tablet": actionHtml.push(''); break; case "mobile": actionHtml.push(''); break; case "mp-wechat": actionHtml.push(''); break; case "zhihu": actionHtml.push(''); break; } } actionElement.innerHTML = actionHtml.join(""); actionElement.addEventListener((0, compatibility.Le)(), function(event) { var btn = (0, hasClosestByHeadings.S)(event.target, "BUTTON"); if (!btn) { return; } var type = btn.getAttribute("data-type"); var actionCustom = actions.find(function(w) { return (w === null || w === void 0 ? void 0 : w.key) === type; }); if (actionCustom) { actionCustom.click(type); return; } if (type === "mp-wechat" || type === "zhihu") { _this.copyToX(vditor, _this.previewElement.cloneNode(true), type); return; } if (type === "desktop") { _this.previewElement.style.width = "auto"; } else if (type === "tablet") { _this.previewElement.style.width = "780px"; } else { _this.previewElement.style.width = "360px"; } if (_this.previewElement.scrollWidth > _this.previewElement.parentElement.clientWidth) { _this.previewElement.style.width = "auto"; } _this.render(vditor); actionElement.querySelectorAll("button").forEach(function(item) { item.classList.remove("vditor-preview__action--current"); }); btn.classList.add("vditor-preview__action--current"); }); this.element.insertBefore(actionElement, this.previewElement); } Preview2.prototype.render = function(vditor, value) { var _this = this; clearTimeout(this.mdTimeoutId); if (this.element.style.display === "none") { if (this.element.getAttribute("data-type") === "renderPerformance") { vditor.tip.hide(); } return; } if (value) { this.previewElement.innerHTML = value; return; } if (getMarkdown(vditor).replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "") === "") { this.previewElement.innerHTML = ""; return; } var renderStartTime = (/* @__PURE__ */ new Date()).getTime(); var markdownText = getMarkdown(vditor); this.mdTimeoutId = window.setTimeout(function() { if (vditor.options.preview.url) { var xhr_1 = new XMLHttpRequest(); xhr_1.open("POST", vditor.options.preview.url); xhr_1.setRequestHeader("Content-Type", "application/json;charset=UTF-8"); xhr_1.onreadystatechange = function() { if (xhr_1.readyState === XMLHttpRequest.DONE) { if (xhr_1.status === 200) { var responseJSON = JSON.parse(xhr_1.responseText); if (responseJSON.code !== 0) { vditor.tip.show(responseJSON.msg); return; } if (vditor.options.preview.transform) { responseJSON.data = vditor.options.preview.transform(responseJSON.data); } _this.previewElement.innerHTML = responseJSON.data; _this.afterRender(vditor, renderStartTime); } else { var html2 = vditor.lute.Md2HTML(markdownText); if (vditor.options.preview.transform) { html2 = vditor.options.preview.transform(html2); } _this.previewElement.innerHTML = html2; _this.afterRender(vditor, renderStartTime); } } }; xhr_1.send(JSON.stringify({ markdownText })); } else { var html = vditor.lute.Md2HTML(markdownText); if (vditor.options.preview.transform) { html = vditor.options.preview.transform(html); } _this.previewElement.innerHTML = html; _this.afterRender(vditor, renderStartTime); } }, vditor.options.preview.delay); }; Preview2.prototype.afterRender = function(vditor, startTime) { if (vditor.options.preview.parse) { vditor.options.preview.parse(this.element); } var time = (/* @__PURE__ */ new Date()).getTime() - startTime; if ((/* @__PURE__ */ new Date()).getTime() - startTime > 2600) { vditor.tip.show(window.VditorI18n.performanceTip.replace("${x}", time.toString())); vditor.preview.element.setAttribute("data-type", "renderPerformance"); } else if (vditor.preview.element.getAttribute("data-type") === "renderPerformance") { vditor.tip.hide(); vditor.preview.element.removeAttribute("data-type"); } var cmtFocusElement = vditor.preview.element.querySelector(".vditor-comment--focus"); if (cmtFocusElement) { cmtFocusElement.classList.remove("vditor-comment--focus"); } (0, codeRender.O)(vditor.preview.previewElement, vditor.options.preview.hljs); (0, highlightRender.s)(vditor.options.preview.hljs, vditor.preview.previewElement, vditor.options.cdn); (0, mermaidRender.i)(vditor.preview.previewElement, vditor.options.cdn, vditor.options.theme); (0, markmapRender.K)(vditor.preview.previewElement, vditor.options.cdn); (0, SMILESRender.J)(vditor.preview.previewElement, vditor.options.cdn, vditor.options.theme); (0, flowchartRender.P)(vditor.preview.previewElement, vditor.options.cdn); (0, graphvizRender.v)(vditor.preview.previewElement, vditor.options.cdn); (0, chartRender.p)(vditor.preview.previewElement, vditor.options.cdn, vditor.options.theme); (0, mindmapRender.P)(vditor.preview.previewElement, vditor.options.cdn, vditor.options.theme); (0, plantumlRender.B)(vditor.preview.previewElement, vditor.options.cdn); (0, abcRender.Q)(vditor.preview.previewElement, vditor.options.cdn); if (vditor.options.preview.render.media.enable) { (0, mediaRender.Y)(vditor.preview.previewElement); } vditor.options.customRenders.forEach(function(item) { item.render(vditor.preview.previewElement, vditor); }); var editorElement = vditor.preview.element; var tocHTML = vditor.outline.render(vditor); if (tocHTML === "") { tocHTML = "[ToC]"; } editorElement.querySelectorAll('[data-type="toc-block"]').forEach(function(item) { item.innerHTML = tocHTML; (0, mathRender.H)(item, { cdn: vditor.options.cdn, math: vditor.options.preview.math }); }); (0, mathRender.H)(vditor.preview.previewElement, { cdn: vditor.options.cdn, math: vditor.options.preview.math }); }; Preview2.prototype.copyToX = function(vditor, copyElement, type) { if (type === void 0) { type = "mp-wechat"; } if (type !== "zhihu") { copyElement.querySelectorAll(".katex-html .base").forEach(function(item) { item.style.display = "initial"; }); } else { copyElement.querySelectorAll(".language-math").forEach(function(item) { item.outerHTML = ''.concat(item.getAttribute('); }); } copyElement.style.backgroundColor = "#fff"; copyElement.querySelectorAll("code").forEach(function(item) { item.style.backgroundImage = "none"; }); this.element.append(copyElement); var range = copyElement.ownerDocument.createRange(); range.selectNode(copyElement); (0, selection.Hc)(range); document.execCommand("copy"); copyElement.remove(); vditor.tip.show(["zhihu", "mp-wechat"].includes(type) ? "已复制,可到".concat(type === "zhihu" ? "知乎" : "微信公众号平台", "进行粘贴") : "已复制到剪切板"); }; return Preview2; }() ); ; var Resize = ( /** @class */ function() { function Resize2(vditor) { this.element = document.createElement("div"); this.element.className = "vditor-resize vditor-resize--".concat(vditor.options.resize.position); this.element.innerHTML = '
    '; this.bindEvent(vditor); } Resize2.prototype.bindEvent = function(vditor) { var _this = this; this.element.addEventListener("mousedown", function(event) { var documentSelf = document; var y = event.clientY; var height = vditor.element.offsetHeight; var minHeight = 63 + vditor.element.querySelector(".vditor-toolbar").clientHeight; documentSelf.ondragstart = function() { return false; }; if (window.captureEvents) { window.captureEvents(); } _this.element.classList.add("vditor-resize--selected"); documentSelf.onmousemove = function(moveEvent) { if (vditor.options.resize.position === "top") { vditor.element.style.height = Math.max(minHeight, height + (y - moveEvent.clientY)) + "px"; } else { vditor.element.style.height = Math.max(minHeight, height + (moveEvent.clientY - y)) + "px"; } if (vditor.options.typewriterMode) { vditor.sv.element.style.paddingBottom = vditor.sv.element.parentElement.offsetHeight / 2 + "px"; } }; documentSelf.onmouseup = function() { if (vditor.options.resize.after) { vditor.options.resize.after(vditor.element.offsetHeight - height); } if (window.captureEvents) { window.captureEvents(); } documentSelf.onmousemove = null; documentSelf.onmouseup = null; documentSelf.ondragstart = null; documentSelf.onselectstart = null; documentSelf.onselect = null; _this.element.classList.remove("vditor-resize--selected"); }; }); }; return Resize2; }() ); ; var Editor = ( /** @class */ function() { function Editor2(vditor) { this.composingLock = false; this.element = document.createElement("pre"); this.element.className = "vditor-sv vditor-reset"; this.element.setAttribute("placeholder", vditor.options.placeholder); this.element.setAttribute("contenteditable", "true"); this.element.setAttribute("spellcheck", "false"); this.bindEvent(vditor); focusEvent(vditor, this.element); blurEvent(vditor, this.element); hotkeyEvent(vditor, this.element); selectEvent(vditor, this.element); dropEvent(vditor, this.element); copyEvent(vditor, this.element, this.copy); cutEvent(vditor, this.element, this.copy); } Editor2.prototype.copy = function(event, vditor) { event.stopPropagation(); event.preventDefault(); event.clipboardData.setData("text/plain", getSelectText(vditor[vditor.currentMode].element)); }; Editor2.prototype.bindEvent = function(vditor) { var _this = this; this.element.addEventListener("paste", function(event) { paste(vditor, event, { pasteCode: function(code) { document.execCommand("insertHTML", false, code); } }); }); this.element.addEventListener("scroll", function() { if (vditor.preview.element.style.display !== "block") { return; } var textScrollTop = _this.element.scrollTop; var textHeight = _this.element.clientHeight; var textScrollHeight = _this.element.scrollHeight - parseFloat(_this.element.style.paddingBottom || "0"); var preview = vditor.preview.element; if (textScrollTop / textHeight > 0.5) { preview.scrollTop = (textScrollTop + textHeight) * preview.scrollHeight / textScrollHeight - textHeight; } else { preview.scrollTop = textScrollTop * preview.scrollHeight / textScrollHeight; } }); this.element.addEventListener("compositionstart", function(event) { _this.composingLock = true; }); this.element.addEventListener("compositionend", function(event) { if (!(0, compatibility.vU)()) { inputEvent(vditor, event); } _this.composingLock = false; }); this.element.addEventListener("input", function(event) { if (event.inputType === "deleteByDrag" || event.inputType === "insertFromDrop") { return; } if (_this.composingLock || event.data === "‘" || event.data === "“" || event.data === "《") { return; } if (_this.preventInput) { _this.preventInput = false; processAfterRender(vditor, { enableAddUndoStack: true, enableHint: true, enableInput: true }); return; } inputEvent(vditor, event); }); this.element.addEventListener("keyup", function(event) { if (event.isComposing || (0, compatibility.yl)(event)) { return; } if ((event.key === "Backspace" || event.key === "Delete") && vditor.sv.element.innerHTML !== "" && vditor.sv.element.childNodes.length === 1 && vditor.sv.element.firstElementChild && vditor.sv.element.firstElementChild.tagName === "DIV" && vditor.sv.element.firstElementChild.childElementCount === 2 && (vditor.sv.element.firstElementChild.textContent === "" || vditor.sv.element.textContent === "\n")) { vditor.sv.element.innerHTML = ""; return; } if (event.key === "Enter") { scrollCenter(vditor); } }); }; return Editor2; }() ); ; var Tip = ( /** @class */ function() { function Tip2() { this.element = document.createElement("div"); this.element.className = "vditor-tip"; } Tip2.prototype.show = function(text, time) { var _this = this; if (time === void 0) { time = 6e3; } this.element.className = "vditor-tip vditor-tip--show"; if (time === 0) { this.element.innerHTML = '
    '.concat(text, '\n
    X
    '); this.element.querySelector(".vditor-tip__close").addEventListener("click", function() { _this.hide(); }); } else { this.element.innerHTML = '
    '.concat(text, "
    "); setTimeout(function() { _this.hide(); }, time); } this.element.removeAttribute("style"); setTimeout(function() { var rect = _this.element.getBoundingClientRect(); if (rect.top < 46) { _this.element.style.position = "fixed"; _this.element.style.top = "46px"; } }, 150); }; Tip2.prototype.hide = function() { this.element.className = "vditor-messageElementtip"; this.element.innerHTML = ""; }; return Tip2; }() ); ; var setPreviewMode = function(mode, vditor) { if (vditor.options.preview.mode === mode) { return; } vditor.options.preview.mode = mode; switch (mode) { case "both": vditor.sv.element.style.display = "block"; vditor.preview.element.style.display = "block"; vditor.preview.render(vditor); setCurrentToolbar(vditor.toolbar.elements, ["both"]); break; case "editor": vditor.sv.element.style.display = "block"; vditor.preview.element.style.display = "none"; removeCurrentToolbar(vditor.toolbar.elements, ["both"]); break; default: break; } if (vditor.devtools) { vditor.devtools.renderEchart(vditor); } }; ; var Both_extends = function() { var extendStatics = function(d, b) { extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { d2.__proto__ = b2; } || function(d2, b2) { for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; }; return extendStatics(d, b); }; return function(d, b) { if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; }(); var Both = ( /** @class */ function(_super) { Both_extends(Both2, _super); function Both2(vditor, menuItem) { var _this = _super.call(this, vditor, menuItem) || this; if (vditor.options.preview.mode === "both") { _this.element.children[0].classList.add("vditor-menu--current"); } _this.element.children[0].addEventListener((0, compatibility.Le)(), function(event) { var btnElement = _this.element.firstElementChild; if (btnElement.classList.contains(constants.g.CLASS_MENU_DISABLED)) { return; } event.preventDefault(); if (vditor.currentMode !== "sv") { return; } if (vditor.options.preview.mode === "both") { setPreviewMode("editor", vditor); } else { setPreviewMode("both", vditor); } }); return _this; } return Both2; }(MenuItem) ); ; var Br = ( /** @class */ function() { function Br2() { this.element = document.createElement("div"); this.element.className = "vditor-toolbar__br"; } return Br2; }() ); var setCodeTheme = __webpack_require__(580); ; var CodeTheme_extends = function() { var extendStatics = function(d, b) { extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { d2.__proto__ = b2; } || function(d2, b2) { for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; }; return extendStatics(d, b); }; return function(d, b) { if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; }(); var CodeTheme = ( /** @class */ function(_super) { CodeTheme_extends(CodeTheme2, _super); function CodeTheme2(vditor, menuItem) { var _this = _super.call(this, vditor, menuItem) || this; var actionBtn = _this.element.children[0]; var panelElement = document.createElement("div"); panelElement.className = "vditor-hint".concat(menuItem.level === 2 ? "" : " vditor-panel--arrow"); var innerHTML = ""; constants.g.CODE_THEME.forEach(function(theme) { innerHTML += ""); }); panelElement.innerHTML = '
    ').concat(innerHTML, "
    "); panelElement.addEventListener((0, compatibility.Le)(), function(event) { if (event.target.tagName === "BUTTON") { hidePanel(vditor, ["subToolbar"]); vditor.options.preview.hljs.style = event.target.textContent; (0, setCodeTheme.Y)(event.target.textContent, vditor.options.cdn); event.preventDefault(); event.stopPropagation(); } }); _this.element.appendChild(panelElement); toggleSubMenu(vditor, panelElement, actionBtn, menuItem.level); return _this; } return CodeTheme2; }(MenuItem) ); ; var ContentTheme_extends = function() { var extendStatics = function(d, b) { extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { d2.__proto__ = b2; } || function(d2, b2) { for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; }; return extendStatics(d, b); }; return function(d, b) { if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; }(); var ContentTheme = ( /** @class */ function(_super) { ContentTheme_extends(ContentTheme2, _super); function ContentTheme2(vditor, menuItem) { var _this = _super.call(this, vditor, menuItem) || this; var actionBtn = _this.element.children[0]; var panelElement = document.createElement("div"); panelElement.className = "vditor-hint".concat(menuItem.level === 2 ? "" : " vditor-panel--arrow"); var innerHTML = ""; Object.keys(vditor.options.preview.theme.list).forEach(function(key) { innerHTML += '"); }); panelElement.innerHTML = '
    ').concat(innerHTML, "
    "); panelElement.addEventListener((0, compatibility.Le)(), function(event) { if (event.target.tagName === "BUTTON") { hidePanel(vditor, ["subToolbar"]); vditor.options.preview.theme.current = event.target.getAttribute("data-type"); (0, setContentTheme.Z)(vditor.options.preview.theme.current, vditor.options.preview.theme.path); event.preventDefault(); event.stopPropagation(); } }); _this.element.appendChild(panelElement); toggleSubMenu(vditor, panelElement, actionBtn, menuItem.level); return _this; } return ContentTheme2; }(MenuItem) ); ; var Counter = ( /** @class */ function() { function Counter2(vditor) { this.element = document.createElement("span"); this.element.className = "vditor-counter vditor-tooltipped vditor-tooltipped__nw"; this.render(vditor, ""); } Counter2.prototype.render = function(vditor, mdText) { var length = mdText.endsWith("\n") ? mdText.length - 1 : mdText.length; if (vditor.options.counter.type === "text" && vditor[vditor.currentMode]) { var tempElement = vditor[vditor.currentMode].element.cloneNode(true); tempElement.querySelectorAll(".vditor-wysiwyg__preview").forEach(function(item) { item.remove(); }); length = tempElement.textContent.length; } if (typeof vditor.options.counter.max === "number") { if (length > vditor.options.counter.max) { this.element.className = "vditor-counter vditor-counter--error"; } else { this.element.className = "vditor-counter"; } this.element.innerHTML = "".concat(length, "/").concat(vditor.options.counter.max); } else { this.element.innerHTML = "".concat(length); } this.element.setAttribute("aria-label", vditor.options.counter.type); if (vditor.options.counter.after) { vditor.options.counter.after(length, { enable: vditor.options.counter.enable, max: vditor.options.counter.max, type: vditor.options.counter.type }); } }; return Counter2; }() ); ; var Custom_extends = function() { var extendStatics = function(d, b) { extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { d2.__proto__ = b2; } || function(d2, b2) { for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; }; return extendStatics(d, b); }; return function(d, b) { if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; }(); var Custom = ( /** @class */ function(_super) { Custom_extends(Custom2, _super); function Custom2(vditor, menuItem) { var _this = _super.call(this, vditor, menuItem) || this; _this.element.children[0].innerHTML = menuItem.icon; _this.element.children[0].addEventListener((0, compatibility.Le)(), function(event) { event.preventDefault(); if (event.currentTarget.classList.contains(constants.g.CLASS_MENU_DISABLED)) { return; } menuItem.click(event, vditor); }); return _this; } return Custom2; }(MenuItem) ); ; var Devtools_extends = function() { var extendStatics = function(d, b) { extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { d2.__proto__ = b2; } || function(d2, b2) { for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; }; return extendStatics(d, b); }; return function(d, b) { if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; }(); var Devtools = ( /** @class */ function(_super) { Devtools_extends(Devtools2, _super); function Devtools2(vditor, menuItem) { var _this = _super.call(this, vditor, menuItem) || this; _this.element.firstElementChild.addEventListener((0, compatibility.Le)(), function(event) { var btnElement = _this.element.firstElementChild; if (btnElement.classList.contains(constants.g.CLASS_MENU_DISABLED)) { return; } event.preventDefault(); if (btnElement.classList.contains("vditor-menu--current")) { btnElement.classList.remove("vditor-menu--current"); vditor.devtools.element.style.display = "none"; setPadding(vditor); } else { btnElement.classList.add("vditor-menu--current"); vditor.devtools.element.style.display = "block"; setPadding(vditor); vditor.devtools.renderEchart(vditor); } }); return _this; } return Devtools2; }(MenuItem) ); ; var Divider = ( /** @class */ function() { function Divider2() { this.element = document.createElement("div"); this.element.className = "vditor-toolbar__divider"; } return Divider2; }() ); ; var Emoji_extends = function() { var extendStatics = function(d, b) { extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { d2.__proto__ = b2; } || function(d2, b2) { for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; }; return extendStatics(d, b); }; return function(d, b) { if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; }(); var Emoji = ( /** @class */ function(_super) { Emoji_extends(Emoji2, _super); function Emoji2(vditor, menuItem) { var _this = _super.call(this, vditor, menuItem) || this; var panelElement = document.createElement("div"); panelElement.className = "vditor-panel vditor-panel--arrow"; var commonEmojiHTML = ""; Object.keys(vditor.options.hint.emoji).forEach(function(key) { var emojiValue = vditor.options.hint.emoji[key]; if (emojiValue.indexOf(".") > -1) { commonEmojiHTML += ''); } else { commonEmojiHTML += '"); } }); panelElement.innerHTML = '
    ').concat(commonEmojiHTML, '
    \n ').concat(vditor.options.hint.emojiTail || "", "\n
    "); _this.element.appendChild(panelElement); toggleSubMenu(vditor, panelElement, _this.element.firstElementChild, menuItem.level); _this.bindEvent(vditor); return _this; } Emoji2.prototype.bindEvent = function(vditor) { var _this = this; this.element.lastElementChild.addEventListener((0, compatibility.Le)(), function(event) { var btnElement = (0, hasClosestByHeadings.S)(event.target, "BUTTON"); if (btnElement) { event.preventDefault(); var value = btnElement.getAttribute("data-value"); var range = (0, selection.zh)(vditor); var html = value; if (vditor.currentMode === "wysiwyg") { html = vditor.lute.SpinVditorDOM(value); } else if (vditor.currentMode === "ir") { html = vditor.lute.SpinVditorIRDOM(value); } if (value.indexOf(":") > -1 && vditor.currentMode !== "sv") { var tempElement = document.createElement("div"); tempElement.innerHTML = html; html = tempElement.firstElementChild.firstElementChild.outerHTML + " "; (0, selection.oC)(html, vditor); } else { range.extractContents(); range.insertNode(document.createTextNode(value)); if (!(0, hasClosest.F9)(range.startContainer)) { modifyPre(vditor, range); } } range.collapse(false); (0, selection.Hc)(range); _this.element.lastElementChild.style.display = "none"; execAfterRender(vditor); } }); this.element.lastElementChild.addEventListener("mouseover", function(event) { var btnElement = (0, hasClosestByHeadings.S)(event.target, "BUTTON"); if (btnElement) { _this.element.querySelector(".vditor-emojis__tip").innerHTML = btnElement.getAttribute("data-key"); } }); }; return Emoji2; }(MenuItem) ); ; var download = function(vditor, content, filename) { var aElement = document.createElement("a"); if ("download" in aElement) { aElement.download = filename; aElement.style.display = "none"; aElement.href = URL.createObjectURL(new Blob([content])); document.body.appendChild(aElement); aElement.click(); aElement.remove(); } else { vditor.tip.show(window.VditorI18n.downloadTip, 0); } }; var exportMarkdown = function(vditor) { var content = getMarkdown(vditor); download(vditor, content, content.substr(0, 10) + ".md"); }; var exportPDF = function(vditor) { vditor.tip.show(window.VditorI18n.generate, 3800); var iframe = document.querySelector("#vditorExportIframe"); iframe.contentDocument.open(); iframe.contentDocument.write('\n