@maketribe/ms-app 3.2.25 → 3.2.27
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/assets/iconfonts/iconfont.js +1 -1
- package/dist/cjs/assets/iconfonts/iconfont.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/core/element-block.js +92 -0
- package/dist/cjs/components/basic/doc-editor/core/element-block.js.map +1 -0
- package/dist/cjs/components/basic/doc-editor/core/index.js +5 -6
- package/dist/cjs/components/basic/doc-editor/core/index.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/core/utils.js +20 -13
- package/dist/cjs/components/basic/doc-editor/core/utils.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/editor.vue.js +4 -4
- package/dist/cjs/components/basic/doc-editor/editor.vue.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/{DecoratorModuleToolbarPlugin → ElementBlockSelectionPlugin}/index.vue.js +8 -8
- package/dist/cjs/components/basic/doc-editor/plugins/ElementBlockSelectionPlugin/index.vue.js.map +1 -0
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/GridNode.js +164 -0
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/GridNode.js.map +1 -0
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.js +89 -0
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.js.map +1 -0
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.js +120 -0
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.js.map +1 -0
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.js +128 -0
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.js.map +1 -0
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.js +94 -0
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.js.map +1 -0
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/index.vue.js +217 -0
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/index.vue.js.map +1 -0
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/utils.js +140 -0
- package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/utils.js.map +1 -0
- package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.js +54 -43
- 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 -16
- 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 +32 -54
- 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 +25 -13
- 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 +14 -1
- 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 +80 -105
- 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 +0 -12
- package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/utils.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/RichTextPlugin/index.vue.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/RichTextPlugin/nodes/RichTextNode.js +16 -16
- package/dist/cjs/components/basic/doc-editor/plugins/RichTextPlugin/nodes/RichTextNode.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/FontStyleTool.vue.js +34 -7
- package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/FontStyleTool.vue.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js +0 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/index.vue.js +41 -5
- package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/index.vue.js.map +1 -1
- package/dist/cjs/components/basic/doc-editor/plugins/nodes.js +10 -4
- package/dist/cjs/components/basic/doc-editor/plugins/nodes.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 +3 -5
- package/dist/cjs/components/basic/doc-editor/themes/doc-theme.css.js.map +1 -1
- package/dist/cjs/components/basic/dynamic-form-panel/DynamicFormPanel.js +40 -18
- package/dist/cjs/components/basic/dynamic-form-panel/DynamicFormPanel.js.map +1 -1
- package/dist/cjs/components/basic/dynamic-form-panel/dialog.js +2 -2
- package/dist/cjs/components/basic/dynamic-form-panel/dialog.js.map +1 -1
- package/dist/cjs/components/basic/image-cropper/image-cropper-api.js.map +1 -1
- package/dist/cjs/components/basic/upload-file/ui/upload-image/upload-image.js +0 -2
- package/dist/cjs/components/basic/upload-file/ui/upload-image/upload-image.js.map +1 -1
- package/dist/cjs/components/basic/visual-page-editor/content-editable.vue.js +13 -9
- package/dist/cjs/components/basic/visual-page-editor/content-editable.vue.js.map +1 -1
- package/dist/cjs/components/basic/visual-page-editor/core/BlockRender.js +38 -0
- package/dist/cjs/components/basic/visual-page-editor/core/BlockRender.js.map +1 -0
- package/dist/cjs/components/basic/visual-page-editor/core/Dialog.js +76 -0
- package/dist/cjs/components/basic/visual-page-editor/core/Dialog.js.map +1 -0
- package/dist/cjs/components/basic/visual-page-editor/core/VisvalPageEditor.js +72 -1
- package/dist/cjs/components/basic/visual-page-editor/core/VisvalPageEditor.js.map +1 -1
- package/dist/cjs/components/basic/visual-page-editor/core/index.js +21 -13
- package/dist/cjs/components/basic/visual-page-editor/core/index.js.map +1 -1
- package/dist/cjs/components/basic/visual-page-editor/editor.vue.js +2 -29
- package/dist/cjs/components/basic/visual-page-editor/editor.vue.js.map +1 -1
- package/dist/cjs/components/basic/visual-page-editor/index.js +1 -1
- package/dist/cjs/components/basic/visual-page-editor/index.js.map +1 -1
- package/dist/cjs/components/basic/visual-page-editor/modules/BaseImageModule.js +10 -0
- package/dist/cjs/components/basic/visual-page-editor/modules/BaseImageModule.js.map +1 -0
- package/dist/cjs/components/basic/visual-page-editor/toolbar.vue.js +1 -1
- package/dist/cjs/components/basic/visual-page-editor/toolbar.vue.js.map +1 -1
- package/dist/cjs/modules/cms/cms-settings.js +4 -0
- package/dist/cjs/modules/cms/cms-settings.js.map +1 -1
- package/dist/cjs/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.js +4 -0
- package/dist/cjs/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.js.map +1 -1
- package/dist/cjs/modules/cms/dataviews/cms-ad-defines/CmsAdDefinesForm.js +2 -0
- package/dist/cjs/modules/cms/dataviews/cms-ad-defines/CmsAdDefinesForm.js.map +1 -1
- package/dist/cjs/modules/cms/pages/cms-ad/index.vue2.js +8 -6
- package/dist/cjs/modules/cms/pages/cms-ad/index.vue2.js.map +1 -1
- package/dist/cjs/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js +3 -1
- 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/part-banner-edit.vue.js +58 -6
- package/dist/cjs/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js.map +1 -1
- package/dist/cjs/modules/cms/pages/cms-settigns/DocModuleEditForm.vue.js +312 -0
- package/dist/cjs/modules/cms/pages/cms-settigns/DocModuleEditForm.vue.js.map +1 -0
- package/dist/cjs/modules/cms/pages/cms-settigns/DocModuleEditForm.vue2.js +4 -0
- package/dist/cjs/modules/cms/pages/cms-settigns/DocModuleEditForm.vue2.js.map +1 -0
- package/dist/cjs/modules/cms/pages/cms-settigns/index.vue2.js +18 -0
- package/dist/cjs/modules/cms/pages/cms-settigns/index.vue2.js.map +1 -1
- package/dist/cjs/modules/ms/components/image-select/image-select-api.js +14 -2
- package/dist/cjs/modules/ms/components/image-select/image-select-api.js.map +1 -1
- package/dist/cjs/modules/ms/components/image-select/image-select-panel.js +7 -1
- package/dist/cjs/modules/ms/components/image-select/image-select-panel.js.map +1 -1
- package/dist/cjs/modules/ms/image-upload-context/index.js +1 -1
- package/dist/cjs/modules/ms/image-upload-context/index.js.map +1 -1
- package/dist/esm/assets/iconfonts/iconfont.js +1 -1
- package/dist/esm/assets/iconfonts/iconfont.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/core/element-block.js +92 -0
- package/dist/esm/components/basic/doc-editor/core/element-block.js.map +1 -0
- package/dist/esm/components/basic/doc-editor/core/index.js +6 -7
- package/dist/esm/components/basic/doc-editor/core/index.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/core/utils.js +20 -13
- package/dist/esm/components/basic/doc-editor/core/utils.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/editor.vue.js +4 -4
- package/dist/esm/components/basic/doc-editor/editor.vue.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/{DecoratorModuleToolbarPlugin → ElementBlockSelectionPlugin}/index.vue.js +8 -8
- package/dist/esm/components/basic/doc-editor/plugins/ElementBlockSelectionPlugin/index.vue.js.map +1 -0
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/GridNode.js +164 -0
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/GridNode.js.map +1 -0
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.js +89 -0
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.js.map +1 -0
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.js +120 -0
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.js.map +1 -0
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.js +128 -0
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.js.map +1 -0
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.js +94 -0
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.js.map +1 -0
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/index.vue.js +218 -0
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/index.vue.js.map +1 -0
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/utils.js +140 -0
- package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/utils.js.map +1 -0
- package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.js +55 -44
- 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 -17
- 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 +33 -55
- 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 +25 -13
- 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 +14 -1
- 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 +84 -109
- 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 +0 -12
- package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/utils.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/RichTextPlugin/index.vue.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/RichTextPlugin/nodes/RichTextNode.js +16 -16
- package/dist/esm/components/basic/doc-editor/plugins/RichTextPlugin/nodes/RichTextNode.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/FontStyleTool.vue.js +37 -10
- package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/FontStyleTool.vue.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js +0 -1
- package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/index.vue.js +43 -7
- package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/index.vue.js.map +1 -1
- package/dist/esm/components/basic/doc-editor/plugins/nodes.js +10 -4
- package/dist/esm/components/basic/doc-editor/plugins/nodes.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 +3 -5
- package/dist/esm/components/basic/doc-editor/themes/doc-theme.css.js.map +1 -1
- package/dist/esm/components/basic/dynamic-form-panel/DynamicFormPanel.js +40 -18
- package/dist/esm/components/basic/dynamic-form-panel/DynamicFormPanel.js.map +1 -1
- package/dist/esm/components/basic/dynamic-form-panel/dialog.js +2 -2
- package/dist/esm/components/basic/dynamic-form-panel/dialog.js.map +1 -1
- package/dist/esm/components/basic/image-cropper/image-cropper-api.js.map +1 -1
- package/dist/esm/components/basic/upload-file/ui/upload-image/upload-image.js +0 -2
- package/dist/esm/components/basic/upload-file/ui/upload-image/upload-image.js.map +1 -1
- package/dist/esm/components/basic/visual-page-editor/content-editable.vue.js +14 -10
- package/dist/esm/components/basic/visual-page-editor/content-editable.vue.js.map +1 -1
- package/dist/esm/components/basic/visual-page-editor/core/BlockRender.js +39 -0
- package/dist/esm/components/basic/visual-page-editor/core/BlockRender.js.map +1 -0
- package/dist/esm/components/basic/visual-page-editor/core/Dialog.js +76 -0
- package/dist/esm/components/basic/visual-page-editor/core/Dialog.js.map +1 -0
- package/dist/esm/components/basic/visual-page-editor/core/VisvalPageEditor.js +73 -2
- package/dist/esm/components/basic/visual-page-editor/core/VisvalPageEditor.js.map +1 -1
- package/dist/esm/components/basic/visual-page-editor/core/index.js +21 -13
- package/dist/esm/components/basic/visual-page-editor/core/index.js.map +1 -1
- package/dist/esm/components/basic/visual-page-editor/editor.vue.js +4 -31
- package/dist/esm/components/basic/visual-page-editor/editor.vue.js.map +1 -1
- package/dist/esm/components/basic/visual-page-editor/index.js +1 -1
- package/dist/esm/components/basic/visual-page-editor/index.js.map +1 -1
- package/dist/esm/components/basic/visual-page-editor/modules/BaseImageModule.js +9 -0
- package/dist/esm/components/basic/visual-page-editor/modules/BaseImageModule.js.map +1 -0
- package/dist/esm/components/basic/visual-page-editor/toolbar.vue.js +2 -2
- package/dist/esm/components/basic/visual-page-editor/toolbar.vue.js.map +1 -1
- package/dist/esm/modules/cms/cms-settings.js +4 -0
- package/dist/esm/modules/cms/cms-settings.js.map +1 -1
- package/dist/esm/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.js +4 -0
- package/dist/esm/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.js.map +1 -1
- package/dist/esm/modules/cms/dataviews/cms-ad-defines/CmsAdDefinesForm.js +2 -0
- package/dist/esm/modules/cms/dataviews/cms-ad-defines/CmsAdDefinesForm.js.map +1 -1
- package/dist/esm/modules/cms/pages/cms-ad/index.vue2.js +9 -7
- package/dist/esm/modules/cms/pages/cms-ad/index.vue2.js.map +1 -1
- package/dist/esm/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js +3 -1
- 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/part-banner-edit.vue.js +58 -6
- package/dist/esm/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js.map +1 -1
- package/dist/esm/modules/cms/pages/cms-settigns/DocModuleEditForm.vue.js +313 -0
- package/dist/esm/modules/cms/pages/cms-settigns/DocModuleEditForm.vue.js.map +1 -0
- package/dist/esm/modules/cms/pages/cms-settigns/DocModuleEditForm.vue2.js +5 -0
- package/dist/esm/modules/cms/pages/cms-settigns/DocModuleEditForm.vue2.js.map +1 -0
- package/dist/esm/modules/cms/pages/cms-settigns/index.vue2.js +18 -0
- package/dist/esm/modules/cms/pages/cms-settigns/index.vue2.js.map +1 -1
- package/dist/esm/modules/ms/components/image-select/image-select-api.js +14 -2
- package/dist/esm/modules/ms/components/image-select/image-select-api.js.map +1 -1
- package/dist/esm/modules/ms/components/image-select/image-select-panel.js +9 -3
- package/dist/esm/modules/ms/components/image-select/image-select-panel.js.map +1 -1
- package/dist/esm/modules/ms/image-upload-context/index.js +1 -1
- package/dist/esm/modules/ms/image-upload-context/index.js.map +1 -1
- package/dist/style/components/basic/doc-editor/index.css +1 -1
- package/dist/style/components/basic/visual-page-editor/index.css +1 -1
- package/dist/style/components/index.css +1 -1
- package/dist/style/index.css +2 -2
- package/dist/style/src/components/basic/doc-editor/index.scss +2 -0
- package/dist/style/src/components/basic/visual-page-editor/index.scss +4 -2
- package/dist/types/components/basic/doc-editor/core/element-block.d.ts +45 -0
- package/dist/types/components/basic/doc-editor/core/index.d.ts +8 -4
- package/dist/types/components/basic/doc-editor/core/utils.d.ts +2 -2
- package/dist/types/components/basic/doc-editor/plugins/GridPlugin/GridNode.d.ts +88 -0
- package/dist/types/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.d.ts +50 -0
- package/dist/types/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.d.ts +72 -0
- package/dist/types/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.d.ts +64 -0
- package/dist/types/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.d.ts +51 -0
- package/dist/types/components/basic/doc-editor/plugins/GridPlugin/index.d.ts +5 -0
- package/dist/types/components/basic/doc-editor/plugins/GridPlugin/utils.d.ts +3 -0
- package/dist/types/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.d.ts +24 -20
- package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/ModuleBlockNode.d.ts +18 -10
- package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/composables.d.ts +5 -0
- package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/index.d.ts +0 -1
- package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/utils.d.ts +0 -6
- package/dist/types/components/basic/doc-editor/plugins/index.d.ts +3 -3
- package/dist/types/components/basic/doc-editor/utils/getSelectedNode.d.ts +1 -1
- package/dist/types/components/basic/dynamic-form-panel/type.d.ts +3 -2
- package/dist/types/components/basic/visual-page-editor/core/Dialog.d.ts +15 -0
- package/dist/types/components/basic/visual-page-editor/core/ModuleDefine.d.ts +12 -0
- package/dist/types/components/basic/visual-page-editor/core/VisvalPageEditor.d.ts +45 -1
- package/dist/types/components/basic/visual-page-editor/core/index.d.ts +2 -10
- package/dist/types/components/basic/visual-page-editor/editor.vue.d.ts +1 -0
- package/dist/types/components/basic/visual-page-editor/index.d.ts +2 -1
- package/dist/types/components/basic/visual-page-editor/modules/index.d.ts +1 -0
- package/dist/types/modules/cms/cms-settings.d.ts +4 -28
- package/dist/types/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.d.ts +1 -0
- package/dist/types/modules/cms/pages/cms-settigns/DocModuleEditForm.vue.d.ts +45 -0
- package/dist/types/modules/ms/components/image-select/image-select-api.d.ts +1 -1
- package/dist/types/modules/ms/image-upload-context/index.d.ts +1 -1
- package/package.json +9 -8
- package/dist/cjs/components/basic/doc-editor/core/decorator-module.js +0 -13
- package/dist/cjs/components/basic/doc-editor/core/decorator-module.js.map +0 -1
- package/dist/cjs/components/basic/doc-editor/core/element-module.js +0 -68
- package/dist/cjs/components/basic/doc-editor/core/element-module.js.map +0 -1
- package/dist/cjs/components/basic/doc-editor/plugins/DecoratorModuleToolbarPlugin/index.vue.js.map +0 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ImageTextPlugin/ImageTextNode.js +0 -106
- package/dist/cjs/components/basic/doc-editor/plugins/ImageTextPlugin/ImageTextNode.js.map +0 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ImageTextPlugin/index.vue.js +0 -45
- package/dist/cjs/components/basic/doc-editor/plugins/ImageTextPlugin/index.vue.js.map +0 -1
- package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/ModuleContainerNode.js +0 -143
- package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/ModuleContainerNode.js.map +0 -1
- package/dist/cjs/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockCantainerNode.js +0 -123
- package/dist/cjs/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockCantainerNode.js.map +0 -1
- package/dist/cjs/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockNode.js +0 -84
- package/dist/cjs/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockNode.js.map +0 -1
- package/dist/cjs/components/basic/visual-page-editor/components/BlockRender.js +0 -31
- package/dist/cjs/components/basic/visual-page-editor/components/BlockRender.js.map +0 -1
- package/dist/cjs/components/basic/visual-page-editor/utils/Dialog.js +0 -111
- package/dist/cjs/components/basic/visual-page-editor/utils/Dialog.js.map +0 -1
- package/dist/cjs/components/basic/visual-page-editor/visual-components/ImageRenderComponent.js +0 -29
- package/dist/cjs/components/basic/visual-page-editor/visual-components/ImageRenderComponent.js.map +0 -1
- package/dist/esm/components/basic/doc-editor/core/decorator-module.js +0 -13
- package/dist/esm/components/basic/doc-editor/core/decorator-module.js.map +0 -1
- package/dist/esm/components/basic/doc-editor/core/element-module.js +0 -68
- package/dist/esm/components/basic/doc-editor/core/element-module.js.map +0 -1
- package/dist/esm/components/basic/doc-editor/plugins/DecoratorModuleToolbarPlugin/index.vue.js.map +0 -1
- package/dist/esm/components/basic/doc-editor/plugins/ImageTextPlugin/ImageTextNode.js +0 -106
- package/dist/esm/components/basic/doc-editor/plugins/ImageTextPlugin/ImageTextNode.js.map +0 -1
- package/dist/esm/components/basic/doc-editor/plugins/ImageTextPlugin/index.vue.js +0 -46
- package/dist/esm/components/basic/doc-editor/plugins/ImageTextPlugin/index.vue.js.map +0 -1
- package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/ModuleContainerNode.js +0 -143
- package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/ModuleContainerNode.js.map +0 -1
- package/dist/esm/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockCantainerNode.js +0 -123
- package/dist/esm/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockCantainerNode.js.map +0 -1
- package/dist/esm/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockNode.js +0 -84
- package/dist/esm/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockNode.js.map +0 -1
- package/dist/esm/components/basic/visual-page-editor/components/BlockRender.js +0 -32
- package/dist/esm/components/basic/visual-page-editor/components/BlockRender.js.map +0 -1
- package/dist/esm/components/basic/visual-page-editor/utils/Dialog.js +0 -111
- package/dist/esm/components/basic/visual-page-editor/utils/Dialog.js.map +0 -1
- package/dist/esm/components/basic/visual-page-editor/visual-components/ImageRenderComponent.js +0 -28
- package/dist/esm/components/basic/visual-page-editor/visual-components/ImageRenderComponent.js.map +0 -1
- package/dist/types/components/basic/doc-editor/core/decorator-module.d.ts +0 -60
- package/dist/types/components/basic/doc-editor/core/element-module.d.ts +0 -15
- package/dist/types/components/basic/doc-editor/plugins/ImageTextPlugin/ImageTextNode.d.ts +0 -63
- package/dist/types/components/basic/doc-editor/plugins/ImageTextPlugin/index.d.ts +0 -1
- package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/ModuleContainerNode.d.ts +0 -86
- package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/ModuleRenderComponent.d.ts +0 -23
- package/dist/types/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockCantainerNode.d.ts +0 -63
- package/dist/types/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockNode.d.ts +0 -58
- package/dist/types/components/basic/visual-page-editor/core/RenderComponent.d.ts +0 -16
- package/dist/types/components/basic/visual-page-editor/utils/Dialog.d.ts +0 -15
- package/dist/types/components/basic/visual-page-editor/visual-components/index.d.ts +0 -1
- /package/dist/cjs/components/basic/doc-editor/plugins/{DecoratorModuleToolbarPlugin → ElementBlockSelectionPlugin}/index.vue2.js +0 -0
- /package/dist/cjs/components/basic/doc-editor/plugins/{DecoratorModuleToolbarPlugin → ElementBlockSelectionPlugin}/index.vue2.js.map +0 -0
- /package/dist/cjs/components/basic/doc-editor/plugins/{ImageTextPlugin → GridPlugin}/index.vue2.js +0 -0
- /package/dist/cjs/components/basic/doc-editor/plugins/{ImageTextPlugin → GridPlugin}/index.vue2.js.map +0 -0
- /package/dist/esm/components/basic/doc-editor/plugins/{DecoratorModuleToolbarPlugin → ElementBlockSelectionPlugin}/index.vue2.js +0 -0
- /package/dist/esm/components/basic/doc-editor/plugins/{DecoratorModuleToolbarPlugin → ElementBlockSelectionPlugin}/index.vue2.js.map +0 -0
- /package/dist/esm/components/basic/doc-editor/plugins/{ImageTextPlugin → GridPlugin}/index.vue2.js +0 -0
- /package/dist/esm/components/basic/doc-editor/plugins/{ImageTextPlugin → GridPlugin}/index.vue2.js.map +0 -0
- /package/dist/types/components/basic/doc-editor/plugins/{DecoratorModuleToolbarPlugin → ElementBlockSelectionPlugin}/index.vue.d.ts +0 -0
- /package/dist/types/components/basic/doc-editor/plugins/{ImageTextPlugin → GridPlugin}/index.vue.d.ts +0 -0
- /package/dist/types/components/basic/visual-page-editor/{components → core}/BlockRender.d.ts +0 -0
- /package/dist/types/components/basic/visual-page-editor/{visual-components/ImageRenderComponent.d.ts → modules/BaseImageModule.d.ts} +0 -0
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const lexical = require("lexical");
|
|
4
|
-
const BaseMarkClassName = "mk-doc-block";
|
|
5
|
-
class BaseBlockNode extends lexical.ElementNode {
|
|
6
|
-
constructor(type, key) {
|
|
7
|
-
super(key);
|
|
8
|
-
this.__type = type;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* 获取指定类型模块类标识
|
|
12
|
-
* @param type
|
|
13
|
-
* @returns
|
|
14
|
-
*/
|
|
15
|
-
static getMarkClassName(type) {
|
|
16
|
-
return `${BaseMarkClassName}__${type}`;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* 是否是指定类型模块
|
|
20
|
-
* @param dom
|
|
21
|
-
* @param type
|
|
22
|
-
* @returns
|
|
23
|
-
*/
|
|
24
|
-
static hasBlockByType(dom, type) {
|
|
25
|
-
return dom.classList.contains(BaseBlockNode.getMarkClassName(type));
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* 导出json
|
|
29
|
-
* @returns
|
|
30
|
-
*/
|
|
31
|
-
exportJSON() {
|
|
32
|
-
return {
|
|
33
|
-
...super.exportJSON(),
|
|
34
|
-
type: this.__type,
|
|
35
|
-
version: 1
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* 获取标识类名
|
|
40
|
-
*/
|
|
41
|
-
getMarkClassName() {
|
|
42
|
-
return BaseBlockNode.getMarkClassName(this.__type);
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* 导出DOM
|
|
46
|
-
* @returns
|
|
47
|
-
*/
|
|
48
|
-
exportDOM() {
|
|
49
|
-
const element = document.createElement("div");
|
|
50
|
-
if (!element.classList.contains(this.getMarkClassName())) {
|
|
51
|
-
element.classList.add(this.getMarkClassName());
|
|
52
|
-
}
|
|
53
|
-
return { element };
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* 创建渲染DOM
|
|
57
|
-
* @param config
|
|
58
|
-
* @returns
|
|
59
|
-
*/
|
|
60
|
-
createDOM(config) {
|
|
61
|
-
const el = this.exportDOM().element;
|
|
62
|
-
el.setAttribute("node-key", this.__key);
|
|
63
|
-
return el;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* 更新DOM
|
|
67
|
-
* @param prevNode
|
|
68
|
-
* @param dom
|
|
69
|
-
* @param config
|
|
70
|
-
* @returns
|
|
71
|
-
*/
|
|
72
|
-
updateDOM(prevNode, dom, config) {
|
|
73
|
-
return false;
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* 非内联
|
|
77
|
-
* @returns
|
|
78
|
-
*/
|
|
79
|
-
isInline() {
|
|
80
|
-
return false;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
exports.BaseBlockNode = BaseBlockNode;
|
|
84
|
-
//# sourceMappingURL=BaseBlockNode.js.map
|
package/dist/cjs/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockNode.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BaseBlockNode.js","sources":["../../../../../../../../src/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockNode.ts"],"sourcesContent":["import type {\r\n DOMExportOutput,\r\n EditorConfig,\r\n NodeKey,\r\n Spread,\r\n SerializedElementNode,\r\n\r\n} from 'lexical'\r\nimport { isBlockDomNode, $isBlockElementNode,ElementNode } from 'lexical'\r\nimport { type Component} from \"vue\"\r\n \r\n/**\r\n * 可编辑组件块节点\r\n */\r\nexport type SerializedBlockNode = Spread<{},SerializedElementNode>\r\n\r\n// 基础类标识\r\nconst BaseMarkClassName = \"mk-doc-block\";\r\n\r\n/**\r\n * 定义组件块节点\r\n */\r\nexport class BaseBlockNode extends ElementNode {\r\n\r\n constructor(type: string, key?: NodeKey) {\r\n super(key)\r\n this.__type = type\r\n }\r\n\r\n /**\r\n * 获取指定类型模块类标识\r\n * @param type \r\n * @returns \r\n */\r\n static getMarkClassName(type:string): string {\r\n return `${BaseMarkClassName}__${type}`\r\n }\r\n\r\n /**\r\n * 是否是指定类型模块\r\n * @param dom \r\n * @param type \r\n * @returns \r\n */\r\n static hasBlockByType(dom: HTMLElement,type:string): boolean {\r\n return dom.classList.contains(BaseBlockNode.getMarkClassName(type))\r\n }\r\n\r\n /**\r\n * 导出json\r\n * @returns \r\n */\r\n exportJSON(): SerializedBlockNode {\r\n return {\r\n ...super.exportJSON(),\r\n type: this.__type,\r\n version: 1\r\n }\r\n }\r\n\r\n /**\r\n * 获取标识类名\r\n */\r\n getMarkClassName(){\r\n return BaseBlockNode.getMarkClassName(this.__type)\r\n }\r\n\r\n /**\r\n * 导出DOM\r\n * @returns \r\n */\r\n exportDOM(): DOMExportOutput {\r\n \r\n const element = document.createElement('div')\r\n\r\n if (!element.classList.contains(this.getMarkClassName())) {\r\n element.classList.add(this.getMarkClassName());\r\n }\r\n\r\n return { element }\r\n }\r\n\r\n /**\r\n * 创建渲染DOM\r\n * @param config \r\n * @returns \r\n */\r\n createDOM(config: EditorConfig): HTMLElement {\r\n const el = this.exportDOM().element as HTMLElement;\r\n el.setAttribute(\"node-key\",this.__key)\r\n return el;\r\n }\r\n\r\n /**\r\n * 更新DOM\r\n * @param prevNode \r\n * @param dom \r\n * @param config \r\n * @returns \r\n */\r\n updateDOM(prevNode: BaseBlockNode, dom: HTMLElement, config: EditorConfig): boolean {\r\n // console.log(\"Image Text updateDOM\",prevNode,dom);\r\n // const position = this.__pos\r\n // if (position !== prevNode.__pos) {\r\n // const className = `${config.theme.image} position-${position}`\r\n // if (className !== undefined) {\r\n // dom.className = className\r\n // }\r\n // }\r\n // const inner = dom.firstChild\r\n // if (inner === null){ return true }\r\n // super.updateDOM(prevNode, inner as HTMLElement, config)\r\n return false\r\n }\r\n\r\n /**\r\n * 非内联\r\n * @returns \r\n */\r\n isInline(): boolean {\r\n return false;\r\n }\r\n\r\n}\r\n"],"names":["ElementNode"],"mappings":";;;AAiBA,MAAM,oBAAoB;AAKnB,MAAM,sBAAsBA,QAAAA,YAAY;AAAA,EAE7C,YAAY,MAAe,KAAe;AACxC,UAAM,GAAG;AACT,SAAK,SAAS;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOC,OAAO,iBAAiB,MAAqB;AACrC,WAAA,GAAG,iBAAiB,KAAK,IAAI;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,eAAe,KAAiB,MAAsB;AAC3D,WAAO,IAAI,UAAU,SAAS,cAAc,iBAAiB,IAAI,CAAC;AAAA,EACpE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,aAAkC;AACzB,WAAA;AAAA,MACL,GAAG,MAAM,WAAW;AAAA,MACpB,MAAM,KAAK;AAAA,MACX,SAAS;AAAA,IAAA;AAAA,EAEb;AAAA;AAAA;AAAA;AAAA,EAKA,mBAAkB;AACT,WAAA,cAAc,iBAAiB,KAAK,MAAM;AAAA,EACnD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,YAA6B;AAErB,UAAA,UAAU,SAAS,cAAc,KAAK;AAE5C,QAAI,CAAC,QAAQ,UAAU,SAAS,KAAK,iBAAA,CAAkB,GAAG;AACxD,cAAQ,UAAU,IAAI,KAAK,iBAAkB,CAAA;AAAA,IAC/C;AAEA,WAAO,EAAE,QAAQ;AAAA,EACnB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,UAAU,QAAmC;AACrC,UAAA,KAAK,KAAK,UAAA,EAAY;AACzB,OAAA,aAAa,YAAW,KAAK,KAAK;AAC9B,WAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,UAAU,UAAyB,KAAkB,QAA+B;AAY3E,WAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,WAAoB;AACX,WAAA;AAAA,EACT;AAEF;;"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
const vue = require("vue");
|
|
3
|
-
const index = require("../core/index.js");
|
|
4
|
-
const BlockRender = vue.defineComponent({
|
|
5
|
-
name: "BlockRender",
|
|
6
|
-
emits: ["click"],
|
|
7
|
-
props: {
|
|
8
|
-
node: { type: Object },
|
|
9
|
-
parent: { type: Object },
|
|
10
|
-
index: { type: Number },
|
|
11
|
-
active: { type: Boolean }
|
|
12
|
-
},
|
|
13
|
-
setup: (props, { emit }) => {
|
|
14
|
-
const { RenderComponents } = index.useRenderComponent();
|
|
15
|
-
return () => {
|
|
16
|
-
const content = props.node;
|
|
17
|
-
const renderComponent = RenderComponents.find((item) => item.name == content.componentInfo);
|
|
18
|
-
return vue.h("div", { class: "mk-visual-page-editor__stage_block" }, [
|
|
19
|
-
vue.h(renderComponent == null ? void 0 : renderComponent.component, content.componentProps),
|
|
20
|
-
vue.h("div", {
|
|
21
|
-
class: { "mk-visual-page-editor__stage_block_mask": true, active: props.active },
|
|
22
|
-
onClick: (ev) => {
|
|
23
|
-
emit("click", { node: content, options: renderComponent, index: props.index, parent: props.parent, event: ev });
|
|
24
|
-
}
|
|
25
|
-
})
|
|
26
|
-
]);
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
module.exports = BlockRender;
|
|
31
|
-
//# sourceMappingURL=BlockRender.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BlockRender.js","sources":["../../../../../../src/components/basic/visual-page-editor/components/BlockRender.ts"],"sourcesContent":["import { defineComponent,defineProps,defineEmits,computed,ref,onMounted,watch,h } from \"vue\"\r\nimport { ContentBlockType } from \"../core/ContentConfig\"\r\nimport { useRenderComponent } from \"../core\"\r\n\r\nexport default defineComponent({\r\n name:\"BlockRender\",\r\n emits:[\"click\"],\r\n props:{\r\n node:{type:Object},\r\n parent:{type:Object},\r\n index:{type:Number},\r\n active:{type:Boolean}\r\n },\r\n setup:(props,{ emit })=>{\r\n\r\n const { RenderComponents } = useRenderComponent();\r\n\r\n return ()=>{\r\n\r\n const content = props.node as ContentBlockType;\r\n const renderComponent = RenderComponents.find(item=>item.name == content.componentInfo);\r\n\r\n return h(\"div\",{class:\"mk-visual-page-editor__stage_block\"},[\r\n h(renderComponent?.component as any,content.componentProps),\r\n h(\"div\",{ \r\n class:{\"mk-visual-page-editor__stage_block_mask\":true,active:props.active},\r\n onClick:ev=>{\r\n emit(\"click\",{ node:content,options:renderComponent,index:props.index,parent:props.parent,event:ev })\r\n }\r\n })\r\n ])\r\n }\r\n }\r\n});\r\n"],"names":["defineComponent","useRenderComponent","h"],"mappings":";;;AAIA,MAAA,cAAeA,oBAAgB;AAAA,EAC7B,MAAK;AAAA,EACL,OAAM,CAAC,OAAO;AAAA,EACd,OAAM;AAAA,IACJ,MAAK,EAAC,MAAK,OAAM;AAAA,IACjB,QAAO,EAAC,MAAK,OAAM;AAAA,IACnB,OAAM,EAAC,MAAK,OAAM;AAAA,IAClB,QAAO,EAAC,MAAK,QAAO;AAAA,EACtB;AAAA,EACA,OAAM,CAAC,OAAM,EAAE,WAAS;AAEhB,UAAA,EAAE,qBAAqBC,MAAAA;AAE7B,WAAO,MAAI;AAET,YAAM,UAAU,MAAM;AACtB,YAAM,kBAAkB,iBAAiB,KAAK,UAAM,KAAK,QAAQ,QAAQ,aAAa;AAEtF,aAAOC,IAAE,EAAA,OAAM,EAAC,OAAM,wCAAsC;AAAA,QAC1DA,IAAAA,EAAE,mDAAiB,WAAiB,QAAQ,cAAc;AAAA,QAC1DA,IAAAA,EAAE,OAAM;AAAA,UACN,OAAM,EAAC,2CAA0C,MAAK,QAAO,MAAM,OAAM;AAAA,UACzE,SAAQ,CAAI,OAAA;AACV,iBAAK,SAAQ,EAAE,MAAK,SAAQ,SAAQ,iBAAgB,OAAM,MAAM,OAAM,QAAO,MAAM,QAAO,OAAM,IAAI;AAAA,UACtG;AAAA,QAAA,CACD;AAAA,MAAA,CACF;AAAA,IAAA;AAAA,EAEL;AACF,CAAC;;"}
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const vue = require("vue");
|
|
4
|
-
const dm = require("@maketribe/dm");
|
|
5
|
-
const elementPlus = require("element-plus");
|
|
6
|
-
require("../core/index.js");
|
|
7
|
-
const ShowEditPanel = async (componentOptions, props) => {
|
|
8
|
-
return new Promise((resolve) => {
|
|
9
|
-
const isAdd = props == null;
|
|
10
|
-
if (isAdd) {
|
|
11
|
-
props = {};
|
|
12
|
-
componentOptions.options.forEach((item) => {
|
|
13
|
-
props[item.name] = item.defaultValue;
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
const propsReactive = vue.reactive(props);
|
|
17
|
-
const handleCancelClick = () => {
|
|
18
|
-
dialogInstance.destroy();
|
|
19
|
-
};
|
|
20
|
-
const handleConfirmClick = () => {
|
|
21
|
-
dialogInstance.destroy();
|
|
22
|
-
resolve(props);
|
|
23
|
-
};
|
|
24
|
-
const dialogInstance = dm.Dialoger.customRender({
|
|
25
|
-
title: isAdd ? `添加${componentOptions.desc}` : `编辑${componentOptions.desc}`,
|
|
26
|
-
class: "mk-html-editor-dialog",
|
|
27
|
-
width: "70%",
|
|
28
|
-
onClose: () => {
|
|
29
|
-
dialogInstance.destroy();
|
|
30
|
-
},
|
|
31
|
-
body: () => {
|
|
32
|
-
return vue.h(elementPlus.ElForm, {
|
|
33
|
-
labelPosition: "top",
|
|
34
|
-
model: propsReactive,
|
|
35
|
-
labelWidth: "auto"
|
|
36
|
-
}, componentOptions.options.map((item) => {
|
|
37
|
-
const component = typeof item.component == "string" ? vue.resolveComponent(item.component) : item.component;
|
|
38
|
-
return vue.h(elementPlus.ElFormItem, {
|
|
39
|
-
label: item.desc,
|
|
40
|
-
prop: item.name
|
|
41
|
-
}, [vue.h(component, {
|
|
42
|
-
...item.props,
|
|
43
|
-
modelValue: propsReactive[item.name],
|
|
44
|
-
"update:modelValue": (v) => propsReactive[item.name] = v
|
|
45
|
-
})]);
|
|
46
|
-
}));
|
|
47
|
-
},
|
|
48
|
-
footer: () => {
|
|
49
|
-
return vue.createVNode(vue.Fragment, null, [vue.createVNode(elementPlus.ElButton, {
|
|
50
|
-
"onClick": handleCancelClick
|
|
51
|
-
}, {
|
|
52
|
-
default: () => [vue.createTextVNode("取消")]
|
|
53
|
-
}), vue.createVNode(elementPlus.ElButton, {
|
|
54
|
-
"type": "primary",
|
|
55
|
-
"onClick": handleConfirmClick
|
|
56
|
-
}, {
|
|
57
|
-
default: () => [vue.createTextVNode("确定")]
|
|
58
|
-
})]);
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
});
|
|
62
|
-
};
|
|
63
|
-
const ShowComponentSelectPanel = async () => {
|
|
64
|
-
return new Promise((resolve) => {
|
|
65
|
-
const selectComponentOption = vue.ref(null);
|
|
66
|
-
const handleCancelClick = () => {
|
|
67
|
-
dialogInstance.destroy();
|
|
68
|
-
};
|
|
69
|
-
const handleConfirmClick = () => {
|
|
70
|
-
dialogInstance.destroy();
|
|
71
|
-
resolve(selectComponentOption.value);
|
|
72
|
-
};
|
|
73
|
-
const dialogInstance = dm.Dialoger.customRender({
|
|
74
|
-
title: "组件库",
|
|
75
|
-
class: "mk-html-editor-dialog",
|
|
76
|
-
width: "70%",
|
|
77
|
-
onClose: () => {
|
|
78
|
-
dialogInstance.destroy();
|
|
79
|
-
},
|
|
80
|
-
body: () => {
|
|
81
|
-
return vue.createVNode("div", null, [vue.createVNode(elementPlus.ElInput, null, null), vue.createVNode(elementPlus.ElCollapse, null, {
|
|
82
|
-
default: () => [vue.createVNode(elementPlus.ElCollapseItem, {
|
|
83
|
-
"title": "基础组件",
|
|
84
|
-
"name": "base"
|
|
85
|
-
}, null), vue.createVNode(elementPlus.ElCollapseItem, {
|
|
86
|
-
"title": "业务组件",
|
|
87
|
-
"name": "business"
|
|
88
|
-
}, null), vue.createVNode(elementPlus.ElCollapseItem, {
|
|
89
|
-
"title": "自定义组件",
|
|
90
|
-
"name": "custom"
|
|
91
|
-
}, null)]
|
|
92
|
-
})]);
|
|
93
|
-
},
|
|
94
|
-
footer: () => {
|
|
95
|
-
return vue.createVNode(vue.Fragment, null, [vue.createVNode(elementPlus.ElButton, {
|
|
96
|
-
"onClick": handleCancelClick
|
|
97
|
-
}, {
|
|
98
|
-
default: () => [vue.createTextVNode("取消")]
|
|
99
|
-
}), vue.createVNode(elementPlus.ElButton, {
|
|
100
|
-
"type": "primary",
|
|
101
|
-
"onClick": handleConfirmClick
|
|
102
|
-
}, {
|
|
103
|
-
default: () => [vue.createTextVNode("确定")]
|
|
104
|
-
})]);
|
|
105
|
-
}
|
|
106
|
-
});
|
|
107
|
-
});
|
|
108
|
-
};
|
|
109
|
-
exports.ShowComponentSelectPanel = ShowComponentSelectPanel;
|
|
110
|
-
exports.ShowEditPanel = ShowEditPanel;
|
|
111
|
-
//# sourceMappingURL=Dialog.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Dialog.js","sources":["../../../../../../src/components/basic/visual-page-editor/utils/Dialog.tsx"],"sourcesContent":["\r\nimport { Fragment, ref, unref, resolveComponent, h, reactive } from 'vue'\r\nimport { Dialoger } from '@maketribe/dm'\r\nimport { ElButton, ElForm, ElFormItem, ElCollapse, ElCollapseItem, ElInput } from \"element-plus\";\r\nimport { RenderComponentType } from \"../core/RenderComponent\"\r\nimport { useRenderComponent } from \"../core\"\r\n\r\n/**\r\n * \r\n * @param data \r\n * @param props \r\n * @returns \r\n */\r\nexport const ShowEditPanel = async (componentOptions: RenderComponentType, props: any) => {\r\n return new Promise(resolve => {\r\n\r\n const isAdd = props == null;\r\n\r\n // 新增的话\r\n if (isAdd) {\r\n props = {};\r\n componentOptions.options.forEach(item => { props[item.name] = item.defaultValue })\r\n }\r\n\r\n const propsReactive = reactive(props)\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(props);\r\n };\r\n\r\n const dialogInstance = Dialoger.customRender({\r\n title: isAdd ? `添加${componentOptions.desc}` : `编辑${componentOptions.desc}`,\r\n class: \"mk-html-editor-dialog\",\r\n width: \"70%\",\r\n onClose: () => {\r\n dialogInstance.destroy();\r\n },\r\n body: () => {\r\n return h(ElForm, { labelPosition: \"top\", model: propsReactive, labelWidth: \"auto\" }, componentOptions.options.map(item => {\r\n const component = typeof item.component == \"string\" ? resolveComponent(item.component) : item.component;\r\n return h(ElFormItem, { label: item.desc, prop: item.name }, [\r\n h(component, {\r\n ...item.props,\r\n modelValue: propsReactive[item.name],\r\n \"update:modelValue\": (v: any) => propsReactive[item.name] = v\r\n })\r\n ])\r\n }))\r\n\r\n },\r\n footer: () => {\r\n return <Fragment>\r\n <ElButton onClick={handleCancelClick}>取消</ElButton>\r\n <ElButton type=\"primary\" onClick={handleConfirmClick}>\r\n 确定\r\n </ElButton>\r\n </Fragment>\r\n },\r\n });\r\n });\r\n}\r\n\r\n\r\n/**\r\n * \r\n * @param data \r\n * @param props \r\n * @returns \r\n */\r\nexport const ShowComponentSelectPanel = async () => {\r\n return new Promise(resolve => {\r\n\r\n const { RenderComponents } = useRenderComponent();\r\n\r\n const selectComponentOption = ref(null);\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(selectComponentOption.value);\r\n };\r\n\r\n const dialogInstance = Dialoger.customRender({\r\n title: \"组件库\",\r\n class: \"mk-html-editor-dialog\",\r\n width: \"70%\",\r\n onClose: () => {\r\n dialogInstance.destroy();\r\n },\r\n body: () => {\r\n return <div>\r\n <ElInput />\r\n <ElCollapse>\r\n <ElCollapseItem title=\"基础组件\" name=\"base\">\r\n\r\n </ElCollapseItem>\r\n <ElCollapseItem title=\"业务组件\" name=\"business\">\r\n\r\n </ElCollapseItem>\r\n <ElCollapseItem title=\"自定义组件\" name=\"custom\">\r\n\r\n </ElCollapseItem>\r\n </ElCollapse>\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}>\r\n 确定\r\n </ElButton>\r\n </Fragment>\r\n },\r\n });\r\n });\r\n}\r\n"],"names":["ShowEditPanel","componentOptions","props","Promise","resolve","isAdd","options","forEach","item","name","defaultValue","propsReactive","reactive","handleCancelClick","dialogInstance","destroy","handleConfirmClick","Dialoger","customRender","title","desc","class","width","onClose","body","h","ElForm","labelPosition","model","labelWidth","map","component","resolveComponent","ElFormItem","label","prop","modelValue","v","footer","_createVNode","_Fragment","ElButton","default","_createTextVNode","ShowComponentSelectPanel","selectComponentOption","ref","value","ElInput","ElCollapse","ElCollapseItem"],"mappings":";;;;;;AAaO,MAAMA,gBAAgB,OAAOC,kBAAuCC,UAAe;AACxF,SAAO,IAAIC,QAAQC,aAAW;AAE5B,UAAMC,QAAQH,SAAS;AAGvB,QAAIG,OAAO;AACTH,cAAQ,CAAA;AACRD,uBAAiBK,QAAQC,QAAQC,UAAQ;AAAEN,cAAMM,KAAKC,IAAI,IAAID,KAAKE;AAAAA,MAAa,CAAC;AAAA,IACnF;AAEA,UAAMC,gBAAgBC,aAASV,KAAK;AAGpC,UAAMW,oBAAoBA,MAAM;AAC9BC,qBAAeC,QAAO;AAAA;AAIxB,UAAMC,qBAAqBA,MAAM;AAC/BF,qBAAeC,QAAO;AACtBX,cAAQF,KAAK;AAAA;AAGf,UAAMY,iBAAiBG,GAAQ,SAACC,aAAa;AAAA,MAC3CC,OAAOd,QAAQ,KAAKJ,iBAAiBmB,IAAI,KAAK,KAAKnB,iBAAiBmB,IAAI;AAAA,MACxEC,OAAO;AAAA,MACPC,OAAO;AAAA,MACPC,SAASA,MAAM;AACbT,uBAAeC,QAAO;AAAA,MACvB;AAAA,MACDS,MAAMA,MAAM;AACV,eAAOC,IAAAA,EAAEC,YAAAA,QAAQ;AAAA,UAAEC,eAAe;AAAA,UAAOC,OAAOjB;AAAAA,UAAekB,YAAY;AAAA,QAAQ,GAAE5B,iBAAiBK,QAAQwB,IAAItB,UAAQ;AACxH,gBAAMuB,YAAY,OAAOvB,KAAKuB,aAAa,WAAWC,qBAAiBxB,KAAKuB,SAAS,IAAIvB,KAAKuB;AAC9F,iBAAON,IAAAA,EAAEQ,YAAAA,YAAY;AAAA,YAAEC,OAAO1B,KAAKY;AAAAA,YAAMe,MAAM3B,KAAKC;AAAAA,UAAK,GAAG,CAC1DgB,IAAC,EAACM,WAAW;AAAA,YACX,GAAGvB,KAAKN;AAAAA,YACRkC,YAAYzB,cAAcH,KAAKC,IAAI;AAAA,YACnC,qBAAsB4B,OAAW1B,cAAcH,KAAKC,IAAI,IAAI4B;AAAAA,UAC7D,CAAA,CAAC,CACH;AAAA,QACF,CAAA,CAAC;AAAA,MAEH;AAAA,MACDC,QAAQA,MAAM;AACZ,eAAAC,IAAA,YAAAC,IAAA,UAAAD,MAAAA,CAAAA,IAAAA,YAAAE,YAAAA,UAAA;AAAA,UAAA,WACqB5B;AAAAA,QAAiB,GAAA;AAAA,UAAA6B,SAAAA,MAAA,CAAAC,oBAAA,IAAA,CAAA;AAAA,SAAAJ,GAAAA,IAAA,YAAAE,sBAAA;AAAA,UAAA,QAAA;AAAA,UAAA,WACFzB;AAAAA,QAAkB,GAAA;AAAA,UAAA0B,SAAAA,MAAA,CAAAC,oBAAA,IAAA,CAAA;AAAA,QAAA,CAAA,CAAA,CAAA;AAAA,MAIxD;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACH;AASaC,MAAAA,2BAA2B,YAAY;AAClD,SAAO,IAAIzC,QAAQC,aAAW;AAI5B,UAAMyC,wBAAwBC,QAAI,IAAI;AAGtC,UAAMjC,oBAAoBA,MAAM;AAC9BC,qBAAeC,QAAO;AAAA;AAIxB,UAAMC,qBAAqBA,MAAM;AAC/BF,qBAAeC,QAAO;AACtBX,cAAQyC,sBAAsBE,KAAK;AAAA;AAGrC,UAAMjC,iBAAiBG,GAAQ,SAACC,aAAa;AAAA,MAC3CC,OAAO;AAAA,MACPE,OAAO;AAAA,MACPC,OAAO;AAAA,MACPC,SAASA,MAAM;AACbT,uBAAeC,QAAO;AAAA,MACvB;AAAA,MACDS,MAAMA,MAAM;AACV,eAAAe,8BAAAA,IAAAA,YAAAS,YAAAA,SAAAT,MAAAA,IAAAA,GAAAA,gBAAAU,YAAAA,YAAA,MAAA;AAAA,UAAAP,SAAAA,MAAAH,CAAAA,IAAA,YAAAW,4BAAA;AAAA,YAAA,SAAA;AAAA,YAAA,QAAA;AAAA,aAAAX,IAAAA,GAAAA,IAAA,YAAAW,4BAAA;AAAA,YAAA,SAAA;AAAA,YAAA,QAAA;AAAA,aAAAX,IAAAA,GAAAA,IAAA,YAAAW,4BAAA;AAAA,YAAA,SAAA;AAAA,YAAA,QAAA;AAAA,UAAA,GAAA,IAAA,CAAA;AAAA,QAAA,CAAA,CAAA,CAAA;AAAA,MAcD;AAAA,MACDZ,QAAQA,MAAM;AACZ,eAAAC,IAAA,YAAAC,IAAA,UAAAD,MAAAA,CAAAA,IAAAA,YAAAE,YAAAA,UAAA;AAAA,UAAA,WACqB5B;AAAAA,QAAiB,GAAA;AAAA,UAAA6B,SAAAA,MAAA,CAAAC,oBAAA,IAAA,CAAA;AAAA,SAAAJ,GAAAA,IAAA,YAAAE,sBAAA;AAAA,UAAA,QAAA;AAAA,UAAA,WACFzB;AAAAA,QAAkB,GAAA;AAAA,UAAA0B,SAAAA,MAAA,CAAAC,oBAAA,IAAA,CAAA;AAAA,QAAA,CAAA,CAAA,CAAA;AAAA,MAIxD;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACH;;;"}
|
package/dist/cjs/components/basic/visual-page-editor/visual-components/ImageRenderComponent.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
const vue = require("vue");
|
|
3
|
-
const index = require("../core/index.js");
|
|
4
|
-
const { RegisterRenderComponent } = index.useRenderComponent();
|
|
5
|
-
const ImageComponent = vue.defineComponent({
|
|
6
|
-
name: "vp-image",
|
|
7
|
-
props: ["src"],
|
|
8
|
-
setup(props) {
|
|
9
|
-
return () => {
|
|
10
|
-
return vue.h("img", { src: props.src, style: { width: "100%" } });
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
});
|
|
14
|
-
RegisterRenderComponent({
|
|
15
|
-
name: ImageComponent.name,
|
|
16
|
-
desc: "图片",
|
|
17
|
-
group: "base",
|
|
18
|
-
component: ImageComponent,
|
|
19
|
-
options: [
|
|
20
|
-
{
|
|
21
|
-
name: "src",
|
|
22
|
-
desc: "图片路径",
|
|
23
|
-
component: "MKImageSelect",
|
|
24
|
-
defaultValue: {},
|
|
25
|
-
props: {}
|
|
26
|
-
}
|
|
27
|
-
]
|
|
28
|
-
});
|
|
29
|
-
//# sourceMappingURL=ImageRenderComponent.js.map
|
package/dist/cjs/components/basic/visual-page-editor/visual-components/ImageRenderComponent.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ImageRenderComponent.js","sources":["../../../../../../src/components/basic/visual-page-editor/visual-components/ImageRenderComponent.ts"],"sourcesContent":["\r\nimport { defineComponent, h } from \"vue\";\r\nimport { useRenderComponent } from \"../core\"\r\n\r\n\r\nconst { RegisterRenderComponent } = useRenderComponent();\r\nconst ImageComponent = defineComponent({\r\n name: \"vp-image\",\r\n props: [\"src\"],\r\n setup(props) {\r\n return () => {\r\n return h(\"img\", { src: props.src, style: { width: \"100%\" } })\r\n }\r\n }\r\n})\r\n\r\n// 注册图片\r\nRegisterRenderComponent({\r\n name: ImageComponent.name!,\r\n desc: \"图片\",\r\n group: \"base\",\r\n component: ImageComponent,\r\n options: [\r\n {\r\n name: \"src\",\r\n desc: \"图片路径\",\r\n component: \"MKImageSelect\",\r\n defaultValue: {},\r\n props: {}\r\n }\r\n ]\r\n})\r\n"],"names":["useRenderComponent","defineComponent","h"],"mappings":";;;AAKA,MAAM,EAAE,wBAAwB,IAAIA,MAAAA;AACpC,MAAM,iBAAiBC,IAAAA,gBAAgB;AAAA,EACrC,MAAM;AAAA,EACN,OAAO,CAAC,KAAK;AAAA,EACb,MAAM,OAAO;AACX,WAAO,MAAM;AACJ,aAAAC,MAAE,OAAO,EAAE,KAAK,MAAM,KAAK,OAAO,EAAE,OAAO,OAAO,EAAG,CAAA;AAAA,IAAA;AAAA,EAEhE;AACF,CAAC;AAGD,wBAAwB;AAAA,EACtB,MAAM,eAAe;AAAA,EACrB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,WAAW;AAAA,EACX,SAAS;AAAA,IACP;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,MACX,cAAc,CAAC;AAAA,MACf,OAAO,CAAC;AAAA,IACV;AAAA,EACF;AACF,CAAC;"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { createCommand } from "lexical";
|
|
2
|
-
import "@lexical/utils";
|
|
3
|
-
import "vue";
|
|
4
|
-
import "lexical-vue";
|
|
5
|
-
const SELECTED_DECORATORMODULE_COMMAND = createCommand("SELECTED_DECORATORMODULE_COMMAND");
|
|
6
|
-
const REMOVE_DECORATORMODULE_COMMAND = createCommand("REMOVE_DECORATORMODULE_COMMAND");
|
|
7
|
-
const UPDATE_DECORATORMODULE_TOOLBAR_POS_COMMAND = createCommand("UPDATE_DECORATORMODULE_TOOLBAR_POS_COMMAND");
|
|
8
|
-
export {
|
|
9
|
-
REMOVE_DECORATORMODULE_COMMAND,
|
|
10
|
-
SELECTED_DECORATORMODULE_COMMAND,
|
|
11
|
-
UPDATE_DECORATORMODULE_TOOLBAR_POS_COMMAND
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=decorator-module.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"decorator-module.js","sources":["../../../../../../src/components/basic/doc-editor/core/decorator-module.ts"],"sourcesContent":["\r\nimport type { BaseSelection, LexicalCommand,NodeKey } from 'lexical'\r\nimport {\r\n createCommand,DecoratorNode,\r\n $getSelection, $isNodeSelection,\r\n CLICK_COMMAND, COMMAND_PRIORITY_LOW,\r\n TextNode,\r\n EditorConfig\r\n} from \"lexical\";\r\nimport { mergeRegister } from \"@lexical/utils\";\r\nimport { type Component,watch,ref } from \"vue\"\r\nimport {\r\n useLexicalComposer,\r\n useLexicalNodeSelection,\r\n useMounted,\r\n} from \"lexical-vue\";\r\n\r\n/**\r\n * toolsbar的函数\r\n */\r\nexport type ToolsbarFunction = (selection:BaseSelection|null)=>Array<any>|null;\r\n\r\n/**\r\n * 组件选中\r\n */\r\nexport type DecoratorModuleSelectEventType = {\r\n element:HTMLElement,\r\n toolsbars:Array<any>|ToolsbarFunction\r\n}\r\n\r\n/**\r\n * 选中装饰模块\r\n */\r\nexport const SELECTED_DECORATORMODULE_COMMAND: LexicalCommand<DecoratorModuleSelectEventType|null> = createCommand('SELECTED_DECORATORMODULE_COMMAND')\r\n\r\n/**\r\n * 移除装饰器模块\r\n */\r\nexport const REMOVE_DECORATORMODULE_COMMAND: LexicalCommand<undefined|null> = createCommand('REMOVE_DECORATORMODULE_COMMAND')\r\n\r\n/**\r\n * 更新模块工具条位置信息\r\n */\r\nexport const UPDATE_DECORATORMODULE_TOOLBAR_POS_COMMAND: LexicalCommand<undefined|null> = createCommand('UPDATE_DECORATORMODULE_TOOLBAR_POS_COMMAND')\r\n\r\n/**\r\n * 装饰模块\r\n */\r\nexport class DecoratorModuleBlockNode extends DecoratorNode<Component> {\r\n\r\n constructor( key?: NodeKey) {\r\n super(key)\r\n }\r\n\r\n createDOM() {\r\n return document.createElement('div')\r\n }\r\n\r\n updateDOM(\r\n prevNode: TextNode,\r\n dom: HTMLElement,\r\n config: EditorConfig,\r\n ): boolean {\r\n return false\r\n }\r\n \r\n /**\r\n * 标识非行内组件\r\n * @returns \r\n */\r\n isInline() { return false; }\r\n\r\n /**\r\n * 是否隔离\r\n * @returns \r\n */\r\n isIsolated(){ return true; }\r\n \r\n /**\r\n * 允许键盘选中\r\n * @returns \r\n */\r\n isKeyboardSelectable(){ return true; }\r\n \r\n}\r\n\r\n\r\n/**\r\n * 使用装饰模块\r\n */\r\nexport const useDecoratorModule = (nodeKey:any,toolsbars:Array<any>|ToolsbarFunction)=>{\r\n\r\n // 编辑器\r\n\r\n const curSelectEl = ref<any>(null)\r\n const editor = useLexicalComposer();\r\n const { isSelected, setSelected, clearSelection } = useLexicalNodeSelection(nodeKey);\r\n\r\n // 是否选中\r\n watch(isSelected,(v)=>{\r\n if(v && curSelectEl.value != null){\r\n // 选中后显示工具条\r\n editor.dispatchCommand(SELECTED_DECORATORMODULE_COMMAND,{ \r\n element:curSelectEl.value,\r\n toolsbars:toolsbars\r\n });\r\n }\r\n else{\r\n // 没选中\r\n curSelectEl.value = null;\r\n editor.dispatchCommand(SELECTED_DECORATORMODULE_COMMAND,null);\r\n }\r\n })\r\n\r\n // 编辑器挂载的时候\r\n useMounted(() => {\r\n\r\n return mergeRegister(\r\n // \r\n // 选中\r\n editor.registerCommand<MouseEvent>(CLICK_COMMAND,(event) => {\r\n \r\n // 选中当前对象\r\n if (event.target === curSelectEl.value) {\r\n\r\n event.preventDefault();\r\n\r\n if (!event.shiftKey) { clearSelection(); }\r\n\r\n setSelected(true);\r\n\r\n return true;\r\n }\r\n \r\n return false;\r\n }, COMMAND_PRIORITY_LOW)\r\n );\r\n });\r\n\r\n return { isSelected,curSelectEl }\r\n}\r\n\r\n/**\r\n * 使用装饰模块工具条\r\n */\r\nexport const useDecoratorModuleTools = (selectFunc:Function)=>{\r\n\r\n // 编辑器\r\n const editor = useLexicalComposer();\r\n\r\n // 编辑器挂载的时候\r\n useMounted(() => {\r\n\r\n return mergeRegister(\r\n editor.registerCommand(SELECTED_DECORATORMODULE_COMMAND, () => {\r\n \r\n const selection = $getSelection();\r\n \r\n if($isNodeSelection(selection)){\r\n selectFunc(selection);\r\n }\r\n\r\n return false;\r\n },1)\r\n );\r\n });\r\n\r\n}\r\n\r\n\r\n"],"names":[],"mappings":";;;;AAiCa,MAAA,mCAAwF,cAAc,kCAAkC;AAKxI,MAAA,iCAAiE,cAAc,gCAAgC;AAK/G,MAAA,6CAA6E,cAAc,4CAA4C;"}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { mergeRegister } from "@lexical/utils";
|
|
2
|
-
import { CLICK_COMMAND, COMMAND_PRIORITY_LOW } from "lexical";
|
|
3
|
-
import { useLexicalComposer, useMounted } from "lexical-vue";
|
|
4
|
-
import { ref, watch } from "vue";
|
|
5
|
-
import { SELECTED_DECORATORMODULE_COMMAND } from "./decorator-module.js";
|
|
6
|
-
import { isNodeSelected, clearSelection, setSelected } from "./utils.js";
|
|
7
|
-
const useElementModule = (func, toolsbars) => {
|
|
8
|
-
const editor = useLexicalComposer();
|
|
9
|
-
const isSelected = ref(false);
|
|
10
|
-
const curSelectKey = ref(null);
|
|
11
|
-
const curSelectPos = ref(null);
|
|
12
|
-
const curSelectEl = ref(null);
|
|
13
|
-
const updateActiveViewState = (el) => {
|
|
14
|
-
if (el) {
|
|
15
|
-
const selectRect = el.getBoundingClientRect();
|
|
16
|
-
curSelectPos.value = {
|
|
17
|
-
top: `${selectRect.y}px`,
|
|
18
|
-
left: `${selectRect.x}px`,
|
|
19
|
-
width: `${selectRect.width}px`,
|
|
20
|
-
height: `${selectRect.height}px`
|
|
21
|
-
};
|
|
22
|
-
editor.dispatchCommand(SELECTED_DECORATORMODULE_COMMAND, {
|
|
23
|
-
element: curSelectEl.value,
|
|
24
|
-
toolsbars
|
|
25
|
-
});
|
|
26
|
-
} else {
|
|
27
|
-
curSelectEl.value = null;
|
|
28
|
-
curSelectKey.value = null;
|
|
29
|
-
curSelectPos.value = null;
|
|
30
|
-
editor.dispatchCommand(SELECTED_DECORATORMODULE_COMMAND, null);
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
watch(isSelected, (state) => {
|
|
34
|
-
return updateActiveViewState(state ? curSelectEl.value : null);
|
|
35
|
-
});
|
|
36
|
-
useMounted(() => {
|
|
37
|
-
return mergeRegister(
|
|
38
|
-
// 更新选中状态
|
|
39
|
-
editor.registerUpdateListener(() => {
|
|
40
|
-
isSelected.value = isNodeSelected(editor, curSelectKey.value);
|
|
41
|
-
}),
|
|
42
|
-
// 点击选中
|
|
43
|
-
editor.registerCommand(CLICK_COMMAND, (event) => {
|
|
44
|
-
const el = func(event.target);
|
|
45
|
-
const nodeKey = el == null ? void 0 : el.getAttribute("node-key");
|
|
46
|
-
if (nodeKey != null) {
|
|
47
|
-
event.preventDefault();
|
|
48
|
-
if (!event.shiftKey) {
|
|
49
|
-
clearSelection(editor);
|
|
50
|
-
}
|
|
51
|
-
setSelected(editor, true, nodeKey);
|
|
52
|
-
setTimeout(() => {
|
|
53
|
-
curSelectEl.value = el;
|
|
54
|
-
curSelectKey.value = nodeKey;
|
|
55
|
-
isSelected.value = isNodeSelected(editor, nodeKey);
|
|
56
|
-
}, 1);
|
|
57
|
-
return true;
|
|
58
|
-
}
|
|
59
|
-
return false;
|
|
60
|
-
}, COMMAND_PRIORITY_LOW)
|
|
61
|
-
);
|
|
62
|
-
});
|
|
63
|
-
return { isSelected, curSelectKey, curSelectPos, updateActiveViewState };
|
|
64
|
-
};
|
|
65
|
-
export {
|
|
66
|
-
useElementModule
|
|
67
|
-
};
|
|
68
|
-
//# sourceMappingURL=element-module.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"element-module.js","sources":["../../../../../../src/components/basic/doc-editor/core/element-module.ts"],"sourcesContent":["\r\n\r\nimport { mergeRegister } from '@lexical/utils'\r\nimport { COMMAND_PRIORITY_LOW,CLICK_COMMAND } from 'lexical'\r\nimport { useLexicalComposer,useMounted } from 'lexical-vue'\r\nimport { ref,computed,watch } from 'vue'\r\nimport { \r\n SELECTED_DECORATORMODULE_COMMAND,\r\n ToolsbarFunction\r\n} from './decorator-module'\r\nimport { \r\n isNodeSelected,setSelected,clearSelection,\r\n} from './utils'\r\n\r\n/**\r\n * 判断选中的方法\r\n */\r\nexport type SelectExistFunc = (el:HTMLElement)=>HTMLElement|null\r\n\r\n/**\r\n * 使用元素模块\r\n * @param toolsbars \r\n */\r\nexport const useElementModule = (func:SelectExistFunc,toolsbars:Array<any>|ToolsbarFunction)=>{\r\n\r\n const editor = useLexicalComposer()\r\n const isSelected = ref(false)\r\n const curSelectKey = ref<any>(null)\r\n const curSelectPos = ref<any>(null)\r\n const curSelectEl = ref<any>(null)\r\n \r\n // 更新选中\r\n const updateActiveViewState = (el:Element|null)=>{\r\n \r\n if(el){\r\n \r\n const selectRect = el.getBoundingClientRect();\r\n \r\n curSelectPos.value = {\r\n top:`${selectRect.y}px`,left:`${selectRect.x}px`,\r\n width:`${selectRect.width}px`,height:`${selectRect.height}px`\r\n };\r\n \r\n editor.dispatchCommand(SELECTED_DECORATORMODULE_COMMAND,{ \r\n element:curSelectEl.value,\r\n toolsbars:toolsbars\r\n });\r\n }\r\n else{\r\n curSelectEl.value = null;\r\n curSelectKey.value = null;\r\n curSelectPos.value = null;\r\n editor.dispatchCommand(SELECTED_DECORATORMODULE_COMMAND,null);\r\n }\r\n }\r\n \r\n // 是否选中\r\n watch(isSelected,(state)=>{\r\n return updateActiveViewState(state ? curSelectEl.value : null);\r\n })\r\n \r\n // 编辑器挂载\r\n useMounted(()=>{\r\n // 注册事件\r\n return mergeRegister(\r\n // 更新选中状态\r\n editor.registerUpdateListener(() => {\r\n isSelected.value = isNodeSelected(editor, curSelectKey.value);\r\n }),\r\n // 点击选中\r\n editor.registerCommand<MouseEvent>(CLICK_COMMAND,(event) => {\r\n \r\n const el = func(event.target as HTMLElement);\r\n const nodeKey = el?.getAttribute(\"node-key\");\r\n\r\n // 不为null的话则视为点击选中\r\n if(nodeKey != null){\r\n \r\n event.preventDefault();\r\n \r\n if (!event.shiftKey) { clearSelection(editor); }\r\n\r\n setSelected(editor,true,nodeKey);\r\n \r\n setTimeout(() => {\r\n curSelectEl.value = el;\r\n curSelectKey.value = nodeKey;\r\n isSelected.value = isNodeSelected(editor, nodeKey);\r\n }, 1);\r\n return true;\r\n }\r\n \r\n return false;\r\n }, COMMAND_PRIORITY_LOW)\r\n )\r\n })\r\n\r\n\r\n return { isSelected, curSelectKey,curSelectPos,updateActiveViewState };\r\n\r\n}\r\n"],"names":[],"mappings":";;;;;;AAuBa,MAAA,mBAAmB,CAAC,MAAqB,cAAwC;AAE5F,QAAM,SAAS;AACT,QAAA,aAAa,IAAI,KAAK;AACtB,QAAA,eAAe,IAAS,IAAI;AAC5B,QAAA,eAAe,IAAS,IAAI;AAC5B,QAAA,cAAc,IAAS,IAAI;AAG3B,QAAA,wBAAwB,CAAC,OAAkB;AAE/C,QAAG,IAAG;AAEE,YAAA,aAAa,GAAG;AAEtB,mBAAa,QAAQ;AAAA,QACnB,KAAI,GAAG,WAAW,CAAC;AAAA,QAAK,MAAK,GAAG,WAAW,CAAC;AAAA,QAC5C,OAAM,GAAG,WAAW,KAAK;AAAA,QAAK,QAAO,GAAG,WAAW,MAAM;AAAA,MAAA;AAG3D,aAAO,gBAAgB,kCAAiC;AAAA,QACtD,SAAQ,YAAY;AAAA,QACpB;AAAA,MAAA,CACD;AAAA,IAAA,OAEC;AACF,kBAAY,QAAQ;AACpB,mBAAa,QAAQ;AACrB,mBAAa,QAAQ;AACd,aAAA,gBAAgB,kCAAiC,IAAI;AAAA,IAC9D;AAAA,EAAA;AAII,QAAA,YAAW,CAAC,UAAQ;AACxB,WAAO,sBAAsB,QAAQ,YAAY,QAAQ,IAAI;AAAA,EAAA,CAC9D;AAGD,aAAW,MAAI;AAEN,WAAA;AAAA;AAAA,MAEL,OAAO,uBAAuB,MAAM;AAClC,mBAAW,QAAQ,eAAe,QAAQ,aAAa,KAAK;AAAA,MAAA,CAC7D;AAAA;AAAA,MAED,OAAO,gBAA4B,eAAc,CAAC,UAAU;AAEpD,cAAA,KAAK,KAAK,MAAM,MAAqB;AACrC,cAAA,UAAU,yBAAI,aAAa;AAGjC,YAAG,WAAW,MAAK;AAEjB,gBAAM,eAAe;AAEjB,cAAA,CAAC,MAAM,UAAU;AAAE,2BAAe,MAAM;AAAA,UAAI;AAEpC,sBAAA,QAAO,MAAK,OAAO;AAE/B,qBAAW,MAAM;AACf,wBAAY,QAAQ;AACpB,yBAAa,QAAQ;AACV,uBAAA,QAAQ,eAAe,QAAQ,OAAO;AAAA,aAChD,CAAC;AACG,iBAAA;AAAA,QACT;AAEO,eAAA;AAAA,SACN,oBAAoB;AAAA,IAAA;AAAA,EACzB,CACD;AAGD,SAAO,EAAE,YAAY,cAAa,cAAa,sBAAsB;AAEvE;"}
|
package/dist/esm/components/basic/doc-editor/plugins/DecoratorModuleToolbarPlugin/index.vue.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.vue.js","sources":["../../../../../../../src/components/basic/doc-editor/plugins/DecoratorModuleToolbarPlugin/index.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { type CommandListenerPriority, $isNodeSelection, $getSelection } from 'lexical'\r\nimport { mergeRegister } from '@lexical/utils'\r\nimport { useLexicalComposer, useMounted } from 'lexical-vue'\r\nimport { ref, reactive, shallowRef, nextTick, watch } from 'vue'\r\nimport {\r\n UPDATE_DECORATORMODULE_TOOLBAR_POS_COMMAND, SELECTED_DECORATORMODULE_COMMAND, REMOVE_DECORATORMODULE_COMMAND,\r\n type DecoratorModuleSelectEventType, DEVICE_VIEW_MODE,\r\n ToolsbarFunction\r\n} from \"../../core\"\r\n\r\n// 点击工具条按钮\r\nconst lowPriority: CommandListenerPriority = 1\r\nconst editor = useLexicalComposer()\r\nconst toolbarRef = ref<HTMLDivElement | null>(null)\r\nconst selectPayload = shallowRef<DecoratorModuleSelectEventType | null>(null);\r\nconst toolsPos = reactive({ left: \"px\", top: \"0px\" });\r\n\r\nwatch(DEVICE_VIEW_MODE, () => {\r\n editor.dispatchCommand(UPDATE_DECORATORMODULE_TOOLBAR_POS_COMMAND, null);\r\n})\r\n\r\n\r\n// 更新工具条坐标\r\nconst updateToolsPos = () => {\r\n\r\n nextTick(() => {\r\n if (selectPayload.value != null && toolbarRef.value != null) {\r\n const editIframeRect = (toolbarRef.value.getRootNode() as any).body.querySelector(\".mk-doc-editor__stage_iframe\").getBoundingClientRect();\r\n const editBodyRect = (toolbarRef.value.getRootNode() as any).body.querySelector(\".mk-doc-editor__stage_body\").getBoundingClientRect();\r\n const baseY = editIframeRect.y - editBodyRect.y;\r\n const selectRect = selectPayload.value.element.getBoundingClientRect();\r\n const toolsRect = toolbarRef.value.getBoundingClientRect();\r\n if (toolsRect) {\r\n // 中心点\r\n toolsPos.top = Math.max(selectRect.y - toolsRect.height - 5 + baseY, 5 + baseY) + \"px\"\r\n toolsPos.left = toolsRect.width / -2 + selectRect.x + selectRect.width / 2 + \"px\";\r\n }\r\n }\r\n })\r\n return false;\r\n}\r\n\r\nuseMounted(() => {\r\n return mergeRegister(\r\n editor.registerCommand(UPDATE_DECORATORMODULE_TOOLBAR_POS_COMMAND, () => updateToolsPos(), lowPriority),\r\n editor.registerUpdateListener(({ editorState }) => editorState.read(() => updateToolsPos())),\r\n // 选中模块\r\n editor.registerCommand(SELECTED_DECORATORMODULE_COMMAND, (payload: DecoratorModuleSelectEventType) => {\r\n\r\n\r\n if (payload != null) {\r\n let toolsbarList = [];\r\n\r\n // 如果是函数的话\r\n if (typeof payload.toolsbars == \"function\") {\r\n\r\n const selection = $getSelection();\r\n\r\n if ($isNodeSelection(selection)) {\r\n toolsbarList = payload.toolsbars(selection) ?? [];\r\n }\r\n else {\r\n toolsbarList = payload.toolsbars(null) ?? [];\r\n }\r\n }\r\n else {\r\n toolsbarList = payload.toolsbars;\r\n }\r\n\r\n selectPayload.value = {\r\n element: payload.element,\r\n toolsbars: toolsbarList\r\n };\r\n }\r\n else {\r\n selectPayload.value = null;\r\n }\r\n\r\n return updateToolsPos();\r\n }, lowPriority),\r\n // 删除模块\r\n editor.registerCommand(REMOVE_DECORATORMODULE_COMMAND, () => {\r\n\r\n const selection = $getSelection();\r\n\r\n if ($isNodeSelection(selection)) {\r\n\r\n selection.getNodes().forEach(node => node.remove());\r\n\r\n // 没选中\r\n editor.dispatchCommand(SELECTED_DECORATORMODULE_COMMAND, null);\r\n }\r\n return false;\r\n }, lowPriority)\r\n // editor.registerCommand(SELECTION_CHANGE_COMMAND, (payload, newEditor) => {\r\n\r\n // const selection = $getSelection();\r\n\r\n // if($isNodeSelection(selection)){\r\n\r\n // const node = selection.getNodes()[0]\r\n\r\n // console.log(node,node.getTopLevelElement());\r\n // }\r\n\r\n // return updateToolsPos();\r\n // },lowPriority)\r\n )\r\n})\r\n\r\n</script>\r\n\r\n<template>\r\n <div v-if=\"selectPayload != null\" ref=\"toolbarRef\" class=\"mk-doc-editor-decorator-module-toolbar\" :style=\"toolsPos\">\r\n <el-button-group>\r\n\r\n <template v-for=\"item in selectPayload.toolsbars as any[]\">\r\n <el-tooltip effect=\"dark\" :content=\"item.title\" placement=\"top\">\r\n <el-button text @click=\"item.action()\">\r\n <MKSvgIcon :iconClass=\"item.icon\" />\r\n </el-button>\r\n </el-tooltip>\r\n </template>\r\n <el-tooltip effect=\"dark\" content=\"删除\" placement=\"top\">\r\n <el-button text type=\"danger\" @click=\"editor.dispatchCommand(REMOVE_DECORATORMODULE_COMMAND, null)\">\r\n <MKSvgIcon :iconClass=\"`Delete`\" />\r\n </el-button>\r\n </el-tooltip>\r\n\r\n </el-button-group>\r\n </div>\r\n</template>\r\n"],"names":[],"mappings":";;;;;;AAYA,MAAM,cAAuC;;;;AAC7C,UAAM,SAAS;AACT,UAAA,aAAa,IAA2B,IAAI;AAC5C,UAAA,gBAAgB,WAAkD,IAAI;AAC5E,UAAM,WAAW,SAAS,EAAE,MAAM,MAAM,KAAK,OAAO;AAEpD,UAAM,kBAAkB,MAAM;AACrB,aAAA,gBAAgB,4CAA4C,IAAI;AAAA,IAAA,CACxE;AAID,UAAM,iBAAiB,MAAM;AAE3B,eAAS,MAAM;AACb,YAAI,cAAc,SAAS,QAAQ,WAAW,SAAS,MAAM;AACrD,gBAAA,iBAAkB,WAAW,MAAM,YAAA,EAAsB,KAAK,cAAc,8BAA8B,EAAE;AAC5G,gBAAA,eAAgB,WAAW,MAAM,YAAA,EAAsB,KAAK,cAAc,4BAA4B,EAAE;AACxG,gBAAA,QAAQ,eAAe,IAAI,aAAa;AAC9C,gBAAM,aAAa,cAAc,MAAM,QAAQ,sBAAsB;AAC/D,gBAAA,YAAY,WAAW,MAAM,sBAAsB;AACzD,cAAI,WAAW;AAEJ,qBAAA,MAAM,KAAK,IAAI,WAAW,IAAI,UAAU,SAAS,IAAI,OAAO,IAAI,KAAK,IAAI;AACzE,qBAAA,OAAO,UAAU,QAAQ,KAAK,WAAW,IAAI,WAAW,QAAQ,IAAI;AAAA,UAC/E;AAAA,QACF;AAAA,MAAA,CACD;AACM,aAAA;AAAA,IAAA;AAGT,eAAW,MAAM;AACR,aAAA;AAAA,QACL,OAAO,gBAAgB,4CAA4C,MAAM,eAAA,GAAkB,WAAW;AAAA,QACtG,OAAO,uBAAuB,CAAC,EAAE,YAAA,MAAkB,YAAY,KAAK,MAAM,eAAe,CAAC,CAAC;AAAA;AAAA,QAE3F,OAAO,gBAAgB,kCAAkC,CAAC,YAA4C;AAGpG,cAAI,WAAW,MAAM;AACnB,gBAAI,eAAe,CAAA;AAGf,gBAAA,OAAO,QAAQ,aAAa,YAAY;AAE1C,oBAAM,YAAY;AAEd,kBAAA,iBAAiB,SAAS,GAAG;AAC/B,+BAAe,QAAQ,UAAU,SAAS,KAAK,CAAA;AAAA,cAAC,OAE7C;AACH,+BAAe,QAAQ,UAAU,IAAI,KAAK,CAAA;AAAA,cAC5C;AAAA,YAAA,OAEG;AACH,6BAAe,QAAQ;AAAA,YACzB;AAEA,0BAAc,QAAQ;AAAA,cACpB,SAAS,QAAQ;AAAA,cACjB,WAAW;AAAA,YAAA;AAAA,UACb,OAEG;AACH,0BAAc,QAAQ;AAAA,UACxB;AAEA,iBAAO,eAAe;AAAA,WACrB,WAAW;AAAA;AAAA,QAEd,OAAO,gBAAgB,gCAAgC,MAAM;AAE3D,gBAAM,YAAY;AAEd,cAAA,iBAAiB,SAAS,GAAG;AAE/B,sBAAU,WAAW,QAAQ,CAAQ,SAAA,KAAK,QAAQ;AAG3C,mBAAA,gBAAgB,kCAAkC,IAAI;AAAA,UAC/D;AACO,iBAAA;AAAA,WACN,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA;AAAA,IAchB,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import { createCommand, ElementNode, $createParagraphNode } from "lexical";
|
|
2
|
-
import "../ImagePlugin/commands.js";
|
|
3
|
-
import { InlineImageNode } from "../ImagePlugin/ImageNode.js";
|
|
4
|
-
const INSERT_IMAGETEXT_COMMAND = createCommand("INSERT_IMAGETEXT_COMMAND");
|
|
5
|
-
const MarkClassName = "mk-doc__image-text";
|
|
6
|
-
class ImageTextNode extends ElementNode {
|
|
7
|
-
static getType() {
|
|
8
|
-
return "image-text";
|
|
9
|
-
}
|
|
10
|
-
static clone(node) {
|
|
11
|
-
return new ImageTextNode(node.__key);
|
|
12
|
-
}
|
|
13
|
-
static importJSON(serializedNode) {
|
|
14
|
-
return $createImageTextNode();
|
|
15
|
-
}
|
|
16
|
-
static importDOM() {
|
|
17
|
-
return {
|
|
18
|
-
div: (domNode) => {
|
|
19
|
-
return domNode.classList.contains(MarkClassName) ? {
|
|
20
|
-
conversion: () => {
|
|
21
|
-
return { node: $createImageTextNode() };
|
|
22
|
-
},
|
|
23
|
-
priority: 4
|
|
24
|
-
} : null;
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
constructor(key) {
|
|
29
|
-
super(key);
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* 导出JSON
|
|
33
|
-
* @returns
|
|
34
|
-
*/
|
|
35
|
-
exportJSON() {
|
|
36
|
-
return {
|
|
37
|
-
...super.exportJSON(),
|
|
38
|
-
type: this.getType(),
|
|
39
|
-
version: 1
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* 导出DOM
|
|
44
|
-
* @returns
|
|
45
|
-
*/
|
|
46
|
-
exportDOM() {
|
|
47
|
-
const element = document.createElement("div");
|
|
48
|
-
if (!element.classList.contains(MarkClassName)) {
|
|
49
|
-
element.classList.add(MarkClassName);
|
|
50
|
-
}
|
|
51
|
-
return { element };
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* 创建渲染DOM
|
|
55
|
-
* @param config
|
|
56
|
-
* @returns
|
|
57
|
-
*/
|
|
58
|
-
createDOM(config) {
|
|
59
|
-
const el = this.exportDOM().element;
|
|
60
|
-
el.setAttribute("node-key", this.__key);
|
|
61
|
-
el.setAttribute("contenteditable", "true");
|
|
62
|
-
el.setAttribute("data-lexical-decorator", "true");
|
|
63
|
-
return el;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* 更新DOM
|
|
67
|
-
* @param prevNode
|
|
68
|
-
* @param dom
|
|
69
|
-
* @param config
|
|
70
|
-
* @returns
|
|
71
|
-
*/
|
|
72
|
-
updateDOM(prevNode, dom, config) {
|
|
73
|
-
return false;
|
|
74
|
-
}
|
|
75
|
-
/* 不允许空
|
|
76
|
-
* @returns
|
|
77
|
-
*/
|
|
78
|
-
canBeEmpty() {
|
|
79
|
-
return false;
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* 非内联
|
|
83
|
-
* @returns
|
|
84
|
-
*/
|
|
85
|
-
isInline() {
|
|
86
|
-
return false;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
function $createImageTextNode(attrs) {
|
|
90
|
-
const imageText = new ImageTextNode();
|
|
91
|
-
if (attrs != null) {
|
|
92
|
-
imageText.append(new InlineImageNode(attrs));
|
|
93
|
-
imageText.append($createParagraphNode());
|
|
94
|
-
}
|
|
95
|
-
return imageText;
|
|
96
|
-
}
|
|
97
|
-
function $isImageTextNode(node) {
|
|
98
|
-
return node instanceof ImageTextNode;
|
|
99
|
-
}
|
|
100
|
-
export {
|
|
101
|
-
$createImageTextNode,
|
|
102
|
-
$isImageTextNode,
|
|
103
|
-
INSERT_IMAGETEXT_COMMAND,
|
|
104
|
-
ImageTextNode
|
|
105
|
-
};
|
|
106
|
-
//# sourceMappingURL=ImageTextNode.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ImageTextNode.js","sources":["../../../../../../../src/components/basic/doc-editor/plugins/ImageTextPlugin/ImageTextNode.ts"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\nimport type { DOMConversionMap, LexicalCommand, LexicalNode, NodeKey,EditorConfig, Spread,SerializedElementNode, DOMExportOutput } from 'lexical'\r\nimport { createCommand,$createParagraphNode,ElementNode } from 'lexical'\r\nimport { ImageAttrType,InlineImageNode } from '../ImagePlugin'\r\n\r\n/**\r\n * 插入图文\r\n */\r\nexport const INSERT_IMAGETEXT_COMMAND: LexicalCommand<ImageAttrType> = createCommand('INSERT_IMAGETEXT_COMMAND')\r\n\r\n/**\r\n * 图文节点序列化\r\n */\r\nexport type SerializedImageTextNode = Spread<{},SerializedElementNode>\r\n\r\n\r\n// 类标识\r\nconst MarkClassName = \"mk-doc__image-text\";\r\n\r\n/**\r\n * 图文节点\r\n */\r\nexport class ImageTextNode extends ElementNode{\r\n\r\n static getType(): string {\r\n return \"image-text\";\r\n }\r\n\r\n static clone(node: ImageTextNode): ImageTextNode {\r\n return new ImageTextNode(node.__key)\r\n }\r\n\r\n static importJSON(serializedNode: SerializedImageTextNode): ImageTextNode {\r\n return $createImageTextNode()\r\n }\r\n\r\n static importDOM(): DOMConversionMap | null {\r\n return {\r\n div : (domNode: HTMLElement) => {\r\n return domNode.classList.contains(MarkClassName) ? {\r\n conversion: ()=>{ \r\n return { node:$createImageTextNode() };\r\n },\r\n priority: 4\r\n } : null;\r\n }\r\n }\r\n }\r\n\r\n constructor(key?: NodeKey) {\r\n super(key)\r\n }\r\n\r\n /**\r\n * 导出JSON\r\n * @returns \r\n */\r\n exportJSON(): SerializedImageTextNode {\r\n return {\r\n ...super.exportJSON(),\r\n type: this.getType(),\r\n version: 1\r\n }\r\n }\r\n\r\n /**\r\n * 导出DOM\r\n * @returns \r\n */\r\n exportDOM(): DOMExportOutput {\r\n \r\n const element = document.createElement('div')\r\n\r\n if (!element.classList.contains(MarkClassName)) {\r\n element.classList.add(MarkClassName);\r\n }\r\n\r\n return { element }\r\n }\r\n\r\n /**\r\n * 创建渲染DOM\r\n * @param config \r\n * @returns \r\n */\r\n createDOM(config: EditorConfig): HTMLElement {\r\n const el = this.exportDOM().element as HTMLElement;\r\n el.setAttribute(\"node-key\",this.__key)\r\n el.setAttribute(\"contenteditable\",\"true\")\r\n el.setAttribute(\"data-lexical-decorator\",\"true\")\r\n return el;\r\n }\r\n\r\n /**\r\n * 更新DOM\r\n * @param prevNode \r\n * @param dom \r\n * @param config \r\n * @returns \r\n */\r\n updateDOM(prevNode: ImageTextNode, dom: HTMLElement, config: EditorConfig): boolean {\r\n return false\r\n }\r\n\r\n /* 不允许空\r\n * @returns \r\n */\r\n canBeEmpty(): boolean {\r\n return false\r\n }\r\n\r\n /**\r\n * 非内联\r\n * @returns \r\n */\r\n isInline(): boolean {\r\n return false;\r\n }\r\n}\r\n\r\n/**\r\n * 创建图文节点\r\n * @param src \r\n * @returns \r\n */\r\nexport function $createImageTextNode(attrs?: ImageAttrType): ImageTextNode {\r\n\r\n const imageText = new ImageTextNode()\r\n\r\n if(attrs != null){\r\n imageText.append(new InlineImageNode(attrs))\r\n imageText.append($createParagraphNode())\r\n }\r\n\r\n return imageText;\r\n}\r\n\r\n/**\r\n * 判断是否是图文节点\r\n * @param node \r\n * @returns \r\n */\r\nexport function $isImageTextNode(\r\n node: ImageTextNode | LexicalNode | null | undefined,\r\n): node is ImageTextNode {\r\n return node instanceof ImageTextNode\r\n}\r\n"],"names":[],"mappings":";;;AAYa,MAAA,2BAA0D,cAAc,0BAA0B;AAS/G,MAAM,gBAAgB;AAKf,MAAM,sBAAsB,YAAW;AAAA,EAE5C,OAAO,UAAkB;AAChB,WAAA;AAAA,EACT;AAAA,EAEA,OAAO,MAAM,MAAoC;AACxC,WAAA,IAAI,cAAc,KAAK,KAAK;AAAA,EACrC;AAAA,EAEA,OAAO,WAAW,gBAAwD;AACxE,WAAO,qBAAqB;AAAA,EAC9B;AAAA,EAEA,OAAO,YAAqC;AACnC,WAAA;AAAA,MACL,KAAM,CAAC,YAAyB;AAC9B,eAAO,QAAQ,UAAU,SAAS,aAAa,IAAI;AAAA,UACjD,YAAY,MAAI;AACN,mBAAA,EAAE,MAAK,qBAAA;UACjB;AAAA,UACA,UAAU;AAAA,QACR,IAAA;AAAA,MACN;AAAA,IAAA;AAAA,EAEJ;AAAA,EAEA,YAAY,KAAe;AACzB,UAAM,GAAG;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,aAAsC;AAC7B,WAAA;AAAA,MACL,GAAG,MAAM,WAAW;AAAA,MACpB,MAAM,KAAK,QAAQ;AAAA,MACnB,SAAS;AAAA,IAAA;AAAA,EAEb;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,YAA6B;AAErB,UAAA,UAAU,SAAS,cAAc,KAAK;AAE5C,QAAI,CAAC,QAAQ,UAAU,SAAS,aAAa,GAAG;AACtC,cAAA,UAAU,IAAI,aAAa;AAAA,IACrC;AAEA,WAAO,EAAE,QAAQ;AAAA,EACnB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,UAAU,QAAmC;AACrC,UAAA,KAAK,KAAK,UAAA,EAAY;AACzB,OAAA,aAAa,YAAW,KAAK,KAAK;AAClC,OAAA,aAAa,mBAAkB,MAAM;AACrC,OAAA,aAAa,0BAAyB,MAAM;AACxC,WAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,UAAU,UAAyB,KAAkB,QAA+B;AAC3E,WAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,aAAsB;AACb,WAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,WAAoB;AACX,WAAA;AAAA,EACT;AACF;AAOO,SAAS,qBAAqB,OAAsC;AAEnE,QAAA,YAAY,IAAI;AAEtB,MAAG,SAAS,MAAK;AACf,cAAU,OAAO,IAAI,gBAAgB,KAAK,CAAC;AACjC,cAAA,OAAO,sBAAsB;AAAA,EACzC;AAEO,SAAA;AACT;AAOO,SAAS,iBACd,MACuB;AACvB,SAAO,gBAAgB;AACzB;"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { defineComponent, onMounted } from "vue";
|
|
2
|
-
import { mergeRegister, $insertNodeToNearestRoot } from "@lexical/utils";
|
|
3
|
-
import { COMMAND_PRIORITY_EDITOR } from "lexical";
|
|
4
|
-
import { useLexicalComposer, useMounted } from "lexical-vue";
|
|
5
|
-
import { registerDocEditorToolbarExtend } from "../../core/index.js";
|
|
6
|
-
import { INSERT_IMAGETEXT_COMMAND, $createImageTextNode, ImageTextNode } from "./ImageTextNode.js";
|
|
7
|
-
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
8
|
-
__name: "index",
|
|
9
|
-
setup(__props) {
|
|
10
|
-
registerDocEditorToolbarExtend({
|
|
11
|
-
icon: "richtext-outline",
|
|
12
|
-
text: "图文",
|
|
13
|
-
action: async () => {
|
|
14
|
-
editor.dispatchCommand(INSERT_IMAGETEXT_COMMAND, {
|
|
15
|
-
src: "",
|
|
16
|
-
float: "left",
|
|
17
|
-
width: "200px",
|
|
18
|
-
margin: "0 10px 10px 0"
|
|
19
|
-
});
|
|
20
|
-
},
|
|
21
|
-
sort: 10
|
|
22
|
-
});
|
|
23
|
-
const editor = useLexicalComposer();
|
|
24
|
-
useMounted(() => {
|
|
25
|
-
return mergeRegister(
|
|
26
|
-
// 插入图文
|
|
27
|
-
editor.registerCommand(INSERT_IMAGETEXT_COMMAND, (payload) => {
|
|
28
|
-
$insertNodeToNearestRoot($createImageTextNode(payload));
|
|
29
|
-
return true;
|
|
30
|
-
}, COMMAND_PRIORITY_EDITOR)
|
|
31
|
-
);
|
|
32
|
-
});
|
|
33
|
-
onMounted(() => {
|
|
34
|
-
if (!editor.hasNodes([ImageTextNode])) {
|
|
35
|
-
throw new Error("ImageTextPlugin: 图文节点未注册!");
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
return (_ctx, _cache) => {
|
|
39
|
-
return null;
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
export {
|
|
44
|
-
_sfc_main as default
|
|
45
|
-
};
|
|
46
|
-
//# sourceMappingURL=index.vue.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.vue.js","sources":["../../../../../../../src/components/basic/doc-editor/plugins/ImageTextPlugin/index.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { $insertNodeToNearestRoot,mergeRegister } from '@lexical/utils'\r\nimport { COMMAND_PRIORITY_EDITOR,COMMAND_PRIORITY_LOW,$getSelection,CLICK_COMMAND } from 'lexical'\r\nimport { useLexicalComposer,useMounted } from 'lexical-vue'\r\nimport { onMounted, onUnmounted } from 'vue'\r\nimport { registerDocEditorToolbarExtend,type ToolbarExtendPlugin } from \"../../core\"\r\nimport { useElementModule } from '../../core'\r\nimport { ImageAttrType } from '../ImagePlugin'\r\nimport { INSERT_IMAGETEXT_COMMAND,ImageTextNode,$createImageTextNode } from './index'\r\n\r\n\r\n// 注册到工具条\r\nregisterDocEditorToolbarExtend({\r\n icon:\"richtext-outline\",\r\n text:\"图文\",\r\n action:async ()=>{ \r\n editor.dispatchCommand(INSERT_IMAGETEXT_COMMAND,{\r\n src:\"\",\r\n float:\"left\",\r\n width:\"200px\",\r\n margin:\"0 10px 10px 0\"\r\n })\r\n },\r\n sort:10\r\n} as ToolbarExtendPlugin)\r\n\r\nconst editor = useLexicalComposer()\r\n\r\n// 使用元素模块 集成了模块选中删除以及工具条\r\n// const { isSelected, curSelectKey, curSelectPos,updateActiveViewState } = useElementModule(el=>{\r\n \r\n// var imageTextEl:any = el\r\n\r\n// while (imageTextEl != null && !imageTextEl.classList.contains(\"mk-doc-block-image-text\")) {\r\n// imageTextEl = imageTextEl.parentElement;\r\n// }\r\n\r\n// return imageTextEl\r\n\r\n// },[\r\n// {\r\n// title:\"编辑\",icon:\"Edit\",action:()=>{\r\n// // 编辑的节点\r\n// editor.getEditorState().read(async () => {\r\n \r\n \r\n// })\r\n// } \r\n// }\r\n// ])\r\n\r\n\r\nuseMounted(()=>{\r\n return mergeRegister(\r\n // 插入图文\r\n editor.registerCommand<ImageAttrType>(INSERT_IMAGETEXT_COMMAND,(payload) => {\r\n $insertNodeToNearestRoot($createImageTextNode(payload))\r\n return true\r\n },COMMAND_PRIORITY_EDITOR)\r\n )\r\n})\r\n\r\nonMounted(() => {\r\n\r\n if (!editor.hasNodes([ImageTextNode])){\r\n throw new Error('ImageTextPlugin: 图文节点未注册!')\r\n }\r\n})\r\n</script>\r\n\r\n\r\n<template>\r\n <!-- <div class=\"mk-doc-active-mark mk-doc-active-box-mark\" v-if=\"isSelected\" :style=\"curSelectPos\">\r\n \r\n </div> -->\r\n</template>\r\n\r\n"],"names":[],"mappings":";;;;;;;;;AAY+B,mCAAA;AAAA,MAC7B,MAAK;AAAA,MACL,MAAK;AAAA,MACL,QAAO,YAAU;AACf,eAAO,gBAAgB,0BAAyB;AAAA,UAC9C,KAAI;AAAA,UACJ,OAAM;AAAA,UACN,OAAM;AAAA,UACN,QAAO;AAAA,QAAA,CACR;AAAA,MACH;AAAA,MACA,MAAK;AAAA,IAAA,CACiB;AAExB,UAAM,SAAS;AA0Bf,eAAW,MAAI;AACN,aAAA;AAAA;AAAA,QAEL,OAAO,gBAA+B,0BAAyB,CAAC,YAAY;AACjD,mCAAA,qBAAqB,OAAO,CAAC;AAC/C,iBAAA;AAAA,WACP,uBAAuB;AAAA,MAAA;AAAA,IAC3B,CACD;AAED,cAAU,MAAM;AAEd,UAAI,CAAC,OAAO,SAAS,CAAC,aAAa,CAAC,GAAE;AAC9B,cAAA,IAAI,MAAM,2BAA2B;AAAA,MAC7C;AAAA,IAAA,CACD;;;;;;"}
|