@maketribe/ms-app 3.2.33 → 3.2.34

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 (297) 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/FontStyleTool.vue.js +10 -2
  89. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/FontStyleTool.vue.js.map +1 -1
  90. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js +16 -4
  91. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js.map +1 -1
  92. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/index.vue.js +10 -2
  93. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/index.vue.js.map +1 -1
  94. package/dist/cjs/components/basic/doc-editor/themes/doc-editor-edit.css.js +1 -1
  95. package/dist/cjs/components/basic/doc-editor/themes/doc-editor-edit.css.js.map +1 -1
  96. package/dist/cjs/modules/cms/pages/cms-contents/components/article-list.vue.js +7 -5
  97. package/dist/cjs/modules/cms/pages/cms-contents/components/article-list.vue.js.map +1 -1
  98. package/dist/cjs/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js +2 -2
  99. package/dist/cjs/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js.map +1 -1
  100. package/dist/cjs/modules/cms/pages/cms-contents/components/part-info.vue.js +0 -3
  101. package/dist/cjs/modules/cms/pages/cms-contents/components/part-info.vue.js.map +1 -1
  102. package/dist/cjs/modules/cms/pages/cms-contents/index.vue2.js +9 -5
  103. package/dist/cjs/modules/cms/pages/cms-contents/index.vue2.js.map +1 -1
  104. package/dist/cjs/modules/ms/components/rich-text-editor/index.js.map +1 -1
  105. package/dist/cjs/modules/ms/components/rich-text-editor/rich-text-editor-options.js +2 -4
  106. package/dist/cjs/modules/ms/components/rich-text-editor/rich-text-editor-options.js.map +1 -1
  107. package/dist/cjs/modules/ms/components/rich-text-editor/rich-text-editor.js +5 -4
  108. package/dist/cjs/modules/ms/components/rich-text-editor/rich-text-editor.js.map +1 -1
  109. package/dist/esm/components/basic/doc-editor/core/LexicalComposer.vue.js +75 -0
  110. package/dist/esm/components/basic/doc-editor/core/LexicalComposer.vue.js.map +1 -0
  111. package/dist/esm/components/basic/doc-editor/core/LexicalComposer.vue2.js +5 -0
  112. package/dist/esm/components/basic/doc-editor/core/LexicalComposer.vue2.js.map +1 -0
  113. package/dist/esm/components/basic/doc-editor/core/composables/inject.js +5 -0
  114. package/dist/esm/components/basic/doc-editor/core/composables/inject.js.map +1 -0
  115. package/dist/esm/components/basic/doc-editor/core/composables/listenerManager.js +18 -0
  116. package/dist/esm/components/basic/doc-editor/core/composables/listenerManager.js.map +1 -0
  117. package/dist/esm/components/basic/doc-editor/core/composables/useCanShowPlaceholder.js +31 -0
  118. package/dist/esm/components/basic/doc-editor/core/composables/useCanShowPlaceholder.js.map +1 -0
  119. package/dist/esm/components/basic/doc-editor/core/composables/useDecorators.js +31 -0
  120. package/dist/esm/components/basic/doc-editor/core/composables/useDecorators.js.map +1 -0
  121. package/dist/esm/components/basic/doc-editor/core/composables/useHistory.js +15 -0
  122. package/dist/esm/components/basic/doc-editor/core/composables/useHistory.js.map +1 -0
  123. package/dist/esm/components/basic/doc-editor/core/composables/useLexicalComposer.js +17 -0
  124. package/dist/esm/components/basic/doc-editor/core/composables/useLexicalComposer.js.map +1 -0
  125. package/dist/esm/components/basic/doc-editor/core/composables/useLexicalTextEntity.js +16 -0
  126. package/dist/esm/components/basic/doc-editor/core/composables/useLexicalTextEntity.js.map +1 -0
  127. package/dist/esm/components/basic/doc-editor/core/composables/useList.js +48 -0
  128. package/dist/esm/components/basic/doc-editor/core/composables/useList.js.map +1 -0
  129. package/dist/esm/components/basic/doc-editor/core/composables/useMounted.js +14 -0
  130. package/dist/esm/components/basic/doc-editor/core/composables/useMounted.js.map +1 -0
  131. package/dist/esm/components/basic/doc-editor/core/composables/useRichTextSetup.js +16 -0
  132. package/dist/esm/components/basic/doc-editor/core/composables/useRichTextSetup.js.map +1 -0
  133. package/dist/esm/components/basic/doc-editor/core/element-block.js +10 -1
  134. package/dist/esm/components/basic/doc-editor/core/element-block.js.map +1 -1
  135. package/dist/esm/components/basic/doc-editor/core/index.js +14 -0
  136. package/dist/esm/components/basic/doc-editor/core/index.js.map +1 -1
  137. package/dist/esm/components/basic/doc-editor/{plugins/RichTextPlugin/nodes/RichTextNode.js → core/nodes/RichElementNode.js} +82 -36
  138. package/dist/esm/components/basic/doc-editor/core/nodes/RichElementNode.js.map +1 -0
  139. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalAutoFocusPlugin.vue.js +43 -0
  140. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalAutoFocusPlugin.vue.js.map +1 -0
  141. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalAutoFocusPlugin.vue2.js +5 -0
  142. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalAutoFocusPlugin.vue2.js.map +1 -0
  143. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalAutoLinkPlugin/index.vue.js +5 -0
  144. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalAutoLinkPlugin/index.vue.js.map +1 -0
  145. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalAutoLinkPlugin/index.vue2.js +38 -0
  146. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalAutoLinkPlugin/index.vue2.js.map +1 -0
  147. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalAutoLinkPlugin/shared.js +176 -0
  148. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalAutoLinkPlugin/shared.js.map +1 -0
  149. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalCheckListPlugin.vue.js +216 -0
  150. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalCheckListPlugin.vue.js.map +1 -0
  151. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalCheckListPlugin.vue2.js +5 -0
  152. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalCheckListPlugin.vue2.js.map +1 -0
  153. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalHashtagPlugin.vue.js +76 -0
  154. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalHashtagPlugin.vue.js.map +1 -0
  155. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalHashtagPlugin.vue2.js +5 -0
  156. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalHashtagPlugin.vue2.js.map +1 -0
  157. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalHistoryPlugin.vue.js +30 -0
  158. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalHistoryPlugin.vue.js.map +1 -0
  159. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalHistoryPlugin.vue2.js +5 -0
  160. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalHistoryPlugin.vue2.js.map +1 -0
  161. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalLinkPlugin.vue.js +5 -0
  162. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalLinkPlugin.vue.js.map +1 -0
  163. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalLinkPlugin.vue2.js +78 -0
  164. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalLinkPlugin.vue2.js.map +1 -0
  165. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalListPlugin.vue.js +26 -0
  166. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalListPlugin.vue.js.map +1 -0
  167. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalListPlugin.vue2.js +5 -0
  168. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalListPlugin.vue2.js.map +1 -0
  169. package/dist/esm/components/basic/doc-editor/{plugins/RichTextPlugin → core/plugins/LexicalRichTextPlugin}/ContentEditable.vue.js +12 -1
  170. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalRichTextPlugin/ContentEditable.vue.js.map +1 -0
  171. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalRichTextPlugin/DecoratedTeleports.js +25 -0
  172. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalRichTextPlugin/DecoratedTeleports.js.map +1 -0
  173. package/dist/esm/components/basic/doc-editor/{plugins/RichTextPlugin → core/plugins/LexicalRichTextPlugin}/index.vue.js +19 -8
  174. package/dist/esm/components/basic/doc-editor/core/plugins/LexicalRichTextPlugin/index.vue.js.map +1 -0
  175. package/dist/esm/components/basic/doc-editor/editor.vue.js +31 -24
  176. package/dist/esm/components/basic/doc-editor/editor.vue.js.map +1 -1
  177. package/dist/esm/components/basic/doc-editor/{plugins/nodes.js → nodes.js} +13 -11
  178. package/dist/esm/components/basic/doc-editor/nodes.js.map +1 -0
  179. package/dist/esm/components/basic/doc-editor/plugins/AutoLinkPlugin/index.vue.js +5 -3
  180. package/dist/esm/components/basic/doc-editor/plugins/AutoLinkPlugin/index.vue.js.map +1 -1
  181. package/dist/esm/components/basic/doc-editor/plugins/ElementBlockSelectionPlugin/index.vue.js +12 -3
  182. package/dist/esm/components/basic/doc-editor/plugins/ElementBlockSelectionPlugin/index.vue.js.map +1 -1
  183. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/index.vue.js +9 -1
  184. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/index.vue.js.map +1 -1
  185. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js +14 -6
  186. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js.map +1 -1
  187. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/composables.js.map +1 -1
  188. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/index.vue.js +9 -1
  189. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/index.vue.js.map +1 -1
  190. package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/composables.js +10 -1
  191. package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/composables.js.map +1 -1
  192. package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/index.vue.js +12 -2
  193. package/dist/esm/components/basic/doc-editor/plugins/TemplatePlugin/index.vue.js.map +1 -1
  194. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/ContentStyleTool.vue.js +7 -1
  195. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/ContentStyleTool.vue.js.map +1 -1
  196. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/FontStyleTool.vue.js +9 -1
  197. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/FontStyleTool.vue.js.map +1 -1
  198. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js +13 -1
  199. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js.map +1 -1
  200. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/index.vue.js +9 -1
  201. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/index.vue.js.map +1 -1
  202. package/dist/esm/components/basic/doc-editor/themes/doc-editor-edit.css.js +1 -1
  203. package/dist/esm/components/basic/doc-editor/themes/doc-editor-edit.css.js.map +1 -1
  204. package/dist/esm/modules/cms/pages/cms-contents/components/article-list.vue.js +7 -5
  205. package/dist/esm/modules/cms/pages/cms-contents/components/article-list.vue.js.map +1 -1
  206. package/dist/esm/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js +2 -2
  207. package/dist/esm/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js.map +1 -1
  208. package/dist/esm/modules/cms/pages/cms-contents/components/part-info.vue.js +0 -3
  209. package/dist/esm/modules/cms/pages/cms-contents/components/part-info.vue.js.map +1 -1
  210. package/dist/esm/modules/cms/pages/cms-contents/index.vue2.js +9 -5
  211. package/dist/esm/modules/cms/pages/cms-contents/index.vue2.js.map +1 -1
  212. package/dist/esm/modules/ms/components/rich-text-editor/index.js.map +1 -1
  213. package/dist/esm/modules/ms/components/rich-text-editor/rich-text-editor-options.js +2 -4
  214. package/dist/esm/modules/ms/components/rich-text-editor/rich-text-editor-options.js.map +1 -1
  215. package/dist/esm/modules/ms/components/rich-text-editor/rich-text-editor.js +5 -4
  216. package/dist/esm/modules/ms/components/rich-text-editor/rich-text-editor.js.map +1 -1
  217. package/dist/style/components/basic/doc-editor/index.css +1 -1
  218. package/dist/style/components/index.css +1 -1
  219. package/dist/style/index.css +2 -2
  220. package/dist/style/modules/cms/index.css +1 -1
  221. package/dist/style/modules/cms/pages/cms-contents/components/article-list.css +1 -1
  222. package/dist/style/modules/cms/pages/cms-contents/index.css +1 -1
  223. package/dist/style/modules/ms/components/rich-text-editor/index.css +1 -1
  224. package/dist/style/modules/ms/index.css +1 -1
  225. package/dist/style/src/components/basic/doc-editor/index.scss +3 -2
  226. package/dist/style/src/modules/cms/pages/cms-contents/components/article-list.scss +1 -0
  227. package/dist/style/src/modules/ms/components/rich-text-editor/index.scss +1 -1
  228. package/dist/types/components/basic/doc-editor/core/LexicalComposer.vue.d.ts +29 -0
  229. package/dist/types/components/basic/doc-editor/core/composables/index.d.ts +15 -0
  230. package/dist/types/components/basic/doc-editor/core/composables/inject.d.ts +1 -0
  231. package/dist/types/components/basic/doc-editor/core/composables/listenerManager.d.ts +1 -0
  232. package/dist/types/components/basic/doc-editor/core/composables/useCanShowPlaceholder.d.ts +2 -0
  233. package/dist/types/components/basic/doc-editor/core/composables/useCharacterLimit.d.ts +9 -0
  234. package/dist/types/components/basic/doc-editor/core/composables/useDecorators.d.ts +4 -0
  235. package/dist/types/components/basic/doc-editor/core/composables/useEffect.d.ts +5 -0
  236. package/dist/types/components/basic/doc-editor/core/composables/useHistory.d.ts +4 -0
  237. package/dist/types/components/basic/doc-editor/core/composables/useLexicalCommandsLog.d.ts +5 -0
  238. package/dist/types/components/basic/doc-editor/core/composables/useLexicalComposer.d.ts +6 -0
  239. package/dist/types/components/basic/doc-editor/core/composables/useLexicalIsTextContentEmpty.d.ts +2 -0
  240. package/dist/types/components/basic/doc-editor/core/composables/useLexicalNodeSelection.d.ts +7 -0
  241. package/dist/types/components/basic/doc-editor/core/composables/useLexicalTextEntity.d.ts +3 -0
  242. package/dist/types/components/basic/doc-editor/core/composables/useList.d.ts +2 -0
  243. package/dist/types/components/basic/doc-editor/core/composables/useMounted.d.ts +4 -0
  244. package/dist/types/components/basic/doc-editor/core/composables/usePlainTextSetup.d.ts +2 -0
  245. package/dist/types/components/basic/doc-editor/core/composables/useReactiveEditor.d.ts +2 -0
  246. package/dist/types/components/basic/doc-editor/core/composables/useRichTextSetup.d.ts +2 -0
  247. package/dist/types/components/basic/doc-editor/core/composables/useTableOfContents.d.ts +8 -0
  248. package/dist/types/components/basic/doc-editor/core/index.d.ts +8 -0
  249. package/dist/types/components/basic/doc-editor/core/nodes/RichElementNode.d.ts +46 -0
  250. package/dist/types/components/basic/doc-editor/core/nodes/index.d.ts +1 -0
  251. package/dist/types/components/basic/doc-editor/core/plugins/LexicalAutoFocusPlugin.vue.d.ts +15 -0
  252. package/dist/types/components/basic/doc-editor/core/plugins/LexicalAutoLinkPlugin/index.vue.d.ts +26 -0
  253. package/dist/types/components/basic/doc-editor/core/plugins/LexicalAutoLinkPlugin/shared.d.ts +14 -0
  254. package/dist/types/components/basic/doc-editor/core/plugins/LexicalCheckListPlugin.vue.d.ts +2 -0
  255. package/dist/types/components/basic/doc-editor/core/plugins/LexicalHashtagPlugin.vue.d.ts +2 -0
  256. package/dist/types/components/basic/doc-editor/core/plugins/LexicalHistoryPlugin.vue.d.ts +16 -0
  257. package/dist/types/components/basic/doc-editor/core/plugins/LexicalLinkPlugin.vue.d.ts +15 -0
  258. package/dist/types/components/basic/doc-editor/core/plugins/LexicalListPlugin.vue.d.ts +2 -0
  259. package/dist/types/components/basic/doc-editor/core/types.d.ts +2 -0
  260. package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/composables.d.ts +1 -1
  261. package/dist/types/components/basic/doc-editor/plugins/TemplatePlugin/composables.d.ts +1 -0
  262. package/dist/types/components/basic/doc-editor/plugins/index.d.ts +1 -3
  263. package/dist/types/components/data-model/data-table/views/table/index.d.ts +1 -1
  264. package/dist/types/components/data-model/data-table/views/table/table.d.ts +1 -1
  265. package/dist/types/components/data-model/data-table/views/tree/index.d.ts +1 -1
  266. package/dist/types/components/data-model/data-table/views/tree/tree.d.ts +1 -1
  267. package/dist/types/modules/ms/components/material-list/material-item.vue.d.ts +1 -1
  268. package/dist/types/modules/ms/components/rich-text-editor/index.d.ts +2 -2
  269. package/dist/types/modules/ms/components/rich-text-editor/rich-text-editor-options.d.ts +1 -1
  270. package/dist/types/modules/ms/components/rich-text-editor/rich-text-editor.d.ts +2 -2
  271. package/package.json +21 -22
  272. package/dist/cjs/components/basic/doc-editor/plugins/RichTextPlugin/ContentEditable.vue.js.map +0 -1
  273. package/dist/cjs/components/basic/doc-editor/plugins/RichTextPlugin/DecoratedTeleports.js +0 -13
  274. package/dist/cjs/components/basic/doc-editor/plugins/RichTextPlugin/DecoratedTeleports.js.map +0 -1
  275. package/dist/cjs/components/basic/doc-editor/plugins/RichTextPlugin/index.vue.js.map +0 -1
  276. package/dist/cjs/components/basic/doc-editor/plugins/RichTextPlugin/nodes/RichTextNode.js.map +0 -1
  277. package/dist/cjs/components/basic/doc-editor/plugins/nodes.js.map +0 -1
  278. package/dist/esm/components/basic/doc-editor/plugins/RichTextPlugin/ContentEditable.vue.js.map +0 -1
  279. package/dist/esm/components/basic/doc-editor/plugins/RichTextPlugin/DecoratedTeleports.js +0 -14
  280. package/dist/esm/components/basic/doc-editor/plugins/RichTextPlugin/DecoratedTeleports.js.map +0 -1
  281. package/dist/esm/components/basic/doc-editor/plugins/RichTextPlugin/index.vue.js.map +0 -1
  282. package/dist/esm/components/basic/doc-editor/plugins/RichTextPlugin/nodes/RichTextNode.js.map +0 -1
  283. package/dist/esm/components/basic/doc-editor/plugins/nodes.js.map +0 -1
  284. package/dist/types/components/basic/doc-editor/plugins/RichTextPlugin/nodes/RichTextNode.d.ts +0 -13
  285. package/dist/types/components/basic/doc-editor/plugins/VideoPlugin/VideoNode.d.ts +0 -23
  286. /package/dist/cjs/components/basic/doc-editor/{plugins/RichTextPlugin → core/plugins/LexicalRichTextPlugin}/ContentEditable.vue2.js +0 -0
  287. /package/dist/cjs/components/basic/doc-editor/{plugins/RichTextPlugin → core/plugins/LexicalRichTextPlugin}/ContentEditable.vue2.js.map +0 -0
  288. /package/dist/cjs/components/basic/doc-editor/{plugins/RichTextPlugin → core/plugins/LexicalRichTextPlugin}/index.vue2.js +0 -0
  289. /package/dist/cjs/components/basic/doc-editor/{plugins/RichTextPlugin → core/plugins/LexicalRichTextPlugin}/index.vue2.js.map +0 -0
  290. /package/dist/esm/components/basic/doc-editor/{plugins/RichTextPlugin → core/plugins/LexicalRichTextPlugin}/ContentEditable.vue2.js +0 -0
  291. /package/dist/esm/components/basic/doc-editor/{plugins/RichTextPlugin → core/plugins/LexicalRichTextPlugin}/ContentEditable.vue2.js.map +0 -0
  292. /package/dist/esm/components/basic/doc-editor/{plugins/RichTextPlugin → core/plugins/LexicalRichTextPlugin}/index.vue2.js +0 -0
  293. /package/dist/esm/components/basic/doc-editor/{plugins/RichTextPlugin → core/plugins/LexicalRichTextPlugin}/index.vue2.js.map +0 -0
  294. /package/dist/types/components/basic/doc-editor/{plugins/RichTextPlugin → core/plugins/LexicalRichTextPlugin}/ContentEditable.vue.d.ts +0 -0
  295. /package/dist/types/components/basic/doc-editor/{plugins/RichTextPlugin → core/plugins/LexicalRichTextPlugin}/DecoratedTeleports.d.ts +0 -0
  296. /package/dist/types/components/basic/doc-editor/{plugins/RichTextPlugin → core/plugins/LexicalRichTextPlugin}/index.vue.d.ts +0 -0
  297. /package/dist/types/components/basic/doc-editor/{plugins/nodes.d.ts → nodes.d.ts} +0 -0
