@maketribe/ms-app 3.2.33 → 3.2.35

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 (306) hide show
  1. package/dist/cjs/components/basic/doc-editor/core/LexicalComposer.vue.js +74 -0
  2. package/dist/cjs/components/basic/doc-editor/core/LexicalComposer.vue.js.map +1 -0
  3. package/dist/cjs/components/basic/doc-editor/core/LexicalComposer.vue2.js +4 -0
  4. package/dist/cjs/components/basic/doc-editor/core/LexicalComposer.vue2.js.map +1 -0
  5. package/dist/cjs/components/basic/doc-editor/core/composables/inject.js +5 -0
  6. package/dist/cjs/components/basic/doc-editor/core/composables/inject.js.map +1 -0
  7. package/dist/cjs/components/basic/doc-editor/core/composables/listenerManager.js +18 -0
  8. package/dist/cjs/components/basic/doc-editor/core/composables/listenerManager.js.map +1 -0
  9. package/dist/cjs/components/basic/doc-editor/core/composables/useCanShowPlaceholder.js +31 -0
  10. package/dist/cjs/components/basic/doc-editor/core/composables/useCanShowPlaceholder.js.map +1 -0
  11. package/dist/cjs/components/basic/doc-editor/core/composables/useDecorators.js +31 -0
  12. package/dist/cjs/components/basic/doc-editor/core/composables/useDecorators.js.map +1 -0
  13. package/dist/cjs/components/basic/doc-editor/core/composables/useHistory.js +15 -0
  14. package/dist/cjs/components/basic/doc-editor/core/composables/useHistory.js.map +1 -0
  15. package/dist/cjs/components/basic/doc-editor/core/composables/useLexicalComposer.js +17 -0
  16. package/dist/cjs/components/basic/doc-editor/core/composables/useLexicalComposer.js.map +1 -0
  17. package/dist/cjs/components/basic/doc-editor/core/composables/useLexicalTextEntity.js +16 -0
  18. package/dist/cjs/components/basic/doc-editor/core/composables/useLexicalTextEntity.js.map +1 -0
  19. package/dist/cjs/components/basic/doc-editor/core/composables/useList.js +48 -0
  20. package/dist/cjs/components/basic/doc-editor/core/composables/useList.js.map +1 -0
  21. package/dist/cjs/components/basic/doc-editor/core/composables/useMounted.js +14 -0
  22. package/dist/cjs/components/basic/doc-editor/core/composables/useMounted.js.map +1 -0
  23. package/dist/cjs/components/basic/doc-editor/core/composables/useRichTextSetup.js +16 -0
  24. package/dist/cjs/components/basic/doc-editor/core/composables/useRichTextSetup.js.map +1 -0
  25. package/dist/cjs/components/basic/doc-editor/core/element-block.js +12 -3
  26. package/dist/cjs/components/basic/doc-editor/core/element-block.js.map +1 -1
  27. package/dist/cjs/components/basic/doc-editor/core/index.js +14 -0
  28. package/dist/cjs/components/basic/doc-editor/core/index.js.map +1 -1
  29. package/dist/cjs/components/basic/doc-editor/{plugins/RichTextPlugin/nodes/RichTextNode.js → core/nodes/RichElementNode.js} +81 -35
  30. package/dist/cjs/components/basic/doc-editor/core/nodes/RichElementNode.js.map +1 -0
  31. package/dist/cjs/components/basic/doc-editor/core/plugins/LexicalAutoFocusPlugin.vue.js +42 -0
  32. package/dist/cjs/components/basic/doc-editor/core/plugins/LexicalAutoFocusPlugin.vue.js.map +1 -0
  33. package/dist/cjs/components/basic/doc-editor/core/plugins/LexicalAutoFocusPlugin.vue2.js +4 -0
  34. package/dist/cjs/components/basic/doc-editor/core/plugins/LexicalAutoFocusPlugin.vue2.js.map +1 -0
  35. package/dist/cjs/components/basic/doc-editor/core/plugins/LexicalAutoLinkPlugin/index.vue.js +4 -0
  36. package/dist/cjs/components/basic/doc-editor/core/plugins/LexicalAutoLinkPlugin/index.vue.js.map +1 -0
  37. package/dist/cjs/components/basic/doc-editor/core/plugins/LexicalAutoLinkPlugin/index.vue2.js +37 -0
  38. package/dist/cjs/components/basic/doc-editor/core/plugins/LexicalAutoLinkPlugin/index.vue2.js.map +1 -0
  39. package/dist/cjs/components/basic/doc-editor/core/plugins/LexicalAutoLinkPlugin/shared.js +176 -0
  40. package/dist/cjs/components/basic/doc-editor/core/plugins/LexicalAutoLinkPlugin/shared.js.map +1 -0
  41. package/dist/cjs/components/basic/doc-editor/core/plugins/LexicalCheckListPlugin.vue.js +215 -0
  42. package/dist/cjs/components/basic/doc-editor/core/plugins/LexicalCheckListPlugin.vue.js.map +1 -0
  43. package/dist/cjs/components/basic/doc-editor/core/plugins/LexicalCheckListPlugin.vue2.js +4 -0
  44. package/dist/cjs/components/basic/doc-editor/core/plugins/LexicalCheckListPlugin.vue2.js.map +1 -0
  45. package/dist/cjs/components/basic/doc-editor/core/plugins/LexicalHashtagPlugin.vue.js +75 -0
  46. package/dist/cjs/components/basic/doc-editor/core/plugins/LexicalHashtagPlugin.vue.js.map +1 -0
  47. package/dist/cjs/components/basic/doc-editor/core/plugins/LexicalHashtagPlugin.vue2.js +4 -0
  48. package/dist/cjs/components/basic/doc-editor/core/plugins/LexicalHashtagPlugin.vue2.js.map +1 -0
  49. package/dist/cjs/components/basic/doc-editor/core/plugins/LexicalHistoryPlugin.vue.js +29 -0
  50. package/dist/cjs/components/basic/doc-editor/core/plugins/LexicalHistoryPlugin.vue.js.map +1 -0
  51. package/dist/cjs/components/basic/doc-editor/core/plugins/LexicalHistoryPlugin.vue2.js +4 -0
  52. package/dist/cjs/components/basic/doc-editor/core/plugins/LexicalHistoryPlugin.vue2.js.map +1 -0
  53. package/dist/cjs/components/basic/doc-editor/core/plugins/LexicalLinkPlugin.vue.js +4 -0
  54. package/dist/cjs/components/basic/doc-editor/core/plugins/LexicalLinkPlugin.vue.js.map +1 -0
  55. package/dist/cjs/components/basic/doc-editor/core/plugins/LexicalLinkPlugin.vue2.js +77 -0
  56. package/dist/cjs/components/basic/doc-editor/core/plugins/LexicalLinkPlugin.vue2.js.map +1 -0
  57. package/dist/cjs/components/basic/doc-editor/core/plugins/LexicalListPlugin.vue.js +25 -0
  58. package/dist/cjs/components/basic/doc-editor/core/plugins/LexicalListPlugin.vue.js.map +1 -0
  59. package/dist/cjs/components/basic/doc-editor/core/plugins/LexicalListPlugin.vue2.js +4 -0
  60. package/dist/cjs/components/basic/doc-editor/core/plugins/LexicalListPlugin.vue2.js.map +1 -0
  61. package/dist/cjs/components/basic/doc-editor/{plugins/RichTextPlugin → core/plugins/LexicalRichTextPlugin}/ContentEditable.vue.js +14 -3
  62. package/dist/cjs/components/basic/doc-editor/core/plugins/LexicalRichTextPlugin/ContentEditable.vue.js.map +1 -0
  63. package/dist/cjs/components/basic/doc-editor/core/plugins/LexicalRichTextPlugin/DecoratedTeleports.js +24 -0
  64. package/dist/cjs/components/basic/doc-editor/core/plugins/LexicalRichTextPlugin/DecoratedTeleports.js.map +1 -0
  65. package/dist/cjs/components/basic/doc-editor/{plugins/RichTextPlugin → core/plugins/LexicalRichTextPlugin}/index.vue.js +20 -9
  66. package/dist/cjs/components/basic/doc-editor/core/plugins/LexicalRichTextPlugin/index.vue.js.map +1 -0
  67. package/dist/cjs/components/basic/doc-editor/editor.vue.js +19 -12
  68. package/dist/cjs/components/basic/doc-editor/editor.vue.js.map +1 -1
  69. package/dist/cjs/components/basic/doc-editor/{plugins/nodes.js → nodes.js} +13 -11
  70. package/dist/cjs/components/basic/doc-editor/nodes.js.map +1 -0
  71. package/dist/cjs/components/basic/doc-editor/plugins/AutoLinkPlugin/index.vue.js +5 -3
  72. package/dist/cjs/components/basic/doc-editor/plugins/AutoLinkPlugin/index.vue.js.map +1 -1
  73. package/dist/cjs/components/basic/doc-editor/plugins/ElementBlockSelectionPlugin/index.vue.js +13 -4
  74. package/dist/cjs/components/basic/doc-editor/plugins/ElementBlockSelectionPlugin/index.vue.js.map +1 -1
  75. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/index.vue.js +10 -2
  76. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/index.vue.js.map +1 -1
  77. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js +23 -15
  78. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js.map +1 -1
  79. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/composables.js.map +1 -1
  80. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/index.vue.js +10 -2
  81. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/index.vue.js.map +1 -1
  82. package/dist/cjs/components/basic/doc-editor/plugins/TemplatePlugin/composables.js +12 -3
  83. package/dist/cjs/components/basic/doc-editor/plugins/TemplatePlugin/composables.js.map +1 -1
  84. package/dist/cjs/components/basic/doc-editor/plugins/TemplatePlugin/index.vue.js +13 -3
  85. package/dist/cjs/components/basic/doc-editor/plugins/TemplatePlugin/index.vue.js.map +1 -1
  86. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/ContentStyleTool.vue.js +8 -2
  87. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/ContentStyleTool.vue.js.map +1 -1
  88. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/FontStyleDefines.js +9 -2
  89. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/FontStyleDefines.js.map +1 -1
  90. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/FontStyleTool.vue.js +10 -2
  91. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/FontStyleTool.vue.js.map +1 -1
  92. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js +16 -4
  93. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js.map +1 -1
  94. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/index.vue.js +10 -2
  95. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/index.vue.js.map +1 -1
  96. package/dist/cjs/components/basic/doc-editor/themes/doc-editor-edit.css.js +1 -1
  97. package/dist/cjs/components/basic/doc-editor/themes/doc-editor-edit.css.js.map +1 -1
  98. package/dist/cjs/modules/cms/composables/part-extensions.js +3 -4
  99. package/dist/cjs/modules/cms/composables/part-extensions.js.map +1 -1
  100. package/dist/cjs/modules/cms/pages/cms-contents/components/article-list.vue.js +7 -5
  101. package/dist/cjs/modules/cms/pages/cms-contents/components/article-list.vue.js.map +1 -1
  102. package/dist/cjs/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js +2 -2
  103. package/dist/cjs/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js.map +1 -1
  104. package/dist/cjs/modules/cms/pages/cms-contents/components/part-info.vue.js +0 -3
  105. package/dist/cjs/modules/cms/pages/cms-contents/components/part-info.vue.js.map +1 -1
  106. package/dist/cjs/modules/cms/pages/cms-contents/index.vue2.js +229 -190
  107. package/dist/cjs/modules/cms/pages/cms-contents/index.vue2.js.map +1 -1
  108. package/dist/cjs/modules/ms/components/rich-text-editor/index.js.map +1 -1
  109. package/dist/cjs/modules/ms/components/rich-text-editor/rich-text-editor-options.js +2 -4
  110. package/dist/cjs/modules/ms/components/rich-text-editor/rich-text-editor-options.js.map +1 -1
  111. package/dist/cjs/modules/ms/components/rich-text-editor/rich-text-editor.js +5 -4
  112. package/dist/cjs/modules/ms/components/rich-text-editor/rich-text-editor.js.map +1 -1
  113. package/dist/esm/components/basic/doc-editor/core/LexicalComposer.vue.js +75 -0
  114. package/dist/esm/components/basic/doc-editor/core/LexicalComposer.vue.js.map +1 -0
  115. package/dist/esm/components/basic/doc-editor/core/LexicalComposer.vue2.js +5 -0
  116. package/dist/esm/components/basic/doc-editor/core/LexicalComposer.vue2.js.map +1 -0
  117. package/dist/esm/components/basic/doc-editor/core/composables/inject.js +5 -0
  118. package/dist/esm/components/basic/doc-editor/core/composables/inject.js.map +1 -0
  119. package/dist/esm/components/basic/doc-editor/core/composables/listenerManager.js +18 -0
  120. package/dist/esm/components/basic/doc-editor/core/composables/listenerManager.js.map +1 -0
  121. package/dist/esm/components/basic/doc-editor/core/composables/useCanShowPlaceholder.js +31 -0
  122. package/dist/esm/components/basic/doc-editor/core/composables/useCanShowPlaceholder.js.map +1 -0
  123. package/dist/esm/components/basic/doc-editor/core/composables/useDecorators.js +31 -0
  124. package/dist/esm/components/basic/doc-editor/core/composables/useDecorators.js.map +1 -0
  125. package/dist/esm/components/basic/doc-editor/core/composables/useHistory.js +15 -0
  126. package/dist/esm/components/basic/doc-editor/core/composables/useHistory.js.map +1 -0
  127. package/dist/esm/components/basic/doc-editor/core/composables/useLexicalComposer.js +17 -0
  128. package/dist/esm/components/basic/doc-editor/core/composables/useLexicalComposer.js.map +1 -0
  129. package/dist/esm/components/basic/doc-editor/core/composables/useLexicalTextEntity.js +16 -0
  130. package/dist/esm/components/basic/doc-editor/core/composables/useLexicalTextEntity.js.map +1 -0
  131. package/dist/esm/components/basic/doc-editor/core/composables/useList.js +48 -0
  132. package/dist/esm/components/basic/doc-editor/core/composables/useList.js.map +1 -0
  133. package/dist/esm/components/basic/doc-editor/core/composables/useMounted.js +14 -0
  134. package/dist/esm/components/basic/doc-editor/core/composables/useMounted.js.map +1 -0
  135. package/dist/esm/components/basic/doc-editor/core/composables/useRichTextSetup.js +16 -0
  136. package/dist/esm/components/basic/doc-editor/core/composables/useRichTextSetup.js.map +1 -0
  137. package/dist/esm/components/basic/doc-editor/core/element-block.js +10 -1
  138. package/dist/esm/components/basic/doc-editor/core/element-block.js.map +1 -1
  139. package/dist/esm/components/basic/doc-editor/core/index.js +14 -0
  140. package/dist/esm/components/basic/doc-editor/core/index.js.map +1 -1
  141. package/dist/esm/components/basic/doc-editor/{plugins/RichTextPlugin/nodes/RichTextNode.js → core/nodes/RichElementNode.js} +82 -36
  142. package/dist/esm/components/basic/doc-editor/core/nodes/RichElementNode.js.map +1 -0
  143. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalAutoFocusPlugin.vue.js +43 -0
  144. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalAutoFocusPlugin.vue.js.map +1 -0
  145. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalAutoFocusPlugin.vue2.js +5 -0
  146. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalAutoFocusPlugin.vue2.js.map +1 -0
  147. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalAutoLinkPlugin/index.vue.js +5 -0
  148. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalAutoLinkPlugin/index.vue.js.map +1 -0
  149. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalAutoLinkPlugin/index.vue2.js +38 -0
  150. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalAutoLinkPlugin/index.vue2.js.map +1 -0
  151. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalAutoLinkPlugin/shared.js +176 -0
  152. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalAutoLinkPlugin/shared.js.map +1 -0
  153. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalCheckListPlugin.vue.js +216 -0
  154. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalCheckListPlugin.vue.js.map +1 -0
  155. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalCheckListPlugin.vue2.js +5 -0
  156. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalCheckListPlugin.vue2.js.map +1 -0
  157. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalHashtagPlugin.vue.js +76 -0
  158. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalHashtagPlugin.vue.js.map +1 -0
  159. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalHashtagPlugin.vue2.js +5 -0
  160. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalHashtagPlugin.vue2.js.map +1 -0
  161. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalHistoryPlugin.vue.js +30 -0
  162. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalHistoryPlugin.vue.js.map +1 -0
  163. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalHistoryPlugin.vue2.js +5 -0
  164. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalHistoryPlugin.vue2.js.map +1 -0
  165. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalLinkPlugin.vue.js +5 -0
  166. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalLinkPlugin.vue.js.map +1 -0
  167. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalLinkPlugin.vue2.js +78 -0
  168. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalLinkPlugin.vue2.js.map +1 -0
  169. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalListPlugin.vue.js +26 -0
  170. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalListPlugin.vue.js.map +1 -0
  171. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalListPlugin.vue2.js +5 -0
  172. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalListPlugin.vue2.js.map +1 -0
  173. package/dist/esm/components/basic/doc-editor/{plugins/RichTextPlugin → core/plugins/LexicalRichTextPlugin}/ContentEditable.vue.js +12 -1
  174. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalRichTextPlugin/ContentEditable.vue.js.map +1 -0
  175. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalRichTextPlugin/DecoratedTeleports.js +25 -0
  176. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalRichTextPlugin/DecoratedTeleports.js.map +1 -0
  177. package/dist/esm/components/basic/doc-editor/{plugins/RichTextPlugin → core/plugins/LexicalRichTextPlugin}/index.vue.js +19 -8
  178. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalRichTextPlugin/index.vue.js.map +1 -0
  179. package/dist/esm/components/basic/doc-editor/editor.vue.js +31 -24
  180. package/dist/esm/components/basic/doc-editor/editor.vue.js.map +1 -1
  181. package/dist/esm/components/basic/doc-editor/{plugins/nodes.js → nodes.js} +13 -11
  182. package/dist/esm/components/basic/doc-editor/nodes.js.map +1 -0
  183. package/dist/esm/components/basic/doc-editor/plugins/AutoLinkPlugin/index.vue.js +5 -3
  184. package/dist/esm/components/basic/doc-editor/plugins/AutoLinkPlugin/index.vue.js.map +1 -1
  185. package/dist/esm/components/basic/doc-editor/plugins/ElementBlockSelectionPlugin/index.vue.js +12 -3
  186. package/dist/esm/components/basic/doc-editor/plugins/ElementBlockSelectionPlugin/index.vue.js.map +1 -1
  187. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/index.vue.js +9 -1
  188. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/index.vue.js.map +1 -1
  189. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js +14 -6
  190. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js.map +1 -1
  191. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/composables.js.map +1 -1
  192. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/index.vue.js +9 -1
  193. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/index.vue.js.map +1 -1
  194. package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/composables.js +10 -1
  195. package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/composables.js.map +1 -1
  196. package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/index.vue.js +12 -2
  197. package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/index.vue.js.map +1 -1
  198. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/ContentStyleTool.vue.js +7 -1
  199. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/ContentStyleTool.vue.js.map +1 -1
  200. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/FontStyleDefines.js +9 -2
  201. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/FontStyleDefines.js.map +1 -1
  202. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/FontStyleTool.vue.js +9 -1
  203. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/FontStyleTool.vue.js.map +1 -1
  204. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js +13 -1
  205. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js.map +1 -1
  206. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/index.vue.js +9 -1
  207. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/index.vue.js.map +1 -1
  208. package/dist/esm/components/basic/doc-editor/themes/doc-editor-edit.css.js +1 -1
  209. package/dist/esm/components/basic/doc-editor/themes/doc-editor-edit.css.js.map +1 -1
  210. package/dist/esm/modules/cms/composables/part-extensions.js +3 -4
  211. package/dist/esm/modules/cms/composables/part-extensions.js.map +1 -1
  212. package/dist/esm/modules/cms/pages/cms-contents/components/article-list.vue.js +7 -5
  213. package/dist/esm/modules/cms/pages/cms-contents/components/article-list.vue.js.map +1 -1
  214. package/dist/esm/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js +2 -2
  215. package/dist/esm/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js.map +1 -1
  216. package/dist/esm/modules/cms/pages/cms-contents/components/part-info.vue.js +0 -3
  217. package/dist/esm/modules/cms/pages/cms-contents/components/part-info.vue.js.map +1 -1
  218. package/dist/esm/modules/cms/pages/cms-contents/index.vue2.js +229 -190
  219. package/dist/esm/modules/cms/pages/cms-contents/index.vue2.js.map +1 -1
  220. package/dist/esm/modules/ms/components/rich-text-editor/index.js.map +1 -1
  221. package/dist/esm/modules/ms/components/rich-text-editor/rich-text-editor-options.js +2 -4
  222. package/dist/esm/modules/ms/components/rich-text-editor/rich-text-editor-options.js.map +1 -1
  223. package/dist/esm/modules/ms/components/rich-text-editor/rich-text-editor.js +5 -4
  224. package/dist/esm/modules/ms/components/rich-text-editor/rich-text-editor.js.map +1 -1
  225. package/dist/style/components/basic/doc-editor/index.css +1 -1
  226. package/dist/style/components/index.css +1 -1
  227. package/dist/style/index.css +2 -2
  228. package/dist/style/modules/cms/index.css +1 -1
  229. package/dist/style/modules/cms/pages/cms-contents/components/article-list.css +1 -1
  230. package/dist/style/modules/cms/pages/cms-contents/index.css +1 -1
  231. package/dist/style/modules/ms/components/rich-text-editor/index.css +1 -1
  232. package/dist/style/modules/ms/index.css +1 -1
  233. package/dist/style/src/components/basic/doc-editor/index.scss +3 -2
  234. package/dist/style/src/modules/cms/pages/cms-contents/components/article-list.scss +1 -0
  235. package/dist/style/src/modules/ms/components/rich-text-editor/index.scss +1 -1
  236. package/dist/types/components/basic/doc-editor/core/LexicalComposer.vue.d.ts +29 -0
  237. package/dist/types/components/basic/doc-editor/core/composables/index.d.ts +15 -0
  238. package/dist/types/components/basic/doc-editor/core/composables/inject.d.ts +1 -0
  239. package/dist/types/components/basic/doc-editor/core/composables/listenerManager.d.ts +1 -0
  240. package/dist/types/components/basic/doc-editor/core/composables/useCanShowPlaceholder.d.ts +2 -0
  241. package/dist/types/components/basic/doc-editor/core/composables/useCharacterLimit.d.ts +9 -0
  242. package/dist/types/components/basic/doc-editor/core/composables/useDecorators.d.ts +4 -0
  243. package/dist/types/components/basic/doc-editor/core/composables/useEffect.d.ts +5 -0
  244. package/dist/types/components/basic/doc-editor/core/composables/useHistory.d.ts +4 -0
  245. package/dist/types/components/basic/doc-editor/core/composables/useLexicalCommandsLog.d.ts +5 -0
  246. package/dist/types/components/basic/doc-editor/core/composables/useLexicalComposer.d.ts +6 -0
  247. package/dist/types/components/basic/doc-editor/core/composables/useLexicalIsTextContentEmpty.d.ts +2 -0
  248. package/dist/types/components/basic/doc-editor/core/composables/useLexicalNodeSelection.d.ts +7 -0
  249. package/dist/types/components/basic/doc-editor/core/composables/useLexicalTextEntity.d.ts +3 -0
  250. package/dist/types/components/basic/doc-editor/core/composables/useList.d.ts +2 -0
  251. package/dist/types/components/basic/doc-editor/core/composables/useMounted.d.ts +4 -0
  252. package/dist/types/components/basic/doc-editor/core/composables/usePlainTextSetup.d.ts +2 -0
  253. package/dist/types/components/basic/doc-editor/core/composables/useReactiveEditor.d.ts +2 -0
  254. package/dist/types/components/basic/doc-editor/core/composables/useRichTextSetup.d.ts +2 -0
  255. package/dist/types/components/basic/doc-editor/core/composables/useTableOfContents.d.ts +8 -0
  256. package/dist/types/components/basic/doc-editor/core/index.d.ts +8 -0
  257. package/dist/types/components/basic/doc-editor/core/nodes/RichElementNode.d.ts +46 -0
  258. package/dist/types/components/basic/doc-editor/core/nodes/index.d.ts +1 -0
  259. package/dist/types/components/basic/doc-editor/core/plugins/LexicalAutoFocusPlugin.vue.d.ts +15 -0
  260. package/dist/types/components/basic/doc-editor/core/plugins/LexicalAutoLinkPlugin/index.vue.d.ts +26 -0
  261. package/dist/types/components/basic/doc-editor/core/plugins/LexicalAutoLinkPlugin/shared.d.ts +14 -0
  262. package/dist/types/components/basic/doc-editor/core/plugins/LexicalCheckListPlugin.vue.d.ts +2 -0
  263. package/dist/types/components/basic/doc-editor/core/plugins/LexicalHashtagPlugin.vue.d.ts +2 -0
  264. package/dist/types/components/basic/doc-editor/core/plugins/LexicalHistoryPlugin.vue.d.ts +16 -0
  265. package/dist/types/components/basic/doc-editor/core/plugins/LexicalLinkPlugin.vue.d.ts +15 -0
  266. package/dist/types/components/basic/doc-editor/core/plugins/LexicalListPlugin.vue.d.ts +2 -0
  267. package/dist/types/components/basic/doc-editor/core/types.d.ts +2 -0
  268. package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/composables.d.ts +1 -1
  269. package/dist/types/components/basic/doc-editor/plugins/TemplatePlugin/composables.d.ts +1 -0
  270. package/dist/types/components/basic/doc-editor/plugins/index.d.ts +1 -3
  271. package/dist/types/components/data-model/data-table/views/table/index.d.ts +1 -1
  272. package/dist/types/components/data-model/data-table/views/table/table.d.ts +1 -1
  273. package/dist/types/components/data-model/data-table/views/tree/index.d.ts +1 -1
  274. package/dist/types/components/data-model/data-table/views/tree/tree.d.ts +1 -1
  275. package/dist/types/modules/cms/composables/part-extensions.d.ts +1 -1
  276. package/dist/types/modules/ms/components/material-list/material-item.vue.d.ts +1 -1
  277. package/dist/types/modules/ms/components/rich-text-editor/index.d.ts +2 -2
  278. package/dist/types/modules/ms/components/rich-text-editor/rich-text-editor-options.d.ts +1 -1
  279. package/dist/types/modules/ms/components/rich-text-editor/rich-text-editor.d.ts +2 -2
  280. package/package.json +22 -23
  281. package/dist/cjs/components/basic/doc-editor/plugins/RichTextPlugin/ContentEditable.vue.js.map +0 -1
  282. package/dist/cjs/components/basic/doc-editor/plugins/RichTextPlugin/DecoratedTeleports.js +0 -13
  283. package/dist/cjs/components/basic/doc-editor/plugins/RichTextPlugin/DecoratedTeleports.js.map +0 -1
  284. package/dist/cjs/components/basic/doc-editor/plugins/RichTextPlugin/index.vue.js.map +0 -1
  285. package/dist/cjs/components/basic/doc-editor/plugins/RichTextPlugin/nodes/RichTextNode.js.map +0 -1
  286. package/dist/cjs/components/basic/doc-editor/plugins/nodes.js.map +0 -1
  287. package/dist/esm/components/basic/doc-editor/plugins/RichTextPlugin/ContentEditable.vue.js.map +0 -1
  288. package/dist/esm/components/basic/doc-editor/plugins/RichTextPlugin/DecoratedTeleports.js +0 -14
  289. package/dist/esm/components/basic/doc-editor/plugins/RichTextPlugin/DecoratedTeleports.js.map +0 -1
  290. package/dist/esm/components/basic/doc-editor/plugins/RichTextPlugin/index.vue.js.map +0 -1
  291. package/dist/esm/components/basic/doc-editor/plugins/RichTextPlugin/nodes/RichTextNode.js.map +0 -1
  292. package/dist/esm/components/basic/doc-editor/plugins/nodes.js.map +0 -1
  293. package/dist/types/components/basic/doc-editor/plugins/RichTextPlugin/nodes/RichTextNode.d.ts +0 -13
  294. package/dist/types/components/basic/doc-editor/plugins/VideoPlugin/VideoNode.d.ts +0 -23
  295. /package/dist/cjs/components/basic/doc-editor/{plugins/RichTextPlugin → core/plugins/LexicalRichTextPlugin}/ContentEditable.vue2.js +0 -0
  296. /package/dist/cjs/components/basic/doc-editor/{plugins/RichTextPlugin → core/plugins/LexicalRichTextPlugin}/ContentEditable.vue2.js.map +0 -0
  297. /package/dist/cjs/components/basic/doc-editor/{plugins/RichTextPlugin → core/plugins/LexicalRichTextPlugin}/index.vue2.js +0 -0
  298. /package/dist/cjs/components/basic/doc-editor/{plugins/RichTextPlugin → core/plugins/LexicalRichTextPlugin}/index.vue2.js.map +0 -0
  299. /package/dist/esm/components/basic/doc-editor/{plugins/RichTextPlugin → core/plugins/LexicalRichTextPlugin}/ContentEditable.vue2.js +0 -0
  300. /package/dist/esm/components/basic/doc-editor/{plugins/RichTextPlugin → core/plugins/LexicalRichTextPlugin}/ContentEditable.vue2.js.map +0 -0
  301. /package/dist/esm/components/basic/doc-editor/{plugins/RichTextPlugin → core/plugins/LexicalRichTextPlugin}/index.vue2.js +0 -0
  302. /package/dist/esm/components/basic/doc-editor/{plugins/RichTextPlugin → core/plugins/LexicalRichTextPlugin}/index.vue2.js.map +0 -0
  303. /package/dist/types/components/basic/doc-editor/{plugins/RichTextPlugin → core/plugins/LexicalRichTextPlugin}/ContentEditable.vue.d.ts +0 -0
  304. /package/dist/types/components/basic/doc-editor/{plugins/RichTextPlugin → core/plugins/LexicalRichTextPlugin}/DecoratedTeleports.d.ts +0 -0
  305. /package/dist/types/components/basic/doc-editor/{plugins/RichTextPlugin → core/plugins/LexicalRichTextPlugin}/index.vue.d.ts +0 -0
  306. /package/dist/types/components/basic/doc-editor/{plugins/nodes.d.ts → nodes.d.ts} +0 -0
