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 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 (!_AlexElement.isElement(element2)) {
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 _AlexElement(this.type, this.parsedom, cloneData(this.marks), cloneData(this.styles), this.textContent);
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 = _AlexElement.BLOCK_NODE;
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(_AlexElement.TEXT_NODE);
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 _AlexElement(this.type, this.parsedom, cloneData(this.marks), cloneData(this.styles), this.textContent);
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 _AlexElement;
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 _AlexElement("text", null, null, null, "\uFEFF");
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
- const fn = async (root2) => {
2973
- const scrollHeight = obj$1.element.getScrollHeight(root2);
2974
- if (root2.clientHeight < scrollHeight) {
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 = root2.getBoundingClientRect();
2987
- if (childRect.top < parentRect.top) {
2988
- await obj$1.element.setScrollTop({
2989
- el: root2,
2990
- number: 0
2991
- });
2992
- const tempChildRect = target.getBoundingClientRect();
2993
- const tempParentRect = root2.getBoundingClientRect();
2994
- obj$1.element.setScrollTop({
2995
- el: root2,
2996
- number: tempChildRect.top - tempParentRect.top - tempChildRect.height * 2
2997
- });
2998
- } else if (childRect.bottom > parentRect.bottom) {
2999
- await obj$1.element.setScrollTop({
3000
- el: root2,
3001
- number: 0
3002
- });
3003
- const tempChildRect = target.getBoundingClientRect();
3004
- const tempParentRect = root2.getBoundingClientRect();
3005
- obj$1.element.setScrollTop({
3006
- el: root2,
3007
- number: tempChildRect.bottom - tempParentRect.bottom + tempChildRect.height * 2
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
- let root = this.$el;
3013
- while (obj$1.element.isElement(root) && root != document.documentElement) {
3014
- fn(root);
3015
- root = root.parentNode;
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 Triangle_vue_vue_type_style_index_0_scoped_c7bb62b7_lang = "";
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-c7bb62b7"]]);
16513
- const Layer_vue_vue_type_style_index_0_scoped_78f5589a_lang = "";
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-78f5589a"]]);
17143
- const Tooltip_vue_vue_type_style_index_0_scoped_3b8ba3fe_lang = "";
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-3b8ba3fe"]]);
17223
- const Icon_vue_vue_type_style_index_0_scoped_c5a1759c_lang = "";
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-c5a1759c"]]);
17240
- const Button_vue_vue_type_style_index_0_scoped_20160dd8_lang = "";
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-20160dd8"]]);
17605
- const Checkbox_vue_vue_type_style_index_0_scoped_37d04875_lang = "";
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-37d04875"]]);
17735
- const Colors_vue_vue_type_style_index_0_scoped_efd4da01_lang = "";
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-efd4da01"]]);
17818
- const Toolbar_vue_vue_type_style_index_0_scoped_6a227831_lang = "";
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-6a227831"]]);
19290
- const InsertLink_vue_vue_type_style_index_0_scoped_abb39368_lang = "";
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-abb39368"]]);
19401
- const InsertImage_vue_vue_type_style_index_0_scoped_69363d50_lang = "";
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-69363d50"]]);
19612
- const InsertVideo_vue_vue_type_style_index_0_scoped_249f2a7e_lang = "";
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-249f2a7e"]]);
19823
- const InsertTable_vue_vue_type_style_index_0_scoped_1b7b51c8_lang = "";
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-1b7b51c8"), n = n(), popScopeId(), n);
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-1b7b51c8"]]);
19937
- const Menu_vue_vue_type_style_index_0_scoped_9c105635_lang = "";
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-9c105635"]]);
21156
- const Editify_vue_vue_type_style_index_0_scoped_c1e25ea0_lang = "";
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-c1e25ea0"]]);
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.27";
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));