@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.
Files changed (310) hide show
  1. package/dist/cjs/assets/iconfonts/iconfont.js +1 -1
  2. package/dist/cjs/assets/iconfonts/iconfont.js.map +1 -1
  3. package/dist/cjs/components/basic/doc-editor/core/element-block.js +92 -0
  4. package/dist/cjs/components/basic/doc-editor/core/element-block.js.map +1 -0
  5. package/dist/cjs/components/basic/doc-editor/core/index.js +5 -6
  6. package/dist/cjs/components/basic/doc-editor/core/index.js.map +1 -1
  7. package/dist/cjs/components/basic/doc-editor/core/utils.js +20 -13
  8. package/dist/cjs/components/basic/doc-editor/core/utils.js.map +1 -1
  9. package/dist/cjs/components/basic/doc-editor/editor.vue.js +4 -4
  10. package/dist/cjs/components/basic/doc-editor/editor.vue.js.map +1 -1
  11. package/dist/cjs/components/basic/doc-editor/plugins/{DecoratorModuleToolbarPlugin → ElementBlockSelectionPlugin}/index.vue.js +8 -8
  12. package/dist/cjs/components/basic/doc-editor/plugins/ElementBlockSelectionPlugin/index.vue.js.map +1 -0
  13. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/GridNode.js +164 -0
  14. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/GridNode.js.map +1 -0
  15. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.js +89 -0
  16. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.js.map +1 -0
  17. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.js +120 -0
  18. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.js.map +1 -0
  19. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.js +128 -0
  20. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.js.map +1 -0
  21. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.js +94 -0
  22. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.js.map +1 -0
  23. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/index.vue.js +217 -0
  24. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/index.vue.js.map +1 -0
  25. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/utils.js +140 -0
  26. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/utils.js.map +1 -0
  27. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.js +54 -43
  28. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.js.map +1 -1
  29. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js +19 -16
  30. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js.map +1 -1
  31. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/utils.js +32 -54
  32. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/utils.js.map +1 -1
  33. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/ModuleBlockNode.js +25 -13
  34. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/ModuleBlockNode.js.map +1 -1
  35. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/composables.js +14 -1
  36. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/composables.js.map +1 -1
  37. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/index.vue.js +80 -105
  38. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/index.vue.js.map +1 -1
  39. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/utils.js +0 -12
  40. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/utils.js.map +1 -1
  41. package/dist/cjs/components/basic/doc-editor/plugins/RichTextPlugin/index.vue.js.map +1 -1
  42. package/dist/cjs/components/basic/doc-editor/plugins/RichTextPlugin/nodes/RichTextNode.js +16 -16
  43. package/dist/cjs/components/basic/doc-editor/plugins/RichTextPlugin/nodes/RichTextNode.js.map +1 -1
  44. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/FontStyleTool.vue.js +34 -7
  45. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/FontStyleTool.vue.js.map +1 -1
  46. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js +0 -1
  47. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js.map +1 -1
  48. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/index.vue.js +41 -5
  49. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/index.vue.js.map +1 -1
  50. package/dist/cjs/components/basic/doc-editor/plugins/nodes.js +10 -4
  51. package/dist/cjs/components/basic/doc-editor/plugins/nodes.js.map +1 -1
  52. package/dist/cjs/components/basic/doc-editor/themes/doc-editor-edit.css.js +1 -1
  53. package/dist/cjs/components/basic/doc-editor/themes/doc-editor-edit.css.js.map +1 -1
  54. package/dist/cjs/components/basic/doc-editor/themes/doc-theme.css.js +3 -5
  55. package/dist/cjs/components/basic/doc-editor/themes/doc-theme.css.js.map +1 -1
  56. package/dist/cjs/components/basic/dynamic-form-panel/DynamicFormPanel.js +40 -18
  57. package/dist/cjs/components/basic/dynamic-form-panel/DynamicFormPanel.js.map +1 -1
  58. package/dist/cjs/components/basic/dynamic-form-panel/dialog.js +2 -2
  59. package/dist/cjs/components/basic/dynamic-form-panel/dialog.js.map +1 -1
  60. package/dist/cjs/components/basic/image-cropper/image-cropper-api.js.map +1 -1
  61. package/dist/cjs/components/basic/upload-file/ui/upload-image/upload-image.js +0 -2
  62. package/dist/cjs/components/basic/upload-file/ui/upload-image/upload-image.js.map +1 -1
  63. package/dist/cjs/components/basic/visual-page-editor/content-editable.vue.js +13 -9
  64. package/dist/cjs/components/basic/visual-page-editor/content-editable.vue.js.map +1 -1
  65. package/dist/cjs/components/basic/visual-page-editor/core/BlockRender.js +38 -0
  66. package/dist/cjs/components/basic/visual-page-editor/core/BlockRender.js.map +1 -0
  67. package/dist/cjs/components/basic/visual-page-editor/core/Dialog.js +76 -0
  68. package/dist/cjs/components/basic/visual-page-editor/core/Dialog.js.map +1 -0
  69. package/dist/cjs/components/basic/visual-page-editor/core/VisvalPageEditor.js +72 -1
  70. package/dist/cjs/components/basic/visual-page-editor/core/VisvalPageEditor.js.map +1 -1
  71. package/dist/cjs/components/basic/visual-page-editor/core/index.js +21 -13
  72. package/dist/cjs/components/basic/visual-page-editor/core/index.js.map +1 -1
  73. package/dist/cjs/components/basic/visual-page-editor/editor.vue.js +2 -29
  74. package/dist/cjs/components/basic/visual-page-editor/editor.vue.js.map +1 -1
  75. package/dist/cjs/components/basic/visual-page-editor/index.js +1 -1
  76. package/dist/cjs/components/basic/visual-page-editor/index.js.map +1 -1
  77. package/dist/cjs/components/basic/visual-page-editor/modules/BaseImageModule.js +10 -0
  78. package/dist/cjs/components/basic/visual-page-editor/modules/BaseImageModule.js.map +1 -0
  79. package/dist/cjs/components/basic/visual-page-editor/toolbar.vue.js +1 -1
  80. package/dist/cjs/components/basic/visual-page-editor/toolbar.vue.js.map +1 -1
  81. package/dist/cjs/modules/cms/cms-settings.js +4 -0
  82. package/dist/cjs/modules/cms/cms-settings.js.map +1 -1
  83. package/dist/cjs/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.js +4 -0
  84. package/dist/cjs/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.js.map +1 -1
  85. package/dist/cjs/modules/cms/dataviews/cms-ad-defines/CmsAdDefinesForm.js +2 -0
  86. package/dist/cjs/modules/cms/dataviews/cms-ad-defines/CmsAdDefinesForm.js.map +1 -1
  87. package/dist/cjs/modules/cms/pages/cms-ad/index.vue2.js +8 -6
  88. package/dist/cjs/modules/cms/pages/cms-ad/index.vue2.js.map +1 -1
  89. package/dist/cjs/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js +3 -1
  90. package/dist/cjs/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js.map +1 -1
  91. package/dist/cjs/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js +58 -6
  92. package/dist/cjs/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js.map +1 -1
  93. package/dist/cjs/modules/cms/pages/cms-settigns/DocModuleEditForm.vue.js +312 -0
  94. package/dist/cjs/modules/cms/pages/cms-settigns/DocModuleEditForm.vue.js.map +1 -0
  95. package/dist/cjs/modules/cms/pages/cms-settigns/DocModuleEditForm.vue2.js +4 -0
  96. package/dist/cjs/modules/cms/pages/cms-settigns/DocModuleEditForm.vue2.js.map +1 -0
  97. package/dist/cjs/modules/cms/pages/cms-settigns/index.vue2.js +18 -0
  98. package/dist/cjs/modules/cms/pages/cms-settigns/index.vue2.js.map +1 -1
  99. package/dist/cjs/modules/ms/components/image-select/image-select-api.js +14 -2
  100. package/dist/cjs/modules/ms/components/image-select/image-select-api.js.map +1 -1
  101. package/dist/cjs/modules/ms/components/image-select/image-select-panel.js +7 -1
  102. package/dist/cjs/modules/ms/components/image-select/image-select-panel.js.map +1 -1
  103. package/dist/cjs/modules/ms/image-upload-context/index.js +1 -1
  104. package/dist/cjs/modules/ms/image-upload-context/index.js.map +1 -1
  105. package/dist/esm/assets/iconfonts/iconfont.js +1 -1
  106. package/dist/esm/assets/iconfonts/iconfont.js.map +1 -1
  107. package/dist/esm/components/basic/doc-editor/core/element-block.js +92 -0
  108. package/dist/esm/components/basic/doc-editor/core/element-block.js.map +1 -0
  109. package/dist/esm/components/basic/doc-editor/core/index.js +6 -7
  110. package/dist/esm/components/basic/doc-editor/core/index.js.map +1 -1
  111. package/dist/esm/components/basic/doc-editor/core/utils.js +20 -13
  112. package/dist/esm/components/basic/doc-editor/core/utils.js.map +1 -1
  113. package/dist/esm/components/basic/doc-editor/editor.vue.js +4 -4
  114. package/dist/esm/components/basic/doc-editor/editor.vue.js.map +1 -1
  115. package/dist/esm/components/basic/doc-editor/plugins/{DecoratorModuleToolbarPlugin → ElementBlockSelectionPlugin}/index.vue.js +8 -8
  116. package/dist/esm/components/basic/doc-editor/plugins/ElementBlockSelectionPlugin/index.vue.js.map +1 -0
  117. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/GridNode.js +164 -0
  118. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/GridNode.js.map +1 -0
  119. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.js +89 -0
  120. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.js.map +1 -0
  121. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.js +120 -0
  122. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.js.map +1 -0
  123. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.js +128 -0
  124. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.js.map +1 -0
  125. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.js +94 -0
  126. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.js.map +1 -0
  127. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/index.vue.js +218 -0
  128. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/index.vue.js.map +1 -0
  129. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/utils.js +140 -0
  130. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/utils.js.map +1 -0
  131. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.js +55 -44
  132. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.js.map +1 -1
  133. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js +20 -17
  134. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js.map +1 -1
  135. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/utils.js +33 -55
  136. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/utils.js.map +1 -1
  137. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/ModuleBlockNode.js +25 -13
  138. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/ModuleBlockNode.js.map +1 -1
  139. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/composables.js +14 -1
  140. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/composables.js.map +1 -1
  141. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/index.vue.js +84 -109
  142. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/index.vue.js.map +1 -1
  143. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/utils.js +0 -12
  144. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/utils.js.map +1 -1
  145. package/dist/esm/components/basic/doc-editor/plugins/RichTextPlugin/index.vue.js.map +1 -1
  146. package/dist/esm/components/basic/doc-editor/plugins/RichTextPlugin/nodes/RichTextNode.js +16 -16
  147. package/dist/esm/components/basic/doc-editor/plugins/RichTextPlugin/nodes/RichTextNode.js.map +1 -1
  148. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/FontStyleTool.vue.js +37 -10
  149. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/FontStyleTool.vue.js.map +1 -1
  150. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js +0 -1
  151. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js.map +1 -1
  152. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/index.vue.js +43 -7
  153. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/index.vue.js.map +1 -1
  154. package/dist/esm/components/basic/doc-editor/plugins/nodes.js +10 -4
  155. package/dist/esm/components/basic/doc-editor/plugins/nodes.js.map +1 -1
  156. package/dist/esm/components/basic/doc-editor/themes/doc-editor-edit.css.js +1 -1
  157. package/dist/esm/components/basic/doc-editor/themes/doc-editor-edit.css.js.map +1 -1
  158. package/dist/esm/components/basic/doc-editor/themes/doc-theme.css.js +3 -5
  159. package/dist/esm/components/basic/doc-editor/themes/doc-theme.css.js.map +1 -1
  160. package/dist/esm/components/basic/dynamic-form-panel/DynamicFormPanel.js +40 -18
  161. package/dist/esm/components/basic/dynamic-form-panel/DynamicFormPanel.js.map +1 -1
  162. package/dist/esm/components/basic/dynamic-form-panel/dialog.js +2 -2
  163. package/dist/esm/components/basic/dynamic-form-panel/dialog.js.map +1 -1
  164. package/dist/esm/components/basic/image-cropper/image-cropper-api.js.map +1 -1
  165. package/dist/esm/components/basic/upload-file/ui/upload-image/upload-image.js +0 -2
  166. package/dist/esm/components/basic/upload-file/ui/upload-image/upload-image.js.map +1 -1
  167. package/dist/esm/components/basic/visual-page-editor/content-editable.vue.js +14 -10
  168. package/dist/esm/components/basic/visual-page-editor/content-editable.vue.js.map +1 -1
  169. package/dist/esm/components/basic/visual-page-editor/core/BlockRender.js +39 -0
  170. package/dist/esm/components/basic/visual-page-editor/core/BlockRender.js.map +1 -0
  171. package/dist/esm/components/basic/visual-page-editor/core/Dialog.js +76 -0
  172. package/dist/esm/components/basic/visual-page-editor/core/Dialog.js.map +1 -0
  173. package/dist/esm/components/basic/visual-page-editor/core/VisvalPageEditor.js +73 -2
  174. package/dist/esm/components/basic/visual-page-editor/core/VisvalPageEditor.js.map +1 -1
  175. package/dist/esm/components/basic/visual-page-editor/core/index.js +21 -13
  176. package/dist/esm/components/basic/visual-page-editor/core/index.js.map +1 -1
  177. package/dist/esm/components/basic/visual-page-editor/editor.vue.js +4 -31
  178. package/dist/esm/components/basic/visual-page-editor/editor.vue.js.map +1 -1
  179. package/dist/esm/components/basic/visual-page-editor/index.js +1 -1
  180. package/dist/esm/components/basic/visual-page-editor/index.js.map +1 -1
  181. package/dist/esm/components/basic/visual-page-editor/modules/BaseImageModule.js +9 -0
  182. package/dist/esm/components/basic/visual-page-editor/modules/BaseImageModule.js.map +1 -0
  183. package/dist/esm/components/basic/visual-page-editor/toolbar.vue.js +2 -2
  184. package/dist/esm/components/basic/visual-page-editor/toolbar.vue.js.map +1 -1
  185. package/dist/esm/modules/cms/cms-settings.js +4 -0
  186. package/dist/esm/modules/cms/cms-settings.js.map +1 -1
  187. package/dist/esm/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.js +4 -0
  188. package/dist/esm/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.js.map +1 -1
  189. package/dist/esm/modules/cms/dataviews/cms-ad-defines/CmsAdDefinesForm.js +2 -0
  190. package/dist/esm/modules/cms/dataviews/cms-ad-defines/CmsAdDefinesForm.js.map +1 -1
  191. package/dist/esm/modules/cms/pages/cms-ad/index.vue2.js +9 -7
  192. package/dist/esm/modules/cms/pages/cms-ad/index.vue2.js.map +1 -1
  193. package/dist/esm/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js +3 -1
  194. package/dist/esm/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js.map +1 -1
  195. package/dist/esm/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js +58 -6
  196. package/dist/esm/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js.map +1 -1
  197. package/dist/esm/modules/cms/pages/cms-settigns/DocModuleEditForm.vue.js +313 -0
  198. package/dist/esm/modules/cms/pages/cms-settigns/DocModuleEditForm.vue.js.map +1 -0
  199. package/dist/esm/modules/cms/pages/cms-settigns/DocModuleEditForm.vue2.js +5 -0
  200. package/dist/esm/modules/cms/pages/cms-settigns/DocModuleEditForm.vue2.js.map +1 -0
  201. package/dist/esm/modules/cms/pages/cms-settigns/index.vue2.js +18 -0
  202. package/dist/esm/modules/cms/pages/cms-settigns/index.vue2.js.map +1 -1
  203. package/dist/esm/modules/ms/components/image-select/image-select-api.js +14 -2
  204. package/dist/esm/modules/ms/components/image-select/image-select-api.js.map +1 -1
  205. package/dist/esm/modules/ms/components/image-select/image-select-panel.js +9 -3
  206. package/dist/esm/modules/ms/components/image-select/image-select-panel.js.map +1 -1
  207. package/dist/esm/modules/ms/image-upload-context/index.js +1 -1
  208. package/dist/esm/modules/ms/image-upload-context/index.js.map +1 -1
  209. package/dist/style/components/basic/doc-editor/index.css +1 -1
  210. package/dist/style/components/basic/visual-page-editor/index.css +1 -1
  211. package/dist/style/components/index.css +1 -1
  212. package/dist/style/index.css +2 -2
  213. package/dist/style/src/components/basic/doc-editor/index.scss +2 -0
  214. package/dist/style/src/components/basic/visual-page-editor/index.scss +4 -2
  215. package/dist/types/components/basic/doc-editor/core/element-block.d.ts +45 -0
  216. package/dist/types/components/basic/doc-editor/core/index.d.ts +8 -4
  217. package/dist/types/components/basic/doc-editor/core/utils.d.ts +2 -2
  218. package/dist/types/components/basic/doc-editor/plugins/GridPlugin/GridNode.d.ts +88 -0
  219. package/dist/types/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.d.ts +50 -0
  220. package/dist/types/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.d.ts +72 -0
  221. package/dist/types/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.d.ts +64 -0
  222. package/dist/types/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.d.ts +51 -0
  223. package/dist/types/components/basic/doc-editor/plugins/GridPlugin/index.d.ts +5 -0
  224. package/dist/types/components/basic/doc-editor/plugins/GridPlugin/utils.d.ts +3 -0
  225. package/dist/types/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.d.ts +24 -20
  226. package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/ModuleBlockNode.d.ts +18 -10
  227. package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/composables.d.ts +5 -0
  228. package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/index.d.ts +0 -1
  229. package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/utils.d.ts +0 -6
  230. package/dist/types/components/basic/doc-editor/plugins/index.d.ts +3 -3
  231. package/dist/types/components/basic/doc-editor/utils/getSelectedNode.d.ts +1 -1
  232. package/dist/types/components/basic/dynamic-form-panel/type.d.ts +3 -2
  233. package/dist/types/components/basic/visual-page-editor/core/Dialog.d.ts +15 -0
  234. package/dist/types/components/basic/visual-page-editor/core/ModuleDefine.d.ts +12 -0
  235. package/dist/types/components/basic/visual-page-editor/core/VisvalPageEditor.d.ts +45 -1
  236. package/dist/types/components/basic/visual-page-editor/core/index.d.ts +2 -10
  237. package/dist/types/components/basic/visual-page-editor/editor.vue.d.ts +1 -0
  238. package/dist/types/components/basic/visual-page-editor/index.d.ts +2 -1
  239. package/dist/types/components/basic/visual-page-editor/modules/index.d.ts +1 -0
  240. package/dist/types/modules/cms/cms-settings.d.ts +4 -28
  241. package/dist/types/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.d.ts +1 -0
  242. package/dist/types/modules/cms/pages/cms-settigns/DocModuleEditForm.vue.d.ts +45 -0
  243. package/dist/types/modules/ms/components/image-select/image-select-api.d.ts +1 -1
  244. package/dist/types/modules/ms/image-upload-context/index.d.ts +1 -1
  245. package/package.json +9 -8
  246. package/dist/cjs/components/basic/doc-editor/core/decorator-module.js +0 -13
  247. package/dist/cjs/components/basic/doc-editor/core/decorator-module.js.map +0 -1
  248. package/dist/cjs/components/basic/doc-editor/core/element-module.js +0 -68
  249. package/dist/cjs/components/basic/doc-editor/core/element-module.js.map +0 -1
  250. package/dist/cjs/components/basic/doc-editor/plugins/DecoratorModuleToolbarPlugin/index.vue.js.map +0 -1
  251. package/dist/cjs/components/basic/doc-editor/plugins/ImageTextPlugin/ImageTextNode.js +0 -106
  252. package/dist/cjs/components/basic/doc-editor/plugins/ImageTextPlugin/ImageTextNode.js.map +0 -1
  253. package/dist/cjs/components/basic/doc-editor/plugins/ImageTextPlugin/index.vue.js +0 -45
  254. package/dist/cjs/components/basic/doc-editor/plugins/ImageTextPlugin/index.vue.js.map +0 -1
  255. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/ModuleContainerNode.js +0 -143
  256. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/ModuleContainerNode.js.map +0 -1
  257. package/dist/cjs/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockCantainerNode.js +0 -123
  258. package/dist/cjs/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockCantainerNode.js.map +0 -1
  259. package/dist/cjs/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockNode.js +0 -84
  260. package/dist/cjs/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockNode.js.map +0 -1
  261. package/dist/cjs/components/basic/visual-page-editor/components/BlockRender.js +0 -31
  262. package/dist/cjs/components/basic/visual-page-editor/components/BlockRender.js.map +0 -1
  263. package/dist/cjs/components/basic/visual-page-editor/utils/Dialog.js +0 -111
  264. package/dist/cjs/components/basic/visual-page-editor/utils/Dialog.js.map +0 -1
  265. package/dist/cjs/components/basic/visual-page-editor/visual-components/ImageRenderComponent.js +0 -29
  266. package/dist/cjs/components/basic/visual-page-editor/visual-components/ImageRenderComponent.js.map +0 -1
  267. package/dist/esm/components/basic/doc-editor/core/decorator-module.js +0 -13
  268. package/dist/esm/components/basic/doc-editor/core/decorator-module.js.map +0 -1
  269. package/dist/esm/components/basic/doc-editor/core/element-module.js +0 -68
  270. package/dist/esm/components/basic/doc-editor/core/element-module.js.map +0 -1
  271. package/dist/esm/components/basic/doc-editor/plugins/DecoratorModuleToolbarPlugin/index.vue.js.map +0 -1
  272. package/dist/esm/components/basic/doc-editor/plugins/ImageTextPlugin/ImageTextNode.js +0 -106
  273. package/dist/esm/components/basic/doc-editor/plugins/ImageTextPlugin/ImageTextNode.js.map +0 -1
  274. package/dist/esm/components/basic/doc-editor/plugins/ImageTextPlugin/index.vue.js +0 -46
  275. package/dist/esm/components/basic/doc-editor/plugins/ImageTextPlugin/index.vue.js.map +0 -1
  276. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/ModuleContainerNode.js +0 -143
  277. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/ModuleContainerNode.js.map +0 -1
  278. package/dist/esm/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockCantainerNode.js +0 -123
  279. package/dist/esm/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockCantainerNode.js.map +0 -1
  280. package/dist/esm/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockNode.js +0 -84
  281. package/dist/esm/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockNode.js.map +0 -1
  282. package/dist/esm/components/basic/visual-page-editor/components/BlockRender.js +0 -32
  283. package/dist/esm/components/basic/visual-page-editor/components/BlockRender.js.map +0 -1
  284. package/dist/esm/components/basic/visual-page-editor/utils/Dialog.js +0 -111
  285. package/dist/esm/components/basic/visual-page-editor/utils/Dialog.js.map +0 -1
  286. package/dist/esm/components/basic/visual-page-editor/visual-components/ImageRenderComponent.js +0 -28
  287. package/dist/esm/components/basic/visual-page-editor/visual-components/ImageRenderComponent.js.map +0 -1
  288. package/dist/types/components/basic/doc-editor/core/decorator-module.d.ts +0 -60
  289. package/dist/types/components/basic/doc-editor/core/element-module.d.ts +0 -15
  290. package/dist/types/components/basic/doc-editor/plugins/ImageTextPlugin/ImageTextNode.d.ts +0 -63
  291. package/dist/types/components/basic/doc-editor/plugins/ImageTextPlugin/index.d.ts +0 -1
  292. package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/ModuleContainerNode.d.ts +0 -86
  293. package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/ModuleRenderComponent.d.ts +0 -23
  294. package/dist/types/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockCantainerNode.d.ts +0 -63
  295. package/dist/types/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockNode.d.ts +0 -58
  296. package/dist/types/components/basic/visual-page-editor/core/RenderComponent.d.ts +0 -16
  297. package/dist/types/components/basic/visual-page-editor/utils/Dialog.d.ts +0 -15
  298. package/dist/types/components/basic/visual-page-editor/visual-components/index.d.ts +0 -1
  299. /package/dist/cjs/components/basic/doc-editor/plugins/{DecoratorModuleToolbarPlugin → ElementBlockSelectionPlugin}/index.vue2.js +0 -0
  300. /package/dist/cjs/components/basic/doc-editor/plugins/{DecoratorModuleToolbarPlugin → ElementBlockSelectionPlugin}/index.vue2.js.map +0 -0
  301. /package/dist/cjs/components/basic/doc-editor/plugins/{ImageTextPlugin → GridPlugin}/index.vue2.js +0 -0
  302. /package/dist/cjs/components/basic/doc-editor/plugins/{ImageTextPlugin → GridPlugin}/index.vue2.js.map +0 -0
  303. /package/dist/esm/components/basic/doc-editor/plugins/{DecoratorModuleToolbarPlugin → ElementBlockSelectionPlugin}/index.vue2.js +0 -0
  304. /package/dist/esm/components/basic/doc-editor/plugins/{DecoratorModuleToolbarPlugin → ElementBlockSelectionPlugin}/index.vue2.js.map +0 -0
  305. /package/dist/esm/components/basic/doc-editor/plugins/{ImageTextPlugin → GridPlugin}/index.vue2.js +0 -0
  306. /package/dist/esm/components/basic/doc-editor/plugins/{ImageTextPlugin → GridPlugin}/index.vue2.js.map +0 -0
  307. /package/dist/types/components/basic/doc-editor/plugins/{DecoratorModuleToolbarPlugin → ElementBlockSelectionPlugin}/index.vue.d.ts +0 -0
  308. /package/dist/types/components/basic/doc-editor/plugins/{ImageTextPlugin → GridPlugin}/index.vue.d.ts +0 -0
  309. /package/dist/types/components/basic/visual-page-editor/{components → core}/BlockRender.d.ts +0 -0
  310. /package/dist/types/components/basic/visual-page-editor/{visual-components/ImageRenderComponent.d.ts → modules/BaseImageModule.d.ts} +0 -0
