vue-editify 0.0.27 → 0.0.29
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +3 -3
- package/examples/App.vue +90 -90
- package/examples/main.js +4 -4
- package/lib/editify.es.js +104 -71
- package/lib/editify.umd.js +1 -1
- package/lib/style.css +1 -1
- package/package.json +37 -37
- package/src/Editify.vue +2004 -2004
- package/src/components/base/Button.vue +440 -440
- package/src/components/base/Checkbox.vue +196 -196
- package/src/components/base/Icon.vue +31 -31
- package/src/components/base/Layer.vue +712 -712
- package/src/components/base/Tooltip.vue +82 -82
- package/src/components/base/Triangle.vue +159 -159
- package/src/components/bussiness/Colors.vue +138 -138
- package/src/components/bussiness/InsertImage.vue +316 -316
- package/src/components/bussiness/InsertLink.vue +136 -136
- package/src/components/bussiness/InsertTable.vue +157 -157
- package/src/components/bussiness/InsertVideo.vue +316 -316
- package/src/components/bussiness/Menu.vue +1458 -1458
- package/src/components/bussiness/Toolbar.vue +1122 -1122
- package/src/core/index.js +1263 -1263
- package/src/css/base.less +30 -30
- package/src/css/hljs.less +54 -54
- package/src/hljs/index.js +62 -62
- package/src/icon/iconfont.css +211 -211
- package/src/index.js +24 -24
- package/src/locale/en_US.js +84 -84
- package/src/locale/index.js +14 -14
- package/src/locale/zh_CN.js +84 -84
package/README.md
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
#### 基于 Vue3 的 web 富文本编辑器,提供丰富的功能和精美的 UI
|
2
|
-
|
3
|
-
> 具体使用方法请参阅:[editify](https://www.ling0523.cn/editify/start/)
|
1
|
+
#### 基于 Vue3 的 web 富文本编辑器,提供丰富的功能和精美的 UI
|
2
|
+
|
3
|
+
> 具体使用方法请参阅:[editify](https://www.ling0523.cn/editify/start/)
|
package/examples/App.vue
CHANGED
@@ -1,90 +1,90 @@
|
|
1
|
-
<template>
|
2
|
-
<div style="padding: 100px 50px 50px 50px">
|
3
|
-
<editify v-model="value" placeholder="请输入正文内容..." allow-paste-html border @change="change" :menu="menuConfig" ref="editify"></editify>
|
4
|
-
</div>
|
5
|
-
</template>
|
6
|
-
<script>
|
7
|
-
import { h } from 'vue'
|
8
|
-
export default {
|
9
|
-
name: 'App',
|
10
|
-
data() {
|
11
|
-
return {
|
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
|
-
menuConfig: {
|
14
|
-
sequence: {
|
15
|
-
alert: 100
|
16
|
-
},
|
17
|
-
table: {
|
18
|
-
maxRows: 20,
|
19
|
-
maxColumns: 20
|
20
|
-
},
|
21
|
-
sourceView: {
|
22
|
-
show: true
|
23
|
-
},
|
24
|
-
extends: {
|
25
|
-
alert: {
|
26
|
-
title: '自定义菜单按钮',
|
27
|
-
leftBorder: true,
|
28
|
-
rightBorder: false,
|
29
|
-
disabled: false,
|
30
|
-
active: false,
|
31
|
-
type: 'select',
|
32
|
-
options: [
|
33
|
-
{
|
34
|
-
label: '自定义功能1',
|
35
|
-
value: '1',
|
36
|
-
style: {
|
37
|
-
color: '#f30'
|
38
|
-
}
|
39
|
-
},
|
40
|
-
{
|
41
|
-
label: '自定义功能2',
|
42
|
-
value: '2',
|
43
|
-
style: {
|
44
|
-
fontWeight: 'bold'
|
45
|
-
}
|
46
|
-
},
|
47
|
-
{
|
48
|
-
label: '自定义功能3',
|
49
|
-
value: '3'
|
50
|
-
}
|
51
|
-
],
|
52
|
-
onOperate: function (name, val, instance) {
|
53
|
-
console.log(name, val, instance)
|
54
|
-
},
|
55
|
-
default: () => h('span', {}, '自定义菜单')
|
56
|
-
}
|
57
|
-
}
|
58
|
-
},
|
59
|
-
btn: null
|
60
|
-
}
|
61
|
-
},
|
62
|
-
mounted() {
|
63
|
-
// setTimeout(() => {
|
64
|
-
// this.value = '<p><br></p>'
|
65
|
-
// }, 3000)
|
66
|
-
},
|
67
|
-
methods: {
|
68
|
-
change() {
|
69
|
-
console.log(this.$refs.editify.textValue)
|
70
|
-
},
|
71
|
-
operate(name, val) {
|
72
|
-
console.log('触发operate事件', name, val)
|
73
|
-
}
|
74
|
-
}
|
75
|
-
}
|
76
|
-
</script>
|
77
|
-
<style lang="less">
|
78
|
-
html,
|
79
|
-
body {
|
80
|
-
height: 100%;
|
81
|
-
}
|
82
|
-
body {
|
83
|
-
margin: 0;
|
84
|
-
}
|
85
|
-
|
86
|
-
#app {
|
87
|
-
height: 100%;
|
88
|
-
overflow: auto;
|
89
|
-
}
|
90
|
-
</style>
|
1
|
+
<template>
|
2
|
+
<div style="padding: 100px 50px 50px 50px">
|
3
|
+
<editify v-model="value" placeholder="请输入正文内容..." allow-paste-html border @change="change" :menu="menuConfig" ref="editify"></editify>
|
4
|
+
</div>
|
5
|
+
</template>
|
6
|
+
<script>
|
7
|
+
import { h } from 'vue'
|
8
|
+
export default {
|
9
|
+
name: 'App',
|
10
|
+
data() {
|
11
|
+
return {
|
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
|
+
menuConfig: {
|
14
|
+
sequence: {
|
15
|
+
alert: 100
|
16
|
+
},
|
17
|
+
table: {
|
18
|
+
maxRows: 20,
|
19
|
+
maxColumns: 20
|
20
|
+
},
|
21
|
+
sourceView: {
|
22
|
+
show: true
|
23
|
+
},
|
24
|
+
extends: {
|
25
|
+
alert: {
|
26
|
+
title: '自定义菜单按钮',
|
27
|
+
leftBorder: true,
|
28
|
+
rightBorder: false,
|
29
|
+
disabled: false,
|
30
|
+
active: false,
|
31
|
+
type: 'select',
|
32
|
+
options: [
|
33
|
+
{
|
34
|
+
label: '自定义功能1',
|
35
|
+
value: '1',
|
36
|
+
style: {
|
37
|
+
color: '#f30'
|
38
|
+
}
|
39
|
+
},
|
40
|
+
{
|
41
|
+
label: '自定义功能2',
|
42
|
+
value: '2',
|
43
|
+
style: {
|
44
|
+
fontWeight: 'bold'
|
45
|
+
}
|
46
|
+
},
|
47
|
+
{
|
48
|
+
label: '自定义功能3',
|
49
|
+
value: '3'
|
50
|
+
}
|
51
|
+
],
|
52
|
+
onOperate: function (name, val, instance) {
|
53
|
+
console.log(name, val, instance)
|
54
|
+
},
|
55
|
+
default: () => h('span', {}, '自定义菜单')
|
56
|
+
}
|
57
|
+
}
|
58
|
+
},
|
59
|
+
btn: null
|
60
|
+
}
|
61
|
+
},
|
62
|
+
mounted() {
|
63
|
+
// setTimeout(() => {
|
64
|
+
// this.value = '<p><br></p>'
|
65
|
+
// }, 3000)
|
66
|
+
},
|
67
|
+
methods: {
|
68
|
+
change() {
|
69
|
+
console.log(this.$refs.editify.textValue)
|
70
|
+
},
|
71
|
+
operate(name, val) {
|
72
|
+
console.log('触发operate事件', name, val)
|
73
|
+
}
|
74
|
+
}
|
75
|
+
}
|
76
|
+
</script>
|
77
|
+
<style lang="less">
|
78
|
+
html,
|
79
|
+
body {
|
80
|
+
height: 100%;
|
81
|
+
}
|
82
|
+
body {
|
83
|
+
margin: 0;
|
84
|
+
}
|
85
|
+
|
86
|
+
#app {
|
87
|
+
height: 100%;
|
88
|
+
overflow: auto;
|
89
|
+
}
|
90
|
+
</style>
|
package/examples/main.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import { createApp } from 'vue'
|
2
|
-
import App from './App.vue'
|
3
|
-
import Editify from '../src'
|
4
|
-
createApp(App).use(Editify, { locale: 'zh_CN' }).mount('#app')
|
1
|
+
import { createApp } from 'vue'
|
2
|
+
import App from './App.vue'
|
3
|
+
import Editify from '../src'
|
4
|
+
createApp(App).use(Editify, { locale: 'zh_CN' }).mount('#app')
|
package/lib/editify.es.js
CHANGED
@@ -1916,7 +1916,7 @@ const queryHasValue = (obj$1$1, name, value) => {
|
|
1916
1916
|
}
|
1917
1917
|
return ownValue == value;
|
1918
1918
|
};
|
1919
|
-
const _AlexElement = class {
|
1919
|
+
const _AlexElement = class _AlexElement2 {
|
1920
1920
|
constructor(type, parsedom, marks, styles, textContent) {
|
1921
1921
|
this.key = createUniqueKey();
|
1922
1922
|
this.type = type;
|
@@ -2005,7 +2005,7 @@ const _AlexElement = class {
|
|
2005
2005
|
* 比较当前元素和另一个元素是否相等
|
2006
2006
|
*/
|
2007
2007
|
isEqual(element2) {
|
2008
|
-
if (!
|
2008
|
+
if (!_AlexElement2.isElement(element2)) {
|
2009
2009
|
return false;
|
2010
2010
|
}
|
2011
2011
|
return this.key == element2.key;
|
@@ -2107,7 +2107,7 @@ const _AlexElement = class {
|
|
2107
2107
|
if (typeof deep != "boolean") {
|
2108
2108
|
throw new Error("The parameter must be a Boolean");
|
2109
2109
|
}
|
2110
|
-
let el = new
|
2110
|
+
let el = new _AlexElement2(this.type, this.parsedom, cloneData(this.marks), cloneData(this.styles), this.textContent);
|
2111
2111
|
el.behavior = this.behavior;
|
2112
2112
|
if (deep && this.hasChildren()) {
|
2113
2113
|
this.children.forEach((child) => {
|
@@ -2131,7 +2131,7 @@ const _AlexElement = class {
|
|
2131
2131
|
}
|
2132
2132
|
let element2 = this.clone();
|
2133
2133
|
this.type = "block";
|
2134
|
-
this.parsedom =
|
2134
|
+
this.parsedom = _AlexElement2.BLOCK_NODE;
|
2135
2135
|
this.marks = null;
|
2136
2136
|
this.styles = null;
|
2137
2137
|
this.textContent = null;
|
@@ -2231,7 +2231,7 @@ const _AlexElement = class {
|
|
2231
2231
|
__render() {
|
2232
2232
|
let el = null;
|
2233
2233
|
if (this.isText()) {
|
2234
|
-
el = document.createElement(
|
2234
|
+
el = document.createElement(_AlexElement2.TEXT_NODE);
|
2235
2235
|
const text2 = document.createTextNode(this.textContent);
|
2236
2236
|
el.appendChild(text2);
|
2237
2237
|
} else {
|
@@ -2262,7 +2262,7 @@ const _AlexElement = class {
|
|
2262
2262
|
* 完全复制元素,包括key也复制
|
2263
2263
|
*/
|
2264
2264
|
__fullClone() {
|
2265
|
-
let el = new
|
2265
|
+
let el = new _AlexElement2(this.type, this.parsedom, cloneData(this.marks), cloneData(this.styles), this.textContent);
|
2266
2266
|
el.behavior = this.behavior;
|
2267
2267
|
el.key = this.key;
|
2268
2268
|
el.elm = this.elm;
|
@@ -2283,7 +2283,7 @@ const _AlexElement = class {
|
|
2283
2283
|
* 判断参数是否为AlexElement元素
|
2284
2284
|
*/
|
2285
2285
|
static isElement(val) {
|
2286
|
-
return val instanceof
|
2286
|
+
return val instanceof _AlexElement2;
|
2287
2287
|
}
|
2288
2288
|
/**
|
2289
2289
|
* 扁平化处理元素数组
|
@@ -2308,13 +2308,13 @@ const _AlexElement = class {
|
|
2308
2308
|
* 创建一个空白文本元素并返回
|
2309
2309
|
*/
|
2310
2310
|
static getSpaceElement() {
|
2311
|
-
return new
|
2311
|
+
return new _AlexElement2("text", null, null, null, "\uFEFF");
|
2312
2312
|
}
|
2313
2313
|
};
|
2314
|
+
__publicField(_AlexElement, "BLOCK_NODE", "p");
|
2315
|
+
__publicField(_AlexElement, "TEXT_NODE", "span");
|
2316
|
+
__publicField(_AlexElement, "VOID_NODES", ["colgroup", "col"]);
|
2314
2317
|
let AlexElement = _AlexElement;
|
2315
|
-
__publicField(AlexElement, "BLOCK_NODE", "p");
|
2316
|
-
__publicField(AlexElement, "TEXT_NODE", "span");
|
2317
|
-
__publicField(AlexElement, "VOID_NODES", ["colgroup", "col"]);
|
2318
2318
|
class AlexRange {
|
2319
2319
|
constructor(anchor, focus) {
|
2320
2320
|
this.anchor = anchor;
|
@@ -2969,9 +2969,11 @@ const emptyDefaultBehaviorInblock = function(element2) {
|
|
2969
2969
|
}
|
2970
2970
|
};
|
2971
2971
|
const setRangeInVisible = function() {
|
2972
|
-
|
2973
|
-
|
2974
|
-
|
2972
|
+
var _a;
|
2973
|
+
const fn = async (root) => {
|
2974
|
+
const scrollHeight = obj$1.element.getScrollHeight(root);
|
2975
|
+
const scrollWidth = obj$1.element.getScrollWidth(root);
|
2976
|
+
if (root.clientHeight < scrollHeight || root.clientWidth < scrollWidth) {
|
2975
2977
|
const selection = window.getSelection();
|
2976
2978
|
if (selection.rangeCount == 0) {
|
2977
2979
|
return;
|
@@ -2983,36 +2985,65 @@ const setRangeInVisible = function() {
|
|
2983
2985
|
target = this.range.focus.element.elm;
|
2984
2986
|
}
|
2985
2987
|
const childRect = target.getBoundingClientRect();
|
2986
|
-
const parentRect =
|
2987
|
-
if (
|
2988
|
-
|
2989
|
-
|
2990
|
-
|
2991
|
-
|
2992
|
-
|
2993
|
-
|
2994
|
-
|
2995
|
-
|
2996
|
-
|
2997
|
-
|
2998
|
-
|
2999
|
-
|
3000
|
-
|
3001
|
-
|
3002
|
-
|
3003
|
-
|
3004
|
-
|
3005
|
-
|
3006
|
-
|
3007
|
-
|
3008
|
-
|
2988
|
+
const parentRect = root.getBoundingClientRect();
|
2989
|
+
if (root.clientHeight < scrollHeight) {
|
2990
|
+
if (childRect.top < parentRect.top) {
|
2991
|
+
await obj$1.element.setScrollTop({
|
2992
|
+
el: root,
|
2993
|
+
number: 0
|
2994
|
+
});
|
2995
|
+
const tempChildRect = target.getBoundingClientRect();
|
2996
|
+
const tempParentRect = root.getBoundingClientRect();
|
2997
|
+
obj$1.element.setScrollTop({
|
2998
|
+
el: root,
|
2999
|
+
number: tempChildRect.top - tempParentRect.top - tempChildRect.height * 2
|
3000
|
+
});
|
3001
|
+
} else if (childRect.bottom > parentRect.bottom) {
|
3002
|
+
await obj$1.element.setScrollTop({
|
3003
|
+
el: root,
|
3004
|
+
number: 0
|
3005
|
+
});
|
3006
|
+
const tempChildRect = target.getBoundingClientRect();
|
3007
|
+
const tempParentRect = root.getBoundingClientRect();
|
3008
|
+
obj$1.element.setScrollTop({
|
3009
|
+
el: root,
|
3010
|
+
number: tempChildRect.bottom - tempParentRect.bottom + tempChildRect.height * 2
|
3011
|
+
});
|
3012
|
+
}
|
3013
|
+
}
|
3014
|
+
if (root.clientWidth < scrollWidth) {
|
3015
|
+
if (childRect.left < parentRect.left) {
|
3016
|
+
await obj$1.element.setScrollLeft({
|
3017
|
+
el: root,
|
3018
|
+
number: 0
|
3019
|
+
});
|
3020
|
+
const tempChildRect = target.getBoundingClientRect();
|
3021
|
+
const tempParentRect = root.getBoundingClientRect();
|
3022
|
+
obj$1.element.setScrollLeft({
|
3023
|
+
el: root,
|
3024
|
+
number: tempChildRect.left - tempParentRect.left - tempChildRect.width * 2 - (tempChildRect.width * 2 > 20 ? 0 : 20)
|
3025
|
+
});
|
3026
|
+
} else if (childRect.right > parentRect.right) {
|
3027
|
+
await obj$1.element.setScrollLeft({
|
3028
|
+
el: root,
|
3029
|
+
number: 0
|
3030
|
+
});
|
3031
|
+
const tempChildRect = target.getBoundingClientRect();
|
3032
|
+
const tempParentRect = root.getBoundingClientRect();
|
3033
|
+
obj$1.element.setScrollLeft({
|
3034
|
+
el: root,
|
3035
|
+
number: tempChildRect.right - tempParentRect.right + tempChildRect.width * 2 + (tempChildRect.width * 2 > 20 ? 0 : 20)
|
3036
|
+
});
|
3037
|
+
}
|
3009
3038
|
}
|
3010
3039
|
}
|
3011
3040
|
};
|
3012
|
-
|
3013
|
-
|
3014
|
-
|
3015
|
-
|
3041
|
+
if ((_a = this.range) == null ? void 0 : _a.focus.element.elm) {
|
3042
|
+
let root = this.range.focus.element.elm;
|
3043
|
+
while (obj$1.element.isElement(root) && root != document.documentElement) {
|
3044
|
+
fn(root);
|
3045
|
+
root = root.parentNode;
|
3046
|
+
}
|
3016
3047
|
}
|
3017
3048
|
};
|
3018
3049
|
const handleStackEmpty = function() {
|
@@ -3089,6 +3120,7 @@ const handleSelectionChange = function() {
|
|
3089
3120
|
} else {
|
3090
3121
|
this.range = new AlexRange(anchor, focus);
|
3091
3122
|
}
|
3123
|
+
this.history.updateCurrentRange(this.range);
|
3092
3124
|
this.emit("rangeUpdate", this.range);
|
3093
3125
|
}
|
3094
3126
|
}
|
@@ -4124,6 +4156,7 @@ class AlexEditor {
|
|
4124
4156
|
setTimeout(() => {
|
4125
4157
|
setRangeInVisible.apply(this);
|
4126
4158
|
this.__innerSelectionChange = false;
|
4159
|
+
this.history.updateCurrentRange(this.range);
|
4127
4160
|
this.emit("rangeUpdate", this.range);
|
4128
4161
|
}, 0);
|
4129
4162
|
}
|
@@ -16419,7 +16452,7 @@ const getMenuConfig = function(editTrans, editLocale) {
|
|
16419
16452
|
extends: {}
|
16420
16453
|
};
|
16421
16454
|
};
|
16422
|
-
const
|
16455
|
+
const Triangle_vue_vue_type_style_index_0_scoped_70b6f344_lang = "";
|
16423
16456
|
const _export_sfc = (sfc, props) => {
|
16424
16457
|
const target = sfc.__vccOpts || sfc;
|
16425
16458
|
for (const [key, val] of props) {
|
@@ -16509,8 +16542,8 @@ function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {
|
|
16509
16542
|
}, null, 4)
|
16510
16543
|
], 12, _hoisted_1$c);
|
16511
16544
|
}
|
16512
|
-
const Triangle = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["render", _sfc_render$d], ["__scopeId", "data-v-
|
16513
|
-
const
|
16545
|
+
const Triangle = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["render", _sfc_render$d], ["__scopeId", "data-v-70b6f344"]]);
|
16546
|
+
const Layer_vue_vue_type_style_index_0_scoped_503cf323_lang = "";
|
16514
16547
|
const _sfc_main$c = {
|
16515
16548
|
name: "Layer",
|
16516
16549
|
emits: ["update:modelValue", "show", "shown", "hidden"],
|
@@ -17139,8 +17172,8 @@ function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
|
|
17139
17172
|
_: 3
|
17140
17173
|
}, 8, ["name", "onEnter", "onAfterEnter", "onAfterLeave"]);
|
17141
17174
|
}
|
17142
|
-
const Layer = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["render", _sfc_render$c], ["__scopeId", "data-v-
|
17143
|
-
const
|
17175
|
+
const Layer = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["render", _sfc_render$c], ["__scopeId", "data-v-503cf323"]]);
|
17176
|
+
const Tooltip_vue_vue_type_style_index_0_scoped_5293a020_lang = "";
|
17144
17177
|
const _sfc_main$b = {
|
17145
17178
|
name: "Tooltip",
|
17146
17179
|
props: {
|
@@ -17219,8 +17252,8 @@ function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
|
|
17219
17252
|
}, 8, ["modelValue", "node"])
|
17220
17253
|
], 34);
|
17221
17254
|
}
|
17222
|
-
const Tooltip = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["render", _sfc_render$b], ["__scopeId", "data-v-
|
17223
|
-
const
|
17255
|
+
const Tooltip = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["render", _sfc_render$b], ["__scopeId", "data-v-5293a020"]]);
|
17256
|
+
const Icon_vue_vue_type_style_index_0_scoped_5ed6cd4d_lang = "";
|
17224
17257
|
const _sfc_main$a = {
|
17225
17258
|
name: "Icon",
|
17226
17259
|
props: {
|
@@ -17236,8 +17269,8 @@ function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
|
|
17236
17269
|
class: normalizeClass(["editify-icon", "editify-icon-" + $props.value])
|
17237
17270
|
}, null, 2);
|
17238
17271
|
}
|
17239
|
-
const Icon = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["render", _sfc_render$a], ["__scopeId", "data-v-
|
17240
|
-
const
|
17272
|
+
const Icon = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["render", _sfc_render$a], ["__scopeId", "data-v-5ed6cd4d"]]);
|
17273
|
+
const Button_vue_vue_type_style_index_0_scoped_f88c4b88_lang = "";
|
17241
17274
|
const _sfc_main$9 = {
|
17242
17275
|
name: "Button",
|
17243
17276
|
emits: ["operate", "layerShow", "layerShown", "layerHidden"],
|
@@ -17601,8 +17634,8 @@ function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
|
|
17601
17634
|
], 2)
|
17602
17635
|
]);
|
17603
17636
|
}
|
17604
|
-
const Button = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["render", _sfc_render$9], ["__scopeId", "data-v-
|
17605
|
-
const
|
17637
|
+
const Button = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["render", _sfc_render$9], ["__scopeId", "data-v-f88c4b88"]]);
|
17638
|
+
const Checkbox_vue_vue_type_style_index_0_scoped_50cd9e6c_lang = "";
|
17606
17639
|
const _sfc_main$8 = {
|
17607
17640
|
name: "Checkbox",
|
17608
17641
|
emits: ["update:modelValue", "change"],
|
@@ -17731,8 +17764,8 @@ function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
|
|
17731
17764
|
}, null, 8, _hoisted_3$7)) : createCommentVNode("", true)
|
17732
17765
|
], 2);
|
17733
17766
|
}
|
17734
|
-
const Checkbox = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["render", _sfc_render$8], ["__scopeId", "data-v-
|
17735
|
-
const
|
17767
|
+
const Checkbox = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["render", _sfc_render$8], ["__scopeId", "data-v-50cd9e6c"]]);
|
17768
|
+
const Colors_vue_vue_type_style_index_0_scoped_dc6d3d68_lang = "";
|
17736
17769
|
const _sfc_main$7 = {
|
17737
17770
|
name: "Colors",
|
17738
17771
|
emits: ["change"],
|
@@ -17814,8 +17847,8 @@ function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
|
|
17814
17847
|
])
|
17815
17848
|
]);
|
17816
17849
|
}
|
17817
|
-
const Colors = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["render", _sfc_render$7], ["__scopeId", "data-v-
|
17818
|
-
const
|
17850
|
+
const Colors = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["render", _sfc_render$7], ["__scopeId", "data-v-dc6d3d68"]]);
|
17851
|
+
const Toolbar_vue_vue_type_style_index_0_scoped_6b9cdbc6_lang = "";
|
17819
17852
|
const _sfc_main$6 = {
|
17820
17853
|
name: "Toolbar",
|
17821
17854
|
emits: ["update:modelValue"],
|
@@ -19286,8 +19319,8 @@ function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
|
|
19286
19319
|
_: 1
|
19287
19320
|
}, 8, ["modelValue", "node", "onShow", "useRange"]);
|
19288
19321
|
}
|
19289
|
-
const Toolbar = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$6], ["__scopeId", "data-v-
|
19290
|
-
const
|
19322
|
+
const Toolbar = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$6], ["__scopeId", "data-v-6b9cdbc6"]]);
|
19323
|
+
const InsertLink_vue_vue_type_style_index_0_scoped_e6c3c2ee_lang = "";
|
19291
19324
|
const _sfc_main$5 = {
|
19292
19325
|
name: "InsertLink",
|
19293
19326
|
emits: ["insert"],
|
@@ -19397,8 +19430,8 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
|
|
19397
19430
|
])
|
19398
19431
|
]);
|
19399
19432
|
}
|
19400
|
-
const InsertLink = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["render", _sfc_render$5], ["__scopeId", "data-v-
|
19401
|
-
const
|
19433
|
+
const InsertLink = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["render", _sfc_render$5], ["__scopeId", "data-v-e6c3c2ee"]]);
|
19434
|
+
const InsertImage_vue_vue_type_style_index_0_scoped_d4e3209e_lang = "";
|
19402
19435
|
const _sfc_main$4 = {
|
19403
19436
|
name: "InsertImage",
|
19404
19437
|
emits: ["change", "insert"],
|
@@ -19608,8 +19641,8 @@ function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
|
|
19608
19641
|
]))
|
19609
19642
|
]);
|
19610
19643
|
}
|
19611
|
-
const InsertImage = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$4], ["__scopeId", "data-v-
|
19612
|
-
const
|
19644
|
+
const InsertImage = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$4], ["__scopeId", "data-v-d4e3209e"]]);
|
19645
|
+
const InsertVideo_vue_vue_type_style_index_0_scoped_cbc84525_lang = "";
|
19613
19646
|
const _sfc_main$3 = {
|
19614
19647
|
name: "InsertVideo",
|
19615
19648
|
emits: ["change", "insert"],
|
@@ -19819,8 +19852,8 @@ function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
|
|
19819
19852
|
]))
|
19820
19853
|
]);
|
19821
19854
|
}
|
19822
|
-
const InsertVideo = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$3], ["__scopeId", "data-v-
|
19823
|
-
const
|
19855
|
+
const InsertVideo = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$3], ["__scopeId", "data-v-cbc84525"]]);
|
19856
|
+
const InsertTable_vue_vue_type_style_index_0_scoped_227ede65_lang = "";
|
19824
19857
|
const _sfc_main$2 = {
|
19825
19858
|
name: "InsertTable",
|
19826
19859
|
emits: ["insert"],
|
@@ -19903,7 +19936,7 @@ const _sfc_main$2 = {
|
|
19903
19936
|
}
|
19904
19937
|
}
|
19905
19938
|
};
|
19906
|
-
const _withScopeId = (n) => (pushScopeId("data-v-
|
19939
|
+
const _withScopeId = (n) => (pushScopeId("data-v-227ede65"), n = n(), popScopeId(), n);
|
19907
19940
|
const _hoisted_1$2 = { class: "editify-table" };
|
19908
19941
|
const _hoisted_2$1 = ["onMouseenter", "onClick"];
|
19909
19942
|
const _hoisted_3$1 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElementVNode("span", null, null, -1));
|
@@ -19933,8 +19966,8 @@ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
|
|
19933
19966
|
])
|
19934
19967
|
]);
|
19935
19968
|
}
|
19936
|
-
const InsertTable = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$2], ["__scopeId", "data-v-
|
19937
|
-
const
|
19969
|
+
const InsertTable = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$2], ["__scopeId", "data-v-227ede65"]]);
|
19970
|
+
const Menu_vue_vue_type_style_index_0_scoped_3fc2d533_lang = "";
|
19938
19971
|
const _sfc_main$1 = {
|
19939
19972
|
name: "Menu",
|
19940
19973
|
props: {
|
@@ -21152,8 +21185,8 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
21152
21185
|
}), 256))
|
21153
21186
|
], 14, _hoisted_1$1);
|
21154
21187
|
}
|
21155
|
-
const Menu = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__scopeId", "data-v-
|
21156
|
-
const
|
21188
|
+
const Menu = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__scopeId", "data-v-3fc2d533"]]);
|
21189
|
+
const Editify_vue_vue_type_style_index_0_scoped_e9c5b94e_lang = "";
|
21157
21190
|
const _sfc_main = {
|
21158
21191
|
name: "editify",
|
21159
21192
|
props: { ...editorProps },
|
@@ -22750,7 +22783,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
22750
22783
|
])) : createCommentVNode("", true)
|
22751
22784
|
]);
|
22752
22785
|
}
|
22753
|
-
const Editify = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-
|
22786
|
+
const Editify = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-e9c5b94e"]]);
|
22754
22787
|
const iconfont = "";
|
22755
22788
|
const en_US = {
|
22756
22789
|
textWrapUp: "Up feed",
|
@@ -22929,7 +22962,7 @@ const i18n = (locale) => {
|
|
22929
22962
|
return translations[locale][key];
|
22930
22963
|
};
|
22931
22964
|
};
|
22932
|
-
const version = "0.0.
|
22965
|
+
const version = "0.0.29";
|
22933
22966
|
const install = (app, props) => {
|
22934
22967
|
const locale = (props ? props.locale : "zh_CN") || "zh_CN";
|
22935
22968
|
app.provide("$editTrans", i18n(locale));
|