@maketribe/ms-app 3.2.31 → 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/data-tree-select/data-tree-select-options.js +1 -1
- package/dist/cjs/components/basic/data-tree-select/data-tree-select-options.js.map +1 -1
- 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 +10 -3
- 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 +41 -43
- 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 +44 -22
- 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/composables/part-extensions.js +0 -1
- package/dist/cjs/modules/cms/composables/part-extensions.js.map +1 -1
- package/dist/cjs/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.js +0 -1
- package/dist/cjs/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.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 +6 -6
- package/dist/cjs/modules/cms/pages/cms-contents/index.vue2.js.map +1 -1
- package/dist/cjs/modules/ms/components/rich-text-editor/index.js +2 -6
- package/dist/cjs/modules/ms/components/rich-text-editor/index.js.map +1 -1
- package/dist/cjs/modules/ms/components/rich-text-editor/rich-text-editor-options.js +17 -0
- package/dist/cjs/modules/ms/components/rich-text-editor/rich-text-editor-options.js.map +1 -1
- package/dist/cjs/modules/ms/components/rich-text-editor/rich-text-editor.js +12 -8
- package/dist/cjs/modules/ms/components/rich-text-editor/rich-text-editor.js.map +1 -1
- package/dist/cjs/modules/ms/components/rich-text-editor/skins/ui/ms/skin.js +1 -1
- package/dist/cjs/modules/ms/components/rich-text-editor/skins/ui/ms/skin.js.map +1 -1
- package/dist/cjs/modules/ms/index.js +1 -0
- package/dist/cjs/modules/ms/index.js.map +1 -1
- package/dist/esm/components/basic/data-tree-select/data-tree-select-options.js +1 -1
- package/dist/esm/components/basic/data-tree-select/data-tree-select-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 +12 -5
- 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 +41 -43
- 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 +44 -22
- 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/composables/part-extensions.js +0 -1
- package/dist/esm/modules/cms/composables/part-extensions.js.map +1 -1
- package/dist/esm/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.js +0 -1
- package/dist/esm/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.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 +6 -6
- package/dist/esm/modules/cms/pages/cms-contents/index.vue2.js.map +1 -1
- package/dist/esm/modules/ms/components/rich-text-editor/index.js +2 -5
- package/dist/esm/modules/ms/components/rich-text-editor/index.js.map +1 -1
- package/dist/esm/modules/ms/components/rich-text-editor/rich-text-editor-options.js +17 -0
- package/dist/esm/modules/ms/components/rich-text-editor/rich-text-editor-options.js.map +1 -1
- package/dist/esm/modules/ms/components/rich-text-editor/rich-text-editor.js +12 -8
- package/dist/esm/modules/ms/components/rich-text-editor/rich-text-editor.js.map +1 -1
- package/dist/esm/modules/ms/components/rich-text-editor/skins/ui/ms/skin.js +1 -1
- package/dist/esm/modules/ms/components/rich-text-editor/skins/ui/ms/skin.js.map +1 -1
- package/dist/esm/modules/ms/index.js +1 -0
- package/dist/esm/modules/ms/index.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 +4 -0
- 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/editor.vue.d.ts +9 -0
- package/dist/types/components/basic/doc-editor/index.d.ts +21 -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 +39 -0
- package/dist/types/modules/ms/components/rich-text-editor/rich-text-editor-options.d.ts +18 -0
- package/dist/types/modules/ms/components/rich-text-editor/rich-text-editor.d.ts +41 -0
- package/package.json +4 -4
- 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
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { ref, createVNode, Fragment, createTextVNode } from "vue";
|
|
2
|
+
import { $getSelection, $isNodeSelection, COMMAND_PRIORITY_EDITOR } from "lexical";
|
|
3
|
+
import { $generateNodesFromDOM } from "@lexical/html";
|
|
4
|
+
import { Dialoger } from "@maketribe/dm";
|
|
5
|
+
import { ElInput, ElButton } from "element-plus";
|
|
6
|
+
import { Search } from "@element-plus/icons-vue";
|
|
7
|
+
import { INSERT_TEMPLATE_COMMAND } from "./commands.js";
|
|
8
|
+
import { useLexicalComposer, useMounted } from "lexical-vue";
|
|
9
|
+
import { mergeRegister, $insertNodeToNearestRoot } from "@lexical/utils";
|
|
10
|
+
const Templates = [];
|
|
11
|
+
const registerDocTemplate = (options) => {
|
|
12
|
+
if (Templates.findIndex((item) => item.name == options.name) >= 0) {
|
|
13
|
+
console.warn(`模版【${options.title}】重复注册!`);
|
|
14
|
+
} else {
|
|
15
|
+
Templates.push(options);
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
const parser = new DOMParser();
|
|
19
|
+
const useTemplate = () => {
|
|
20
|
+
const editor = useLexicalComposer();
|
|
21
|
+
const findTemplateNodesByName = (name) => {
|
|
22
|
+
const template = Templates.find((item) => item.name == name);
|
|
23
|
+
if (template != null) {
|
|
24
|
+
return $generateNodesFromDOM(editor, parser.parseFromString(template.template.trim(), "text/html"));
|
|
25
|
+
}
|
|
26
|
+
throw new Error("未知的模版:【" + name + "】");
|
|
27
|
+
};
|
|
28
|
+
useMounted(() => {
|
|
29
|
+
return mergeRegister(
|
|
30
|
+
// 插入模版
|
|
31
|
+
editor.registerCommand(INSERT_TEMPLATE_COMMAND, (name) => {
|
|
32
|
+
const selection = $getSelection();
|
|
33
|
+
const elementNode = $isNodeSelection(selection) ? selection == null ? void 0 : selection.getNodes()[0] : null;
|
|
34
|
+
const templateNodes = findTemplateNodesByName(name);
|
|
35
|
+
if (elementNode) {
|
|
36
|
+
templateNodes.forEach((node) => elementNode.append(node));
|
|
37
|
+
} else {
|
|
38
|
+
templateNodes.forEach((node) => $insertNodeToNearestRoot(node));
|
|
39
|
+
}
|
|
40
|
+
return true;
|
|
41
|
+
}, COMMAND_PRIORITY_EDITOR)
|
|
42
|
+
);
|
|
43
|
+
});
|
|
44
|
+
};
|
|
45
|
+
const showTemplateSelectDialog = function() {
|
|
46
|
+
return new Promise((resolve) => {
|
|
47
|
+
const selectOption = ref(null);
|
|
48
|
+
const searchInputValue = ref("");
|
|
49
|
+
const handleCancelClick = () => {
|
|
50
|
+
dialogInstance.destroy();
|
|
51
|
+
};
|
|
52
|
+
const handleConfirmClick = () => {
|
|
53
|
+
var _a;
|
|
54
|
+
dialogInstance.destroy();
|
|
55
|
+
resolve((_a = selectOption.value) == null ? void 0 : _a.name);
|
|
56
|
+
};
|
|
57
|
+
const clickHandle = (item) => {
|
|
58
|
+
selectOption.value = item;
|
|
59
|
+
};
|
|
60
|
+
const dialogInstance = Dialoger.customRender({
|
|
61
|
+
title: "模版选择",
|
|
62
|
+
class: "mk-doc-editor__module-template_dialog",
|
|
63
|
+
width: "700px",
|
|
64
|
+
onClose: () => {
|
|
65
|
+
dialogInstance.destroy();
|
|
66
|
+
},
|
|
67
|
+
body: () => {
|
|
68
|
+
const templateListComponent = Templates.filter((item) => {
|
|
69
|
+
if (searchInputValue.value) {
|
|
70
|
+
return item.name.indexOf(searchInputValue.value) >= 0 || item.title.indexOf(searchInputValue.value) >= 0;
|
|
71
|
+
} else {
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
}).map((item) => {
|
|
75
|
+
var _a;
|
|
76
|
+
return createVNode("div", {
|
|
77
|
+
"class": `mk-doc-editor__module-template_dialog_list-item ${item.cover ? "cover" : ""} ${((_a = selectOption.value) == null ? void 0 : _a.name) == item.name ? "active" : ""}`,
|
|
78
|
+
"onClick": () => clickHandle(item)
|
|
79
|
+
}, [item.cover ? createVNode("img", {
|
|
80
|
+
"src": item.cover
|
|
81
|
+
}, null) : null, createVNode("div", {
|
|
82
|
+
"class": "mk-doc-editor__module-template_dialog_list-item_title"
|
|
83
|
+
}, [item.title])]);
|
|
84
|
+
});
|
|
85
|
+
return createVNode("div", {
|
|
86
|
+
"class": "mk-doc-editor__module-template_dialog_warp"
|
|
87
|
+
}, [createVNode(ElInput, {
|
|
88
|
+
"modelValue": searchInputValue.value,
|
|
89
|
+
"onUpdate:modelValue": ($event) => searchInputValue.value = $event,
|
|
90
|
+
"prefix-icon": Search,
|
|
91
|
+
"clearable": true
|
|
92
|
+
}, null), createVNode("div", {
|
|
93
|
+
"class": "mk-doc-editor__module-template_dialog_list-body"
|
|
94
|
+
}, [templateListComponent])]);
|
|
95
|
+
},
|
|
96
|
+
footer: () => {
|
|
97
|
+
return createVNode(Fragment, null, [createVNode(ElButton, {
|
|
98
|
+
"onClick": handleCancelClick
|
|
99
|
+
}, {
|
|
100
|
+
default: () => [createTextVNode("取消")]
|
|
101
|
+
}), createVNode(ElButton, {
|
|
102
|
+
"type": "primary",
|
|
103
|
+
"onClick": handleConfirmClick,
|
|
104
|
+
"disabled": !selectOption.value
|
|
105
|
+
}, {
|
|
106
|
+
default: () => [createTextVNode("确定")]
|
|
107
|
+
})]);
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
};
|
|
112
|
+
export {
|
|
113
|
+
Templates,
|
|
114
|
+
registerDocTemplate,
|
|
115
|
+
showTemplateSelectDialog,
|
|
116
|
+
useTemplate
|
|
117
|
+
};
|
|
118
|
+
//# sourceMappingURL=composables.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composables.js","sources":["../../../../../../../src/components/basic/doc-editor/plugins/TemplatePlugin/composables.tsx"],"sourcesContent":["import { $getSelection, $isNodeSelection, COMMAND_PRIORITY_EDITOR, ElementNode, LexicalEditor, LexicalNode } from \"lexical\";\r\nimport { $generateNodesFromDOM } from \"@lexical/html\";\r\nimport { ref,Fragment } from \"vue\";\r\nimport { Dialoger } from \"@maketribe/dm\";\r\nimport { ElButton,ElInput } from \"element-plus\";\r\nimport { Search } from \"@element-plus/icons-vue\";\r\nimport { INSERT_TEMPLATE_COMMAND } from \"./commands\"\r\nimport { useMounted,useLexicalComposer } from \"lexical-vue\";\r\nimport { $insertNodeToNearestRoot, mergeRegister } from \"@lexical/utils\";\r\n\r\n/**\r\n * 模版类型\r\n */\r\nexport type TemplateType = {\r\n name:string,\r\n title:string,\r\n cover:string,\r\n template:string\r\n}\r\n\r\n/**\r\n * 模版定义\r\n */\r\nexport const Templates:TemplateType[] = [];\r\n\r\n/**\r\n * 注册模版\r\n * @param options \r\n */\r\nexport const registerDocTemplate = (options:TemplateType) => {\r\n\r\n if(Templates.findIndex(item=>item.name == options.name) >= 0){\r\n console.warn(`模版【${options.title}】重复注册!`);\r\n }\r\n else{\r\n Templates.push(options);\r\n }\r\n}\r\n\r\n/**\r\n * 卸载模块\r\n * @param name \r\n */\r\nexport const unRegisterDocTemplate = (name:string) => {\r\n\r\n for(let i = 0;i < Templates.length; i++){\r\n if(Templates[i].name == name){\r\n Templates.splice(i,1);\r\n break;\r\n }\r\n }\r\n}\r\n\r\n// dom 解析器\r\nconst parser = new DOMParser();\r\n\r\n/**\r\n * \r\n * @param name \r\n * @returns \r\n */\r\nexport const useTemplate = () => {\r\n\r\n // 编辑器\r\n const editor = useLexicalComposer()\r\n\r\n const findTemplateNodesByName = (name:string):LexicalNode[] => {\r\n\r\n const template = Templates.find(item=>item.name == name);\r\n\r\n if(template != null){\r\n return $generateNodesFromDOM(editor,parser.parseFromString(template.template.trim(),\"text/html\"));\r\n }\r\n\r\n throw new Error(\"未知的模版:【\" + name + \"】\");\r\n }\r\n\r\n // 编辑器挂载\r\n useMounted(()=>{\r\n\r\n return mergeRegister(\r\n // 插入模版\r\n editor.registerCommand<string>(INSERT_TEMPLATE_COMMAND,(name) => {\r\n\r\n const selection = $getSelection()\r\n const elementNode = $isNodeSelection(selection) ? selection?.getNodes()[0] as ElementNode : null;\r\n const templateNodes = findTemplateNodesByName(name)\r\n\r\n if (elementNode) {\r\n templateNodes.forEach(node=> elementNode.append(node))\r\n }\r\n else{\r\n templateNodes.forEach(node=> $insertNodeToNearestRoot(node))\r\n }\r\n return true\r\n },COMMAND_PRIORITY_EDITOR)\r\n )\r\n })\r\n\r\n\r\n}\r\n\r\n\r\n/**\r\n * 显示模块模版选择\r\n * @returns \r\n */\r\nexport const showTemplateSelectDialog = function():Promise<string> {\r\n\r\n return new Promise<string>((resolve:any)=> {\r\n\r\n const selectOption = ref<TemplateType|null>(null);\r\n const searchInputValue = ref(\"\");\r\n\r\n // 取消编辑\r\n const handleCancelClick = () => {\r\n dialogInstance.destroy();\r\n };\r\n\r\n // 确认编辑\r\n const handleConfirmClick = () => {\r\n dialogInstance.destroy();\r\n resolve(selectOption.value?.name);\r\n };\r\n\r\n // 点击块\r\n const clickHandle = (item:any)=>{\r\n selectOption.value = item;\r\n }\r\n\r\n const dialogInstance = Dialoger.customRender({\r\n title: \"模版选择\",\r\n class: \"mk-doc-editor__module-template_dialog\",\r\n width: \"700px\",\r\n onClose: () => {\r\n dialogInstance.destroy();\r\n },\r\n body: () => {\r\n\r\n // 循环体\r\n const templateListComponent = Templates.filter(item=>{\r\n if(searchInputValue.value){\r\n return item.name.indexOf(searchInputValue.value) >= 0 || item.title.indexOf(searchInputValue.value) >= 0\r\n }\r\n else{\r\n return true;\r\n }\r\n }).map(item=>{\r\n\r\n return <div \r\n class={`mk-doc-editor__module-template_dialog_list-item ${(item.cover ? 'cover':'')} ${(selectOption.value?.name == item.name ? 'active':'')}`} \r\n onClick={()=>clickHandle(item)}>\r\n {item.cover ? <img src={item.cover} /> :null}\r\n <div class=\"mk-doc-editor__module-template_dialog_list-item_title\">{item.title}</div>\r\n </div>\r\n })\r\n\r\n return <div class=\"mk-doc-editor__module-template_dialog_warp\">\r\n <ElInput v-model={searchInputValue.value} prefix-icon={Search} clearable={true} />\r\n <div class=\"mk-doc-editor__module-template_dialog_list-body\">\r\n {templateListComponent}\r\n </div>\r\n </div>\r\n },\r\n footer: () => {\r\n return <Fragment>\r\n <ElButton onClick={handleCancelClick}>取消</ElButton>\r\n <ElButton type=\"primary\" onClick={handleConfirmClick} disabled={!selectOption.value}>\r\n 确定\r\n </ElButton>\r\n </Fragment>\r\n },\r\n });\r\n });\r\n}\r\n"],"names":["Templates","registerDocTemplate","options","findIndex","item","name","console","warn","title","push","parser","DOMParser","useTemplate","editor","useLexicalComposer","findTemplateNodesByName","template","find","$generateNodesFromDOM","parseFromString","trim","Error","useMounted","mergeRegister","registerCommand","INSERT_TEMPLATE_COMMAND","selection","$getSelection","elementNode","$isNodeSelection","getNodes","templateNodes","forEach","node","append","$insertNodeToNearestRoot","COMMAND_PRIORITY_EDITOR","showTemplateSelectDialog","Promise","resolve","selectOption","ref","searchInputValue","handleCancelClick","dialogInstance","destroy","handleConfirmClick","value","clickHandle","Dialoger","customRender","class","width","onClose","body","templateListComponent","filter","indexOf","map","_createVNode","cover","onClick","ElInput","$event","Search","footer","_Fragment","ElButton","default","_createTextVNode"],"mappings":";;;;;;;;;AAuBO,MAAMA,YAA2B,CAAE;AAM7BC,MAAAA,sBAAuBC,aAAyB;AAE3D,MAAGF,UAAUG,UAAUC,UAAMA,KAAKC,QAAQH,QAAQG,IAAI,KAAK,GAAE;AAC3DC,YAAQC,KAAK,MAAML,QAAQM,KAAK,QAAQ;AAAA,EAC1C,OACI;AACFR,cAAUS,KAAKP,OAAO;AAAA,EACxB;AACF;AAiBA,MAAMQ,SAAS,IAAIC;AAONC,MAAAA,cAAcA,MAAM;AAG/B,QAAMC,SAASC;AAEf,QAAMC,0BAA2BV,UAA8B;AAE7D,UAAMW,WAAWhB,UAAUiB,KAAKb,UAAMA,KAAKC,QAAQA,IAAI;AAEvD,QAAGW,YAAY,MAAK;AAClB,aAAOE,sBAAsBL,QAAOH,OAAOS,gBAAgBH,SAASA,SAASI,KAAI,GAAG,WAAW,CAAC;AAAA,IAClG;AAEA,UAAM,IAAIC,MAAM,YAAYhB,OAAO,GAAG;AAAA;AAIxCiB,aAAW,MAAI;AAEb,WAAOC;AAAAA;AAAAA,MAELV,OAAOW,gBAAwBC,yBAAyBpB,UAAS;AAE/D,cAAMqB,YAAYC;AAClB,cAAMC,cAAcC,iBAAiBH,SAAS,IAAIA,uCAAWI,WAAW,KAAoB;AAC5F,cAAMC,gBAAgBhB,wBAAwBV,IAAI;AAElD,YAAIuB,aAAa;AACfG,wBAAcC,QAAQC,UAAOL,YAAYM,OAAOD,IAAI,CAAC;AAAA,QACvD,OACI;AACFF,wBAAcC,QAAQC,UAAOE,yBAAyBF,IAAI,CAAC;AAAA,QAC7D;AACA,eAAO;AAAA,SACPG,uBAAuB;AAAA,IAC3B;AAAA,EACF,CAAC;AAGH;AAOaC,MAAAA,2BAA2B,WAA2B;AAEjE,SAAO,IAAIC,QAAiBC,aAAe;AAEzC,UAAMC,eAAeC,IAAuB,IAAI;AAChD,UAAMC,mBAAmBD,IAAI,EAAE;AAG/B,UAAME,oBAAoBA,MAAM;AAC9BC,qBAAeC,QAAO;AAAA;AAIxB,UAAMC,qBAAqBA,MAAM;;AAC/BF,qBAAeC,QAAO;AACtBN,eAAQC,kBAAaO,UAAbP,mBAAoBnC,IAAI;AAAA;AAIlC,UAAM2C,cAAe5C,UAAW;AAC9BoC,mBAAaO,QAAQ3C;AAAAA;AAGvB,UAAMwC,iBAAiBK,SAASC,aAAa;AAAA,MAC3C1C,OAAO;AAAA,MACP2C,OAAO;AAAA,MACPC,OAAO;AAAA,MACPC,SAASA,MAAM;AACbT,uBAAeC,QAAO;AAAA,MACvB;AAAA,MACDS,MAAMA,MAAM;AAGV,cAAMC,wBAAwBvD,UAAUwD,OAAOpD,UAAM;AACnD,cAAGsC,iBAAiBK,OAAM;AACxB,mBAAO3C,KAAKC,KAAKoD,QAAQf,iBAAiBK,KAAK,KAAK,KAAK3C,KAAKI,MAAMiD,QAAQf,iBAAiBK,KAAK,KAAK;AAAA,UACzG,OACI;AACF,mBAAO;AAAA,UACT;AAAA,QACF,CAAC,EAAEW,IAAItD,UAAM;;AAEX,iBAAAuD,YAAA,OAAA;AAAA,YAAA,SACO,mDAAoDvD,KAAKwD,QAAQ,UAAQ,EAAE,MAAMpB,kBAAaO,UAAbP,mBAAoBnC,SAAQD,KAAKC,OAAO,WAAS,EAAE;AAAA,YAAG,WACrIwD,MAAIb,YAAY5C,IAAI;AAAA,UAAC,GAAA,CAC3BA,KAAKwD,QAAKD,YAAA,OAAA;AAAA,YAAA,OAAcvD,KAAKwD;AAAAA,UAAY,GAAA,IAAA,IAAA,MAAID,YAAA,OAAA;AAAA,YAAA,SAAA;AAAA,UACsBvD,GAAAA,CAAAA,KAAKI,KAAK,CAAA,CAAA,CAAA;AAAA,QAElF,CAAC;AAED,eAAAmD,YAAA,OAAA;AAAA,UAAA,SAAA;AAAA,WAAAA,CAAAA,YAAAG,SAAA;AAAA,UAAA,cACoBpB,iBAAiBK;AAAAA,UAAK,uBAAAgB,YAAtBrB,iBAAiBK,QAAKgB;AAAAA,UAAA,eAAeC;AAAAA,UAAM,aAAa;AAAA,QAAI,GAAA,IAAA,GAAAL,YAAA,OAAA;AAAA,UAAA,SAAA;AAAA,QAAA,GAAA,CAE3EJ,qBAAqB,CAAA,CAAA,CAAA;AAAA,MAG3B;AAAA,MACDU,QAAQA,MAAM;AACZ,eAAAN,YAAAO,UAAAP,MAAAA,CAAAA,YAAAQ,UAAA;AAAA,UAAA,WACqBxB;AAAAA,QAAiB,GAAA;AAAA,UAAAyB,SAAAA,MAAA,CAAAC,gBAAA,IAAA,CAAA;AAAA,SAAAV,GAAAA,YAAAQ,UAAA;AAAA,UAAA,QAAA;AAAA,UAAA,WACFrB;AAAAA,UAAkB,YAAY,CAACN,aAAaO;AAAAA,QAAK,GAAA;AAAA,UAAAqB,SAAAA,MAAA,CAAAC,gBAAA,IAAA,CAAA;AAAA,QAAA,CAAA,CAAA,CAAA;AAAA,MAIvF;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACH;"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { defineComponent } from "vue";
|
|
2
|
+
import { useLexicalComposer } from "lexical-vue";
|
|
3
|
+
import { useTemplate, showTemplateSelectDialog } from "./composables.js";
|
|
4
|
+
import { INSERT_TEMPLATE_COMMAND } from "./commands.js";
|
|
5
|
+
import { registerDocEditorToolbarExtend } from "../../core/index.js";
|
|
6
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
7
|
+
__name: "index",
|
|
8
|
+
setup(__props) {
|
|
9
|
+
const editor = useLexicalComposer();
|
|
10
|
+
registerDocEditorToolbarExtend({
|
|
11
|
+
icon: "richtext",
|
|
12
|
+
text: "模版",
|
|
13
|
+
action: async () => {
|
|
14
|
+
editor.dispatchCommand(INSERT_TEMPLATE_COMMAND, await showTemplateSelectDialog());
|
|
15
|
+
},
|
|
16
|
+
sort: 90
|
|
17
|
+
});
|
|
18
|
+
useTemplate();
|
|
19
|
+
return (_ctx, _cache) => {
|
|
20
|
+
return null;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
export {
|
|
25
|
+
_sfc_main as default
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=index.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.vue.js","sources":["../../../../../../../src/components/basic/doc-editor/plugins/TemplatePlugin/index.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { $insertNodeToNearestRoot,mergeRegister,mediaFileReader,isMimeType } from '@lexical/utils'\r\nimport { \r\n COMMAND_PRIORITY_EDITOR,COMMAND_PRIORITY_LOW,$isParagraphNode,\r\n $getSelection,$createParagraphNode,$isNodeSelection, $getNodeByKey,\r\nElementNode\r\n} from 'lexical'\r\nimport { DRAG_DROP_PASTE } from '@lexical/rich-text'\r\nimport { useLexicalComposer,useMounted } from 'lexical-vue'\r\nimport { onMounted, } from 'vue'\r\nimport { showTemplateSelectDialog,useTemplate } from \"./composables\"\r\nimport { INSERT_TEMPLATE_COMMAND } from \"./commands\"\r\nimport { $isImageTextGridNode } from '../GridPlugin'\r\nimport { registerDocEditorToolbarExtend,type ToolbarExtendPlugin } from \"../../core\"\r\nimport { useElementBlockSelection } from '../../core'\r\nimport { ElLoading } from 'element-plus'\r\n\r\n\r\n // 编辑器\r\n const editor = useLexicalComposer()\r\n\r\n // 注册到工具条\r\n registerDocEditorToolbarExtend({\r\n icon:\"richtext\",\r\n text:\"模版\",\r\n action:async ()=>{\r\n editor.dispatchCommand(INSERT_TEMPLATE_COMMAND,await showTemplateSelectDialog())\r\n },\r\n sort:90\r\n } as ToolbarExtendPlugin)\r\n\r\n useTemplate();\r\n\r\n</script>\r\n\r\n<template></template>\r\n"],"names":[],"mappings":";;;;;;;;AAmBE,UAAM,SAAS;AAGgB,mCAAA;AAAA,MAC7B,MAAK;AAAA,MACL,MAAK;AAAA,MACL,QAAO,YAAU;AACf,eAAO,gBAAgB,yBAAwB,MAAM,yBAA0B,CAAA;AAAA,MACjF;AAAA,MACA,MAAK;AAAA,IAAA,CACiB;AAEZ;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.vue2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -91,7 +91,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
91
91
|
(openBlock(), createElementBlock(Fragment, null, renderList(CONTENT_TYPE_DEFINES, (item) => {
|
|
92
92
|
return createVNode(_component_el_dropdown_item, {
|
|
93
93
|
class: normalizeClass({ active: contentType.value.label == item.label }),
|
|
94
|
-
disabled: disabled.value,
|
|
95
94
|
value: item.value,
|
|
96
95
|
onClick: ($event) => setContentType(item)
|
|
97
96
|
}, {
|
|
@@ -103,7 +102,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
103
102
|
}, null, 8, _hoisted_2))
|
|
104
103
|
]),
|
|
105
104
|
_: 2
|
|
106
|
-
}, 1032, ["class", "
|
|
105
|
+
}, 1032, ["class", "value", "onClick"]);
|
|
107
106
|
}), 64))
|
|
108
107
|
]),
|
|
109
108
|
_: 1
|
package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/ContentStyleTool.vue.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContentStyleTool.vue.js","sources":["../../../../../../../src/components/basic/doc-editor/plugins/ToolbarPlugin/ContentStyleTool.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport {\r\n $createParagraphNode,\r\n $getSelection,\r\n $isRangeSelection,\r\n $isRootOrShadowRoot\r\n} from 'lexical'\r\nimport { $patchStyleText,$setBlocksType } from '@lexical/selection'\r\nimport type { HeadingTagType } from '@lexical/rich-text'\r\nimport { $createHeadingNode,$isHeadingNode } from '@lexical/rich-text'\r\nimport { \r\n INSERT_CHECK_LIST_COMMAND, INSERT_ORDERED_LIST_COMMAND, INSERT_UNORDERED_LIST_COMMAND, \r\n} from '@lexical/list'\r\nimport { $findMatchingParent } from '@lexical/utils'\r\nimport { useLexicalComposer } from 'lexical-vue'\r\nimport { onMounted, onUnmounted, ref } from 'vue'\r\n\r\nconst editor = useLexicalComposer()\r\n\r\n// 内容类型\r\nconst CONTENT_TYPE_DEFINES = [\r\n {value:\"paragraph\",label:\"正文\"},\r\n {value:\"bullet\",label:\"无序列表\"},\r\n {value:\"number\",label:\"有序列表\"},\r\n {value:\"h1\",label:\"标题 1\"},\r\n {value:\"h2\",label:\"标题 2\"},\r\n {value:\"h3\",label:\"标题 3\"}\r\n];\r\n\r\nconst disabled = ref(false)\r\n\r\nconst contentType = ref<any>(CONTENT_TYPE_DEFINES[0]);\r\n\r\n\r\n\r\n// 更新状态栏\r\nfunction updateToolbar() {\r\n\r\n const selection = $getSelection()\r\n\r\n if ($isRangeSelection(selection)) {\r\n\r\n const anchorNode = selection.anchor.getNode()\r\n\r\n let element\r\n = anchorNode.getKey() === 'root'\r\n ? anchorNode\r\n : $findMatchingParent(anchorNode, (e) => {\r\n const parent = e.getParent()\r\n return parent !== null && $isRootOrShadowRoot(parent)\r\n })\r\n\r\n if (element === null){ element = anchorNode.getTopLevelElementOrThrow() }\r\n \r\n const elementKey = element.getKey()\r\n const elementDOM = editor.getElementByKey(elementKey)\r\n\r\n if (elementDOM !== null) {\r\n const type = $isHeadingNode(element) ? element.getTag() : element.getType();\r\n contentType.value = CONTENT_TYPE_DEFINES.find(item=>item.value == type) || CONTENT_TYPE_DEFINES[0]\r\n }\r\n disabled.value = false;\r\n }\r\n else{\r\n\r\n disabled.value = true;\r\n }\r\n}\r\n\r\n// 设置内容类型\r\nconst setContentType = (type:any)=>{\r\n\r\n contentType.value = type;\r\n \r\n editor.update(() => {\r\n\r\n const selection = $getSelection()\r\n \r\n if ($isRangeSelection(selection)){\r\n\r\n // 清空字体大小\r\n $patchStyleText(selection, { [\"font-size\"]:\"\" })\r\n \r\n if(type.value == \"paragraph\"){\r\n $setBlocksType(selection, () => $createParagraphNode())\r\n }\r\n else if(type.value == \"bullet\"){\r\n editor.dispatchCommand(INSERT_UNORDERED_LIST_COMMAND, undefined)\r\n }\r\n else if(type.value == \"bullet\"){\r\n editor.dispatchCommand(INSERT_ORDERED_LIST_COMMAND, undefined)\r\n }\r\n else if(type.value == \"check-list\"){\r\n editor.dispatchCommand(INSERT_CHECK_LIST_COMMAND, undefined)\r\n }\r\n else{\r\n $setBlocksType(selection, () => {\r\n return $createHeadingNode(type.value as HeadingTagType)\r\n })\r\n }\r\n }\r\n })\r\n}\r\n\r\n// 挂载的时候\r\nonMounted(() => {\r\n\r\nconst unregisterMergeListener = editor.registerUpdateListener(({ editorState }) => {\r\n editorState.read(() => updateToolbar())\r\n})\r\n\r\n\r\nonUnmounted(() => unregisterMergeListener());\r\n})\r\n\r\n</script>\r\n\r\n<template>\r\n <el-dropdown max-height=\"300px\" trigger=\"click\" :disabled=\"disabled\">\r\n <el-button text :disabled=\"disabled\">\r\n {{contentType.label}} <MKSvgIcon iconClass=\"ArrowDownBold\" style=\"margin-left: 8px;\" /> \r\n </el-button>\r\n <template #dropdown>\r\n <el-dropdown-menu>\r\n <el-dropdown-item :class=\"{active:contentType.label == item.label}\"
|
|
1
|
+
{"version":3,"file":"ContentStyleTool.vue.js","sources":["../../../../../../../src/components/basic/doc-editor/plugins/ToolbarPlugin/ContentStyleTool.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport {\r\n $createParagraphNode,\r\n $getSelection,\r\n $isRangeSelection,\r\n $isRootOrShadowRoot\r\n} from 'lexical'\r\nimport { $patchStyleText,$setBlocksType } from '@lexical/selection'\r\nimport type { HeadingTagType } from '@lexical/rich-text'\r\nimport { $createHeadingNode,$isHeadingNode } from '@lexical/rich-text'\r\nimport { \r\n INSERT_CHECK_LIST_COMMAND, INSERT_ORDERED_LIST_COMMAND, INSERT_UNORDERED_LIST_COMMAND, \r\n} from '@lexical/list'\r\nimport { $findMatchingParent } from '@lexical/utils'\r\nimport { useLexicalComposer } from 'lexical-vue'\r\nimport { onMounted, onUnmounted, ref } from 'vue'\r\n\r\nconst editor = useLexicalComposer()\r\n\r\n// 内容类型\r\nconst CONTENT_TYPE_DEFINES = [\r\n {value:\"paragraph\",label:\"正文\"},\r\n {value:\"bullet\",label:\"无序列表\"},\r\n {value:\"number\",label:\"有序列表\"},\r\n {value:\"h1\",label:\"标题 1\"},\r\n {value:\"h2\",label:\"标题 2\"},\r\n {value:\"h3\",label:\"标题 3\"}\r\n];\r\n\r\nconst disabled = ref(false)\r\n\r\nconst contentType = ref<any>(CONTENT_TYPE_DEFINES[0]);\r\n\r\n\r\n\r\n// 更新状态栏\r\nfunction updateToolbar() {\r\n\r\n const selection = $getSelection()\r\n\r\n if ($isRangeSelection(selection)) {\r\n\r\n const anchorNode = selection.anchor.getNode()\r\n\r\n let element\r\n = anchorNode.getKey() === 'root'\r\n ? anchorNode\r\n : $findMatchingParent(anchorNode, (e) => {\r\n const parent = e.getParent()\r\n return parent !== null && $isRootOrShadowRoot(parent)\r\n })\r\n\r\n if (element === null){ element = anchorNode.getTopLevelElementOrThrow() }\r\n \r\n const elementKey = element.getKey()\r\n const elementDOM = editor.getElementByKey(elementKey)\r\n\r\n if (elementDOM !== null) {\r\n const type = $isHeadingNode(element) ? element.getTag() : element.getType();\r\n contentType.value = CONTENT_TYPE_DEFINES.find(item=>item.value == type) || CONTENT_TYPE_DEFINES[0]\r\n }\r\n disabled.value = false;\r\n }\r\n else{\r\n\r\n disabled.value = true;\r\n }\r\n}\r\n\r\n// 设置内容类型\r\nconst setContentType = (type:any)=>{\r\n\r\n contentType.value = type;\r\n \r\n editor.update(() => {\r\n\r\n const selection = $getSelection()\r\n \r\n if ($isRangeSelection(selection)){\r\n\r\n // 清空字体大小\r\n $patchStyleText(selection, { [\"font-size\"]:\"\" })\r\n \r\n if(type.value == \"paragraph\"){\r\n $setBlocksType(selection, () => $createParagraphNode())\r\n }\r\n else if(type.value == \"bullet\"){\r\n editor.dispatchCommand(INSERT_UNORDERED_LIST_COMMAND, undefined)\r\n }\r\n else if(type.value == \"bullet\"){\r\n editor.dispatchCommand(INSERT_ORDERED_LIST_COMMAND, undefined)\r\n }\r\n else if(type.value == \"check-list\"){\r\n editor.dispatchCommand(INSERT_CHECK_LIST_COMMAND, undefined)\r\n }\r\n else{\r\n $setBlocksType(selection, () => {\r\n return $createHeadingNode(type.value as HeadingTagType)\r\n })\r\n }\r\n }\r\n })\r\n}\r\n\r\n// 挂载的时候\r\nonMounted(() => {\r\n\r\nconst unregisterMergeListener = editor.registerUpdateListener(({ editorState }) => {\r\n editorState.read(() => updateToolbar())\r\n})\r\n\r\n\r\nonUnmounted(() => unregisterMergeListener());\r\n})\r\n\r\n</script>\r\n\r\n<template>\r\n <el-dropdown max-height=\"300px\" trigger=\"click\" :disabled=\"disabled\">\r\n <el-button text :disabled=\"disabled\">\r\n {{contentType.label}} <MKSvgIcon iconClass=\"ArrowDownBold\" style=\"margin-left: 8px;\" /> \r\n </el-button>\r\n <template #dropdown>\r\n <el-dropdown-menu>\r\n <el-dropdown-item :class=\"{active:contentType.label == item.label}\" v-for=\"item in CONTENT_TYPE_DEFINES\" :value=\"item.value\" @click=\"setContentType(item)\">\r\n <template v-if=\"item.value.indexOf('h')!=0 \">\r\n <div class=\"mk-doc-editor-toolbar-content-style-item text\">{{item.label}}</div>\r\n </template>\r\n <template v-else>\r\n <div class=\"mk-doc-editor-toolbar-content-style-item\" v-html=\"`<${item.value}>${item.label}</${item.value}>`\"></div>\r\n </template>\r\n </el-dropdown-item>\r\n </el-dropdown-menu>\r\n </template>\r\n </el-dropdown>\r\n</template>\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAiBA,UAAM,SAAS;AAGf,UAAM,uBAAuB;AAAA,MAC3B,EAAC,OAAM,aAAY,OAAM,KAAI;AAAA,MAC7B,EAAC,OAAM,UAAS,OAAM,OAAM;AAAA,MAC5B,EAAC,OAAM,UAAS,OAAM,OAAM;AAAA,MAC5B,EAAC,OAAM,MAAK,OAAM,OAAM;AAAA,MACxB,EAAC,OAAM,MAAK,OAAM,OAAM;AAAA,MACxB,EAAC,OAAM,MAAK,OAAM,OAAM;AAAA,IAAA;AAGpB,UAAA,WAAW,IAAI,KAAK;AAE1B,UAAM,cAAc,IAAS,qBAAqB,CAAC,CAAC;AAKpD,aAAS,gBAAgB;AAEvB,YAAM,YAAY;AAEd,UAAA,kBAAkB,SAAS,GAAG;AAE1B,cAAA,aAAa,UAAU,OAAO,QAAQ;AAExC,YAAA,UACE,WAAW,aAAa,SACtB,aACA,oBAAoB,YAAY,CAAC,MAAM;AACjC,gBAAA,SAAS,EAAE;AACV,iBAAA,WAAW,QAAQ,oBAAoB,MAAM;AAAA,QAAA,CACrD;AAEP,YAAI,YAAY,MAAK;AAAE,oBAAU,WAAW;QAA4B;AAElE,cAAA,aAAa,QAAQ;AACrB,cAAA,aAAa,OAAO,gBAAgB,UAAU;AAEpD,YAAI,eAAe,MAAM;AACjB,gBAAA,OAAO,eAAe,OAAO,IAAI,QAAQ,OAAO,IAAI,QAAQ;AACtD,sBAAA,QAAQ,qBAAqB,KAAK,CAAA,SAAM,KAAK,SAAS,IAAI,KAAK,qBAAqB,CAAC;AAAA,QACnG;AACA,iBAAS,QAAQ;AAAA,MAAA,OAEf;AAEF,iBAAS,QAAQ;AAAA,MACnB;AAAA,IACF;AAGM,UAAA,iBAAiB,CAAC,SAAW;AAEjC,kBAAY,QAAQ;AAEpB,aAAO,OAAO,MAAM;AAEhB,cAAM,YAAY;AAEd,YAAA,kBAAkB,SAAS,GAAE;AAG/B,0BAAgB,WAAW,EAAE,CAAC,WAAW,GAAE,GAAI,CAAA;AAE5C,cAAA,KAAK,SAAS,aAAY;AACZ,2BAAA,WAAW,MAAM,qBAAA,CAAsB;AAAA,UAAA,WAEhD,KAAK,SAAS,UAAS;AACtB,mBAAA,gBAAgB,+BAA+B,MAAS;AAAA,UAAA,WAEzD,KAAK,SAAS,UAAS;AACtB,mBAAA,gBAAgB,6BAA6B,MAAS;AAAA,UAAA,WAEvD,KAAK,SAAS,cAAa;AAC1B,mBAAA,gBAAgB,2BAA2B,MAAS;AAAA,UAAA,OAEzD;AACF,2BAAe,WAAW,MAAM;AACvB,qBAAA,mBAAmB,KAAK,KAAwB;AAAA,YAAA,CACxD;AAAA,UACH;AAAA,QACF;AAAA,MAAA,CACH;AAAA,IAAA;AAIH,cAAU,MAAM;AAEhB,YAAM,0BAA0B,OAAO,uBAAuB,CAAC,EAAE,kBAAkB;AACrE,oBAAA,KAAK,MAAM,cAAA,CAAe;AAAA,MAAA,CACvC;AAGW,kBAAA,MAAM,yBAAyB;AAAA,IAAA,CAC1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -4,7 +4,7 @@ import { $generateHtmlFromNodes } from "@lexical/html";
|
|
|
4
4
|
import { DEVICE_VIEW_MODE } from "../../core/index.js";
|
|
5
5
|
import DocThemeCss from "../../themes/doc-theme.css.js";
|
|
6
6
|
import DocEditorCss from "../../themes/doc-editor.css.js";
|
|
7
|
-
import {
|
|
7
|
+
import { useModule } from "../ModulePlugin/composables.js";
|
|
8
8
|
const _hoisted_1 = /* @__PURE__ */ createElementVNode("div", null, null, -1);
|
|
9
9
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
10
10
|
__name: "PreviewToolbar",
|
|
@@ -14,6 +14,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
14
14
|
},
|
|
15
15
|
setup(__props) {
|
|
16
16
|
const editor = useLexicalComposer();
|
|
17
|
+
const { Modules } = useModule();
|
|
17
18
|
const props = __props;
|
|
18
19
|
const iframeContentRef = ref(null);
|
|
19
20
|
const iframeBody = computed(() => {
|
|
@@ -34,7 +35,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
34
35
|
const style = document.createElement("style");
|
|
35
36
|
style.setAttribute("type", "text/css");
|
|
36
37
|
style.innerHTML = [DocEditorCss, DocThemeCss].join("\r\n");
|
|
37
|
-
style.innerHTML +=
|
|
38
|
+
style.innerHTML += Modules.filter((item) => item.editorCss).map((item) => item.editorCss).join("\r\n");
|
|
38
39
|
doc.head.append(style);
|
|
39
40
|
props.js.split(",").filter((item) => !!item).forEach((path) => {
|
|
40
41
|
const script = document.createElement("script");
|
package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PreviewToolbar.vue.js","sources":["../../../../../../../src/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\n\r\nimport { useLexicalComposer } from 'lexical-vue'\r\nimport { $generateHtmlFromNodes} from '@lexical/html'\r\nimport { ref,computed,defineProps,watch, nextTick } from \"vue\"\r\nimport { DEVICE_VIEW_MODE } from \"../../core\"\r\nimport DocThemeCss from \"../../themes/doc-theme.css?raw\";\r\nimport DocEditorCss from \"../../themes/doc-editor.css?raw\";\r\nimport {
|
|
1
|
+
{"version":3,"file":"PreviewToolbar.vue.js","sources":["../../../../../../../src/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\n\r\nimport { useLexicalComposer } from 'lexical-vue'\r\nimport { $generateHtmlFromNodes} from '@lexical/html'\r\nimport { ref,computed,defineProps,watch, nextTick } from \"vue\"\r\nimport { DEVICE_VIEW_MODE } from \"../../core\"\r\nimport DocThemeCss from \"../../themes/doc-theme.css?raw\";\r\nimport DocEditorCss from \"../../themes/doc-editor.css?raw\";\r\nimport { useModule } from \"../ModulePlugin/composables\"\r\n\r\nconst editor = useLexicalComposer()\r\nconst { Modules } = useModule();\r\n// 参数\r\nconst props = defineProps({\r\n js:{ type:String,default:`` },\r\n css:{ type:String,default:`` }\r\n})\r\n// iframe 编辑器\r\nconst iframeContentRef = ref(null as any);\r\nconst iframeBody = computed<any>(()=>iframeContentRef.value?.contentWindow?.document?.body)\r\n\r\nconst codeDialogVisible = ref(false);\r\nconst srcdoc = ref(\"\");\r\nconst linkStr = props.css.split(\",\").map(path=>{\r\n return `<link crossorigin href=\"${path}\" type=\"text/xml\" />`\r\n}).join(\"\\r\\n\");\r\n\r\n// const scriptStr = props.css.split(\",\").map(path=>{\r\n// return `<script1 crossorigin src=\"${path}\"></script1>`\r\n// }).join(\"\");\r\n \r\n\r\n// 显示\r\nconst show = function(){\r\n\r\n codeDialogVisible.value = true;\r\n\r\n nextTick(()=>{\r\n\r\n editor.getEditorState().read(() => {\r\n\r\n const doc = iframeContentRef.value?.contentWindow?.document;\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].join(\"\\r\\n\");\r\n //模块渲染样式\r\n style.innerHTML += Modules.filter(item=>item.editorCss).map(item=>item.editorCss).join(\"\\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 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 iframeBody.value.style.fontSize = DEVICE_VIEW_MODE.value == \"pc\" ? \"14px\" : \"18px\";\r\n\r\n // 预览内容\r\n doc.body.innerHTML = $generateHtmlFromNodes(editor);\r\n\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 }, 100);\r\n })\r\n });\r\n\r\n\r\n \r\n}\r\n\r\n\r\n</script>\r\n\r\n<template>\r\n <el-button text @click=\"show\">\r\n <MKSvgIcon iconClass=\"View\" /> \r\n </el-button>\r\n <el-dialog v-model=\"codeDialogVisible\" append-to-body title=\"预览\" width=\"80%\" fullscreen>\r\n <div class=\"mk-doc-editor__view_warp\" :class=\"DEVICE_VIEW_MODE\">\r\n <iframe class=\"mk-doc-editor__view_iframe\" ref=\"iframeContentRef\"></iframe>\r\n <Teleport v-if=\"iframeBody\" :to=\"iframeBody\">\r\n <div></div>\r\n </Teleport>\r\n </div>\r\n </el-dialog>\r\n</template>\r\n"],"names":["_a"],"mappings":";;;;;;;;;;;;;;;AAUA,UAAM,SAAS;AACT,UAAA,EAAE,YAAY;AAEpB,UAAM,QAAQ;AAKR,UAAA,mBAAmB,IAAI,IAAW;AACxC,UAAM,aAAa,SAAc;;AAAI,gDAAiB,UAAjB,mBAAwB,kBAAxB,mBAAuC,aAAvC,mBAAiD;AAAA,KAAI;AAEpF,UAAA,oBAAoB,IAAI,KAAK;AACpB,QAAI,EAAE;AACL,UAAM,IAAI,MAAM,GAAG,EAAE,IAAI,CAAM,SAAA;AAC7C,aAAO,2BAA2B,IAAI;AAAA,IAAA,CACvC,EAAE,KAAK,MAAM;AAQd,UAAM,OAAO,WAAU;AAErB,wBAAkB,QAAQ;AAE1B,eAAS,MAAI;AAEJ,eAAA,iBAAiB,KAAK,MAAM;;AAE3B,gBAAA,OAAM,4BAAiB,UAAjB,mBAAwB,kBAAxB,mBAAuC;AAG7C,gBAAA,QAAQ,SAAS,cAAc,OAAO;AACtC,gBAAA,aAAa,QAAO,UAAU;AAGpC,gBAAM,YAAY,CAAC,cAAa,WAAW,EAAE,KAAK,MAAM;AAExD,gBAAM,aAAa,QAAQ,OAAO,CAAA,SAAM,KAAK,SAAS,EAAE,IAAI,CAAM,SAAA,KAAK,SAAS,EAAE,KAAK,MAAM;AACzF,cAAA,KAAK,OAAO,KAAK;AAGf,gBAAA,GAAG,MAAM,GAAG,EAAE,OAAO,CAAM,SAAA,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAM,SAAA;AAC/C,kBAAA,SAAS,SAAS,cAAc,QAAQ;AAC9C,mBAAO,MAAM;AACN,mBAAA,aAAa,eAAc,MAAM;AACpC,gBAAA,KAAK,OAAO,MAAM;AAAA,UAAA,CACvB;AACK,gBAAA,IAAI,MAAM,GAAG,EAAE,OAAO,CAAM,SAAA,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAM,SAAA;AAChD,kBAAA,OAAO,SAAS,cAAc,MAAM;AAC1C,iBAAK,OAAO;AACP,iBAAA,aAAa,OAAM,YAAY;AAC/B,iBAAA,aAAa,eAAc,MAAM;AAClC,gBAAA,KAAK,OAAO,IAAI;AAAA,UAAA,CACrB;AAGD,qBAAW,MAAM,MAAM,WAAW,iBAAiB,SAAS,OAAO,SAAS;AAGxE,cAAA,KAAK,YAAY,uBAAuB,MAAM;AAElD,qBAAW,MAAM;;AACf,gBAAG,WAAW,MAAM,eAAe,WAAW,MAAM,cAAa;AAC/D,+BAAiB,MAAM,MAAM,WAAUA,MAAA,WAAW,UAAX,gBAAAA,IAAkB,gBAAe,KAAI;AAAA,YAC9E;AAAA,aACC,GAAG;AAAA,QAAA,CACP;AAAA,MAAA,CACF;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const DocEditorEditCss =
|
|
1
|
+
const DocEditorEditCss = "\r\n.mk-doc__img {\r\n cursor: pointer;\r\n z-index: 1;\r\n position: relative;\r\n}\r\n\r\n.mk-doc__grid{\r\n outline: 2px solid #eff5ff;\r\n position: relative;\r\n cursor: pointer;\r\n white-space:initial;\r\n word-break:initial;\r\n min-height: 150px;\r\n}\r\n\r\n/* 文本框可编辑文字 */\r\n.mk-doc__grid.mk-doc__text-grid :not(.mk-doc__grid){\r\n cursor: text;\r\n}\r\n\r\n/* 图文环绕容器下的文本框不做选中 */\r\n.mk-doc__grid.mk-doc__image-text .mk-doc__text-grid{\r\n outline: 0;\r\n padding-top: 0;\r\n}\r\n.mk-doc__grid.mk-doc__image-text img{\r\n position: relative;\r\n z-index: 1;\r\n}\r\n\r\n\r\n\r\n/* 避免模块下的a标签点击 */\r\n.mk-doc__grid.mk-doc__module-grid a{\r\n pointer-events: none;\r\n}\r\n\r\n/* 给布局下的格子加内边距方便编辑 */\r\n/* .mk-doc__grid.mk-doc__layout-grid >.mk-doc__grid{\r\n margin: 10px;\r\n} */\r\n.mk-doc-active-grid-mark{\r\n text-align: center;\r\n background-color: #eff5ff;\r\n color: #4284ff;\r\n left: -20px;\r\n top: 0px;\r\n pointer-events: all;\r\n font-size: 14px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n z-index: 999; \r\n width: 20px;\r\n cursor: pointer;\r\n font-size: 12px;\r\n padding: 5px 0;\r\n}\r\n\r\n/* 块选中 */\r\n.mk-doc__embedBlock {\r\n position: relative;\r\n z-index: 1;\r\n padding: 1px;\r\n cursor: pointer;\r\n}\r\n.mk-doc__embedBlockFocus {\r\n outline: 2px solid rgb(60, 132, 244);\r\n}\r\n\r\n.mk-doc__embedBlock >*{\r\n pointer-events: none;\r\n}\r\n";
|
|
2
2
|
export {
|
|
3
3
|
DocEditorEditCss as default
|
|
4
4
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doc-editor-edit.css.js","sources":["../../../../../../src/components/basic/doc-editor/themes/doc-editor-edit.css?raw"],"sourcesContent":["export default \"\\r\\n.mk-doc__img {\\r\\n cursor: pointer;\\r\\n z-index: 1;\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.mk-doc__grid{\\r\\n outline: 2px solid #eff5ff;\\r\\n position: relative;\\r\\n cursor: pointer;\\r\\n white-space:initial;\\r\\n word-break:initial;\\r\\n min-height: 150px;\\r\\n}\\r\\n
|
|
1
|
+
{"version":3,"file":"doc-editor-edit.css.js","sources":["../../../../../../src/components/basic/doc-editor/themes/doc-editor-edit.css?raw"],"sourcesContent":["export default \"\\r\\n.mk-doc__img {\\r\\n cursor: pointer;\\r\\n z-index: 1;\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.mk-doc__grid{\\r\\n outline: 2px solid #eff5ff;\\r\\n position: relative;\\r\\n cursor: pointer;\\r\\n white-space:initial;\\r\\n word-break:initial;\\r\\n min-height: 150px;\\r\\n}\\r\\n\\r\\n/* 文本框可编辑文字 */\\r\\n.mk-doc__grid.mk-doc__text-grid :not(.mk-doc__grid){\\r\\n cursor: text;\\r\\n}\\r\\n\\r\\n/* 图文环绕容器下的文本框不做选中 */\\r\\n.mk-doc__grid.mk-doc__image-text .mk-doc__text-grid{\\r\\n outline: 0;\\r\\n padding-top: 0;\\r\\n}\\r\\n.mk-doc__grid.mk-doc__image-text img{\\r\\n position: relative;\\r\\n z-index: 1;\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n/* 避免模块下的a标签点击 */\\r\\n.mk-doc__grid.mk-doc__module-grid a{\\r\\n pointer-events: none;\\r\\n}\\r\\n\\r\\n/* 给布局下的格子加内边距方便编辑 */\\r\\n/* .mk-doc__grid.mk-doc__layout-grid >.mk-doc__grid{\\r\\n margin: 10px;\\r\\n} */\\r\\n.mk-doc-active-grid-mark{\\r\\n text-align: center;\\r\\n background-color: #eff5ff;\\r\\n color: #4284ff;\\r\\n left: -20px;\\r\\n top: 0px;\\r\\n pointer-events: all;\\r\\n font-size: 14px;\\r\\n display: flex;\\r\\n align-items: center;\\r\\n justify-content: center;\\r\\n z-index: 999; \\r\\n width: 20px;\\r\\n cursor: pointer;\\r\\n font-size: 12px;\\r\\n padding: 5px 0;\\r\\n}\\r\\n\\r\\n/* 块选中 */\\r\\n.mk-doc__embedBlock {\\r\\n position: relative;\\r\\n z-index: 1;\\r\\n padding: 1px;\\r\\n cursor: pointer;\\r\\n}\\r\\n.mk-doc__embedBlockFocus {\\r\\n outline: 2px solid rgb(60, 132, 244);\\r\\n}\\r\\n\\r\\n.mk-doc__embedBlock >*{\\r\\n pointer-events: none;\\r\\n}\\r\\n\""],"names":[],"mappings":"AAAA,MAAe,mBAAA;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doc-theme.css.js","sources":["../../../../../../src/components/basic/doc-editor/themes/doc-theme.css?raw"],"sourcesContent":["export default \"\\r\\n .mk-doc__ltr {\\r\\n text-align: left;\\r\\n}\\r\\n.mk-doc__rtl {\\r\\n text-align: right;\\r\\n}\\r\\n.mk-doc__paragraph {\\r\\n margin: 0;\\r\\n}\\r\\n.mk-doc__quote {\\r\\n margin: 0;\\r\\n margin-left: 20px;\\r\\n margin-bottom: 10px;\\r\\n font-size: 15px;\\r\\n color: rgb(101, 103, 107);\\r\\n border-left-color: rgb(206, 208, 212);\\r\\n border-left-width: 4px;\\r\\n border-left-style: solid;\\r\\n padding-left: 16px;\\r\\n}\\r\\n.mk-doc__quote .mk-doc__paragraph {\\r\\n text-indent: 0;\\r\\n\\r\\n}\\r\\n.mk-doc__h1 {\\r\\n font-size: 2rem;\\r\\n color: rgb(5, 5, 5);\\r\\n font-weight: 400;\\r\\n margin: 0;\\r\\n}\\r\\n.mk-doc__h2 {\\r\\n font-size: 1.5rem;\\r\\n color: rgb(101, 103, 107);\\r\\n font-weight: 700;\\r\\n margin: 0;\\r\\n text-transform: uppercase;\\r\\n}\\r\\n.mk-doc__h3 {\\r\\n font-size: 1.17rem;\\r\\n margin: 0;\\r\\n text-transform: uppercase;\\r\\n}\\r\\n.mk-doc__indent {\\r\\n --lexical-indent-base-value: 40px;\\r\\n}\\r\\n.mk-doc__textBold {\\r\\n font-weight: bold;\\r\\n}\\r\\n.mk-doc__textItalic {\\r\\n font-style: italic;\\r\\n}\\r\\n.mk-doc__textUnderline {\\r\\n text-decoration: underline;\\r\\n}\\r\\n.mk-doc__textStrikethrough {\\r\\n text-decoration: line-through;\\r\\n}\\r\\n.mk-doc__textUnderlineStrikethrough {\\r\\n text-decoration: underline line-through;\\r\\n}\\r\\n.mk-doc__textSubscript {\\r\\n font-size: 0.8em;\\r\\n vertical-align: sub !important;\\r\\n}\\r\\n.mk-doc__textSuperscript {\\r\\n font-size: 0.8em;\\r\\n vertical-align: super;\\r\\n}\\r\\n.mk-doc__textCode {\\r\\n background-color: rgb(240, 242, 245);\\r\\n padding: 1px 0.25rem;\\r\\n font-family: Menlo, Consolas, Monaco, monospace;\\r\\n font-size: 94%;\\r\\n}\\r\\n.mk-doc__hashtag {\\r\\n background-color: rgba(88, 144, 255, 0.15);\\r\\n border-bottom: 1px solid rgba(88, 144, 255, 0.3);\\r\\n}\\r\\n.mk-doc__link {\\r\\n color: rgb(33, 111, 219);\\r\\n text-decoration: none;\\r\\n}\\r\\n.mk-doc__link:hover {\\r\\n text-decoration: underline;\\r\\n cursor: pointer;\\r\\n}\\r\\n.mk-doc__code {\\r\\n background-color: rgb(240, 242, 245);\\r\\n font-family: Menlo, Consolas, Monaco, monospace;\\r\\n display: block;\\r\\n padding: 8px 8px 8px 52px;\\r\\n line-height: 1.53;\\r\\n font-size: 13px;\\r\\n margin: 0;\\r\\n margin-top: 8px;\\r\\n margin-bottom: 8px;\\r\\n overflow-x: auto;\\r\\n position: relative;\\r\\n tab-size: 2;\\r\\n}\\r\\n.mk-doc__code:before {\\r\\n content: attr(data-gutter);\\r\\n position: absolute;\\r\\n background-color: #eee;\\r\\n left: 0;\\r\\n top: 0;\\r\\n border-right: 1px solid #ccc;\\r\\n padding: 8px;\\r\\n color: #777;\\r\\n white-space: pre-wrap;\\r\\n text-align: right;\\r\\n min-width: 25px;\\r\\n}\\r\\n.mk-doc__table {\\r\\n border-collapse: collapse;\\r\\n border-spacing: 0;\\r\\n overflow-y: scroll;\\r\\n overflow-x: scroll;\\r\\n table-layout: fixed;\\r\\n width: max-content;\\r\\n margin: 30px 0;\\r\\n}\\r\\n.mk-doc__tableSelection *::selection {\\r\\n background-color: transparent;\\r\\n}\\r\\n.mk-doc__tableSelected {\\r\\n outline: 2px solid rgb(60, 132, 244);\\r\\n}\\r\\n.mk-doc__tableCell {\\r\\n border: 1px solid #bbb;\\r\\n width: 75px;\\r\\n min-width: 75px;\\r\\n vertical-align: top;\\r\\n text-align: start;\\r\\n padding: 6px 8px;\\r\\n position: relative;\\r\\n outline: none;\\r\\n}\\r\\n.mk-doc__tableCellSortedIndicator {\\r\\n display: block;\\r\\n opacity: 0.5;\\r\\n position: absolute;\\r\\n bottom: 0;\\r\\n left: 0;\\r\\n width: 100%;\\r\\n height: 4px;\\r\\n background-color: #999;\\r\\n}\\r\\n.mk-doc__tableCellResizer {\\r\\n position: absolute;\\r\\n right: -4px;\\r\\n height: 100%;\\r\\n width: 8px;\\r\\n cursor: ew-resize;\\r\\n z-index: 10;\\r\\n top: 0;\\r\\n}\\r\\n.mk-doc__tableCellHeader {\\r\\n background-color: #f2f3f5;\\r\\n text-align: start;\\r\\n}\\r\\n.mk-doc__tableCellSelected {\\r\\n background-color: #c9dbf0;\\r\\n}\\r\\n.mk-doc__tableCellPrimarySelected {\\r\\n border: 2px solid rgb(60, 132, 244);\\r\\n display: block;\\r\\n height: calc(100% - 2px);\\r\\n position: absolute;\\r\\n width: calc(100% - 2px);\\r\\n left: -1px;\\r\\n top: -1px;\\r\\n z-index: 2;\\r\\n}\\r\\n.mk-doc__tableCellEditing {\\r\\n box-shadow: 0 0 5px rgba(0, 0, 0, 0.4);\\r\\n border-radius: 3px;\\r\\n}\\r\\n.mk-doc__tableAddColumns {\\r\\n position: absolute;\\r\\n top: 0;\\r\\n width: 20px;\\r\\n background-color: #eee;\\r\\n height: 100%;\\r\\n right: -25px;\\r\\n animation: table-controls 0.2s ease;\\r\\n border: 0;\\r\\n cursor: pointer;\\r\\n}\\r\\n.mk-doc__tableAddColumns:after {\\r\\n background-image: url(../images/icons/plus.svg);\\r\\n background-size: contain;\\r\\n background-position: center;\\r\\n background-repeat: no-repeat;\\r\\n display: block;\\r\\n content: ' ';\\r\\n position: absolute;\\r\\n top: 0;\\r\\n left: 0;\\r\\n width: 100%;\\r\\n height: 100%;\\r\\n opacity: 0.4;\\r\\n}\\r\\n.mk-doc__tableAddColumns:hover {\\r\\n background-color: #c9dbf0;\\r\\n}\\r\\n.mk-doc__tableAddRows {\\r\\n position: absolute;\\r\\n bottom: -25px;\\r\\n width: calc(100% - 25px);\\r\\n background-color: #eee;\\r\\n height: 20px;\\r\\n left: 0;\\r\\n animation: table-controls 0.2s ease;\\r\\n border: 0;\\r\\n cursor: pointer;\\r\\n}\\r\\n.mk-doc__tableAddRows:after {\\r\\n background-image: url(../images/icons/plus.svg);\\r\\n background-size: contain;\\r\\n background-position: center;\\r\\n background-repeat: no-repeat;\\r\\n display: block;\\r\\n content: ' ';\\r\\n position: absolute;\\r\\n top: 0;\\r\\n left: 0;\\r\\n width: 100%;\\r\\n height: 100%;\\r\\n opacity: 0.4;\\r\\n}\\r\\n.mk-doc__tableAddRows:hover {\\r\\n background-color: #c9dbf0;\\r\\n}\\r\\n@keyframes table-controls {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n }\\r\\n 100% {\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n.mk-doc__tableCellResizeRuler {\\r\\n display: block;\\r\\n position: absolute;\\r\\n width: 1px;\\r\\n background-color: rgb(60, 132, 244);\\r\\n height: 100%;\\r\\n top: 0;\\r\\n}\\r\\n.mk-doc__tableCellActionButtonContainer {\\r\\n display: block;\\r\\n right: 5px;\\r\\n top: 6px;\\r\\n position: absolute;\\r\\n z-index: 4;\\r\\n width: 20px;\\r\\n height: 20px;\\r\\n}\\r\\n.mk-doc__tableCellActionButton {\\r\\n background-color: #eee;\\r\\n display: block;\\r\\n border: 0;\\r\\n border-radius: 20px;\\r\\n width: 20px;\\r\\n height: 20px;\\r\\n color: #222;\\r\\n cursor: pointer;\\r\\n}\\r\\n.mk-doc__tableCellActionButton:hover {\\r\\n background-color: #ddd;\\r\\n}\\r\\n.mk-doc__characterLimit {\\r\\n display: inline;\\r\\n background-color: #ffbbbb !important;\\r\\n}\\r\\n.mk-doc__ol1 {\\r\\n padding: 0;\\r\\n margin: 0;\\r\\n /* list-style-position: inside; */\\r\\n}\\r\\n.mk-doc__ol2 {\\r\\n padding: 0;\\r\\n margin: 0;\\r\\n list-style-type: upper-alpha;\\r\\n /* list-style-position: inside; */\\r\\n}\\r\\n.mk-doc__ol3 {\\r\\n padding: 0;\\r\\n margin: 0;\\r\\n list-style-type: lower-alpha;\\r\\n /* list-style-position: inside; */\\r\\n}\\r\\n.mk-doc__ol4 {\\r\\n padding: 0;\\r\\n margin: 0;\\r\\n list-style-type: upper-roman;\\r\\n /* list-style-position: inside; */\\r\\n}\\r\\n.mk-doc__ol5 {\\r\\n padding: 0;\\r\\n margin: 0;\\r\\n list-style-type: lower-roman;\\r\\n /* list-style-position: inside; */\\r\\n}\\r\\n.mk-doc__ul {\\r\\n padding: 0;\\r\\n margin: 0;\\r\\n /* list-style-position: inside; */\\r\\n}\\r\\n.mk-doc__listItem {\\r\\n margin: 0 32px;\\r\\n}\\r\\n.mk-doc__listItemChecked,\\r\\n.mk-doc__listItemUnchecked {\\r\\n position: relative;\\r\\n margin-left: 8px;\\r\\n margin-right: 8px;\\r\\n padding-left: 24px;\\r\\n padding-right: 24px;\\r\\n list-style-type: none;\\r\\n outline: none;\\r\\n}\\r\\n.mk-doc__listItemChecked {\\r\\n text-decoration: line-through;\\r\\n}\\r\\n.mk-doc__listItemUnchecked:before,\\r\\n.mk-doc__listItemChecked:before {\\r\\n content: '';\\r\\n width: 16px;\\r\\n height: 16px;\\r\\n top: 2px;\\r\\n left: 0;\\r\\n cursor: pointer;\\r\\n display: block;\\r\\n background-size: cover;\\r\\n position: absolute;\\r\\n}\\r\\n.mk-doc__listItemUnchecked[dir='rtl']:before,\\r\\n.mk-doc__listItemChecked[dir='rtl']:before {\\r\\n left: auto;\\r\\n right: 0;\\r\\n}\\r\\n.mk-doc__listItemUnchecked:focus:before,\\r\\n.mk-doc__listItemChecked:focus:before {\\r\\n box-shadow: 0 0 0 2px #a6cdfe;\\r\\n border-radius: 2px;\\r\\n}\\r\\n.mk-doc__listItemUnchecked:before {\\r\\n border: 1px solid #999;\\r\\n border-radius: 2px;\\r\\n}\\r\\n.mk-doc__listItemChecked:before {\\r\\n border: 1px solid rgb(61, 135, 245);\\r\\n border-radius: 2px;\\r\\n background-color: #3d87f5;\\r\\n background-repeat: no-repeat;\\r\\n}\\r\\n.mk-doc__listItemChecked:after {\\r\\n content: '';\\r\\n cursor: pointer;\\r\\n border-color: #fff;\\r\\n border-style: solid;\\r\\n position: absolute;\\r\\n display: block;\\r\\n top: 6px;\\r\\n width: 3px;\\r\\n left: 7px;\\r\\n right: 7px;\\r\\n height: 6px;\\r\\n transform: rotate(45deg);\\r\\n border-width: 0 2px 2px 0;\\r\\n}\\r\\n.mk-doc__nestedListItem {\\r\\n list-style-type: none;\\r\\n}\\r\\n.mk-doc__nestedListItem:before,\\r\\n.mk-doc__nestedListItem:after {\\r\\n display: none;\\r\\n}\\r\\n.mk-doc__tokenComment {\\r\\n color: slategray;\\r\\n}\\r\\n.mk-doc__tokenPunctuation {\\r\\n color: #999;\\r\\n}\\r\\n.mk-doc__tokenProperty {\\r\\n color: #905;\\r\\n}\\r\\n.mk-doc__tokenSelector {\\r\\n color: #690;\\r\\n}\\r\\n.mk-doc__tokenOperator {\\r\\n color: #9a6e3a;\\r\\n}\\r\\n.mk-doc__tokenAttr {\\r\\n color: #07a;\\r\\n}\\r\\n.mk-doc__tokenVariable {\\r\\n color: #e90;\\r\\n}\\r\\n.mk-doc__tokenFunction {\\r\\n color: #dd4a68;\\r\\n}\\r\\n.mk-doc__mark {\\r\\n background: rgba(255, 212, 0, 0.14);\\r\\n border-bottom: 2px solid rgba(255, 212, 0, 0.3);\\r\\n padding-bottom: 2px;\\r\\n}\\r\\n.mk-doc__markOverlap {\\r\\n background: rgba(255, 212, 0, 0.3);\\r\\n border-bottom: 2px solid rgba(255, 212, 0, 0.7);\\r\\n}\\r\\n.mk-doc__mark.selected {\\r\\n background: rgba(255, 212, 0, 0.5);\\r\\n border-bottom: 2px solid rgba(255, 212, 0, 1);\\r\\n}\\r\\n.mk-doc__markOverlap.selected {\\r\\n background: rgba(255, 212, 0, 0.7);\\r\\n border-bottom: 2px solid rgba(255, 212, 0, 0.7);\\r\\n}\\r\\n.mk-doc__layoutContainer {\\r\\n display: grid;\\r\\n gap: 10px;\\r\\n margin: 10px 0;\\r\\n}\\r\\n.mk-doc__layoutItem {\\r\\n border: 1px dashed #ddd;\\r\\n padding: 8px 16px;\\r\\n}\\r\\n\\r\\n.mk-doc__image-text::after,\\r\\n.mk-doc__module-grid::after{\\r\\n content: \\\".\\\";\\r\\n font-size: 0;\\r\\n clear: both;\\r\\n display: block;\\r\\n}\\r\\n\\r\\n\""],"names":[],"mappings":"AAAA,MAAe,cAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
|
|
1
|
+
{"version":3,"file":"doc-theme.css.js","sources":["../../../../../../src/components/basic/doc-editor/themes/doc-theme.css?raw"],"sourcesContent":["export default \"\\r\\n .mk-doc__ltr {\\r\\n text-align: left;\\r\\n}\\r\\n.mk-doc__rtl {\\r\\n text-align: right;\\r\\n}\\r\\n.mk-doc__paragraph {\\r\\n margin: 0;\\r\\n}\\r\\n.mk-doc__quote {\\r\\n margin: 0;\\r\\n margin-left: 20px;\\r\\n margin-bottom: 10px;\\r\\n font-size: 15px;\\r\\n color: rgb(101, 103, 107);\\r\\n border-left-color: rgb(206, 208, 212);\\r\\n border-left-width: 4px;\\r\\n border-left-style: solid;\\r\\n padding-left: 16px;\\r\\n}\\r\\n.mk-doc__quote .mk-doc__paragraph {\\r\\n text-indent: 0;\\r\\n\\r\\n}\\r\\n.mk-doc__h1 {\\r\\n font-size: 2rem;\\r\\n color: rgb(5, 5, 5);\\r\\n font-weight: 400;\\r\\n margin: 0;\\r\\n}\\r\\n.mk-doc__h2 {\\r\\n font-size: 1.5rem;\\r\\n color: rgb(101, 103, 107);\\r\\n font-weight: 700;\\r\\n margin: 0;\\r\\n text-transform: uppercase;\\r\\n}\\r\\n.mk-doc__h3 {\\r\\n font-size: 1.17rem;\\r\\n margin: 0;\\r\\n text-transform: uppercase;\\r\\n}\\r\\n.mk-doc__indent {\\r\\n --lexical-indent-base-value: 40px;\\r\\n}\\r\\n.mk-doc__textBold {\\r\\n font-weight: bold;\\r\\n}\\r\\n.mk-doc__textItalic {\\r\\n font-style: italic;\\r\\n}\\r\\n.mk-doc__textUnderline {\\r\\n text-decoration: underline;\\r\\n}\\r\\n.mk-doc__textStrikethrough {\\r\\n text-decoration: line-through;\\r\\n}\\r\\n.mk-doc__textUnderlineStrikethrough {\\r\\n text-decoration: underline line-through;\\r\\n}\\r\\n.mk-doc__textSubscript {\\r\\n font-size: 0.8em;\\r\\n vertical-align: sub !important;\\r\\n}\\r\\n.mk-doc__textSuperscript {\\r\\n font-size: 0.8em;\\r\\n vertical-align: super;\\r\\n}\\r\\n.mk-doc__textCode {\\r\\n background-color: rgb(240, 242, 245);\\r\\n padding: 1px 0.25rem;\\r\\n font-family: Menlo, Consolas, Monaco, monospace;\\r\\n font-size: 94%;\\r\\n}\\r\\n.mk-doc__hashtag {\\r\\n background-color: rgba(88, 144, 255, 0.15);\\r\\n border-bottom: 1px solid rgba(88, 144, 255, 0.3);\\r\\n}\\r\\n.mk-doc__link {\\r\\n color: rgb(33, 111, 219);\\r\\n text-decoration: none;\\r\\n}\\r\\n.mk-doc__link:hover {\\r\\n text-decoration: underline;\\r\\n cursor: pointer;\\r\\n}\\r\\n.mk-doc__code {\\r\\n background-color: rgb(240, 242, 245);\\r\\n font-family: Menlo, Consolas, Monaco, monospace;\\r\\n display: block;\\r\\n padding: 8px 8px 8px 52px;\\r\\n line-height: 1.53;\\r\\n font-size: 13px;\\r\\n margin: 0;\\r\\n margin-top: 8px;\\r\\n margin-bottom: 8px;\\r\\n overflow-x: auto;\\r\\n position: relative;\\r\\n tab-size: 2;\\r\\n}\\r\\n.mk-doc__code:before {\\r\\n content: attr(data-gutter);\\r\\n position: absolute;\\r\\n background-color: #eee;\\r\\n left: 0;\\r\\n top: 0;\\r\\n border-right: 1px solid #ccc;\\r\\n padding: 8px;\\r\\n color: #777;\\r\\n white-space: pre-wrap;\\r\\n text-align: right;\\r\\n min-width: 25px;\\r\\n}\\r\\n.mk-doc__table {\\r\\n border-collapse: collapse;\\r\\n border-spacing: 0;\\r\\n overflow-y: scroll;\\r\\n overflow-x: scroll;\\r\\n table-layout: fixed;\\r\\n width: max-content;\\r\\n margin: 30px 0;\\r\\n}\\r\\n.mk-doc__tableSelection *::selection {\\r\\n background-color: transparent;\\r\\n}\\r\\n.mk-doc__tableSelected {\\r\\n outline: 2px solid rgb(60, 132, 244);\\r\\n}\\r\\n.mk-doc__tableCell {\\r\\n border: 1px solid #bbb;\\r\\n width: 75px;\\r\\n min-width: 75px;\\r\\n vertical-align: top;\\r\\n text-align: start;\\r\\n padding: 6px 8px;\\r\\n position: relative;\\r\\n outline: none;\\r\\n}\\r\\n.mk-doc__tableCellSortedIndicator {\\r\\n display: block;\\r\\n opacity: 0.5;\\r\\n position: absolute;\\r\\n bottom: 0;\\r\\n left: 0;\\r\\n width: 100%;\\r\\n height: 4px;\\r\\n background-color: #999;\\r\\n}\\r\\n.mk-doc__tableCellResizer {\\r\\n position: absolute;\\r\\n right: -4px;\\r\\n height: 100%;\\r\\n width: 8px;\\r\\n cursor: ew-resize;\\r\\n z-index: 10;\\r\\n top: 0;\\r\\n}\\r\\n.mk-doc__tableCellHeader {\\r\\n background-color: #f2f3f5;\\r\\n text-align: start;\\r\\n}\\r\\n.mk-doc__tableCellSelected {\\r\\n background-color: #c9dbf0;\\r\\n}\\r\\n.mk-doc__tableCellPrimarySelected {\\r\\n border: 2px solid rgb(60, 132, 244);\\r\\n display: block;\\r\\n height: calc(100% - 2px);\\r\\n position: absolute;\\r\\n width: calc(100% - 2px);\\r\\n left: -1px;\\r\\n top: -1px;\\r\\n z-index: 2;\\r\\n}\\r\\n.mk-doc__tableCellEditing {\\r\\n box-shadow: 0 0 5px rgba(0, 0, 0, 0.4);\\r\\n border-radius: 3px;\\r\\n}\\r\\n.mk-doc__tableAddColumns {\\r\\n position: absolute;\\r\\n top: 0;\\r\\n width: 20px;\\r\\n background-color: #eee;\\r\\n height: 100%;\\r\\n right: -25px;\\r\\n animation: table-controls 0.2s ease;\\r\\n border: 0;\\r\\n cursor: pointer;\\r\\n}\\r\\n.mk-doc__tableAddColumns:after {\\r\\n background-image: url(../images/icons/plus.svg);\\r\\n background-size: contain;\\r\\n background-position: center;\\r\\n background-repeat: no-repeat;\\r\\n display: block;\\r\\n content: ' ';\\r\\n position: absolute;\\r\\n top: 0;\\r\\n left: 0;\\r\\n width: 100%;\\r\\n height: 100%;\\r\\n opacity: 0.4;\\r\\n}\\r\\n.mk-doc__tableAddColumns:hover {\\r\\n background-color: #c9dbf0;\\r\\n}\\r\\n.mk-doc__tableAddRows {\\r\\n position: absolute;\\r\\n bottom: -25px;\\r\\n width: calc(100% - 25px);\\r\\n background-color: #eee;\\r\\n height: 20px;\\r\\n left: 0;\\r\\n animation: table-controls 0.2s ease;\\r\\n border: 0;\\r\\n cursor: pointer;\\r\\n}\\r\\n.mk-doc__tableAddRows:after {\\r\\n background-image: url(../images/icons/plus.svg);\\r\\n background-size: contain;\\r\\n background-position: center;\\r\\n background-repeat: no-repeat;\\r\\n display: block;\\r\\n content: ' ';\\r\\n position: absolute;\\r\\n top: 0;\\r\\n left: 0;\\r\\n width: 100%;\\r\\n height: 100%;\\r\\n opacity: 0.4;\\r\\n}\\r\\n.mk-doc__tableAddRows:hover {\\r\\n background-color: #c9dbf0;\\r\\n}\\r\\n@keyframes table-controls {\\r\\n 0% {\\r\\n opacity: 0;\\r\\n }\\r\\n 100% {\\r\\n opacity: 1;\\r\\n }\\r\\n}\\r\\n.mk-doc__tableCellResizeRuler {\\r\\n display: block;\\r\\n position: absolute;\\r\\n width: 1px;\\r\\n background-color: rgb(60, 132, 244);\\r\\n height: 100%;\\r\\n top: 0;\\r\\n}\\r\\n.mk-doc__tableCellActionButtonContainer {\\r\\n display: block;\\r\\n right: 5px;\\r\\n top: 6px;\\r\\n position: absolute;\\r\\n z-index: 4;\\r\\n width: 20px;\\r\\n height: 20px;\\r\\n}\\r\\n.mk-doc__tableCellActionButton {\\r\\n background-color: #eee;\\r\\n display: block;\\r\\n border: 0;\\r\\n border-radius: 20px;\\r\\n width: 20px;\\r\\n height: 20px;\\r\\n color: #222;\\r\\n cursor: pointer;\\r\\n}\\r\\n.mk-doc__tableCellActionButton:hover {\\r\\n background-color: #ddd;\\r\\n}\\r\\n.mk-doc__characterLimit {\\r\\n display: inline;\\r\\n background-color: #ffbbbb !important;\\r\\n}\\r\\n.mk-doc__ol1 {\\r\\n padding: 0;\\r\\n margin: 0;\\r\\n /* list-style-position: inside; */\\r\\n}\\r\\n.mk-doc__ol2 {\\r\\n padding: 0;\\r\\n margin: 0;\\r\\n list-style-type: upper-alpha;\\r\\n /* list-style-position: inside; */\\r\\n}\\r\\n.mk-doc__ol3 {\\r\\n padding: 0;\\r\\n margin: 0;\\r\\n list-style-type: lower-alpha;\\r\\n /* list-style-position: inside; */\\r\\n}\\r\\n.mk-doc__ol4 {\\r\\n padding: 0;\\r\\n margin: 0;\\r\\n list-style-type: upper-roman;\\r\\n /* list-style-position: inside; */\\r\\n}\\r\\n.mk-doc__ol5 {\\r\\n padding: 0;\\r\\n margin: 0;\\r\\n list-style-type: lower-roman;\\r\\n /* list-style-position: inside; */\\r\\n}\\r\\n.mk-doc__ul {\\r\\n padding: 0;\\r\\n margin: 0;\\r\\n /* list-style-position: inside; */\\r\\n}\\r\\n.mk-doc__listItem {\\r\\n margin: 0 32px;\\r\\n}\\r\\n.mk-doc__listItemChecked,\\r\\n.mk-doc__listItemUnchecked {\\r\\n position: relative;\\r\\n margin-left: 8px;\\r\\n margin-right: 8px;\\r\\n padding-left: 24px;\\r\\n padding-right: 24px;\\r\\n list-style-type: none;\\r\\n outline: none;\\r\\n}\\r\\n.mk-doc__listItemChecked {\\r\\n text-decoration: line-through;\\r\\n}\\r\\n.mk-doc__listItemUnchecked:before,\\r\\n.mk-doc__listItemChecked:before {\\r\\n content: '';\\r\\n width: 16px;\\r\\n height: 16px;\\r\\n top: 2px;\\r\\n left: 0;\\r\\n cursor: pointer;\\r\\n display: block;\\r\\n background-size: cover;\\r\\n position: absolute;\\r\\n}\\r\\n.mk-doc__listItemUnchecked[dir='rtl']:before,\\r\\n.mk-doc__listItemChecked[dir='rtl']:before {\\r\\n left: auto;\\r\\n right: 0;\\r\\n}\\r\\n.mk-doc__listItemUnchecked:focus:before,\\r\\n.mk-doc__listItemChecked:focus:before {\\r\\n box-shadow: 0 0 0 2px #a6cdfe;\\r\\n border-radius: 2px;\\r\\n}\\r\\n.mk-doc__listItemUnchecked:before {\\r\\n border: 1px solid #999;\\r\\n border-radius: 2px;\\r\\n}\\r\\n.mk-doc__listItemChecked:before {\\r\\n border: 1px solid rgb(61, 135, 245);\\r\\n border-radius: 2px;\\r\\n background-color: #3d87f5;\\r\\n background-repeat: no-repeat;\\r\\n}\\r\\n.mk-doc__listItemChecked:after {\\r\\n content: '';\\r\\n cursor: pointer;\\r\\n border-color: #fff;\\r\\n border-style: solid;\\r\\n position: absolute;\\r\\n display: block;\\r\\n top: 6px;\\r\\n width: 3px;\\r\\n left: 7px;\\r\\n right: 7px;\\r\\n height: 6px;\\r\\n transform: rotate(45deg);\\r\\n border-width: 0 2px 2px 0;\\r\\n}\\r\\n.mk-doc__nestedListItem {\\r\\n list-style-type: none;\\r\\n}\\r\\n.mk-doc__nestedListItem:before,\\r\\n.mk-doc__nestedListItem:after {\\r\\n display: none;\\r\\n}\\r\\n.mk-doc__tokenComment {\\r\\n color: slategray;\\r\\n}\\r\\n.mk-doc__tokenPunctuation {\\r\\n color: #999;\\r\\n}\\r\\n.mk-doc__tokenProperty {\\r\\n color: #905;\\r\\n}\\r\\n.mk-doc__tokenSelector {\\r\\n color: #690;\\r\\n}\\r\\n.mk-doc__tokenOperator {\\r\\n color: #9a6e3a;\\r\\n}\\r\\n.mk-doc__tokenAttr {\\r\\n color: #07a;\\r\\n}\\r\\n.mk-doc__tokenVariable {\\r\\n color: #e90;\\r\\n}\\r\\n.mk-doc__tokenFunction {\\r\\n color: #dd4a68;\\r\\n}\\r\\n.mk-doc__mark {\\r\\n background: rgba(255, 212, 0, 0.14);\\r\\n border-bottom: 2px solid rgba(255, 212, 0, 0.3);\\r\\n padding-bottom: 2px;\\r\\n}\\r\\n.mk-doc__markOverlap {\\r\\n background: rgba(255, 212, 0, 0.3);\\r\\n border-bottom: 2px solid rgba(255, 212, 0, 0.7);\\r\\n}\\r\\n.mk-doc__mark.selected {\\r\\n background: rgba(255, 212, 0, 0.5);\\r\\n border-bottom: 2px solid rgba(255, 212, 0, 1);\\r\\n}\\r\\n.mk-doc__markOverlap.selected {\\r\\n background: rgba(255, 212, 0, 0.7);\\r\\n border-bottom: 2px solid rgba(255, 212, 0, 0.7);\\r\\n}\\r\\n.mk-doc__layoutContainer {\\r\\n display: grid;\\r\\n gap: 10px;\\r\\n margin: 10px 0;\\r\\n}\\r\\n.mk-doc__layoutItem {\\r\\n border: 1px dashed #ddd;\\r\\n padding: 8px 16px;\\r\\n}\\r\\n\\r\\n.mk-doc__image-text::after{\\r\\n content: \\\".\\\";\\r\\n font-size: 0;\\r\\n clear: both;\\r\\n display: block;\\r\\n}\\r\\n\\r\\n\""],"names":[],"mappings":"AAAA,MAAe,cAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
|
package/dist/esm/index.js
CHANGED
|
@@ -146,6 +146,7 @@ import { uploadImageEmits, uploadImageProps } from "./components/basic/upload-fi
|
|
|
146
146
|
import { uploadFileUiEmits, uploadFileUiProps } from "./components/basic/upload-file/ui/upload-file/upload-file-options.js";
|
|
147
147
|
import { uploadVideoEmits, uploadVideoProps } from "./components/basic/upload-file/ui/upload-video/upload-video-options.js";
|
|
148
148
|
import { registerDocModule } from "./components/basic/doc-editor/plugins/ModulePlugin/composables.js";
|
|
149
|
+
import { registerDocTemplate } from "./components/basic/doc-editor/plugins/TemplatePlugin/composables.js";
|
|
149
150
|
import { ImageCropper } from "./components/basic/image-cropper/image-cropper-api.js";
|
|
150
151
|
import { imageCropperContentEmits, imageCropperContentProps } from "./components/basic/image-cropper/image-cropper-content-options.js";
|
|
151
152
|
import { dataFormEmits, dataFormProps } from "./components/data-model/data-form/data-form-options.js";
|
|
@@ -344,6 +345,7 @@ export {
|
|
|
344
345
|
paginationProps,
|
|
345
346
|
provideGlobalConfig,
|
|
346
347
|
registerDocModule,
|
|
348
|
+
registerDocTemplate,
|
|
347
349
|
registerPartContentComponent,
|
|
348
350
|
registerPartExtension,
|
|
349
351
|
richTextEditorEmits,
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/index.ts"],"sourcesContent":["import \"./assets/iconfonts/iconfont.js\";\r\nimport \"./assets/iconfonts/oa-iconfont.js\";\r\nexport * from \"./constants\";\r\n\r\nexport * from \"./core\";\r\n\r\nimport { installer } from \"./installer\";\r\n\r\nexport * from \"./layouts\";\r\nexport * from \"./composables\";\r\nexport * from \"./components\";\r\nexport * from \"./tokens\";\r\n\r\nexport const install = installer.install;\r\nexport const version = installer.version;\r\n\r\nexport * from \"./init-application\";\r\nexport * from \"./define-data-table\";\r\nexport * from \"./define-data-form\";\r\nexport * from \"./define-data-tree\";\r\n\r\nexport * from \"./modules/ms\";\r\nexport * from \"./modules/cms\";\r\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/index.ts"],"sourcesContent":["import \"./assets/iconfonts/iconfont.js\";\r\nimport \"./assets/iconfonts/oa-iconfont.js\";\r\nexport * from \"./constants\";\r\n\r\nexport * from \"./core\";\r\n\r\nimport { installer } from \"./installer\";\r\n\r\nexport * from \"./layouts\";\r\nexport * from \"./composables\";\r\nexport * from \"./components\";\r\nexport * from \"./tokens\";\r\n\r\nexport const install = installer.install;\r\nexport const version = installer.version;\r\n\r\nexport * from \"./init-application\";\r\nexport * from \"./define-data-table\";\r\nexport * from \"./define-data-form\";\r\nexport * from \"./define-data-tree\";\r\n\r\nexport * from \"./modules/ms\";\r\nexport * from \"./modules/cms\";\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaO,MAAM,UAAU,UAAU;AAC1B,MAAM,UAAU,UAAU;"}
|
|
@@ -8,7 +8,6 @@ const registerPartExtension = (partIdorName, ext) => {
|
|
|
8
8
|
const PartContentExtensionList = [];
|
|
9
9
|
const usePartContentComponent = (partIdorName) => {
|
|
10
10
|
var _a;
|
|
11
|
-
console.log(PartContentExtensionList.find((item) => item.key == partIdorName));
|
|
12
11
|
return (_a = PartContentExtensionList.find((item) => item.key == partIdorName)) == null ? void 0 : _a.component;
|
|
13
12
|
};
|
|
14
13
|
const registerPartContentComponent = (partIdorName, component) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"part-extensions.js","sources":["../../../../../src/modules/cms/composables/part-extensions.ts"],"sourcesContent":["\r\nimport { type Component } from \"vue\"\r\n\r\n/**\r\n * 栏目扩展\r\n */\r\nexport type PartExtension = {\r\n title?:\"\",\r\n saveHandle?:Function,\r\n component:Component,\r\n save:Function\r\n}\r\n\r\n\r\nconst PartExtensionList:Array<({key:string|number,extension:PartExtension})> = [];\r\n\r\n/**\r\n * 使用扩展\r\n * @param partId 或者栏目名称\r\n * @returns \r\n */\r\nexport const usePartExtensionList = (partIdorName:string|number):any=>{\r\n return PartExtensionList.filter(item=>item.key == partIdorName).map(item=>item.extension);\r\n}\r\n\r\n/**\r\n * 注册扩展\r\n * @param partId \r\n * @returns \r\n */\r\nexport const registerPartExtension = (partIdorName:string|number,ext:PartExtension)=>{\r\n PartExtensionList.push({ key:partIdorName,extension:ext })\r\n}\r\n\r\n\r\n// 栏目内容扩展\r\nconst PartContentExtensionList:Array<({key:string|number,component:Component})> = [];\r\n\r\n/**\r\n * 使用扩展\r\n * @param partId 或者栏目名称\r\n * @returns \r\n */\r\nexport const usePartContentComponent = (partIdorName:string|number):any=>{\r\n
|
|
1
|
+
{"version":3,"file":"part-extensions.js","sources":["../../../../../src/modules/cms/composables/part-extensions.ts"],"sourcesContent":["\r\nimport { type Component } from \"vue\"\r\n\r\n/**\r\n * 栏目扩展\r\n */\r\nexport type PartExtension = {\r\n title?:\"\",\r\n saveHandle?:Function,\r\n component:Component,\r\n save:Function\r\n}\r\n\r\n\r\nconst PartExtensionList:Array<({key:string|number,extension:PartExtension})> = [];\r\n\r\n/**\r\n * 使用扩展\r\n * @param partId 或者栏目名称\r\n * @returns \r\n */\r\nexport const usePartExtensionList = (partIdorName:string|number):any=>{\r\n return PartExtensionList.filter(item=>item.key == partIdorName).map(item=>item.extension);\r\n}\r\n\r\n/**\r\n * 注册扩展\r\n * @param partId \r\n * @returns \r\n */\r\nexport const registerPartExtension = (partIdorName:string|number,ext:PartExtension)=>{\r\n PartExtensionList.push({ key:partIdorName,extension:ext })\r\n}\r\n\r\n\r\n// 栏目内容扩展\r\nconst PartContentExtensionList:Array<({key:string|number,component:Component})> = [];\r\n\r\n/**\r\n * 使用扩展\r\n * @param partId 或者栏目名称\r\n * @returns \r\n */\r\nexport const usePartContentComponent = (partIdorName:string|number):any=>{\r\n return PartContentExtensionList.find(item=>item.key == partIdorName)?.component;\r\n}\r\n\r\n/**\r\n * 注册扩展\r\n * @param partId \r\n * @returns \r\n */\r\nexport const registerPartContentComponent = (partIdorName:string|number,component:any)=>{\r\n\r\n if(!PartExtensionList.find(item=>item.key == partIdorName)){\r\n PartContentExtensionList.push({ key:partIdorName,component })\r\n }\r\n else{\r\n throw new Error(`重复的栏目内容扩展,栏目标识:[${partIdorName}]`);\r\n }\r\n \r\n}\r\n"],"names":[],"mappings":"AAcA,MAAM,oBAAyE,CAAA;AAOlE,MAAA,uBAAuB,CAAC,iBAAiC;AAC7D,SAAA,kBAAkB,OAAO,CAAA,SAAM,KAAK,OAAO,YAAY,EAAE,IAAI,CAAM,SAAA,KAAK,SAAS;AAC1F;AAOa,MAAA,wBAAwB,CAAC,cAA2B,QAAoB;AACnF,oBAAkB,KAAK,EAAE,KAAI,cAAa,WAAU,KAAK;AAC3D;AAIA,MAAM,2BAA4E,CAAA;AAOrE,MAAA,0BAA0B,CAAC,iBAAiC;AA7BzE;AA8BE,UAAO,8BAAyB,KAAK,CAAA,SAAM,KAAK,OAAO,YAAY,MAA5D,mBAA+D;AACxE;AAOa,MAAA,+BAA+B,CAAC,cAA2B,cAAgB;AAEtF,MAAG,CAAC,kBAAkB,KAAK,UAAM,KAAK,OAAO,YAAY,GAAE;AACzD,6BAAyB,KAAK,EAAE,KAAI,cAAa,UAAW,CAAA;AAAA,EAAA,OAE1D;AACF,UAAM,IAAI,MAAM,mBAAmB,YAAY,GAAG;AAAA,EACpD;AAEF;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CmsAdContentsForm.js","sources":["../../../../../../src/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.ts"],"sourcesContent":["import { DataForm, DataFormOptions, FormColumn } from \"@maketribe/dm\";\r\nimport { ImageUploadContext, MaterialUploadContext } from \"../../../ms\";\r\nimport { DATA_MODEL_NAME } from \"../../../../constants\";\r\nimport { MODULE_NAME } from \"../../constants\";\r\n\r\nexport class CmsAdContentsForm extends DataForm {\r\n\tstatic [DATA_MODEL_NAME]: string = \"ad-content\";\r\n\tcutSise: string = \"\";\r\n\tconstructor(options: DataFormOptions & { cutSise?: string } = {}) {\r\n\t\tsuper({\r\n\t\t\tname: CmsAdContentsForm[DATA_MODEL_NAME],\r\n\t\t\tmoduleName: MODULE_NAME,\r\n\t\t\t...options,\r\n\t\t});\r\n\t\
|
|
1
|
+
{"version":3,"file":"CmsAdContentsForm.js","sources":["../../../../../../src/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.ts"],"sourcesContent":["import { DataForm, DataFormOptions, FormColumn } from \"@maketribe/dm\";\r\nimport { ImageUploadContext, MaterialUploadContext } from \"../../../ms\";\r\nimport { DATA_MODEL_NAME } from \"../../../../constants\";\r\nimport { MODULE_NAME } from \"../../constants\";\r\n\r\nexport class CmsAdContentsForm extends DataForm {\r\n\tstatic [DATA_MODEL_NAME]: string = \"ad-content\";\r\n\tcutSise: string = \"\";\r\n\tconstructor(options: DataFormOptions & { cutSise?: string } = {}) {\r\n\t\tsuper({\r\n\t\t\tname: CmsAdContentsForm[DATA_MODEL_NAME],\r\n\t\t\tmoduleName: MODULE_NAME,\r\n\t\t\t...options,\r\n\t\t});\r\n\t\tthis.cutSise = options.cutSise as string\r\n\t}\r\n\r\n\tchangeCutSise(cutSise: string) {\r\n\t\tthis.cutSise = cutSise\r\n\t}\r\n\r\n\tprotected async initialize() {\r\n\t\tawait super.initialize();\r\n\t\tthis.setColumns([\r\n\t\t\t// new FormColumn({ name: \"adDefineId\", label: \"广告定义\", required: true, visible: true }),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"title\", label: \"标题\", required: true, componentInfo: \"MKFormInput\",\r\n\t\t\t\tcomponentProps: {\r\n\t\t\t\t\ttype: \"textarea\",\r\n\t\t\t\t\trows: 2\r\n\t\t\t\t}\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"desc\", label: \"描述\", required: true, componentInfo: \"MKFormInput\",\r\n\t\t\t\tcomponentProps: {\r\n\t\t\t\t\ttype: \"textarea\",\r\n\t\t\t\t\trows: 5\r\n\t\t\t\t}\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"type\",\r\n\t\t\t\tlabel: \"素材类型\",\r\n\t\t\t\trequired: true,\r\n\t\t\t\tdefaultValue: 1,\r\n\t\t\t\tcomponentInfo: \"MKFormDataSelect\",\r\n\t\t\t\tcomponentProps: {\r\n\t\t\t\t\toptions: [\r\n\t\t\t\t\t\t{ value: 1, label: \"图片\" },\r\n\t\t\t\t\t\t{ value: 2, label: \"视频\" },\r\n\t\t\t\t\t],\r\n\t\t\t\t},\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({\r\n\t\t\t\tname: \"path\",\r\n\t\t\t\tlabel: \"素材路径\",\r\n\t\t\t\trequired: true,\r\n\t\t\t\tcomponentInfo: \"MKFormImageUpload\",\r\n\t\t\t\tcomponentProps: {\r\n\t\t\t\t\tuploadContext: new ImageUploadContext(this.cutSise),\r\n\t\t\t\t},\r\n\t\t\t}),\r\n\t\t\tnew FormColumn({ name: \"link\", label: \"跳转链接\" }),\r\n\t\t]);\r\n\r\n\t\tthis.formItemValueChangeEvent.on((column) => {\r\n\t\t\tif (column.formItem.name == \"type\") {\r\n\t\t\t\tif (column.data.value == 1) {\r\n\t\t\t\t\tthis.getColumn(\"path\")!.componentInfo = \"MKFormImageUpload\"\r\n\t\t\t\t\tthis.getColumn(\"path\")!.componentProps.uploadContext =\r\n\t\t\t\t\t\tnew ImageUploadContext(this.cutSise);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.getColumn(\"path\")!.componentInfo = \"MKFormVideoUpload\"\r\n\t\t\t\t\tthis.getColumn(\"path\")!.componentProps.uploadContext =\r\n\t\t\t\t\t\tnew MaterialUploadContext({\r\n\t\t\t\t\t\t\tallowMaterialTypeValues: [2],\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKO,MAAM,qBAAN,MAAM,4BAA0B,eAC9B,sBAD8B,IAAS;AAAA,EAG/C,YAAY,UAAkD,IAAI;AAC3D,UAAA;AAAA,MACL,MAAM,mBAAkB,eAAe;AAAA,MACvC,YAAY;AAAA,MACZ,GAAG;AAAA,IAAA,CACH;AANF,mCAAkB;AAOjB,SAAK,UAAU,QAAQ;AAAA,EACxB;AAAA,EAEA,cAAc,SAAiB;AAC9B,SAAK,UAAU;AAAA,EAChB;AAAA,EAEA,MAAgB,aAAa;AAC5B,UAAM,MAAM;AACZ,SAAK,WAAW;AAAA;AAAA,MAEf,IAAI,WAAW;AAAA,QACd,MAAM;AAAA,QAAS,OAAO;AAAA,QAAM,UAAU;AAAA,QAAM,eAAe;AAAA,QAC3D,gBAAgB;AAAA,UACf,MAAM;AAAA,UACN,MAAM;AAAA,QACP;AAAA,MAAA,CACA;AAAA,MACD,IAAI,WAAW;AAAA,QACd,MAAM;AAAA,QAAQ,OAAO;AAAA,QAAM,UAAU;AAAA,QAAM,eAAe;AAAA,QAC1D,gBAAgB;AAAA,UACf,MAAM;AAAA,UACN,MAAM;AAAA,QACP;AAAA,MAAA,CACA;AAAA,MACD,IAAI,WAAW;AAAA,QACd,MAAM;AAAA,QACN,OAAO;AAAA,QACP,UAAU;AAAA,QACV,cAAc;AAAA,QACd,eAAe;AAAA,QACf,gBAAgB;AAAA,UACf,SAAS;AAAA,YACR,EAAE,OAAO,GAAG,OAAO,KAAK;AAAA,YACxB,EAAE,OAAO,GAAG,OAAO,KAAK;AAAA,UACzB;AAAA,QACD;AAAA,MAAA,CACA;AAAA,MACD,IAAI,WAAW;AAAA,QACd,MAAM;AAAA,QACN,OAAO;AAAA,QACP,UAAU;AAAA,QACV,eAAe;AAAA,QACf,gBAAgB;AAAA,UACf,eAAe,IAAI,mBAAmB,KAAK,OAAO;AAAA,QACnD;AAAA,MAAA,CACA;AAAA,MACD,IAAI,WAAW,EAAE,MAAM,QAAQ,OAAO,QAAQ;AAAA,IAAA,CAC9C;AAEI,SAAA,yBAAyB,GAAG,CAAC,WAAW;AACxC,UAAA,OAAO,SAAS,QAAQ,QAAQ;AAC/B,YAAA,OAAO,KAAK,SAAS,GAAG;AACtB,eAAA,UAAU,MAAM,EAAG,gBAAgB;AACnC,eAAA,UAAU,MAAM,EAAG,eAAe,gBACtC,IAAI,mBAAmB,KAAK,OAAO;AAAA,QAAA,OAC9B;AACD,eAAA,UAAU,MAAM,EAAG,gBAAgB;AACxC,eAAK,UAAU,MAAM,EAAG,eAAe,gBACtC,IAAI,sBAAsB;AAAA,YACzB,yBAAyB,CAAC,CAAC;AAAA,UAAA,CAC3B;AAAA,QACH;AAAA,MACD;AAAA,IAAA,CACA;AAAA,EACF;AACD;AA1EC,cADY,oBACJ,IAA2B;AAD7B,IAAM,oBAAN;"}
|
|
@@ -428,15 +428,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
428
428
|
})
|
|
429
429
|
]),
|
|
430
430
|
_: 1
|
|
431
|
-
}),
|
|
432
|
-
createVNode(_component_el_row, null, {
|
|
433
|
-
default: withCtx(() => [
|
|
434
|
-
createVNode(unref(MKDataFormItem), {
|
|
435
|
-
style: { "width": "100%" },
|
|
436
|
-
name: "sortNo"
|
|
437
|
-
})
|
|
438
|
-
]),
|
|
439
|
-
_: 1
|
|
440
431
|
})
|
|
441
432
|
]),
|
|
442
433
|
_: 1
|
|
@@ -577,7 +568,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
577
568
|
createVNode(unref(MKUploadImage), {
|
|
578
569
|
modelValue: articleForm.data.banner,
|
|
579
570
|
"onUpdate:modelValue": _cache[10] || (_cache[10] = ($event) => articleForm.data.banner = $event),
|
|
580
|
-
width: "100%",
|
|
571
|
+
style: { "width": "100%" },
|
|
581
572
|
height: "300px",
|
|
582
573
|
uploadContext: new (unref(ImageUploadContext))(unref(CmsSettings).content.bannerImageSize)
|
|
583
574
|
}, null, 8, ["modelValue", "uploadContext"])
|