@datalayer/lexical-loro 0.1.0 → 0.2.1

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 (400) hide show
  1. package/README.md +1 -1
  2. package/package.json +7 -7
  3. package/lib/App.d.ts +0 -2
  4. package/lib/App.js +0 -141
  5. package/lib/Editor.d.ts +0 -2
  6. package/lib/Editor.js +0 -111
  7. package/lib/Settings.d.ts +0 -2
  8. package/lib/Settings.js +0 -57
  9. package/lib/appSettings.d.ts +0 -36
  10. package/lib/appSettings.js +0 -44
  11. package/lib/collab/loro/Bindings.d.ts +0 -41
  12. package/lib/collab/loro/Bindings.js +0 -95
  13. package/lib/collab/loro/Debug.d.ts +0 -33
  14. package/lib/collab/loro/Debug.js +0 -448
  15. package/lib/collab/loro/LexicalCollaborationContext.d.ts +0 -19
  16. package/lib/collab/loro/LexicalCollaborationContext.js +0 -48
  17. package/lib/collab/loro/LexicalCollaborationPlugin.d.ts +0 -24
  18. package/lib/collab/loro/LexicalCollaborationPlugin.js +0 -83
  19. package/lib/collab/loro/State.d.ts +0 -53
  20. package/lib/collab/loro/State.js +0 -90
  21. package/lib/collab/loro/components/LoroCollaborationUI.d.ts +0 -13
  22. package/lib/collab/loro/components/LoroCollaborationUI.js +0 -9
  23. package/lib/collab/loro/components/LoroCollaborators.d.ts +0 -8
  24. package/lib/collab/loro/components/LoroCollaborators.js +0 -97
  25. package/lib/collab/loro/components/index.d.ts +0 -2
  26. package/lib/collab/loro/components/index.js +0 -2
  27. package/lib/collab/loro/index.d.ts +0 -6
  28. package/lib/collab/loro/index.js +0 -6
  29. package/lib/collab/loro/integrators/BaseIntegrator.d.ts +0 -14
  30. package/lib/collab/loro/integrators/BaseIntegrator.js +0 -1
  31. package/lib/collab/loro/integrators/CounterIntegrator.d.ts +0 -23
  32. package/lib/collab/loro/integrators/CounterIntegrator.js +0 -40
  33. package/lib/collab/loro/integrators/ListIntegrator.d.ts +0 -23
  34. package/lib/collab/loro/integrators/ListIntegrator.js +0 -49
  35. package/lib/collab/loro/integrators/MapIntegrator.d.ts +0 -24
  36. package/lib/collab/loro/integrators/MapIntegrator.js +0 -177
  37. package/lib/collab/loro/integrators/TextIntegrator.d.ts +0 -25
  38. package/lib/collab/loro/integrators/TextIntegrator.js +0 -51
  39. package/lib/collab/loro/integrators/TreeIntegrator.d.ts +0 -25
  40. package/lib/collab/loro/integrators/TreeIntegrator.js +0 -201
  41. package/lib/collab/loro/nodes/NodeFactory.d.ts +0 -8
  42. package/lib/collab/loro/nodes/NodeFactory.js +0 -105
  43. package/lib/collab/loro/nodes/NodesMapper.d.ts +0 -111
  44. package/lib/collab/loro/nodes/NodesMapper.js +0 -258
  45. package/lib/collab/loro/propagators/DecoratorNodePropagator.d.ts +0 -60
  46. package/lib/collab/loro/propagators/DecoratorNodePropagator.js +0 -302
  47. package/lib/collab/loro/propagators/ElementNodePropagator.d.ts +0 -62
  48. package/lib/collab/loro/propagators/ElementNodePropagator.js +0 -335
  49. package/lib/collab/loro/propagators/LineBreakNodePropagator.d.ts +0 -57
  50. package/lib/collab/loro/propagators/LineBreakNodePropagator.js +0 -196
  51. package/lib/collab/loro/propagators/RootNodePropagator.d.ts +0 -55
  52. package/lib/collab/loro/propagators/RootNodePropagator.js +0 -168
  53. package/lib/collab/loro/propagators/TextNodePropagator.d.ts +0 -60
  54. package/lib/collab/loro/propagators/TextNodePropagator.js +0 -434
  55. package/lib/collab/loro/propagators/index.d.ts +0 -49
  56. package/lib/collab/loro/propagators/index.js +0 -32
  57. package/lib/collab/loro/provider/websocket.d.ts +0 -116
  58. package/lib/collab/loro/provider/websocket.js +0 -907
  59. package/lib/collab/loro/servers/index.d.ts +0 -0
  60. package/lib/collab/loro/servers/index.js +0 -0
  61. package/lib/collab/loro/servers/ws/callback.d.ts +0 -5
  62. package/lib/collab/loro/servers/ws/callback.js +0 -85
  63. package/lib/collab/loro/servers/ws/server.d.ts +0 -2
  64. package/lib/collab/loro/servers/ws/server.js +0 -25
  65. package/lib/collab/loro/servers/ws/utils.d.ts +0 -40
  66. package/lib/collab/loro/servers/ws/utils.js +0 -513
  67. package/lib/collab/loro/sync/SyncCursors.d.ts +0 -32
  68. package/lib/collab/loro/sync/SyncCursors.js +0 -435
  69. package/lib/collab/loro/sync/SyncLexicalToLoro.d.ts +0 -4
  70. package/lib/collab/loro/sync/SyncLexicalToLoro.js +0 -80
  71. package/lib/collab/loro/sync/SyncLoroToLexical.d.ts +0 -5
  72. package/lib/collab/loro/sync/SyncLoroToLexical.js +0 -96
  73. package/lib/collab/loro/types/LexicalNodeData.d.ts +0 -32
  74. package/lib/collab/loro/types/LexicalNodeData.js +0 -71
  75. package/lib/collab/loro/useCollaboration.d.ts +0 -12
  76. package/lib/collab/loro/useCollaboration.js +0 -248
  77. package/lib/collab/loro/utils/InitialContent.d.ts +0 -64
  78. package/lib/collab/loro/utils/InitialContent.js +0 -109
  79. package/lib/collab/loro/utils/LexicalToLoro.d.ts +0 -18
  80. package/lib/collab/loro/utils/LexicalToLoro.js +0 -96
  81. package/lib/collab/loro/utils/Utils.d.ts +0 -44
  82. package/lib/collab/loro/utils/Utils.js +0 -153
  83. package/lib/collab/loro/wsProvider.d.ts +0 -8
  84. package/lib/collab/loro/wsProvider.js +0 -31
  85. package/lib/collab/utils/invariant.d.ts +0 -1
  86. package/lib/collab/utils/invariant.js +0 -11
  87. package/lib/collab/utils/simpleDiffWithCursor.d.ts +0 -5
  88. package/lib/collab/utils/simpleDiffWithCursor.js +0 -31
  89. package/lib/collab/yjs/Bindings.d.ts +0 -23
  90. package/lib/collab/yjs/Bindings.js +0 -26
  91. package/lib/collab/yjs/Debug.d.ts +0 -23
  92. package/lib/collab/yjs/Debug.js +0 -213
  93. package/lib/collab/yjs/LexicalCollaborationContext.d.ts +0 -10
  94. package/lib/collab/yjs/LexicalCollaborationContext.js +0 -37
  95. package/lib/collab/yjs/LexicalCollaborationPlugin.d.ts +0 -21
  96. package/lib/collab/yjs/LexicalCollaborationPlugin.js +0 -63
  97. package/lib/collab/yjs/State.d.ts +0 -51
  98. package/lib/collab/yjs/State.js +0 -35
  99. package/lib/collab/yjs/nodes/AnyCollabNode.d.ts +0 -5
  100. package/lib/collab/yjs/nodes/AnyCollabNode.js +0 -1
  101. package/lib/collab/yjs/nodes/CollabDecoratorNode.d.ts +0 -22
  102. package/lib/collab/yjs/nodes/CollabDecoratorNode.js +0 -64
  103. package/lib/collab/yjs/nodes/CollabElementNode.d.ts +0 -40
  104. package/lib/collab/yjs/nodes/CollabElementNode.js +0 -462
  105. package/lib/collab/yjs/nodes/CollabLineBreakNode.d.ts +0 -19
  106. package/lib/collab/yjs/nodes/CollabLineBreakNode.js +0 -44
  107. package/lib/collab/yjs/nodes/CollabTextNode.d.ts +0 -25
  108. package/lib/collab/yjs/nodes/CollabTextNode.js +0 -103
  109. package/lib/collab/yjs/provider/websocket.d.ts +0 -88
  110. package/lib/collab/yjs/provider/websocket.js +0 -415
  111. package/lib/collab/yjs/servers/index.d.ts +0 -0
  112. package/lib/collab/yjs/servers/index.js +0 -0
  113. package/lib/collab/yjs/servers/ws/callback.d.ts +0 -5
  114. package/lib/collab/yjs/servers/ws/callback.js +0 -72
  115. package/lib/collab/yjs/servers/ws/server.d.ts +0 -2
  116. package/lib/collab/yjs/servers/ws/server.js +0 -25
  117. package/lib/collab/yjs/servers/ws/utils.d.ts +0 -49
  118. package/lib/collab/yjs/servers/ws/utils.js +0 -284
  119. package/lib/collab/yjs/sync/SyncCursors.d.ts +0 -39
  120. package/lib/collab/yjs/sync/SyncCursors.js +0 -351
  121. package/lib/collab/yjs/sync/SyncEditorStates.d.ts +0 -10
  122. package/lib/collab/yjs/sync/SyncEditorStates.js +0 -200
  123. package/lib/collab/yjs/useCollaboration.d.ts +0 -12
  124. package/lib/collab/yjs/useCollaboration.js +0 -255
  125. package/lib/collab/yjs/utils/Utils.d.ts +0 -25
  126. package/lib/collab/yjs/utils/Utils.js +0 -402
  127. package/lib/collab/yjs/wsProvider.d.ts +0 -3
  128. package/lib/collab/yjs/wsProvider.js +0 -21
  129. package/lib/commenting/index.d.ts +0 -41
  130. package/lib/commenting/index.js +0 -324
  131. package/lib/context/FlashMessageContext.d.ts +0 -7
  132. package/lib/context/FlashMessageContext.js +0 -24
  133. package/lib/context/SettingsContext.d.ts +0 -12
  134. package/lib/context/SettingsContext.js +0 -38
  135. package/lib/context/SharedHistoryContext.d.ts +0 -11
  136. package/lib/context/SharedHistoryContext.js +0 -11
  137. package/lib/context/ToolbarContext.d.ts +0 -65
  138. package/lib/context/ToolbarContext.js +0 -84
  139. package/lib/demo.d.ts +0 -12
  140. package/lib/demo.js +0 -41
  141. package/lib/hooks/useFlashMessage.d.ts +0 -2
  142. package/lib/hooks/useFlashMessage.js +0 -4
  143. package/lib/hooks/useModal.d.ts +0 -5
  144. package/lib/hooks/useModal.js +0 -26
  145. package/lib/hooks/useReport.d.ts +0 -1
  146. package/lib/hooks/useReport.js +0 -46
  147. package/lib/index.d.ts +0 -1
  148. package/lib/index.js +0 -1
  149. package/lib/nodes/AutocompleteNode.d.ts +0 -27
  150. package/lib/nodes/AutocompleteNode.js +0 -56
  151. package/lib/nodes/CounterComponent.d.ts +0 -6
  152. package/lib/nodes/CounterComponent.js +0 -137
  153. package/lib/nodes/CounterNode.d.ts +0 -23
  154. package/lib/nodes/CounterNode.js +0 -47
  155. package/lib/nodes/DateTimeNode/DateTimeComponent.d.ts +0 -8
  156. package/lib/nodes/DateTimeNode/DateTimeComponent.js +0 -119
  157. package/lib/nodes/DateTimeNode/DateTimeNode.d.ts +0 -27
  158. package/lib/nodes/DateTimeNode/DateTimeNode.js +0 -82
  159. package/lib/nodes/EmojiNode.d.ts +0 -18
  160. package/lib/nodes/EmojiNode.js +0 -50
  161. package/lib/nodes/EquationComponent.d.ts +0 -9
  162. package/lib/nodes/EquationComponent.js +0 -75
  163. package/lib/nodes/EquationNode.d.ts +0 -26
  164. package/lib/nodes/EquationNode.js +0 -109
  165. package/lib/nodes/ExcalidrawNode/ExcalidrawComponent.d.ts +0 -8
  166. package/lib/nodes/ExcalidrawNode/ExcalidrawComponent.js +0 -110
  167. package/lib/nodes/ExcalidrawNode/ExcalidrawImage.d.ts +0 -50
  168. package/lib/nodes/ExcalidrawNode/ExcalidrawImage.js +0 -55
  169. package/lib/nodes/ExcalidrawNode/index.d.ts +0 -32
  170. package/lib/nodes/ExcalidrawNode/index.js +0 -117
  171. package/lib/nodes/FigmaNode.d.ts +0 -20
  172. package/lib/nodes/FigmaNode.js +0 -52
  173. package/lib/nodes/ImageComponent.d.ts +0 -16
  174. package/lib/nodes/ImageComponent.js +0 -272
  175. package/lib/nodes/ImageNode.d.ts +0 -50
  176. package/lib/nodes/ImageNode.js +0 -151
  177. package/lib/nodes/InlineImageNode/InlineImageComponent.d.ts +0 -26
  178. package/lib/nodes/InlineImageNode/InlineImageComponent.js +0 -161
  179. package/lib/nodes/InlineImageNode/InlineImageNode.d.ts +0 -59
  180. package/lib/nodes/InlineImageNode/InlineImageNode.js +0 -162
  181. package/lib/nodes/KeywordNode.d.ts +0 -14
  182. package/lib/nodes/KeywordNode.js +0 -33
  183. package/lib/nodes/LayoutContainerNode.d.ts +0 -24
  184. package/lib/nodes/LayoutContainerNode.js +0 -91
  185. package/lib/nodes/LayoutItemNode.d.ts +0 -16
  186. package/lib/nodes/LayoutItemNode.js +0 -65
  187. package/lib/nodes/MentionNode.d.ts +0 -20
  188. package/lib/nodes/MentionNode.js +0 -81
  189. package/lib/nodes/PageBreakNode/index.d.ts +0 -17
  190. package/lib/nodes/PageBreakNode/index.js +0 -83
  191. package/lib/nodes/PlaygroundNodes.d.ts +0 -3
  192. package/lib/nodes/PlaygroundNodes.js +0 -71
  193. package/lib/nodes/PollComponent.d.ts +0 -9
  194. package/lib/nodes/PollComponent.js +0 -85
  195. package/lib/nodes/PollNode.d.ts +0 -43
  196. package/lib/nodes/PollNode.js +0 -153
  197. package/lib/nodes/SpecialTextNode.d.ts +0 -24
  198. package/lib/nodes/SpecialTextNode.js +0 -50
  199. package/lib/nodes/StickyComponent.d.ts +0 -10
  200. package/lib/nodes/StickyComponent.js +0 -162
  201. package/lib/nodes/StickyNode.d.ts +0 -31
  202. package/lib/nodes/StickyNode.js +0 -76
  203. package/lib/nodes/TweetNode.d.ts +0 -21
  204. package/lib/nodes/TweetNode.js +0 -119
  205. package/lib/nodes/YouTubeNode.d.ts +0 -22
  206. package/lib/nodes/YouTubeNode.js +0 -84
  207. package/lib/plugins/ActionsPlugin/index.d.ts +0 -5
  208. package/lib/plugins/ActionsPlugin/index.js +0 -168
  209. package/lib/plugins/AutoEmbedPlugin/index.d.ts +0 -19
  210. package/lib/plugins/AutoEmbedPlugin/index.js +0 -158
  211. package/lib/plugins/AutoLinkPlugin/index.d.ts +0 -2
  212. package/lib/plugins/AutoLinkPlugin/index.js +0 -15
  213. package/lib/plugins/AutocompletePlugin/index.d.ts +0 -10
  214. package/lib/plugins/AutocompletePlugin/index.js +0 -2473
  215. package/lib/plugins/CodeActionMenuPlugin/components/CopyButton/index.d.ts +0 -7
  216. package/lib/plugins/CodeActionMenuPlugin/components/CopyButton/index.js +0 -42
  217. package/lib/plugins/CodeActionMenuPlugin/components/PrettierButton/index.d.ts +0 -17
  218. package/lib/plugins/CodeActionMenuPlugin/components/PrettierButton/index.js +0 -111
  219. package/lib/plugins/CodeActionMenuPlugin/index.d.ts +0 -5
  220. package/lib/plugins/CodeActionMenuPlugin/index.js +0 -104
  221. package/lib/plugins/CodeActionMenuPlugin/utils.d.ts +0 -1
  222. package/lib/plugins/CodeActionMenuPlugin/utils.js +0 -18
  223. package/lib/plugins/CodeHighlightPrismPlugin/index.d.ts +0 -2
  224. package/lib/plugins/CodeHighlightPrismPlugin/index.js +0 -10
  225. package/lib/plugins/CodeHighlightShikiPlugin/index.d.ts +0 -2
  226. package/lib/plugins/CodeHighlightShikiPlugin/index.js +0 -10
  227. package/lib/plugins/CollapsiblePlugin/CollapsibleContainerNode.d.ts +0 -25
  228. package/lib/plugins/CollapsiblePlugin/CollapsibleContainerNode.js +0 -131
  229. package/lib/plugins/CollapsiblePlugin/CollapsibleContentNode.d.ts +0 -16
  230. package/lib/plugins/CollapsiblePlugin/CollapsibleContentNode.js +0 -79
  231. package/lib/plugins/CollapsiblePlugin/CollapsibleTitleNode.d.ts +0 -16
  232. package/lib/plugins/CollapsiblePlugin/CollapsibleTitleNode.js +0 -81
  233. package/lib/plugins/CollapsiblePlugin/CollapsibleUtils.d.ts +0 -2
  234. package/lib/plugins/CollapsiblePlugin/CollapsibleUtils.js +0 -8
  235. package/lib/plugins/CollapsiblePlugin/index.d.ts +0 -3
  236. package/lib/plugins/CollapsiblePlugin/index.js +0 -128
  237. package/lib/plugins/CommentPlugin/index.d.ts +0 -9
  238. package/lib/plugins/CommentPlugin/index.js +0 -460
  239. package/lib/plugins/ComponentPickerPlugin/index.d.ts +0 -2
  240. package/lib/plugins/ComponentPickerPlugin/index.js +0 -276
  241. package/lib/plugins/ContextMenuPlugin/index.d.ts +0 -2
  242. package/lib/plugins/ContextMenuPlugin/index.js +0 -112
  243. package/lib/plugins/CounterPlugin/index.d.ts +0 -3
  244. package/lib/plugins/CounterPlugin/index.js +0 -20
  245. package/lib/plugins/DatalayerPlugin/index.d.ts +0 -2
  246. package/lib/plugins/DatalayerPlugin/index.js +0 -218
  247. package/lib/plugins/DateTimePlugin/index.d.ts +0 -8
  248. package/lib/plugins/DateTimePlugin/index.js +0 -24
  249. package/lib/plugins/DocsPlugin/index.d.ts +0 -2
  250. package/lib/plugins/DocsPlugin/index.js +0 -4
  251. package/lib/plugins/DragDropPastePlugin/index.d.ts +0 -1
  252. package/lib/plugins/DragDropPastePlugin/index.js +0 -33
  253. package/lib/plugins/DraggableBlockPlugin/index.d.ts +0 -12
  254. package/lib/plugins/DraggableBlockPlugin/index.js +0 -36
  255. package/lib/plugins/EmojiPickerPlugin/index.d.ts +0 -1
  256. package/lib/plugins/EmojiPickerPlugin/index.js +0 -80
  257. package/lib/plugins/EmojisPlugin/index.d.ts +0 -2
  258. package/lib/plugins/EmojisPlugin/index.js +0 -52
  259. package/lib/plugins/EquationsPlugin/index.d.ts +0 -14
  260. package/lib/plugins/EquationsPlugin/index.js +0 -34
  261. package/lib/plugins/ExcalidrawPlugin/index.d.ts +0 -5
  262. package/lib/plugins/ExcalidrawPlugin/index.js +0 -44
  263. package/lib/plugins/FigmaPlugin/index.d.ts +0 -4
  264. package/lib/plugins/FigmaPlugin/index.js +0 -20
  265. package/lib/plugins/FloatingLinkEditorPlugin/index.d.ts +0 -15
  266. package/lib/plugins/FloatingLinkEditorPlugin/index.js +0 -280
  267. package/lib/plugins/FloatingTextFormatToolbarPlugin/index.d.ts +0 -7
  268. package/lib/plugins/FloatingTextFormatToolbarPlugin/index.js +0 -219
  269. package/lib/plugins/ImagesPlugin/index.d.ts +0 -24
  270. package/lib/plugins/ImagesPlugin/index.js +0 -195
  271. package/lib/plugins/InlineImagePlugin/index.d.ts +0 -17
  272. package/lib/plugins/InlineImagePlugin/index.js +0 -180
  273. package/lib/plugins/KeywordsPlugin/index.d.ts +0 -2
  274. package/lib/plugins/KeywordsPlugin/index.js +0 -31
  275. package/lib/plugins/LayoutPlugin/InsertLayoutDialog.d.ts +0 -6
  276. package/lib/plugins/LayoutPlugin/InsertLayoutDialog.js +0 -21
  277. package/lib/plugins/LayoutPlugin/LayoutPlugin.d.ts +0 -7
  278. package/lib/plugins/LayoutPlugin/LayoutPlugin.js +0 -131
  279. package/lib/plugins/LinkPlugin/index.d.ts +0 -6
  280. package/lib/plugins/LinkPlugin/index.js +0 -11
  281. package/lib/plugins/MarkdownShortcutPlugin/index.d.ts +0 -2
  282. package/lib/plugins/MarkdownShortcutPlugin/index.js +0 -6
  283. package/lib/plugins/MarkdownTransformers/index.d.ts +0 -8
  284. package/lib/plugins/MarkdownTransformers/index.js +0 -234
  285. package/lib/plugins/MaxLengthPlugin/index.d.ts +0 -3
  286. package/lib/plugins/MaxLengthPlugin/index.js +0 -37
  287. package/lib/plugins/MentionsPlugin/index.d.ts +0 -2
  288. package/lib/plugins/MentionsPlugin/index.js +0 -564
  289. package/lib/plugins/PageBreakPlugin/index.d.ts +0 -4
  290. package/lib/plugins/PageBreakPlugin/index.js +0 -27
  291. package/lib/plugins/PasteLogPlugin/index.d.ts +0 -2
  292. package/lib/plugins/PasteLogPlugin/index.js +0 -27
  293. package/lib/plugins/PollPlugin/index.d.ts +0 -8
  294. package/lib/plugins/PollPlugin/index.js +0 -38
  295. package/lib/plugins/ShortcutsPlugin/index.d.ts +0 -6
  296. package/lib/plugins/ShortcutsPlugin/index.js +0 -112
  297. package/lib/plugins/ShortcutsPlugin/shortcuts.d.ts +0 -59
  298. package/lib/plugins/ShortcutsPlugin/shortcuts.js +0 -169
  299. package/lib/plugins/SpecialTextPlugin/index.d.ts +0 -2
  300. package/lib/plugins/SpecialTextPlugin/index.js +0 -46
  301. package/lib/plugins/SpeechToTextPlugin/index.d.ts +0 -5
  302. package/lib/plugins/SpeechToTextPlugin/index.js +0 -82
  303. package/lib/plugins/StickyPlugin/index.d.ts +0 -2
  304. package/lib/plugins/StickyPlugin/index.js +0 -12
  305. package/lib/plugins/TabFocusPlugin/index.d.ts +0 -1
  306. package/lib/plugins/TabFocusPlugin/index.js +0 -34
  307. package/lib/plugins/TableActionMenuPlugin/index.d.ts +0 -5
  308. package/lib/plugins/TableActionMenuPlugin/index.js +0 -492
  309. package/lib/plugins/TableCellResizer/index.d.ts +0 -3
  310. package/lib/plugins/TableCellResizer/index.js +0 -297
  311. package/lib/plugins/TableHoverActionsPlugin/index.d.ts +0 -4
  312. package/lib/plugins/TableHoverActionsPlugin/index.js +0 -188
  313. package/lib/plugins/TableOfContentsPlugin/index.d.ts +0 -2
  314. package/lib/plugins/TableOfContentsPlugin/index.js +0 -116
  315. package/lib/plugins/TablePlugin.d.ts +0 -31
  316. package/lib/plugins/TablePlugin.js +0 -63
  317. package/lib/plugins/TestRecorderPlugin/index.d.ts +0 -3
  318. package/lib/plugins/TestRecorderPlugin/index.js +0 -346
  319. package/lib/plugins/ToolbarPlugin/fontSize.d.ts +0 -9
  320. package/lib/plugins/ToolbarPlugin/fontSize.js +0 -80
  321. package/lib/plugins/ToolbarPlugin/index.d.ts +0 -9
  322. package/lib/plugins/ToolbarPlugin/index.js +0 -500
  323. package/lib/plugins/ToolbarPlugin/utils.d.ts +0 -26
  324. package/lib/plugins/ToolbarPlugin/utils.js +0 -243
  325. package/lib/plugins/TreeViewPlugin/index.d.ts +0 -2
  326. package/lib/plugins/TreeViewPlugin/index.js +0 -7
  327. package/lib/plugins/TwitterPlugin/index.d.ts +0 -4
  328. package/lib/plugins/TwitterPlugin/index.js +0 -20
  329. package/lib/plugins/TypingPerfPlugin/index.d.ts +0 -2
  330. package/lib/plugins/TypingPerfPlugin/index.js +0 -93
  331. package/lib/plugins/YouTubePlugin/index.d.ts +0 -4
  332. package/lib/plugins/YouTubePlugin/index.js +0 -20
  333. package/lib/server/validation.d.ts +0 -1
  334. package/lib/server/validation.js +0 -111
  335. package/lib/setupEnv.d.ts +0 -2
  336. package/lib/setupEnv.js +0 -25
  337. package/lib/themes/CommentEditorTheme.d.ts +0 -4
  338. package/lib/themes/CommentEditorTheme.js +0 -7
  339. package/lib/themes/PlaygroundEditorTheme.d.ts +0 -4
  340. package/lib/themes/PlaygroundEditorTheme.js +0 -120
  341. package/lib/themes/StickyEditorTheme.d.ts +0 -4
  342. package/lib/themes/StickyEditorTheme.js +0 -7
  343. package/lib/tyes.dt.d.ts +0 -12
  344. package/lib/tyes.dt.js +0 -0
  345. package/lib/ui/Button.d.ts +0 -12
  346. package/lib/ui/Button.js +0 -6
  347. package/lib/ui/ColorPicker.d.ts +0 -14
  348. package/lib/ui/ColorPicker.js +0 -219
  349. package/lib/ui/ContentEditable.d.ts +0 -9
  350. package/lib/ui/ContentEditable.js +0 -6
  351. package/lib/ui/Dialog.d.ts +0 -10
  352. package/lib/ui/Dialog.js +0 -8
  353. package/lib/ui/DropDown.d.ts +0 -18
  354. package/lib/ui/DropDown.js +0 -133
  355. package/lib/ui/DropdownColorPicker.d.ts +0 -13
  356. package/lib/ui/DropdownColorPicker.js +0 -6
  357. package/lib/ui/EquationEditor.d.ts +0 -8
  358. package/lib/ui/EquationEditor.js +0 -11
  359. package/lib/ui/ExcalidrawModal.d.ts +0 -42
  360. package/lib/ui/ExcalidrawModal.js +0 -103
  361. package/lib/ui/FileInput.d.ts +0 -10
  362. package/lib/ui/FileInput.js +0 -5
  363. package/lib/ui/FlashMessage.d.ts +0 -7
  364. package/lib/ui/FlashMessage.js +0 -6
  365. package/lib/ui/ImageResizer.d.ts +0 -17
  366. package/lib/ui/ImageResizer.js +0 -171
  367. package/lib/ui/KatexEquationAlterer.d.ts +0 -8
  368. package/lib/ui/KatexEquationAlterer.js +0 -23
  369. package/lib/ui/KatexRenderer.d.ts +0 -6
  370. package/lib/ui/KatexRenderer.js +0 -24
  371. package/lib/ui/Modal.d.ts +0 -9
  372. package/lib/ui/Modal.js +0 -48
  373. package/lib/ui/Select.d.ts +0 -8
  374. package/lib/ui/Select.js +0 -5
  375. package/lib/ui/Switch.d.ts +0 -8
  376. package/lib/ui/Switch.js +0 -6
  377. package/lib/ui/TextInput.d.ts +0 -13
  378. package/lib/ui/TextInput.js +0 -7
  379. package/lib/utils/docSerialization.d.ts +0 -3
  380. package/lib/utils/docSerialization.js +0 -56
  381. package/lib/utils/emoji-list.d.ts +0 -20
  382. package/lib/utils/emoji-list.js +0 -16605
  383. package/lib/utils/getDOMRangeRect.d.ts +0 -8
  384. package/lib/utils/getDOMRangeRect.js +0 -22
  385. package/lib/utils/getSelectedNode.d.ts +0 -2
  386. package/lib/utils/getSelectedNode.js +0 -24
  387. package/lib/utils/getThemeSelector.d.ts +0 -2
  388. package/lib/utils/getThemeSelector.js +0 -10
  389. package/lib/utils/isMobileWidth.d.ts +0 -7
  390. package/lib/utils/isMobileWidth.js +0 -7
  391. package/lib/utils/joinClasses.d.ts +0 -1
  392. package/lib/utils/joinClasses.js +0 -3
  393. package/lib/utils/setFloatingElemPosition.d.ts +0 -1
  394. package/lib/utils/setFloatingElemPosition.js +0 -55
  395. package/lib/utils/setFloatingElemPositionForLinkEditor.d.ts +0 -1
  396. package/lib/utils/setFloatingElemPositionForLinkEditor.js +0 -32
  397. package/lib/utils/swipe.d.ts +0 -4
  398. package/lib/utils/swipe.js +0 -90
  399. package/lib/utils/url.d.ts +0 -2
  400. package/lib/utils/url.js +0 -27
