vditor 3.11.1 → 3.11.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/index.css +2 -2
- package/dist/index.js +132 -25
- package/dist/index.min.js +1 -1
- package/dist/js/i18n/es_ES.js +86 -0
- package/dist/js/i18n/vi_VN.js +86 -0
- package/dist/js/icons/ant.js +1 -1
- package/dist/js/icons/material.js +1 -1
- package/dist/js/lute/lute.min.js +72 -71
- package/dist/method.js +11 -5
- package/dist/method.min.js +1 -1
- package/dist/types/index.d.ts +32 -3
- package/package.json +1 -1
- package/src/index.ts +1 -1
- package/src/ts/markdown/previewRender.ts +1 -1
- package/src/ts/util/fixBrowserBehavior.ts +74 -6
- package/src/ts/util/selection.ts +7 -2
- package/src/ts/wysiwyg/highlightToolbarWYSIWYG.ts +19 -4
package/README.md
CHANGED
|
@@ -201,7 +201,7 @@ Markdown 输出的 HTML 所展现的外观。内置 ant-design, light,dark,w
|
|
|
201
201
|
| minHeight | 编辑区域最小高度 | - |
|
|
202
202
|
| width | 编辑器总宽度,支持 % | 'auto' |
|
|
203
203
|
| placeholder | 输入区域为空时的提示 | '' |
|
|
204
|
-
| lang | 语言种类:de_DE, en_US,
|
|
204
|
+
| lang | 语言种类:de_DE, en_US, es_ES, fr_FR, ja_JP, ko_KR, pt_BR, ru_RU, sv_SE, vi_VN, zh_CN, zh_TW | 'zh_CN' |
|
|
205
205
|
| input(value: string) | 输入后触发 | - |
|
|
206
206
|
| focus(value: string) | 聚焦后触发 | - |
|
|
207
207
|
| blur(value: string) | 失焦后触发 | - |
|
|
@@ -219,6 +219,7 @@ Markdown 输出的 HTML 所展现的外观。内置 ant-design, light,dark,w
|
|
|
219
219
|
| theme | 主题:classic, dark | 'classic' |
|
|
220
220
|
| icon | 图标风格:ant, material | 'ant' |
|
|
221
221
|
| customRenders: {language: string, render: (element: HTMLElement, vditor: IVditor) => void}[] | 自定义渲染器 | [] |
|
|
222
|
+
| customWysiwygToolbar(type: TWYSISYGToolbar, element: HTMLElement): void | 对 wysiwyg 模式下的工具栏进行自定义 | - |
|
|
222
223
|
|
|
223
224
|
#### options.toolbar
|
|
224
225
|
|
package/dist/index.css
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vditor v3.11.
|
|
2
|
+
* Vditor v3.11.2 - A markdown editor written in TypeScript.
|
|
3
3
|
*
|
|
4
4
|
* MIT License
|
|
5
5
|
*
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
*
|
|
26
26
|
*/
|
|
27
27
|
/*!
|
|
28
|
-
* Vditor v3.11.
|
|
28
|
+
* Vditor v3.11.2 - A markdown editor written in TypeScript.
|
|
29
29
|
*
|
|
30
30
|
* MIT License
|
|
31
31
|
*
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vditor v3.11.
|
|
2
|
+
* Vditor v3.11.2 - A markdown editor written in TypeScript.
|
|
3
3
|
*
|
|
4
4
|
* MIT License
|
|
5
5
|
*
|
|
@@ -2471,7 +2471,7 @@ var previewRender = function (previewElement, markdown, options) { return __awai
|
|
|
2471
2471
|
previewElement.innerHTML = html;
|
|
2472
2472
|
previewElement.classList.add("vditor-reset");
|
|
2473
2473
|
if (!!mergedOptions.i18n) return [3 /*break*/, 5];
|
|
2474
|
-
if (!!["de_DE", "en_US", "
|
|
2474
|
+
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 /*break*/, 2];
|
|
2475
2475
|
throw new Error("options.lang error, see https://ld246.com/article/1549638745630#options");
|
|
2476
2476
|
case 2:
|
|
2477
2477
|
i18nScriptPrefix = "vditorI18nScript";
|
|
@@ -2633,7 +2633,7 @@ var Vditor = /** @class */ (function () {
|
|
|
2633
2633
|
/* harmony export */ "H": () => (/* binding */ _VDITOR_VERSION),
|
|
2634
2634
|
/* harmony export */ "g": () => (/* binding */ Constants)
|
|
2635
2635
|
/* harmony export */ });
|
|
2636
|
-
var _VDITOR_VERSION = "3.11.
|
|
2636
|
+
var _VDITOR_VERSION = "3.11.2";
|
|
2637
2637
|
|
|
2638
2638
|
var Constants = /** @class */ (function () {
|
|
2639
2639
|
function Constants() {
|
|
@@ -2681,7 +2681,7 @@ var Constants = /** @class */ (function () {
|
|
|
2681
2681
|
// 别名
|
|
2682
2682
|
"js", "ts", "html", "toml", "c#", "bat"
|
|
2683
2683
|
];
|
|
2684
|
-
Constants.CDN = "https://unpkg.com/vditor@".concat("3.11.
|
|
2684
|
+
Constants.CDN = "https://unpkg.com/vditor@".concat("3.11.2");
|
|
2685
2685
|
Constants.MARKDOWN_OPTIONS = {
|
|
2686
2686
|
autoSpace: false,
|
|
2687
2687
|
gfmAutoLink: true,
|
|
@@ -4785,7 +4785,13 @@ var insertHTML = function (html, vditor) {
|
|
|
4785
4785
|
vditor[vditor.currentMode].element.insertAdjacentHTML("beforeend", pasteElement.innerHTML);
|
|
4786
4786
|
}
|
|
4787
4787
|
else {
|
|
4788
|
-
|
|
4788
|
+
var liElement = (0,_hasClosest__WEBPACK_IMPORTED_MODULE_1__/* .hasClosestByMatchTag */ .lG)(range.startContainer, "LI");
|
|
4789
|
+
if (liElement && pasteElement.firstElementChild.tagName === "UL") {
|
|
4790
|
+
liElement.insertAdjacentHTML("afterend", pasteElement.firstElementChild.innerHTML);
|
|
4791
|
+
}
|
|
4792
|
+
else {
|
|
4793
|
+
blockElement.insertAdjacentHTML("afterend", pasteElement.innerHTML);
|
|
4794
|
+
}
|
|
4789
4795
|
}
|
|
4790
4796
|
setRangeByWbr(vditor[vditor.currentMode].element, range);
|
|
4791
4797
|
}
|
|
@@ -7132,6 +7138,7 @@ var highlightToolbarWYSIWYG = function (vditor) {
|
|
|
7132
7138
|
if (footnotesElement) {
|
|
7133
7139
|
vditor.wysiwyg.popover.innerHTML = "";
|
|
7134
7140
|
genClose(footnotesElement, vditor);
|
|
7141
|
+
customWysiwygToolbar(vditor, "footnotes-block");
|
|
7135
7142
|
setPopoverPosition(vditor, footnotesElement);
|
|
7136
7143
|
return;
|
|
7137
7144
|
}
|
|
@@ -7254,6 +7261,7 @@ var highlightToolbarWYSIWYG = function (vditor) {
|
|
|
7254
7261
|
if (tocElement) {
|
|
7255
7262
|
vditor.wysiwyg.popover.innerHTML = "";
|
|
7256
7263
|
genClose(tocElement, vditor);
|
|
7264
|
+
customWysiwygToolbar(vditor, "vditor-toc");
|
|
7257
7265
|
setPopoverPosition(vditor, tocElement);
|
|
7258
7266
|
return;
|
|
7259
7267
|
}
|
|
@@ -7264,6 +7272,7 @@ var highlightToolbarWYSIWYG = function (vditor) {
|
|
|
7264
7272
|
genUp(range, blockquoteElement, vditor);
|
|
7265
7273
|
genDown(range, blockquoteElement, vditor);
|
|
7266
7274
|
genClose(blockquoteElement, vditor);
|
|
7275
|
+
customWysiwygToolbar(vditor, "blockquote");
|
|
7267
7276
|
setPopoverPosition(vditor, blockquoteElement);
|
|
7268
7277
|
}
|
|
7269
7278
|
// list item popover
|
|
@@ -7272,6 +7281,7 @@ var highlightToolbarWYSIWYG = function (vditor) {
|
|
|
7272
7281
|
genUp(range, liElement, vditor);
|
|
7273
7282
|
genDown(range, liElement, vditor);
|
|
7274
7283
|
genClose(liElement, vditor);
|
|
7284
|
+
customWysiwygToolbar(vditor, "li");
|
|
7275
7285
|
setPopoverPosition(vditor, liElement);
|
|
7276
7286
|
}
|
|
7277
7287
|
// table popover
|
|
@@ -7586,6 +7596,7 @@ var highlightToolbarWYSIWYG = function (vditor) {
|
|
|
7586
7596
|
vditor.wysiwyg.popover.insertAdjacentElement("beforeend", inputWrap);
|
|
7587
7597
|
vditor.wysiwyg.popover.insertAdjacentHTML("beforeend", " x ");
|
|
7588
7598
|
vditor.wysiwyg.popover.insertAdjacentElement("beforeend", input2Wrap);
|
|
7599
|
+
customWysiwygToolbar(vditor, "table");
|
|
7589
7600
|
setPopoverPosition(vditor, tableElement);
|
|
7590
7601
|
}
|
|
7591
7602
|
// link ref popover
|
|
@@ -7629,6 +7640,7 @@ var highlightToolbarWYSIWYG = function (vditor) {
|
|
|
7629
7640
|
};
|
|
7630
7641
|
genClose(footnotesRefElement, vditor);
|
|
7631
7642
|
vditor.wysiwyg.popover.insertAdjacentElement("beforeend", inputWrap);
|
|
7643
|
+
customWysiwygToolbar(vditor, "footnotes-ref");
|
|
7632
7644
|
setPopoverPosition(vditor, footnotesRefElement);
|
|
7633
7645
|
}
|
|
7634
7646
|
// block popover: math-inline, math-block, html-block, html-inline, code-block, html-entity
|
|
@@ -7721,6 +7733,10 @@ var highlightToolbarWYSIWYG = function (vditor) {
|
|
|
7721
7733
|
event.preventDefault();
|
|
7722
7734
|
};
|
|
7723
7735
|
vditor.wysiwyg.popover.insertAdjacentElement("beforeend", languageWrap);
|
|
7736
|
+
customWysiwygToolbar(vditor, "code-block");
|
|
7737
|
+
}
|
|
7738
|
+
else {
|
|
7739
|
+
customWysiwygToolbar(vditor, "block");
|
|
7724
7740
|
}
|
|
7725
7741
|
setPopoverPosition(vditor, blockRenderElement);
|
|
7726
7742
|
}
|
|
@@ -7759,6 +7775,7 @@ var highlightToolbarWYSIWYG = function (vditor) {
|
|
|
7759
7775
|
genDown(range, headingElement, vditor);
|
|
7760
7776
|
genClose(headingElement, vditor);
|
|
7761
7777
|
vditor.wysiwyg.popover.insertAdjacentElement("beforeend", inputWrap);
|
|
7778
|
+
customWysiwygToolbar(vditor, "heading");
|
|
7762
7779
|
setPopoverPosition(vditor, headingElement);
|
|
7763
7780
|
}
|
|
7764
7781
|
// a popover
|
|
@@ -7781,6 +7798,7 @@ var highlightToolbarWYSIWYG = function (vditor) {
|
|
|
7781
7798
|
genUp(range, blockElement, vditor);
|
|
7782
7799
|
genDown(range, blockElement, vditor);
|
|
7783
7800
|
genClose(blockElement, vditor);
|
|
7801
|
+
customWysiwygToolbar(vditor, "block");
|
|
7784
7802
|
setPopoverPosition(vditor, blockElement);
|
|
7785
7803
|
}
|
|
7786
7804
|
else {
|
|
@@ -7878,6 +7896,7 @@ var genLinkRefPopover = function (vditor, linkRefElement, range) {
|
|
|
7878
7896
|
genClose(linkRefElement, vditor);
|
|
7879
7897
|
vditor.wysiwyg.popover.insertAdjacentElement("beforeend", inputWrap);
|
|
7880
7898
|
vditor.wysiwyg.popover.insertAdjacentElement("beforeend", input1Wrap);
|
|
7899
|
+
customWysiwygToolbar(vditor, "link-ref");
|
|
7881
7900
|
setPopoverPosition(vditor, linkRefElement);
|
|
7882
7901
|
};
|
|
7883
7902
|
var genUp = function (range, element, vditor) {
|
|
@@ -8051,6 +8070,7 @@ var genAPopover = function (vditor, aElement, range) {
|
|
|
8051
8070
|
vditor.wysiwyg.popover.insertAdjacentElement("beforeend", inputWrap);
|
|
8052
8071
|
vditor.wysiwyg.popover.insertAdjacentElement("beforeend", input1Wrap);
|
|
8053
8072
|
vditor.wysiwyg.popover.insertAdjacentElement("beforeend", input2Wrap);
|
|
8073
|
+
customWysiwygToolbar(vditor, "a");
|
|
8054
8074
|
setPopoverPosition(vditor, aElement);
|
|
8055
8075
|
};
|
|
8056
8076
|
var genImagePopover = function (event, vditor) {
|
|
@@ -8111,6 +8131,7 @@ var genImagePopover = function (event, vditor) {
|
|
|
8111
8131
|
vditor.wysiwyg.popover.insertAdjacentElement("beforeend", inputWrap);
|
|
8112
8132
|
vditor.wysiwyg.popover.insertAdjacentElement("beforeend", altWrap);
|
|
8113
8133
|
vditor.wysiwyg.popover.insertAdjacentElement("beforeend", titleWrap);
|
|
8134
|
+
customWysiwygToolbar(vditor, "image");
|
|
8114
8135
|
setPopoverPosition(vditor, imgElement);
|
|
8115
8136
|
};
|
|
8116
8137
|
var focusToElement = function (event, range) {
|
|
@@ -8123,6 +8144,9 @@ var focusToElement = function (event, range) {
|
|
|
8123
8144
|
return true;
|
|
8124
8145
|
}
|
|
8125
8146
|
};
|
|
8147
|
+
var customWysiwygToolbar = function (vditor, type) {
|
|
8148
|
+
vditor.options.customWysiwygToolbar(type, vditor.wysiwyg.popover);
|
|
8149
|
+
};
|
|
8126
8150
|
|
|
8127
8151
|
;// CONCATENATED MODULE: ./src/ts/util/highlightToolbar.ts
|
|
8128
8152
|
|
|
@@ -9817,7 +9841,7 @@ var fixCJKPosition = function (range, vditor, event) {
|
|
|
9817
9841
|
if (pLiElement && (0,selection/* getSelectPosition */.im)(pLiElement, vditor[vditor.currentMode].element, range).start === 0) {
|
|
9818
9842
|
// https://github.com/Vanessa219/vditor/issues/1289 WKWebView切换输入法产生六分之一空格,造成光标错位
|
|
9819
9843
|
if (pLiElement.nodeValue) {
|
|
9820
|
-
pLiElement.nodeValue = pLiElement.nodeValue.replace(/\u2006/g,
|
|
9844
|
+
pLiElement.nodeValue = pLiElement.nodeValue.replace(/\u2006/g, "");
|
|
9821
9845
|
}
|
|
9822
9846
|
var zwspNode = document.createTextNode(constants/* Constants.ZWSP */.g.ZWSP);
|
|
9823
9847
|
range.insertNode(zwspNode);
|
|
@@ -11111,15 +11135,23 @@ var paste = function (vditor, event, callback) { return fixBrowserBehavior_await
|
|
|
11111
11135
|
processCodeRender(codeElement.parentElement.nextElementSibling, vditor);
|
|
11112
11136
|
}
|
|
11113
11137
|
}
|
|
11114
|
-
return [3 /*break*/,
|
|
11138
|
+
return [3 /*break*/, 10];
|
|
11115
11139
|
case 1:
|
|
11116
11140
|
if (!code) return [3 /*break*/, 2];
|
|
11117
11141
|
callback.pasteCode(code);
|
|
11118
|
-
return [3 /*break*/,
|
|
11142
|
+
return [3 /*break*/, 10];
|
|
11119
11143
|
case 2:
|
|
11120
|
-
if (!(textHTML.trim() !== "")) return [3 /*break*/,
|
|
11144
|
+
if (!(textHTML.trim() !== "")) return [3 /*break*/, 5];
|
|
11121
11145
|
tempElement = document.createElement("div");
|
|
11122
11146
|
tempElement.innerHTML = textHTML;
|
|
11147
|
+
if (!!vditor.options.upload.base64ToLink) return [3 /*break*/, 4];
|
|
11148
|
+
// word 复制的图文混合,替换为 link: <v:imagedata src="file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image001.png" o:title="">
|
|
11149
|
+
return [4 /*yield*/, processVMLImage(vditor, tempElement, ("clipboardData" in event ? event.clipboardData : event.dataTransfer).getData("text/rtf"))];
|
|
11150
|
+
case 3:
|
|
11151
|
+
// word 复制的图文混合,替换为 link: <v:imagedata src="file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image001.png" o:title="">
|
|
11152
|
+
_b.sent();
|
|
11153
|
+
_b.label = 4;
|
|
11154
|
+
case 4:
|
|
11123
11155
|
tempElement.querySelectorAll("[style]").forEach(function (e) {
|
|
11124
11156
|
e.removeAttribute("style");
|
|
11125
11157
|
});
|
|
@@ -11142,15 +11174,15 @@ var paste = function (vditor, event, callback) { return fixBrowserBehavior_await
|
|
|
11142
11174
|
processPaste(vditor, vditor.lute.HTML2Md(tempElement.innerHTML).trimRight());
|
|
11143
11175
|
}
|
|
11144
11176
|
vditor.outline.render(vditor);
|
|
11145
|
-
return [3 /*break*/,
|
|
11146
|
-
case
|
|
11147
|
-
if (!(files.length > 0)) return [3 /*break*/,
|
|
11148
|
-
if (!(vditor.options.upload.url || vditor.options.upload.handler)) return [3 /*break*/,
|
|
11177
|
+
return [3 /*break*/, 10];
|
|
11178
|
+
case 5:
|
|
11179
|
+
if (!(files.length > 0)) return [3 /*break*/, 9];
|
|
11180
|
+
if (!(vditor.options.upload.url || vditor.options.upload.handler)) return [3 /*break*/, 7];
|
|
11149
11181
|
return [4 /*yield*/, uploadFiles(vditor, files)];
|
|
11150
|
-
case
|
|
11182
|
+
case 6:
|
|
11151
11183
|
_b.sent();
|
|
11152
|
-
return [3 /*break*/,
|
|
11153
|
-
case
|
|
11184
|
+
return [3 /*break*/, 8];
|
|
11185
|
+
case 7:
|
|
11154
11186
|
fileReader_1 = new FileReader();
|
|
11155
11187
|
if ("clipboardData" in event) {
|
|
11156
11188
|
files = event.clipboardData.files;
|
|
@@ -11163,7 +11195,7 @@ var paste = function (vditor, event, callback) { return fixBrowserBehavior_await
|
|
|
11163
11195
|
if (file_1 && file_1.type.startsWith("image")) {
|
|
11164
11196
|
fileReader_1.readAsDataURL(file_1);
|
|
11165
11197
|
fileReader_1.onload = function () {
|
|
11166
|
-
var imgHTML =
|
|
11198
|
+
var imgHTML = "";
|
|
11167
11199
|
if (vditor.currentMode === "wysiwyg") {
|
|
11168
11200
|
imgHTML += "<img alt=\"".concat(file_1.name, "\" src=\"").concat(fileReader_1.result.toString(), "\">\n");
|
|
11169
11201
|
}
|
|
@@ -11173,9 +11205,9 @@ var paste = function (vditor, event, callback) { return fixBrowserBehavior_await
|
|
|
11173
11205
|
document.execCommand("insertHTML", false, imgHTML);
|
|
11174
11206
|
};
|
|
11175
11207
|
}
|
|
11176
|
-
_b.label =
|
|
11177
|
-
case
|
|
11178
|
-
case
|
|
11208
|
+
_b.label = 8;
|
|
11209
|
+
case 8: return [3 /*break*/, 10];
|
|
11210
|
+
case 9:
|
|
11179
11211
|
if (textPlain.trim() !== "" && files.length === 0) {
|
|
11180
11212
|
range = (0,selection/* getEditorRange */.zh)(vditor);
|
|
11181
11213
|
if (range.toString() !== "" && vditor.lute.IsValidLinkDest(textPlain)) {
|
|
@@ -11184,12 +11216,12 @@ var paste = function (vditor, event, callback) { return fixBrowserBehavior_await
|
|
|
11184
11216
|
if (vditor.currentMode === "ir") {
|
|
11185
11217
|
renderers.Md2VditorIRDOM = { renderLinkDest: renderLinkDest };
|
|
11186
11218
|
vditor.lute.SetJSRenderers({ renderers: renderers });
|
|
11187
|
-
(0,selection/* insertHTML */.oC)(vditor.lute.Md2VditorIRDOM(textPlain), vditor);
|
|
11219
|
+
(0,selection/* insertHTML */.oC)(Lute.Sanitize(vditor.lute.Md2VditorIRDOM(textPlain)), vditor);
|
|
11188
11220
|
}
|
|
11189
11221
|
else if (vditor.currentMode === "wysiwyg") {
|
|
11190
11222
|
renderers.Md2VditorDOM = { renderLinkDest: renderLinkDest };
|
|
11191
11223
|
vditor.lute.SetJSRenderers({ renderers: renderers });
|
|
11192
|
-
(0,selection/* insertHTML */.oC)(vditor.lute.Md2VditorDOM(textPlain), vditor);
|
|
11224
|
+
(0,selection/* insertHTML */.oC)(Lute.Sanitize(vditor.lute.Md2VditorDOM(textPlain)), vditor);
|
|
11193
11225
|
}
|
|
11194
11226
|
else {
|
|
11195
11227
|
renderers.Md2VditorSVDOM = { renderLinkDest: renderLinkDest };
|
|
@@ -11198,8 +11230,8 @@ var paste = function (vditor, event, callback) { return fixBrowserBehavior_await
|
|
|
11198
11230
|
}
|
|
11199
11231
|
vditor.outline.render(vditor);
|
|
11200
11232
|
}
|
|
11201
|
-
_b.label =
|
|
11202
|
-
case
|
|
11233
|
+
_b.label = 10;
|
|
11234
|
+
case 10:
|
|
11203
11235
|
if (vditor.currentMode !== "sv") {
|
|
11204
11236
|
blockElement = (0,hasClosest/* hasClosestBlock */.F9)((0,selection/* getEditorRange */.zh)(vditor).startContainer);
|
|
11205
11237
|
if (blockElement) {
|
|
@@ -11231,6 +11263,81 @@ var paste = function (vditor, event, callback) { return fixBrowserBehavior_await
|
|
|
11231
11263
|
}
|
|
11232
11264
|
});
|
|
11233
11265
|
}); };
|
|
11266
|
+
var processVMLImage = function (vditor, root, rtfData) { return fixBrowserBehavior_awaiter(void 0, void 0, void 0, function () {
|
|
11267
|
+
var regexPictureHeader, regexPicture, regImages, images, _i, regImages_1, image, imageType, shapes, i, img, newSrc, imgs, i, src, _a;
|
|
11268
|
+
return fixBrowserBehavior_generator(this, function (_b) {
|
|
11269
|
+
switch (_b.label) {
|
|
11270
|
+
case 0:
|
|
11271
|
+
if (!rtfData) {
|
|
11272
|
+
return [2 /*return*/];
|
|
11273
|
+
}
|
|
11274
|
+
regexPictureHeader = /{\\pict[\s\S]+?\\bliptag-?\d+(\\blipupi-?\d+)?({\\\*\\blipuid\s?[\da-fA-F]+)?[\s}]*?/;
|
|
11275
|
+
regexPicture = new RegExp("(?:(" + regexPictureHeader.source + "))([\\da-fA-F\\s]+)\\}", "g");
|
|
11276
|
+
regImages = rtfData.match(regexPicture);
|
|
11277
|
+
images = [];
|
|
11278
|
+
if (regImages) {
|
|
11279
|
+
for (_i = 0, regImages_1 = regImages; _i < regImages_1.length; _i++) {
|
|
11280
|
+
image = regImages_1[_i];
|
|
11281
|
+
imageType = void 0;
|
|
11282
|
+
if (image.includes("\\pngblip")) {
|
|
11283
|
+
imageType = "image/png";
|
|
11284
|
+
}
|
|
11285
|
+
else if (image.includes("\\jpegblip")) {
|
|
11286
|
+
imageType = "image/jpeg";
|
|
11287
|
+
}
|
|
11288
|
+
if (imageType) {
|
|
11289
|
+
images.push({
|
|
11290
|
+
hex: image.replace(regexPictureHeader, "").replace(/[^\da-fA-F]/g, ""),
|
|
11291
|
+
type: imageType,
|
|
11292
|
+
});
|
|
11293
|
+
}
|
|
11294
|
+
}
|
|
11295
|
+
}
|
|
11296
|
+
shapes = [];
|
|
11297
|
+
walk(root, function (child) {
|
|
11298
|
+
if (child.tagName === "V:SHAPE") {
|
|
11299
|
+
walk(child, function (sub) {
|
|
11300
|
+
if (sub.tagName === "V:IMAGEDATA")
|
|
11301
|
+
shapes.push({ shape: child, img: sub });
|
|
11302
|
+
});
|
|
11303
|
+
return false;
|
|
11304
|
+
}
|
|
11305
|
+
});
|
|
11306
|
+
for (i = 0; i < shapes.length; i++) {
|
|
11307
|
+
img = document.createElement("img");
|
|
11308
|
+
newSrc = "data:" + images[i].type + ";base64," + btoa((images[i].hex.match(/\w{2}/g) || []).map(function (char) {
|
|
11309
|
+
return String.fromCharCode(parseInt(char, 16));
|
|
11310
|
+
}).join(""));
|
|
11311
|
+
img.src = newSrc;
|
|
11312
|
+
img.title = shapes[i].img.getAttribute("title");
|
|
11313
|
+
shapes[i].shape.parentNode.replaceChild(img, shapes[i].shape);
|
|
11314
|
+
}
|
|
11315
|
+
imgs = root.querySelectorAll("img");
|
|
11316
|
+
i = 0;
|
|
11317
|
+
_b.label = 1;
|
|
11318
|
+
case 1:
|
|
11319
|
+
if (!(i < imgs.length)) return [3 /*break*/, 4];
|
|
11320
|
+
src = imgs[i].src || "";
|
|
11321
|
+
if (!src) return [3 /*break*/, 3];
|
|
11322
|
+
_a = imgs[i];
|
|
11323
|
+
return [4 /*yield*/, vditor.options.upload.base64ToLink(src)];
|
|
11324
|
+
case 2:
|
|
11325
|
+
_a.src = _b.sent();
|
|
11326
|
+
_b.label = 3;
|
|
11327
|
+
case 3:
|
|
11328
|
+
i++;
|
|
11329
|
+
return [3 /*break*/, 1];
|
|
11330
|
+
case 4: return [2 /*return*/];
|
|
11331
|
+
}
|
|
11332
|
+
});
|
|
11333
|
+
}); };
|
|
11334
|
+
var walk = function (el, fn) {
|
|
11335
|
+
var goNext = fn(el);
|
|
11336
|
+
if (goNext !== false)
|
|
11337
|
+
for (var i = 0; i < el.children.length; i++) {
|
|
11338
|
+
walk(el.children[i], fn);
|
|
11339
|
+
}
|
|
11340
|
+
};
|
|
11234
11341
|
var templateObject_1;
|
|
11235
11342
|
|
|
11236
11343
|
;// CONCATENATED MODULE: ./src/ts/ir/process.ts
|
|
@@ -15437,7 +15544,7 @@ var Vditor = /** @class */ (function (_super) {
|
|
|
15437
15544
|
var mergedOptions = getOptions.merge();
|
|
15438
15545
|
// 支持自定义国际化
|
|
15439
15546
|
if (!mergedOptions.i18n) {
|
|
15440
|
-
if (!["de_DE", "en_US", "
|
|
15547
|
+
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)) {
|
|
15441
15548
|
throw new Error("options.lang error, see https://ld246.com/article/1549638745630#options");
|
|
15442
15549
|
}
|
|
15443
15550
|
else {
|