vue-editify 0.0.19 → 0.0.21
Sign up to get free protection for your applications and to get access to all the features.
- package/examples/App.vue +6 -3
- package/lib/editify.es.js +111 -48
- package/lib/editify.umd.js +1 -1
- package/lib/style.css +1 -1
- package/package.json +2 -2
- package/src/Editify.vue +12 -8
- package/src/components/bussiness/InsertTable.vue +31 -0
- package/src/components/bussiness/Menu.vue +1 -5
- package/src/components/bussiness/Toolbar.vue +0 -1
- package/src/core/index.js +10 -10
- package/src/hljs/index.js +3 -1
- package/src/index.js +1 -1
package/examples/App.vue
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
<template>
|
2
2
|
<div style="padding: 100px 50px 50px 50px">
|
3
|
-
<editify
|
3
|
+
<editify v-model="value" placeholder="请输入正文内容..." allow-paste-html border @change="change" :menu="menuConfig" ref="editify"></editify>
|
4
4
|
</div>
|
5
5
|
</template>
|
6
6
|
<script>
|
@@ -11,10 +11,13 @@ export default {
|
|
11
11
|
return {
|
12
12
|
value: '<p><span>这是一个基于 </span><span data-editify-code="true">Vue3 + alex-editor</span><span> 构建的一套</span><span style="font-weight: bold;">精美UI样式</span><span>的</span><span style="font-weight: bold;">开箱即用</span><span>的</span><span style="color: #ec1a0a;">富文本编辑器</span></p>',
|
13
13
|
menuConfig: {
|
14
|
-
mode: 'fixed',
|
15
14
|
sequence: {
|
16
15
|
alert: 100
|
17
16
|
},
|
17
|
+
table: {
|
18
|
+
maxRows: 20,
|
19
|
+
maxColumns: 20
|
20
|
+
},
|
18
21
|
extends: {
|
19
22
|
alert: {
|
20
23
|
title: '自定义菜单按钮',
|
@@ -60,7 +63,7 @@ export default {
|
|
60
63
|
},
|
61
64
|
methods: {
|
62
65
|
change() {
|
63
|
-
|
66
|
+
console.log(this.$refs.editify.textValue)
|
64
67
|
},
|
65
68
|
operate(name, val) {
|
66
69
|
console.log('触发operate事件', name, val)
|
package/lib/editify.es.js
CHANGED
@@ -1914,7 +1914,6 @@ const queryHasValue = (obj$1$1, name, value) => {
|
|
1914
1914
|
const arr = obj$1.color.hex2rgb(ownValue);
|
1915
1915
|
ownValue = `rgb(${arr[0]},${arr[1]},${arr[2]})`;
|
1916
1916
|
}
|
1917
|
-
console.log(ownValue, value);
|
1918
1917
|
return ownValue == value;
|
1919
1918
|
};
|
1920
1919
|
const _AlexElement = class _AlexElement2 {
|
@@ -3297,7 +3296,7 @@ class AlexEditor {
|
|
3297
3296
|
const data2 = await blob.text();
|
3298
3297
|
if (data2) {
|
3299
3298
|
if (typeof this.customTextPaste == "function") {
|
3300
|
-
this.customTextPaste.apply(this, [data2]);
|
3299
|
+
await this.customTextPaste.apply(this, [data2]);
|
3301
3300
|
} else {
|
3302
3301
|
this.insertText(data2);
|
3303
3302
|
this.emit("pasteText", data2);
|
@@ -3310,7 +3309,7 @@ class AlexEditor {
|
|
3310
3309
|
return !el.isEmpty();
|
3311
3310
|
});
|
3312
3311
|
if (typeof this.customHtmlPaste == "function") {
|
3313
|
-
this.customHtmlPaste.apply(this, [elements, data2]);
|
3312
|
+
await this.customHtmlPaste.apply(this, [elements, data2]);
|
3314
3313
|
} else {
|
3315
3314
|
for (let i2 = 0; i2 < elements.length; i2++) {
|
3316
3315
|
this.formatElement(elements[i2]);
|
@@ -3327,7 +3326,7 @@ class AlexEditor {
|
|
3327
3326
|
if (blob.type.startsWith("image/")) {
|
3328
3327
|
const url2 = await blobToBase64(blob);
|
3329
3328
|
if (typeof this.customImagePaste == "function") {
|
3330
|
-
this.customImagePaste.apply(this, [url2]);
|
3329
|
+
await this.customImagePaste.apply(this, [url2]);
|
3331
3330
|
} else {
|
3332
3331
|
const image = new AlexElement(
|
3333
3332
|
"closed",
|
@@ -3344,7 +3343,7 @@ class AlexEditor {
|
|
3344
3343
|
} else if (blob.type.startsWith("video/")) {
|
3345
3344
|
const url2 = await blobToBase64(blob);
|
3346
3345
|
if (typeof this.customVideoPaste == "function") {
|
3347
|
-
this.customVideoPaste.apply(this, [url2]);
|
3346
|
+
await this.customVideoPaste.apply(this, [url2]);
|
3348
3347
|
} else {
|
3349
3348
|
const video = new AlexElement(
|
3350
3349
|
"closed",
|
@@ -3362,7 +3361,7 @@ class AlexEditor {
|
|
3362
3361
|
const data2 = await blob.text();
|
3363
3362
|
if (data2) {
|
3364
3363
|
if (typeof this.customTextPaste == "function") {
|
3365
|
-
this.customTextPaste.apply(this, [data2]);
|
3364
|
+
await this.customTextPaste.apply(this, [data2]);
|
3366
3365
|
} else {
|
3367
3366
|
this.insertText(data2);
|
3368
3367
|
this.emit("pasteText", data2);
|
@@ -8283,6 +8282,43 @@ function plaintext(hljs2) {
|
|
8283
8282
|
disableAutodetect: true
|
8284
8283
|
};
|
8285
8284
|
}
|
8285
|
+
function json(hljs2) {
|
8286
|
+
const ATTRIBUTE = {
|
8287
|
+
className: "attr",
|
8288
|
+
begin: /"(\\.|[^\\"\r\n])*"(?=\s*:)/,
|
8289
|
+
relevance: 1.01
|
8290
|
+
};
|
8291
|
+
const PUNCTUATION = {
|
8292
|
+
match: /[{}[\],:]/,
|
8293
|
+
className: "punctuation",
|
8294
|
+
relevance: 0
|
8295
|
+
};
|
8296
|
+
const LITERALS2 = [
|
8297
|
+
"true",
|
8298
|
+
"false",
|
8299
|
+
"null"
|
8300
|
+
];
|
8301
|
+
const LITERALS_MODE = {
|
8302
|
+
scope: "literal",
|
8303
|
+
beginKeywords: LITERALS2.join(" ")
|
8304
|
+
};
|
8305
|
+
return {
|
8306
|
+
name: "JSON",
|
8307
|
+
keywords: {
|
8308
|
+
literal: LITERALS2
|
8309
|
+
},
|
8310
|
+
contains: [
|
8311
|
+
ATTRIBUTE,
|
8312
|
+
PUNCTUATION,
|
8313
|
+
hljs2.QUOTE_STRING_MODE,
|
8314
|
+
LITERALS_MODE,
|
8315
|
+
hljs2.C_NUMBER_MODE,
|
8316
|
+
hljs2.C_LINE_COMMENT_MODE,
|
8317
|
+
hljs2.C_BLOCK_COMMENT_MODE
|
8318
|
+
],
|
8319
|
+
illegal: "\\S"
|
8320
|
+
};
|
8321
|
+
}
|
8286
8322
|
const IDENT_RE$1 = "[A-Za-z$_][0-9A-Za-z$_]*";
|
8287
8323
|
const KEYWORDS$1 = [
|
8288
8324
|
"as",
|
@@ -15169,6 +15205,7 @@ function python(hljs2) {
|
|
15169
15205
|
}
|
15170
15206
|
const hljs = "";
|
15171
15207
|
HighlightJS.registerLanguage("plaintext", plaintext);
|
15208
|
+
HighlightJS.registerLanguage("json", json);
|
15172
15209
|
HighlightJS.registerLanguage("javascript", javascript$1);
|
15173
15210
|
HighlightJS.registerLanguage("java", java);
|
15174
15211
|
HighlightJS.registerLanguage("typescript", typescript);
|
@@ -15197,7 +15234,7 @@ const getHljsHtml = function(code, language) {
|
|
15197
15234
|
}
|
15198
15235
|
return HighlightJS.highlightAuto(code).value;
|
15199
15236
|
};
|
15200
|
-
const languages = ["plaintext", "javascript", "html", "css", "less", "scss", "java", "markdown", "swift", "objectivec", "typescript", "dart", "nginx", "php", "python"];
|
15237
|
+
const languages = ["plaintext", "json", "javascript", "html", "css", "less", "scss", "java", "markdown", "swift", "objectivec", "typescript", "dart", "nginx", "php", "python"];
|
15201
15238
|
const pasteKeepData = {
|
15202
15239
|
//粘贴html时元素保留的样式(全部元素)
|
15203
15240
|
marks: {
|
@@ -15582,7 +15619,7 @@ const getButtonOptionsConfig = function(editTrans, editLocale) {
|
|
15582
15619
|
label: editTrans("h1"),
|
15583
15620
|
value: "h1",
|
15584
15621
|
style: {
|
15585
|
-
fontSize: "
|
15622
|
+
fontSize: "26px",
|
15586
15623
|
fontWeight: "bold"
|
15587
15624
|
}
|
15588
15625
|
},
|
@@ -15590,7 +15627,7 @@ const getButtonOptionsConfig = function(editTrans, editLocale) {
|
|
15590
15627
|
label: editTrans("h2"),
|
15591
15628
|
value: "h2",
|
15592
15629
|
style: {
|
15593
|
-
fontSize: "
|
15630
|
+
fontSize: "24px",
|
15594
15631
|
fontWeight: "bold"
|
15595
15632
|
}
|
15596
15633
|
},
|
@@ -15598,7 +15635,7 @@ const getButtonOptionsConfig = function(editTrans, editLocale) {
|
|
15598
15635
|
label: editTrans("h3"),
|
15599
15636
|
value: "h3",
|
15600
15637
|
style: {
|
15601
|
-
fontSize: "
|
15638
|
+
fontSize: "22px",
|
15602
15639
|
fontWeight: "bold"
|
15603
15640
|
}
|
15604
15641
|
},
|
@@ -15606,7 +15643,7 @@ const getButtonOptionsConfig = function(editTrans, editLocale) {
|
|
15606
15643
|
label: editTrans("h4"),
|
15607
15644
|
value: "h4",
|
15608
15645
|
style: {
|
15609
|
-
fontSize: "
|
15646
|
+
fontSize: "20px",
|
15610
15647
|
fontWeight: "bold"
|
15611
15648
|
}
|
15612
15649
|
},
|
@@ -15614,7 +15651,7 @@ const getButtonOptionsConfig = function(editTrans, editLocale) {
|
|
15614
15651
|
label: editTrans("h5"),
|
15615
15652
|
value: "h5",
|
15616
15653
|
style: {
|
15617
|
-
fontSize: "
|
15654
|
+
fontSize: "18px",
|
15618
15655
|
fontWeight: "bold"
|
15619
15656
|
}
|
15620
15657
|
},
|
@@ -15622,7 +15659,7 @@ const getButtonOptionsConfig = function(editTrans, editLocale) {
|
|
15622
15659
|
label: editTrans("h6"),
|
15623
15660
|
value: "h6",
|
15624
15661
|
style: {
|
15625
|
-
fontSize: "
|
15662
|
+
fontSize: "16px",
|
15626
15663
|
fontWeight: "bold"
|
15627
15664
|
}
|
15628
15665
|
}
|
@@ -15807,7 +15844,7 @@ const getToolbarConfig = function(editTrans, editLocale) {
|
|
15807
15844
|
//按钮默认显示的值
|
15808
15845
|
defaultValue: "p",
|
15809
15846
|
//浮层宽度
|
15810
|
-
width: editLocale == "en_US" ?
|
15847
|
+
width: editLocale == "en_US" ? 150 : 130,
|
15811
15848
|
//浮层最大高度
|
15812
15849
|
maxHeight: "",
|
15813
15850
|
//左侧边框是否显示
|
@@ -16013,7 +16050,7 @@ const getMenuConfig = function(editTrans, editLocale) {
|
|
16013
16050
|
use: true,
|
16014
16051
|
//是否使用工具提示
|
16015
16052
|
tooltip: true,
|
16016
|
-
//菜单栏显示模式,支持default/inner/fixed
|
16053
|
+
//菜单栏显示模式,支持default/inner/fixed
|
16017
16054
|
mode: "default",
|
16018
16055
|
//添加额外的按钮禁用判定,回调参数为name,this指向组件实例
|
16019
16056
|
extraDisabled: null,
|
@@ -16077,7 +16114,7 @@ const getMenuConfig = function(editTrans, editLocale) {
|
|
16077
16114
|
//按钮默认显示的值
|
16078
16115
|
defaultValue: "p",
|
16079
16116
|
//浮层宽度
|
16080
|
-
width: editLocale == "en_US" ?
|
16117
|
+
width: editLocale == "en_US" ? 150 : 130,
|
16081
16118
|
//浮层最大高度
|
16082
16119
|
maxHeight: "",
|
16083
16120
|
//左侧边框是否显示
|
@@ -16334,7 +16371,7 @@ const getMenuConfig = function(editTrans, editLocale) {
|
|
16334
16371
|
leftBorder: false,
|
16335
16372
|
//右侧边框是否显示
|
16336
16373
|
rightBorder: false,
|
16337
|
-
|
16374
|
+
//视频支持上传的类型,不区分大小写
|
16338
16375
|
accept: ["mp4", "avi", "mpg", "wmv", "mov", "rm", "swf", "flv"],
|
16339
16376
|
//是否多选视频
|
16340
16377
|
multiple: false,
|
@@ -17475,7 +17512,7 @@ const _hoisted_4$6 = {
|
|
17475
17512
|
key: 1,
|
17476
17513
|
class: "editify-button-options"
|
17477
17514
|
};
|
17478
|
-
const _hoisted_5$
|
17515
|
+
const _hoisted_5$6 = ["onClick"];
|
17479
17516
|
const _hoisted_6$5 = {
|
17480
17517
|
key: 1,
|
17481
17518
|
class: "editify-button-option-flex"
|
@@ -17554,7 +17591,7 @@ function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
|
|
17554
17591
|
}, null, 8, ["value"])) : createCommentVNode("", true),
|
17555
17592
|
createElementVNode("span", null, toDisplayString(item.label), 1)
|
17556
17593
|
]))
|
17557
|
-
], 14, _hoisted_5$
|
17594
|
+
], 14, _hoisted_5$6);
|
17558
17595
|
}), 256))
|
17559
17596
|
]))
|
17560
17597
|
], 4)
|
@@ -17778,7 +17815,7 @@ function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
|
|
17778
17815
|
]);
|
17779
17816
|
}
|
17780
17817
|
const Colors = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["render", _sfc_render$7], ["__scopeId", "data-v-dc6d3d68"]]);
|
17781
|
-
const
|
17818
|
+
const Toolbar_vue_vue_type_style_index_0_scoped_6b9cdbc6_lang = "";
|
17782
17819
|
const _sfc_main$6 = {
|
17783
17820
|
name: "Toolbar",
|
17784
17821
|
emits: ["update:modelValue"],
|
@@ -18548,7 +18585,7 @@ const _hoisted_1$6 = {
|
|
18548
18585
|
const _hoisted_2$5 = { class: "editify-toolbar-link-label" };
|
18549
18586
|
const _hoisted_3$5 = ["placeholder"];
|
18550
18587
|
const _hoisted_4$5 = { class: "editify-toolbar-link-footer" };
|
18551
|
-
const _hoisted_5$
|
18588
|
+
const _hoisted_5$5 = { class: "editify-toolbar-link-operations" };
|
18552
18589
|
const _hoisted_6$4 = ["href"];
|
18553
18590
|
function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
|
18554
18591
|
const _component_Checkbox = resolveComponent("Checkbox");
|
@@ -18598,7 +18635,7 @@ function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
|
|
18598
18635
|
color: _ctx.$parent.color,
|
18599
18636
|
size: 10
|
18600
18637
|
}, null, 8, ["onChange", "modelValue", "label", "color"]),
|
18601
|
-
createElementVNode("div", _hoisted_5$
|
18638
|
+
createElementVNode("div", _hoisted_5$5, [
|
18602
18639
|
createElementVNode("span", {
|
18603
18640
|
onClick: _cache[5] || (_cache[5] = (...args) => _ctx.$parent.removeLink && _ctx.$parent.removeLink(...args))
|
18604
18641
|
}, toDisplayString($options.$editTrans("removeLink")), 1),
|
@@ -19249,7 +19286,7 @@ function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
|
|
19249
19286
|
_: 1
|
19250
19287
|
}, 8, ["modelValue", "node", "onShow", "useRange"]);
|
19251
19288
|
}
|
19252
|
-
const Toolbar = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$6], ["__scopeId", "data-v-
|
19289
|
+
const Toolbar = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$6], ["__scopeId", "data-v-6b9cdbc6"]]);
|
19253
19290
|
const InsertLink_vue_vue_type_style_index_0_scoped_e6c3c2ee_lang = "";
|
19254
19291
|
const _sfc_main$5 = {
|
19255
19292
|
name: "InsertLink",
|
@@ -19309,7 +19346,7 @@ const _hoisted_1$5 = { class: "editify-link" };
|
|
19309
19346
|
const _hoisted_2$4 = { class: "editify-link-label" };
|
19310
19347
|
const _hoisted_3$4 = ["placeholder"];
|
19311
19348
|
const _hoisted_4$4 = ["placeholder"];
|
19312
|
-
const _hoisted_5$
|
19349
|
+
const _hoisted_5$4 = { class: "editify-link-footer" };
|
19313
19350
|
const _hoisted_6$3 = { class: "editify-link-operations" };
|
19314
19351
|
function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
|
19315
19352
|
const _component_Checkbox = resolveComponent("Checkbox");
|
@@ -19343,7 +19380,7 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
|
|
19343
19380
|
{ trim: true }
|
19344
19381
|
]
|
19345
19382
|
]),
|
19346
|
-
createElementVNode("div", _hoisted_5$
|
19383
|
+
createElementVNode("div", _hoisted_5$4, [
|
19347
19384
|
createVNode(_component_Checkbox, {
|
19348
19385
|
modelValue: $data.newOpen,
|
19349
19386
|
"onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => $data.newOpen = $event),
|
@@ -19514,7 +19551,7 @@ const _hoisted_3$3 = {
|
|
19514
19551
|
class: "editify-image-remote"
|
19515
19552
|
};
|
19516
19553
|
const _hoisted_4$3 = ["placeholder"];
|
19517
|
-
const _hoisted_5$
|
19554
|
+
const _hoisted_5$3 = {
|
19518
19555
|
key: 1,
|
19519
19556
|
class: "editify-image-upload"
|
19520
19557
|
};
|
@@ -19560,7 +19597,7 @@ function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
|
|
19560
19597
|
onClick: _cache[5] || (_cache[5] = (...args) => $options.insertRemoteImage && $options.insertRemoteImage(...args))
|
19561
19598
|
}, toDisplayString($options.$editTrans("insert")), 1)
|
19562
19599
|
], 4)
|
19563
|
-
])) : (openBlock(), createElementBlock("div", _hoisted_5$
|
19600
|
+
])) : (openBlock(), createElementBlock("div", _hoisted_5$3, [
|
19564
19601
|
createVNode(_component_Icon, { value: "upload" }),
|
19565
19602
|
createElementVNode("input", {
|
19566
19603
|
multiple: $props.multiple,
|
@@ -19725,7 +19762,7 @@ const _hoisted_3$2 = {
|
|
19725
19762
|
class: "editify-video-remote"
|
19726
19763
|
};
|
19727
19764
|
const _hoisted_4$2 = ["placeholder"];
|
19728
|
-
const _hoisted_5$
|
19765
|
+
const _hoisted_5$2 = {
|
19729
19766
|
key: 1,
|
19730
19767
|
class: "editify-video-upload"
|
19731
19768
|
};
|
@@ -19771,7 +19808,7 @@ function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
|
|
19771
19808
|
onClick: _cache[5] || (_cache[5] = (...args) => $options.insertRemoteVideo && $options.insertRemoteVideo(...args))
|
19772
19809
|
}, toDisplayString($options.$editTrans("insert")), 1)
|
19773
19810
|
], 4)
|
19774
|
-
])) : (openBlock(), createElementBlock("div", _hoisted_5$
|
19811
|
+
])) : (openBlock(), createElementBlock("div", _hoisted_5$2, [
|
19775
19812
|
createVNode(_component_Icon, { value: "upload" }),
|
19776
19813
|
createElementVNode("input", {
|
19777
19814
|
multiple: $props.multiple,
|
@@ -19783,7 +19820,7 @@ function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
|
|
19783
19820
|
]);
|
19784
19821
|
}
|
19785
19822
|
const InsertVideo = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$3], ["__scopeId", "data-v-cbc84525"]]);
|
19786
|
-
const
|
19823
|
+
const InsertTable_vue_vue_type_style_index_0_scoped_8b802b11_lang = "";
|
19787
19824
|
const _sfc_main$2 = {
|
19788
19825
|
name: "InsertTable",
|
19789
19826
|
emits: ["insert"],
|
@@ -19809,6 +19846,25 @@ const _sfc_main$2 = {
|
|
19809
19846
|
tableGrids: this.getTableGrids()
|
19810
19847
|
};
|
19811
19848
|
},
|
19849
|
+
computed: {
|
19850
|
+
//表格规格
|
19851
|
+
specification() {
|
19852
|
+
return this.tableGrids.flat().filter((item) => {
|
19853
|
+
return item.inside;
|
19854
|
+
}).sort((a, b) => {
|
19855
|
+
if (a.x > b.x && a.y > b.y) {
|
19856
|
+
return -1;
|
19857
|
+
}
|
19858
|
+
if (a.x > b.x) {
|
19859
|
+
return -1;
|
19860
|
+
}
|
19861
|
+
if (a.y > b.y) {
|
19862
|
+
return -1;
|
19863
|
+
}
|
19864
|
+
return 1;
|
19865
|
+
})[0];
|
19866
|
+
}
|
19867
|
+
},
|
19812
19868
|
methods: {
|
19813
19869
|
//确认创立表格
|
19814
19870
|
createTable(data2) {
|
@@ -19846,13 +19902,17 @@ const _sfc_main$2 = {
|
|
19846
19902
|
}
|
19847
19903
|
}
|
19848
19904
|
};
|
19849
|
-
const _withScopeId = (n) => (pushScopeId("data-v-
|
19905
|
+
const _withScopeId = (n) => (pushScopeId("data-v-8b802b11"), n = n(), popScopeId(), n);
|
19850
19906
|
const _hoisted_1$2 = { class: "editify-table" };
|
19851
19907
|
const _hoisted_2$1 = ["onMouseenter", "onClick"];
|
19852
19908
|
const _hoisted_3$1 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElementVNode("span", null, null, -1));
|
19853
19909
|
const _hoisted_4$1 = [
|
19854
19910
|
_hoisted_3$1
|
19855
19911
|
];
|
19912
|
+
const _hoisted_5$1 = {
|
19913
|
+
key: 0,
|
19914
|
+
class: "editify-table-footer"
|
19915
|
+
};
|
19856
19916
|
function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
|
19857
19917
|
return openBlock(), createElementBlock("div", _hoisted_1$2, [
|
19858
19918
|
createElementVNode("table", null, [
|
@@ -19867,11 +19927,12 @@ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
|
|
19867
19927
|
}), 256))
|
19868
19928
|
]);
|
19869
19929
|
}), 256))
|
19870
|
-
])
|
19930
|
+
]),
|
19931
|
+
$options.specification ? (openBlock(), createElementBlock("div", _hoisted_5$1, toDisplayString($options.specification.x) + " x " + toDisplayString($options.specification.y), 1)) : createCommentVNode("", true)
|
19871
19932
|
]);
|
19872
19933
|
}
|
19873
|
-
const InsertTable = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$2], ["__scopeId", "data-v-
|
19874
|
-
const
|
19934
|
+
const InsertTable = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$2], ["__scopeId", "data-v-8b802b11"]]);
|
19935
|
+
const Menu_vue_vue_type_style_index_0_scoped_3fc2d533_lang = "";
|
19875
19936
|
const _sfc_main$1 = {
|
19876
19937
|
name: "Menu",
|
19877
19938
|
props: {
|
@@ -20942,8 +21003,6 @@ const _sfc_main$1 = {
|
|
20942
21003
|
if (!this.$parent.isSourceView) {
|
20943
21004
|
this.$parent.editor.rangeRender();
|
20944
21005
|
}
|
20945
|
-
} else {
|
20946
|
-
this.$parent.$emit("menu-operate", name, val);
|
20947
21006
|
}
|
20948
21007
|
},
|
20949
21008
|
//处理光标更新
|
@@ -21091,8 +21150,8 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
21091
21150
|
}), 256))
|
21092
21151
|
], 14, _hoisted_1$1);
|
21093
21152
|
}
|
21094
|
-
const Menu = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__scopeId", "data-v-
|
21095
|
-
const
|
21153
|
+
const Menu = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__scopeId", "data-v-3fc2d533"]]);
|
21154
|
+
const Editify_vue_vue_type_style_index_0_scoped_e9c5b94e_lang = "";
|
21096
21155
|
const _sfc_main = {
|
21097
21156
|
name: "editify",
|
21098
21157
|
props: { ...editorProps },
|
@@ -22243,7 +22302,7 @@ const _sfc_main = {
|
|
22243
22302
|
this.editor.rangeRender();
|
22244
22303
|
},
|
22245
22304
|
//api:插入图片
|
22246
|
-
insertImage(url2) {
|
22305
|
+
insertImage(url2, isRender = true) {
|
22247
22306
|
if (this.disabled) {
|
22248
22307
|
return;
|
22249
22308
|
}
|
@@ -22263,12 +22322,14 @@ const _sfc_main = {
|
|
22263
22322
|
null
|
22264
22323
|
);
|
22265
22324
|
this.editor.insertElement(image);
|
22266
|
-
|
22267
|
-
|
22268
|
-
|
22325
|
+
if (isRender) {
|
22326
|
+
this.editor.formatElementStack();
|
22327
|
+
this.editor.domRender();
|
22328
|
+
this.editor.rangeRender();
|
22329
|
+
}
|
22269
22330
|
},
|
22270
22331
|
//api:插入视频
|
22271
|
-
insertVideo(url2) {
|
22332
|
+
insertVideo(url2, isRender = true) {
|
22272
22333
|
if (this.disabled) {
|
22273
22334
|
return;
|
22274
22335
|
}
|
@@ -22294,9 +22355,11 @@ const _sfc_main = {
|
|
22294
22355
|
this.editor.addElementBefore(leftSpace, video);
|
22295
22356
|
this.editor.range.anchor.moveToEnd(rightSpace);
|
22296
22357
|
this.editor.range.focus.moveToEnd(rightSpace);
|
22297
|
-
|
22298
|
-
|
22299
|
-
|
22358
|
+
if (isRender) {
|
22359
|
+
this.editor.formatElementStack();
|
22360
|
+
this.editor.domRender();
|
22361
|
+
this.editor.rangeRender();
|
22362
|
+
}
|
22300
22363
|
},
|
22301
22364
|
//api:选区是否含有代码块样式
|
22302
22365
|
hasPreStyle() {
|
@@ -22685,7 +22748,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
22685
22748
|
])) : createCommentVNode("", true)
|
22686
22749
|
]);
|
22687
22750
|
}
|
22688
|
-
const Editify = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-
|
22751
|
+
const Editify = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-e9c5b94e"]]);
|
22689
22752
|
const iconfont = "";
|
22690
22753
|
const en_US = {
|
22691
22754
|
textWrapUp: "Up feed",
|
@@ -22864,7 +22927,7 @@ const i18n = (locale) => {
|
|
22864
22927
|
return translations[locale][key];
|
22865
22928
|
};
|
22866
22929
|
};
|
22867
|
-
const version = "0.0.
|
22930
|
+
const version = "0.0.21";
|
22868
22931
|
const install = (app, props) => {
|
22869
22932
|
const locale = (props ? props.locale : "zh_CN") || "zh_CN";
|
22870
22933
|
app.provide("$editTrans", i18n(locale));
|