vue-editify 0.1.18 → 0.1.20
Sign up to get free protection for your applications and to get access to all the features.
- package/examples/App.vue +15 -14
- package/lib/editify.es.js +22 -11
- package/lib/editify.umd.js +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/style.css +1 -1
- package/package.json +2 -2
- package/src/core/function.ts +6 -0
- package/src/editify/editify.less +10 -9
- package/src/editify/editify.vue +15 -8
- package/src/index.ts +1 -1
package/examples/App.vue
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
<template>
|
2
|
-
<div style="padding:
|
3
|
-
<Editify ref="editify" border v-model="val" :menu="menuConfig" style="height: 100%" placeholder="Please Enter Text..." locale="zh_CN"
|
2
|
+
<div style="padding: 10px; height: 100%; box-sizing: border-box">
|
3
|
+
<Editify ref="editify" border v-model="val" :menu="menuConfig" style="height: 100%" placeholder="Please Enter Text..." locale="zh_CN" :customTextPaste="customTextPaste"></Editify>
|
4
4
|
</div>
|
5
5
|
</template>
|
6
6
|
<script setup lang="ts">
|
@@ -11,7 +11,7 @@ const val = ref<string>('<p><br></p>')
|
|
11
11
|
const editify = ref<InstanceType<typeof Editify> | null>(null)
|
12
12
|
const menuConfig = ref<MenuConfigType>({
|
13
13
|
use: true,
|
14
|
-
mode: '
|
14
|
+
mode: 'inner',
|
15
15
|
image: {
|
16
16
|
accept: ['jpg'],
|
17
17
|
handleError: (error, file) => {
|
@@ -22,17 +22,18 @@ const menuConfig = ref<MenuConfigType>({
|
|
22
22
|
show: true
|
23
23
|
}
|
24
24
|
})
|
25
|
-
const
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
}
|
34
|
-
|
35
|
-
|
25
|
+
const customTextPaste = function (data: string) {
|
26
|
+
const text = new AlexElement(
|
27
|
+
'text',
|
28
|
+
null,
|
29
|
+
null,
|
30
|
+
{
|
31
|
+
color: 'red',
|
32
|
+
'font-weight': 'bold'
|
33
|
+
},
|
34
|
+
data
|
35
|
+
)
|
36
|
+
editify.value!.editor!.insertElement(text)
|
36
37
|
}
|
37
38
|
</script>
|
38
39
|
<style lang="less">
|
package/lib/editify.es.js
CHANGED
@@ -3539,7 +3539,7 @@ class AlexEditor {
|
|
3539
3539
|
this.insertElement(text);
|
3540
3540
|
this.range.anchor.moveToEnd(text);
|
3541
3541
|
this.range.focus.moveToEnd(text);
|
3542
|
-
this.emit("insertParagraph",
|
3542
|
+
this.emit("insertParagraph", inblock, inblock);
|
3543
3543
|
} else if (inblock.behavior == "block") {
|
3544
3544
|
if (this.range.anchor.offset == 0 && !(previousElement && inblock.isContains(previousElement))) {
|
3545
3545
|
const paragraph = inblock.clone(false);
|
@@ -3579,7 +3579,7 @@ class AlexEditor {
|
|
3579
3579
|
this.insertElement(text);
|
3580
3580
|
this.range.anchor.moveToEnd(text);
|
3581
3581
|
this.range.focus.moveToEnd(text);
|
3582
|
-
this.emit("insertParagraph",
|
3582
|
+
this.emit("insertParagraph", block, block);
|
3583
3583
|
} else {
|
3584
3584
|
if (this.range.anchor.offset == 0 && !(previousElement && block.isContains(previousElement))) {
|
3585
3585
|
const paragraph = block.clone(false);
|
@@ -18815,9 +18815,15 @@ const elementIsInTask = (element2) => {
|
|
18815
18815
|
return false;
|
18816
18816
|
};
|
18817
18817
|
const isList = function(element2, ordered = false) {
|
18818
|
+
if (element2.isEmpty()) {
|
18819
|
+
return false;
|
18820
|
+
}
|
18818
18821
|
return element2.parsedom == "div" && element2.hasMarks() && element2.marks["data-editify-list"] == (ordered ? "ol" : "ul");
|
18819
18822
|
};
|
18820
18823
|
const isTask = function(element2) {
|
18824
|
+
if (element2.isEmpty()) {
|
18825
|
+
return false;
|
18826
|
+
}
|
18821
18827
|
return element2.parsedom == "div" && element2.hasMarks() && element2.marks.hasOwnProperty("data-editify-task");
|
18822
18828
|
};
|
18823
18829
|
const hasPreInRange = (editor, dataRangeCaches) => {
|
@@ -25352,7 +25358,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
25352
25358
|
const element$12 = editor.value.getElementByKey(key);
|
25353
25359
|
if (isTask(element$12)) {
|
25354
25360
|
const rect = element.getElementBounding(elm);
|
25355
|
-
if (e.pageX >= Math.abs(rect.left) && e.pageX <= Math.abs(rect.left + 16) && e.pageY >= Math.abs(rect.top + 2) && e.pageY <= Math.abs(rect.top +
|
25361
|
+
if (e.pageX >= Math.abs(rect.left) && e.pageX <= Math.abs(rect.left + 16) && e.pageY >= Math.abs(rect.top + elm.offsetHeight / 2 - 8) && e.pageY <= Math.abs(rect.top + elm.offsetHeight / 2 + 8)) {
|
25356
25362
|
if (element$12.marks["data-editify-task"] == "checked") {
|
25357
25363
|
element$12.marks["data-editify-task"] = "uncheck";
|
25358
25364
|
} else {
|
@@ -25506,12 +25512,17 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
25506
25512
|
}, 0);
|
25507
25513
|
};
|
25508
25514
|
const handleInsertParagraph = (element2, previousElement) => {
|
25509
|
-
if (
|
25510
|
-
if (previousElement.
|
25511
|
-
|
25512
|
-
|
25513
|
-
|
25514
|
-
|
25515
|
+
if (!element2.isEqual(previousElement)) {
|
25516
|
+
if (previousElement.isOnlyHasBreak() && element2.isOnlyHasBreak()) {
|
25517
|
+
if (previousElement.parsedom != AlexElement.BLOCK_NODE) {
|
25518
|
+
elementToParagraph(previousElement);
|
25519
|
+
editor.value.range.anchor.moveToStart(previousElement);
|
25520
|
+
editor.value.range.focus.moveToStart(previousElement);
|
25521
|
+
element2.toEmpty();
|
25522
|
+
}
|
25523
|
+
}
|
25524
|
+
if (isTask(element2)) {
|
25525
|
+
element2.marks["data-editify-task"] = "uncheck";
|
25515
25526
|
}
|
25516
25527
|
}
|
25517
25528
|
emits("insertparagraph", value.value);
|
@@ -25738,8 +25749,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
25738
25749
|
};
|
25739
25750
|
}
|
25740
25751
|
});
|
25741
|
-
const Editify = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
25742
|
-
const version = "0.1.
|
25752
|
+
const Editify = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-c794ee6c"]]);
|
25753
|
+
const version = "0.1.20";
|
25743
25754
|
const install = (app) => {
|
25744
25755
|
app.component(Editify.name, Editify);
|
25745
25756
|
};
|