@@ -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":["createCommand"],"mappings":";;;;;;AAiCa,MAAA,mCAAwFA,sBAAc,kCAAkC;AAKxI,MAAA,iCAAiEA,sBAAc,gCAAgC;AAK/G,MAAA,6CAA6EA,sBAAc,4CAA4C;;;;"}
@@ -1,68 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const utils = require("@lexical/utils");
4
- const lexical = require("lexical");
5
- const lexicalVue = require("lexical-vue");
6
- const vue = require("vue");
7
- const decoratorModule = require("./decorator-module.js");
8
- const utils$1 = require("./utils.js");
9
- const useElementModule = (func, toolsbars) => {
10
- const editor = lexicalVue.useLexicalComposer();
11
- const isSelected = vue.ref(false);
12
- const curSelectKey = vue.ref(null);
13
- const curSelectPos = vue.ref(null);
14
- const curSelectEl = vue.ref(null);
15
- const updateActiveViewState = (el) => {
16
- if (el) {
17
- const selectRect = el.getBoundingClientRect();
18
- curSelectPos.value = {
19
- top: `${selectRect.y}px`,
20
- left: `${selectRect.x}px`,
21
- width: `${selectRect.width}px`,
22
- height: `${selectRect.height}px`
23
- };
24
- editor.dispatchCommand(decoratorModule.SELECTED_DECORATORMODULE_COMMAND, {
25
- element: curSelectEl.value,
26
- toolsbars
27
- });
28
- } else {
29
- curSelectEl.value = null;
30
- curSelectKey.value = null;
31
- curSelectPos.value = null;
32
- editor.dispatchCommand(decoratorModule.SELECTED_DECORATORMODULE_COMMAND, null);
33
- }
34
- };
35
- vue.watch(isSelected, (state) => {
36
- return updateActiveViewState(state ? curSelectEl.value : null);
37
- });
38
- lexicalVue.useMounted(() => {
39
- return utils.mergeRegister(
40
- // 更新选中状态
41
- editor.registerUpdateListener(() => {
42
- isSelected.value = utils$1.isNodeSelected(editor, curSelectKey.value);
43
- }),
44
- // 点击选中
45
- editor.registerCommand(lexical.CLICK_COMMAND, (event) => {
46
- const el = func(event.target);
47
- const nodeKey = el == null ? void 0 : el.getAttribute("node-key");
48
- if (nodeKey != null) {
49
- event.preventDefault();
50
- if (!event.shiftKey) {
51
- utils$1.clearSelection(editor);
52
- }
53
- utils$1.setSelected(editor, true, nodeKey);
54
- setTimeout(() => {
55
- curSelectEl.value = el;
56
- curSelectKey.value = nodeKey;
57
- isSelected.value = utils$1.isNodeSelected(editor, nodeKey);
58
- }, 1);
59
- return true;
60
- }
61
- return false;
62
- }, lexical.COMMAND_PRIORITY_LOW)
63
- );
64
- });
65
- return { isSelected, curSelectKey, curSelectPos, updateActiveViewState };
66
- };
67
- exports.useElementModule = useElementModule;
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":["useLexicalComposer","ref","SELECTED_DECORATORMODULE_COMMAND","watch","useMounted","mergeRegister","isNodeSelected","CLICK_COMMAND","clearSelection","setSelected","COMMAND_PRIORITY_LOW"],"mappings":";;;;;;;;AAuBa,MAAA,mBAAmB,CAAC,MAAqB,cAAwC;AAE5F,QAAM,SAASA,WAAAA;AACT,QAAA,aAAaC,QAAI,KAAK;AACtB,QAAA,eAAeA,QAAS,IAAI;AAC5B,QAAA,eAAeA,QAAS,IAAI;AAC5B,QAAA,cAAcA,QAAS,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,gBAAgBC,kDAAiC;AAAA,QACtD,SAAQ,YAAY;AAAA,QACpB;AAAA,MAAA,CACD;AAAA,IAAA,OAEC;AACF,kBAAY,QAAQ;AACpB,mBAAa,QAAQ;AACrB,mBAAa,QAAQ;AACd,aAAA,gBAAgBA,kDAAiC,IAAI;AAAA,IAC9D;AAAA,EAAA;AAIIC,YAAA,YAAW,CAAC,UAAQ;AACxB,WAAO,sBAAsB,QAAQ,YAAY,QAAQ,IAAI;AAAA,EAAA,CAC9D;AAGDC,aAAAA,WAAW,MAAI;AAEN,WAAAC,MAAA;AAAA;AAAA,MAEL,OAAO,uBAAuB,MAAM;AAClC,mBAAW,QAAQC,QAAA,eAAe,QAAQ,aAAa,KAAK;AAAA,MAAA,CAC7D;AAAA;AAAA,MAED,OAAO,gBAA4BC,uBAAc,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;AAAEC,oBAAA,eAAe,MAAM;AAAA,UAAI;AAEpCC,kBAAAA,YAAA,QAAO,MAAK,OAAO;AAE/B,qBAAW,MAAM;AACf,wBAAY,QAAQ;AACpB,yBAAa,QAAQ;AACV,uBAAA,QAAQH,QAAAA,eAAe,QAAQ,OAAO;AAAA,aAChD,CAAC;AACG,iBAAA;AAAA,QACT;AAEO,eAAA;AAAA,SACNI,4BAAoB;AAAA,IAAA;AAAA,EACzB,CACD;AAGD,SAAO,EAAE,YAAY,cAAa,cAAa,sBAAsB;AAEvE;;"}
@@ -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":["useLexicalComposer","ref","shallowRef","reactive","watch","DEVICE_VIEW_MODE","UPDATE_DECORATORMODULE_TOOLBAR_POS_COMMAND","nextTick","useMounted","mergeRegister","SELECTED_DECORATORMODULE_COMMAND","$getSelection","$isNodeSelection","REMOVE_DECORATORMODULE_COMMAND"],"mappings":";;;;;;;AAYA,MAAM,cAAuC;;;;AAC7C,UAAM,SAASA,WAAAA;AACT,UAAA,aAAaC,QAA2B,IAAI;AAC5C,UAAA,gBAAgBC,eAAkD,IAAI;AAC5E,UAAM,WAAWC,IAAAA,SAAS,EAAE,MAAM,MAAM,KAAK,OAAO;AAEpDC,QAAA,MAAMC,wBAAkB,MAAM;AACrB,aAAA,gBAAgBC,4DAA4C,IAAI;AAAA,IAAA,CACxE;AAID,UAAM,iBAAiB,MAAM;AAE3BC,UAAAA,SAAS,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;AAGTC,eAAAA,WAAW,MAAM;AACR,aAAAC,MAAA;AAAA,QACL,OAAO,gBAAgBH,gBAAAA,4CAA4C,MAAM,eAAA,GAAkB,WAAW;AAAA,QACtG,OAAO,uBAAuB,CAAC,EAAE,YAAA,MAAkB,YAAY,KAAK,MAAM,eAAe,CAAC,CAAC;AAAA;AAAA,QAE3F,OAAO,gBAAgBI,kDAAkC,CAAC,YAA4C;AAGpG,cAAI,WAAW,MAAM;AACnB,gBAAI,eAAe,CAAA;AAGf,gBAAA,OAAO,QAAQ,aAAa,YAAY;AAE1C,oBAAM,YAAYC,QAAAA;AAEd,kBAAAC,QAAAA,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,gBAAgBC,gBAAAA,gCAAgC,MAAM;AAE3D,gBAAM,YAAYF,QAAAA;AAEd,cAAAC,QAAAA,iBAAiB,SAAS,GAAG;AAE/B,sBAAU,WAAW,QAAQ,CAAQ,SAAA,KAAK,QAAQ;AAG3C,mBAAA,gBAAgBF,kDAAkC,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
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const lexical = require("lexical");
4
- require("../ImagePlugin/commands.js");
5
- const ImageNode = require("../ImagePlugin/ImageNode.js");
6
- const INSERT_IMAGETEXT_COMMAND = lexical.createCommand("INSERT_IMAGETEXT_COMMAND");
7
- const MarkClassName = "mk-doc__image-text";
8
- class ImageTextNode extends lexical.ElementNode {
9
- static getType() {
10
- return "image-text";
11
- }
12
- static clone(node) {
13
- return new ImageTextNode(node.__key);
14
- }
15
- static importJSON(serializedNode) {
16
- return $createImageTextNode();
17
- }
18
- static importDOM() {
19
- return {
20
- div: (domNode) => {
21
- return domNode.classList.contains(MarkClassName) ? {
22
- conversion: () => {
23
- return { node: $createImageTextNode() };
24
- },
25
- priority: 4
26
- } : null;
27
- }
28
- };
29
- }
30
- constructor(key) {
31
- super(key);
32
- }
33
- /**
34
- * 导出JSON
35
- * @returns
36
- */
37
- exportJSON() {
38
- return {
39
- ...super.exportJSON(),
40
- type: this.getType(),
41
- version: 1
42
- };
43
- }
44
- /**
45
- * 导出DOM
46
- * @returns
47
- */
48
- exportDOM() {
49
- const element = document.createElement("div");
50
- if (!element.classList.contains(MarkClassName)) {
51
- element.classList.add(MarkClassName);
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
- el.setAttribute("contenteditable", "true");
64
- el.setAttribute("data-lexical-decorator", "true");
65
- return el;
66
- }
67
- /**
68
- * 更新DOM
69
- * @param prevNode
70
- * @param dom
71
- * @param config
72
- * @returns
73
- */
74
- updateDOM(prevNode, dom, config) {
75
- return false;
76
- }
77
- /* 不允许空
78
- * @returns
79
- */
80
- canBeEmpty() {
81
- return false;
82
- }
83
- /**
84
- * 非内联
85
- * @returns
86
- */
87
- isInline() {
88
- return false;
89
- }
90
- }
91
- function $createImageTextNode(attrs) {
92
- const imageText = new ImageTextNode();
93
- if (attrs != null) {
94
- imageText.append(new ImageNode.InlineImageNode(attrs));
95
- imageText.append(lexical.$createParagraphNode());
96
- }
97
- return imageText;
98
- }
99
- function $isImageTextNode(node) {
100
- return node instanceof ImageTextNode;
101
- }
102
- exports.$createImageTextNode = $createImageTextNode;
103
- exports.$isImageTextNode = $isImageTextNode;
104
- exports.INSERT_IMAGETEXT_COMMAND = INSERT_IMAGETEXT_COMMAND;
105
- exports.ImageTextNode = ImageTextNode;
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":["createCommand","ElementNode","InlineImageNode","$createParagraphNode"],"mappings":";;;;;AAYa,MAAA,2BAA0DA,sBAAc,0BAA0B;AAS/G,MAAM,gBAAgB;AAKf,MAAM,sBAAsBC,QAAAA,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,IAAIC,0BAAgB,KAAK,CAAC;AACjC,cAAA,OAAOC,8BAAsB;AAAA,EACzC;AAEO,SAAA;AACT;AAOO,SAAS,iBACd,MACuB;AACvB,SAAO,gBAAgB;AACzB;;;;;"}
@@ -1,45 +0,0 @@
1
- "use strict";
2
- const vue = require("vue");
3
- const utils = require("@lexical/utils");
4
- const lexical = require("lexical");
5
- const lexicalVue = require("lexical-vue");
6
- const index = require("../../core/index.js");
7
- const ImageTextNode = require("./ImageTextNode.js");
8
- const _sfc_main = /* @__PURE__ */ vue.defineComponent({
9
- __name: "index",
10
- setup(__props) {
11
- index.registerDocEditorToolbarExtend({
12
- icon: "richtext-outline",
13
- text: "图文",
14
- action: async () => {
15
- editor.dispatchCommand(ImageTextNode.INSERT_IMAGETEXT_COMMAND, {
16
- src: "",
17
- float: "left",
18
- width: "200px",
19
- margin: "0 10px 10px 0"
20
- });
21
- },
22
- sort: 10
23
- });
24
- const editor = lexicalVue.useLexicalComposer();
25
- lexicalVue.useMounted(() => {
26
- return utils.mergeRegister(
27
- // 插入图文
28
- editor.registerCommand(ImageTextNode.INSERT_IMAGETEXT_COMMAND, (payload) => {
29
- utils.$insertNodeToNearestRoot(ImageTextNode.$createImageTextNode(payload));
30
- return true;
31
- }, lexical.COMMAND_PRIORITY_EDITOR)
32
- );
33
- });
34
- vue.onMounted(() => {
35
- if (!editor.hasNodes([ImageTextNode.ImageTextNode])) {
36
- throw new Error("ImageTextPlugin: 图文节点未注册!");
37
- }
38
- });
39
- return (_ctx, _cache) => {
40
- return null;
41
- };
42
- }
43
- });
44
- module.exports = _sfc_main;
45
- //# 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":["registerDocEditorToolbarExtend","INSERT_IMAGETEXT_COMMAND","useLexicalComposer","useMounted","mergeRegister","$insertNodeToNearestRoot","$createImageTextNode","COMMAND_PRIORITY_EDITOR","onMounted","ImageTextNode"],"mappings":";;;;;;;;;;AAY+BA,yCAAA;AAAA,MAC7B,MAAK;AAAA,MACL,MAAK;AAAA,MACL,QAAO,YAAU;AACf,eAAO,gBAAgBC,wCAAyB;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,SAASC,WAAAA;AA0BfC,eAAAA,WAAW,MAAI;AACN,aAAAC,MAAA;AAAA;AAAA,QAEL,OAAO,gBAA+BH,wCAAyB,CAAC,YAAY;AACjDI,yCAAAC,cAAAA,qBAAqB,OAAO,CAAC;AAC/C,iBAAA;AAAA,WACPC,+BAAuB;AAAA,MAAA;AAAA,IAC3B,CACD;AAEDC,QAAAA,UAAU,MAAM;AAEd,UAAI,CAAC,OAAO,SAAS,CAACC,cAAAA,aAAa,CAAC,GAAE;AAC9B,cAAA,IAAI,MAAM,2BAA2B;AAAA,MAC7C;AAAA,IAAA,CACD;;;;;;;"}
@@ -1,143 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
6
- const lexical = require("lexical");
7
- const BaseBlockCantainerNode = require("../RichTextPlugin/nodes/BaseBlockCantainerNode.js");
8
- const INSERT_MODULECONTAINER_COMMAND = lexical.createCommand("INSERT_MODULECONTAINER_COMMAND");
9
- class ModuleContainerNode extends BaseBlockCantainerNode.BaseBlockCantainerNode {
10
- constructor(attrs, key) {
11
- super(ModuleContainerNode.getType(), key);
12
- __publicField(this, "__attrs");
13
- this.__attrs = attrs;
14
- }
15
- static getType() {
16
- return "module-container";
17
- }
18
- /**
19
- * 获取模块类标识
20
- * @returns
21
- */
22
- static getMarkClassName() {
23
- return BaseBlockCantainerNode.BaseBlockCantainerNode.getMarkClassName(ModuleContainerNode.getType());
24
- }
25
- static clone(node) {
26
- return new ModuleContainerNode(node.__attrs, node.__key);
27
- }
28
- static importJSON(serializedNode) {
29
- return new ModuleContainerNode(serializedNode.attrs);
30
- }
31
- static importDOM() {
32
- return {
33
- div: (domNode) => {
34
- const data = {};
35
- return BaseBlockCantainerNode.BaseBlockCantainerNode.hasBlockByType(domNode, ModuleContainerNode.getType()) ? {
36
- conversion: () => {
37
- const className = domNode.className.replace(ModuleContainerNode.getMarkClassName(), "").trim();
38
- return {
39
- node: $createModuleContainerNode(Object.assign({
40
- isFlex: false,
41
- direction: "",
42
- wrap: false,
43
- alignContent: "",
44
- justifyContent: "",
45
- alignItems: "",
46
- class: className
47
- }, data))
48
- };
49
- },
50
- priority: 4
51
- } : null;
52
- }
53
- };
54
- }
55
- /**
56
- * 设置属性
57
- * @param pos
58
- */
59
- setAttrs(data) {
60
- const writable = this.getWritable();
61
- Object.assign(writable.__attrs, data);
62
- }
63
- /**
64
- * 获取属性
65
- * @param pos
66
- */
67
- getAttrs() {
68
- return this.__attrs;
69
- }
70
- /**
71
- * 导出JSON
72
- * @returns
73
- */
74
- exportJSON() {
75
- return {
76
- ...super.exportJSON(),
77
- type: this.getType(),
78
- attrs: this.__attrs,
79
- version: 1
80
- };
81
- }
82
- /**
83
- * 导出DOM
84
- * @returns
85
- */
86
- exportDOM() {
87
- const out = super.exportDOM();
88
- const el = out.element;
89
- if (this.__attrs.class && !el.classList.contains(this.__attrs.class)) {
90
- el.classList.add(this.__attrs.class);
91
- }
92
- return out;
93
- }
94
- /**
95
- * 创建渲染DOM
96
- * @param config
97
- * @returns
98
- */
99
- createDOM(config) {
100
- const el = super.createDOM(config);
101
- if (this.__attrs.class && !el.classList.contains(this.__attrs.class)) {
102
- el.classList.add(this.__attrs.class);
103
- }
104
- if (this.getChildrenSize() <= 0) {
105
- el.classList.add("empty");
106
- }
107
- return el;
108
- }
109
- /**
110
- * 更新DOM
111
- * @param prevNode
112
- * @param el
113
- * @param config
114
- * @returns
115
- */
116
- updateDOM(node, el, config) {
117
- if (node.__attrs.class) {
118
- el.className = `${ModuleContainerNode.getMarkClassName()} ${node.__attrs.class}`;
119
- } else {
120
- el.className = `${ModuleContainerNode.getMarkClassName()}`;
121
- }
122
- return false;
123
- }
124
- }
125
- function $isModuleContainerNode(node) {
126
- return node instanceof ModuleContainerNode;
127
- }
128
- function $createModuleContainerNode(data) {
129
- return new ModuleContainerNode(Object.assign({
130
- isFlex: false,
131
- direction: "",
132
- wrap: false,
133
- alignContent: "",
134
- justifyContent: "",
135
- alignItems: "",
136
- class: ""
137
- }, data));
138
- }
139
- exports.$createModuleContainerNode = $createModuleContainerNode;
140
- exports.$isModuleContainerNode = $isModuleContainerNode;
141
- exports.INSERT_MODULECONTAINER_COMMAND = INSERT_MODULECONTAINER_COMMAND;
142
- exports.ModuleContainerNode = ModuleContainerNode;
143
- //# sourceMappingURL=ModuleContainerNode.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModuleContainerNode.js","sources":["../../../../../../../src/components/basic/doc-editor/plugins/ModulePlugin/ModuleContainerNode.ts"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\nimport type { DOMConversionMap, LexicalCommand, LexicalNode, NodeKey, Spread,EditorConfig, DOMExportOutput } from 'lexical'\r\nimport { createCommand } from 'lexical'\r\nimport { BaseBlockCantainerNode,SerializedBlockCantainerNode } from '../RichTextPlugin/nodes/BaseBlockCantainerNode'\r\n\r\n/**\r\n * 容器属性\r\n */\r\nexport type ModuleContainerAttrType = {\r\n isFlex:boolean,\r\n direction:'column'|'row'|'row-reverse'|'column-reverse',\r\n wrap:boolean,\r\n alignContent:'center'|'flex-start',\r\n justifyContent:'center'|'flex-start',\r\n alignItems:'center'|'flex-start',\r\n class:string\r\n};\r\n\r\n/**\r\n * 插入模块容器\r\n */\r\nexport const INSERT_MODULECONTAINER_COMMAND: LexicalCommand<ModuleContainerAttrType> = createCommand('INSERT_MODULECONTAINER_COMMAND')\r\n\r\n/**\r\n * 图文节点序列化\r\n */\r\nexport type SerializedModuleContainerNode = Spread<{\r\n attrs:ModuleContainerAttrType\r\n},SerializedBlockCantainerNode>\r\n\r\n/**\r\n * 模块容器\r\n */\r\nexport class ModuleContainerNode extends BaseBlockCantainerNode{\r\n __attrs:ModuleContainerAttrType\r\n\r\n static getType(): string {\r\n return \"module-container\";\r\n }\r\n /**\r\n * 获取模块类标识\r\n * @returns \r\n */\r\n static getMarkClassName(): string {\r\n return BaseBlockCantainerNode.getMarkClassName(ModuleContainerNode.getType())\r\n }\r\n\r\n static clone(node: ModuleContainerNode): ModuleContainerNode {\r\n return new ModuleContainerNode(node.__attrs,node.__key)\r\n }\r\n\r\n static importJSON(serializedNode: SerializedModuleContainerNode): ModuleContainerNode {\r\n return new ModuleContainerNode(serializedNode.attrs)\r\n }\r\n\r\n static importDOM(): DOMConversionMap | null {\r\n return {\r\n div : (domNode: HTMLElement) => {\r\n\r\n const data = {};\r\n\r\n return BaseBlockCantainerNode.hasBlockByType(domNode,ModuleContainerNode.getType()) ? {\r\n conversion: ()=>{ \r\n\r\n // 标识类名\r\n const className = domNode.className.replace(ModuleContainerNode.getMarkClassName(),\"\").trim();\r\n\r\n return { \r\n node:$createModuleContainerNode(Object.assign({\r\n isFlex:false,\r\n direction:\"\",\r\n wrap:false,\r\n alignContent:\"\",\r\n justifyContent:'',\r\n alignItems:'',\r\n class:className\r\n },data) as ModuleContainerAttrType) \r\n };\r\n },\r\n priority: 4\r\n } : null;\r\n }\r\n }\r\n }\r\n\r\n constructor(attrs:ModuleContainerAttrType,key?: NodeKey) {\r\n super(ModuleContainerNode.getType(),key)\r\n this.__attrs = attrs;\r\n }\r\n\r\n /**\r\n * 设置属性\r\n * @param pos \r\n */\r\n setAttrs(data?:any){\r\n const writable = this.getWritable();\r\n Object.assign(writable.__attrs,data)\r\n }\r\n\r\n /**\r\n * 获取属性\r\n * @param pos \r\n */\r\n getAttrs(){\r\n return this.__attrs;\r\n }\r\n\r\n /**\r\n * 导出JSON\r\n * @returns \r\n */\r\n exportJSON(): SerializedModuleContainerNode {\r\n return {\r\n ...super.exportJSON(),\r\n type: this.getType(),\r\n attrs:this.__attrs,\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 out = super.exportDOM();\r\n const el = out.element as HTMLElement\r\n\r\n if (this.__attrs.class && !el.classList.contains(this.__attrs.class)) {\r\n el.classList.add(this.__attrs.class);\r\n }\r\n\r\n return out\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 \r\n const el = super.createDOM(config);\r\n\r\n if (this.__attrs.class && !el.classList.contains(this.__attrs.class)) {\r\n el.classList.add(this.__attrs.class);\r\n }\r\n\r\n if(this.getChildrenSize() <= 0){\r\n el.classList.add(\"empty\")\r\n }\r\n \r\n return el;\r\n }\r\n\r\n /**\r\n * 更新DOM\r\n * @param prevNode \r\n * @param el \r\n * @param config \r\n * @returns \r\n */\r\n updateDOM(node: ModuleContainerNode, el: HTMLElement, config: EditorConfig): boolean {\r\n if (node.__attrs.class) {\r\n // 标识类名\r\n el.className = `${ModuleContainerNode.getMarkClassName()} ${node.__attrs.class}`;\r\n }\r\n else{\r\n el.className = `${ModuleContainerNode.getMarkClassName()}`;\r\n }\r\n return false\r\n }\r\n}\r\n\r\n/**\r\n * 判断是否是模块容器节点\r\n * @param node \r\n * @returns \r\n */\r\nexport function $isModuleContainerNode(\r\n node: ModuleContainerNode | LexicalNode | null | undefined,\r\n): node is ModuleContainerNode {\r\n return node instanceof ModuleContainerNode\r\n}\r\n\r\n\r\n/**\r\n * 创建模块容器\r\n * @param src \r\n * @returns \r\n */\r\nexport function $createModuleContainerNode(data: ModuleContainerAttrType): ModuleContainerNode {\r\n return new ModuleContainerNode(Object.assign({\r\n isFlex:false,\r\n direction:\"\",\r\n wrap:false,\r\n alignContent:\"\",\r\n justifyContent:'',\r\n alignItems:'',\r\n class:\"\"\r\n },data))\r\n}\r\n"],"names":["createCommand","BaseBlockCantainerNode"],"mappings":";;;;;;;AAyBa,MAAA,iCAA0EA,sBAAc,gCAAgC;AAY9H,MAAM,4BAA4BC,uBAAAA,uBAAsB;AAAA,EAoD7D,YAAY,OAA8B,KAAe;AACjD,UAAA,oBAAoB,QAAQ,GAAE,GAAG;AApDzC;AAqDE,SAAK,UAAU;AAAA,EACjB;AAAA,EApDA,OAAO,UAAkB;AAChB,WAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,mBAA2B;AAChC,WAAOA,uBAAuB,uBAAA,iBAAiB,oBAAoB,QAAS,CAAA;AAAA,EAC9E;AAAA,EAEA,OAAO,MAAM,MAAgD;AAC3D,WAAO,IAAI,oBAAoB,KAAK,SAAQ,KAAK,KAAK;AAAA,EACxD;AAAA,EAEA,OAAO,WAAW,gBAAoE;AAC7E,WAAA,IAAI,oBAAoB,eAAe,KAAK;AAAA,EACrD;AAAA,EAEA,OAAO,YAAqC;AACnC,WAAA;AAAA,MACL,KAAM,CAAC,YAAyB;AAE9B,cAAM,OAAO,CAAA;AAEb,eAAQA,uBAAAA,uBAAuB,eAAe,SAAQ,oBAAoB,QAAS,CAAA,IAAI;AAAA,UACrF,YAAY,MAAI;AAGR,kBAAA,YAAY,QAAQ,UAAU,QAAQ,oBAAoB,oBAAmB,EAAE,EAAE;AAE/E,mBAAA;AAAA,cACN,MAAK,2BAA2B,OAAO,OAAO;AAAA,gBAC5C,QAAO;AAAA,gBACP,WAAU;AAAA,gBACV,MAAK;AAAA,gBACL,cAAa;AAAA,gBACb,gBAAe;AAAA,gBACf,YAAW;AAAA,gBACX,OAAM;AAAA,cACR,GAAE,IAAI,CAA4B;AAAA,YAAA;AAAA,UAEtC;AAAA,UACA,UAAU;AAAA,QACR,IAAA;AAAA,MACN;AAAA,IAAA;AAAA,EAEJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,SAAS,MAAU;AACX,UAAA,WAAW,KAAK;AACf,WAAA,OAAO,SAAS,SAAQ,IAAI;AAAA,EACrC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,WAAU;AACR,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,aAA4C;AACnC,WAAA;AAAA,MACL,GAAG,MAAM,WAAW;AAAA,MACpB,MAAM,KAAK,QAAQ;AAAA,MACnB,OAAM,KAAK;AAAA,MACX,SAAS;AAAA,IAAA;AAAA,EAEb;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,YAA6B;AAErB,UAAA,MAAM,MAAM;AAClB,UAAM,KAAK,IAAI;AAEX,QAAA,KAAK,QAAQ,SAAS,CAAC,GAAG,UAAU,SAAS,KAAK,QAAQ,KAAK,GAAG;AACpE,SAAG,UAAU,IAAI,KAAK,QAAQ,KAAK;AAAA,IACrC;AAEO,WAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,UAAU,QAAmC;AAErC,UAAA,KAAK,MAAM,UAAU,MAAM;AAE7B,QAAA,KAAK,QAAQ,SAAS,CAAC,GAAG,UAAU,SAAS,KAAK,QAAQ,KAAK,GAAG;AACpE,SAAG,UAAU,IAAI,KAAK,QAAQ,KAAK;AAAA,IACrC;AAEG,QAAA,KAAK,gBAAgB,KAAK,GAAE;AAC1B,SAAA,UAAU,IAAI,OAAO;AAAA,IAC1B;AAEO,WAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASE,UAAU,MAA2B,IAAiB,QAA+B;AAC/E,QAAA,KAAK,QAAQ,OAAO;AAEnB,SAAA,YAAY,GAAG,oBAAoB,iBAAA,CAAkB,IAAI,KAAK,QAAQ,KAAK;AAAA,IAAA,OAE5E;AACF,SAAG,YAAY,GAAG,oBAAoB,iBAAA,CAAkB;AAAA,IAC1D;AACO,WAAA;AAAA,EACT;AACJ;AAOO,SAAS,uBACd,MAC6B;AAC7B,SAAO,gBAAgB;AACzB;AAQO,SAAS,2BAA2B,MAAoD;AACtF,SAAA,IAAI,oBAAoB,OAAO,OAAO;AAAA,IAC3C,QAAO;AAAA,IACP,WAAU;AAAA,IACV,MAAK;AAAA,IACL,cAAa;AAAA,IACb,gBAAe;AAAA,IACf,YAAW;AAAA,IACX,OAAM;AAAA,EAAA,GACN,IAAI,CAAC;AACT;;;;;"}
@@ -1,123 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const lexical = require("lexical");
4
- const BaseMarkClassName = "mk-doc-block-container";
5
- class BaseBlockCantainerNode 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(BaseBlockCantainerNode.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 BaseBlockCantainerNode.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
- el.setAttribute("contenteditable", "false");
64
- el.setAttribute("data-lexical-decorator", "true");
65
- return el;
66
- }
67
- /**
68
- * 更新DOM
69
- * @param prevNode
70
- * @param dom
71
- * @param config
72
- * @returns
73
- */
74
- updateDOM(prevNode, dom, config) {
75
- return false;
76
- }
77
- /**
78
- * 非内联
79
- * @returns
80
- */
81
- isInline() {
82
- return false;
83
- }
84
- /**
85
- * 定义为影子根
86
- * @returns
87
- */
88
- isShadowRoot() {
89
- return true;
90
- }
91
- // // Mutation
92
- // insertNewAfter(rangeSelection:RangeSelection, restoreSelection:boolean) {
93
- // // const newElement = $createParagraphNode();
94
- // // newElement.setTextFormat(rangeSelection.format);
95
- // // const direction = this.getDirection();
96
- // // newElement.setDirection(direction);
97
- // // newElement.setFormat(this.getFormatType());
98
- // // this.insertAfter(newElement, restoreSelection);
99
- // console.log(rangeSelection,restoreSelection)
100
- // return null;
101
- // }
102
- // collapseAtStart() {
103
- // const children = this.getChildren();
104
- // console.log("asdasdas")
105
- // if (children.length === 0 || $isTextNode(children[0]) && children[0].getTextContent().trim() === "") {
106
- // const nextSibling = this.getNextSibling();
107
- // if (nextSibling !== null) {
108
- // this.selectNext();
109
- // this.remove();
110
- // return true;
111
- // }
112
- // const prevSibling = this.getPreviousSibling();
113
- // if (prevSibling !== null) {
114
- // this.selectPrevious();
115
- // this.remove();
116
- // return true;
117
- // }
118
- // }
119
- // return false;
120
- // }
121
- }
122
- exports.BaseBlockCantainerNode = BaseBlockCantainerNode;
123
- //# sourceMappingURL=BaseBlockCantainerNode.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BaseBlockCantainerNode.js","sources":["../../../../../../../../src/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockCantainerNode.ts"],"sourcesContent":["import type {\r\n DOMExportOutput,\r\n EditorConfig,\r\n NodeKey,\r\n Spread,\r\n SerializedElementNode,\r\n} from 'lexical'\r\nimport { ElementNode} from 'lexical'\r\n\r\n/**\r\n * 可编辑组件块容器节点\r\n */\r\nexport type SerializedBlockCantainerNode = Spread<{},SerializedElementNode>\r\n\r\n// 基础类标识\r\nconst BaseMarkClassName = \"mk-doc-block-container\";\r\n\r\n/**\r\n * 定义组件块容器点\r\n */\r\nexport class BaseBlockCantainerNode 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(BaseBlockCantainerNode.getMarkClassName(type))\r\n }\r\n\r\n /**\r\n * 导出json\r\n * @returns \r\n */\r\n exportJSON(): SerializedBlockCantainerNode {\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 BaseBlockCantainerNode.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 el.setAttribute(\"contenteditable\",\"false\")\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: BaseBlockCantainerNode, 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 * 非内联\r\n * @returns \r\n */\r\n isInline(): boolean {\r\n return false;\r\n }\r\n\r\n /**\r\n * 定义为影子根\r\n * @returns \r\n */\r\n isShadowRoot(): boolean {\r\n return true;\r\n }\r\n\r\n \r\n // // Mutation\r\n // insertNewAfter(rangeSelection:RangeSelection, restoreSelection:boolean) {\r\n // // const newElement = $createParagraphNode();\r\n // // newElement.setTextFormat(rangeSelection.format);\r\n // // const direction = this.getDirection();\r\n // // newElement.setDirection(direction);\r\n // // newElement.setFormat(this.getFormatType());\r\n // // this.insertAfter(newElement, restoreSelection);\r\n // console.log(rangeSelection,restoreSelection)\r\n // return null;\r\n // }\r\n\r\n\r\n // collapseAtStart() {\r\n // const children = this.getChildren();\r\n // console.log(\"asdasdas\")\r\n // if (children.length === 0 || $isTextNode(children[0]) && children[0].getTextContent().trim() === \"\") {\r\n // const nextSibling = this.getNextSibling();\r\n // if (nextSibling !== null) {\r\n // this.selectNext();\r\n // this.remove();\r\n // return true;\r\n // }\r\n // const prevSibling = this.getPreviousSibling();\r\n // if (prevSibling !== null) {\r\n // this.selectPrevious();\r\n // this.remove();\r\n // return true;\r\n // }\r\n // }\r\n // return false;\r\n // }\r\n}\r\n"],"names":["ElementNode"],"mappings":";;;AAeA,MAAM,oBAAoB;AAKnB,MAAM,+BAA+BA,QAAAA,YAAY;AAAA,EAEtD,YAAY,MAAe,KAAe;AACxC,UAAM,GAAG;AACT,SAAK,SAAS;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,iBAAiB,MAAqB;AACpC,WAAA,GAAG,iBAAiB,KAAK,IAAI;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,eAAe,KAAiB,MAAsB;AAC3D,WAAO,IAAI,UAAU,SAAS,uBAAuB,iBAAiB,IAAI,CAAC;AAAA,EAC7E;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,aAA2C;AAClC,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,uBAAuB,iBAAiB,KAAK,MAAM;AAAA,EAC5D;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;AAClC,OAAA,aAAa,mBAAkB,OAAO;AACtC,OAAA,aAAa,0BAAyB,MAAM;AACxC,WAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,UAAU,UAAkC,KAAkB,QAA+B;AAYpF,WAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,WAAoB;AACX,WAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,eAAwB;AACf,WAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAmCF;;"}