@maketribe/ms-app 3.2.32 → 3.2.33
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/dist/cjs/components/basic/doc-editor/core/element-block.js +48 -63
- package/dist/cjs/components/basic/doc-editor/core/element-block.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/core/index.js +1 -1
- package/dist/cjs/components/basic/doc-editor/core/index.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/editor.vue.js +4 -1
- package/dist/cjs/components/basic/doc-editor/editor.vue.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/index.js +2 -0
- package/dist/cjs/components/basic/doc-editor/index.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ElementBlockSelectionPlugin/index.vue.js +203 -65
- package/dist/cjs/components/basic/doc-editor/plugins/ElementBlockSelectionPlugin/index.vue.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/GridNode.js +39 -39
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/GridNode.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.js +8 -1
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.js +32 -23
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.js +33 -18
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.js +8 -1
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/index.vue.js +4 -52
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/index.vue.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.js +4 -0
- package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js +19 -22
- package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/utils.js +2 -2
- package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/utils.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/ModuleBlockNode.js +16 -9
- package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/ModuleBlockNode.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/composables.js +11 -10
- package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/composables.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/index.vue.js +5 -26
- package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/index.vue.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/utils.js +3 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/utils.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/TemplatePlugin/commands.js +6 -0
- package/dist/cjs/components/basic/doc-editor/plugins/TemplatePlugin/commands.js.map +1 -0
- package/dist/cjs/components/basic/doc-editor/plugins/TemplatePlugin/composables.js +118 -0
- package/dist/cjs/components/basic/doc-editor/plugins/TemplatePlugin/composables.js.map +1 -0
- package/dist/cjs/components/basic/doc-editor/plugins/TemplatePlugin/index.vue.js +26 -0
- package/dist/cjs/components/basic/doc-editor/plugins/TemplatePlugin/index.vue.js.map +1 -0
- package/dist/cjs/components/basic/doc-editor/plugins/TemplatePlugin/index.vue2.js +4 -0
- package/dist/cjs/components/basic/doc-editor/plugins/TemplatePlugin/index.vue2.js.map +1 -0
- package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/ContentStyleTool.vue.js +1 -2
- package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/ContentStyleTool.vue.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js +2 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/themes/doc-editor-edit.css.js +1 -1
- package/dist/cjs/components/basic/doc-editor/themes/doc-editor-edit.css.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/themes/doc-theme.css.js +1 -2
- package/dist/cjs/components/basic/doc-editor/themes/doc-theme.css.js.map +1 -1
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js +1 -10
- package/dist/cjs/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js.map +1 -1
- package/dist/cjs/modules/cms/pages/cms-contents/components/article-list.vue.js +176 -46
- package/dist/cjs/modules/cms/pages/cms-contents/components/article-list.vue.js.map +1 -1
- package/dist/cjs/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js +44 -22
- package/dist/cjs/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js.map +1 -1
- package/dist/cjs/modules/cms/pages/cms-contents/components/part-info.vue.js +1 -8
- package/dist/cjs/modules/cms/pages/cms-contents/components/part-info.vue.js.map +1 -1
- package/dist/cjs/modules/cms/pages/cms-contents/index.vue2.js +2 -1
- package/dist/cjs/modules/cms/pages/cms-contents/index.vue2.js.map +1 -1
- package/dist/cjs/modules/ms/components/rich-text-editor/rich-text-editor-options.js +1 -1
- package/dist/cjs/modules/ms/components/rich-text-editor/rich-text-editor-options.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/core/element-block.js +50 -65
- package/dist/esm/components/basic/doc-editor/core/element-block.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/core/index.js +2 -2
- package/dist/esm/components/basic/doc-editor/core/index.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/editor.vue.js +5 -2
- package/dist/esm/components/basic/doc-editor/editor.vue.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/index.js +3 -1
- package/dist/esm/components/basic/doc-editor/index.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/ElementBlockSelectionPlugin/index.vue.js +206 -68
- package/dist/esm/components/basic/doc-editor/plugins/ElementBlockSelectionPlugin/index.vue.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/GridNode.js +39 -39
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/GridNode.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.js +8 -1
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.js +32 -23
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.js +33 -18
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.js +8 -1
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/index.vue.js +7 -55
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/index.vue.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.js +4 -0
- package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js +20 -23
- package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/utils.js +2 -2
- package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/utils.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/ModuleBlockNode.js +16 -9
- package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/ModuleBlockNode.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/composables.js +12 -11
- package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/composables.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/index.vue.js +7 -28
- package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/index.vue.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/utils.js +4 -2
- package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/utils.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/commands.js +6 -0
- package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/commands.js.map +1 -0
- package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/composables.js +118 -0
- package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/composables.js.map +1 -0
- package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/index.vue.js +27 -0
- package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/index.vue.js.map +1 -0
- package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/index.vue2.js +5 -0
- package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/index.vue2.js.map +1 -0
- package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/ContentStyleTool.vue.js +1 -2
- package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/ContentStyleTool.vue.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js +3 -2
- package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/themes/doc-editor-edit.css.js +1 -1
- package/dist/esm/components/basic/doc-editor/themes/doc-editor-edit.css.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/themes/doc-theme.css.js +1 -2
- package/dist/esm/components/basic/doc-editor/themes/doc-theme.css.js.map +1 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js +1 -10
- package/dist/esm/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js.map +1 -1
- package/dist/esm/modules/cms/pages/cms-contents/components/article-list.vue.js +177 -47
- package/dist/esm/modules/cms/pages/cms-contents/components/article-list.vue.js.map +1 -1
- package/dist/esm/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js +45 -23
- package/dist/esm/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js.map +1 -1
- package/dist/esm/modules/cms/pages/cms-contents/components/part-info.vue.js +1 -8
- package/dist/esm/modules/cms/pages/cms-contents/components/part-info.vue.js.map +1 -1
- package/dist/esm/modules/cms/pages/cms-contents/index.vue2.js +2 -1
- package/dist/esm/modules/cms/pages/cms-contents/index.vue2.js.map +1 -1
- package/dist/esm/modules/ms/components/rich-text-editor/rich-text-editor-options.js +1 -1
- package/dist/esm/modules/ms/components/rich-text-editor/rich-text-editor-options.js.map +1 -1
- package/dist/style/components/basic/doc-editor/index.css +1 -1
- package/dist/style/components/index.css +1 -1
- package/dist/style/index.css +2 -2
- package/dist/style/modules/cms/index.css +1 -1
- package/dist/style/modules/cms/pages/cms-contents/components/article-list.css +1 -1
- package/dist/style/modules/cms/pages/cms-contents/index.css +1 -1
- package/dist/style/modules/ms/components/rich-text-editor/index.css +1 -1
- package/dist/style/modules/ms/index.css +1 -1
- package/dist/style/src/components/basic/doc-editor/index.scss +16 -0
- package/dist/style/src/modules/cms/pages/cms-contents/components/article-list.scss +31 -3
- package/dist/style/src/modules/ms/components/rich-text-editor/index.scss +1 -1
- package/dist/types/components/basic/doc-editor/core/element-block.d.ts +5 -13
- package/dist/types/components/basic/doc-editor/core/index.d.ts +0 -1
- package/dist/types/components/basic/doc-editor/index.d.ts +2 -1
- package/dist/types/components/basic/doc-editor/plugins/GridPlugin/GridNode.d.ts +10 -5
- package/dist/types/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.d.ts +5 -0
- package/dist/types/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.d.ts +5 -0
- package/dist/types/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.d.ts +5 -0
- package/dist/types/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.d.ts +5 -0
- package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/ModuleBlockNode.d.ts +5 -1
- package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/composables.d.ts +3 -8
- package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/utils.d.ts +1 -1
- package/dist/types/components/basic/doc-editor/plugins/TemplatePlugin/commands.d.ts +5 -0
- package/dist/types/components/basic/doc-editor/plugins/TemplatePlugin/composables.d.ts +34 -0
- package/dist/types/components/basic/doc-editor/plugins/TemplatePlugin/index.vue.d.ts +2 -0
- package/dist/types/components/basic/doc-editor/plugins/index.d.ts +2 -1
- package/dist/types/modules/ms/components/rich-text-editor/index.d.ts +2 -2
- package/dist/types/modules/ms/components/rich-text-editor/rich-text-editor-options.d.ts +1 -1
- package/dist/types/modules/ms/components/rich-text-editor/rich-text-editor.d.ts +2 -2
- package/package.json +3 -3
- package/dist/cjs/components/basic/doc-editor/core/utils.js +0 -42
- package/dist/cjs/components/basic/doc-editor/core/utils.js.map +0 -1
- package/dist/esm/components/basic/doc-editor/core/utils.js +0 -42
- package/dist/esm/components/basic/doc-editor/core/utils.js.map +0 -1
- package/dist/types/components/basic/doc-editor/core/utils.d.ts +0 -4
|
@@ -4,91 +4,76 @@ const utils = require("@lexical/utils");
|
|
|
4
4
|
const lexical = require("lexical");
|
|
5
5
|
const lexicalVue = require("lexical-vue");
|
|
6
6
|
const vue = require("vue");
|
|
7
|
-
const utils$1 = require("./utils.js");
|
|
8
7
|
const SELECTED_ELEMENTBLOCK_COMMAND = lexical.createCommand("SELECTED_ELEMENTBLOCK_COMMAND");
|
|
9
8
|
const REMOVE_ELEMENTBLOCK_COMMAND = lexical.createCommand("REMOVE_ELEMENTBLOCK_COMMAND");
|
|
10
9
|
const UPDATE_ELEMENTBLOCK_TOOLBAR_POS_COMMAND = lexical.createCommand("UPDATE_ELEMENTBLOCK_TOOLBAR_POS_COMMAND");
|
|
10
|
+
const clearSelection = (editor) => {
|
|
11
|
+
return new Promise((resolove) => {
|
|
12
|
+
editor.update(() => {
|
|
13
|
+
const selection = lexical.$getSelection();
|
|
14
|
+
if (lexical.$isNodeSelection(selection) && selection) {
|
|
15
|
+
selection.clear();
|
|
16
|
+
}
|
|
17
|
+
resolove(void 0);
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
const setSelected = (editor, selected, key) => {
|
|
22
|
+
return new Promise((resolove) => {
|
|
23
|
+
editor.update(() => {
|
|
24
|
+
let selection = lexical.$getSelection();
|
|
25
|
+
if (!lexical.$isNodeSelection(selection)) {
|
|
26
|
+
selection = lexical.$createNodeSelection();
|
|
27
|
+
lexical.$setSelection(selection);
|
|
28
|
+
}
|
|
29
|
+
if (lexical.$isNodeSelection(selection)) {
|
|
30
|
+
selection.add(vue.unref(key));
|
|
31
|
+
}
|
|
32
|
+
resolove(void 0);
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
};
|
|
36
|
+
const setElementBlockSelection = async (editor, nodeKey) => {
|
|
37
|
+
await clearSelection(editor);
|
|
38
|
+
await setSelected(editor, true, nodeKey);
|
|
39
|
+
};
|
|
11
40
|
const useElementBlockSelection = (func, toolsbars) => {
|
|
12
41
|
const editor = lexicalVue.useLexicalComposer();
|
|
13
|
-
const isSelected = vue.ref(false);
|
|
14
|
-
const curSelectKey = vue.ref(null);
|
|
15
|
-
const curSelectEl = vue.ref(null);
|
|
16
|
-
const curSelectPos = vue.ref(null);
|
|
17
|
-
const updateActiveBox = (el) => {
|
|
18
|
-
if (el) {
|
|
19
|
-
const selectRect = el.getBoundingClientRect();
|
|
20
|
-
curSelectPos.value = {
|
|
21
|
-
top: `${selectRect.y}px`,
|
|
22
|
-
left: `${selectRect.x}px`,
|
|
23
|
-
width: `${selectRect.width}px`,
|
|
24
|
-
height: `${selectRect.height}px`
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
const updateActiveViewState = (el) => {
|
|
29
|
-
if (el) {
|
|
30
|
-
updateActiveBox(el);
|
|
31
|
-
editor.dispatchCommand(SELECTED_ELEMENTBLOCK_COMMAND, {
|
|
32
|
-
element: curSelectEl.value,
|
|
33
|
-
toolsbars
|
|
34
|
-
});
|
|
35
|
-
} else {
|
|
36
|
-
curSelectEl.value = null;
|
|
37
|
-
curSelectKey.value = null;
|
|
38
|
-
curSelectPos.value = null;
|
|
39
|
-
editor.dispatchCommand(SELECTED_ELEMENTBLOCK_COMMAND, null);
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
const setSelection = async (nodeKey, el) => {
|
|
43
|
-
if (isSelected.value) {
|
|
44
|
-
isSelected.value = false;
|
|
45
|
-
await utils$1.clearSelection(editor);
|
|
46
|
-
}
|
|
47
|
-
await new Promise((reslove) => setTimeout(reslove, 10));
|
|
48
|
-
await utils$1.setSelected(editor, true, nodeKey);
|
|
49
|
-
curSelectEl.value = el == null ? editor.getElementByKey(nodeKey) : el;
|
|
50
|
-
curSelectKey.value = nodeKey;
|
|
51
|
-
isSelected.value = utils$1.isNodeSelected(editor, nodeKey);
|
|
52
|
-
setTimeout(() => updateActiveBox(curSelectEl.value), 500);
|
|
53
|
-
setTimeout(() => updateActiveBox(curSelectEl.value), 1e3);
|
|
54
|
-
};
|
|
55
|
-
vue.watch(isSelected, (state) => {
|
|
56
|
-
if (state) {
|
|
57
|
-
updateActiveViewState(state ? curSelectEl.value : null);
|
|
58
|
-
} else {
|
|
59
|
-
updateActiveViewState(null);
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
42
|
lexicalVue.useMounted(() => {
|
|
63
43
|
return utils.mergeRegister(
|
|
64
|
-
// 更新选中状态
|
|
65
|
-
editor.registerUpdateListener(() => {
|
|
66
|
-
isSelected.value = utils$1.isNodeSelected(editor, curSelectKey.value);
|
|
67
|
-
setTimeout(() => updateActiveBox(curSelectEl.value), 10);
|
|
68
|
-
}),
|
|
69
44
|
// 点击选中
|
|
70
45
|
editor.registerCommand(lexical.CLICK_COMMAND, (event) => {
|
|
71
46
|
const el = func(event.target);
|
|
72
47
|
const nodeKey = el == null ? void 0 : el.getAttribute("node-key");
|
|
73
48
|
if (nodeKey != null) {
|
|
74
49
|
event.preventDefault();
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
50
|
+
setElementBlockSelection(editor, nodeKey);
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
return false;
|
|
54
|
+
}, lexical.COMMAND_PRIORITY_LOW),
|
|
55
|
+
// 选中的话
|
|
56
|
+
editor.registerCommand(lexical.SELECTION_CHANGE_COMMAND, () => {
|
|
57
|
+
const selection = lexical.$getSelection();
|
|
58
|
+
const node = lexical.$isNodeSelection(selection) ? selection == null ? void 0 : selection.getNodes()[0] : null;
|
|
59
|
+
const nodeKey = node == null ? void 0 : node.__key;
|
|
60
|
+
const el = nodeKey ? editor.getElementByKey(nodeKey) : null;
|
|
61
|
+
if (nodeKey && el && func(el)) {
|
|
62
|
+
editor.dispatchCommand(SELECTED_ELEMENTBLOCK_COMMAND, {
|
|
63
|
+
nodeKey,
|
|
64
|
+
toolsbars
|
|
65
|
+
});
|
|
82
66
|
return true;
|
|
83
67
|
}
|
|
68
|
+
editor.dispatchCommand(SELECTED_ELEMENTBLOCK_COMMAND, null);
|
|
84
69
|
return false;
|
|
85
70
|
}, lexical.COMMAND_PRIORITY_LOW)
|
|
86
71
|
);
|
|
87
72
|
});
|
|
88
|
-
return { isSelected, setSelection, curSelectKey, curSelectPos };
|
|
89
73
|
};
|
|
90
74
|
exports.REMOVE_ELEMENTBLOCK_COMMAND = REMOVE_ELEMENTBLOCK_COMMAND;
|
|
91
75
|
exports.SELECTED_ELEMENTBLOCK_COMMAND = SELECTED_ELEMENTBLOCK_COMMAND;
|
|
92
76
|
exports.UPDATE_ELEMENTBLOCK_TOOLBAR_POS_COMMAND = UPDATE_ELEMENTBLOCK_TOOLBAR_POS_COMMAND;
|
|
77
|
+
exports.setElementBlockSelection = setElementBlockSelection;
|
|
93
78
|
exports.useElementBlockSelection = useElementBlockSelection;
|
|
94
79
|
//# sourceMappingURL=element-block.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element-block.js","sources":["../../../../../../src/components/basic/doc-editor/core/element-block.ts"],"sourcesContent":["\r\n\r\nimport { mergeRegister } from '@lexical/utils'\r\nimport { COMMAND_PRIORITY_LOW,CLICK_COMMAND, LexicalCommand, createCommand,
|
|
1
|
+
{"version":3,"file":"element-block.js","sources":["../../../../../../src/components/basic/doc-editor/core/element-block.ts"],"sourcesContent":["\r\n\r\nimport { mergeRegister } from '@lexical/utils'\r\n\r\nimport {\r\n $createNodeSelection,\r\n $getNodeByKey,\r\n $getSelection,\r\n $isNodeSelection,\r\n $setSelection,\r\n COMMAND_PRIORITY_LOW,CLICK_COMMAND, LexicalCommand, createCommand, NodeKey, LexicalEditor,\r\n SELECTION_CHANGE_COMMAND\r\n} from 'lexical'\r\nimport { useLexicalComposer,useMounted } from 'lexical-vue'\r\nimport { ref,watch,unref } from 'vue'\r\n\r\n/**\r\n * toolsbar的函数\r\n */\r\nexport type SelectElementBlockToolsbarFunction = (nodeKey?:NodeKey | string)=>Array<any>|null;\r\n\r\n/**\r\n * 元素抗选中类型\r\n */\r\nexport type SelectElementBlocktEventType = {\r\n nodeKey:NodeKey|string,\r\n toolsbars:Array<any>|SelectElementBlockToolsbarFunction\r\n}\r\n\r\n/**\r\n * 选中元素快\r\n */\r\nexport const SELECTED_ELEMENTBLOCK_COMMAND: LexicalCommand<SelectElementBlocktEventType|null> = createCommand('SELECTED_ELEMENTBLOCK_COMMAND')\r\n\r\n/**\r\n * 移除元素快\r\n */\r\nexport const REMOVE_ELEMENTBLOCK_COMMAND: LexicalCommand<undefined|null> = createCommand('REMOVE_ELEMENTBLOCK_COMMAND')\r\n\r\n/**\r\n * 更新模块工具条位置信息\r\n */\r\nexport const UPDATE_ELEMENTBLOCK_TOOLBAR_POS_COMMAND: LexicalCommand<undefined|null> = createCommand('UPDATE_ELEMENTBLOCK_TOOLBAR_POS_COMMAND')\r\n\r\n/**\r\n * 判断选中的方法\r\n */\r\nexport type SelectExistFunc = (el:HTMLElement)=>HTMLElement|null\r\n\r\n/**\r\n * 判断选中的方法\r\n */\r\nexport type ElementSelectionHandle = (el:HTMLElement)=>undefined\r\n\r\n\r\n\r\n// isNodeSelected \r\nconst isNodeSelected = function (editor: LexicalEditor, key: NodeKey): boolean {\r\n return editor.getEditorState().read(() => {\r\n const node = $getNodeByKey(key)\r\n if (node === null)\r\n return false\r\n return node.isSelected()\r\n })\r\n}\r\n\r\n// 取消选中\r\nconst clearSelection = (editor: LexicalEditor):Promise<undefined> => {\r\n return new Promise(resolove=>{\r\n editor.update(() => {\r\n const selection = $getSelection()\r\n if ($isNodeSelection(selection) && selection){\r\n selection.clear();\r\n }\r\n resolove(undefined)\r\n })\r\n })\r\n}\r\n\r\n// 设置选中\r\nconst setSelected = (editor: LexicalEditor,selected: boolean,key:string):Promise<undefined> => {\r\n\r\n return new Promise(resolove=>{\r\n editor.update(() => {\r\n let selection = $getSelection()\r\n \r\n if (!$isNodeSelection(selection)) {\r\n selection = $createNodeSelection()\r\n $setSelection(selection)\r\n }\r\n if ($isNodeSelection(selection)) {\r\n if (selected)\r\n selection.add(unref(key))\r\n else\r\n selection.delete(unref(key))\r\n }\r\n resolove(undefined)\r\n })\r\n })\r\n \r\n}\r\n\r\n// 设置选中\r\nexport const setElementBlockSelection = async (editor:LexicalEditor,nodeKey:string)=>{\r\n await clearSelection(editor);\r\n await setSelected(editor,true,nodeKey);\r\n}\r\n\r\n/**\r\n * 使用元素块选中\r\n */\r\nexport const useElementBlockSelection = (func:SelectExistFunc,toolsbars:Array<any>|SelectElementBlockToolsbarFunction)=>{\r\n\r\n const editor = useLexicalComposer()\r\n \r\n // 编辑器挂载\r\n useMounted(()=>{\r\n // 注册事件\r\n return mergeRegister(\r\n // 点击选中\r\n editor.registerCommand<MouseEvent>(CLICK_COMMAND,(event) => {\r\n \r\n const el = func(event.target as HTMLElement);\r\n const nodeKey = el?.getAttribute(\"node-key\");\r\n\r\n // 不为null的话则视为点击选中\r\n if(nodeKey != null){\r\n \r\n event.preventDefault();\r\n\r\n // 暂时不支持使用 shift 建 多选\r\n // if (!event.shiftKey) { \r\n // // 先取消\r\n // clearSelection(editor)\r\n // }\r\n setElementBlockSelection(editor,nodeKey);\r\n return true;\r\n }\r\n \r\n return false;\r\n }, COMMAND_PRIORITY_LOW),\r\n // 选中的话\r\n editor.registerCommand(SELECTION_CHANGE_COMMAND, () => {\r\n const selection = $getSelection();\r\n const node = $isNodeSelection(selection) ? selection?.getNodes()[0] : null;\r\n const nodeKey = node?.__key;\r\n const el = nodeKey ? editor.getElementByKey(nodeKey) : null;\r\n\r\n if(nodeKey && el && func(el)){\r\n editor.dispatchCommand(SELECTED_ELEMENTBLOCK_COMMAND,{ \r\n nodeKey:nodeKey, toolsbars:toolsbars\r\n });\r\n return true;\r\n }\r\n editor.dispatchCommand(SELECTED_ELEMENTBLOCK_COMMAND,null);\r\n return false;\r\n },COMMAND_PRIORITY_LOW)\r\n )\r\n })\r\n\r\n}\r\n"],"names":["createCommand","$getSelection","$isNodeSelection","$createNodeSelection","$setSelection","unref","useLexicalComposer","useMounted","mergeRegister","CLICK_COMMAND","COMMAND_PRIORITY_LOW","SELECTION_CHANGE_COMMAND"],"mappings":";;;;;;AAgCa,MAAA,gCAAmFA,sBAAc,+BAA+B;AAKhI,MAAA,8BAA8DA,sBAAc,6BAA6B;AAKzG,MAAA,0CAA0EA,sBAAc,yCAAyC;AAyB9I,MAAM,iBAAiB,CAAC,WAA6C;AAC5D,SAAA,IAAI,QAAQ,CAAU,aAAA;AAC3B,WAAO,OAAO,MAAM;AAClB,YAAM,YAAYC,QAAAA;AACd,UAAAC,QAAA,iBAAiB,SAAS,KAAK,WAAU;AAC3C,kBAAU,MAAM;AAAA,MAClB;AACA,eAAS,MAAS;AAAA,IAAA,CACnB;AAAA,EAAA,CACF;AACH;AAGA,MAAM,cAAc,CAAC,QAAsB,UAAkB,QAAkC;AAEtF,SAAA,IAAI,QAAQ,CAAU,aAAA;AAC3B,WAAO,OAAO,MAAM;AAClB,UAAI,YAAYD,QAAAA;AAEZ,UAAA,CAACC,QAAAA,iBAAiB,SAAS,GAAG;AAChC,oBAAYC,QAAqB,qBAAA;AACjCC,gBAAA,cAAc,SAAS;AAAA,MACzB;AACI,UAAAF,QAAAA,iBAAiB,SAAS,GAAG;AAEnB,kBAAA,IAAIG,UAAM,GAAG,CAAC;AAAA,MAG5B;AACA,eAAS,MAAS;AAAA,IAAA,CACnB;AAAA,EAAA,CACF;AAEH;AAGa,MAAA,2BAA2B,OAAO,QAAqB,YAAiB;AACnF,QAAM,eAAe,MAAM;AACrB,QAAA,YAAY,QAAO,MAAK,OAAO;AACvC;AAKa,MAAA,2BAA2B,CAAC,MAAqB,cAA0D;AAEtH,QAAM,SAASC,WAAAA;AAGfC,aAAAA,WAAW,MAAI;AAEN,WAAAC,MAAA;AAAA;AAAA,MAEL,OAAO,gBAA4BC,uBAAc,CAAC,UAAU;AAEpD,cAAA,KAAK,KAAK,MAAM,MAAqB;AACrC,cAAA,UAAU,yBAAI,aAAa;AAGjC,YAAG,WAAW,MAAK;AAEjB,gBAAM,eAAe;AAOrB,mCAAyB,QAAO,OAAO;AAChC,iBAAA;AAAA,QACT;AAEO,eAAA;AAAA,SACNC,4BAAoB;AAAA;AAAA,MAEvB,OAAO,gBAAgBC,QAAAA,0BAA0B,MAAM;AACrD,cAAM,YAAYV,QAAAA;AACZ,cAAA,OAAOC,yBAAiB,SAAS,IAAI,uCAAW,WAAW,KAAK;AACtE,cAAM,UAAU,6BAAM;AACtB,cAAM,KAAK,UAAU,OAAO,gBAAgB,OAAO,IAAI;AAEvD,YAAG,WAAW,MAAM,KAAK,EAAE,GAAE;AAC3B,iBAAO,gBAAgB,+BAA8B;AAAA,YACnD;AAAA,YAAiB;AAAA,UAAA,CAClB;AACM,iBAAA;AAAA,QACT;AACO,eAAA,gBAAgB,+BAA8B,IAAI;AAClD,eAAA;AAAA,SACPQ,4BAAoB;AAAA,IAAA;AAAA,EACxB,CACD;AAEH;;;;;;"}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const vue = require("vue");
|
|
4
4
|
const elementBlock = require("./element-block.js");
|
|
5
|
-
require("lexical");
|
|
6
5
|
const DEVICE_VIEW_MODE = vue.ref("pc");
|
|
7
6
|
const ToolbarExtendPlugins = vue.reactive([]);
|
|
8
7
|
const registerDocEditorToolbarExtend = function(options) {
|
|
@@ -12,6 +11,7 @@ const registerDocEditorToolbarExtend = function(options) {
|
|
|
12
11
|
exports.REMOVE_ELEMENTBLOCK_COMMAND = elementBlock.REMOVE_ELEMENTBLOCK_COMMAND;
|
|
13
12
|
exports.SELECTED_ELEMENTBLOCK_COMMAND = elementBlock.SELECTED_ELEMENTBLOCK_COMMAND;
|
|
14
13
|
exports.UPDATE_ELEMENTBLOCK_TOOLBAR_POS_COMMAND = elementBlock.UPDATE_ELEMENTBLOCK_TOOLBAR_POS_COMMAND;
|
|
14
|
+
exports.setElementBlockSelection = elementBlock.setElementBlockSelection;
|
|
15
15
|
exports.useElementBlockSelection = elementBlock.useElementBlockSelection;
|
|
16
16
|
exports.DEVICE_VIEW_MODE = DEVICE_VIEW_MODE;
|
|
17
17
|
exports.ToolbarExtendPlugins = ToolbarExtendPlugins;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../../src/components/basic/doc-editor/core/index.ts"],"sourcesContent":["\r\nimport { ref,reactive } from \"vue\"\r\nexport * from \"./element-block\"\r\
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../src/components/basic/doc-editor/core/index.ts"],"sourcesContent":["\r\nimport { ref,reactive } from \"vue\"\r\nexport * from \"./element-block\"\r\n\r\n/**\r\n * 设备显示模式\r\n */\r\nexport const DEVICE_VIEW_MODE = ref<'pc' | 'mobile'>(\"pc\")\r\n\r\n/**\r\n * 工具条扩展\r\n */\r\nexport type ToolbarExtendPlugin = {\r\n icon: string;\r\n text:string,\r\n action:Function,\r\n sort:number\r\n};\r\n\r\n/**\r\n * 插入的插件列表\r\n */\r\nexport const ToolbarExtendPlugins = reactive<ToolbarExtendPlugin[]>([]);\r\n\r\n/**\r\n * 注册工具条的扩展\r\n * @param options \r\n */\r\nexport const registerDocEditorToolbarExtend = function(options:ToolbarExtendPlugin){\r\n ToolbarExtendPlugins.push(options);\r\n ToolbarExtendPlugins.sort((a,b)=>a.sort<b.sort ? 1:-1);\r\n}\r\n\r\n\r\n"],"names":["ref","reactive"],"mappings":";;;;AAOa,MAAA,mBAAmBA,QAAqB,IAAI;AAe5C,MAAA,uBAAuBC,IAAgC,SAAA,EAAE;AAMzD,MAAA,iCAAiC,SAAS,SAA4B;AACjF,uBAAqB,KAAK,OAAO;AACZ,uBAAA,KAAK,CAAC,GAAE,MAAI,EAAE,OAAK,EAAE,OAAO,IAAE,EAAE;AACvD;;;;;;;;;"}
|
|
@@ -8,6 +8,7 @@ const index_vue_vue_type_script_setup_true_lang$1 = require("./plugins/RichTextP
|
|
|
8
8
|
const index_vue_vue_type_script_setup_true_lang$6 = require("./plugins/ElementBlockSelectionPlugin/index.vue.js");
|
|
9
9
|
const index_vue_vue_type_script_setup_true_lang$4 = require("./plugins/ModulePlugin/index.vue.js");
|
|
10
10
|
const index_vue_vue_type_script_setup_true_lang$5 = require("./plugins/GridPlugin/index.vue.js");
|
|
11
|
+
const index_vue_vue_type_script_setup_true_lang$7 = require("./plugins/TemplatePlugin/index.vue.js");
|
|
11
12
|
const nodes = require("./plugins/nodes.js");
|
|
12
13
|
const composables = require("./plugins/ModulePlugin/composables.js");
|
|
13
14
|
const index = require("./core/index.js");
|
|
@@ -61,10 +62,11 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
61
62
|
vue.onMounted(() => {
|
|
62
63
|
var _a, _b;
|
|
63
64
|
const doc = (_b = (_a = iframeContentRef.value) == null ? void 0 : _a.contentWindow) == null ? void 0 : _b.document;
|
|
65
|
+
const { Modules } = composables.useModule();
|
|
64
66
|
const style = document.createElement("style");
|
|
65
67
|
style.setAttribute("type", "text/css");
|
|
66
68
|
style.innerHTML = [docEditor, docTheme, docEditorEdit].join("\r\n");
|
|
67
|
-
style.innerHTML +=
|
|
69
|
+
style.innerHTML += Modules.filter((item) => item.editorCss).map((item) => item.editorCss).join("\r\n");
|
|
68
70
|
doc.head.append(style);
|
|
69
71
|
props.js.split(",").filter((item) => !!item).forEach((path) => {
|
|
70
72
|
const script = document.createElement("script");
|
|
@@ -129,6 +131,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
129
131
|
], 2)), [
|
|
130
132
|
[_directive_loading, __props.loading]
|
|
131
133
|
]),
|
|
134
|
+
vue.createVNode(vue.unref(index_vue_vue_type_script_setup_true_lang$7)),
|
|
132
135
|
vue.createVNode(vue.unref(lexicalVue.LexicalAutoFocusPlugin)),
|
|
133
136
|
vue.createVNode(vue.unref(lexicalVue.LexicalCheckListPlugin)),
|
|
134
137
|
vue.createVNode(vue.unref(lexicalVue.LexicalHashtagPlugin)),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor.vue.js","sources":["../../../../../src/components/basic/doc-editor/editor.vue"],"sourcesContent":["<template>\r\n <LexicalComposer :initial-config=\"config\">\r\n <div class=\"mk-doc-editor\" v-loading=\"loading\" :class=\"DEVICE_VIEW_MODE\">\r\n <ToolbarPlugin :js=\"js\" :css=\"css\" />\r\n <div class=\"mk-doc-editor__stage_warp\">\r\n <slot name=\"before-extentions\"></slot>\r\n <div class=\"mk-doc-editor__stage_body\">\r\n <slot name=\"header\"></slot>\r\n <iframe title=\"iframe\" class=\"mk-doc-editor__stage_iframe\" ref=\"iframeContentRef\"></iframe>\r\n <Teleport v-if=\"iframeBody\" :to=\"iframeBody\">\r\n <RichTextPlugin :content=\"props.content\" @change=\"contentChangeHandle\" :placeholder=\"placeholder\">\r\n </RichTextPlugin>\r\n <ImagePlugin />\r\n <AutoLinkPlugin />\r\n <ModulePlugin />\r\n <GridPlugin />\r\n </Teleport>\r\n <ElementBlockSelectionPlugin />\r\n <slot name=\"footer\"></slot>\r\n </div>\r\n <slot name=\"after-extentions\"></slot>\r\n </div>\r\n \r\n </div>\r\n <LexicalAutoFocusPlugin />\r\n <LexicalCheckListPlugin />\r\n <LexicalHashtagPlugin />\r\n <LexicalListPlugin />\r\n <LexicalHistoryPlugin />\r\n </LexicalComposer>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { defineOptions,defineProps,defineEmits,computed,ref,onMounted,watch } from \"vue\"\r\nimport {\r\n LexicalComposer,\r\n LexicalAutoFocusPlugin,\r\n LexicalCheckListPlugin,\r\n LexicalHashtagPlugin,\r\n LexicalHistoryPlugin,\r\n LexicalListPlugin,\r\n} from 'lexical-vue'\r\nimport { \r\n ToolbarPlugin,\r\n RichTextPlugin,\r\n AutoLinkPlugin,\r\n ImagePlugin,\r\n ElementBlockSelectionPlugin,\r\n GridPlugin,\r\n ModulePlugin\r\n} from \"./plugins\"\r\nimport {
|
|
1
|
+
{"version":3,"file":"editor.vue.js","sources":["../../../../../src/components/basic/doc-editor/editor.vue"],"sourcesContent":["<template>\r\n <LexicalComposer :initial-config=\"config\">\r\n <div class=\"mk-doc-editor\" v-loading=\"loading\" :class=\"DEVICE_VIEW_MODE\">\r\n <ToolbarPlugin :js=\"js\" :css=\"css\" />\r\n <div class=\"mk-doc-editor__stage_warp\">\r\n <slot name=\"before-extentions\"></slot>\r\n <div class=\"mk-doc-editor__stage_body\">\r\n <slot name=\"header\"></slot>\r\n <iframe title=\"iframe\" class=\"mk-doc-editor__stage_iframe\" ref=\"iframeContentRef\"></iframe>\r\n <Teleport v-if=\"iframeBody\" :to=\"iframeBody\">\r\n <RichTextPlugin :content=\"props.content\" @change=\"contentChangeHandle\" :placeholder=\"placeholder\">\r\n </RichTextPlugin>\r\n <ImagePlugin />\r\n <AutoLinkPlugin />\r\n <ModulePlugin />\r\n <GridPlugin />\r\n </Teleport>\r\n <ElementBlockSelectionPlugin />\r\n <slot name=\"footer\"></slot>\r\n </div>\r\n <slot name=\"after-extentions\"></slot>\r\n </div>\r\n \r\n </div>\r\n <TemplatePlguin />\r\n <LexicalAutoFocusPlugin />\r\n <LexicalCheckListPlugin />\r\n <LexicalHashtagPlugin />\r\n <LexicalListPlugin />\r\n <LexicalHistoryPlugin />\r\n </LexicalComposer>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { defineOptions,defineProps,defineEmits,computed,ref,onMounted,watch } from \"vue\"\r\nimport {\r\n LexicalComposer,\r\n LexicalAutoFocusPlugin,\r\n LexicalCheckListPlugin,\r\n LexicalHashtagPlugin,\r\n LexicalHistoryPlugin,\r\n LexicalListPlugin,\r\n} from 'lexical-vue'\r\nimport { \r\n ToolbarPlugin,\r\n RichTextPlugin,\r\n AutoLinkPlugin,\r\n ImagePlugin,\r\n ElementBlockSelectionPlugin,\r\n GridPlugin,\r\n ModulePlugin,\r\n TemplatePlguin\r\n} from \"./plugins\"\r\nimport { useModule } from \"./plugins/ModulePlugin/composables\"\r\nimport { DEVICE_VIEW_MODE } from \"./core\"\r\n\r\nimport DocTheme from \"./themes/DocTheme\";\r\nimport DocNodes from \"./plugins/nodes\"\r\nimport DocEditorCss from \"./themes/doc-editor.css?raw\";\r\nimport DocEditorEditCss from \"./themes/doc-editor-edit.css?raw\";\r\nimport DocThemeCss from \"./themes/doc-theme.css?raw\";\r\n\r\n// 定义组件\r\ndefineOptions({ name: \"MKDocEditor\" })\r\n\r\n// 事件\r\nconst emit = defineEmits(['change']);\r\n\r\n// 参数\r\nconst props = defineProps({\r\n placeholder:{type:String,default:\"这里输入正文...\"},\r\n content:{ type:String,default:`` },\r\n loading:{ type:Boolean,defualt:false},\r\n js:{ type:String,default:`` },\r\n css:{ type:String,default:`` }\r\n})\r\n \r\n\r\n// 配置\r\nconst config = {\r\n namespace: 'MyEditor',\r\n theme: DocTheme,\r\n nodes: [\r\n ...DocNodes,\r\n ],\r\n onError(error:Error) {\r\n // Catch any errors that occur during Lexical updates and log them\r\n // or throw them as needed. If you don't throw them, Lexical will\r\n // try to recover gracefully without losing user data.\r\n console.error(error)\r\n },\r\n}\r\n\r\n// iframe 编辑器\r\nconst iframeContentRef = ref(null as any);\r\nconst iframeBody = computed(()=>iframeContentRef.value?.contentWindow?.document?.body)\r\n\r\n//内容改变时\r\nconst updateStage = ()=>{\r\n setTimeout(() => {\r\n if(iframeBody.value?.scrollHeight > iframeBody.value?.offsetHeight){\r\n iframeContentRef.value.style.height = (iframeBody.value?.scrollHeight + 10)+\"px\";\r\n }\r\n }, 10);\r\n}\r\nconst contentChangeHandle = (content:any)=>{\r\n emit('change',content);\r\n updateStage();\r\n}\r\n\r\nonMounted(()=>{\r\n\r\n const doc = iframeContentRef.value?.contentWindow?.document;\r\n const { Modules } = useModule();\r\n\r\n // 样式\r\n const style = document.createElement(\"style\");\r\n style.setAttribute(\"type\",\"text/css\")\r\n\r\n // 默认样式\r\n style.innerHTML = [DocEditorCss,DocThemeCss,DocEditorEditCss].join(\"\\r\\n\");\r\n\r\n //模块渲染样式\r\n style.innerHTML += Modules.filter(item=>item.editorCss).map(item=>item.editorCss).join(\"\\r\\n\");\r\n\r\n doc.head.append(style);\r\n\r\n // 扩展的js和css\r\n props.js.split(\",\").filter(item=>!!item).forEach(path=>{\r\n const script = document.createElement(\"script\");\r\n script.src = path;\r\n script.setAttribute(\"crossorigin\",\"true\")\r\n doc.head.append(script);\r\n })\r\n\r\n props.css.split(\",\").filter(item=>!!item).forEach(path=>{\r\n const link = document.createElement(\"link\");\r\n link.href = path;\r\n link.setAttribute(\"rel\",\"stylesheet\")\r\n link.setAttribute(\"crossorigin\",\"true\")\r\n doc.head.append(link);\r\n })\r\n\r\n // 设备显示模式改变\r\n watch(DEVICE_VIEW_MODE,(payload: string) => {\r\n doc.body.style.fontSize = payload == \"pc\" ? \"14px\" : \"18px\";\r\n updateStage();\r\n return false\r\n },{ immediate :true})\r\n\r\n // 初始化计算舞台\r\n setTimeout(()=> updateStage(),500)\r\n});\r\n\r\n</script>\r\n"],"names":["DocNodes","ref","computed","onMounted","useModule","DocEditorCss","DocThemeCss","DocEditorEditCss","watch","DEVICE_VIEW_MODE"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkEA,UAAM,OAAO;AAGb,UAAM,QAAQ;AAUd,UAAM,SAAS;AAAA,MACb,WAAW;AAAA,MACX,OAAO;AAAA,MACP,OAAO;AAAA,QACL,GAAGA;AAAAA,MACL;AAAA,MACA,QAAQ,OAAa;AAInB,gBAAQ,MAAM,KAAK;AAAA,MACrB;AAAA,IAAA;AAII,UAAA,mBAAmBC,QAAI,IAAW;AACxC,UAAM,aAAaC,IAAS,SAAA;;AAAI,gDAAiB,UAAjB,mBAAwB,kBAAxB,mBAAuC,aAAvC,mBAAiD;AAAA,KAAI;AAGrF,UAAM,cAAc,MAAI;AACtB,iBAAW,MAAM;;AACf,cAAG,gBAAW,UAAX,mBAAkB,kBAAe,gBAAW,UAAX,mBAAkB,eAAa;AACjE,2BAAiB,MAAM,MAAM,WAAU,gBAAW,UAAX,mBAAkB,gBAAe,KAAI;AAAA,QAC9E;AAAA,SACC,EAAE;AAAA,IAAA;AAED,UAAA,sBAAsB,CAAC,YAAc;AACzC,WAAK,UAAS,OAAO;AACT;IAAA;AAGdC,QAAAA,UAAU,MAAI;;AAEN,YAAA,OAAM,4BAAiB,UAAjB,mBAAwB,kBAAxB,mBAAuC;AAC7C,YAAA,EAAE,YAAYC,YAAAA;AAGd,YAAA,QAAQ,SAAS,cAAc,OAAO;AACtC,YAAA,aAAa,QAAO,UAAU;AAGpC,YAAM,YAAY,CAACC,WAAaC,UAAYC,aAAgB,EAAE,KAAK,MAAM;AAGzE,YAAM,aAAa,QAAQ,OAAO,CAAA,SAAM,KAAK,SAAS,EAAE,IAAI,CAAM,SAAA,KAAK,SAAS,EAAE,KAAK,MAAM;AAEzF,UAAA,KAAK,OAAO,KAAK;AAGf,YAAA,GAAG,MAAM,GAAG,EAAE,OAAO,CAAM,SAAA,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAM,SAAA;AAC/C,cAAA,SAAS,SAAS,cAAc,QAAQ;AAC9C,eAAO,MAAM;AACN,eAAA,aAAa,eAAc,MAAM;AACpC,YAAA,KAAK,OAAO,MAAM;AAAA,MAAA,CACvB;AAEK,YAAA,IAAI,MAAM,GAAG,EAAE,OAAO,CAAM,SAAA,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAM,SAAA;AAChD,cAAA,OAAO,SAAS,cAAc,MAAM;AAC1C,aAAK,OAAO;AACP,aAAA,aAAa,OAAM,YAAY;AAC/B,aAAA,aAAa,eAAc,MAAM;AAClC,YAAA,KAAK,OAAO,IAAI;AAAA,MAAA,CACrB;AAGKC,gBAAAC,MAAAA,kBAAiB,CAAC,YAAoB;AAC1C,YAAI,KAAK,MAAM,WAAW,WAAW,OAAO,SAAS;AACzC;AACL,eAAA;AAAA,MAAA,GACP,EAAE,WAAW,KAAA,CAAK;AAGT,iBAAA,MAAK,eAAc,GAAG;AAAA,IAAA,CAClC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
const utils = require("@maketribe/utils");
|
|
4
4
|
const editor_vue_vue_type_script_setup_true_lang = require("./editor.vue.js");
|
|
5
|
+
const composables$1 = require("./plugins/TemplatePlugin/composables.js");
|
|
5
6
|
const MKDocEditor = utils.withInstall(editor_vue_vue_type_script_setup_true_lang);
|
|
7
|
+
exports.registerDocTemplate = composables$1.registerDocTemplate;
|
|
6
8
|
exports.MKDocEditor = MKDocEditor;
|
|
7
9
|
exports.default = MKDocEditor;
|
|
8
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/components/basic/doc-editor/index.ts"],"sourcesContent":["import { withInstall } from \"@maketribe/utils\";\r\nimport Editor from \"./editor.vue\";\r\nimport { registerDocModule } from \"./plugins/ModulePlugin/composables\";\r\n\r\nexport const MKDocEditor = withInstall(Editor);\r\n\r\nexport { registerDocModule }\r\n\r\nexport default MKDocEditor;\r\n\r\n"],"names":["withInstall","Editor"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/components/basic/doc-editor/index.ts"],"sourcesContent":["import { withInstall } from \"@maketribe/utils\";\r\nimport Editor from \"./editor.vue\";\r\nimport { registerDocModule } from \"./plugins/ModulePlugin/composables\";\r\nimport { registerDocTemplate } from \"./plugins/TemplatePlugin/composables\";\r\n\r\nexport const MKDocEditor = withInstall(Editor);\r\n\r\nexport { registerDocModule,registerDocTemplate }\r\n\r\nexport default MKDocEditor;\r\n\r\n"],"names":["withInstall","Editor"],"mappings":";;;;;AAKa,MAAA,cAAcA,kBAAYC,0CAAM;;;;"}
|
package/dist/cjs/components/basic/doc-editor/plugins/ElementBlockSelectionPlugin/index.vue.js
CHANGED
|
@@ -3,6 +3,15 @@ const vue = require("vue");
|
|
|
3
3
|
const lexical = require("lexical");
|
|
4
4
|
const utils = require("@lexical/utils");
|
|
5
5
|
const lexicalVue = require("lexical-vue");
|
|
6
|
+
const GridNode = require("../GridPlugin/GridNode.js");
|
|
7
|
+
require("../GridPlugin/TextGridNode.js");
|
|
8
|
+
require("../GridPlugin/LayoutGridNode.js");
|
|
9
|
+
require("../GridPlugin/ImageTextGridNode.js");
|
|
10
|
+
require("../GridPlugin/ModuleGridNode.js");
|
|
11
|
+
require("../ImagePlugin/commands.js");
|
|
12
|
+
const ImageNode = require("../ImagePlugin/ImageNode.js");
|
|
13
|
+
require("../ModulePlugin/commands.js");
|
|
14
|
+
const ModuleBlockNode = require("../ModulePlugin/ModuleBlockNode.js");
|
|
6
15
|
const index = require("../../core/index.js");
|
|
7
16
|
const elementBlock = require("../../core/element-block.js");
|
|
8
17
|
const lowPriority = 1;
|
|
@@ -10,6 +19,8 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
10
19
|
__name: "index",
|
|
11
20
|
setup(__props) {
|
|
12
21
|
const editor = lexicalVue.useLexicalComposer();
|
|
22
|
+
const isSelectGrid = vue.ref(false);
|
|
23
|
+
const selectionMarkPos = vue.ref({ left: "px", top: "0px", width: "0", height: "0" });
|
|
13
24
|
const toolbarRef = vue.ref(null);
|
|
14
25
|
const selectPayload = vue.shallowRef(null);
|
|
15
26
|
const toolsPos = vue.reactive({ left: "px", top: "0px" });
|
|
@@ -19,19 +30,63 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
19
30
|
const updateToolsPos = () => {
|
|
20
31
|
vue.nextTick(() => {
|
|
21
32
|
if (selectPayload.value != null && toolbarRef.value != null) {
|
|
33
|
+
const element = editor.getElementByKey(selectPayload.value.nodeKey);
|
|
22
34
|
const editIframeRect = toolbarRef.value.getRootNode().body.querySelector(".mk-doc-editor__stage_iframe").getBoundingClientRect();
|
|
23
35
|
const editBodyRect = toolbarRef.value.getRootNode().body.querySelector(".mk-doc-editor__stage_body").getBoundingClientRect();
|
|
24
36
|
const baseY = editIframeRect.y - editBodyRect.y;
|
|
25
|
-
const selectRect =
|
|
37
|
+
const selectRect = element.getBoundingClientRect();
|
|
26
38
|
const toolsRect = toolbarRef.value.getBoundingClientRect();
|
|
27
39
|
if (toolsRect) {
|
|
28
40
|
toolsPos.top = Math.max(selectRect.y - toolsRect.height - 5 + baseY, 5 + baseY) + "px";
|
|
29
|
-
toolsPos.left = toolsRect.width / -2 + selectRect.x + selectRect.width / 2 + "px";
|
|
41
|
+
toolsPos.left = Math.max(toolsRect.width / -2 + selectRect.x + selectRect.width / 2, -50) + "px";
|
|
30
42
|
}
|
|
43
|
+
selectionMarkPos.value = {
|
|
44
|
+
top: `${selectRect.y + baseY}px`,
|
|
45
|
+
left: `${selectRect.x}px`,
|
|
46
|
+
width: `${selectRect.width}px`,
|
|
47
|
+
height: `${selectRect.height}px`
|
|
48
|
+
};
|
|
31
49
|
}
|
|
32
50
|
});
|
|
33
51
|
return false;
|
|
34
52
|
};
|
|
53
|
+
const nodeDesc = vue.computed(() => {
|
|
54
|
+
if (selectPayload.value) {
|
|
55
|
+
const node = editor.getEditorState().read(() => {
|
|
56
|
+
return lexical.$getNodeByKey(selectPayload.value.nodeKey);
|
|
57
|
+
});
|
|
58
|
+
return node.getTitle ? node.getTitle() : "";
|
|
59
|
+
} else {
|
|
60
|
+
return "";
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
const canSelectedParentNode = vue.ref(false);
|
|
64
|
+
const selectedParentNode = () => {
|
|
65
|
+
const node = editor.getEditorState().read(() => {
|
|
66
|
+
return lexical.$getNodeByKey(selectPayload.value.nodeKey);
|
|
67
|
+
});
|
|
68
|
+
if (node && node.__parent) {
|
|
69
|
+
elementBlock.setElementBlockSelection(editor, node.__parent);
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
const canSelectedNextNode = vue.ref(false);
|
|
73
|
+
const selectedNextNode = () => {
|
|
74
|
+
const node = editor.getEditorState().read(() => {
|
|
75
|
+
return lexical.$getNodeByKey(selectPayload.value.nodeKey);
|
|
76
|
+
});
|
|
77
|
+
if (node && node.__next) {
|
|
78
|
+
elementBlock.setElementBlockSelection(editor, node.__next);
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
const canSelectedPrevNode = vue.ref(false);
|
|
82
|
+
const selectedPrevNode = () => {
|
|
83
|
+
const node = editor.getEditorState().read(() => {
|
|
84
|
+
return lexical.$getNodeByKey(selectPayload.value.nodeKey);
|
|
85
|
+
});
|
|
86
|
+
if (node && node.__prev) {
|
|
87
|
+
elementBlock.setElementBlockSelection(editor, node.__prev);
|
|
88
|
+
}
|
|
89
|
+
};
|
|
35
90
|
lexicalVue.useMounted(() => {
|
|
36
91
|
return utils.mergeRegister(
|
|
37
92
|
editor.registerCommand(elementBlock.UPDATE_ELEMENTBLOCK_TOOLBAR_POS_COMMAND, () => updateToolsPos(), lowPriority),
|
|
@@ -41,19 +96,11 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
41
96
|
if (payload != null) {
|
|
42
97
|
let toolsbarList = [];
|
|
43
98
|
if (typeof payload.toolsbars == "function") {
|
|
44
|
-
|
|
45
|
-
if (lexical.$isNodeSelection(selection)) {
|
|
46
|
-
toolsbarList = payload.toolsbars(selection) ?? [];
|
|
47
|
-
} else {
|
|
48
|
-
toolsbarList = payload.toolsbars(null) ?? [];
|
|
49
|
-
}
|
|
99
|
+
toolsbarList = payload.toolsbars(payload.nodeKey) ?? [];
|
|
50
100
|
} else {
|
|
51
101
|
toolsbarList = payload.toolsbars;
|
|
52
102
|
}
|
|
53
|
-
selectPayload.value = {
|
|
54
|
-
element: payload.element,
|
|
55
|
-
toolsbars: toolsbarList
|
|
56
|
-
};
|
|
103
|
+
selectPayload.value = { nodeKey: payload.nodeKey, toolsbars: toolsbarList };
|
|
57
104
|
} else {
|
|
58
105
|
selectPayload.value = null;
|
|
59
106
|
}
|
|
@@ -67,76 +114,167 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
67
114
|
editor.dispatchCommand(elementBlock.SELECTED_ELEMENTBLOCK_COMMAND, null);
|
|
68
115
|
}
|
|
69
116
|
return false;
|
|
117
|
+
}, lowPriority),
|
|
118
|
+
editor.registerCommand(lexical.SELECTION_CHANGE_COMMAND, () => {
|
|
119
|
+
const selection = lexical.$getSelection();
|
|
120
|
+
if (lexical.$isNodeSelection(selection)) {
|
|
121
|
+
const node = selection.getNodes()[0];
|
|
122
|
+
canSelectedParentNode.value = GridNode.$isGridNode(node == null ? void 0 : node.getParent());
|
|
123
|
+
if (node == null ? void 0 : node.__next) {
|
|
124
|
+
const nextNode = lexical.$getNodeByKey(node.__next);
|
|
125
|
+
canSelectedNextNode.value = (node == null ? void 0 : node.__next) ? GridNode.$isGridNode(nextNode) || ModuleBlockNode.$isModuleBlockNode(nextNode) || ImageNode.$isImageNode(nextNode) : false;
|
|
126
|
+
} else {
|
|
127
|
+
canSelectedNextNode.value = false;
|
|
128
|
+
}
|
|
129
|
+
if (node == null ? void 0 : node.__prev) {
|
|
130
|
+
const prevNode = lexical.$getNodeByKey(node.__prev);
|
|
131
|
+
canSelectedPrevNode.value = (node == null ? void 0 : node.__prev) ? GridNode.$isGridNode(prevNode) || ModuleBlockNode.$isModuleBlockNode(prevNode) || ImageNode.$isImageNode(prevNode) : false;
|
|
132
|
+
} else {
|
|
133
|
+
canSelectedPrevNode.value = false;
|
|
134
|
+
}
|
|
135
|
+
} else {
|
|
136
|
+
canSelectedParentNode.value = false;
|
|
137
|
+
canSelectedNextNode.value = false;
|
|
138
|
+
canSelectedPrevNode.value = false;
|
|
139
|
+
}
|
|
140
|
+
return updateToolsPos();
|
|
70
141
|
}, lowPriority)
|
|
71
|
-
// editor.registerCommand(SELECTION_CHANGE_COMMAND, (payload, newEditor) => {
|
|
72
|
-
// const selection = $getSelection();
|
|
73
|
-
// if($isNodeSelection(selection)){
|
|
74
|
-
// const node = selection.getNodes()[0]
|
|
75
|
-
// console.log(node,node.getTopLevelElement());
|
|
76
|
-
// }
|
|
77
|
-
// return updateToolsPos();
|
|
78
|
-
// },lowPriority)
|
|
79
142
|
);
|
|
80
143
|
});
|
|
81
144
|
return (_ctx, _cache) => {
|
|
82
|
-
const _component_MKSvgIcon = vue.resolveComponent("MKSvgIcon");
|
|
83
145
|
const _component_el_button = vue.resolveComponent("el-button");
|
|
146
|
+
const _component_MKSvgIcon = vue.resolveComponent("MKSvgIcon");
|
|
84
147
|
const _component_el_tooltip = vue.resolveComponent("el-tooltip");
|
|
85
148
|
const _component_el_button_group = vue.resolveComponent("el-button-group");
|
|
86
|
-
return
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
149
|
+
return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [
|
|
150
|
+
selectPayload.value != null ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
151
|
+
key: 0,
|
|
152
|
+
ref_key: "toolbarRef",
|
|
153
|
+
ref: toolbarRef,
|
|
154
|
+
class: "mk-doc-editor-decorator-module-toolbar",
|
|
155
|
+
style: vue.normalizeStyle(toolsPos)
|
|
156
|
+
}, [
|
|
157
|
+
vue.createVNode(_component_el_button_group, null, {
|
|
158
|
+
default: vue.withCtx(() => [
|
|
159
|
+
nodeDesc.value ? (vue.openBlock(), vue.createBlock(_component_el_button, {
|
|
160
|
+
key: 0,
|
|
161
|
+
text: "",
|
|
162
|
+
bg: "",
|
|
163
|
+
style: { "font-size": "14px" }
|
|
164
|
+
}, {
|
|
165
|
+
default: vue.withCtx(() => [
|
|
166
|
+
vue.createTextVNode(vue.toDisplayString(nodeDesc.value), 1)
|
|
167
|
+
]),
|
|
168
|
+
_: 1
|
|
169
|
+
})) : vue.createCommentVNode("", true),
|
|
170
|
+
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(selectPayload.value.toolsbars, (item) => {
|
|
171
|
+
return vue.openBlock(), vue.createBlock(_component_el_tooltip, {
|
|
172
|
+
effect: "dark",
|
|
173
|
+
content: item.title,
|
|
174
|
+
placement: "top"
|
|
175
|
+
}, {
|
|
176
|
+
default: vue.withCtx(() => [
|
|
177
|
+
vue.createVNode(_component_el_button, {
|
|
178
|
+
text: "",
|
|
179
|
+
onClick: ($event) => item.action()
|
|
180
|
+
}, {
|
|
181
|
+
default: vue.withCtx(() => [
|
|
182
|
+
vue.createVNode(_component_MKSvgIcon, {
|
|
183
|
+
iconClass: item.icon
|
|
184
|
+
}, null, 8, ["iconClass"])
|
|
185
|
+
]),
|
|
186
|
+
_: 2
|
|
187
|
+
}, 1032, ["onClick"])
|
|
188
|
+
]),
|
|
189
|
+
_: 2
|
|
190
|
+
}, 1032, ["content"]);
|
|
191
|
+
}), 256)),
|
|
192
|
+
canSelectedParentNode.value ? (vue.openBlock(), vue.createBlock(_component_el_tooltip, {
|
|
193
|
+
key: 1,
|
|
97
194
|
effect: "dark",
|
|
98
|
-
content:
|
|
195
|
+
content: "上层容器",
|
|
99
196
|
placement: "top"
|
|
100
197
|
}, {
|
|
101
198
|
default: vue.withCtx(() => [
|
|
102
199
|
vue.createVNode(_component_el_button, {
|
|
103
200
|
text: "",
|
|
104
|
-
onClick: ($event) =>
|
|
201
|
+
onClick: _cache[0] || (_cache[0] = ($event) => selectedParentNode())
|
|
105
202
|
}, {
|
|
106
203
|
default: vue.withCtx(() => [
|
|
107
|
-
vue.createVNode(_component_MKSvgIcon, {
|
|
108
|
-
iconClass: item.icon
|
|
109
|
-
}, null, 8, ["iconClass"])
|
|
204
|
+
vue.createVNode(_component_MKSvgIcon, { iconClass: `ArrowUpBold` })
|
|
110
205
|
]),
|
|
111
|
-
_:
|
|
112
|
-
}
|
|
206
|
+
_: 1
|
|
207
|
+
})
|
|
113
208
|
]),
|
|
114
|
-
_:
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
209
|
+
_: 1
|
|
210
|
+
})) : vue.createCommentVNode("", true),
|
|
211
|
+
canSelectedPrevNode.value ? (vue.openBlock(), vue.createBlock(_component_el_tooltip, {
|
|
212
|
+
key: 2,
|
|
213
|
+
effect: "dark",
|
|
214
|
+
content: "上一个",
|
|
215
|
+
placement: "top"
|
|
216
|
+
}, {
|
|
217
|
+
default: vue.withCtx(() => [
|
|
218
|
+
vue.createVNode(_component_el_button, {
|
|
219
|
+
text: "",
|
|
220
|
+
onClick: _cache[1] || (_cache[1] = ($event) => selectedPrevNode())
|
|
221
|
+
}, {
|
|
222
|
+
default: vue.withCtx(() => [
|
|
223
|
+
vue.createVNode(_component_MKSvgIcon, { iconClass: `ArrowLeftBold` })
|
|
224
|
+
]),
|
|
225
|
+
_: 1
|
|
226
|
+
})
|
|
227
|
+
]),
|
|
228
|
+
_: 1
|
|
229
|
+
})) : vue.createCommentVNode("", true),
|
|
230
|
+
canSelectedNextNode.value ? (vue.openBlock(), vue.createBlock(_component_el_tooltip, {
|
|
231
|
+
key: 3,
|
|
232
|
+
effect: "dark",
|
|
233
|
+
content: "下一个",
|
|
234
|
+
placement: "top"
|
|
235
|
+
}, {
|
|
236
|
+
default: vue.withCtx(() => [
|
|
237
|
+
vue.createVNode(_component_el_button, {
|
|
238
|
+
text: "",
|
|
239
|
+
onClick: _cache[2] || (_cache[2] = ($event) => selectedNextNode())
|
|
240
|
+
}, {
|
|
241
|
+
default: vue.withCtx(() => [
|
|
242
|
+
vue.createVNode(_component_MKSvgIcon, { iconClass: `ArrowRightBold` })
|
|
243
|
+
]),
|
|
244
|
+
_: 1
|
|
245
|
+
})
|
|
246
|
+
]),
|
|
247
|
+
_: 1
|
|
248
|
+
})) : vue.createCommentVNode("", true),
|
|
249
|
+
vue.createVNode(_component_el_tooltip, {
|
|
250
|
+
effect: "dark",
|
|
251
|
+
content: "删除",
|
|
252
|
+
placement: "top"
|
|
253
|
+
}, {
|
|
254
|
+
default: vue.withCtx(() => [
|
|
255
|
+
vue.createVNode(_component_el_button, {
|
|
256
|
+
text: "",
|
|
257
|
+
type: "danger",
|
|
258
|
+
onClick: _cache[3] || (_cache[3] = ($event) => vue.unref(editor).dispatchCommand(vue.unref(elementBlock.REMOVE_ELEMENTBLOCK_COMMAND), null))
|
|
259
|
+
}, {
|
|
260
|
+
default: vue.withCtx(() => [
|
|
261
|
+
vue.createVNode(_component_MKSvgIcon, { iconClass: `Delete` })
|
|
262
|
+
]),
|
|
263
|
+
_: 1
|
|
264
|
+
})
|
|
265
|
+
]),
|
|
266
|
+
_: 1
|
|
267
|
+
})
|
|
268
|
+
]),
|
|
269
|
+
_: 1
|
|
270
|
+
})
|
|
271
|
+
], 4)) : vue.createCommentVNode("", true),
|
|
272
|
+
selectPayload.value != null ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
273
|
+
key: 1,
|
|
274
|
+
class: vue.normalizeClass(["mk-doc-selection-element-block-mark box", { box: isSelectGrid.value }]),
|
|
275
|
+
style: vue.normalizeStyle(selectionMarkPos.value)
|
|
276
|
+
}, null, 6)) : vue.createCommentVNode("", true)
|
|
277
|
+
], 64);
|
|
140
278
|
};
|
|
141
279
|
}
|
|
142
280
|
});
|