@@ -1,18 +1,38 @@
1
1
  "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
2
5
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
6
  const lexical = require("lexical");
4
- class RichTextNode extends lexical.TextNode {
7
+ class RichElementNode extends lexical.ElementNode {
8
+ /**
9
+ *
10
+ * @param tagName
11
+ * @param className
12
+ * @param style
13
+ * @param key
14
+ */
15
+ constructor(tagName, className, style, key) {
16
+ super(key);
17
+ __publicField(this, "__tagName");
18
+ __publicField(this, "__class");
19
+ __publicField(this, "__style");
20
+ this.__tagName = tagName, this.__class = className;
21
+ this.__style = style || "";
22
+ }
5
23
  static getType() {
6
- return "rich-text";
24
+ return "rich-element";
7
25
  }
8
26
  static clone(node) {
9
- return new RichTextNode(node.__key);
27
+ return new RichElementNode(node.__tagName, node.__class, node.__style, node.__key);
10
28
  }
11
29
  static importJSON(serializedNode) {
12
- return lexical.TextNode.importJSON(serializedNode);
30
+ return new RichElementNode(serializedNode.tag, serializedNode.class, serializedNode.style);
13
31
  }
14
32
  static importDOM() {
15
33
  return {
34
+ div: $covertRichElementDOM,
35
+ section: $covertRichElementDOM,
16
36
  b: () => ({
17
37
  conversion: convertBringAttentionToElement,
18
38
  priority: 4
@@ -55,24 +75,54 @@ class RichTextNode extends lexical.TextNode {
55
75
  })
56
76
  };
57
77
  }
58
- constructor(text, key) {
59
- super(text, key);
60
- }
78
+ /**
79
+ * 导出JSON
80
+ * @returns
81
+ */
61
82
  exportJSON() {
62
83
  return {
63
- ...super.exportJSON()
84
+ ...super.exportJSON(),
85
+ type: this.getType(),
86
+ tag: this.__tagName,
87
+ class: this.__class,
88
+ style: this.__style,
89
+ version: 1
64
90
  };
65
91
  }
92
+ /**
93
+ * 导出DOM
94
+ * @returns
95
+ */
96
+ exportDOM() {
97
+ const element = document.createElement(this.__tagName);
98
+ if (this.__class) {
99
+ element.setAttribute("class", this.__class);
100
+ }
101
+ if (this.__style) {
102
+ element.setAttribute("style", this.__style);
103
+ }
104
+ return { element };
105
+ }
106
+ /**
107
+ * 创建渲染DOM
108
+ * @param config
109
+ * @returns
110
+ */
111
+ createDOM(config) {
112
+ return this.exportDOM().element;
113
+ }
66
114
  }
67
- function convertBringAttentionToElement(domNode) {
68
- const b = domNode;
69
- const hasNormalFontWeight = b.style.fontWeight === "normal";
115
+ const $covertRichElementDOM = (domNode) => {
70
116
  return {
71
- forChild: applyTextFormatFromStyle(b.style, hasNormalFontWeight ? void 0 : "bold"),
72
- node: null
117
+ conversion: () => {
118
+ return {
119
+ node: new RichElementNode(domNode.tagName, domNode.getAttribute("class"), domNode.getAttribute("style") || "")
120
+ };
121
+ },
122
+ priority: 3
73
123
  };
74
- }
75
- var nodeNameToTextFormat = {
124
+ };
125
+ const nodeNameToTextFormat = {
76
126
  code: "code",
77
127
  em: "italic",
78
128
  i: "italic",
@@ -82,6 +132,14 @@ var nodeNameToTextFormat = {
82
132
  sup: "superscript",
83
133
  u: "underline"
84
134
  };
135
+ function convertBringAttentionToElement(domNode) {
136
+ const b = domNode;
137
+ const hasNormalFontWeight = b.style.fontWeight === "normal";
138
+ return {
139
+ forChild: applyTextFormatFromStyle(b.style, hasNormalFontWeight ? void 0 : "bold", domNode),
140
+ node: null
141
+ };
142
+ }
85
143
  function convertTextFormatElement(domNode) {
86
144
  const format = nodeNameToTextFormat[domNode.nodeName.toLowerCase()];
87
145
  if (format === void 0) {
@@ -90,7 +148,7 @@ function convertTextFormatElement(domNode) {
90
148
  };
91
149
  }
92
150
  return {
93
- forChild: applyTextFormatFromStyle(domNode.style, format),
151
+ forChild: applyTextFormatFromStyle(domNode.style, format, domNode),
94
152
  node: null
95
153
  };
96
154
  }
@@ -98,11 +156,11 @@ function convertSpanElement(domNode) {
98
156
  const span = domNode;
99
157
  const style = span.style;
100
158
  return {
101
- forChild: applyTextFormatFromStyle(style, null),
159
+ forChild: applyTextFormatFromStyle(style, null, domNode),
102
160
  node: null
103
161
  };
104
162
  }
105
- function applyTextFormatFromStyle(style, shouldApply) {
163
+ function applyTextFormatFromStyle(style, shouldApply, domNode) {
106
164
  const fontWeight = style.fontWeight;
107
165
  const textDecoration = style.textDecoration.split(" ");
108
166
  const hasBoldFontWeight = fontWeight === "700" || fontWeight === "bold";
@@ -135,24 +193,12 @@ function applyTextFormatFromStyle(style, shouldApply) {
135
193
  if (shouldApply && !lexicalNode.hasFormat(shouldApply)) {
136
194
  lexicalNode.toggleFormat(shouldApply);
137
195
  }
138
- let styleStr = "";
139
- if (style.color) {
140
- styleStr += `color:${style.color};`;
141
- }
142
- if (style.fontSize) {
143
- styleStr += `font-size:${style.fontSize};`;
144
- }
145
- if (style.fontFamily) {
146
- styleStr += `font-family:${style.fontFamily};`;
147
- }
148
- if (style.backgroundColor) {
149
- styleStr += `background-color:${style.backgroundColor};`;
150
- }
151
- if (styleStr) {
152
- lexicalNode.setStyle(styleStr);
196
+ const inlineStyle = domNode.getAttribute("style");
197
+ if (inlineStyle) {
198
+ lexicalNode.setStyle(inlineStyle);
153
199
  }
154
200
  return lexicalNode;
155
201
  };
156
202
  }
157
- exports.RichTextNode = RichTextNode;
158
- //# sourceMappingURL=RichTextNode.js.map
203
+ exports.RichElementNode = RichElementNode;
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":["ElementNode","$isTextNode"],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ const vue = require("vue");
3
+ require("@lexical/text");
4
+ require("@lexical/utils");
5
+ require("@lexical/overflow");
6
+ require("lexical");
7
+ require("tiny-invariant");
8
+ require("@lexical/history");
9
+ const useLexicalComposer = require("../composables/useLexicalComposer.js");
10
+ require("@lexical/list");
11
+ require("@lexical/dragon");
12
+ require("@lexical/plain-text");
13
+ require("@lexical/rich-text");
14
+ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
15
+ __name: "LexicalAutoFocusPlugin",
16
+ props: {
17
+ defaultSelection: {}
18
+ },
19
+ setup(__props) {
20
+ const props = __props;
21
+ const editor = useLexicalComposer.useLexicalComposer();
22
+ vue.onMounted(() => {
23
+ vue.nextTick(() => {
24
+ editor.focus(
25
+ () => {
26
+ const activeElement = document.activeElement;
27
+ const rootElement = editor.getRootElement();
28
+ if (rootElement !== null && (activeElement === null || !rootElement.contains(activeElement))) {
29
+ rootElement.focus({ preventScroll: true });
30
+ }
31
+ },
32
+ { defaultSelection: props.defaultSelection }
33
+ );
34
+ });
35
+ });
36
+ return (_ctx, _cache) => {
37
+ return null;
38
+ };
39
+ }
40
+ });
41
+ module.exports = _sfc_main;
42
+ //# 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":["useLexicalComposer","onMounted","nextTick"],"mappings":";;;;;;;;;;;;;;;;;;;AAIA,UAAM,QAAQ;AAId,UAAM,SAASA,mBAAAA;AAEfC,QAAAA,UAAU,MAAM;AACdC,UAAAA,SAAS,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,4 @@
1
+ "use strict";
2
+ const LexicalAutoFocusPlugin_vue_vue_type_script_setup_true_lang = require("./LexicalAutoFocusPlugin.vue.js");
3
+ module.exports = LexicalAutoFocusPlugin_vue_vue_type_script_setup_true_lang;
4
+ //# sourceMappingURL=LexicalAutoFocusPlugin.vue2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LexicalAutoFocusPlugin.vue2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ const index_vue_vue_type_script_setup_true_lang = require("./index.vue2.js");
3
+ module.exports = index_vue_vue_type_script_setup_true_lang;
4
+ //# sourceMappingURL=index.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ const vue = require("vue");
3
+ require("@lexical/text");
4
+ require("@lexical/utils");
5
+ require("@lexical/overflow");
6
+ require("lexical");
7
+ require("tiny-invariant");
8
+ require("@lexical/history");
9
+ const useLexicalComposer = require("../../composables/useLexicalComposer.js");
10
+ require("@lexical/list");
11
+ require("@lexical/dragon");
12
+ require("@lexical/plain-text");
13
+ require("@lexical/rich-text");
14
+ const shared = require("./shared.js");
15
+ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
16
+ __name: "index",
17
+ props: {
18
+ matchers: {}
19
+ },
20
+ emits: ["change"],
21
+ setup(__props, { emit: __emit }) {
22
+ const props = __props;
23
+ const emit = __emit;
24
+ const editor = useLexicalComposer.useLexicalComposer();
25
+ shared.useAutoLink(editor, props.matchers, (url, prevUrl) => {
26
+ emit("change", {
27
+ url,
28
+ prevUrl
29
+ });
30
+ });
31
+ return (_ctx, _cache) => {
32
+ return null;
33
+ };
34
+ }
35
+ });
36
+ module.exports = _sfc_main;
37
+ //# 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":["useLexicalComposer","useAutoLink"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAIA,UAAM,QAAQ;AAId,UAAM,OAAO;AAIb,UAAM,SAASA,mBAAAA;AAEfC,WAAA,YAAY,QAAQ,MAAM,UAAU,CAAC,KAAoB,YAA2B;AAClF,WAAK,UAAU;AAAA,QACb;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IAAA,CACF;;;;;;;"}
@@ -0,0 +1,176 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const vue = require("vue");
4
+ const invariant = require("tiny-invariant");
5
+ const link = require("@lexical/link");
6
+ const utils = require("@lexical/utils");
7
+ const lexical = require("lexical");
8
+ function findFirstMatch(text, matchers) {
9
+ for (let i = 0; i < matchers.length; i++) {
10
+ const match = matchers[i](text);
11
+ if (match)
12
+ return match;
13
+ }
14
+ return null;
15
+ }
16
+ const PUNCTUATION_OR_SPACE = /[.,;\s]/;
17
+ function isSeparator(char) {
18
+ return PUNCTUATION_OR_SPACE.test(char);
19
+ }
20
+ function endsWithSeparator(textContent) {
21
+ return isSeparator(textContent[textContent.length - 1]);
22
+ }
23
+ function startsWithSeparator(textContent) {
24
+ return isSeparator(textContent[0]);
25
+ }
26
+ function isPreviousNodeValid(node) {
27
+ let previousNode = node.getPreviousSibling();
28
+ if (lexical.$isElementNode(previousNode))
29
+ previousNode = previousNode.getLastDescendant();
30
+ return previousNode === null || lexical.$isLineBreakNode(previousNode) || lexical.$isTextNode(previousNode) && endsWithSeparator(previousNode.getTextContent());
31
+ }
32
+ function isNextNodeValid(node) {
33
+ let nextNode = node.getNextSibling();
34
+ if (lexical.$isElementNode(nextNode))
35
+ nextNode = nextNode.getFirstDescendant();
36
+ return nextNode === null || lexical.$isLineBreakNode(nextNode) || lexical.$isTextNode(nextNode) && startsWithSeparator(nextNode.getTextContent());
37
+ }
38
+ function isContentAroundIsValid(matchStart, matchEnd, text, node) {
39
+ const contentBeforeIsValid = matchStart > 0 ? isSeparator(text[matchStart - 1]) : isPreviousNodeValid(node);
40
+ if (!contentBeforeIsValid)
41
+ return false;
42
+ const contentAfterIsValid = matchEnd < text.length ? isSeparator(text[matchEnd]) : isNextNodeValid(node);
43
+ return contentAfterIsValid;
44
+ }
45
+ function handleLinkCreation(node, matchers, onChange) {
46
+ const nodeText = node.getTextContent();
47
+ let text = nodeText;
48
+ let invalidMatchEnd = 0;
49
+ let remainingTextNode = node;
50
+ let match;
51
+ while ((match = findFirstMatch(text, matchers)) && match !== null) {
52
+ const matchStart = match.index;
53
+ const matchLength = match.length;
54
+ const matchEnd = matchStart + matchLength;
55
+ const isValid = isContentAroundIsValid(
56
+ invalidMatchEnd + matchStart,
57
+ invalidMatchEnd + matchEnd,
58
+ nodeText,
59
+ node
60
+ );
61
+ if (isValid) {
62
+ let linkTextNode;
63
+ if (invalidMatchEnd + matchStart === 0) {
64
+ [linkTextNode, remainingTextNode] = remainingTextNode.splitText(
65
+ invalidMatchEnd + matchLength
66
+ );
67
+ } else {
68
+ [, linkTextNode, remainingTextNode] = remainingTextNode.splitText(
69
+ invalidMatchEnd + matchStart,
70
+ invalidMatchEnd + matchStart + matchLength
71
+ );
72
+ }
73
+ const linkNode = link.$createAutoLinkNode(match.url, match.attributes);
74
+ const textNode = lexical.$createTextNode(match.text);
75
+ textNode.setFormat(linkTextNode.getFormat());
76
+ textNode.setDetail(linkTextNode.getDetail());
77
+ linkNode.append(textNode);
78
+ linkTextNode.replace(linkNode);
79
+ onChange(match.url, null);
80
+ invalidMatchEnd = 0;
81
+ } else {
82
+ invalidMatchEnd += matchEnd;
83
+ }
84
+ text = text.substring(matchEnd);
85
+ }
86
+ }
87
+ function handleLinkEdit(linkNode, matchers, onChange) {
88
+ const children = linkNode.getChildren();
89
+ const childrenLength = children.length;
90
+ for (let i = 0; i < childrenLength; i++) {
91
+ const child = children[i];
92
+ if (!lexical.$isTextNode(child) || !child.isSimpleText()) {
93
+ replaceWithChildren(linkNode);
94
+ onChange(null, linkNode.getURL());
95
+ return;
96
+ }
97
+ }
98
+ const text = linkNode.getTextContent();
99
+ const match = findFirstMatch(text, matchers);
100
+ if (match === null || match.text !== text) {
101
+ replaceWithChildren(linkNode);
102
+ onChange(null, linkNode.getURL());
103
+ return;
104
+ }
105
+ if (!isPreviousNodeValid(linkNode) || !isNextNodeValid(linkNode)) {
106
+ replaceWithChildren(linkNode);
107
+ onChange(null, linkNode.getURL());
108
+ return;
109
+ }
110
+ const url = linkNode.getURL();
111
+ if (url !== match.url) {
112
+ linkNode.setURL(match.url);
113
+ onChange(match.url, url);
114
+ }
115
+ if (match.attributes) {
116
+ const rel = linkNode.getRel();
117
+ if (rel !== match.attributes.rel) {
118
+ linkNode.setRel(match.attributes.rel || null);
119
+ onChange(match.attributes.rel || null, rel);
120
+ }
121
+ const target = linkNode.getTarget();
122
+ if (target !== match.attributes.target) {
123
+ linkNode.setTarget(match.attributes.target || null);
124
+ onChange(match.attributes.target || null, target);
125
+ }
126
+ }
127
+ }
128
+ function handleBadNeighbors(textNode, onChange) {
129
+ const previousSibling = textNode.getPreviousSibling();
130
+ const nextSibling = textNode.getNextSibling();
131
+ const text = textNode.getTextContent();
132
+ if (link.$isAutoLinkNode(previousSibling) && !startsWithSeparator(text)) {
133
+ replaceWithChildren(previousSibling);
134
+ onChange(null, previousSibling.getURL());
135
+ }
136
+ if (link.$isAutoLinkNode(nextSibling) && !endsWithSeparator(text)) {
137
+ replaceWithChildren(nextSibling);
138
+ onChange(null, nextSibling.getURL());
139
+ }
140
+ }
141
+ function replaceWithChildren(node) {
142
+ const children = node.getChildren();
143
+ const childrenLength = children.length;
144
+ for (let j = childrenLength - 1; j >= 0; j--)
145
+ node.insertAfter(children[j]);
146
+ node.remove();
147
+ return children.map((child) => child.getLatest());
148
+ }
149
+ function useAutoLink(editor, matchers, onChange) {
150
+ vue.watchEffect((onInvalidate) => {
151
+ if (!editor.hasNodes([link.AutoLinkNode]))
152
+ invariant(false, "LexicalAutoLinkPlugin: AutoLinkNode not registered on editor");
153
+ const onChangeWrapped = (url, prevUrl) => {
154
+ if (onChange)
155
+ onChange(url, prevUrl);
156
+ };
157
+ const fn = utils.mergeRegister(
158
+ editor.registerNodeTransform(lexical.TextNode, (textNode) => {
159
+ const parent = textNode.getParentOrThrow();
160
+ if (link.$isAutoLinkNode(parent)) {
161
+ handleLinkEdit(parent, vue.unref(matchers), onChangeWrapped);
162
+ } else if (!link.$isLinkNode(parent)) {
163
+ if (textNode.isSimpleText())
164
+ handleLinkCreation(textNode, vue.unref(matchers), onChangeWrapped);
165
+ handleBadNeighbors(textNode, onChangeWrapped);
166
+ }
167
+ }),
168
+ editor.registerNodeTransform(link.AutoLinkNode, (linkNode) => {
169
+ handleLinkEdit(linkNode, vue.unref(matchers), onChangeWrapped);
170
+ })
171
+ );
172
+ onInvalidate(fn);
173
+ });
174
+ }
175
+ exports.useAutoLink = useAutoLink;
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":["$isElementNode","$isLineBreakNode","$isTextNode","$createAutoLinkNode","$createTextNode","$isAutoLinkNode","watchEffect","AutoLinkNode","mergeRegister","TextNode","unref","$isLinkNode"],"mappings":"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"}