vue-editify 0.0.48 → 0.0.50
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 +166 -58
- package/lib/editify.umd.js +1 -1
- package/lib/style.css +1 -1
- package/package.json +1 -1
- package/src/Editify.vue +93 -15
- package/src/components/bussiness/Menu.vue +77 -12
- package/src/core/index.js +12 -2
- package/src/icon/iconfont.css +4 -0
- package/src/icon/iconfont.ttf +0 -0
- package/src/icon/iconfont.woff +0 -0
- package/src/index.js +1 -1
- package/src/locale/en_US.js +2 -1
- package/src/locale/zh_CN.js +2 -1
package/examples/App.vue
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
<template>
|
2
|
-
<div style="padding: 100px 50px 50px 50px">
|
3
|
-
<editify v-model="value" placeholder="请输入正文内容..." allow-paste-html
|
2
|
+
<div style="padding: 100px 50px 50px 50px; height: 100%; box-sizing: border-box">
|
3
|
+
<editify v-model="value" placeholder="请输入正文内容..." allow-paste-html @change="change" :menu="menuConfig" ref="editify" :height="'300px'" @after-render="afterRender" :paste-keep-marks="{ 'data-zip': ['span'] }" autofocus :custom-parse-node="parseNode" :show-word-length="true" :border="true"></editify>
|
4
4
|
</div>
|
5
5
|
</template>
|
6
6
|
<script>
|
@@ -13,7 +13,7 @@ export default {
|
|
13
13
|
return {
|
14
14
|
value: ``,
|
15
15
|
menuConfig: {
|
16
|
-
mode: '
|
16
|
+
mode: 'default',
|
17
17
|
sequence: {
|
18
18
|
alert: 100,
|
19
19
|
zip: 101
|
@@ -25,6 +25,9 @@ export default {
|
|
25
25
|
sourceView: {
|
26
26
|
show: true
|
27
27
|
},
|
28
|
+
fullScreen: {
|
29
|
+
show: true
|
30
|
+
},
|
28
31
|
extends: {
|
29
32
|
zip: {
|
30
33
|
title: '上传压缩包',
|
package/lib/editify.es.js
CHANGED
@@ -15370,7 +15370,7 @@ const editorProps = {
|
|
15370
15370
|
},
|
15371
15371
|
//编辑内容高度
|
15372
15372
|
height: {
|
15373
|
-
type: String,
|
15373
|
+
type: [String, Boolean],
|
15374
15374
|
default: "600px"
|
15375
15375
|
},
|
15376
15376
|
//是否自适应高度
|
@@ -16160,7 +16160,8 @@ const getMenuConfig = function(editTrans, editLocale) {
|
|
16160
16160
|
video: 24,
|
16161
16161
|
table: 25,
|
16162
16162
|
codeBlock: 26,
|
16163
|
-
sourceView: 27
|
16163
|
+
sourceView: 27,
|
16164
|
+
fullScreen: 28
|
16164
16165
|
},
|
16165
16166
|
//撤销按钮配置
|
16166
16167
|
undo: {
|
@@ -16490,6 +16491,15 @@ const getMenuConfig = function(editTrans, editLocale) {
|
|
16490
16491
|
//右侧边框是否显示
|
16491
16492
|
rightBorder: false
|
16492
16493
|
},
|
16494
|
+
//全屏
|
16495
|
+
fullScreen: {
|
16496
|
+
//是否显示此工具
|
16497
|
+
show: false,
|
16498
|
+
//左侧边框是否显示
|
16499
|
+
leftBorder: false,
|
16500
|
+
//右侧边框是否显示
|
16501
|
+
rightBorder: false
|
16502
|
+
},
|
16493
16503
|
//拓展菜单,每个key表示拓展菜单的唯一名称,value是对象,包含type/title/rightBorder/leftBorder/disabled/active/width/maxHeight/options/value/hideScroll/onLayerShow/onLayerShown/onLayerHidden/onOperate/default/layer/option属性
|
16494
16504
|
extends: {}
|
16495
16505
|
};
|
@@ -17587,8 +17597,8 @@ const _hoisted_4$6 = {
|
|
17587
17597
|
key: 1,
|
17588
17598
|
class: "editify-button-options"
|
17589
17599
|
};
|
17590
|
-
const _hoisted_5$
|
17591
|
-
const _hoisted_6$
|
17600
|
+
const _hoisted_5$5 = ["onClick"];
|
17601
|
+
const _hoisted_6$5 = {
|
17592
17602
|
key: 1,
|
17593
17603
|
class: "editify-button-option-flex"
|
17594
17604
|
};
|
@@ -17659,14 +17669,14 @@ function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
|
|
17659
17669
|
_ctx.$slots.option ? renderSlot(_ctx.$slots, "option", {
|
17660
17670
|
key: 0,
|
17661
17671
|
item
|
17662
|
-
}, void 0, true) : (openBlock(), createElementBlock("div", _hoisted_6$
|
17672
|
+
}, void 0, true) : (openBlock(), createElementBlock("div", _hoisted_6$5, [
|
17663
17673
|
item.icon ? (openBlock(), createBlock(_component_Icon, {
|
17664
17674
|
key: 0,
|
17665
17675
|
value: item.icon
|
17666
17676
|
}, null, 8, ["value"])) : createCommentVNode("", true),
|
17667
17677
|
createElementVNode("span", null, toDisplayString(item.label), 1)
|
17668
17678
|
]))
|
17669
|
-
], 14, _hoisted_5$
|
17679
|
+
], 14, _hoisted_5$5);
|
17670
17680
|
}), 256))
|
17671
17681
|
]))
|
17672
17682
|
], 4)
|
@@ -18660,8 +18670,8 @@ const _hoisted_1$6 = {
|
|
18660
18670
|
const _hoisted_2$5 = { class: "editify-toolbar-link-label" };
|
18661
18671
|
const _hoisted_3$5 = ["placeholder"];
|
18662
18672
|
const _hoisted_4$5 = { class: "editify-toolbar-link-footer" };
|
18663
|
-
const _hoisted_5$
|
18664
|
-
const _hoisted_6$
|
18673
|
+
const _hoisted_5$4 = { class: "editify-toolbar-link-operations" };
|
18674
|
+
const _hoisted_6$4 = ["href"];
|
18665
18675
|
function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
|
18666
18676
|
const _component_Checkbox = resolveComponent("Checkbox");
|
18667
18677
|
const _component_Button = resolveComponent("Button");
|
@@ -18710,7 +18720,7 @@ function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
|
|
18710
18720
|
color: _ctx.$parent.color,
|
18711
18721
|
size: 10
|
18712
18722
|
}, null, 8, ["onChange", "modelValue", "label", "color"]),
|
18713
|
-
createElementVNode("div", _hoisted_5$
|
18723
|
+
createElementVNode("div", _hoisted_5$4, [
|
18714
18724
|
createElementVNode("span", {
|
18715
18725
|
onClick: _cache[5] || (_cache[5] = (...args) => _ctx.$parent.removeLink && _ctx.$parent.removeLink(...args))
|
18716
18726
|
}, toDisplayString($options.$editTrans("removeLink")), 1),
|
@@ -18718,7 +18728,7 @@ function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
|
|
18718
18728
|
href: $data.linkConfig.url,
|
18719
18729
|
target: "_blank",
|
18720
18730
|
style: normalizeStyle({ color: _ctx.$parent.color })
|
18721
|
-
}, toDisplayString($options.$editTrans("viewLink")), 13, _hoisted_6$
|
18731
|
+
}, toDisplayString($options.$editTrans("viewLink")), 13, _hoisted_6$4)
|
18722
18732
|
])
|
18723
18733
|
])
|
18724
18734
|
])) : $props.type == "image" ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
|
@@ -19445,8 +19455,8 @@ const _hoisted_1$5 = { class: "editify-link" };
|
|
19445
19455
|
const _hoisted_2$4 = { class: "editify-link-label" };
|
19446
19456
|
const _hoisted_3$4 = ["placeholder"];
|
19447
19457
|
const _hoisted_4$4 = ["placeholder"];
|
19448
|
-
const _hoisted_5$
|
19449
|
-
const _hoisted_6$
|
19458
|
+
const _hoisted_5$3 = { class: "editify-link-footer" };
|
19459
|
+
const _hoisted_6$3 = { class: "editify-link-operations" };
|
19450
19460
|
function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
|
19451
19461
|
const _component_Checkbox = resolveComponent("Checkbox");
|
19452
19462
|
return openBlock(), createElementBlock("div", _hoisted_1$5, [
|
@@ -19479,7 +19489,7 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
|
|
19479
19489
|
{ trim: true }
|
19480
19490
|
]
|
19481
19491
|
]),
|
19482
|
-
createElementVNode("div", _hoisted_5$
|
19492
|
+
createElementVNode("div", _hoisted_5$3, [
|
19483
19493
|
createVNode(_component_Checkbox, {
|
19484
19494
|
modelValue: $data.newOpen,
|
19485
19495
|
"onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => $data.newOpen = $event),
|
@@ -19487,7 +19497,7 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
|
|
19487
19497
|
color: $props.color,
|
19488
19498
|
size: 10
|
19489
19499
|
}, null, 8, ["modelValue", "label", "color"]),
|
19490
|
-
createElementVNode("div", _hoisted_6$
|
19500
|
+
createElementVNode("div", _hoisted_6$3, [
|
19491
19501
|
createElementVNode("span", {
|
19492
19502
|
style: normalizeStyle({ color: $props.color }),
|
19493
19503
|
onClick: _cache[7] || (_cache[7] = (...args) => $options.insertLink && $options.insertLink(...args))
|
@@ -19650,11 +19660,11 @@ const _hoisted_3$3 = {
|
|
19650
19660
|
class: "editify-image-remote"
|
19651
19661
|
};
|
19652
19662
|
const _hoisted_4$3 = ["placeholder"];
|
19653
|
-
const _hoisted_5$
|
19663
|
+
const _hoisted_5$2 = {
|
19654
19664
|
key: 1,
|
19655
19665
|
class: "editify-image-upload"
|
19656
19666
|
};
|
19657
|
-
const _hoisted_6$
|
19667
|
+
const _hoisted_6$2 = ["multiple"];
|
19658
19668
|
function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
|
19659
19669
|
const _component_Icon = resolveComponent("Icon");
|
19660
19670
|
return openBlock(), createElementBlock("div", _hoisted_1$4, [
|
@@ -19696,14 +19706,14 @@ function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
|
|
19696
19706
|
onClick: _cache[5] || (_cache[5] = (...args) => $options.insertRemoteImage && $options.insertRemoteImage(...args))
|
19697
19707
|
}, toDisplayString($options.$editTrans("insert")), 1)
|
19698
19708
|
], 4)
|
19699
|
-
])) : (openBlock(), createElementBlock("div", _hoisted_5$
|
19709
|
+
])) : (openBlock(), createElementBlock("div", _hoisted_5$2, [
|
19700
19710
|
createVNode(_component_Icon, { value: "upload" }),
|
19701
19711
|
createElementVNode("input", {
|
19702
19712
|
multiple: $props.multiple,
|
19703
19713
|
accept: "image/*",
|
19704
19714
|
onChange: _cache[6] || (_cache[6] = (...args) => $options.selectFile && $options.selectFile(...args)),
|
19705
19715
|
type: "file"
|
19706
|
-
}, null, 40, _hoisted_6$
|
19716
|
+
}, null, 40, _hoisted_6$2)
|
19707
19717
|
]))
|
19708
19718
|
]);
|
19709
19719
|
}
|
@@ -19861,11 +19871,11 @@ const _hoisted_3$2 = {
|
|
19861
19871
|
class: "editify-video-remote"
|
19862
19872
|
};
|
19863
19873
|
const _hoisted_4$2 = ["placeholder"];
|
19864
|
-
const _hoisted_5$
|
19874
|
+
const _hoisted_5$1 = {
|
19865
19875
|
key: 1,
|
19866
19876
|
class: "editify-video-upload"
|
19867
19877
|
};
|
19868
|
-
const _hoisted_6$
|
19878
|
+
const _hoisted_6$1 = ["multiple"];
|
19869
19879
|
function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
|
19870
19880
|
const _component_Icon = resolveComponent("Icon");
|
19871
19881
|
return openBlock(), createElementBlock("div", _hoisted_1$3, [
|
@@ -19907,14 +19917,14 @@ function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
|
|
19907
19917
|
onClick: _cache[5] || (_cache[5] = (...args) => $options.insertRemoteVideo && $options.insertRemoteVideo(...args))
|
19908
19918
|
}, toDisplayString($options.$editTrans("insert")), 1)
|
19909
19919
|
], 4)
|
19910
|
-
])) : (openBlock(), createElementBlock("div", _hoisted_5$
|
19920
|
+
])) : (openBlock(), createElementBlock("div", _hoisted_5$1, [
|
19911
19921
|
createVNode(_component_Icon, { value: "upload" }),
|
19912
19922
|
createElementVNode("input", {
|
19913
19923
|
multiple: $props.multiple,
|
19914
19924
|
accept: "video/*",
|
19915
19925
|
onChange: _cache[6] || (_cache[6] = (...args) => $options.selectFile && $options.selectFile(...args)),
|
19916
19926
|
type: "file"
|
19917
|
-
}, null, 40, _hoisted_6$
|
19927
|
+
}, null, 40, _hoisted_6$1)
|
19918
19928
|
]))
|
19919
19929
|
]);
|
19920
19930
|
}
|
@@ -20009,8 +20019,8 @@ const _hoisted_3$1 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createEl
|
|
20009
20019
|
const _hoisted_4$1 = [
|
20010
20020
|
_hoisted_3$1
|
20011
20021
|
];
|
20012
|
-
const _hoisted_5
|
20013
|
-
const _hoisted_6
|
20022
|
+
const _hoisted_5 = { class: "editify-table-footer" };
|
20023
|
+
const _hoisted_6 = { key: 0 };
|
20014
20024
|
const _hoisted_7 = { key: 1 };
|
20015
20025
|
function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
|
20016
20026
|
return openBlock(), createElementBlock("div", _hoisted_1$2, [
|
@@ -20027,13 +20037,13 @@ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
|
|
20027
20037
|
]);
|
20028
20038
|
}), 256))
|
20029
20039
|
]),
|
20030
|
-
createElementVNode("div", _hoisted_5
|
20031
|
-
$options.specification ? (openBlock(), createElementBlock("span", _hoisted_6
|
20040
|
+
createElementVNode("div", _hoisted_5, [
|
20041
|
+
$options.specification ? (openBlock(), createElementBlock("span", _hoisted_6, toDisplayString($options.specification.x) + " x " + toDisplayString($options.specification.y), 1)) : (openBlock(), createElementBlock("span", _hoisted_7, toDisplayString($options.$editTrans("insertTable")), 1))
|
20032
20042
|
])
|
20033
20043
|
]);
|
20034
20044
|
}
|
20035
20045
|
const InsertTable = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$2], ["__scopeId", "data-v-227ede65"]]);
|
20036
|
-
const
|
20046
|
+
const Menu_vue_vue_type_style_index_0_scoped_c952b6ed_lang = "";
|
20037
20047
|
const _sfc_main$1 = {
|
20038
20048
|
name: "Menu",
|
20039
20049
|
props: {
|
@@ -20349,6 +20359,14 @@ const _sfc_main$1 = {
|
|
20349
20359
|
rightBorder: this.config.sourceView.rightBorder,
|
20350
20360
|
active: false,
|
20351
20361
|
disabled: false
|
20362
|
+
},
|
20363
|
+
//全屏按钮配置
|
20364
|
+
fullScreenConfig: {
|
20365
|
+
show: this.config.fullScreen.show,
|
20366
|
+
leftBorder: this.config.fullScreen.leftBorder,
|
20367
|
+
rightBorder: this.config.fullScreen.rightBorder,
|
20368
|
+
active: false,
|
20369
|
+
disabled: false
|
20352
20370
|
}
|
20353
20371
|
};
|
20354
20372
|
},
|
@@ -20365,11 +20383,27 @@ const _sfc_main$1 = {
|
|
20365
20383
|
//菜单是否禁用
|
20366
20384
|
menuDisabled() {
|
20367
20385
|
return (name) => {
|
20368
|
-
if (name == "sourceView") {
|
20386
|
+
if (name == "sourceView" || name == "fullScreen") {
|
20369
20387
|
return false;
|
20370
20388
|
}
|
20371
20389
|
return this.$parent.isSourceView;
|
20372
20390
|
};
|
20391
|
+
},
|
20392
|
+
//菜单模式
|
20393
|
+
menuMode() {
|
20394
|
+
if (this.$parent.isFullScreen || this.$parent.height === true) {
|
20395
|
+
if (this.config.mode == "fixed") {
|
20396
|
+
return "default";
|
20397
|
+
}
|
20398
|
+
}
|
20399
|
+
return this.config.mode;
|
20400
|
+
},
|
20401
|
+
//菜单栏是否显示边框
|
20402
|
+
menuShowBorder() {
|
20403
|
+
if (this.menuMode == "fixed") {
|
20404
|
+
return false;
|
20405
|
+
}
|
20406
|
+
return this.$parent.showBorder;
|
20373
20407
|
}
|
20374
20408
|
},
|
20375
20409
|
components: {
|
@@ -20950,6 +20984,22 @@ const _sfc_main$1 = {
|
|
20950
20984
|
() => h(Icon, { value: "source-view" })
|
20951
20985
|
);
|
20952
20986
|
}
|
20987
|
+
if (this.name == "fullScreen" && this.$parent.fullScreenConfig.show) {
|
20988
|
+
return h(
|
20989
|
+
Button,
|
20990
|
+
{
|
20991
|
+
...props,
|
20992
|
+
title: this.$editTrans("fullScreen"),
|
20993
|
+
leftBorder: this.$parent.fullScreenConfig.leftBorder,
|
20994
|
+
rightBorder: this.$parent.fullScreenConfig.rightBorder,
|
20995
|
+
color: this.$parent.color,
|
20996
|
+
disabled: this.$parent.fullScreenConfig.disabled || this.disabled || this.$parent.disabled,
|
20997
|
+
active: this.$parent.fullScreenConfig.active,
|
20998
|
+
onOperate: this.$parent.handleOperate
|
20999
|
+
},
|
21000
|
+
() => h(Icon, { value: "full-screen" })
|
21001
|
+
);
|
21002
|
+
}
|
20953
21003
|
if (obj.common.isObject(this.$parent.config.extends)) {
|
20954
21004
|
const configuration = this.$parent.config.extends[this.name];
|
20955
21005
|
if (configuration) {
|
@@ -21104,6 +21154,10 @@ const _sfc_main$1 = {
|
|
21104
21154
|
if (!this.$parent.isSourceView) {
|
21105
21155
|
this.$parent.editor.rangeRender();
|
21106
21156
|
}
|
21157
|
+
} else if (name == "fullScreen") {
|
21158
|
+
this.$parent.isFullScreen = !this.$parent.isFullScreen;
|
21159
|
+
this.fullScreenConfig.active = this.$parent.isFullScreen;
|
21160
|
+
this.$parent.editor.rangeRender();
|
21107
21161
|
}
|
21108
21162
|
},
|
21109
21163
|
//处理光标更新
|
@@ -21232,6 +21286,7 @@ const _sfc_main$1 = {
|
|
21232
21286
|
this.codeBlockConfig.active = !!this.$parent.getCurrentParsedomElement("pre", true);
|
21233
21287
|
this.codeBlockConfig.disabled = hasTable || hasQuote || extraDisabled("codeBlock");
|
21234
21288
|
this.sourceViewConfig.active = this.$parent.isSourceView;
|
21289
|
+
this.fullScreenConfig.active = this.$parent.isFullScreen;
|
21235
21290
|
}
|
21236
21291
|
}
|
21237
21292
|
};
|
@@ -21239,8 +21294,8 @@ const _hoisted_1$1 = ["data-editify-mode"];
|
|
21239
21294
|
function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
21240
21295
|
const _component_MenuItem = resolveComponent("MenuItem");
|
21241
21296
|
return openBlock(), createElementBlock("div", {
|
21242
|
-
class: normalizeClass(["editify-menu", { border: _ctx.$parent.
|
21243
|
-
"data-editify-mode": $
|
21297
|
+
class: normalizeClass(["editify-menu", { border: $options.menuShowBorder, source: _ctx.$parent.isSourceView && $options.menuMode == "inner", fullscreen: _ctx.$parent.isFullScreen }]),
|
21298
|
+
"data-editify-mode": $options.menuMode,
|
21244
21299
|
style: normalizeStyle($props.config.style || "")
|
21245
21300
|
}, [
|
21246
21301
|
(openBlock(true), createElementBlock(Fragment, null, renderList($options.menuNames, (item) => {
|
@@ -21251,8 +21306,8 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
21251
21306
|
}), 256))
|
21252
21307
|
], 14, _hoisted_1$1);
|
21253
21308
|
}
|
21254
|
-
const Menu = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__scopeId", "data-v-
|
21255
|
-
const
|
21309
|
+
const Menu = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__scopeId", "data-v-c952b6ed"]]);
|
21310
|
+
const Editify_vue_vue_type_style_index_0_scoped_ede8b39b_lang = "";
|
21256
21311
|
const _sfc_main = {
|
21257
21312
|
name: "editify",
|
21258
21313
|
props: { ...editorProps },
|
@@ -21271,6 +21326,8 @@ const _sfc_main = {
|
|
21271
21326
|
isModelChange: false,
|
21272
21327
|
//是否代码视图
|
21273
21328
|
isSourceView: false,
|
21329
|
+
//是否全屏
|
21330
|
+
isFullScreen: false,
|
21274
21331
|
//是否正在输入中文
|
21275
21332
|
isInputChinese: false,
|
21276
21333
|
//表格列宽拖拽记录数据
|
@@ -21292,7 +21349,9 @@ const _sfc_main = {
|
|
21292
21349
|
//rangeUpdate更新延时器
|
21293
21350
|
updateTimer: null,
|
21294
21351
|
//菜单栏是否可以使用标识
|
21295
|
-
canUseMenu: false
|
21352
|
+
canUseMenu: false,
|
21353
|
+
//手动设定的编辑器编辑区域高度
|
21354
|
+
contentHeight: 0
|
21296
21355
|
};
|
21297
21356
|
},
|
21298
21357
|
computed: {
|
@@ -21319,8 +21378,20 @@ const _sfc_main = {
|
|
21319
21378
|
}
|
21320
21379
|
return false;
|
21321
21380
|
},
|
21381
|
+
//是否显示边框
|
21382
|
+
showBorder() {
|
21383
|
+
if (this.isFullScreen) {
|
21384
|
+
return false;
|
21385
|
+
}
|
21386
|
+
return this.border;
|
21387
|
+
},
|
21322
21388
|
//编辑器样式设置
|
21323
21389
|
contentStyle() {
|
21390
|
+
if (this.height === true || this.isFullScreen) {
|
21391
|
+
return {
|
21392
|
+
height: this.contentHeight + "px"
|
21393
|
+
};
|
21394
|
+
}
|
21324
21395
|
return this.autoheight ? { minHeight: this.height } : { height: this.height };
|
21325
21396
|
},
|
21326
21397
|
//最终生效的工具栏配置
|
@@ -21359,6 +21430,21 @@ const _sfc_main = {
|
|
21359
21430
|
this.handleToolbar();
|
21360
21431
|
}
|
21361
21432
|
}
|
21433
|
+
},
|
21434
|
+
//全屏切换
|
21435
|
+
isFullScreen() {
|
21436
|
+
this.$nextTick(() => {
|
21437
|
+
this.setContentHeight();
|
21438
|
+
});
|
21439
|
+
},
|
21440
|
+
//监听height为true
|
21441
|
+
height: {
|
21442
|
+
immediate: true,
|
21443
|
+
handler: function() {
|
21444
|
+
this.$nextTick(() => {
|
21445
|
+
this.setContentHeight();
|
21446
|
+
});
|
21447
|
+
}
|
21362
21448
|
}
|
21363
21449
|
},
|
21364
21450
|
mounted() {
|
@@ -21368,7 +21454,10 @@ const _sfc_main = {
|
|
21368
21454
|
obj.event.on(document.documentElement, `mousemove.editify_${this.uid}`, this.documentMouseMove);
|
21369
21455
|
obj.event.on(document.documentElement, `mouseup.editify_${this.uid}`, this.documentMouseUp);
|
21370
21456
|
obj.event.on(document.documentElement, `click.editify_${this.uid}`, this.documentClick);
|
21371
|
-
obj.event.on(window, `resize.editify_${this.uid}`,
|
21457
|
+
obj.event.on(window, `resize.editify_${this.uid}`, () => {
|
21458
|
+
this.setVideoHeight();
|
21459
|
+
this.setContentHeight();
|
21460
|
+
});
|
21372
21461
|
},
|
21373
21462
|
methods: {
|
21374
21463
|
//初始创建编辑器
|
@@ -21675,7 +21764,7 @@ const _sfc_main = {
|
|
21675
21764
|
if (this.disabled) {
|
21676
21765
|
return;
|
21677
21766
|
}
|
21678
|
-
if (this.border && this.color) {
|
21767
|
+
if (this.border && this.color && !this.isFullScreen) {
|
21679
21768
|
this.$refs.body.style.borderColor = "";
|
21680
21769
|
this.$refs.body.style.boxShadow = "";
|
21681
21770
|
if (this.menuConfig.use) {
|
@@ -21690,7 +21779,7 @@ const _sfc_main = {
|
|
21690
21779
|
if (this.disabled) {
|
21691
21780
|
return;
|
21692
21781
|
}
|
21693
|
-
if (this.border && this.color) {
|
21782
|
+
if (this.border && this.color && !this.isFullScreen) {
|
21694
21783
|
this.$refs.body.style.borderColor = this.color;
|
21695
21784
|
const rgb = obj.color.hex2rgb(this.color);
|
21696
21785
|
if (this.menuConfig.use && this.menuConfig.mode == "inner") {
|
@@ -21851,6 +21940,22 @@ const _sfc_main = {
|
|
21851
21940
|
video.style.height = video.offsetWidth / this.videoRatio + "px";
|
21852
21941
|
});
|
21853
21942
|
},
|
21943
|
+
//设置编辑器主体高度
|
21944
|
+
setContentHeight() {
|
21945
|
+
if (this.height === true || this.isFullScreen) {
|
21946
|
+
let height = this.$el.offsetHeight;
|
21947
|
+
if (this.menuConfig.use) {
|
21948
|
+
height -= this.$refs.menu.$el.offsetHeight;
|
21949
|
+
}
|
21950
|
+
if (this.showWordLength) {
|
21951
|
+
height -= this.$refs.footer.offsetHeight;
|
21952
|
+
}
|
21953
|
+
if (this.$refs.menu.menuMode == "default") {
|
21954
|
+
height -= 10;
|
21955
|
+
}
|
21956
|
+
this.contentHeight = height - 2;
|
21957
|
+
}
|
21958
|
+
},
|
21854
21959
|
//api:光标设置到文档底部
|
21855
21960
|
collapseToEnd() {
|
21856
21961
|
if (this.disabled) {
|
@@ -22852,19 +22957,16 @@ const _sfc_main = {
|
|
22852
22957
|
this.editor.destroy();
|
22853
22958
|
}
|
22854
22959
|
};
|
22855
|
-
const _hoisted_1 =
|
22856
|
-
const _hoisted_2 = ["data-editify-
|
22857
|
-
const _hoisted_3 = ["
|
22858
|
-
const _hoisted_4 =
|
22859
|
-
const _hoisted_5 = {
|
22860
|
-
key: 1,
|
22861
|
-
class: "editify-footer"
|
22862
|
-
};
|
22863
|
-
const _hoisted_6 = { class: "editify-footer-words" };
|
22960
|
+
const _hoisted_1 = ["data-editify-uid"];
|
22961
|
+
const _hoisted_2 = ["data-editify-placeholder"];
|
22962
|
+
const _hoisted_3 = ["value"];
|
22963
|
+
const _hoisted_4 = { class: "editify-footer-words" };
|
22864
22964
|
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
22865
22965
|
const _component_Menu = resolveComponent("Menu");
|
22866
22966
|
const _component_Toolbar = resolveComponent("Toolbar");
|
22867
|
-
return openBlock(), createElementBlock("div",
|
22967
|
+
return openBlock(), createElementBlock("div", {
|
22968
|
+
class: normalizeClass(["editify", { fullheight: _ctx.height === true && !$data.isFullScreen, fullscreen: $data.isFullScreen }])
|
22969
|
+
}, [
|
22868
22970
|
$options.menuConfig.use ? (openBlock(), createBlock(_component_Menu, {
|
22869
22971
|
key: 0,
|
22870
22972
|
config: $options.menuConfig,
|
@@ -22874,7 +22976,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
22874
22976
|
}, null, 8, ["config", "disabled", "color"])) : createCommentVNode("", true),
|
22875
22977
|
createElementVNode("div", {
|
22876
22978
|
ref: "body",
|
22877
|
-
class: normalizeClass(["editify-body", { border:
|
22979
|
+
class: normalizeClass(["editify-body", { border: $options.showBorder, menu_inner: $options.menuConfig.use && $options.menuConfig.mode == "inner" }]),
|
22878
22980
|
"data-editify-uid": $setup.uid
|
22879
22981
|
}, [
|
22880
22982
|
createElementVNode("div", {
|
@@ -22886,13 +22988,13 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
22886
22988
|
onCompositionstart: _cache[2] || (_cache[2] = ($event) => $data.isInputChinese = true),
|
22887
22989
|
onCompositionend: _cache[3] || (_cache[3] = ($event) => $data.isInputChinese = false),
|
22888
22990
|
"data-editify-placeholder": _ctx.placeholder
|
22889
|
-
}, null, 46,
|
22991
|
+
}, null, 46, _hoisted_2),
|
22890
22992
|
$data.isSourceView ? (openBlock(), createElementBlock("textarea", {
|
22891
22993
|
key: 0,
|
22892
22994
|
value: $options.value,
|
22893
22995
|
readonly: "",
|
22894
22996
|
class: "editify-source"
|
22895
|
-
}, null, 8,
|
22997
|
+
}, null, 8, _hoisted_3)) : createCommentVNode("", true),
|
22896
22998
|
createVNode(_component_Toolbar, {
|
22897
22999
|
ref: "toolbar",
|
22898
23000
|
modelValue: $data.toolbarOptions.show,
|
@@ -22901,13 +23003,17 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
22901
23003
|
type: $data.toolbarOptions.type,
|
22902
23004
|
config: $options.toolbarConfig
|
22903
23005
|
}, null, 8, ["modelValue", "node", "type", "config"])
|
22904
|
-
], 10,
|
22905
|
-
_ctx.showWordLength ? (openBlock(), createElementBlock("div",
|
22906
|
-
|
22907
|
-
|
22908
|
-
|
23006
|
+
], 10, _hoisted_1),
|
23007
|
+
_ctx.showWordLength ? (openBlock(), createElementBlock("div", {
|
23008
|
+
key: 1,
|
23009
|
+
class: normalizeClass(["editify-footer", { fullscreen: $data.isFullScreen && !$data.isSourceView }]),
|
23010
|
+
ref: "footer"
|
23011
|
+
}, [
|
23012
|
+
createElementVNode("div", _hoisted_4, toDisplayString($options.$editTrans("totalWordCount")) + toDisplayString($options.textValue.length), 1)
|
23013
|
+
], 2)) : createCommentVNode("", true)
|
23014
|
+
], 2);
|
22909
23015
|
}
|
22910
|
-
const Editify = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-
|
23016
|
+
const Editify = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-ede8b39b"]]);
|
22911
23017
|
const iconfont = "";
|
22912
23018
|
const en_US = {
|
22913
23019
|
textWrapUp: "Up feed",
|
@@ -22992,7 +23098,8 @@ const en_US = {
|
|
22992
23098
|
alignRight: "Align right",
|
22993
23099
|
alignJustify: "Align justify",
|
22994
23100
|
defaultLineHeight: "Default",
|
22995
|
-
auto: "auto"
|
23101
|
+
auto: "auto",
|
23102
|
+
fullScreen: "Full screen"
|
22996
23103
|
};
|
22997
23104
|
const zh_CN = {
|
22998
23105
|
textWrapUp: "向上换行",
|
@@ -23077,7 +23184,8 @@ const zh_CN = {
|
|
23077
23184
|
alignRight: "右对齐",
|
23078
23185
|
alignJustify: "两端对齐",
|
23079
23186
|
defaultLineHeight: "默认行高",
|
23080
|
-
auto: "自适应"
|
23187
|
+
auto: "自适应",
|
23188
|
+
fullScreen: "全屏"
|
23081
23189
|
};
|
23082
23190
|
const translations = {
|
23083
23191
|
zh_CN,
|
@@ -23088,7 +23196,7 @@ const i18n = (locale) => {
|
|
23088
23196
|
return translations[locale][key];
|
23089
23197
|
};
|
23090
23198
|
};
|
23091
|
-
const version = "0.0.
|
23199
|
+
const version = "0.0.50";
|
23092
23200
|
const install = (app, props) => {
|
23093
23201
|
const locale = (props ? props.locale : "zh_CN") || "zh_CN";
|
23094
23202
|
app.provide("$editTrans", i18n(locale));
|