vue-editify 0.0.27 → 0.0.29
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 +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));
|