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
[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:') === 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(/'.concat(node.innerHTML, "
"); } else { if (node.tagName === "BR") { node.outerHTML = ''.concat(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() === "'.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", "'.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, "") + "'.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 = '| col1 | col2 | col3 |
|---|---|---|
| ".concat(header, " | ");
} else {
tableHTML_1 += "".concat(header, " | "); } }); tableHTML_1 += "
|---|---|
| ".concat(cell, " | "); }); tableHTML_1 += "
<audio controls="controls" src="'.concat(path, '"></audio>```
```
'.concat(constants.g.ZWSP, "
'.concat(constants.g.ZWSP, "
'.concat(constants.g.ZWSP, "
'.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 = "'.concat(innerHTMLList.join("\n"), "
"); } pElement.insertAdjacentHTML("afterend", "".concat(pInnerHTML, ''.concat(constants.g.ZWSP, "
'.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", "
'.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 + "'.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(constants.g.ZWSP, "