@maketribe/ms-app 3.2.24 → 3.2.26

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 (451) 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-module.js → element-block.js} +31 -12
  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 +12 -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.map +1 -1
  8. package/dist/cjs/components/basic/doc-editor/editor.vue.js +11 -4
  9. package/dist/cjs/components/basic/doc-editor/editor.vue.js.map +1 -1
  10. package/dist/cjs/components/basic/doc-editor/index.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 +89 -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 +115 -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 +83 -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 +143 -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 +33 -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 +18 -24
  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 +18 -14
  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 +66 -39
  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 +45 -30
  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 +2 -2
  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 +45 -108
  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 +3 -14
  40. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/utils.js.map +1 -1
  41. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/ContentStyleTool.vue.js +10 -1
  42. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/ContentStyleTool.vue.js.map +1 -1
  43. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/FontStyleTool.vue.js +26 -0
  44. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/FontStyleTool.vue.js.map +1 -1
  45. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js +48 -34
  46. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js.map +1 -1
  47. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/index.vue.js +43 -8
  48. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/index.vue.js.map +1 -1
  49. package/dist/cjs/components/basic/doc-editor/plugins/nodes.js +10 -4
  50. package/dist/cjs/components/basic/doc-editor/plugins/nodes.js.map +1 -1
  51. package/dist/cjs/components/basic/doc-editor/themes/doc-editor-edit.css.js +1 -1
  52. package/dist/cjs/components/basic/doc-editor/themes/doc-editor-edit.css.js.map +1 -1
  53. package/dist/cjs/components/basic/doc-editor/themes/doc-theme.css.js +8 -13
  54. package/dist/cjs/components/basic/doc-editor/themes/doc-theme.css.js.map +1 -1
  55. package/dist/cjs/components/basic/upload-file/context/UploadContext.js.map +1 -1
  56. package/dist/cjs/components/basic/upload-file/index.js +13 -3
  57. package/dist/cjs/components/basic/upload-file/index.js.map +1 -1
  58. package/dist/cjs/components/basic/upload-file/ui/upload-file/index.js +11 -0
  59. package/dist/cjs/components/basic/upload-file/ui/upload-file/index.js.map +1 -0
  60. package/dist/cjs/components/basic/upload-file/ui/upload-file/upload-file-options.js +38 -0
  61. package/dist/cjs/components/basic/upload-file/ui/upload-file/upload-file-options.js.map +1 -0
  62. package/dist/cjs/components/basic/upload-file/ui/upload-file/upload-file.js +224 -0
  63. package/dist/cjs/components/basic/upload-file/ui/upload-file/upload-file.js.map +1 -0
  64. package/dist/cjs/components/basic/upload-file/ui/upload-image/upload-image.js +2 -2
  65. package/dist/cjs/components/basic/upload-file/ui/upload-image/upload-image.js.map +1 -1
  66. package/dist/cjs/components/basic/upload-file/ui/upload-video/index.js +11 -0
  67. package/dist/cjs/components/basic/upload-file/ui/upload-video/index.js.map +1 -0
  68. package/dist/cjs/components/basic/upload-file/ui/upload-video/upload-video-options.js +38 -0
  69. package/dist/cjs/components/basic/upload-file/ui/upload-video/upload-video-options.js.map +1 -0
  70. package/dist/cjs/components/basic/upload-file/ui/upload-video/upload-video.js +222 -0
  71. package/dist/cjs/components/basic/upload-file/ui/upload-video/upload-video.js.map +1 -0
  72. package/dist/cjs/components/basic/upload-file/upload-file-options.js +2 -1
  73. package/dist/cjs/components/basic/upload-file/upload-file-options.js.map +1 -1
  74. package/dist/cjs/components/basic/upload-file/upload-file.js +1 -0
  75. package/dist/cjs/components/basic/upload-file/upload-file.js.map +1 -1
  76. package/dist/cjs/components/business/resource-list/components/resource-item/index.vue.js +2 -0
  77. package/dist/cjs/components/business/resource-list/components/resource-item/index.vue.js.map +1 -1
  78. package/dist/cjs/components/business/resource-manager/resource-manager.vue.js +2 -0
  79. package/dist/cjs/components/business/resource-manager/resource-manager.vue.js.map +1 -1
  80. package/dist/cjs/components/data-model/data-table/components/column-sort/column-sort.js +2 -0
  81. package/dist/cjs/components/data-model/data-table/components/column-sort/column-sort.js.map +1 -1
  82. package/dist/cjs/components/data-model/data-table/components/header-components/batch-opt/batch-opt.js +2 -0
  83. package/dist/cjs/components/data-model/data-table/components/header-components/batch-opt/batch-opt.js.map +1 -1
  84. package/dist/cjs/components/data-model/data-table/components/header-components/table-filter/table-filter.js +2 -0
  85. package/dist/cjs/components/data-model/data-table/components/header-components/table-filter/table-filter.js.map +1 -1
  86. package/dist/cjs/core/component/DataFormComponents.js +14 -0
  87. package/dist/cjs/core/component/DataFormComponents.js.map +1 -1
  88. package/dist/cjs/index.js +73 -61
  89. package/dist/cjs/index.js.map +1 -1
  90. package/dist/cjs/installer.js +17 -14
  91. package/dist/cjs/installer.js.map +1 -1
  92. package/dist/cjs/layouts/components/bar/index.js +2 -0
  93. package/dist/cjs/layouts/components/bar/index.js.map +1 -1
  94. package/dist/cjs/layouts/components/header/tools.js +2 -0
  95. package/dist/cjs/layouts/components/header/tools.js.map +1 -1
  96. package/dist/cjs/layouts/components/menu/menu-item.js +2 -0
  97. package/dist/cjs/layouts/components/menu/menu-item.js.map +1 -1
  98. package/dist/cjs/layouts/container/default.js +2 -0
  99. package/dist/cjs/layouts/container/default.js.map +1 -1
  100. package/dist/cjs/message-impl/DialogerImpl.js +2 -0
  101. package/dist/cjs/message-impl/DialogerImpl.js.map +1 -1
  102. package/dist/cjs/modules/cms/components/part-tree/index.vue.js +2 -0
  103. package/dist/cjs/modules/cms/components/part-tree/index.vue.js.map +1 -1
  104. package/dist/cjs/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.js +15 -7
  105. package/dist/cjs/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.js.map +1 -1
  106. package/dist/cjs/modules/cms/dataviews/cms-ad-defines/CmsAdDefinesForm.js +2 -0
  107. package/dist/cjs/modules/cms/dataviews/cms-ad-defines/CmsAdDefinesForm.js.map +1 -1
  108. package/dist/cjs/modules/cms/dataviews/cms-articles/CmsArticlesForm.js +3 -1
  109. package/dist/cjs/modules/cms/dataviews/cms-articles/CmsArticlesForm.js.map +1 -1
  110. package/dist/cjs/modules/cms/dataviews/cms-articles/cms-article-atlas/CmsArticleAtlasForm.js +3 -1
  111. package/dist/cjs/modules/cms/dataviews/cms-articles/cms-article-atlas/CmsArticleAtlasForm.js.map +1 -1
  112. package/dist/cjs/modules/cms/pages/cms-ad/index.vue2.js +11 -6
  113. package/dist/cjs/modules/cms/pages/cms-ad/index.vue2.js.map +1 -1
  114. package/dist/cjs/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js +2 -0
  115. package/dist/cjs/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js.map +1 -1
  116. package/dist/cjs/modules/cms/pages/cms-contents/components/article-atlas.vue.js +2 -0
  117. package/dist/cjs/modules/cms/pages/cms-contents/components/article-atlas.vue.js.map +1 -1
  118. package/dist/cjs/modules/cms/pages/cms-contents/components/article-list.vue.js +3 -1
  119. package/dist/cjs/modules/cms/pages/cms-contents/components/article-list.vue.js.map +1 -1
  120. package/dist/cjs/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js +43 -12
  121. package/dist/cjs/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js.map +1 -1
  122. package/dist/cjs/modules/cms/pages/cms-contents/components/part-info.vue.js +2 -0
  123. package/dist/cjs/modules/cms/pages/cms-contents/components/part-info.vue.js.map +1 -1
  124. package/dist/cjs/modules/cms/pages/cms-contents/index.vue2.js +2 -0
  125. package/dist/cjs/modules/cms/pages/cms-contents/index.vue2.js.map +1 -1
  126. package/dist/cjs/modules/cms/pages/cms-resource/index.vue2.js +2 -0
  127. package/dist/cjs/modules/cms/pages/cms-resource/index.vue2.js.map +1 -1
  128. package/dist/cjs/modules/ms/components/image-select/image-select-panel.js +7 -1
  129. package/dist/cjs/modules/ms/components/image-select/image-select-panel.js.map +1 -1
  130. package/dist/cjs/modules/ms/components/material-list/material-list-options.js +2 -0
  131. package/dist/cjs/modules/ms/components/material-list/material-list-options.js.map +1 -1
  132. package/dist/cjs/modules/ms/components/material-list/material-list.js +2 -0
  133. package/dist/cjs/modules/ms/components/material-list/material-list.js.map +1 -1
  134. package/dist/cjs/modules/ms/components/material-select/material-select-api.js +2 -0
  135. package/dist/cjs/modules/ms/components/material-select/material-select-api.js.map +1 -1
  136. package/dist/cjs/modules/ms/dataviews/ms-member/MsMemberTable.js +2 -0
  137. package/dist/cjs/modules/ms/dataviews/ms-member/MsMemberTable.js.map +1 -1
  138. package/dist/cjs/modules/ms/dataviews/ms-member/components/MemberRolesColumn.js +2 -0
  139. package/dist/cjs/modules/ms/dataviews/ms-member/components/MemberRolesColumn.js.map +1 -1
  140. package/dist/cjs/modules/ms/image-upload-context/index.js +2 -0
  141. package/dist/cjs/modules/ms/image-upload-context/index.js.map +1 -1
  142. package/dist/cjs/modules/ms/index.js +4 -2
  143. package/dist/cjs/modules/ms/index.js.map +1 -1
  144. package/dist/cjs/modules/ms/material-upload-context/MaterialUploadContext.js +17 -3
  145. package/dist/cjs/modules/ms/material-upload-context/MaterialUploadContext.js.map +1 -1
  146. package/dist/cjs/modules/ms/material-upload-context/material-upload-context.js +2 -0
  147. package/dist/cjs/modules/ms/material-upload-context/material-upload-context.js.map +1 -1
  148. package/dist/cjs/modules/ms/pages/icons/index.vue2.js +2 -0
  149. package/dist/cjs/modules/ms/pages/icons/index.vue2.js.map +1 -1
  150. package/dist/cjs/modules/ms/pages/local-log/index.vue2.js +2 -0
  151. package/dist/cjs/modules/ms/pages/local-log/index.vue2.js.map +1 -1
  152. package/dist/cjs/modules/ms/pages/ms-material/index.vue2.js +3 -0
  153. package/dist/cjs/modules/ms/pages/ms-material/index.vue2.js.map +1 -1
  154. package/dist/cjs/modules/ms/pages/ms-menu/index.vue2.js +2 -0
  155. package/dist/cjs/modules/ms/pages/ms-menu/index.vue2.js.map +1 -1
  156. package/dist/cjs/modules/ms/pages/ms-role/components/aside.vue.js +2 -0
  157. package/dist/cjs/modules/ms/pages/ms-role/components/aside.vue.js.map +1 -1
  158. package/dist/cjs/modules/ms/pages/ms-role/components/role-permission-config/role-permission-config-options.js +2 -0
  159. package/dist/cjs/modules/ms/pages/ms-role/components/role-permission-config/role-permission-config-options.js.map +1 -1
  160. package/dist/cjs/modules/ms/pages/ms-role/index.vue2.js +2 -0
  161. package/dist/cjs/modules/ms/pages/ms-role/index.vue2.js.map +1 -1
  162. package/dist/cjs/page/index/dv/default/edit.vue2.js +2 -0
  163. package/dist/cjs/page/index/dv/default/edit.vue2.js.map +1 -1
  164. package/dist/cjs/page/index/dv/default/single/list/dialog.vue2.js +2 -0
  165. package/dist/cjs/page/index/dv/default/single/list/dialog.vue2.js.map +1 -1
  166. package/dist/cjs/page/index/dv/default/single/list/normal.vue2.js +2 -0
  167. package/dist/cjs/page/index/dv/default/single/list/normal.vue2.js.map +1 -1
  168. package/dist/cjs/page/index/dv/default/single/table-tree/dialog.vue2.js +2 -0
  169. package/dist/cjs/page/index/dv/default/single/table-tree/dialog.vue2.js.map +1 -1
  170. package/dist/cjs/page/index/dv/default/single/table-tree/normal.vue2.js +2 -0
  171. package/dist/cjs/page/index/dv/default/single/table-tree/normal.vue2.js.map +1 -1
  172. package/dist/cjs/page/index/dv/default/single/tree/dialog.vue2.js +2 -0
  173. package/dist/cjs/page/index/dv/default/single/tree/dialog.vue2.js.map +1 -1
  174. package/dist/cjs/page/index/dv/default/table.vue2.js +2 -0
  175. package/dist/cjs/page/index/dv/default/table.vue2.js.map +1 -1
  176. package/dist/cjs/page/login/index.vue2.js +2 -0
  177. package/dist/cjs/page/login/index.vue2.js.map +1 -1
  178. package/dist/cjs/page/signup/index.vue2.js +2 -0
  179. package/dist/cjs/page/signup/index.vue2.js.map +1 -1
  180. package/dist/esm/assets/iconfonts/iconfont.js +1 -1
  181. package/dist/esm/assets/iconfonts/iconfont.js.map +1 -1
  182. package/dist/esm/components/basic/doc-editor/core/{element-module.js → element-block.js} +32 -13
  183. package/dist/esm/components/basic/doc-editor/core/element-block.js.map +1 -0
  184. package/dist/esm/components/basic/doc-editor/core/index.js +13 -7
  185. package/dist/esm/components/basic/doc-editor/core/index.js.map +1 -1
  186. package/dist/esm/components/basic/doc-editor/core/utils.js.map +1 -1
  187. package/dist/esm/components/basic/doc-editor/editor.vue.js +12 -5
  188. package/dist/esm/components/basic/doc-editor/editor.vue.js.map +1 -1
  189. package/dist/esm/components/basic/doc-editor/index.js.map +1 -1
  190. package/dist/esm/components/basic/doc-editor/plugins/{DecoratorModuleToolbarPlugin → ElementBlockSelectionPlugin}/index.vue.js +8 -8
  191. package/dist/esm/components/basic/doc-editor/plugins/ElementBlockSelectionPlugin/index.vue.js.map +1 -0
  192. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/GridNode.js +164 -0
  193. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/GridNode.js.map +1 -0
  194. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.js +89 -0
  195. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.js.map +1 -0
  196. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.js +89 -0
  197. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.js.map +1 -0
  198. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.js +115 -0
  199. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.js.map +1 -0
  200. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.js +83 -0
  201. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.js.map +1 -0
  202. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/index.vue.js +144 -0
  203. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/index.vue.js.map +1 -0
  204. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/utils.js +33 -0
  205. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/utils.js.map +1 -0
  206. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.js +18 -24
  207. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.js.map +1 -1
  208. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js +18 -14
  209. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js.map +1 -1
  210. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/utils.js +66 -39
  211. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/utils.js.map +1 -1
  212. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/ModuleBlockNode.js +45 -30
  213. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/ModuleBlockNode.js.map +1 -1
  214. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/composables.js +2 -2
  215. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/composables.js.map +1 -1
  216. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/index.vue.js +49 -112
  217. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/index.vue.js.map +1 -1
  218. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/utils.js +3 -14
  219. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/utils.js.map +1 -1
  220. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/ContentStyleTool.vue.js +10 -1
  221. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/ContentStyleTool.vue.js.map +1 -1
  222. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/FontStyleTool.vue.js +26 -0
  223. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/FontStyleTool.vue.js.map +1 -1
  224. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js +49 -35
  225. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js.map +1 -1
  226. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/index.vue.js +44 -9
  227. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/index.vue.js.map +1 -1
  228. package/dist/esm/components/basic/doc-editor/plugins/nodes.js +10 -4
  229. package/dist/esm/components/basic/doc-editor/plugins/nodes.js.map +1 -1
  230. package/dist/esm/components/basic/doc-editor/themes/doc-editor-edit.css.js +1 -1
  231. package/dist/esm/components/basic/doc-editor/themes/doc-editor-edit.css.js.map +1 -1
  232. package/dist/esm/components/basic/doc-editor/themes/doc-theme.css.js +8 -13
  233. package/dist/esm/components/basic/doc-editor/themes/doc-theme.css.js.map +1 -1
  234. package/dist/esm/components/basic/upload-file/context/UploadContext.js.map +1 -1
  235. package/dist/esm/components/basic/upload-file/index.js +10 -0
  236. package/dist/esm/components/basic/upload-file/index.js.map +1 -1
  237. package/dist/esm/components/basic/upload-file/ui/upload-file/index.js +11 -0
  238. package/dist/esm/components/basic/upload-file/ui/upload-file/index.js.map +1 -0
  239. package/dist/esm/components/basic/upload-file/ui/upload-file/upload-file-options.js +38 -0
  240. package/dist/esm/components/basic/upload-file/ui/upload-file/upload-file-options.js.map +1 -0
  241. package/dist/esm/components/basic/upload-file/ui/upload-file/upload-file.js +225 -0
  242. package/dist/esm/components/basic/upload-file/ui/upload-file/upload-file.js.map +1 -0
  243. package/dist/esm/components/basic/upload-file/ui/upload-image/upload-image.js +2 -2
  244. package/dist/esm/components/basic/upload-file/ui/upload-image/upload-image.js.map +1 -1
  245. package/dist/esm/components/basic/upload-file/ui/upload-video/index.js +11 -0
  246. package/dist/esm/components/basic/upload-file/ui/upload-video/index.js.map +1 -0
  247. package/dist/esm/components/basic/upload-file/ui/upload-video/upload-video-options.js +38 -0
  248. package/dist/esm/components/basic/upload-file/ui/upload-video/upload-video-options.js.map +1 -0
  249. package/dist/esm/components/basic/upload-file/ui/upload-video/upload-video.js +223 -0
  250. package/dist/esm/components/basic/upload-file/ui/upload-video/upload-video.js.map +1 -0
  251. package/dist/esm/components/basic/upload-file/upload-file-options.js +2 -1
  252. package/dist/esm/components/basic/upload-file/upload-file-options.js.map +1 -1
  253. package/dist/esm/components/basic/upload-file/upload-file.js +1 -0
  254. package/dist/esm/components/basic/upload-file/upload-file.js.map +1 -1
  255. package/dist/esm/components/business/resource-list/components/resource-item/index.vue.js +2 -0
  256. package/dist/esm/components/business/resource-list/components/resource-item/index.vue.js.map +1 -1
  257. package/dist/esm/components/business/resource-manager/resource-manager.vue.js +2 -0
  258. package/dist/esm/components/business/resource-manager/resource-manager.vue.js.map +1 -1
  259. package/dist/esm/components/data-model/data-table/components/column-sort/column-sort.js +2 -0
  260. package/dist/esm/components/data-model/data-table/components/column-sort/column-sort.js.map +1 -1
  261. package/dist/esm/components/data-model/data-table/components/header-components/batch-opt/batch-opt.js +2 -0
  262. package/dist/esm/components/data-model/data-table/components/header-components/batch-opt/batch-opt.js.map +1 -1
  263. package/dist/esm/components/data-model/data-table/components/header-components/table-filter/table-filter.js +2 -0
  264. package/dist/esm/components/data-model/data-table/components/header-components/table-filter/table-filter.js.map +1 -1
  265. package/dist/esm/core/component/DataFormComponents.js +14 -0
  266. package/dist/esm/core/component/DataFormComponents.js.map +1 -1
  267. package/dist/esm/index.js +14 -2
  268. package/dist/esm/index.js.map +1 -1
  269. package/dist/esm/installer.js +3 -0
  270. package/dist/esm/installer.js.map +1 -1
  271. package/dist/esm/layouts/components/bar/index.js +2 -0
  272. package/dist/esm/layouts/components/bar/index.js.map +1 -1
  273. package/dist/esm/layouts/components/header/tools.js +2 -0
  274. package/dist/esm/layouts/components/header/tools.js.map +1 -1
  275. package/dist/esm/layouts/components/menu/menu-item.js +2 -0
  276. package/dist/esm/layouts/components/menu/menu-item.js.map +1 -1
  277. package/dist/esm/layouts/container/default.js +2 -0
  278. package/dist/esm/layouts/container/default.js.map +1 -1
  279. package/dist/esm/message-impl/DialogerImpl.js +2 -0
  280. package/dist/esm/message-impl/DialogerImpl.js.map +1 -1
  281. package/dist/esm/modules/cms/components/part-tree/index.vue.js +2 -0
  282. package/dist/esm/modules/cms/components/part-tree/index.vue.js.map +1 -1
  283. package/dist/esm/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.js +15 -7
  284. package/dist/esm/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.js.map +1 -1
  285. package/dist/esm/modules/cms/dataviews/cms-ad-defines/CmsAdDefinesForm.js +2 -0
  286. package/dist/esm/modules/cms/dataviews/cms-ad-defines/CmsAdDefinesForm.js.map +1 -1
  287. package/dist/esm/modules/cms/dataviews/cms-articles/CmsArticlesForm.js +3 -1
  288. package/dist/esm/modules/cms/dataviews/cms-articles/CmsArticlesForm.js.map +1 -1
  289. package/dist/esm/modules/cms/dataviews/cms-articles/cms-article-atlas/CmsArticleAtlasForm.js +3 -1
  290. package/dist/esm/modules/cms/dataviews/cms-articles/cms-article-atlas/CmsArticleAtlasForm.js.map +1 -1
  291. package/dist/esm/modules/cms/pages/cms-ad/index.vue2.js +12 -7
  292. package/dist/esm/modules/cms/pages/cms-ad/index.vue2.js.map +1 -1
  293. package/dist/esm/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js +2 -0
  294. package/dist/esm/modules/cms/pages/cms-contents/article-edit-add-page.vue2.js.map +1 -1
  295. package/dist/esm/modules/cms/pages/cms-contents/components/article-atlas.vue.js +2 -0
  296. package/dist/esm/modules/cms/pages/cms-contents/components/article-atlas.vue.js.map +1 -1
  297. package/dist/esm/modules/cms/pages/cms-contents/components/article-list.vue.js +3 -1
  298. package/dist/esm/modules/cms/pages/cms-contents/components/article-list.vue.js.map +1 -1
  299. package/dist/esm/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js +43 -12
  300. package/dist/esm/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js.map +1 -1
  301. package/dist/esm/modules/cms/pages/cms-contents/components/part-info.vue.js +2 -0
  302. package/dist/esm/modules/cms/pages/cms-contents/components/part-info.vue.js.map +1 -1
  303. package/dist/esm/modules/cms/pages/cms-contents/index.vue2.js +2 -0
  304. package/dist/esm/modules/cms/pages/cms-contents/index.vue2.js.map +1 -1
  305. package/dist/esm/modules/cms/pages/cms-resource/index.vue2.js +2 -0
  306. package/dist/esm/modules/cms/pages/cms-resource/index.vue2.js.map +1 -1
  307. package/dist/esm/modules/ms/components/image-select/image-select-panel.js +9 -3
  308. package/dist/esm/modules/ms/components/image-select/image-select-panel.js.map +1 -1
  309. package/dist/esm/modules/ms/components/material-list/material-list-options.js +2 -0
  310. package/dist/esm/modules/ms/components/material-list/material-list-options.js.map +1 -1
  311. package/dist/esm/modules/ms/components/material-list/material-list.js +2 -0
  312. package/dist/esm/modules/ms/components/material-list/material-list.js.map +1 -1
  313. package/dist/esm/modules/ms/components/material-select/material-select-api.js +2 -0
  314. package/dist/esm/modules/ms/components/material-select/material-select-api.js.map +1 -1
  315. package/dist/esm/modules/ms/dataviews/ms-member/MsMemberTable.js +2 -0
  316. package/dist/esm/modules/ms/dataviews/ms-member/MsMemberTable.js.map +1 -1
  317. package/dist/esm/modules/ms/dataviews/ms-member/components/MemberRolesColumn.js +2 -0
  318. package/dist/esm/modules/ms/dataviews/ms-member/components/MemberRolesColumn.js.map +1 -1
  319. package/dist/esm/modules/ms/image-upload-context/index.js +2 -0
  320. package/dist/esm/modules/ms/image-upload-context/index.js.map +1 -1
  321. package/dist/esm/modules/ms/index.js +4 -2
  322. package/dist/esm/modules/ms/index.js.map +1 -1
  323. package/dist/esm/modules/ms/material-upload-context/MaterialUploadContext.js +17 -3
  324. package/dist/esm/modules/ms/material-upload-context/MaterialUploadContext.js.map +1 -1
  325. package/dist/esm/modules/ms/material-upload-context/material-upload-context.js +2 -0
  326. package/dist/esm/modules/ms/material-upload-context/material-upload-context.js.map +1 -1
  327. package/dist/esm/modules/ms/pages/icons/index.vue2.js +2 -0
  328. package/dist/esm/modules/ms/pages/icons/index.vue2.js.map +1 -1
  329. package/dist/esm/modules/ms/pages/local-log/index.vue2.js +2 -0
  330. package/dist/esm/modules/ms/pages/local-log/index.vue2.js.map +1 -1
  331. package/dist/esm/modules/ms/pages/ms-material/index.vue2.js +3 -0
  332. package/dist/esm/modules/ms/pages/ms-material/index.vue2.js.map +1 -1
  333. package/dist/esm/modules/ms/pages/ms-menu/index.vue2.js +2 -0
  334. package/dist/esm/modules/ms/pages/ms-menu/index.vue2.js.map +1 -1
  335. package/dist/esm/modules/ms/pages/ms-role/components/aside.vue.js +2 -0
  336. package/dist/esm/modules/ms/pages/ms-role/components/aside.vue.js.map +1 -1
  337. package/dist/esm/modules/ms/pages/ms-role/components/role-permission-config/role-permission-config-options.js +2 -0
  338. package/dist/esm/modules/ms/pages/ms-role/components/role-permission-config/role-permission-config-options.js.map +1 -1
  339. package/dist/esm/modules/ms/pages/ms-role/index.vue2.js +2 -0
  340. package/dist/esm/modules/ms/pages/ms-role/index.vue2.js.map +1 -1
  341. package/dist/esm/page/index/dv/default/edit.vue2.js +2 -0
  342. package/dist/esm/page/index/dv/default/edit.vue2.js.map +1 -1
  343. package/dist/esm/page/index/dv/default/single/list/dialog.vue2.js +2 -0
  344. package/dist/esm/page/index/dv/default/single/list/dialog.vue2.js.map +1 -1
  345. package/dist/esm/page/index/dv/default/single/list/normal.vue2.js +2 -0
  346. package/dist/esm/page/index/dv/default/single/list/normal.vue2.js.map +1 -1
  347. package/dist/esm/page/index/dv/default/single/table-tree/dialog.vue2.js +2 -0
  348. package/dist/esm/page/index/dv/default/single/table-tree/dialog.vue2.js.map +1 -1
  349. package/dist/esm/page/index/dv/default/single/table-tree/normal.vue2.js +2 -0
  350. package/dist/esm/page/index/dv/default/single/table-tree/normal.vue2.js.map +1 -1
  351. package/dist/esm/page/index/dv/default/single/tree/dialog.vue2.js +2 -0
  352. package/dist/esm/page/index/dv/default/single/tree/dialog.vue2.js.map +1 -1
  353. package/dist/esm/page/index/dv/default/table.vue2.js +2 -0
  354. package/dist/esm/page/index/dv/default/table.vue2.js.map +1 -1
  355. package/dist/esm/page/login/index.vue2.js +2 -0
  356. package/dist/esm/page/login/index.vue2.js.map +1 -1
  357. package/dist/esm/page/signup/index.vue2.js +2 -0
  358. package/dist/esm/page/signup/index.vue2.js.map +1 -1
  359. package/dist/style/components/basic/doc-editor/index.css +1 -1
  360. package/dist/style/components/index.css +2 -2
  361. package/dist/style/components/upload-file-ui.css +1 -0
  362. package/dist/style/components/upload-image.css +1 -1
  363. package/dist/style/components/upload-video-ui.css +1 -0
  364. package/dist/style/index.css +3 -3
  365. package/dist/style/src/components/basic/doc-editor/index.scss +7 -3
  366. package/dist/style/src/components/index.scss +2 -0
  367. package/dist/style/src/components/upload-file-ui.scss +89 -0
  368. package/dist/style/src/components/upload-image.scss +3 -2
  369. package/dist/style/src/components/upload-video-ui.scss +139 -0
  370. package/dist/style/src/index.scss +4 -0
  371. package/dist/types/components/basic/doc-editor/core/element-block.d.ts +44 -0
  372. package/dist/types/components/basic/doc-editor/core/index.d.ts +23 -4
  373. package/dist/types/components/basic/doc-editor/index.d.ts +2 -2
  374. package/dist/types/components/basic/doc-editor/plugins/GridPlugin/GridNode.d.ts +88 -0
  375. package/dist/types/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.d.ts +50 -0
  376. package/dist/types/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.d.ts +58 -0
  377. package/dist/types/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.d.ts +58 -0
  378. package/dist/types/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.d.ts +51 -0
  379. package/dist/types/components/basic/doc-editor/plugins/GridPlugin/index.d.ts +5 -0
  380. package/dist/types/components/basic/doc-editor/plugins/GridPlugin/utils.d.ts +3 -0
  381. package/dist/types/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.d.ts +4 -13
  382. package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/ModuleBlockNode.d.ts +24 -10
  383. package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/composables.d.ts +2 -1
  384. package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/index.d.ts +0 -1
  385. package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/utils.d.ts +0 -6
  386. package/dist/types/components/basic/doc-editor/plugins/index.d.ts +3 -3
  387. package/dist/types/components/basic/dynamic-form-panel/type.d.ts +2 -2
  388. package/dist/types/components/basic/upload-file/context/UploadContext.d.ts +1 -0
  389. package/dist/types/components/basic/upload-file/ui/index.d.ts +2 -0
  390. package/dist/types/components/basic/upload-file/ui/upload-file/index.d.ts +67 -0
  391. package/dist/types/components/basic/upload-file/ui/upload-file/upload-file-options.d.ts +35 -0
  392. package/dist/types/components/basic/upload-file/ui/upload-file/upload-file.d.ts +67 -0
  393. package/dist/types/components/basic/upload-file/ui/upload-video/index.d.ts +67 -0
  394. package/dist/types/components/basic/upload-file/ui/upload-video/upload-video-options.d.ts +35 -0
  395. package/dist/types/components/basic/upload-file/ui/upload-video/upload-video.d.ts +67 -0
  396. package/dist/types/components/basic/upload-file/upload-file-options.d.ts +1 -0
  397. package/dist/types/components/basic/upload-file/upload-file.d.ts +2 -0
  398. package/dist/types/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.d.ts +5 -1
  399. package/dist/types/modules/ms/components/index.d.ts +1 -0
  400. package/package.json +4 -4
  401. package/dist/cjs/components/basic/doc-editor/core/decorator-module.js +0 -13
  402. package/dist/cjs/components/basic/doc-editor/core/decorator-module.js.map +0 -1
  403. package/dist/cjs/components/basic/doc-editor/core/element-module.js.map +0 -1
  404. package/dist/cjs/components/basic/doc-editor/plugins/DecoratorModuleToolbarPlugin/index.vue.js.map +0 -1
  405. package/dist/cjs/components/basic/doc-editor/plugins/ImageTextPlugin/ImageTextNode.js +0 -106
  406. package/dist/cjs/components/basic/doc-editor/plugins/ImageTextPlugin/ImageTextNode.js.map +0 -1
  407. package/dist/cjs/components/basic/doc-editor/plugins/ImageTextPlugin/index.vue.js +0 -45
  408. package/dist/cjs/components/basic/doc-editor/plugins/ImageTextPlugin/index.vue.js.map +0 -1
  409. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/ModuleContainerNode.js +0 -128
  410. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/ModuleContainerNode.js.map +0 -1
  411. package/dist/cjs/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockCantainerNode.js +0 -123
  412. package/dist/cjs/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockCantainerNode.js.map +0 -1
  413. package/dist/cjs/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockNode.js +0 -84
  414. package/dist/cjs/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockNode.js.map +0 -1
  415. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/defines.js +0 -11
  416. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/defines.js.map +0 -1
  417. package/dist/esm/components/basic/doc-editor/core/decorator-module.js +0 -13
  418. package/dist/esm/components/basic/doc-editor/core/decorator-module.js.map +0 -1
  419. package/dist/esm/components/basic/doc-editor/core/element-module.js.map +0 -1
  420. package/dist/esm/components/basic/doc-editor/plugins/DecoratorModuleToolbarPlugin/index.vue.js.map +0 -1
  421. package/dist/esm/components/basic/doc-editor/plugins/ImageTextPlugin/ImageTextNode.js +0 -106
  422. package/dist/esm/components/basic/doc-editor/plugins/ImageTextPlugin/ImageTextNode.js.map +0 -1
  423. package/dist/esm/components/basic/doc-editor/plugins/ImageTextPlugin/index.vue.js +0 -46
  424. package/dist/esm/components/basic/doc-editor/plugins/ImageTextPlugin/index.vue.js.map +0 -1
  425. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/ModuleContainerNode.js +0 -128
  426. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/ModuleContainerNode.js.map +0 -1
  427. package/dist/esm/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockCantainerNode.js +0 -123
  428. package/dist/esm/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockCantainerNode.js.map +0 -1
  429. package/dist/esm/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockNode.js +0 -84
  430. package/dist/esm/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockNode.js.map +0 -1
  431. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/defines.js +0 -11
  432. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/defines.js.map +0 -1
  433. package/dist/types/components/basic/doc-editor/core/decorator-module.d.ts +0 -60
  434. package/dist/types/components/basic/doc-editor/core/element-module.d.ts +0 -15
  435. package/dist/types/components/basic/doc-editor/plugins/ImageTextPlugin/ImageTextNode.d.ts +0 -63
  436. package/dist/types/components/basic/doc-editor/plugins/ImageTextPlugin/index.d.ts +0 -1
  437. package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/ModuleContainerNode.d.ts +0 -78
  438. package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/ModuleRenderComponent.d.ts +0 -23
  439. package/dist/types/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockCantainerNode.d.ts +0 -63
  440. package/dist/types/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockNode.d.ts +0 -58
  441. package/dist/types/components/basic/doc-editor/plugins/ToolbarPlugin/defines.d.ts +0 -15
  442. /package/dist/cjs/components/basic/doc-editor/plugins/{DecoratorModuleToolbarPlugin → ElementBlockSelectionPlugin}/index.vue2.js +0 -0
  443. /package/dist/cjs/components/basic/doc-editor/plugins/{DecoratorModuleToolbarPlugin → ElementBlockSelectionPlugin}/index.vue2.js.map +0 -0
  444. /package/dist/cjs/components/basic/doc-editor/plugins/{ImageTextPlugin → GridPlugin}/index.vue2.js +0 -0
  445. /package/dist/cjs/components/basic/doc-editor/plugins/{ImageTextPlugin → GridPlugin}/index.vue2.js.map +0 -0
  446. /package/dist/esm/components/basic/doc-editor/plugins/{DecoratorModuleToolbarPlugin → ElementBlockSelectionPlugin}/index.vue2.js +0 -0
  447. /package/dist/esm/components/basic/doc-editor/plugins/{DecoratorModuleToolbarPlugin → ElementBlockSelectionPlugin}/index.vue2.js.map +0 -0
  448. /package/dist/esm/components/basic/doc-editor/plugins/{ImageTextPlugin → GridPlugin}/index.vue2.js +0 -0
  449. /package/dist/esm/components/basic/doc-editor/plugins/{ImageTextPlugin → GridPlugin}/index.vue2.js.map +0 -0
  450. /package/dist/types/components/basic/doc-editor/plugins/{DecoratorModuleToolbarPlugin → ElementBlockSelectionPlugin}/index.vue.d.ts +0 -0
  451. /package/dist/types/components/basic/doc-editor/plugins/{ImageTextPlugin → GridPlugin}/index.vue.d.ts +0 -0
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const lexical = require("lexical");
4
+ const GridNode = require("./GridNode.js");
5
+ const INSERT_MODULEGRID_COMMAND = lexical.createCommand("INSERT_MODULEGRID_COMMAND");
6
+ class ModuleGridNode extends GridNode.GridNode {
7
+ static getType() {
8
+ return "module-grid";
9
+ }
10
+ static hasGridNodeByElement(el) {
11
+ return el.classList.contains(ModuleGridNode.getMarkClassName()) ? el : null;
12
+ }
13
+ static getMarkClassName() {
14
+ return `mk-doc__${ModuleGridNode.getType()}`;
15
+ }
16
+ static getExtraClassName(el) {
17
+ return GridNode.GridNode.getExtraClassName(el).replace(ModuleGridNode.getMarkClassName(), "").trim();
18
+ }
19
+ static clone(node) {
20
+ return new ModuleGridNode(node.__attrs, node.__key);
21
+ }
22
+ static importJSON(serializedNode) {
23
+ return new ModuleGridNode(serializedNode.attrs);
24
+ }
25
+ static importDOM() {
26
+ return {
27
+ div: (domNode) => {
28
+ return ModuleGridNode.hasGridNodeByElement(domNode) ? {
29
+ conversion: () => {
30
+ return {
31
+ node: new ModuleGridNode({
32
+ class: ModuleGridNode.getExtraClassName(domNode),
33
+ width: domNode.style.width || "100%",
34
+ height: domNode.style.height,
35
+ flex: domNode.style.flex,
36
+ maxWidth: domNode.style.maxWidth,
37
+ maxHeight: domNode.style.maxHeight,
38
+ overflowX: domNode.style.overflowX == "auto"
39
+ })
40
+ };
41
+ },
42
+ priority: 4
43
+ } : null;
44
+ }
45
+ };
46
+ }
47
+ constructor(attrs, key) {
48
+ super(attrs, key);
49
+ }
50
+ /**
51
+ * 设置属性
52
+ * @param pos
53
+ */
54
+ setAttrs(data) {
55
+ const writable = this.getWritable();
56
+ Object.assign(writable.__attrs, data);
57
+ }
58
+ /**
59
+ * 获取属性
60
+ * @param pos
61
+ */
62
+ getAttrs() {
63
+ return this.__attrs;
64
+ }
65
+ /**
66
+ * 导出JSON
67
+ * @returns
68
+ */
69
+ exportJSON() {
70
+ return {
71
+ ...super.exportJSON(),
72
+ type: this.getType(),
73
+ attrs: this.__attrs,
74
+ version: 1
75
+ };
76
+ }
77
+ /**
78
+ * 更新元素属性
79
+ * @param el
80
+ */
81
+ updateElementAttr(el) {
82
+ super.updateElementAttr(el);
83
+ Object.keys(this.__attrs).forEach((key) => {
84
+ if (["class", "overflowX"].indexOf(key) < 0) {
85
+ el.style[key] = this.__attrs[key];
86
+ }
87
+ });
88
+ if (this.__attrs.overflowX) {
89
+ el.style.overflowX = "auto";
90
+ } else {
91
+ el.style.overflowX = "";
92
+ }
93
+ }
94
+ // /**
95
+ // * 非内联
96
+ // * @returns
97
+ // */
98
+ // isInline(): boolean {
99
+ // return false;
100
+ // }
101
+ // /**
102
+ // * 定义为影子根
103
+ // * @returns
104
+ // */
105
+ // isShadowRoot(): boolean {
106
+ // return true;
107
+ // }
108
+ }
109
+ function $isModuleGridNode(node) {
110
+ return node instanceof ModuleGridNode;
111
+ }
112
+ exports.$isModuleGridNode = $isModuleGridNode;
113
+ exports.INSERT_MODULEGRID_COMMAND = INSERT_MODULEGRID_COMMAND;
114
+ exports.ModuleGridNode = ModuleGridNode;
115
+ //# sourceMappingURL=ModuleGridNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModuleGridNode.js","sources":["../../../../../../../src/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.ts"],"sourcesContent":["import { type DOMConversionMap,type NodeKey, type Spread, type DOMExportOutput, type LexicalCommand, createCommand, LexicalNode } from 'lexical'\r\nimport { type GridNodeAttrType , GridNode,SerializedGridNode } from \"./GridNode\"\r\n\r\n/**\r\n * 属性\r\n */\r\nexport type ModuleGridNodeAttrType = GridNodeAttrType & {\r\n overflowX:boolean\r\n};\r\n\r\n\r\n/**\r\n * 插入模块格子\r\n */\r\nexport const INSERT_MODULEGRID_COMMAND: LexicalCommand<ModuleGridNodeAttrType> = createCommand('INSERT_MODULEGRID_COMMAND')\r\n\r\n\r\n/**\r\n * 节点序列化 \r\n */\r\nexport type SerializedModuleGridNode = Spread<{ attrs:ModuleGridNodeAttrType },SerializedGridNode>\r\n\r\n/**\r\n * 模块格子\r\n */\r\nexport class ModuleGridNode extends GridNode{\r\n\r\n declare __attrs:ModuleGridNodeAttrType\r\n\r\n static getType(): string { return \"module-grid\"; }\r\n\r\n static hasGridNodeByElement(el:HTMLElement):HTMLElement|null{\r\n return el.classList.contains(ModuleGridNode.getMarkClassName()) ? el : null;\r\n }\r\n \r\n static getMarkClassName(): string {\r\n return `mk-doc__${ModuleGridNode.getType()}`\r\n }\r\n static getExtraClassName(el:HTMLElement){\r\n return GridNode.getExtraClassName(el).replace(ModuleGridNode.getMarkClassName(),\"\").trim();\r\n }\r\n static clone(node: ModuleGridNode): ModuleGridNode {\r\n return new ModuleGridNode(node.__attrs,node.__key)\r\n }\r\n\r\n static importJSON(serializedNode: SerializedModuleGridNode): ModuleGridNode {\r\n return new ModuleGridNode(serializedNode.attrs)\r\n }\r\n\r\n static importDOM(): DOMConversionMap | null {\r\n return {\r\n div : (domNode: HTMLElement) => {\r\n\r\n return ModuleGridNode.hasGridNodeByElement(domNode) ? {\r\n\r\n conversion: ()=>{ \r\n\r\n return { \r\n node:new ModuleGridNode({\r\n class:ModuleGridNode.getExtraClassName(domNode),\r\n width:domNode.style.width || \"100%\",\r\n height:domNode.style.height,\r\n flex:domNode.style.flex,\r\n maxWidth:domNode.style.maxWidth,\r\n maxHeight:domNode.style.maxHeight,\r\n overflowX:domNode.style.overflowX == \"auto\"\r\n } as ModuleGridNodeAttrType) \r\n };\r\n },\r\n priority: 4\r\n } : null;\r\n }\r\n }\r\n }\r\n\r\n constructor(attrs:ModuleGridNodeAttrType,key?: NodeKey) {\r\n super(attrs,key)\r\n }\r\n\r\n /**\r\n * 设置属性\r\n * @param pos \r\n */\r\n setAttrs(data?:ModuleGridNodeAttrType){\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():ModuleGridNodeAttrType{\r\n return this.__attrs;\r\n }\r\n /**\r\n * 导出JSON\r\n * @returns \r\n */\r\n exportJSON(): SerializedGridNode {\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 * 更新元素属性\r\n * @param el \r\n */\r\n updateElementAttr(el:HTMLElement){\r\n super.updateElementAttr(el);\r\n // 更新属性\r\n Object.keys(this.__attrs).forEach((key:any)=>{\r\n if([\"class\",\"overflowX\"].indexOf(key) < 0){\r\n el.style[key] = (this.__attrs as any)[key];\r\n }\r\n })\r\n if(this.__attrs.overflowX){\r\n el.style.overflowX = \"auto\";\r\n }\r\n else{\r\n el.style.overflowX = \"\";\r\n }\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/**\r\n * 是否是模块格子\r\n * @param node \r\n * @returns \r\n */\r\nexport function $isModuleGridNode(\r\n node: ModuleGridNode | LexicalNode | null | undefined,\r\n): node is ModuleGridNode {\r\n return node instanceof ModuleGridNode\r\n}\r\n"],"names":["createCommand","GridNode"],"mappings":";;;;AAca,MAAA,4BAAoEA,sBAAc,2BAA2B;AAWnH,MAAM,uBAAuBC,SAAAA,SAAQ;AAAA,EAI1C,OAAO,UAAkB;AAAS,WAAA;AAAA,EAAe;AAAA,EAEjD,OAAO,qBAAqB,IAAgC;AAC1D,WAAO,GAAG,UAAU,SAAS,eAAe,kBAAkB,IAAI,KAAK;AAAA,EACzE;AAAA,EAEA,OAAO,mBAA2B;AACzB,WAAA,WAAW,eAAe,QAAA,CAAS;AAAA,EAC5C;AAAA,EACA,OAAO,kBAAkB,IAAe;AAC/B,WAAAA,kBAAS,kBAAkB,EAAE,EAAE,QAAQ,eAAe,oBAAmB,EAAE,EAAE;EACtF;AAAA,EACA,OAAO,MAAM,MAAsC;AACjD,WAAO,IAAI,eAAe,KAAK,SAAQ,KAAK,KAAK;AAAA,EACnD;AAAA,EAEA,OAAO,WAAW,gBAA0D;AACnE,WAAA,IAAI,eAAe,eAAe,KAAK;AAAA,EAChD;AAAA,EAEA,OAAO,YAAqC;AACnC,WAAA;AAAA,MACL,KAAM,CAAC,YAAyB;AAEtB,eAAA,eAAe,qBAAqB,OAAO,IAAI;AAAA,UAErD,YAAY,MAAI;AAEN,mBAAA;AAAA,cACN,MAAK,IAAI,eAAe;AAAA,gBACtB,OAAM,eAAe,kBAAkB,OAAO;AAAA,gBAC9C,OAAM,QAAQ,MAAM,SAAS;AAAA,gBAC7B,QAAO,QAAQ,MAAM;AAAA,gBACrB,MAAK,QAAQ,MAAM;AAAA,gBACnB,UAAS,QAAQ,MAAM;AAAA,gBACvB,WAAU,QAAQ,MAAM;AAAA,gBACxB,WAAU,QAAQ,MAAM,aAAa;AAAA,cAAA,CACZ;AAAA,YAAA;AAAA,UAE/B;AAAA,UACA,UAAU;AAAA,QACR,IAAA;AAAA,MACN;AAAA,IAAA;AAAA,EAEJ;AAAA,EAEA,YAAY,OAA6B,KAAe;AACtD,UAAM,OAAM,GAAG;AAAA,EACjB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAS,MAA6B;AAC9B,UAAA,WAAW,KAAK;AACf,WAAA,OAAO,SAAS,SAAQ,IAAI;AAAA,EACrC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,WAAiC;AAC/B,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,aAAiC;AACxB,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,kBAAkB,IAAe;AAC/B,UAAM,kBAAkB,EAAE;AAE1B,WAAO,KAAK,KAAK,OAAO,EAAE,QAAQ,CAAC,QAAU;AAC3C,UAAG,CAAC,SAAQ,WAAW,EAAE,QAAQ,GAAG,IAAI,GAAE;AACxC,WAAG,MAAM,GAAG,IAAK,KAAK,QAAgB,GAAG;AAAA,MAC3C;AAAA,IAAA,CACD;AACE,QAAA,KAAK,QAAQ,WAAU;AACxB,SAAG,MAAM,YAAY;AAAA,IAAA,OAEnB;AACF,SAAG,MAAM,YAAY;AAAA,IACvB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkBF;AAOO,SAAS,kBACd,MACwB;AACxB,SAAO,gBAAgB;AACzB;;;;"}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const lexical = require("lexical");
4
+ const GridNode = require("./GridNode.js");
5
+ const INSERT_TEXTGRID_COMMAND = lexical.createCommand("INSERT_TEXTGRID_COMMAND");
6
+ class TextGridNode extends GridNode.GridNode {
7
+ static getType() {
8
+ return "text-grid";
9
+ }
10
+ static hasGridNodeByElement(el) {
11
+ return el.classList.contains(TextGridNode.getMarkClassName()) ? el : null;
12
+ }
13
+ static getMarkClassName() {
14
+ return `mk-doc__${TextGridNode.getType()}`;
15
+ }
16
+ static getExtraClassName(el) {
17
+ return GridNode.GridNode.getExtraClassName(el).replace(TextGridNode.getMarkClassName(), "").trim();
18
+ }
19
+ static clone(node) {
20
+ return new TextGridNode(node.__attrs, node.__key);
21
+ }
22
+ static importJSON(serializedNode) {
23
+ return new TextGridNode(serializedNode.attrs);
24
+ }
25
+ static importDOM() {
26
+ return {
27
+ div: (domNode) => {
28
+ return TextGridNode.hasGridNodeByElement(domNode) ? {
29
+ conversion: () => {
30
+ return {
31
+ node: new TextGridNode({
32
+ class: TextGridNode.getExtraClassName(domNode),
33
+ width: domNode.style.width || "100%",
34
+ height: domNode.style.height,
35
+ flex: domNode.style.flex,
36
+ maxWidth: domNode.style.maxWidth,
37
+ maxHeight: domNode.style.maxHeight
38
+ })
39
+ };
40
+ },
41
+ priority: 4
42
+ } : null;
43
+ }
44
+ };
45
+ }
46
+ constructor(attrs, key) {
47
+ super(attrs, key);
48
+ }
49
+ /**
50
+ * 设置属性
51
+ * @param pos
52
+ */
53
+ setAttrs(data) {
54
+ const writable = this.getWritable();
55
+ Object.assign(writable.__attrs, data);
56
+ }
57
+ /**
58
+ * 获取属性
59
+ * @param pos
60
+ */
61
+ getAttrs() {
62
+ return this.__attrs;
63
+ }
64
+ /**
65
+ * 导出JSON
66
+ * @returns
67
+ */
68
+ exportJSON() {
69
+ return {
70
+ ...super.exportJSON(),
71
+ type: this.getType(),
72
+ attrs: this.__attrs,
73
+ version: 1
74
+ };
75
+ }
76
+ }
77
+ function $isTextGridNode(node) {
78
+ return node instanceof TextGridNode;
79
+ }
80
+ exports.$isTextGridNode = $isTextGridNode;
81
+ exports.INSERT_TEXTGRID_COMMAND = INSERT_TEXTGRID_COMMAND;
82
+ exports.TextGridNode = TextGridNode;
83
+ //# sourceMappingURL=TextGridNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextGridNode.js","sources":["../../../../../../../src/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.ts"],"sourcesContent":["import { type DOMConversionMap, type NodeKey, type Spread, type DOMExportOutput, type LexicalCommand, createCommand, LexicalNode } from 'lexical'\r\nimport { type GridNodeAttrType , GridNode,SerializedGridNode } from \"./GridNode\"\r\n\r\n\r\n/**\r\n * 插入文本格子\r\n */\r\nexport const INSERT_TEXTGRID_COMMAND: LexicalCommand<GridNodeAttrType> = createCommand('INSERT_TEXTGRID_COMMAND')\r\n\r\n/**\r\n * 属性\r\n */\r\nexport type TextGridNodeAttrType = GridNodeAttrType & {};\r\n\r\n/**\r\n * 节点序列化 \r\n */\r\nexport type SerializedTextGridNode= Spread<{ attrs:TextGridNodeAttrType },SerializedGridNode>\r\n\r\n/**\r\n * 布局格子\r\n */\r\nexport class TextGridNode extends GridNode{\r\n\r\n declare __attrs:TextGridNodeAttrType\r\n\r\n static getType(): string { return \"text-grid\"; }\r\n\r\n static hasGridNodeByElement(el:HTMLElement):HTMLElement|null{\r\n return el.classList.contains(TextGridNode.getMarkClassName()) ? el : null;\r\n }\r\n \r\n static getMarkClassName(): string {\r\n return `mk-doc__${TextGridNode.getType()}`\r\n }\r\n static getExtraClassName(el:HTMLElement){\r\n return GridNode.getExtraClassName(el).replace(TextGridNode.getMarkClassName(),\"\").trim();\r\n }\r\n static clone(node: TextGridNode): TextGridNode{\r\n return new TextGridNode(node.__attrs,node.__key)\r\n }\r\n\r\n static importJSON(serializedNode: SerializedTextGridNode): TextGridNode{\r\n return new TextGridNode(serializedNode.attrs)\r\n }\r\n\r\n static importDOM(): DOMConversionMap | null {\r\n return {\r\n div : (domNode: HTMLElement) => {\r\n\r\n return TextGridNode.hasGridNodeByElement(domNode) ? {\r\n\r\n conversion: ()=>{ \r\n\r\n return { \r\n node:new TextGridNode({\r\n class:TextGridNode.getExtraClassName(domNode),\r\n width:domNode.style.width || \"100%\",\r\n height:domNode.style.height,\r\n flex:domNode.style.flex,\r\n maxWidth:domNode.style.maxWidth,\r\n maxHeight:domNode.style.maxHeight\r\n } as TextGridNodeAttrType) \r\n };\r\n },\r\n priority: 4\r\n } : null;\r\n }\r\n }\r\n }\r\n\r\n constructor(attrs:TextGridNodeAttrType,key?: NodeKey) {\r\n super(attrs,key)\r\n }\r\n\r\n /**\r\n * 设置属性\r\n * @param pos \r\n */\r\n setAttrs(data?:TextGridNodeAttrType){\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():TextGridNodeAttrType{\r\n return this.__attrs;\r\n }\r\n /**\r\n * 导出JSON\r\n * @returns \r\n */\r\n exportJSON(): SerializedGridNode {\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/**\r\n * 是否是文本格子\r\n * @param node \r\n * @returns \r\n */\r\nexport function $isTextGridNode(\r\n node: TextGridNode | LexicalNode | null | undefined,\r\n): node is TextGridNode {\r\n return node instanceof TextGridNode\r\n}\r\n"],"names":["createCommand","GridNode"],"mappings":";;;;AAOa,MAAA,0BAA4DA,sBAAc,yBAAyB;AAezG,MAAM,qBAAqBC,SAAAA,SAAQ;AAAA,EAIxC,OAAO,UAAkB;AAAS,WAAA;AAAA,EAAa;AAAA,EAE/C,OAAO,qBAAqB,IAAgC;AAC1D,WAAO,GAAG,UAAU,SAAS,aAAa,kBAAkB,IAAI,KAAK;AAAA,EACvE;AAAA,EAEA,OAAO,mBAA2B;AACzB,WAAA,WAAW,aAAa,QAAA,CAAS;AAAA,EAC1C;AAAA,EACA,OAAO,kBAAkB,IAAe;AAC/B,WAAAA,kBAAS,kBAAkB,EAAE,EAAE,QAAQ,aAAa,oBAAmB,EAAE,EAAE;EACpF;AAAA,EACA,OAAO,MAAM,MAAiC;AAC5C,WAAO,IAAI,aAAa,KAAK,SAAQ,KAAK,KAAK;AAAA,EACjD;AAAA,EAEA,OAAO,WAAW,gBAAqD;AAC9D,WAAA,IAAI,aAAa,eAAe,KAAK;AAAA,EAC9C;AAAA,EAEA,OAAO,YAAqC;AACnC,WAAA;AAAA,MACL,KAAM,CAAC,YAAyB;AAEtB,eAAA,aAAa,qBAAqB,OAAO,IAAI;AAAA,UAEnD,YAAY,MAAI;AAEN,mBAAA;AAAA,cACN,MAAK,IAAI,aAAa;AAAA,gBACpB,OAAM,aAAa,kBAAkB,OAAO;AAAA,gBAC5C,OAAM,QAAQ,MAAM,SAAS;AAAA,gBAC7B,QAAO,QAAQ,MAAM;AAAA,gBACrB,MAAK,QAAQ,MAAM;AAAA,gBACnB,UAAS,QAAQ,MAAM;AAAA,gBACvB,WAAU,QAAQ,MAAM;AAAA,cAAA,CACD;AAAA,YAAA;AAAA,UAE7B;AAAA,UACA,UAAU;AAAA,QACR,IAAA;AAAA,MACN;AAAA,IAAA;AAAA,EAEJ;AAAA,EAEA,YAAY,OAA2B,KAAe;AACpD,UAAM,OAAM,GAAG;AAAA,EACjB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAS,MAA2B;AAC5B,UAAA,WAAW,KAAK;AACf,WAAA,OAAO,SAAS,SAAQ,IAAI;AAAA,EACrC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,WAA+B;AAC7B,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,aAAiC;AACxB,WAAA;AAAA,MACL,GAAG,MAAM,WAAW;AAAA,MACpB,MAAM,KAAK,QAAQ;AAAA,MACnB,OAAM,KAAK;AAAA,MACX,SAAS;AAAA,IAAA;AAAA,EAEb;AACF;AAOO,SAAS,gBACd,MACsB;AACtB,SAAO,gBAAgB;AACzB;;;;"}
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ const vue = require("vue");
3
+ const lexicalVue = require("lexical-vue");
4
+ const utils = require("@lexical/utils");
5
+ const lexical = require("lexical");
6
+ const index = require("../../core/index.js");
7
+ const GridNode = require("./GridNode.js");
8
+ const LayoutGridNode = require("./LayoutGridNode.js");
9
+ const TextGridNode = require("./TextGridNode.js");
10
+ const ImageTextGridNode = require("./ImageTextGridNode.js");
11
+ const ModuleGridNode = require("./ModuleGridNode.js");
12
+ const commands = require("../ModulePlugin/commands.js");
13
+ const utils$1 = require("../ModulePlugin/utils.js");
14
+ require("../ImagePlugin/commands.js");
15
+ const ImageNode = require("../ImagePlugin/ImageNode.js");
16
+ const utils$2 = require("../../../dynamic-form-panel/utils.js");
17
+ const utils$3 = require("./utils.js");
18
+ const elementBlock = require("../../core/element-block.js");
19
+ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
20
+ __name: "index",
21
+ setup(__props) {
22
+ const editor = lexicalVue.useLexicalComposer();
23
+ index.registerDocEditorToolbarExtend({
24
+ icon: "richtext-outline",
25
+ text: "图文环绕",
26
+ action: async () => {
27
+ editor.dispatchCommand(ImageTextGridNode.INSERT_IMAGETEXTGRID_COMMAND, null);
28
+ },
29
+ sort: 9
30
+ });
31
+ index.registerDocEditorToolbarExtend({
32
+ icon: "Grid",
33
+ text: "文本容器",
34
+ action: async () => {
35
+ editor.dispatchCommand(TextGridNode.INSERT_TEXTGRID_COMMAND, { width: "100%" });
36
+ },
37
+ sort: 9
38
+ });
39
+ index.registerDocEditorToolbarExtend({
40
+ icon: "Grid",
41
+ text: "模块容器",
42
+ action: async () => {
43
+ editor.dispatchCommand(ModuleGridNode.INSERT_MODULEGRID_COMMAND, {});
44
+ },
45
+ sort: 9
46
+ });
47
+ index.registerDocEditorToolbarExtend({
48
+ icon: "Grid",
49
+ text: "布局容器",
50
+ action: async () => {
51
+ editor.dispatchCommand(LayoutGridNode.INSERT_LAYOUTGRID_COMMAND, { display: "flex", width: "100%" });
52
+ },
53
+ sort: 9
54
+ });
55
+ const { isSelected, curSelectKey, curSelectPos } = elementBlock.useElementBlockSelection(GridNode.GridNode.hasGridNodeByElement, () => {
56
+ const node = lexical.$getNodeByKey(curSelectKey.value);
57
+ if (GridNode.$isGridNode(node)) {
58
+ const parent = node.getParent();
59
+ const toolbars = [
60
+ {
61
+ title: `编辑容器`,
62
+ icon: "Edit",
63
+ action: async () => {
64
+ var result = await utils$3.showGridEditDialoger(node, parent, node.getAttrs());
65
+ editor.update(() => node.setAttrs(result));
66
+ }
67
+ }
68
+ ];
69
+ if (ModuleGridNode.$isModuleGridNode(node)) {
70
+ toolbars.push(...[
71
+ {
72
+ title: "添加模块",
73
+ icon: "Plus",
74
+ action: async () => {
75
+ const result = await utils$1.showModuleSelectDialog();
76
+ const defaultData = utils$2.createDefaultFormData(result.options);
77
+ editor.dispatchCommand(commands.INSERT_MODULE_COMMAND, { name: result.name, data: defaultData });
78
+ }
79
+ }
80
+ ]);
81
+ }
82
+ return toolbars;
83
+ }
84
+ return null;
85
+ });
86
+ vue.onMounted(() => {
87
+ const insertGridHandle = (layoutGrid) => {
88
+ const selection = lexical.$getSelection();
89
+ const elementNode = lexical.$isNodeSelection(selection) ? selection == null ? void 0 : selection.getNodes()[0] : null;
90
+ if (elementNode) {
91
+ elementNode.append(layoutGrid);
92
+ } else {
93
+ utils.$insertNodeToNearestRoot(layoutGrid);
94
+ }
95
+ };
96
+ const unregister = utils.mergeRegister(
97
+ // 插入布局格子
98
+ editor.registerCommand(LayoutGridNode.INSERT_LAYOUTGRID_COMMAND, (payload) => {
99
+ insertGridHandle(new LayoutGridNode.LayoutGridNode(payload));
100
+ return true;
101
+ }, lexical.COMMAND_PRIORITY_EDITOR),
102
+ // 插入文本格子
103
+ editor.registerCommand(TextGridNode.INSERT_TEXTGRID_COMMAND, (payload) => {
104
+ const textGrid = new TextGridNode.TextGridNode(payload);
105
+ const p = lexical.$createParagraphNode();
106
+ textGrid.append(p);
107
+ insertGridHandle(textGrid);
108
+ return true;
109
+ }, lexical.COMMAND_PRIORITY_EDITOR),
110
+ // 插入模块格子
111
+ editor.registerCommand(ModuleGridNode.INSERT_MODULEGRID_COMMAND, (payload) => {
112
+ insertGridHandle(new ModuleGridNode.ModuleGridNode(payload));
113
+ return true;
114
+ }, lexical.COMMAND_PRIORITY_EDITOR),
115
+ // 插入图文环绕格子
116
+ editor.registerCommand(ImageTextGridNode.INSERT_IMAGETEXTGRID_COMMAND, () => {
117
+ const textImageGrid = new ImageTextGridNode.ImageTextGridNode({ width: "100%" });
118
+ const textGrid = new TextGridNode.TextGridNode({ width: "100%" });
119
+ textGrid.append(lexical.$createParagraphNode());
120
+ textImageGrid.append(new ImageNode.InlineImageNode({
121
+ src: "",
122
+ float: "left",
123
+ width: "200px",
124
+ margin: "0 10px 10px 0"
125
+ }));
126
+ textImageGrid.append(textGrid);
127
+ insertGridHandle(textImageGrid);
128
+ return true;
129
+ }, lexical.COMMAND_PRIORITY_EDITOR)
130
+ );
131
+ vue.onUnmounted(() => unregister());
132
+ });
133
+ return (_ctx, _cache) => {
134
+ return vue.unref(isSelected) ? (vue.openBlock(), vue.createElementBlock("div", {
135
+ key: 0,
136
+ class: "mk-doc-active-mark box",
137
+ style: vue.normalizeStyle(vue.unref(curSelectPos))
138
+ }, null, 4)) : vue.createCommentVNode("", true);
139
+ };
140
+ }
141
+ });
142
+ module.exports = _sfc_main;
143
+ //# sourceMappingURL=index.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.vue.js","sources":["../../../../../../../src/components/basic/doc-editor/plugins/GridPlugin/index.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\n\r\nimport { useLexicalComposer } from 'lexical-vue'\r\nimport { $insertNodeToNearestRoot,mergeRegister } from '@lexical/utils'\r\nimport { \r\n $getNodeByKey,$createParagraphNode,$isNodeSelection, $getSelection,\r\n ElementNode,COMMAND_PRIORITY_EDITOR\r\n} from 'lexical'\r\nimport { onMounted, onUnmounted,ref } from 'vue'\r\nimport { registerDocEditorToolbarExtend,type ToolbarExtendPlugin } from \"../../core\"\r\nimport { GridNode,$isGridNode } from \"./GridNode\"\r\nimport { type LayoutGridNodeAttrType,LayoutGridNode,INSERT_LAYOUTGRID_COMMAND } from \"./LayoutGridNode\"\r\nimport { type TextGridNodeAttrType,TextGridNode,INSERT_TEXTGRID_COMMAND } from \"./TextGridNode\"\r\nimport { type ImageTextGridNodeAttrType,ImageTextGridNode,INSERT_IMAGETEXTGRID_COMMAND } from \"./ImageTextGridNode\"\r\nimport { type ModuleGridNodeAttrType,ModuleGridNode,INSERT_MODULEGRID_COMMAND,$isModuleGridNode } from \"./ModuleGridNode\"\r\nimport { INSERT_MODULE_COMMAND } from \"../ModulePlugin/commands\"\r\nimport { showModuleSelectDialog } from \"../ModulePlugin/utils\"\r\nimport { ModuleType,useModule } from \"../ModulePlugin/composables\"\r\nimport { ImageAttrType,InlineImageNode } from '../ImagePlugin'\r\nimport { useElementBlockSelection } from '../../core'\r\nimport { createDefaultFormData } from \"../../../dynamic-form-panel/utils\"\r\nimport { showGridEditDialoger } from \"./utils\"\r\n\r\n// 编辑器\r\nconst editor = useLexicalComposer()\r\n\r\n// 注册到工具条\r\nregisterDocEditorToolbarExtend({\r\n icon:\"richtext-outline\",\r\n text:\"图文环绕\",\r\n action:async ()=>{\r\n editor.dispatchCommand(INSERT_IMAGETEXTGRID_COMMAND,null)\r\n },\r\n sort:9\r\n} as ToolbarExtendPlugin)\r\nregisterDocEditorToolbarExtend({\r\n icon:\"Grid\",\r\n text:\"文本容器\",\r\n action:async ()=>{\r\n editor.dispatchCommand(INSERT_TEXTGRID_COMMAND,{ width:\"100%\" } as TextGridNodeAttrType)\r\n },\r\n sort:9\r\n} as ToolbarExtendPlugin)\r\nregisterDocEditorToolbarExtend({\r\n icon:\"Grid\",\r\n text:\"模块容器\",\r\n action:async ()=>{\r\n editor.dispatchCommand(INSERT_MODULEGRID_COMMAND,{ } as ModuleGridNodeAttrType)\r\n },\r\n sort:9\r\n} as ToolbarExtendPlugin)\r\nregisterDocEditorToolbarExtend({\r\n icon:\"Grid\",\r\n text:\"布局容器\",\r\n action:async ()=>{\r\n editor.dispatchCommand(INSERT_LAYOUTGRID_COMMAND,{ display:\"flex\",width:\"100%\" } as LayoutGridNodeAttrType)\r\n },\r\n sort:9\r\n} as ToolbarExtendPlugin)\r\n\r\n// 使用元素模块 集成了模块选中删除以及工具条\r\nconst { isSelected, curSelectKey, curSelectPos } = useElementBlockSelection(GridNode.hasGridNodeByElement,()=>{\r\n \r\n const node = $getNodeByKey(curSelectKey.value)\r\n \r\n if($isGridNode(node)){\r\n\r\n const parent = node.getParent() as ElementNode\r\n\r\n const toolbars = [\r\n {\r\n title:`编辑容器`,icon:\"Edit\",action:async ()=>{\r\n\r\n var result = await showGridEditDialoger(node,parent,node.getAttrs());\r\n \r\n editor.update(() => node.setAttrs(result as any))\r\n } \r\n }\r\n ];\r\n\r\n // 模块容器\r\n if($isModuleGridNode(node)){\r\n toolbars.push(...[\r\n {\r\n title:\"添加模块\",icon:\"Plus\",action:async ()=>{\r\n // 打开模块面板\r\n const result = (await showModuleSelectDialog()) as ModuleType;\r\n const defaultData = createDefaultFormData(result.options);\r\n // 插入模块\r\n editor.dispatchCommand(INSERT_MODULE_COMMAND,{ name:result.name,data:defaultData})\r\n } \r\n }\r\n ])\r\n }\r\n\r\n return toolbars;\r\n }\r\n\r\n return null;\r\n})\r\n\r\n\r\nonMounted(() => {\r\n\r\n // 插入格子\r\n const insertGridHandle = (layoutGrid:GridNode)=>{\r\n const selection = $getSelection()\r\n const elementNode = $isNodeSelection(selection) ? selection?.getNodes()[0] as ElementNode : null;\r\n if (elementNode) {\r\n elementNode.append(layoutGrid);\r\n }\r\n else{\r\n $insertNodeToNearestRoot(layoutGrid)\r\n }\r\n }\r\n \r\n // 注册指令\r\n const unregister = mergeRegister(\r\n // 插入布局格子\r\n editor.registerCommand<LayoutGridNodeAttrType>(INSERT_LAYOUTGRID_COMMAND,(payload) => { \r\n \r\n insertGridHandle(new LayoutGridNode(payload));\r\n \r\n return true\r\n },COMMAND_PRIORITY_EDITOR),\r\n // 插入文本格子\r\n editor.registerCommand<TextGridNodeAttrType>(INSERT_TEXTGRID_COMMAND,(payload) => { \r\n \r\n const textGrid = new TextGridNode(payload)\r\n const p = $createParagraphNode();\r\n textGrid.append(p);\r\n insertGridHandle(textGrid);\r\n \r\n return true\r\n },COMMAND_PRIORITY_EDITOR),\r\n // 插入模块格子\r\n editor.registerCommand<ModuleGridNodeAttrType>(INSERT_MODULEGRID_COMMAND,(payload) => { \r\n insertGridHandle(new ModuleGridNode(payload));\r\n return true\r\n },COMMAND_PRIORITY_EDITOR),\r\n // 插入图文环绕格子\r\n editor.registerCommand(INSERT_IMAGETEXTGRID_COMMAND,() => { \r\n \r\n const textImageGrid = new ImageTextGridNode({ width:\"100%\" } as ImageTextGridNodeAttrType)\r\n const textGrid = new TextGridNode({ width:\"100%\" } as TextGridNodeAttrType)\r\n\r\n textGrid.append($createParagraphNode())\r\n\r\n textImageGrid.append(new InlineImageNode({\r\n src:\"\",\r\n float:\"left\",\r\n width:\"200px\",\r\n margin:\"0 10px 10px 0\"\r\n } as ImageAttrType))\r\n textImageGrid.append(textGrid)\r\n\r\n\r\n insertGridHandle(textImageGrid);\r\n \r\n return true\r\n },COMMAND_PRIORITY_EDITOR)\r\n );\r\n\r\n onUnmounted(() => unregister())\r\n})\r\n</script>\r\n\r\n<template>\r\n <div class=\"mk-doc-active-mark box\" v-if=\"isSelected\" :style=\"curSelectPos\">\r\n \r\n </div>\r\n</template>\r\n./GridNode\r\n"],"names":["useLexicalComposer","registerDocEditorToolbarExtend","INSERT_IMAGETEXTGRID_COMMAND","INSERT_TEXTGRID_COMMAND","INSERT_MODULEGRID_COMMAND","INSERT_LAYOUTGRID_COMMAND","useElementBlockSelection","GridNode","$getNodeByKey","$isGridNode","showGridEditDialoger","$isModuleGridNode","showModuleSelectDialog","createDefaultFormData","INSERT_MODULE_COMMAND","onMounted","$getSelection","$isNodeSelection","$insertNodeToNearestRoot","mergeRegister","LayoutGridNode","COMMAND_PRIORITY_EDITOR","TextGridNode","$createParagraphNode","ModuleGridNode","ImageTextGridNode","InlineImageNode","onUnmounted"],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const dialog = require("../../../dynamic-form-panel/dialog.js");
4
+ require("vue");
5
+ require("element-plus");
6
+ const LayoutGridNode = require("./LayoutGridNode.js");
7
+ const ModuleGridNode = require("./ModuleGridNode.js");
8
+ const showGridEditDialoger = async (node, parent, data) => {
9
+ const options = [
10
+ { name: "class", title: "标识类名 : ", component: "el-input", props: { clearable: true }, defaultValue: "" },
11
+ { name: "width", title: "宽度(支持%) : ", component: "el-input", props: { clearable: true }, defaultValue: "" },
12
+ { name: "height", title: "高度度(支持%) : ", component: "el-input", props: { clearable: true }, defaultValue: "" },
13
+ { name: "maxWidth", title: "最大宽度(支持%) : ", component: "el-input", props: { clearable: true }, defaultValue: "" },
14
+ { name: "maxHeight", title: "最大高度(支持%) : ", component: "el-input", props: { clearable: true }, defaultValue: "" }
15
+ ];
16
+ if (LayoutGridNode.$isLayoutGridNode(parent)) {
17
+ options.push({ name: "flex", title: "弹性比例(Flex) : ", component: "el-input", props: { clearable: true }, defaultValue: "" });
18
+ }
19
+ if (LayoutGridNode.$isLayoutGridNode(node)) {
20
+ options.push(...[
21
+ { name: "flexDirection", title: "flex-direction : ", component: "el-input", props: { clearable: true }, defaultValue: "column" },
22
+ { name: "flexWrap", title: "flex-wrap) : ", component: "el-input", props: { clearable: true }, defaultValue: "warp" },
23
+ { name: "alignContent", title: "align-content : ", component: "el-input", props: { clearable: true }, defaultValue: "" },
24
+ { name: "justifyContent", title: "justify-content : ", component: "el-input", props: { clearable: true }, defaultValue: "" },
25
+ { name: "alignItems", title: "align-items : ", component: "el-input", props: { clearable: true }, defaultValue: "" }
26
+ ]);
27
+ } else if (ModuleGridNode.$isModuleGridNode(node)) {
28
+ options.push({ name: "overflowX", title: "横向滚动 : ", component: "el-switch", props: {}, defaultValue: false });
29
+ }
30
+ return await dialog.showDynamicFormDialoger("模块容器", options, data);
31
+ };
32
+ exports.showGridEditDialoger = showGridEditDialoger;
33
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../../../../../../src/components/basic/doc-editor/plugins/GridPlugin/utils.ts"],"sourcesContent":["import { LexicalNode } from \"lexical\"\r\n\r\nimport { createDefaultFormData } from \"../../../dynamic-form-panel/utils\"\r\nimport { showDynamicFormDialoger } from \"../../../dynamic-form-panel\"\r\n\r\nimport { GridNode,$isGridNode } from \"./GridNode\"\r\nimport { $isLayoutGridNode } from \"./LayoutGridNode\"\r\nimport { type TextGridNodeAttrType,TextGridNode,INSERT_TEXTGRID_COMMAND } from \"./TextGridNode\"\r\nimport { type ImageTextGridNodeAttrType,ImageTextGridNode,INSERT_IMAGETEXTGRID_COMMAND } from \"./ImageTextGridNode\"\r\nimport { type ModuleGridNodeAttrType,ModuleGridNode,INSERT_MODULEGRID_COMMAND,$isModuleGridNode } from \"./ModuleGridNode\"\r\n\r\nexport const showGridEditDialoger = async (node:GridNode,parent:LexicalNode,data:any)=>{\r\n\r\n // 表单面板\r\n const options = [\r\n { name:\"class\", title:\"标识类名 : \", component:\"el-input\", props:{ clearable:true }, defaultValue:\"\" },\r\n { name:\"width\", title:\"宽度(支持%) : \", component:\"el-input\", props:{ clearable:true }, defaultValue:\"\" },\r\n { name:\"height\", title:\"高度度(支持%) : \", component:\"el-input\", props:{ clearable:true }, defaultValue:\"\" },\r\n { name:\"maxWidth\", title:\"最大宽度(支持%) : \", component:\"el-input\", props:{ clearable:true }, defaultValue:\"\" },\r\n { name:\"maxHeight\", title:\"最大高度(支持%) : \", component:\"el-input\", props:{ clearable:true }, defaultValue:\"\" }\r\n ];\r\n\r\n if($isLayoutGridNode(parent)){\r\n options.push({ name:\"flex\", title:\"弹性比例(Flex) : \", component:\"el-input\", props:{ clearable:true }, defaultValue:\"\" })\r\n }\r\n\r\n // 布局格子\r\n if($isLayoutGridNode(node)){\r\n options.push(...[\r\n { name:\"flexDirection\", title:\"flex-direction : \", component:\"el-input\", props:{ clearable:true }, defaultValue:\"column\" },\r\n { name:\"flexWrap\", title:\"flex-wrap) : \", component:\"el-input\", props:{ clearable:true }, defaultValue:\"warp\" },\r\n { name:\"alignContent\", title:\"align-content : \", component:\"el-input\", props:{ clearable:true }, defaultValue:\"\" },\r\n { name:\"justifyContent\", title:\"justify-content : \", component:\"el-input\", props:{ clearable:true }, defaultValue:\"\" },\r\n { name:\"alignItems\", title:\"align-items : \", component:\"el-input\", props:{ clearable:true }, defaultValue:\"\" }\r\n ]);\r\n }\r\n else if($isModuleGridNode(node)){\r\n options.push( { name:\"overflowX\", title:\"横向滚动 : \", component:\"el-switch\", props:{ } as any, defaultValue:false as any });\r\n }\r\n\r\n return await showDynamicFormDialoger(\"模块容器\",options,data)\r\n}\r\n"],"names":["$isLayoutGridNode","$isModuleGridNode","showDynamicFormDialoger"],"mappings":";;;;;;;AAWO,MAAM,uBAAuB,OAAO,MAAc,QAAmB,SAAW;AAGrF,QAAM,UAAU;AAAA,IACd,EAAE,MAAK,SAAS,OAAM,WAAW,WAAU,YAAa,OAAM,EAAE,WAAU,QAAQ,cAAa,GAAG;AAAA,IAClG,EAAE,MAAK,SAAS,OAAM,cAAc,WAAU,YAAa,OAAM,EAAE,WAAU,QAAQ,cAAa,GAAG;AAAA,IACrG,EAAE,MAAK,UAAU,OAAM,eAAe,WAAU,YAAa,OAAM,EAAE,WAAU,QAAQ,cAAa,GAAG;AAAA,IACvG,EAAE,MAAK,YAAY,OAAM,gBAAgB,WAAU,YAAa,OAAM,EAAE,WAAU,QAAQ,cAAa,GAAG;AAAA,IAC1G,EAAE,MAAK,aAAa,OAAM,gBAAgB,WAAU,YAAa,OAAM,EAAE,WAAU,QAAQ,cAAa,GAAG;AAAA,EAAA;AAG1G,MAAAA,eAAAA,kBAAkB,MAAM,GAAE;AAC3B,YAAQ,KAAK,EAAE,MAAK,QAAQ,OAAM,iBAAiB,WAAU,YAAa,OAAM,EAAE,WAAU,KAAQ,GAAA,cAAa,IAAI;AAAA,EACvH;AAGG,MAAAA,eAAAA,kBAAkB,IAAI,GAAE;AACzB,YAAQ,KAAK,GAAG;AAAA,MACd,EAAE,MAAK,iBAAiB,OAAM,qBAAqB,WAAU,YAAa,OAAM,EAAE,WAAU,QAAQ,cAAa,SAAS;AAAA,MAC1H,EAAE,MAAK,YAAY,OAAM,iBAAiB,WAAU,YAAa,OAAM,EAAE,WAAU,QAAQ,cAAa,OAAO;AAAA,MAC/G,EAAE,MAAK,gBAAgB,OAAM,oBAAoB,WAAU,YAAa,OAAM,EAAE,WAAU,QAAQ,cAAa,GAAG;AAAA,MAClH,EAAE,MAAK,kBAAkB,OAAM,sBAAsB,WAAU,YAAa,OAAM,EAAE,WAAU,QAAQ,cAAa,GAAG;AAAA,MACtH,EAAE,MAAK,cAAc,OAAM,kBAAkB,WAAU,YAAa,OAAM,EAAE,WAAU,QAAQ,cAAa,GAAG;AAAA,IAAA,CAC/G;AAAA,EAAA,WAEKC,eAAAA,kBAAkB,IAAI,GAAE;AAC9B,YAAQ,KAAM,EAAE,MAAK,aAAa,OAAM,WAAW,WAAU,aAAc,OAAM,CAAA,GAAY,cAAa,MAAc,CAAA;AAAA,EAC1H;AAEA,SAAO,MAAMC,OAAAA,wBAAwB,QAAO,SAAQ,IAAI;AAC1D;;"}
@@ -27,7 +27,7 @@ class ImageNode extends lexical.TextNode {
27
27
  img: (el) => {
28
28
  const src = el.getAttribute("src");
29
29
  const alt = el.getAttribute("alt");
30
- return el.tagName.toLowerCase() == "img" && !el.style.float ? {
30
+ return el.tagName.toLowerCase() == "img" ? {
31
31
  conversion: (domNode) => {
32
32
  return {
33
33
  node: $createImageNode({
@@ -42,7 +42,7 @@ class ImageNode extends lexical.TextNode {
42
42
  })
43
43
  };
44
44
  },
45
- priority: 1
45
+ priority: 0
46
46
  } : null;
47
47
  }
48
48
  };
@@ -63,9 +63,6 @@ class ImageNode extends lexical.TextNode {
63
63
  if (this.__attrs.height) {
64
64
  style.push("height:" + this.__attrs.height);
65
65
  }
66
- if (this.__attrs.float) {
67
- style.push("float:" + this.__attrs.float);
68
- }
69
66
  if (this.__attrs.maxWidth) {
70
67
  style.push("max-width:" + this.__attrs.maxWidth);
71
68
  }
@@ -89,19 +86,6 @@ class ImageNode extends lexical.TextNode {
89
86
  element.setAttribute("style", this.getStyles().join(";"));
90
87
  return { element };
91
88
  }
92
- /**
93
- * 设置属性
94
- * @param pos
95
- */
96
- setAttrs(data) {
97
- const writable = this.getWritable();
98
- Object.assign(writable.__attrs, data);
99
- }
100
- /**
101
- * 创建DOM
102
- * @param config
103
- * @returns
104
- */
105
89
  createDOM(config) {
106
90
  const element = document.createElement("img");
107
91
  element.setAttribute("src", this.__attrs.src || ImageDefaultSrc);
@@ -121,16 +105,26 @@ class ImageNode extends lexical.TextNode {
121
105
  super.updateDOM(prevNode, inner, config);
122
106
  return false;
123
107
  }
124
- getTextContent(_includeInert, _includeDirectionless) {
125
- return "";
108
+ canHaveFormat() {
109
+ return false;
110
+ }
111
+ isToken() {
112
+ return true;
126
113
  }
127
114
  /**
128
- * 内联
129
- * @returns
115
+ * 设置属性
116
+ * @param pos
130
117
  */
131
- isInline() {
132
- return true;
118
+ setAttrs(data) {
119
+ const writable = this.getWritable();
120
+ Object.assign(writable.__attrs, data);
133
121
  }
122
+ // getTextContent(
123
+ // includeInert?: boolean | undefined,
124
+ // includeDirectionless?: false | undefined,
125
+ // ): string {
126
+ // return (this.exportDOM().element as HTMLImageElement).outerHTML;
127
+ // }
134
128
  }
135
129
  class InlineImageNode extends ImageNode {
136
130
  static getType() {
@@ -1 +1 @@
1
- {"version":3,"file":"ImageNode.js","sources":["../../../../../../../src/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.ts"],"sourcesContent":["\r\nimport type {\r\n DOMConversionMap,\r\n DOMExportOutput,\r\n EditorConfig,\r\n LexicalNode,\r\n NodeKey,\r\n Spread,\r\n SerializedElementNode,\r\n SerializedTextNode\r\n} from 'lexical'\r\nimport { ElementNode,TextNode } from 'lexical'\r\n\r\n\r\n// 默认图片\r\nconst ImageDefaultSrc = \"data:image/png;base64,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\";\r\n\r\n\r\n/**\r\n * 图片属性类型\r\n */\r\nexport type ImageAttrType = {\r\n src:string,\r\n alt?:string,\r\n width?:string,\r\n height?:string,\r\n float?:string,\r\n maxWidth?:string,\r\n maxHeight?:string,\r\n margin?:string\r\n};\r\n\r\n/**\r\n * 图片节点序列化\r\n */\r\nexport type SerializedImageNode = Spread<\r\n {\r\n attrs: ImageAttrType\r\n },\r\n SerializedTextNode\r\n>\r\n\r\n/**\r\n * 定义图片节点\r\n */\r\nexport class ImageNode extends TextNode {\r\n __attrs: ImageAttrType\r\n\r\n static getType(): string {\r\n return 'Image'\r\n }\r\n\r\n static clone(node: ImageNode): ImageNode {\r\n return new ImageNode(node.__attrs, node.__key)\r\n }\r\n\r\n static importJSON(serializedNode: SerializedImageNode): ImageNode {\r\n const node = $createImageNode(serializedNode.attrs)\r\n node.setFormat(serializedNode.format)\r\n return node\r\n }\r\n\r\n static importDOM(): DOMConversionMap | null {\r\n return {\r\n img: (el: HTMLElement) => {\r\n\r\n const src = el.getAttribute('src');\r\n const alt = el.getAttribute('alt');\r\n\r\n return el.tagName.toLowerCase() == \"img\" && !el.style.float ? {\r\n conversion: (domNode: HTMLElement) => {\r\n\r\n return { \r\n \r\n node:$createImageNode({\r\n src:src,\r\n alt:alt,\r\n width:domNode.style.width,\r\n height:domNode.style.height,\r\n maxWidth:domNode.style.maxWidth || \"100%\",\r\n maxHeight:domNode.style.maxHeight,\r\n margin:domNode.style.margin,\r\n float:\"\"\r\n } as ImageAttrType) \r\n };\r\n },\r\n priority: 1\r\n } : null\r\n },\r\n }\r\n }\r\n\r\n constructor(attrs: ImageAttrType, key?: NodeKey) {\r\n super(\"\",key)\r\n this.__attrs = attrs\r\n }\r\n\r\n exportJSON(): SerializedImageNode {\r\n\r\n return {\r\n ...super.exportJSON(),\r\n type: this.getType(),\r\n version: 1,\r\n attrs: this.__attrs,\r\n }\r\n }\r\n\r\n getStyles():string[]{\r\n\r\n const style : string[] = [];\r\n\r\n if(this.__attrs.width){\r\n style.push(\"width:\"+this.__attrs.width)\r\n }\r\n if(this.__attrs.height){\r\n style.push(\"height:\"+this.__attrs.height)\r\n }\r\n if(this.__attrs.float){\r\n style.push(\"float:\"+this.__attrs.float)\r\n }\r\n if(this.__attrs.maxWidth){\r\n style.push(\"max-width:\"+this.__attrs.maxWidth)\r\n }\r\n if(this.__attrs.maxHeight){\r\n style.push(\"max-height:\"+this.__attrs.maxHeight)\r\n }\r\n if(this.__attrs.float){\r\n style.push(\"float:\"+this.__attrs.float)\r\n }\r\n if(this.__attrs.margin){\r\n style.push(\"margin:\"+this.__attrs.margin)\r\n }\r\n\r\n return style\r\n }\r\n\r\n exportDOM(): DOMExportOutput {\r\n\r\n \r\n const element = document.createElement('img') \r\n\r\n element.setAttribute('src', this.__attrs.src) \r\n\r\n if(this.__attrs.alt != null){\r\n element.setAttribute('alt', this.__attrs.alt ?? \"\")\r\n }\r\n\r\n element.setAttribute(\"style\",this.getStyles().join(\";\"))\r\n\r\n \r\n return { element }\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 * 创建DOM\r\n * @param config \r\n * @returns \r\n */\r\n createDOM(config: EditorConfig): HTMLElement {\r\n\r\n const element = document.createElement('img') \r\n\r\n element.setAttribute('src', this.__attrs.src || ImageDefaultSrc) \r\n\r\n if(this.__attrs.alt != null){\r\n element.setAttribute('alt', this.__attrs.alt ?? \"\")\r\n }\r\n\r\n element.setAttribute(\"style\",this.getStyles().join(\";\"))\r\n element.setAttribute(\"node-key\",this.__key)\r\n element.setAttribute(\"class\",config.theme.image ?? \"\")\r\n\r\n\r\n return element\r\n }\r\n\r\n updateDOM(\r\n prevNode: ImageNode,\r\n dom: HTMLElement,\r\n config: EditorConfig,\r\n ): boolean {\r\n // console.log(prevNode,dom,dom.firstChild,config);\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 getTextContent(\r\n _includeInert?: boolean | undefined,\r\n _includeDirectionless?: false | undefined,\r\n ): string { return \"\"; }\r\n\r\n /**\r\n * 内联\r\n * @returns \r\n */\r\n isInline(): boolean {\r\n return true;\r\n }\r\n}\r\n/**\r\n * 定义内联图片节点\r\n */\r\nexport class InlineImageNode extends ImageNode{\r\n \r\n static getType(): string {\r\n return 'InlineImage'\r\n }\r\n\r\n static clone(node: ImageNode): ImageNode {\r\n return new InlineImageNode(node.__attrs, node.__key)\r\n }\r\n\r\n static importJSON(serializedNode: SerializedImageNode): ImageNode {\r\n const node = $createImageNode(serializedNode.attrs)\r\n node.setFormat(serializedNode.format)\r\n return node\r\n }\r\n\r\n static importDOM(): DOMConversionMap | null {\r\n return {\r\n img: (el: HTMLElement) => {\r\n\r\n const src = el.getAttribute('src');\r\n const alt = el.getAttribute('alt');\r\n\r\n return el.tagName.toLowerCase() == \"img\" && el.style.float ? {\r\n conversion: (domNode: HTMLElement) => {\r\n \r\n // 内联图\r\n return { \r\n node:new InlineImageNode({\r\n src:src,\r\n alt:alt,\r\n width:domNode.style.width,\r\n height:domNode.style.height,\r\n maxWidth:domNode.style.maxWidth || \"100%\",\r\n maxHeight:domNode.style.maxHeight,\r\n margin:domNode.style.margin,\r\n float:domNode.style.float\r\n } as ImageAttrType) \r\n };\r\n },\r\n priority: 1\r\n } : null\r\n },\r\n }\r\n }\r\n\r\n constructor(attrs: ImageAttrType, key?: NodeKey) {\r\n super(attrs,key)\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 $createImageNode(attrs: ImageAttrType): ImageNode {\r\n return new ImageNode(attrs)\r\n}\r\n\r\n/**\r\n * 判断是否是图片节点\r\n * @param node \r\n * @returns \r\n */\r\nexport function $isImageNode(\r\n node: ImageNode | LexicalNode | null | undefined,\r\n): node is ImageNode {\r\n return node instanceof ImageNode\r\n}\r\n"],"names":["TextNode"],"mappings":"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"}
1
+ {"version":3,"file":"ImageNode.js","sources":["../../../../../../../src/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.ts"],"sourcesContent":["\r\nimport type {\r\n DOMConversionMap,\r\n DOMExportOutput,\r\n EditorConfig,\r\n LexicalNode,\r\n NodeKey,\r\n Spread,\r\n SerializedElementNode,\r\n SerializedTextNode\r\n} from 'lexical'\r\nimport { ElementNode,TextNode } from 'lexical'\r\n\r\n\r\n// 默认图片\r\nconst ImageDefaultSrc = \"data:image/png;base64,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\";\r\n\r\n\r\n/**\r\n * 图片属性类型\r\n */\r\nexport type ImageAttrType = {\r\n src:string,\r\n alt?:string,\r\n width?:string,\r\n height?:string,\r\n float?:string,\r\n maxWidth?:string,\r\n maxHeight?:string,\r\n margin?:string\r\n};\r\n\r\n/**\r\n * 图片节点序列化\r\n */\r\nexport type SerializedImageNode = Spread<\r\n {\r\n attrs: ImageAttrType\r\n },\r\n SerializedTextNode\r\n>\r\n\r\n/**\r\n * 定义图片节点\r\n */\r\nexport class ImageNode extends TextNode {\r\n __attrs: ImageAttrType\r\n\r\n static getType(): string {\r\n return 'Image'\r\n }\r\n\r\n static clone(node: ImageNode): ImageNode {\r\n return new ImageNode(node.__attrs, node.__key)\r\n }\r\n\r\n static importJSON(serializedNode: SerializedImageNode): ImageNode {\r\n const node = $createImageNode(serializedNode.attrs)\r\n node.setFormat(serializedNode.format)\r\n return node\r\n }\r\n\r\n static importDOM(): DOMConversionMap | null {\r\n return {\r\n img: (el: HTMLElement) => {\r\n\r\n const src = el.getAttribute('src');\r\n const alt = el.getAttribute('alt');\r\n\r\n return el.tagName.toLowerCase() == \"img\" ? {\r\n conversion: (domNode: HTMLElement) => {\r\n\r\n return { \r\n \r\n node:$createImageNode({\r\n src:src,\r\n alt:alt,\r\n width:domNode.style.width,\r\n height:domNode.style.height,\r\n maxWidth:domNode.style.maxWidth || \"100%\",\r\n maxHeight:domNode.style.maxHeight,\r\n margin:domNode.style.margin,\r\n float:\"\"\r\n } as ImageAttrType) \r\n };\r\n },\r\n priority: 0\r\n } : null\r\n },\r\n }\r\n }\r\n\r\n constructor(attrs: ImageAttrType, key?: NodeKey) {\r\n super(\"\",key)\r\n this.__attrs = attrs\r\n }\r\n\r\n exportJSON(): SerializedImageNode {\r\n\r\n return {\r\n ...super.exportJSON(),\r\n type: this.getType(),\r\n version: 1,\r\n attrs: this.__attrs,\r\n }\r\n }\r\n\r\n getStyles():string[]{\r\n\r\n const style : string[] = [];\r\n\r\n if(this.__attrs.width){\r\n style.push(\"width:\"+this.__attrs.width)\r\n }\r\n if(this.__attrs.height){\r\n style.push(\"height:\"+this.__attrs.height)\r\n }\r\n if(this.__attrs.maxWidth){\r\n style.push(\"max-width:\"+this.__attrs.maxWidth)\r\n }\r\n if(this.__attrs.maxHeight){\r\n style.push(\"max-height:\"+this.__attrs.maxHeight)\r\n }\r\n if(this.__attrs.float){\r\n style.push(\"float:\"+this.__attrs.float)\r\n }\r\n if(this.__attrs.margin){\r\n style.push(\"margin:\"+this.__attrs.margin)\r\n }\r\n\r\n return style\r\n }\r\n\r\n exportDOM(): DOMExportOutput {\r\n\r\n \r\n const element = document.createElement('img') \r\n\r\n element.setAttribute('src', this.__attrs.src) \r\n\r\n if(this.__attrs.alt != null){\r\n element.setAttribute('alt', this.__attrs.alt ?? \"\")\r\n }\r\n\r\n element.setAttribute(\"style\",this.getStyles().join(\";\"))\r\n\r\n \r\n return { element }\r\n }\r\n \r\n createDOM(config: EditorConfig): HTMLElement {\r\n\r\n const element = document.createElement('img') \r\n\r\n element.setAttribute('src', this.__attrs.src || ImageDefaultSrc) \r\n\r\n if(this.__attrs.alt != null){\r\n element.setAttribute('alt', this.__attrs.alt ?? \"\")\r\n }\r\n\r\n element.setAttribute(\"style\",this.getStyles().join(\";\"))\r\n element.setAttribute(\"node-key\",this.__key)\r\n element.setAttribute(\"class\",config.theme.image ?? \"\")\r\n\r\n\r\n return element\r\n }\r\n\r\n updateDOM(\r\n prevNode: ImageNode,\r\n dom: HTMLElement,\r\n config: EditorConfig,\r\n ): boolean {\r\n // console.log(prevNode,dom,dom.firstChild,config);\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 canHaveFormat() {\r\n return false;\r\n }\r\n isToken() {\r\n return true;\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 // getTextContent(\r\n // includeInert?: boolean | undefined,\r\n // includeDirectionless?: false | undefined,\r\n // ): string { \r\n // return (this.exportDOM().element as HTMLImageElement).outerHTML;\r\n // }\r\n\r\n\r\n}\r\n/**\r\n * 定义内联图片节点\r\n */\r\nexport class InlineImageNode extends ImageNode{\r\n \r\n static getType(): string {\r\n return 'InlineImage'\r\n }\r\n\r\n static clone(node: ImageNode): ImageNode {\r\n return new InlineImageNode(node.__attrs, node.__key)\r\n }\r\n\r\n static importJSON(serializedNode: SerializedImageNode): ImageNode {\r\n const node = $createImageNode(serializedNode.attrs)\r\n node.setFormat(serializedNode.format)\r\n return node\r\n }\r\n\r\n static importDOM(): DOMConversionMap | null {\r\n return {\r\n img: (el: HTMLElement) => {\r\n\r\n const src = el.getAttribute('src');\r\n const alt = el.getAttribute('alt');\r\n\r\n return el.tagName.toLowerCase() == \"img\" && el.style.float ? {\r\n conversion: (domNode: HTMLElement) => {\r\n \r\n // 内联图\r\n return { \r\n node:new InlineImageNode({\r\n src:src,\r\n alt:alt,\r\n width:domNode.style.width,\r\n height:domNode.style.height,\r\n maxWidth:domNode.style.maxWidth || \"100%\",\r\n maxHeight:domNode.style.maxHeight,\r\n margin:domNode.style.margin,\r\n float:domNode.style.float\r\n } as ImageAttrType) \r\n };\r\n },\r\n priority: 1\r\n } : null\r\n },\r\n }\r\n }\r\n\r\n constructor(attrs: ImageAttrType, key?: NodeKey) {\r\n super(attrs,key)\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/**\r\n * 创建图片节点\r\n * @param src \r\n * @returns \r\n */\r\nexport function $createImageNode(attrs: ImageAttrType): ImageNode {\r\n return new ImageNode(attrs)\r\n}\r\n\r\n/**\r\n * 判断是否是图片节点\r\n * @param node \r\n * @returns \r\n */\r\nexport function $isImageNode(\r\n node: ImageNode | LexicalNode | null | undefined,\r\n): node is ImageNode {\r\n return node instanceof ImageNode\r\n}\r\n"],"names":["TextNode"],"mappings":"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"}