@@ -1,200 +0,0 @@
1
- import { $addUpdateTag, $createParagraphNode, $getNodeByKey, $getRoot, $getSelection, $getWritableNodeState, $isRangeSelection, $isTextNode, COLLABORATION_TAG, HISTORIC_TAG, SKIP_SCROLL_INTO_VIEW_TAG, } from 'lexical';
2
- import { Map as YMap, XmlElement, XmlText, YMapEvent, YTextEvent, YXmlEvent, } from 'yjs';
3
- import invariant from '../../utils/invariant';
4
- import { $getOrInitCollabNodeFromSharedType, $moveSelectionToPreviousNode, doesSelectionNeedRecovering, getNodeTypeFromSharedType, syncWithTransaction, } from '../utils/Utils';
5
- import { CollabDecoratorNode } from '../nodes/CollabDecoratorNode';
6
- import { CollabElementNode } from '../nodes/CollabElementNode';
7
- import { CollabTextNode } from '../nodes/CollabTextNode';
8
- import { $syncLocalCursorPosition, syncCursorPositions, syncLexicalSelectionToYjs, } from './SyncCursors';
9
- /******************************************************************************
10
- * Yjs -> Lexical
11
- *****************************************************************************/
12
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
- function $syncStateEvent(binding, event) {
14
- const { target } = event;
15
- if (!(target._item &&
16
- target._item.parentSub === '__state' &&
17
- getNodeTypeFromSharedType(target) === undefined &&
18
- (target.parent instanceof XmlText ||
19
- target.parent instanceof XmlElement ||
20
- target.parent instanceof YMap))) {
21
- // TODO there might be a case to handle in here when a YMap
22
- // is used as a value of __state? It would probably be desirable
23
- // to mark the node as dirty when that happens.
24
- return false;
25
- }
26
- const collabNode = $getOrInitCollabNodeFromSharedType(binding, target.parent);
27
- const node = collabNode.getNode();
28
- if (node) {
29
- const state = $getWritableNodeState(node.getWritable());
30
- for (const k of event.keysChanged) {
31
- state.updateFromUnknown(k, target.get(k));
32
- }
33
- }
34
- return true;
35
- }
36
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
37
- function $syncEvent(binding, event) {
38
- if (event instanceof YMapEvent && $syncStateEvent(binding, event)) {
39
- return;
40
- }
41
- const { target } = event;
42
- const collabNode = $getOrInitCollabNodeFromSharedType(binding, target);
43
- if (collabNode instanceof CollabElementNode && event instanceof YTextEvent) {
44
- // @ts-expect-error We need to access the private childListChanged property of the class
45
- const { keysChanged, childListChanged, delta } = event;
46
- // Update
47
- if (keysChanged.size > 0) {
48
- collabNode.syncPropertiesFromYjs(binding, keysChanged);
49
- }
50
- if (childListChanged) {
51
- collabNode.applyChildrenYjsDelta(binding, delta);
52
- collabNode.syncChildrenFromYjs(binding);
53
- }
54
- }
55
- else if (collabNode instanceof CollabTextNode &&
56
- event instanceof YMapEvent) {
57
- const { keysChanged } = event;
58
- // Update
59
- if (keysChanged.size > 0) {
60
- collabNode.syncPropertiesAndTextFromYjs(binding, keysChanged);
61
- }
62
- }
63
- else if (collabNode instanceof CollabDecoratorNode &&
64
- event instanceof YXmlEvent) {
65
- const { attributesChanged } = event;
66
- // Update
67
- if (attributesChanged.size > 0) {
68
- collabNode.syncPropertiesFromYjs(binding, attributesChanged);
69
- }
70
- }
71
- else {
72
- invariant(false, 'Expected text, element, or decorator event');
73
- }
74
- }
75
- export function syncYjsUpdatesToLexical(binding, provider, events, isFromUndoManger, syncCursorPositionsFn = syncCursorPositions) {
76
- const editor = binding.editor;
77
- const currentEditorState = editor._editorState;
78
- // This line precompute the delta before editor update. The reason is
79
- // delta is computed when it is accessed. Note that this can only be
80
- // safely computed during the event call. If it is accessed after event
81
- // call it might result in unexpected behavior.
82
- // https://github.com/yjs/yjs/blob/00ef472d68545cb260abd35c2de4b3b78719c9e4/src/utils/YEvent.js#L132
83
- events.forEach((event) => event.delta);
84
- editor.update(() => {
85
- for (let i = 0; i < events.length; i++) {
86
- const event = events[i];
87
- $syncEvent(binding, event);
88
- }
89
- const selection = $getSelection();
90
- if ($isRangeSelection(selection)) {
91
- if (doesSelectionNeedRecovering(selection)) {
92
- const prevSelection = currentEditorState._selection;
93
- if ($isRangeSelection(prevSelection)) {
94
- $syncLocalCursorPosition(binding, provider);
95
- if (doesSelectionNeedRecovering(selection)) {
96
- // If the selected node is deleted, move the selection to the previous or parent node.
97
- const anchorNodeKey = selection.anchor.key;
98
- $moveSelectionToPreviousNode(anchorNodeKey, currentEditorState);
99
- }
100
- }
101
- syncLexicalSelectionToYjs(binding, provider, prevSelection, $getSelection());
102
- }
103
- else {
104
- $syncLocalCursorPosition(binding, provider);
105
- }
106
- }
107
- if (!isFromUndoManger) {
108
- // If it is an external change, we don't want the current scroll position to get changed
109
- // since the user might've intentionally scrolled somewhere else in the document.
110
- $addUpdateTag(SKIP_SCROLL_INTO_VIEW_TAG);
111
- }
112
- }, {
113
- onUpdate: () => {
114
- syncCursorPositionsFn(binding, provider);
115
- // If there was a collision on the top level paragraph
116
- // we need to re-add a paragraph. To ensure this insertion properly syncs with other clients,
117
- // it must be placed outside of the update block above that has tags 'collaboration' or 'historic'.
118
- editor.update(() => {
119
- if ($getRoot().getChildrenSize() === 0) {
120
- $getRoot().append($createParagraphNode());
121
- }
122
- });
123
- },
124
- skipTransforms: true,
125
- tag: isFromUndoManger ? HISTORIC_TAG : COLLABORATION_TAG,
126
- });
127
- }
128
- /******************************************************************************
129
- * Lexical -> Yjs
130
- *****************************************************************************/
131
- function $handleNormalizationMergeConflicts(binding, normalizedNodes) {
132
- // We handle the merge operations here
133
- const normalizedNodesKeys = Array.from(normalizedNodes);
134
- const collabNodeMap = binding.collabNodeMap;
135
- const mergedNodes = [];
136
- const removedNodes = [];
137
- for (let i = 0; i < normalizedNodesKeys.length; i++) {
138
- const nodeKey = normalizedNodesKeys[i];
139
- const lexicalNode = $getNodeByKey(nodeKey);
140
- const collabNode = collabNodeMap.get(nodeKey);
141
- if (collabNode instanceof CollabTextNode) {
142
- if ($isTextNode(lexicalNode)) {
143
- // We mutate the text collab nodes after removing
144
- // all the dead nodes first, otherwise offsets break.
145
- mergedNodes.push([collabNode, lexicalNode.__text]);
146
- }
147
- else {
148
- const offset = collabNode.getOffset();
149
- if (offset === -1) {
150
- continue;
151
- }
152
- const parent = collabNode._parent;
153
- collabNode._normalized = true;
154
- parent._xmlText.delete(offset, 1);
155
- removedNodes.push(collabNode);
156
- }
157
- }
158
- }
159
- for (let i = 0; i < removedNodes.length; i++) {
160
- const collabNode = removedNodes[i];
161
- const nodeKey = collabNode.getKey();
162
- collabNodeMap.delete(nodeKey);
163
- const parentChildren = collabNode._parent._children;
164
- const index = parentChildren.indexOf(collabNode);
165
- parentChildren.splice(index, 1);
166
- }
167
- for (let i = 0; i < mergedNodes.length; i++) {
168
- const [collabNode, text] = mergedNodes[i];
169
- collabNode._text = text;
170
- }
171
- }
172
- export function syncLexicalUpdatesToYjs(binding, provider, prevEditorState, currEditorState, dirtyElements, dirtyLeaves, normalizedNodes, tags) {
173
- syncWithTransaction(binding, () => {
174
- currEditorState.read(() => {
175
- // We check if the update has come from a origin where the origin
176
- // was the collaboration binding previously. This can help us
177
- // prevent unnecessarily re-diffing and possible re-applying
178
- // the same change editor state again. For example, if a user
179
- // types a character and we get it, we don't want to then insert
180
- // the same character again. The exception to this heuristic is
181
- // when we need to handle normalization merge conflicts.
182
- if (tags.has(COLLABORATION_TAG) || tags.has(HISTORIC_TAG)) {
183
- if (normalizedNodes.size > 0) {
184
- $handleNormalizationMergeConflicts(binding, normalizedNodes);
185
- }
186
- return;
187
- }
188
- if (dirtyElements.has('root')) {
189
- const prevNodeMap = prevEditorState._nodeMap;
190
- const nextLexicalRoot = $getRoot();
191
- const collabRoot = binding.root;
192
- collabRoot.syncPropertiesFromLexical(binding, nextLexicalRoot, prevNodeMap);
193
- collabRoot.syncChildrenFromLexical(binding, nextLexicalRoot, prevNodeMap, dirtyElements, dirtyLeaves);
194
- }
195
- const selection = $getSelection();
196
- const prevSelection = prevEditorState._selection;
197
- syncLexicalSelectionToYjs(binding, provider, prevSelection, selection);
198
- });
199
- });
200
- }
@@ -1,12 +0,0 @@
1
- import * as React from 'react';
2
- import type { JSX } from 'react';
3
- import { Doc } from 'yjs';
4
- import type { LexicalEditor } from 'lexical';
5
- import { InitialEditorStateType } from '@lexical/react/LexicalComposer';
6
- import type { Provider } from './State';
7
- import { Binding } from './Bindings';
8
- import { SyncCursorPositionsFn } from './sync/SyncCursors';
9
- export type CursorsContainerRef = React.MutableRefObject<HTMLElement | null>;
10
- export declare function useCollaboration(editor: LexicalEditor, id: string, provider: Provider, docMap: Map<string, Doc>, name: string, color: string, shouldBootstrap: boolean, binding: Binding, setDoc: React.Dispatch<React.SetStateAction<Doc | undefined>>, cursorsContainerRef?: CursorsContainerRef, initialEditorState?: InitialEditorStateType, awarenessData?: object, syncCursorPositionsFn?: SyncCursorPositionsFn): JSX.Element;
11
- export declare function useFocusTracking(editor: LexicalEditor, provider: Provider, name: string, color: string, awarenessData?: object): void;
12
- export declare function useHistory(editor: LexicalEditor, binding: Binding): () => void;
@@ -1,255 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import * as React from 'react';
3
- import { useCallback, useEffect, useMemo, useRef } from 'react';
4
- import { createPortal } from 'react-dom';
5
- import { UndoManager } from 'yjs';
6
- import { $createParagraphNode, $getRoot, $getSelection, BLUR_COMMAND, CAN_REDO_COMMAND, CAN_UNDO_COMMAND, COMMAND_PRIORITY_EDITOR, FOCUS_COMMAND, HISTORY_MERGE_TAG, REDO_COMMAND, SKIP_COLLAB_TAG, UNDO_COMMAND, } from 'lexical';
7
- import { mergeRegister } from '@lexical/utils';
8
- import { CONNECTED_COMMAND, createUndoManager, initLocalState, setLocalStateFocus, TOGGLE_CONNECT_COMMAND, } from './State';
9
- import { syncYjsUpdatesToLexical, syncLexicalUpdatesToYjs } from './sync/SyncEditorStates';
10
- import { syncCursorPositions } from './sync/SyncCursors';
11
- export function useCollaboration(editor, id, provider, docMap, name, color, shouldBootstrap, binding, setDoc, cursorsContainerRef, initialEditorState, awarenessData, syncCursorPositionsFn = syncCursorPositions) {
12
- const isReloadingDoc = useRef(false);
13
- const connect = useCallback(() => provider.connect(), [provider]);
14
- const disconnect = useCallback(() => {
15
- try {
16
- provider.disconnect();
17
- }
18
- catch (e) {
19
- // Do nothing
20
- }
21
- }, [provider]);
22
- useEffect(() => {
23
- const { root } = binding;
24
- const { awareness } = provider;
25
- const onStatus = ({ status }) => {
26
- editor.dispatchCommand(CONNECTED_COMMAND, status === 'connected');
27
- };
28
- const onSync = (isSynced) => {
29
- if (shouldBootstrap &&
30
- isSynced &&
31
- root.isEmpty() &&
32
- root._xmlText._length === 0 &&
33
- isReloadingDoc.current === false) {
34
- initializeEditor(editor, initialEditorState);
35
- }
36
- isReloadingDoc.current = false;
37
- };
38
- const onAwarenessUpdate = () => {
39
- syncCursorPositionsFn(binding, provider);
40
- };
41
- initLocalState(provider, name, color, document.activeElement === editor.getRootElement(), awarenessData || {});
42
- const onProviderDocReload = (ydoc) => {
43
- clearEditorSkipCollab(editor, binding);
44
- setDoc(ydoc);
45
- docMap.set(id, ydoc);
46
- isReloadingDoc.current = true;
47
- };
48
- provider.on('reload', onProviderDocReload);
49
- provider.on('status', onStatus);
50
- provider.on('sync', onSync);
51
- awareness.on('update', onAwarenessUpdate);
52
- const onYjsTreeChanges = (
53
- // The below `any` type is taken directly from the vendor types for YJS.
54
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
55
- events, transaction) => {
56
- const origin = transaction.origin;
57
- if (origin !== binding) {
58
- const isFromUndoManager = origin instanceof UndoManager;
59
- syncYjsUpdatesToLexical(binding, provider, events, isFromUndoManager, syncCursorPositionsFn);
60
- }
61
- };
62
- // This updates the local editor state when we receive updates from other clients
63
- root.getSharedType().observeDeep(onYjsTreeChanges);
64
- const removeListener = editor.registerUpdateListener(({ prevEditorState, editorState, dirtyLeaves, dirtyElements, normalizedNodes, tags, }) => {
65
- if (tags.has(SKIP_COLLAB_TAG) === false) {
66
- syncLexicalUpdatesToYjs(binding, provider, prevEditorState, editorState, dirtyElements, dirtyLeaves, normalizedNodes, tags);
67
- }
68
- });
69
- const connectionPromise = connect();
70
- return () => {
71
- if (isReloadingDoc.current === false) {
72
- if (connectionPromise) {
73
- connectionPromise.then(disconnect);
74
- }
75
- else {
76
- // Workaround for race condition in StrictMode. It's possible there
77
- // is a different race for the above case where connect returns a
78
- // promise, but we don't have an example of that in-repo.
79
- // It's possible that there is a similar issue with
80
- // TOGGLE_CONNECT_COMMAND below when the provider connect returns a
81
- // promise.
82
- // https://github.com/facebook/lexical/issues/6640
83
- disconnect();
84
- }
85
- }
86
- provider.off('sync', onSync);
87
- provider.off('status', onStatus);
88
- provider.off('reload', onProviderDocReload);
89
- awareness.off('update', onAwarenessUpdate);
90
- root.getSharedType().unobserveDeep(onYjsTreeChanges);
91
- docMap.delete(id);
92
- removeListener();
93
- };
94
- }, [
95
- binding,
96
- color,
97
- connect,
98
- disconnect,
99
- docMap,
100
- editor,
101
- id,
102
- initialEditorState,
103
- name,
104
- provider,
105
- shouldBootstrap,
106
- awarenessData,
107
- setDoc,
108
- syncCursorPositionsFn,
109
- ]);
110
- const cursorsContainer = useMemo(() => {
111
- const ref = (element) => {
112
- binding.cursorsContainer = element;
113
- };
114
- return createPortal(_jsx("div", { ref: ref }), (cursorsContainerRef && cursorsContainerRef.current) || document.body);
115
- }, [binding, cursorsContainerRef]);
116
- useEffect(() => {
117
- return editor.registerCommand(TOGGLE_CONNECT_COMMAND, (payload) => {
118
- const shouldConnect = payload;
119
- if (shouldConnect) {
120
- connect();
121
- }
122
- else {
123
- disconnect();
124
- }
125
- return true;
126
- }, COMMAND_PRIORITY_EDITOR);
127
- }, [connect, disconnect, editor]);
128
- return cursorsContainer;
129
- }
130
- export function useFocusTracking(editor, provider, name, color, awarenessData) {
131
- useEffect(() => {
132
- return mergeRegister(editor.registerCommand(FOCUS_COMMAND, () => {
133
- setLocalStateFocus(provider, name, color, true, awarenessData || {});
134
- return false;
135
- }, COMMAND_PRIORITY_EDITOR), editor.registerCommand(BLUR_COMMAND, () => {
136
- setLocalStateFocus(provider, name, color, false, awarenessData || {});
137
- return false;
138
- }, COMMAND_PRIORITY_EDITOR));
139
- }, [color, editor, name, provider, awarenessData]);
140
- }
141
- export function useHistory(editor, binding) {
142
- const undoManager = useMemo(() => createUndoManager(binding, binding.root.getSharedType()), [binding]);
143
- useEffect(() => {
144
- const undo = () => {
145
- undoManager.undo();
146
- };
147
- const redo = () => {
148
- undoManager.redo();
149
- };
150
- return mergeRegister(editor.registerCommand(UNDO_COMMAND, () => {
151
- undo();
152
- return true;
153
- }, COMMAND_PRIORITY_EDITOR), editor.registerCommand(REDO_COMMAND, () => {
154
- redo();
155
- return true;
156
- }, COMMAND_PRIORITY_EDITOR));
157
- });
158
- const clearHistory = useCallback(() => {
159
- undoManager.clear();
160
- }, [undoManager]);
161
- // Exposing undo and redo states
162
- React.useEffect(() => {
163
- const updateUndoRedoStates = () => {
164
- editor.dispatchCommand(CAN_UNDO_COMMAND, undoManager.undoStack.length > 0);
165
- editor.dispatchCommand(CAN_REDO_COMMAND, undoManager.redoStack.length > 0);
166
- };
167
- undoManager.on('stack-item-added', updateUndoRedoStates);
168
- undoManager.on('stack-item-popped', updateUndoRedoStates);
169
- undoManager.on('stack-cleared', updateUndoRedoStates);
170
- return () => {
171
- undoManager.off('stack-item-added', updateUndoRedoStates);
172
- undoManager.off('stack-item-popped', updateUndoRedoStates);
173
- undoManager.off('stack-cleared', updateUndoRedoStates);
174
- };
175
- }, [editor, undoManager]);
176
- return clearHistory;
177
- }
178
- function initializeEditor(editor, initialEditorState) {
179
- editor.update(() => {
180
- const root = $getRoot();
181
- if (root.isEmpty()) {
182
- if (initialEditorState) {
183
- switch (typeof initialEditorState) {
184
- case 'string': {
185
- const parsedEditorState = editor.parseEditorState(initialEditorState);
186
- editor.setEditorState(parsedEditorState, {
187
- tag: HISTORY_MERGE_TAG,
188
- });
189
- break;
190
- }
191
- case 'object': {
192
- editor.setEditorState(initialEditorState, {
193
- tag: HISTORY_MERGE_TAG,
194
- });
195
- break;
196
- }
197
- case 'function': {
198
- editor.update(() => {
199
- const root1 = $getRoot();
200
- if (root1.isEmpty()) {
201
- initialEditorState(editor);
202
- }
203
- }, { tag: HISTORY_MERGE_TAG });
204
- break;
205
- }
206
- }
207
- }
208
- else {
209
- const paragraph = $createParagraphNode();
210
- root.append(paragraph);
211
- const { activeElement } = document;
212
- if ($getSelection() !== null ||
213
- (activeElement !== null &&
214
- activeElement === editor.getRootElement())) {
215
- paragraph.select();
216
- }
217
- }
218
- }
219
- }, {
220
- tag: HISTORY_MERGE_TAG,
221
- });
222
- }
223
- function clearEditorSkipCollab(editor, binding) {
224
- // reset editor state
225
- editor.update(() => {
226
- const root = $getRoot();
227
- root.clear();
228
- root.select();
229
- }, {
230
- tag: SKIP_COLLAB_TAG,
231
- });
232
- if (binding.cursors == null) {
233
- return;
234
- }
235
- const cursors = binding.cursors;
236
- if (cursors == null) {
237
- return;
238
- }
239
- const cursorsContainer = binding.cursorsContainer;
240
- if (cursorsContainer == null) {
241
- return;
242
- }
243
- // reset cursors in dom
244
- const cursorsArr = Array.from(cursors.values());
245
- for (let i = 0; i < cursorsArr.length; i++) {
246
- const cursor = cursorsArr[i];
247
- const selection = cursor.selection;
248
- if (selection && selection.selections != null) {
249
- const selections = selection.selections;
250
- for (let j = 0; j < selections.length; j++) {
251
- cursorsContainer.removeChild(selections[i]);
252
- }
253
- }
254
- }
255
- }
@@ -1,25 +0,0 @@
1
- import { EditorState, LexicalNode, NodeKey, RangeSelection } from 'lexical';
2
- import { Map as YMap, XmlElement, XmlText } from 'yjs';
3
- import type { YjsNode } from './../State';
4
- import type { Binding } from './../Bindings';
5
- import { CollabElementNode } from './../nodes/CollabElementNode';
6
- import { AnyCollabNode } from '../nodes/AnyCollabNode';
7
- /*****************************************************************************/
8
- export declare function createLexicalNodeFromCollabNode(binding: Binding, collabNode: AnyCollabNode, parentKey: NodeKey): LexicalNode;
9
- export declare function getIndexOfYjsNode(yjsParentNode: YjsNode, yjsNode: YjsNode): number;
10
- export declare function getNodeTypeFromSharedType(sharedType: XmlText | YMap<unknown> | XmlElement): string | undefined;
11
- export declare function syncPropertiesFromLexical(binding: Binding, sharedType: XmlText | YMap<unknown> | XmlElement, prevLexicalNode: null | LexicalNode, nextLexicalNode: LexicalNode): void;
12
- export declare function spliceString(str: string, index: number, delCount: number, newText: string): string;
13
- export declare function getPositionFromElementAndOffset(node: CollabElementNode, offset: number, boundaryIsEdge: boolean): {
14
- length: number;
15
- node: AnyCollabNode | null;
16
- nodeIndex: number;
17
- offset: number;
18
- };
19
- export declare function doesSelectionNeedRecovering(selection: RangeSelection): boolean;
20
- export declare function syncWithTransaction(binding: Binding, fn: () => void): void;
21
- /*****************************************************************************/
22
- export declare function $createCollabNodeFromLexicalNode(binding: Binding, lexicalNode: LexicalNode, parent: CollabElementNode): AnyCollabNode;
23
- export declare function $getOrInitCollabNodeFromSharedType(binding: Binding, sharedType: XmlText | YMap<unknown> | XmlElement, parent?: CollabElementNode): AnyCollabNode;
24
- export declare function $syncPropertiesFromYjs(binding: Binding, sharedType: XmlText | YMap<unknown> | XmlElement, lexicalNode: LexicalNode, keysChanged: null | Set<string>): void;
25
- export declare function $moveSelectionToPreviousNode(anchorNodeKey: string, currentEditorState: EditorState): void;