@@ -1,16 +1,36 @@
1
- import { TextNode, $isTextNode } from "lexical";
2
- class RichTextNode extends TextNode {
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
+ import { ElementNode, $isTextNode } from "lexical";
5
+ class RichElementNode extends ElementNode {
6
+ /**
7
+ *
8
+ * @param tagName
9
+ * @param className
10
+ * @param style
11
+ * @param key
12
+ */
13
+ constructor(tagName, className, style, key) {
14
+ super(key);
15
+ __publicField(this, "__tagName");
16
+ __publicField(this, "__class");
17
+ __publicField(this, "__style");
18
+ this.__tagName = tagName, this.__class = className;
19
+ this.__style = style || "";
20
+ }
3
21
  static getType() {
4
- return "rich-text";
22
+ return "rich-element";
5
23
  }
6
24
  static clone(node) {
7
- return new RichTextNode(node.__key);
25
+ return new RichElementNode(node.__tagName, node.__class, node.__style, node.__key);
8
26
  }
9
27
  static importJSON(serializedNode) {
10
- return TextNode.importJSON(serializedNode);
28
+ return new RichElementNode(serializedNode.tag, serializedNode.class, serializedNode.style);
11
29
  }
12
30
  static importDOM() {
13
31
  return {
32
+ div: $covertRichElementDOM,
33
+ section: $covertRichElementDOM,
14
34
  b: () => ({
15
35
  conversion: convertBringAttentionToElement,
16
36
  priority: 4
@@ -53,24 +73,54 @@ class RichTextNode extends TextNode {
53
73
  })
54
74
  };
55
75
  }
56
- constructor(text, key) {
57
- super(text, key);
58
- }
76
+ /**
77
+ * 导出JSON
78
+ * @returns
79
+ */
59
80
  exportJSON() {
60
81
  return {
61
- ...super.exportJSON()
82
+ ...super.exportJSON(),
83
+ type: this.getType(),
84
+ tag: this.__tagName,
85
+ class: this.__class,
86
+ style: this.__style,
87
+ version: 1
62
88
  };
63
89
  }
90
+ /**
91
+ * 导出DOM
92
+ * @returns
93
+ */
94
+ exportDOM() {
95
+ const element = document.createElement(this.__tagName);
96
+ if (this.__class) {
97
+ element.setAttribute("class", this.__class);
98
+ }
99
+ if (this.__style) {
100
+ element.setAttribute("style", this.__style);
101
+ }
102
+ return { element };
103
+ }
104
+ /**
105
+ * 创建渲染DOM
106
+ * @param config
107
+ * @returns
108
+ */
109
+ createDOM(config) {
110
+ return this.exportDOM().element;
111
+ }
64
112
  }
65
- function convertBringAttentionToElement(domNode) {
66
- const b = domNode;
67
- const hasNormalFontWeight = b.style.fontWeight === "normal";
113
+ const $covertRichElementDOM = (domNode) => {
68
114
  return {
69
- forChild: applyTextFormatFromStyle(b.style, hasNormalFontWeight ? void 0 : "bold"),
70
- node: null
115
+ conversion: () => {
116
+ return {
117
+ node: new RichElementNode(domNode.tagName, domNode.getAttribute("class"), domNode.getAttribute("style") || "")
118
+ };
119
+ },
120
+ priority: 3
71
121
  };
72
- }
73
- var nodeNameToTextFormat = {
122
+ };
123
+ const nodeNameToTextFormat = {
74
124
  code: "code",
75
125
  em: "italic",
76
126
  i: "italic",
@@ -80,6 +130,14 @@ var nodeNameToTextFormat = {
80
130
  sup: "superscript",
81
131
  u: "underline"
82
132
  };
133
+ function convertBringAttentionToElement(domNode) {
134
+ const b = domNode;
135
+ const hasNormalFontWeight = b.style.fontWeight === "normal";
136
+ return {
137
+ forChild: applyTextFormatFromStyle(b.style, hasNormalFontWeight ? void 0 : "bold", domNode),
138
+ node: null
139
+ };
140
+ }
83
141
  function convertTextFormatElement(domNode) {
84
142
  const format = nodeNameToTextFormat[domNode.nodeName.toLowerCase()];
85
143
  if (format === void 0) {
@@ -88,7 +146,7 @@ function convertTextFormatElement(domNode) {
88
146
  };
89
147
  }
90
148
  return {
91
- forChild: applyTextFormatFromStyle(domNode.style, format),
149
+ forChild: applyTextFormatFromStyle(domNode.style, format, domNode),
92
150
  node: null
93
151
  };
94
152
  }
@@ -96,11 +154,11 @@ function convertSpanElement(domNode) {
96
154
  const span = domNode;
97
155
  const style = span.style;
98
156
  return {
99
- forChild: applyTextFormatFromStyle(style, null),
157
+ forChild: applyTextFormatFromStyle(style, null, domNode),
100
158
  node: null
101
159
  };
102
160
  }
103
- function applyTextFormatFromStyle(style, shouldApply) {
161
+ function applyTextFormatFromStyle(style, shouldApply, domNode) {
104
162
  const fontWeight = style.fontWeight;
105
163
  const textDecoration = style.textDecoration.split(" ");
106
164
  const hasBoldFontWeight = fontWeight === "700" || fontWeight === "bold";
@@ -133,26 +191,14 @@ function applyTextFormatFromStyle(style, shouldApply) {
133
191
  if (shouldApply && !lexicalNode.hasFormat(shouldApply)) {
134
192
  lexicalNode.toggleFormat(shouldApply);
135
193
  }
136
- let styleStr = "";
137
- if (style.color) {
138
- styleStr += `color:${style.color};`;
139
- }
140
- if (style.fontSize) {
141
- styleStr += `font-size:${style.fontSize};`;
142
- }
143
- if (style.fontFamily) {
144
- styleStr += `font-family:${style.fontFamily};`;
145
- }
146
- if (style.backgroundColor) {
147
- styleStr += `background-color:${style.backgroundColor};`;
148
- }
149
- if (styleStr) {
150
- lexicalNode.setStyle(styleStr);
194
+ const inlineStyle = domNode.getAttribute("style");
195
+ if (inlineStyle) {
196
+ lexicalNode.setStyle(inlineStyle);
151
197
  }
152
198
  return lexicalNode;
153
199
  };
154
200
  }
155
201
  export {
156
- RichTextNode
202
+ RichElementNode
157
203
  };
158
- //# sourceMappingURL=RichTextNode.js.map
204
+ //# sourceMappingURL=RichElementNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RichElementNode.js","sources":["../../../../../../../src/components/basic/doc-editor/core/nodes/RichElementNode.ts"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\nimport type { DOMConversionMap, SerializedElementNode, NodeKey, Spread, EditorConfig, DOMExportOutput, DOMConversion, LexicalNode } from 'lexical'\r\nimport { $isTextNode, ElementNode } from 'lexical'\r\n\r\n\r\n/**\r\n * 节点序列化 \r\n */\r\nexport type SerializedRichElementNode = Spread<{ tag: string, style?: string, class?: string | null }, SerializedElementNode>\r\n\r\n/**\r\n * 格子\r\n */\r\nexport class RichElementNode extends ElementNode {\r\n\r\n __tagName: string\r\n __class?: string | null | undefined\r\n __style: string\r\n\r\n static getType(): string { return \"rich-element\"; }\r\n\r\n static clone(node: RichElementNode): RichElementNode {\r\n return new RichElementNode(node.__tagName, node.__class, node.__style, node.__key)\r\n }\r\n\r\n static importJSON(serializedNode: SerializedRichElementNode): RichElementNode {\r\n return new RichElementNode(serializedNode.tag, serializedNode.class, serializedNode.style)\r\n }\r\n\r\n static importDOM(): DOMConversionMap | null {\r\n return {\r\n div: $covertRichElementDOM,\r\n section: $covertRichElementDOM,\r\n b: () => ({\r\n conversion: convertBringAttentionToElement,\r\n priority: 4\r\n }),\r\n code: () => ({\r\n conversion: convertTextFormatElement,\r\n priority: 4\r\n }),\r\n em: () => ({\r\n conversion: convertTextFormatElement,\r\n priority: 4\r\n }),\r\n i: () => ({\r\n conversion: convertTextFormatElement,\r\n priority: 4\r\n }),\r\n s: () => ({\r\n conversion: convertTextFormatElement,\r\n priority: 4\r\n }),\r\n span: () => ({\r\n conversion: convertSpanElement,\r\n priority: 4\r\n }),\r\n strong: () => ({\r\n conversion: convertTextFormatElement,\r\n priority: 4\r\n }),\r\n sub: () => ({\r\n conversion: convertTextFormatElement,\r\n priority: 4\r\n }),\r\n sup: () => ({\r\n conversion: convertTextFormatElement,\r\n priority: 4\r\n }),\r\n u: () => ({\r\n conversion: convertTextFormatElement,\r\n priority: 4\r\n })\r\n }\r\n }\r\n\r\n /**\r\n * \r\n * @param tagName \r\n * @param className \r\n * @param style \r\n * @param key \r\n */\r\n constructor(tagName: string, className?: string | null, style?: string, key?: NodeKey) {\r\n super(key)\r\n this.__tagName = tagName,\r\n this.__class = className;\r\n this.__style = style || \"\";\r\n }\r\n\r\n\r\n /**\r\n * 导出JSON\r\n * @returns \r\n */\r\n exportJSON(): SerializedRichElementNode {\r\n return {\r\n ...super.exportJSON(),\r\n type: this.getType(),\r\n tag: this.__tagName,\r\n class: this.__class,\r\n style: this.__style,\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(this.__tagName)\r\n\r\n if (this.__class) {\r\n element.setAttribute(\"class\", this.__class)\r\n }\r\n\r\n if (this.__style) {\r\n element.setAttribute(\"style\", this.__style)\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 return this.exportDOM().element as HTMLElement;\r\n }\r\n\r\n}\r\n\r\n\r\n/**\r\n * 转换DOM\r\n * @param node \r\n * @returns \r\n */\r\nconst $covertRichElementDOM = (domNode: HTMLElement): DOMConversion<HTMLElement> | null => {\r\n return {\r\n conversion: () => {\r\n return {\r\n node: new RichElementNode(domNode.tagName, domNode.getAttribute(\"class\"), domNode.getAttribute(\"style\") || \"\")\r\n };\r\n },\r\n priority: 3\r\n };\r\n}\r\n\r\n\r\n\r\nconst nodeNameToTextFormat: any = {\r\n code: \"code\",\r\n em: \"italic\",\r\n i: \"italic\",\r\n s: \"strikethrough\",\r\n strong: \"bold\",\r\n sub: \"subscript\",\r\n sup: \"superscript\",\r\n u: \"underline\"\r\n};\r\n\r\nfunction convertBringAttentionToElement(domNode: HTMLElement) {\r\n const b = domNode;\r\n const hasNormalFontWeight = b.style.fontWeight === \"normal\";\r\n return {\r\n forChild: applyTextFormatFromStyle(b.style, hasNormalFontWeight ? void 0 : \"bold\", domNode),\r\n node: null\r\n };\r\n}\r\n\r\nfunction convertTextFormatElement(domNode: HTMLElement) {\r\n const format = nodeNameToTextFormat[domNode.nodeName.toLowerCase()];\r\n if (format === void 0) {\r\n return {\r\n node: null\r\n };\r\n }\r\n return {\r\n forChild: applyTextFormatFromStyle(domNode.style, format, domNode),\r\n node: null\r\n };\r\n}\r\n\r\nfunction convertSpanElement(domNode: HTMLElement) {\r\n const span = domNode;\r\n const style = span.style;\r\n return {\r\n forChild: applyTextFormatFromStyle(style, null, domNode),\r\n node: null\r\n };\r\n}\r\n\r\nfunction applyTextFormatFromStyle(style: any, shouldApply: any, domNode: HTMLElement) {\r\n const fontWeight = style.fontWeight;\r\n const textDecoration = style.textDecoration.split(\" \");\r\n const hasBoldFontWeight = fontWeight === \"700\" || fontWeight === \"bold\";\r\n const hasLinethroughTextDecoration = textDecoration.includes(\"line-through\");\r\n const hasItalicFontStyle = style.fontStyle === \"italic\";\r\n const hasUnderlineTextDecoration = textDecoration.includes(\"underline\");\r\n const verticalAlign = style.verticalAlign;\r\n\r\n return (lexicalNode: LexicalNode) => {\r\n\r\n if (!$isTextNode(lexicalNode)) {\r\n return lexicalNode;\r\n }\r\n\r\n if (hasBoldFontWeight && !lexicalNode.hasFormat(\"bold\")) {\r\n lexicalNode.toggleFormat(\"bold\");\r\n }\r\n if (hasLinethroughTextDecoration && !lexicalNode.hasFormat(\"strikethrough\")) {\r\n lexicalNode.toggleFormat(\"strikethrough\");\r\n }\r\n if (hasItalicFontStyle && !lexicalNode.hasFormat(\"italic\")) {\r\n lexicalNode.toggleFormat(\"italic\");\r\n }\r\n if (hasUnderlineTextDecoration && !lexicalNode.hasFormat(\"underline\")) {\r\n lexicalNode.toggleFormat(\"underline\");\r\n }\r\n if (verticalAlign === \"sub\" && !lexicalNode.hasFormat(\"subscript\")) {\r\n lexicalNode.toggleFormat(\"subscript\");\r\n }\r\n if (verticalAlign === \"super\" && !lexicalNode.hasFormat(\"superscript\")) {\r\n lexicalNode.toggleFormat(\"superscript\");\r\n }\r\n if (shouldApply && !lexicalNode.hasFormat(shouldApply)) {\r\n lexicalNode.toggleFormat(shouldApply);\r\n }\r\n\r\n // let styleStr = \"\";\r\n\r\n // if(style.color){\r\n // styleStr += `color:${style.color};`\r\n // }\r\n // if(style.fontSize){\r\n // styleStr += `font-size:${style.fontSize};`\r\n // }\r\n // if(style.fontFamily){\r\n // styleStr += `font-family:${style.fontFamily};`\r\n // }\r\n // if(style.backgroundColor){\r\n // styleStr += `background-color:${style.backgroundColor};`\r\n // }\r\n\r\n // 行内样式\r\n const inlineStyle = domNode.getAttribute(\"style\")\r\n if (inlineStyle) {\r\n lexicalNode.setStyle(inlineStyle);\r\n }\r\n\r\n return lexicalNode;\r\n };\r\n}\r\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import { defineComponent, onMounted, nextTick } from "vue";
2
+ import "@lexical/text";
3
+ import "@lexical/utils";
4
+ import "@lexical/overflow";
5
+ import "lexical";
6
+ import "tiny-invariant";
7
+ import "@lexical/history";
8
+ import { useLexicalComposer } from "../composables/useLexicalComposer.js";
9
+ import "@lexical/list";
10
+ import "@lexical/dragon";
11
+ import "@lexical/plain-text";
12
+ import "@lexical/rich-text";
13
+ const _sfc_main = /* @__PURE__ */ defineComponent({
14
+ __name: "LexicalAutoFocusPlugin",
15
+ props: {
16
+ defaultSelection: {}
17
+ },
18
+ setup(__props) {
19
+ const props = __props;
20
+ const editor = useLexicalComposer();
21
+ onMounted(() => {
22
+ nextTick(() => {
23
+ editor.focus(
24
+ () => {
25
+ const activeElement = document.activeElement;
26
+ const rootElement = editor.getRootElement();
27
+ if (rootElement !== null && (activeElement === null || !rootElement.contains(activeElement))) {
28
+ rootElement.focus({ preventScroll: true });
29
+ }
30
+ },
31
+ { defaultSelection: props.defaultSelection }
32
+ );
33
+ });
34
+ });
35
+ return (_ctx, _cache) => {
36
+ return null;
37
+ };
38
+ }
39
+ });
40
+ export {
41
+ _sfc_main as default
42
+ };
43
+ //# sourceMappingURL=LexicalAutoFocusPlugin.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LexicalAutoFocusPlugin.vue.js","sources":["../../../../../../../src/components/basic/doc-editor/core/plugins/LexicalAutoFocusPlugin.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { nextTick, onMounted } from 'vue'\r\nimport { useLexicalComposer } from '../composables'\r\n\r\nconst props = defineProps<{\r\n defaultSelection?: 'rootStart' | 'rootEnd'\r\n}>()\r\n\r\nconst editor = useLexicalComposer()\r\n\r\nonMounted(() => {\r\n nextTick(() => {\r\n editor.focus(\r\n () => {\r\n // If we try and move selection to the same point with setBaseAndExtent, it won't\r\n // trigger a re-focus on the element. So in the case this occurs, we'll need to correct it.\r\n // Normally this is fine, Selection API !== Focus API, but fore the intents of the naming\r\n // of this plugin, which should preserve focus too.\r\n const activeElement = document.activeElement\r\n const rootElement = editor.getRootElement() as HTMLDivElement\r\n if (\r\n rootElement !== null\r\n && (activeElement === null || !rootElement.contains(activeElement))\r\n ) {\r\n // Note: preventScroll won't work in Webkit.\r\n rootElement.focus({ preventScroll: true })\r\n }\r\n },\r\n { defaultSelection: props.defaultSelection },\r\n )\r\n })\r\n})\r\n</script>\r\n\r\n<template />\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAIA,UAAM,QAAQ;AAId,UAAM,SAAS;AAEf,cAAU,MAAM;AACd,eAAS,MAAM;AACN,eAAA;AAAA,UACL,MAAM;AAKJ,kBAAM,gBAAgB,SAAS;AACzB,kBAAA,cAAc,OAAO;AAEzB,gBAAA,gBAAgB,SACZ,kBAAkB,QAAQ,CAAC,YAAY,SAAS,aAAa,IACjE;AAEA,0BAAY,MAAM,EAAE,eAAe,KAAM,CAAA;AAAA,YAC3C;AAAA,UACF;AAAA,UACA,EAAE,kBAAkB,MAAM,iBAAiB;AAAA,QAAA;AAAA,MAC7C,CACD;AAAA,IAAA,CACF;;;;;;"}
@@ -0,0 +1,5 @@
1
+ import _sfc_main from "./LexicalAutoFocusPlugin.vue.js";
2
+ export {
3
+ _sfc_main as default
4
+ };
5
+ //# sourceMappingURL=LexicalAutoFocusPlugin.vue2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LexicalAutoFocusPlugin.vue2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,5 @@
1
+ import _sfc_main from "./index.vue2.js";
2
+ export {
3
+ _sfc_main as default
4
+ };
5
+ //# sourceMappingURL=index.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,38 @@
1
+ import { defineComponent } from "vue";
2
+ import "@lexical/text";
3
+ import "@lexical/utils";
4
+ import "@lexical/overflow";
5
+ import "lexical";
6
+ import "tiny-invariant";
7
+ import "@lexical/history";
8
+ import { useLexicalComposer } from "../../composables/useLexicalComposer.js";
9
+ import "@lexical/list";
10
+ import "@lexical/dragon";
11
+ import "@lexical/plain-text";
12
+ import "@lexical/rich-text";
13
+ import { useAutoLink } from "./shared.js";
14
+ const _sfc_main = /* @__PURE__ */ defineComponent({
15
+ __name: "index",
16
+ props: {
17
+ matchers: {}
18
+ },
19
+ emits: ["change"],
20
+ setup(__props, { emit: __emit }) {
21
+ const props = __props;
22
+ const emit = __emit;
23
+ const editor = useLexicalComposer();
24
+ useAutoLink(editor, props.matchers, (url, prevUrl) => {
25
+ emit("change", {
26
+ url,
27
+ prevUrl
28
+ });
29
+ });
30
+ return (_ctx, _cache) => {
31
+ return null;
32
+ };
33
+ }
34
+ });
35
+ export {
36
+ _sfc_main as default
37
+ };
38
+ //# sourceMappingURL=index.vue2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.vue2.js","sources":["../../../../../../../../src/components/basic/doc-editor/core/plugins/LexicalAutoLinkPlugin/index.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { useLexicalComposer } from '../../composables'\r\nimport { type LinkMatcher, useAutoLink } from './shared'\r\n\r\nconst props = defineProps<{\r\n matchers: LinkMatcher[]\r\n}>()\r\n\r\nconst emit = defineEmits<{\r\n (e: 'change', value: { url: string | null, prevUrl: string | null }): void\r\n}>()\r\n\r\nconst editor = useLexicalComposer()\r\n\r\nuseAutoLink(editor, props.matchers, (url: string | null, prevUrl: string | null) => {\r\n emit('change', {\r\n url,\r\n prevUrl,\r\n })\r\n})\r\n</script>\r\n\r\n<template />\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAIA,UAAM,QAAQ;AAId,UAAM,OAAO;AAIb,UAAM,SAAS;AAEf,gBAAY,QAAQ,MAAM,UAAU,CAAC,KAAoB,YAA2B;AAClF,WAAK,UAAU;AAAA,QACb;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IAAA,CACF;;;;;;"}
@@ -0,0 +1,176 @@
1
+ import { watchEffect, unref } from "vue";
2
+ import invariant from "tiny-invariant";
3
+ import { AutoLinkNode, $isAutoLinkNode, $isLinkNode, $createAutoLinkNode } from "@lexical/link";
4
+ import { mergeRegister } from "@lexical/utils";
5
+ import { TextNode, $createTextNode, $isTextNode, $isElementNode, $isLineBreakNode } from "lexical";
6
+ function findFirstMatch(text, matchers) {
7
+ for (let i = 0; i < matchers.length; i++) {
8
+ const match = matchers[i](text);
9
+ if (match)
10
+ return match;
11
+ }
12
+ return null;
13
+ }
14
+ const PUNCTUATION_OR_SPACE = /[.,;\s]/;
15
+ function isSeparator(char) {
16
+ return PUNCTUATION_OR_SPACE.test(char);
17
+ }
18
+ function endsWithSeparator(textContent) {
19
+ return isSeparator(textContent[textContent.length - 1]);
20
+ }
21
+ function startsWithSeparator(textContent) {
22
+ return isSeparator(textContent[0]);
23
+ }
24
+ function isPreviousNodeValid(node) {
25
+ let previousNode = node.getPreviousSibling();
26
+ if ($isElementNode(previousNode))
27
+ previousNode = previousNode.getLastDescendant();
28
+ return previousNode === null || $isLineBreakNode(previousNode) || $isTextNode(previousNode) && endsWithSeparator(previousNode.getTextContent());
29
+ }
30
+ function isNextNodeValid(node) {
31
+ let nextNode = node.getNextSibling();
32
+ if ($isElementNode(nextNode))
33
+ nextNode = nextNode.getFirstDescendant();
34
+ return nextNode === null || $isLineBreakNode(nextNode) || $isTextNode(nextNode) && startsWithSeparator(nextNode.getTextContent());
35
+ }
36
+ function isContentAroundIsValid(matchStart, matchEnd, text, node) {
37
+ const contentBeforeIsValid = matchStart > 0 ? isSeparator(text[matchStart - 1]) : isPreviousNodeValid(node);
38
+ if (!contentBeforeIsValid)
39
+ return false;
40
+ const contentAfterIsValid = matchEnd < text.length ? isSeparator(text[matchEnd]) : isNextNodeValid(node);
41
+ return contentAfterIsValid;
42
+ }
43
+ function handleLinkCreation(node, matchers, onChange) {
44
+ const nodeText = node.getTextContent();
45
+ let text = nodeText;
46
+ let invalidMatchEnd = 0;
47
+ let remainingTextNode = node;
48
+ let match;
49
+ while ((match = findFirstMatch(text, matchers)) && match !== null) {
50
+ const matchStart = match.index;
51
+ const matchLength = match.length;
52
+ const matchEnd = matchStart + matchLength;
53
+ const isValid = isContentAroundIsValid(
54
+ invalidMatchEnd + matchStart,
55
+ invalidMatchEnd + matchEnd,
56
+ nodeText,
57
+ node
58
+ );
59
+ if (isValid) {
60
+ let linkTextNode;
61
+ if (invalidMatchEnd + matchStart === 0) {
62
+ [linkTextNode, remainingTextNode] = remainingTextNode.splitText(
63
+ invalidMatchEnd + matchLength
64
+ );
65
+ } else {
66
+ [, linkTextNode, remainingTextNode] = remainingTextNode.splitText(
67
+ invalidMatchEnd + matchStart,
68
+ invalidMatchEnd + matchStart + matchLength
69
+ );
70
+ }
71
+ const linkNode = $createAutoLinkNode(match.url, match.attributes);
72
+ const textNode = $createTextNode(match.text);
73
+ textNode.setFormat(linkTextNode.getFormat());
74
+ textNode.setDetail(linkTextNode.getDetail());
75
+ linkNode.append(textNode);
76
+ linkTextNode.replace(linkNode);
77
+ onChange(match.url, null);
78
+ invalidMatchEnd = 0;
79
+ } else {
80
+ invalidMatchEnd += matchEnd;
81
+ }
82
+ text = text.substring(matchEnd);
83
+ }
84
+ }
85
+ function handleLinkEdit(linkNode, matchers, onChange) {
86
+ const children = linkNode.getChildren();
87
+ const childrenLength = children.length;
88
+ for (let i = 0; i < childrenLength; i++) {
89
+ const child = children[i];
90
+ if (!$isTextNode(child) || !child.isSimpleText()) {
91
+ replaceWithChildren(linkNode);
92
+ onChange(null, linkNode.getURL());
93
+ return;
94
+ }
95
+ }
96
+ const text = linkNode.getTextContent();
97
+ const match = findFirstMatch(text, matchers);
98
+ if (match === null || match.text !== text) {
99
+ replaceWithChildren(linkNode);
100
+ onChange(null, linkNode.getURL());
101
+ return;
102
+ }
103
+ if (!isPreviousNodeValid(linkNode) || !isNextNodeValid(linkNode)) {
104
+ replaceWithChildren(linkNode);
105
+ onChange(null, linkNode.getURL());
106
+ return;
107
+ }
108
+ const url = linkNode.getURL();
109
+ if (url !== match.url) {
110
+ linkNode.setURL(match.url);
111
+ onChange(match.url, url);
112
+ }
113
+ if (match.attributes) {
114
+ const rel = linkNode.getRel();
115
+ if (rel !== match.attributes.rel) {
116
+ linkNode.setRel(match.attributes.rel || null);
117
+ onChange(match.attributes.rel || null, rel);
118
+ }
119
+ const target = linkNode.getTarget();
120
+ if (target !== match.attributes.target) {
121
+ linkNode.setTarget(match.attributes.target || null);
122
+ onChange(match.attributes.target || null, target);
123
+ }
124
+ }
125
+ }
126
+ function handleBadNeighbors(textNode, onChange) {
127
+ const previousSibling = textNode.getPreviousSibling();
128
+ const nextSibling = textNode.getNextSibling();
129
+ const text = textNode.getTextContent();
130
+ if ($isAutoLinkNode(previousSibling) && !startsWithSeparator(text)) {
131
+ replaceWithChildren(previousSibling);
132
+ onChange(null, previousSibling.getURL());
133
+ }
134
+ if ($isAutoLinkNode(nextSibling) && !endsWithSeparator(text)) {
135
+ replaceWithChildren(nextSibling);
136
+ onChange(null, nextSibling.getURL());
137
+ }
138
+ }
139
+ function replaceWithChildren(node) {
140
+ const children = node.getChildren();
141
+ const childrenLength = children.length;
142
+ for (let j = childrenLength - 1; j >= 0; j--)
143
+ node.insertAfter(children[j]);
144
+ node.remove();
145
+ return children.map((child) => child.getLatest());
146
+ }
147
+ function useAutoLink(editor, matchers, onChange) {
148
+ watchEffect((onInvalidate) => {
149
+ if (!editor.hasNodes([AutoLinkNode]))
150
+ invariant(false, "LexicalAutoLinkPlugin: AutoLinkNode not registered on editor");
151
+ const onChangeWrapped = (url, prevUrl) => {
152
+ if (onChange)
153
+ onChange(url, prevUrl);
154
+ };
155
+ const fn = mergeRegister(
156
+ editor.registerNodeTransform(TextNode, (textNode) => {
157
+ const parent = textNode.getParentOrThrow();
158
+ if ($isAutoLinkNode(parent)) {
159
+ handleLinkEdit(parent, unref(matchers), onChangeWrapped);
160
+ } else if (!$isLinkNode(parent)) {
161
+ if (textNode.isSimpleText())
162
+ handleLinkCreation(textNode, unref(matchers), onChangeWrapped);
163
+ handleBadNeighbors(textNode, onChangeWrapped);
164
+ }
165
+ }),
166
+ editor.registerNodeTransform(AutoLinkNode, (linkNode) => {
167
+ handleLinkEdit(linkNode, unref(matchers), onChangeWrapped);
168
+ })
169
+ );
170
+ onInvalidate(fn);
171
+ });
172
+ }
173
+ export {
174
+ useAutoLink
175
+ };
176
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sources":["../../../../../../../../src/components/basic/doc-editor/core/plugins/LexicalAutoLinkPlugin/shared.ts"],"sourcesContent":["import type { LinkAttributes } from '@lexical/link'\r\nimport type { ElementNode, LexicalEditor, LexicalNode } from 'lexical'\r\nimport { unref, watchEffect } from 'vue'\r\nimport invariant from 'tiny-invariant'\r\n\r\nimport {\r\n $createAutoLinkNode,\r\n $isAutoLinkNode,\r\n $isLinkNode,\r\n AutoLinkNode,\r\n} from '@lexical/link'\r\nimport { mergeRegister } from '@lexical/utils'\r\nimport {\r\n $createTextNode,\r\n $isElementNode,\r\n $isLineBreakNode,\r\n $isTextNode,\r\n TextNode,\r\n} from 'lexical'\r\nimport type { MaybeRef } from 'vue'\r\n\r\ntype ChangeHandler = (url: string | null, prevUrl: string | null) => void\r\n\r\ninterface LinkMatcherResult {\r\n attributes?: LinkAttributes\r\n index: number\r\n length: number\r\n text: string\r\n url: string\r\n}\r\n\r\nexport type LinkMatcher = (text: string) => LinkMatcherResult | null\r\n\r\nfunction findFirstMatch(\r\n text: string,\r\n matchers: Array<LinkMatcher>,\r\n): LinkMatcherResult | null {\r\n for (let i = 0; i < matchers.length; i++) {\r\n const match = matchers[i](text)\r\n\r\n if (match)\r\n return match\r\n }\r\n\r\n return null\r\n}\r\n\r\nconst PUNCTUATION_OR_SPACE = /[.,;\\s]/\r\n\r\nfunction isSeparator(char: string): boolean {\r\n return PUNCTUATION_OR_SPACE.test(char)\r\n}\r\n\r\nfunction endsWithSeparator(textContent: string): boolean {\r\n return isSeparator(textContent[textContent.length - 1])\r\n}\r\n\r\nfunction startsWithSeparator(textContent: string): boolean {\r\n return isSeparator(textContent[0])\r\n}\r\n\r\nfunction isPreviousNodeValid(node: LexicalNode): boolean {\r\n let previousNode = node.getPreviousSibling()\r\n if ($isElementNode(previousNode))\r\n previousNode = previousNode.getLastDescendant()\r\n\r\n return (\r\n previousNode === null\r\n || $isLineBreakNode(previousNode)\r\n || ($isTextNode(previousNode)\r\n && endsWithSeparator(previousNode.getTextContent()))\r\n )\r\n}\r\n\r\nfunction isNextNodeValid(node: LexicalNode): boolean {\r\n let nextNode = node.getNextSibling()\r\n if ($isElementNode(nextNode))\r\n nextNode = nextNode.getFirstDescendant()\r\n\r\n return (\r\n nextNode === null\r\n || $isLineBreakNode(nextNode)\r\n || ($isTextNode(nextNode) && startsWithSeparator(nextNode.getTextContent()))\r\n )\r\n}\r\n\r\nfunction isContentAroundIsValid(\r\n matchStart: number,\r\n matchEnd: number,\r\n text: string,\r\n node: TextNode,\r\n): boolean {\r\n const contentBeforeIsValid\r\n = matchStart > 0\r\n ? isSeparator(text[matchStart - 1])\r\n : isPreviousNodeValid(node)\r\n if (!contentBeforeIsValid)\r\n return false\r\n\r\n const contentAfterIsValid\r\n = matchEnd < text.length\r\n ? isSeparator(text[matchEnd])\r\n : isNextNodeValid(node)\r\n return contentAfterIsValid\r\n}\r\n\r\nfunction handleLinkCreation(\r\n node: TextNode,\r\n matchers: Array<LinkMatcher>,\r\n onChange: ChangeHandler,\r\n): void {\r\n const nodeText = node.getTextContent()\r\n let text = nodeText\r\n let invalidMatchEnd = 0\r\n let remainingTextNode = node\r\n let match\r\n\r\n // eslint-disable-next-line no-cond-assign\r\n while ((match = findFirstMatch(text, matchers)) && match !== null) {\r\n const matchStart = match.index\r\n const matchLength = match.length\r\n const matchEnd = matchStart + matchLength\r\n const isValid = isContentAroundIsValid(\r\n invalidMatchEnd + matchStart,\r\n invalidMatchEnd + matchEnd,\r\n nodeText,\r\n node,\r\n )\r\n\r\n if (isValid) {\r\n let linkTextNode\r\n if (invalidMatchEnd + matchStart === 0) {\r\n [linkTextNode, remainingTextNode] = remainingTextNode.splitText(\r\n invalidMatchEnd + matchLength,\r\n )\r\n }\r\n else {\r\n [, linkTextNode, remainingTextNode] = remainingTextNode.splitText(\r\n invalidMatchEnd + matchStart,\r\n invalidMatchEnd + matchStart + matchLength,\r\n )\r\n }\r\n const linkNode = $createAutoLinkNode(match.url, match.attributes)\r\n const textNode = $createTextNode(match.text)\r\n textNode.setFormat(linkTextNode.getFormat())\r\n textNode.setDetail(linkTextNode.getDetail())\r\n linkNode.append(textNode)\r\n linkTextNode.replace(linkNode)\r\n onChange(match.url, null)\r\n invalidMatchEnd = 0\r\n }\r\n else {\r\n invalidMatchEnd += matchEnd\r\n }\r\n\r\n text = text.substring(matchEnd)\r\n }\r\n}\r\n\r\nfunction handleLinkEdit(\r\n linkNode: AutoLinkNode,\r\n matchers: Array<LinkMatcher>,\r\n onChange: ChangeHandler,\r\n): void {\r\n // Check children are simple text\r\n const children = linkNode.getChildren()\r\n const childrenLength = children.length\r\n for (let i = 0; i < childrenLength; i++) {\r\n const child = children[i]\r\n if (!$isTextNode(child) || !child.isSimpleText()) {\r\n replaceWithChildren(linkNode)\r\n onChange(null, linkNode.getURL())\r\n return\r\n }\r\n }\r\n\r\n // Check text content fully matches\r\n const text = linkNode.getTextContent()\r\n const match = findFirstMatch(text, matchers)\r\n if (match === null || match.text !== text) {\r\n replaceWithChildren(linkNode)\r\n onChange(null, linkNode.getURL())\r\n return\r\n }\r\n\r\n // Check neighbors\r\n if (!isPreviousNodeValid(linkNode) || !isNextNodeValid(linkNode)) {\r\n replaceWithChildren(linkNode)\r\n onChange(null, linkNode.getURL())\r\n return\r\n }\r\n\r\n const url = linkNode.getURL()\r\n if (url !== match.url) {\r\n linkNode.setURL(match.url)\r\n onChange(match.url, url)\r\n }\r\n\r\n if (match.attributes) {\r\n const rel = linkNode.getRel()\r\n if (rel !== match.attributes.rel) {\r\n linkNode.setRel(match.attributes.rel || null)\r\n onChange(match.attributes.rel || null, rel)\r\n }\r\n\r\n const target = linkNode.getTarget()\r\n if (target !== match.attributes.target) {\r\n linkNode.setTarget(match.attributes.target || null)\r\n onChange(match.attributes.target || null, target)\r\n }\r\n }\r\n}\r\n\r\n// Bad neighbours are edits in neighbor nodes that make AutoLinks incompatible.\r\n// Given the creation preconditions, these can only be simple text nodes.\r\nfunction handleBadNeighbors(textNode: TextNode, onChange: ChangeHandler): void {\r\n const previousSibling = textNode.getPreviousSibling()\r\n const nextSibling = textNode.getNextSibling()\r\n const text = textNode.getTextContent()\r\n\r\n if ($isAutoLinkNode(previousSibling) && !startsWithSeparator(text)) {\r\n replaceWithChildren(previousSibling)\r\n onChange(null, previousSibling.getURL())\r\n }\r\n\r\n if ($isAutoLinkNode(nextSibling) && !endsWithSeparator(text)) {\r\n replaceWithChildren(nextSibling)\r\n onChange(null, nextSibling.getURL())\r\n }\r\n}\r\n\r\nfunction replaceWithChildren(node: ElementNode): Array<LexicalNode> {\r\n const children = node.getChildren()\r\n const childrenLength = children.length\r\n\r\n for (let j = childrenLength - 1; j >= 0; j--)\r\n node.insertAfter(children[j])\r\n\r\n node.remove()\r\n return children.map(child => child.getLatest())\r\n}\r\n\r\nexport function useAutoLink(\r\n editor: LexicalEditor,\r\n matchers: MaybeRef<Array<LinkMatcher>>,\r\n onChange?: ChangeHandler,\r\n) {\r\n watchEffect((onInvalidate) => {\r\n if (!editor.hasNodes([AutoLinkNode]))\r\n invariant(false, 'LexicalAutoLinkPlugin: AutoLinkNode not registered on editor')\r\n\r\n const onChangeWrapped = (url: string | null, prevUrl: string | null) => {\r\n if (onChange)\r\n onChange(url, prevUrl)\r\n }\r\n\r\n const fn = mergeRegister(\r\n editor.registerNodeTransform(TextNode, (textNode: TextNode) => {\r\n const parent = textNode.getParentOrThrow()\r\n if ($isAutoLinkNode(parent)) {\r\n handleLinkEdit(parent, unref(matchers), onChangeWrapped)\r\n }\r\n else if (!$isLinkNode(parent)) {\r\n if (textNode.isSimpleText())\r\n handleLinkCreation(textNode, unref(matchers), onChangeWrapped)\r\n\r\n handleBadNeighbors(textNode, onChangeWrapped)\r\n }\r\n }),\r\n\r\n editor.registerNodeTransform(AutoLinkNode, (linkNode: AutoLinkNode) => {\r\n handleLinkEdit(linkNode, unref(matchers), onChangeWrapped)\r\n }),\r\n )\r\n\r\n onInvalidate(fn)\r\n })\r\n}\r\n"],"names":[],"mappings":"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"}