@payloadcms/richtext-lexical 0.1.0-beta.0

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 (456) hide show
  1. package/LICENSE.md +22 -0
  2. package/dist/cell/index.d.ts +6 -0
  3. package/dist/cell/index.d.ts.map +1 -0
  4. package/dist/cell/index.js +86 -0
  5. package/dist/field/Field.d.ts +6 -0
  6. package/dist/field/Field.d.ts.map +1 -0
  7. package/dist/field/Field.js +138 -0
  8. package/dist/field/features/BlockQuote/index.d.ts +3 -0
  9. package/dist/field/features/BlockQuote/index.d.ts.map +1 -0
  10. package/dist/field/features/BlockQuote/index.js +82 -0
  11. package/dist/field/features/BlockQuote/markdownTransformer.d.ts +3 -0
  12. package/dist/field/features/BlockQuote/markdownTransformer.d.ts.map +1 -0
  13. package/dist/field/features/BlockQuote/markdownTransformer.js +50 -0
  14. package/dist/field/features/Blocks/component/FormSavePlugin.d.ts +12 -0
  15. package/dist/field/features/Blocks/component/FormSavePlugin.d.ts.map +1 -0
  16. package/dist/field/features/Blocks/component/FormSavePlugin.js +33 -0
  17. package/dist/field/features/Blocks/component/index.d.ts +14 -0
  18. package/dist/field/features/Blocks/component/index.d.ts.map +1 -0
  19. package/dist/field/features/Blocks/component/index.js +176 -0
  20. package/dist/field/features/Blocks/drawer/index.d.ts +10 -0
  21. package/dist/field/features/Blocks/drawer/index.d.ts.map +1 -0
  22. package/dist/field/features/Blocks/drawer/index.js +140 -0
  23. package/dist/field/features/Blocks/index.d.ts +8 -0
  24. package/dist/field/features/Blocks/index.d.ts.map +1 -0
  25. package/dist/field/features/Blocks/index.js +80 -0
  26. package/dist/field/features/Blocks/nodes/BlocksNode.d.ts +38 -0
  27. package/dist/field/features/Blocks/nodes/BlocksNode.d.ts.map +1 -0
  28. package/dist/field/features/Blocks/nodes/BlocksNode.js +104 -0
  29. package/dist/field/features/Blocks/plugin/index.d.ts +7 -0
  30. package/dist/field/features/Blocks/plugin/index.d.ts.map +1 -0
  31. package/dist/field/features/Blocks/plugin/index.js +86 -0
  32. package/dist/field/features/Heading/index.d.ts +8 -0
  33. package/dist/field/features/Heading/index.d.ts.map +1 -0
  34. package/dist/field/features/Heading/index.js +104 -0
  35. package/dist/field/features/Heading/markdownTransformer.d.ts +3 -0
  36. package/dist/field/features/Heading/markdownTransformer.d.ts.map +1 -0
  37. package/dist/field/features/Heading/markdownTransformer.js +32 -0
  38. package/dist/field/features/Link/afterReadPromise.d.ts +5 -0
  39. package/dist/field/features/Link/afterReadPromise.d.ts.map +1 -0
  40. package/dist/field/features/Link/afterReadPromise.js +51 -0
  41. package/dist/field/features/Link/drawer/baseFields.d.ts +4 -0
  42. package/dist/field/features/Link/drawer/baseFields.d.ts.map +1 -0
  43. package/dist/field/features/Link/drawer/baseFields.js +91 -0
  44. package/dist/field/features/Link/drawer/index.d.ts +5 -0
  45. package/dist/field/features/Link/drawer/index.d.ts.map +1 -0
  46. package/dist/field/features/Link/drawer/index.js +40 -0
  47. package/dist/field/features/Link/drawer/types.d.ts +8 -0
  48. package/dist/field/features/Link/drawer/types.d.ts.map +1 -0
  49. package/dist/field/features/Link/drawer/types.js +6 -0
  50. package/dist/field/features/Link/index.d.ts +14 -0
  51. package/dist/field/features/Link/index.d.ts.map +1 -0
  52. package/dist/field/features/Link/index.js +117 -0
  53. package/dist/field/features/Link/nodes/AutoLinkNode.d.ts +16 -0
  54. package/dist/field/features/Link/nodes/AutoLinkNode.d.ts.map +1 -0
  55. package/dist/field/features/Link/nodes/AutoLinkNode.js +75 -0
  56. package/dist/field/features/Link/nodes/LinkNode.d.ts +55 -0
  57. package/dist/field/features/Link/nodes/LinkNode.d.ts.map +1 -0
  58. package/dist/field/features/Link/nodes/LinkNode.js +368 -0
  59. package/dist/field/features/Link/plugins/autoLink/index.d.ts +26 -0
  60. package/dist/field/features/Link/plugins/autoLink/index.d.ts.map +1 -0
  61. package/dist/field/features/Link/plugins/autoLink/index.js +230 -0
  62. package/dist/field/features/Link/plugins/floatingLinkEditor/LinkEditor/index.d.ts +9 -0
  63. package/dist/field/features/Link/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +1 -0
  64. package/dist/field/features/Link/plugins/floatingLinkEditor/LinkEditor/index.js +301 -0
  65. package/dist/field/features/Link/plugins/floatingLinkEditor/index.d.ts +7 -0
  66. package/dist/field/features/Link/plugins/floatingLinkEditor/index.d.ts.map +1 -0
  67. package/dist/field/features/Link/plugins/floatingLinkEditor/index.js +61 -0
  68. package/dist/field/features/Link/plugins/floatingLinkEditor/types.d.ts +13 -0
  69. package/dist/field/features/Link/plugins/floatingLinkEditor/types.d.ts.map +1 -0
  70. package/dist/field/features/Link/plugins/floatingLinkEditor/types.js +6 -0
  71. package/dist/field/features/Link/plugins/floatingLinkEditor/utilities.d.ts +12 -0
  72. package/dist/field/features/Link/plugins/floatingLinkEditor/utilities.d.ts.map +1 -0
  73. package/dist/field/features/Link/plugins/floatingLinkEditor/utilities.js +44 -0
  74. package/dist/field/features/Link/plugins/link/index.d.ts +9 -0
  75. package/dist/field/features/Link/plugins/link/index.d.ts.map +1 -0
  76. package/dist/field/features/Link/plugins/link/index.js +74 -0
  77. package/dist/field/features/Paragraph/index.d.ts +3 -0
  78. package/dist/field/features/Paragraph/index.d.ts.map +1 -0
  79. package/dist/field/features/Paragraph/index.js +74 -0
  80. package/dist/field/features/Relationship/afterReadPromise.d.ts +4 -0
  81. package/dist/field/features/Relationship/afterReadPromise.d.ts.map +1 -0
  82. package/dist/field/features/Relationship/afterReadPromise.js +34 -0
  83. package/dist/field/features/Relationship/drawer/index.d.ts +14 -0
  84. package/dist/field/features/Relationship/drawer/index.d.ts.map +1 -0
  85. package/dist/field/features/Relationship/drawer/index.js +135 -0
  86. package/dist/field/features/Relationship/index.d.ts +4 -0
  87. package/dist/field/features/Relationship/index.d.ts.map +1 -0
  88. package/dist/field/features/Relationship/index.js +72 -0
  89. package/dist/field/features/Relationship/nodes/RelationshipNode.d.ts +34 -0
  90. package/dist/field/features/Relationship/nodes/RelationshipNode.d.ts.map +1 -0
  91. package/dist/field/features/Relationship/nodes/RelationshipNode.js +165 -0
  92. package/dist/field/features/Relationship/nodes/components/RelationshipComponent.d.ts +14 -0
  93. package/dist/field/features/Relationship/nodes/components/RelationshipComponent.d.ts.map +1 -0
  94. package/dist/field/features/Relationship/nodes/components/RelationshipComponent.js +158 -0
  95. package/dist/field/features/Relationship/plugins/index.d.ts +6 -0
  96. package/dist/field/features/Relationship/plugins/index.d.ts.map +1 -0
  97. package/dist/field/features/Relationship/plugins/index.js +88 -0
  98. package/dist/field/features/Relationship/utils/EnabledRelationshipsCondition.d.ts +3 -0
  99. package/dist/field/features/Relationship/utils/EnabledRelationshipsCondition.d.ts.map +1 -0
  100. package/dist/field/features/Relationship/utils/EnabledRelationshipsCondition.js +75 -0
  101. package/dist/field/features/Upload/afterReadPromise.d.ts +5 -0
  102. package/dist/field/features/Upload/afterReadPromise.d.ts.map +1 -0
  103. package/dist/field/features/Upload/afterReadPromise.js +51 -0
  104. package/dist/field/features/Upload/component/ExtraFieldsDrawer/index.d.ts +12 -0
  105. package/dist/field/features/Upload/component/ExtraFieldsDrawer/index.d.ts.map +1 -0
  106. package/dist/field/features/Upload/component/ExtraFieldsDrawer/index.js +129 -0
  107. package/dist/field/features/Upload/component/index.d.ts +10 -0
  108. package/dist/field/features/Upload/component/index.d.ts.map +1 -0
  109. package/dist/field/features/Upload/component/index.js +188 -0
  110. package/dist/field/features/Upload/drawer/index.d.ts +14 -0
  111. package/dist/field/features/Upload/drawer/index.d.ts.map +1 -0
  112. package/dist/field/features/Upload/drawer/index.js +131 -0
  113. package/dist/field/features/Upload/index.d.ts +12 -0
  114. package/dist/field/features/Upload/index.d.ts.map +1 -0
  115. package/dist/field/features/Upload/index.js +70 -0
  116. package/dist/field/features/Upload/nodes/UploadNode.d.ts +44 -0
  117. package/dist/field/features/Upload/nodes/UploadNode.d.ts.map +1 -0
  118. package/dist/field/features/Upload/nodes/UploadNode.js +153 -0
  119. package/dist/field/features/Upload/plugin/index.d.ts +7 -0
  120. package/dist/field/features/Upload/plugin/index.d.ts.map +1 -0
  121. package/dist/field/features/Upload/plugin/index.js +97 -0
  122. package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.d.ts +4 -0
  123. package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.d.ts.map +1 -0
  124. package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.js +23 -0
  125. package/dist/field/features/align/index.d.ts +4 -0
  126. package/dist/field/features/align/index.d.ts.map +1 -0
  127. package/dist/field/features/align/index.js +67 -0
  128. package/dist/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.d.ts +4 -0
  129. package/dist/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.d.ts.map +1 -0
  130. package/dist/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.js +21 -0
  131. package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.d.ts +4 -0
  132. package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.d.ts.map +1 -0
  133. package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.js +23 -0
  134. package/dist/field/features/debug/TreeView/index.d.ts +4 -0
  135. package/dist/field/features/debug/TreeView/index.d.ts.map +1 -0
  136. package/dist/field/features/debug/TreeView/index.js +30 -0
  137. package/dist/field/features/debug/TreeView/plugin.d.ts +3 -0
  138. package/dist/field/features/debug/TreeView/plugin.d.ts.map +1 -0
  139. package/dist/field/features/debug/TreeView/plugin.js +66 -0
  140. package/dist/field/features/format/Bold/index.d.ts +3 -0
  141. package/dist/field/features/format/Bold/index.d.ts.map +1 -0
  142. package/dist/field/features/format/Bold/index.js +57 -0
  143. package/dist/field/features/format/Bold/markdownTransformers.d.ts +6 -0
  144. package/dist/field/features/format/Bold/markdownTransformers.d.ts.map +1 -0
  145. package/dist/field/features/format/Bold/markdownTransformers.js +58 -0
  146. package/dist/field/features/format/InlineCode/index.d.ts +3 -0
  147. package/dist/field/features/format/InlineCode/index.d.ts.map +1 -0
  148. package/dist/field/features/format/InlineCode/index.js +49 -0
  149. package/dist/field/features/format/InlineCode/markdownTransformers.d.ts +3 -0
  150. package/dist/field/features/format/InlineCode/markdownTransformers.d.ts.map +1 -0
  151. package/dist/field/features/format/InlineCode/markdownTransformers.js +19 -0
  152. package/dist/field/features/format/Italic/index.d.ts +3 -0
  153. package/dist/field/features/format/Italic/index.d.ts.map +1 -0
  154. package/dist/field/features/format/Italic/index.js +50 -0
  155. package/dist/field/features/format/Italic/markdownTransformers.d.ts +4 -0
  156. package/dist/field/features/format/Italic/markdownTransformers.d.ts.map +1 -0
  157. package/dist/field/features/format/Italic/markdownTransformers.js +35 -0
  158. package/dist/field/features/format/common/floatingSelectToolbarSection.d.ts +4 -0
  159. package/dist/field/features/format/common/floatingSelectToolbarSection.d.ts.map +1 -0
  160. package/dist/field/features/format/common/floatingSelectToolbarSection.js +21 -0
  161. package/dist/field/features/format/strikethrough/index.d.ts +3 -0
  162. package/dist/field/features/format/strikethrough/index.d.ts.map +1 -0
  163. package/dist/field/features/format/strikethrough/index.js +49 -0
  164. package/dist/field/features/format/strikethrough/markdownTransformers.d.ts +3 -0
  165. package/dist/field/features/format/strikethrough/markdownTransformers.d.ts.map +1 -0
  166. package/dist/field/features/format/strikethrough/markdownTransformers.js +19 -0
  167. package/dist/field/features/format/subscript/index.d.ts +3 -0
  168. package/dist/field/features/format/subscript/index.d.ts.map +1 -0
  169. package/dist/field/features/format/subscript/index.js +45 -0
  170. package/dist/field/features/format/superscript/index.d.ts +3 -0
  171. package/dist/field/features/format/superscript/index.d.ts.map +1 -0
  172. package/dist/field/features/format/superscript/index.js +45 -0
  173. package/dist/field/features/format/underline/index.d.ts +3 -0
  174. package/dist/field/features/format/underline/index.d.ts.map +1 -0
  175. package/dist/field/features/format/underline/index.js +45 -0
  176. package/dist/field/features/indent/floatingSelectToolbarIndentSection.d.ts +4 -0
  177. package/dist/field/features/indent/floatingSelectToolbarIndentSection.d.ts.map +1 -0
  178. package/dist/field/features/indent/floatingSelectToolbarIndentSection.js +21 -0
  179. package/dist/field/features/indent/index.d.ts +4 -0
  180. package/dist/field/features/indent/index.d.ts.map +1 -0
  181. package/dist/field/features/indent/index.js +67 -0
  182. package/dist/field/features/lists/CheckList/index.d.ts +3 -0
  183. package/dist/field/features/lists/CheckList/index.d.ts.map +1 -0
  184. package/dist/field/features/lists/CheckList/index.js +67 -0
  185. package/dist/field/features/lists/CheckList/markdownTransformers.d.ts +3 -0
  186. package/dist/field/features/lists/CheckList/markdownTransformers.d.ts.map +1 -0
  187. package/dist/field/features/lists/CheckList/markdownTransformers.js +26 -0
  188. package/dist/field/features/lists/OrderedList/index.d.ts +3 -0
  189. package/dist/field/features/lists/OrderedList/index.d.ts.map +1 -0
  190. package/dist/field/features/lists/OrderedList/index.js +65 -0
  191. package/dist/field/features/lists/OrderedList/markdownTransformer.d.ts +3 -0
  192. package/dist/field/features/lists/OrderedList/markdownTransformer.d.ts.map +1 -0
  193. package/dist/field/features/lists/OrderedList/markdownTransformer.js +26 -0
  194. package/dist/field/features/lists/UnorderedList/index.d.ts +3 -0
  195. package/dist/field/features/lists/UnorderedList/index.d.ts.map +1 -0
  196. package/dist/field/features/lists/UnorderedList/index.js +65 -0
  197. package/dist/field/features/lists/UnorderedList/markdownTransformer.d.ts +3 -0
  198. package/dist/field/features/lists/UnorderedList/markdownTransformer.d.ts.map +1 -0
  199. package/dist/field/features/lists/UnorderedList/markdownTransformer.js +26 -0
  200. package/dist/field/features/lists/common/markdown.d.ts +6 -0
  201. package/dist/field/features/lists/common/markdown.d.ts.map +1 -0
  202. package/dist/field/features/lists/common/markdown.js +76 -0
  203. package/dist/field/features/types.d.ts +95 -0
  204. package/dist/field/features/types.d.ts.map +1 -0
  205. package/dist/field/features/types.js +6 -0
  206. package/dist/field/index.d.ts +4 -0
  207. package/dist/field/index.d.ts.map +1 -0
  208. package/dist/field/index.js +60 -0
  209. package/dist/field/lexical/LexicalEditor.d.ts +5 -0
  210. package/dist/field/lexical/LexicalEditor.d.ts.map +1 -0
  211. package/dist/field/lexical/LexicalEditor.js +134 -0
  212. package/dist/field/lexical/LexicalProvider.d.ts +16 -0
  213. package/dist/field/lexical/LexicalProvider.d.ts.map +1 -0
  214. package/dist/field/lexical/LexicalProvider.js +89 -0
  215. package/dist/field/lexical/config/EditorConfigProvider.d.ts +16 -0
  216. package/dist/field/lexical/config/EditorConfigProvider.d.ts.map +1 -0
  217. package/dist/field/lexical/config/EditorConfigProvider.js +96 -0
  218. package/dist/field/lexical/config/default.d.ts +4 -0
  219. package/dist/field/lexical/config/default.d.ts.map +1 -0
  220. package/dist/field/lexical/config/default.js +67 -0
  221. package/dist/field/lexical/config/loader.d.ts +7 -0
  222. package/dist/field/lexical/config/loader.d.ts.map +1 -0
  223. package/dist/field/lexical/config/loader.js +133 -0
  224. package/dist/field/lexical/config/sanitize.d.ts +5 -0
  225. package/dist/field/lexical/config/sanitize.d.ts.map +1 -0
  226. package/dist/field/lexical/config/sanitize.js +138 -0
  227. package/dist/field/lexical/config/types.d.ts +12 -0
  228. package/dist/field/lexical/config/types.d.ts.map +1 -0
  229. package/dist/field/lexical/config/types.js +6 -0
  230. package/dist/field/lexical/nodes/index.d.ts +6 -0
  231. package/dist/field/lexical/nodes/index.d.ts.map +1 -0
  232. package/dist/field/lexical/nodes/index.js +15 -0
  233. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.d.ts +8 -0
  234. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.d.ts.map +1 -0
  235. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.js +135 -0
  236. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.d.ts +17 -0
  237. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.d.ts.map +1 -0
  238. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.js +289 -0
  239. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.d.ts +9 -0
  240. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.d.ts.map +1 -0
  241. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.js +36 -0
  242. package/dist/field/lexical/plugins/FloatingSelectToolbar/index.d.ts +6 -0
  243. package/dist/field/lexical/plugins/FloatingSelectToolbar/index.d.ts.map +1 -0
  244. package/dist/field/lexical/plugins/FloatingSelectToolbar/index.js +272 -0
  245. package/dist/field/lexical/plugins/FloatingSelectToolbar/types.d.ts +40 -0
  246. package/dist/field/lexical/plugins/FloatingSelectToolbar/types.d.ts.map +1 -0
  247. package/dist/field/lexical/plugins/FloatingSelectToolbar/types.js +6 -0
  248. package/dist/field/lexical/plugins/MarkdownShortcut/index.d.ts +10 -0
  249. package/dist/field/lexical/plugins/MarkdownShortcut/index.d.ts.map +1 -0
  250. package/dist/field/lexical/plugins/MarkdownShortcut/index.js +66 -0
  251. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts +63 -0
  252. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.d.ts.map +1 -0
  253. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +457 -0
  254. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.d.ts +26 -0
  255. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.d.ts.map +1 -0
  256. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +281 -0
  257. package/dist/field/lexical/plugins/SlashMenu/defaultGroups.d.ts +2 -0
  258. package/dist/field/lexical/plugins/SlashMenu/defaultGroups.d.ts.map +1 -0
  259. package/dist/field/lexical/plugins/SlashMenu/defaultGroups.js +3 -0
  260. package/dist/field/lexical/plugins/SlashMenu/index.d.ts +4 -0
  261. package/dist/field/lexical/plugins/SlashMenu/index.d.ts.map +1 -0
  262. package/dist/field/lexical/plugins/SlashMenu/index.js +187 -0
  263. package/dist/field/lexical/plugins/handles/AddBlockHandlePlugin/index.d.ts +6 -0
  264. package/dist/field/lexical/plugins/handles/AddBlockHandlePlugin/index.d.ts.map +1 -0
  265. package/dist/field/lexical/plugins/handles/AddBlockHandlePlugin/index.js +264 -0
  266. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/debounce.d.ts +2 -0
  267. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/debounce.d.ts.map +1 -0
  268. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/debounce.js +24 -0
  269. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.d.ts +2 -0
  270. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.d.ts.map +1 -0
  271. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.js +24 -0
  272. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.d.ts +27 -0
  273. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.d.ts.map +1 -0
  274. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.js +160 -0
  275. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.d.ts +3 -0
  276. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.d.ts.map +1 -0
  277. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.js +37 -0
  278. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/index.d.ts +6 -0
  279. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/index.d.ts.map +1 -0
  280. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/index.js +346 -0
  281. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.d.ts +3 -0
  282. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.d.ts.map +1 -0
  283. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js +59 -0
  284. package/dist/field/lexical/plugins/handles/utils/getCollapsedMargins.d.ts +5 -0
  285. package/dist/field/lexical/plugins/handles/utils/getCollapsedMargins.d.ts.map +1 -0
  286. package/dist/field/lexical/plugins/handles/utils/getCollapsedMargins.js +24 -0
  287. package/dist/field/lexical/plugins/handles/utils/getTopLevelNodeKeys.d.ts +3 -0
  288. package/dist/field/lexical/plugins/handles/utils/getTopLevelNodeKeys.d.ts.map +1 -0
  289. package/dist/field/lexical/plugins/handles/utils/getTopLevelNodeKeys.js +16 -0
  290. package/dist/field/lexical/plugins/handles/utils/isOnHandleElement.d.ts +2 -0
  291. package/dist/field/lexical/plugins/handles/utils/isOnHandleElement.d.ts.map +1 -0
  292. package/dist/field/lexical/plugins/handles/utils/isOnHandleElement.js +15 -0
  293. package/dist/field/lexical/plugins/handles/utils/setHandlePosition.d.ts +2 -0
  294. package/dist/field/lexical/plugins/handles/utils/setHandlePosition.d.ts.map +1 -0
  295. package/dist/field/lexical/plugins/handles/utils/setHandlePosition.js +27 -0
  296. package/dist/field/lexical/theme/EditorTheme.d.ts +4 -0
  297. package/dist/field/lexical/theme/EditorTheme.d.ts.map +1 -0
  298. package/dist/field/lexical/theme/EditorTheme.js +115 -0
  299. package/dist/field/lexical/ui/ContentEditable.d.ts +6 -0
  300. package/dist/field/lexical/ui/ContentEditable.d.ts.map +1 -0
  301. package/dist/field/lexical/ui/ContentEditable.js +59 -0
  302. package/dist/field/lexical/ui/icons/AI/index.d.ts +3 -0
  303. package/dist/field/lexical/ui/icons/AI/index.d.ts.map +1 -0
  304. package/dist/field/lexical/ui/icons/AI/index.js +42 -0
  305. package/dist/field/lexical/ui/icons/AlignCenter/index.d.ts +3 -0
  306. package/dist/field/lexical/ui/icons/AlignCenter/index.d.ts.map +1 -0
  307. package/dist/field/lexical/ui/icons/AlignCenter/index.js +40 -0
  308. package/dist/field/lexical/ui/icons/AlignLeft/index.d.ts +3 -0
  309. package/dist/field/lexical/ui/icons/AlignLeft/index.d.ts.map +1 -0
  310. package/dist/field/lexical/ui/icons/AlignLeft/index.js +40 -0
  311. package/dist/field/lexical/ui/icons/AlignRight/index.d.ts +3 -0
  312. package/dist/field/lexical/ui/icons/AlignRight/index.d.ts.map +1 -0
  313. package/dist/field/lexical/ui/icons/AlignRight/index.js +40 -0
  314. package/dist/field/lexical/ui/icons/Block/index.d.ts +3 -0
  315. package/dist/field/lexical/ui/icons/Block/index.d.ts.map +1 -0
  316. package/dist/field/lexical/ui/icons/Block/index.js +49 -0
  317. package/dist/field/lexical/ui/icons/Blockquote/index.d.ts +3 -0
  318. package/dist/field/lexical/ui/icons/Blockquote/index.d.ts.map +1 -0
  319. package/dist/field/lexical/ui/icons/Blockquote/index.js +31 -0
  320. package/dist/field/lexical/ui/icons/Bold/index.d.ts +3 -0
  321. package/dist/field/lexical/ui/icons/Bold/index.d.ts.map +1 -0
  322. package/dist/field/lexical/ui/icons/Bold/index.js +31 -0
  323. package/dist/field/lexical/ui/icons/Checklist/index.d.ts +3 -0
  324. package/dist/field/lexical/ui/icons/Checklist/index.d.ts.map +1 -0
  325. package/dist/field/lexical/ui/icons/Checklist/index.js +39 -0
  326. package/dist/field/lexical/ui/icons/Code/index.d.ts +3 -0
  327. package/dist/field/lexical/ui/icons/Code/index.d.ts.map +1 -0
  328. package/dist/field/lexical/ui/icons/Code/index.js +34 -0
  329. package/dist/field/lexical/ui/icons/CodeBlock/index.d.ts +3 -0
  330. package/dist/field/lexical/ui/icons/CodeBlock/index.d.ts.map +1 -0
  331. package/dist/field/lexical/ui/icons/CodeBlock/index.js +34 -0
  332. package/dist/field/lexical/ui/icons/H1/index.d.ts +3 -0
  333. package/dist/field/lexical/ui/icons/H1/index.d.ts.map +1 -0
  334. package/dist/field/lexical/ui/icons/H1/index.js +31 -0
  335. package/dist/field/lexical/ui/icons/H2/index.d.ts +3 -0
  336. package/dist/field/lexical/ui/icons/H2/index.d.ts.map +1 -0
  337. package/dist/field/lexical/ui/icons/H2/index.js +31 -0
  338. package/dist/field/lexical/ui/icons/H3/index.d.ts +3 -0
  339. package/dist/field/lexical/ui/icons/H3/index.d.ts.map +1 -0
  340. package/dist/field/lexical/ui/icons/H3/index.js +31 -0
  341. package/dist/field/lexical/ui/icons/H4/index.d.ts +3 -0
  342. package/dist/field/lexical/ui/icons/H4/index.d.ts.map +1 -0
  343. package/dist/field/lexical/ui/icons/H4/index.js +31 -0
  344. package/dist/field/lexical/ui/icons/H5/index.d.ts +3 -0
  345. package/dist/field/lexical/ui/icons/H5/index.d.ts.map +1 -0
  346. package/dist/field/lexical/ui/icons/H5/index.js +31 -0
  347. package/dist/field/lexical/ui/icons/H6/index.d.ts +3 -0
  348. package/dist/field/lexical/ui/icons/H6/index.d.ts.map +1 -0
  349. package/dist/field/lexical/ui/icons/H6/index.js +31 -0
  350. package/dist/field/lexical/ui/icons/IndentDecrease/index.d.ts +3 -0
  351. package/dist/field/lexical/ui/icons/IndentDecrease/index.d.ts.map +1 -0
  352. package/dist/field/lexical/ui/icons/IndentDecrease/index.js +43 -0
  353. package/dist/field/lexical/ui/icons/IndentIncrease/index.d.ts +3 -0
  354. package/dist/field/lexical/ui/icons/IndentIncrease/index.d.ts.map +1 -0
  355. package/dist/field/lexical/ui/icons/IndentIncrease/index.js +43 -0
  356. package/dist/field/lexical/ui/icons/Italic/index.d.ts +3 -0
  357. package/dist/field/lexical/ui/icons/Italic/index.d.ts.map +1 -0
  358. package/dist/field/lexical/ui/icons/Italic/index.js +31 -0
  359. package/dist/field/lexical/ui/icons/Link/index.d.ts +3 -0
  360. package/dist/field/lexical/ui/icons/Link/index.d.ts.map +1 -0
  361. package/dist/field/lexical/ui/icons/Link/index.js +42 -0
  362. package/dist/field/lexical/ui/icons/OrderedList/index.d.ts +3 -0
  363. package/dist/field/lexical/ui/icons/OrderedList/index.d.ts.map +1 -0
  364. package/dist/field/lexical/ui/icons/OrderedList/index.js +46 -0
  365. package/dist/field/lexical/ui/icons/Relationship/index.d.ts +3 -0
  366. package/dist/field/lexical/ui/icons/Relationship/index.d.ts.map +1 -0
  367. package/dist/field/lexical/ui/icons/Relationship/index.js +42 -0
  368. package/dist/field/lexical/ui/icons/Strikethrough/index.d.ts +3 -0
  369. package/dist/field/lexical/ui/icons/Strikethrough/index.d.ts.map +1 -0
  370. package/dist/field/lexical/ui/icons/Strikethrough/index.js +34 -0
  371. package/dist/field/lexical/ui/icons/Subscript/index.d.ts +3 -0
  372. package/dist/field/lexical/ui/icons/Subscript/index.d.ts.map +1 -0
  373. package/dist/field/lexical/ui/icons/Subscript/index.js +31 -0
  374. package/dist/field/lexical/ui/icons/Superscript/index.d.ts +3 -0
  375. package/dist/field/lexical/ui/icons/Superscript/index.d.ts.map +1 -0
  376. package/dist/field/lexical/ui/icons/Superscript/index.js +31 -0
  377. package/dist/field/lexical/ui/icons/Text/index.d.ts +3 -0
  378. package/dist/field/lexical/ui/icons/Text/index.d.ts.map +1 -0
  379. package/dist/field/lexical/ui/icons/Text/index.js +31 -0
  380. package/dist/field/lexical/ui/icons/Underline/index.d.ts +3 -0
  381. package/dist/field/lexical/ui/icons/Underline/index.d.ts.map +1 -0
  382. package/dist/field/lexical/ui/icons/Underline/index.js +34 -0
  383. package/dist/field/lexical/ui/icons/UnorderedList/index.d.ts +3 -0
  384. package/dist/field/lexical/ui/icons/UnorderedList/index.d.ts.map +1 -0
  385. package/dist/field/lexical/ui/icons/UnorderedList/index.js +61 -0
  386. package/dist/field/lexical/ui/icons/Upload/index.d.ts +3 -0
  387. package/dist/field/lexical/ui/icons/Upload/index.d.ts.map +1 -0
  388. package/dist/field/lexical/ui/icons/Upload/index.js +43 -0
  389. package/dist/field/lexical/utils/canUseDOM.d.ts +2 -0
  390. package/dist/field/lexical/utils/canUseDOM.d.ts.map +1 -0
  391. package/dist/field/lexical/utils/canUseDOM.js +13 -0
  392. package/dist/field/lexical/utils/cloneDeep.d.ts +2 -0
  393. package/dist/field/lexical/utils/cloneDeep.d.ts.map +1 -0
  394. package/dist/field/lexical/utils/cloneDeep.js +39 -0
  395. package/dist/field/lexical/utils/getDOMRangeRect.d.ts +2 -0
  396. package/dist/field/lexical/utils/getDOMRangeRect.d.ts.map +1 -0
  397. package/dist/field/lexical/utils/getDOMRangeRect.js +26 -0
  398. package/dist/field/lexical/utils/getSelectedNode.d.ts +3 -0
  399. package/dist/field/lexical/utils/getSelectedNode.d.ts.map +1 -0
  400. package/dist/field/lexical/utils/getSelectedNode.js +33 -0
  401. package/dist/field/lexical/utils/guard.d.ts +9 -0
  402. package/dist/field/lexical/utils/guard.d.ts.map +1 -0
  403. package/dist/field/lexical/utils/guard.js +21 -0
  404. package/dist/field/lexical/utils/invariant.d.ts +2 -0
  405. package/dist/field/lexical/utils/invariant.d.ts.map +1 -0
  406. package/dist/field/lexical/utils/invariant.js +22 -0
  407. package/dist/field/lexical/utils/isMobileWidth.d.ts +9 -0
  408. package/dist/field/lexical/utils/isMobileWidth.d.ts.map +1 -0
  409. package/dist/field/lexical/utils/isMobileWidth.js +9 -0
  410. package/dist/field/lexical/utils/joinClasses.d.ts +9 -0
  411. package/dist/field/lexical/utils/joinClasses.d.ts.map +1 -0
  412. package/dist/field/lexical/utils/joinClasses.js +21 -0
  413. package/dist/field/lexical/utils/markdown/createBlockNode.d.ts +4 -0
  414. package/dist/field/lexical/utils/markdown/createBlockNode.d.ts.map +1 -0
  415. package/dist/field/lexical/utils/markdown/createBlockNode.js +20 -0
  416. package/dist/field/lexical/utils/point.d.ts +22 -0
  417. package/dist/field/lexical/utils/point.d.ts.map +1 -0
  418. package/dist/field/lexical/utils/point.js +61 -0
  419. package/dist/field/lexical/utils/rect.d.ts +54 -0
  420. package/dist/field/lexical/utils/rect.d.ts.map +1 -0
  421. package/dist/field/lexical/utils/rect.js +154 -0
  422. package/dist/field/lexical/utils/setFloatingElemPosition.d.ts +2 -0
  423. package/dist/field/lexical/utils/setFloatingElemPosition.d.ts.map +1 -0
  424. package/dist/field/lexical/utils/setFloatingElemPosition.js +55 -0
  425. package/dist/field/lexical/utils/setFloatingElemPositionForLinkEditor.d.ts +2 -0
  426. package/dist/field/lexical/utils/setFloatingElemPositionForLinkEditor.d.ts.map +1 -0
  427. package/dist/field/lexical/utils/setFloatingElemPositionForLinkEditor.js +43 -0
  428. package/dist/field/lexical/utils/swipe.d.ts +12 -0
  429. package/dist/field/lexical/utils/swipe.d.ts.map +1 -0
  430. package/dist/field/lexical/utils/swipe.js +130 -0
  431. package/dist/field/lexical/utils/url.d.ts +10 -0
  432. package/dist/field/lexical/utils/url.d.ts.map +1 -0
  433. package/dist/field/lexical/utils/url.js +40 -0
  434. package/dist/index.d.ts +30 -0
  435. package/dist/index.d.ts.map +1 -0
  436. package/dist/index.js +170 -0
  437. package/dist/populate/defaultValue.d.ts +26 -0
  438. package/dist/populate/defaultValue.d.ts.map +1 -0
  439. package/dist/populate/defaultValue.js +41 -0
  440. package/dist/populate/populate.d.ts +20 -0
  441. package/dist/populate/populate.d.ts.map +1 -0
  442. package/dist/populate/populate.js +31 -0
  443. package/dist/populate/recurseNestedFields.d.ts +16 -0
  444. package/dist/populate/recurseNestedFields.d.ts.map +1 -0
  445. package/dist/populate/recurseNestedFields.js +182 -0
  446. package/dist/populate/richTextRelationshipPromise.d.ts +22 -0
  447. package/dist/populate/richTextRelationshipPromise.d.ts.map +1 -0
  448. package/dist/populate/richTextRelationshipPromise.js +71 -0
  449. package/dist/populate/validation.d.ts +4 -0
  450. package/dist/populate/validation.d.ts.map +1 -0
  451. package/dist/populate/validation.js +21 -0
  452. package/dist/types.d.ts +14 -0
  453. package/dist/types.d.ts.map +1 -0
  454. package/dist/types.js +6 -0
  455. package/package.json +60 -0
  456. package/src/index.ts +92 -0
@@ -0,0 +1,264 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ */ "use strict";
8
+ Object.defineProperty(exports, "__esModule", {
9
+ value: true
10
+ });
11
+ Object.defineProperty(exports, "AddBlockHandlePlugin", {
12
+ enumerable: true,
13
+ get: function() {
14
+ return AddBlockHandlePlugin;
15
+ }
16
+ });
17
+ const _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
18
+ const _lexical = require("lexical");
19
+ const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
20
+ const _reactdom = require("react-dom");
21
+ const _guard = require("../../../utils/guard");
22
+ const _point = require("../../../utils/point");
23
+ const _rect = require("../../../utils/rect");
24
+ const _LexicalTypeaheadMenuPlugin = require("../../SlashMenu/LexicalTypeaheadMenuPlugin");
25
+ const _getCollapsedMargins = require("../utils/getCollapsedMargins");
26
+ const _getTopLevelNodeKeys = require("../utils/getTopLevelNodeKeys");
27
+ const _isOnHandleElement = require("../utils/isOnHandleElement");
28
+ const _setHandlePosition = require("../utils/setHandlePosition");
29
+ require("./index.scss");
30
+ function _getRequireWildcardCache(nodeInterop) {
31
+ if (typeof WeakMap !== "function") return null;
32
+ var cacheBabelInterop = new WeakMap();
33
+ var cacheNodeInterop = new WeakMap();
34
+ return (_getRequireWildcardCache = function(nodeInterop) {
35
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
36
+ })(nodeInterop);
37
+ }
38
+ function _interop_require_wildcard(obj, nodeInterop) {
39
+ if (!nodeInterop && obj && obj.__esModule) {
40
+ return obj;
41
+ }
42
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
43
+ return {
44
+ default: obj
45
+ };
46
+ }
47
+ var cache = _getRequireWildcardCache(nodeInterop);
48
+ if (cache && cache.has(obj)) {
49
+ return cache.get(obj);
50
+ }
51
+ var newObj = {};
52
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
53
+ for(var key in obj){
54
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
55
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
56
+ if (desc && (desc.get || desc.set)) {
57
+ Object.defineProperty(newObj, key, desc);
58
+ } else {
59
+ newObj[key] = obj[key];
60
+ }
61
+ }
62
+ }
63
+ newObj.default = obj;
64
+ if (cache) {
65
+ cache.set(obj, newObj);
66
+ }
67
+ return newObj;
68
+ }
69
+ const SPACE = -24;
70
+ const ADD_BLOCK_MENU_CLASSNAME = 'add-block-menu';
71
+ const Downward = 1;
72
+ const Upward = -1;
73
+ const Indeterminate = 0;
74
+ let prevIndex = Infinity;
75
+ function getCurrentIndex(keysLength) {
76
+ if (keysLength === 0) {
77
+ return Infinity;
78
+ }
79
+ if (prevIndex >= 0 && prevIndex < keysLength) {
80
+ return prevIndex;
81
+ }
82
+ return Math.floor(keysLength / 2);
83
+ }
84
+ function getBlockElement(anchorElem, editor, event, useEdgeAsDefault = false, horizontalOffset = 0) {
85
+ const anchorElementRect = anchorElem.getBoundingClientRect();
86
+ const topLevelNodeKeys = (0, _getTopLevelNodeKeys.getTopLevelNodeKeys)(editor);
87
+ let blockElem = null;
88
+ let blockNode = null;
89
+ let shouldRemove = false;
90
+ // Return null if matching block element is the first or last node
91
+ editor.getEditorState().read(()=>{
92
+ if (useEdgeAsDefault) {
93
+ const [firstNode, lastNode] = [
94
+ editor.getElementByKey(topLevelNodeKeys[0]),
95
+ editor.getElementByKey(topLevelNodeKeys[topLevelNodeKeys.length - 1])
96
+ ];
97
+ const [firstNodeRect, lastNodeRect] = [
98
+ firstNode?.getBoundingClientRect(),
99
+ lastNode?.getBoundingClientRect()
100
+ ];
101
+ if (firstNodeRect && lastNodeRect) {
102
+ if (event.y < firstNodeRect.top) {
103
+ blockElem = firstNode;
104
+ } else if (event.y > lastNodeRect.bottom) {
105
+ blockElem = lastNode;
106
+ }
107
+ if (blockElem) {
108
+ return {
109
+ blockElem: null,
110
+ shouldRemove
111
+ };
112
+ }
113
+ }
114
+ }
115
+ // Find matching block element
116
+ let index = getCurrentIndex(topLevelNodeKeys.length);
117
+ let direction = Indeterminate;
118
+ while(index >= 0 && index < topLevelNodeKeys.length){
119
+ const key = topLevelNodeKeys[index];
120
+ const elem = editor.getElementByKey(key);
121
+ if (elem === null) {
122
+ break;
123
+ }
124
+ const point = new _point.Point(event.x + horizontalOffset, event.y);
125
+ const domRect = _rect.Rect.fromDOM(elem);
126
+ const { marginBottom, marginTop } = (0, _getCollapsedMargins.getCollapsedMargins)(elem);
127
+ const rect = domRect.generateNewRect({
128
+ bottom: domRect.bottom + marginBottom,
129
+ left: anchorElementRect.left,
130
+ right: anchorElementRect.right,
131
+ top: domRect.top - marginTop
132
+ });
133
+ const { reason: { isOnBottomSide, isOnTopSide }, result } = rect.contains(point);
134
+ if (result) {
135
+ blockElem = elem;
136
+ blockNode = (0, _lexical.$getNodeByKey)(key);
137
+ prevIndex = index;
138
+ // Check if blockNode is an empty text node
139
+ if (!blockNode || blockNode.getType() !== 'paragraph' || blockNode.getTextContent() !== '') {
140
+ blockElem = null;
141
+ shouldRemove = true;
142
+ }
143
+ break;
144
+ }
145
+ if (direction === Indeterminate) {
146
+ if (isOnTopSide) {
147
+ direction = Upward;
148
+ } else if (isOnBottomSide) {
149
+ direction = Downward;
150
+ } else {
151
+ // stop search block element
152
+ direction = Infinity;
153
+ }
154
+ }
155
+ index += direction;
156
+ }
157
+ });
158
+ return {
159
+ blockElem: blockElem,
160
+ shouldRemove
161
+ };
162
+ }
163
+ function useAddBlockHandle(editor, anchorElem, isEditable) {
164
+ const scrollerElem = anchorElem.parentElement;
165
+ const menuRef = (0, _react.useRef)(null);
166
+ const [emptyBlockElem, setEmptyBlockElem] = (0, _react.useState)(null);
167
+ (0, _react.useEffect)(()=>{
168
+ function onDocumentMouseMove(event) {
169
+ const target = event.target;
170
+ if (!(0, _guard.isHTMLElement)(target)) {
171
+ return;
172
+ }
173
+ let distanceFromScrollerElem = 0;
174
+ // Calculate distance between scrollerElem and target if target is not in scrollerElem
175
+ if (scrollerElem && !scrollerElem.contains(target)) {
176
+ const { bottom, left, right, top } = scrollerElem.getBoundingClientRect();
177
+ const { pageX, pageY } = event;
178
+ const horizontalBuffer = 50;
179
+ const verticalBuffer = 25;
180
+ const adjustedTop = top + window.scrollY;
181
+ const adjustedBottom = bottom + window.scrollY;
182
+ if (pageY < adjustedTop - verticalBuffer || pageY > adjustedBottom + verticalBuffer || pageX < left - horizontalBuffer || pageX > right + horizontalBuffer) {
183
+ setEmptyBlockElem(null);
184
+ return;
185
+ }
186
+ // This is used to allow the _emptyBlockElem to be found when the mouse is in the
187
+ // buffer zone around the scrollerElem.
188
+ if (pageX < left || pageX > right) {
189
+ distanceFromScrollerElem = pageX < left ? pageX - left : pageX - right;
190
+ }
191
+ }
192
+ if ((0, _isOnHandleElement.isOnHandleElement)(target, ADD_BLOCK_MENU_CLASSNAME)) {
193
+ return;
194
+ }
195
+ const { blockElem: _emptyBlockElem, shouldRemove } = getBlockElement(anchorElem, editor, event, false, -distanceFromScrollerElem);
196
+ if (!_emptyBlockElem && !shouldRemove) {
197
+ return;
198
+ }
199
+ setEmptyBlockElem(_emptyBlockElem);
200
+ }
201
+ // Since the draggableBlockElem is outside the actual editor, we need to listen to the document
202
+ // to be able to detect when the mouse is outside the editor and respect a buffer around the
203
+ // the scrollerElem to avoid the draggableBlockElem disappearing too early.
204
+ document?.addEventListener('mousemove', onDocumentMouseMove);
205
+ return ()=>{
206
+ document?.removeEventListener('mousemove', onDocumentMouseMove);
207
+ };
208
+ }, [
209
+ scrollerElem,
210
+ anchorElem,
211
+ editor
212
+ ]);
213
+ (0, _react.useEffect)(()=>{
214
+ if (menuRef.current) {
215
+ (0, _setHandlePosition.setHandlePosition)(emptyBlockElem, menuRef.current, anchorElem, SPACE);
216
+ }
217
+ }, [
218
+ anchorElem,
219
+ emptyBlockElem
220
+ ]);
221
+ const handleAddClick = (0, _react.useCallback)((event)=>{
222
+ if (!emptyBlockElem) {
223
+ return;
224
+ }
225
+ editor.update(()=>{
226
+ const node = (0, _lexical.$getNearestNodeFromDOMNode)(emptyBlockElem);
227
+ if (!node || node.getType() !== 'paragraph') {
228
+ return;
229
+ }
230
+ editor.focus();
231
+ node.select();
232
+ /*const ns = $createNodeSelection();
233
+ ns.add(node.getKey())
234
+ $setSelection(ns)*/ });
235
+ // Make sure this is called AFTER the editorfocus() event has been processed by the browser
236
+ // Otherwise, this won't work
237
+ setTimeout(()=>{
238
+ editor.dispatchCommand(_LexicalTypeaheadMenuPlugin.ENABLE_SLASH_MENU_COMMAND, {
239
+ rect: emptyBlockElem.getBoundingClientRect()
240
+ });
241
+ }, 0);
242
+ event.stopPropagation();
243
+ event.preventDefault();
244
+ }, [
245
+ editor,
246
+ emptyBlockElem
247
+ ]);
248
+ return /*#__PURE__*/ (0, _reactdom.createPortal)(/*#__PURE__*/ _react.createElement(_react.Fragment, null, /*#__PURE__*/ _react.createElement("button", {
249
+ className: "icon add-block-menu",
250
+ onClick: (event)=>{
251
+ handleAddClick(event);
252
+ },
253
+ ref: menuRef,
254
+ type: "button"
255
+ }, /*#__PURE__*/ _react.createElement("div", {
256
+ className: isEditable ? 'icon' : ''
257
+ }))), anchorElem);
258
+ }
259
+ function AddBlockHandlePlugin({ anchorElem = document.body }) {
260
+ const [editor] = (0, _LexicalComposerContext.useLexicalComposerContext)();
261
+ return useAddBlockHandle(editor, anchorElem, editor._editable);
262
+ }
263
+
264
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvaGFuZGxlcy9BZGRCbG9ja0hhbmRsZVBsdWdpbi9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIE1ldGEgUGxhdGZvcm1zLCBJbmMuIGFuZCBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICpcbiAqL1xuaW1wb3J0IHR5cGUgeyBQYXJhZ3JhcGhOb2RlIH0gZnJvbSAnbGV4aWNhbCdcblxuaW1wb3J0IHsgdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCB9IGZyb20gJ0BsZXhpY2FsL3JlYWN0L0xleGljYWxDb21wb3NlckNvbnRleHQnXG5pbXBvcnQge1xuICAkZ2V0TmVhcmVzdE5vZGVGcm9tRE9NTm9kZSxcbiAgJGdldE5vZGVCeUtleSxcbiAgdHlwZSBMZXhpY2FsRWRpdG9yLFxuICB0eXBlIExleGljYWxOb2RlLFxufSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tICdyZWFjdC1kb20nXG5cbmltcG9ydCB7IGlzSFRNTEVsZW1lbnQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9ndWFyZCdcbmltcG9ydCB7IFBvaW50IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvcG9pbnQnXG5pbXBvcnQgeyBSZWN0IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvcmVjdCdcbmltcG9ydCB7IEVOQUJMRV9TTEFTSF9NRU5VX0NPTU1BTkQgfSBmcm9tICcuLi8uLi9TbGFzaE1lbnUvTGV4aWNhbFR5cGVhaGVhZE1lbnVQbHVnaW4nXG5pbXBvcnQgeyBnZXRDb2xsYXBzZWRNYXJnaW5zIH0gZnJvbSAnLi4vdXRpbHMvZ2V0Q29sbGFwc2VkTWFyZ2lucydcbmltcG9ydCB7IGdldFRvcExldmVsTm9kZUtleXMgfSBmcm9tICcuLi91dGlscy9nZXRUb3BMZXZlbE5vZGVLZXlzJ1xuaW1wb3J0IHsgaXNPbkhhbmRsZUVsZW1lbnQgfSBmcm9tICcuLi91dGlscy9pc09uSGFuZGxlRWxlbWVudCdcbmltcG9ydCB7IHNldEhhbmRsZVBvc2l0aW9uIH0gZnJvbSAnLi4vdXRpbHMvc2V0SGFuZGxlUG9zaXRpb24nXG5pbXBvcnQgJy4vaW5kZXguc2NzcydcblxuY29uc3QgU1BBQ0UgPSAtMjRcbmNvbnN0IEFERF9CTE9DS19NRU5VX0NMQVNTTkFNRSA9ICdhZGQtYmxvY2stbWVudSdcblxuY29uc3QgRG93bndhcmQgPSAxXG5jb25zdCBVcHdhcmQgPSAtMVxuY29uc3QgSW5kZXRlcm1pbmF0ZSA9IDBcblxubGV0IHByZXZJbmRleCA9IEluZmluaXR5XG5cbmZ1bmN0aW9uIGdldEN1cnJlbnRJbmRleChrZXlzTGVuZ3RoOiBudW1iZXIpOiBudW1iZXIge1xuICBpZiAoa2V5c0xlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBJbmZpbml0eVxuICB9XG4gIGlmIChwcmV2SW5kZXggPj0gMCAmJiBwcmV2SW5kZXggPCBrZXlzTGVuZ3RoKSB7XG4gICAgcmV0dXJuIHByZXZJbmRleFxuICB9XG5cbiAgcmV0dXJuIE1hdGguZmxvb3Ioa2V5c0xlbmd0aCAvIDIpXG59XG5cbmZ1bmN0aW9uIGdldEJsb2NrRWxlbWVudChcbiAgYW5jaG9yRWxlbTogSFRNTEVsZW1lbnQsXG4gIGVkaXRvcjogTGV4aWNhbEVkaXRvcixcbiAgZXZlbnQ6IE1vdXNlRXZlbnQsXG4gIHVzZUVkZ2VBc0RlZmF1bHQgPSBmYWxzZSxcbiAgaG9yaXpvbnRhbE9mZnNldCA9IDAsXG4pOiB7XG4gIGJsb2NrRWxlbTogSFRNTEVsZW1lbnQgfCBudWxsXG4gIHNob3VsZFJlbW92ZTogYm9vbGVhblxufSB7XG4gIGNvbnN0IGFuY2hvckVsZW1lbnRSZWN0ID0gYW5jaG9yRWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICBjb25zdCB0b3BMZXZlbE5vZGVLZXlzID0gZ2V0VG9wTGV2ZWxOb2RlS2V5cyhlZGl0b3IpXG5cbiAgbGV0IGJsb2NrRWxlbTogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbFxuICBsZXQgYmxvY2tOb2RlOiBMZXhpY2FsTm9kZSB8IG51bGwgPSBudWxsXG4gIGxldCBzaG91bGRSZW1vdmUgPSBmYWxzZVxuXG4gIC8vIFJldHVybiBudWxsIGlmIG1hdGNoaW5nIGJsb2NrIGVsZW1lbnQgaXMgdGhlIGZpcnN0IG9yIGxhc3Qgbm9kZVxuICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICBpZiAodXNlRWRnZUFzRGVmYXVsdCkge1xuICAgICAgY29uc3QgW2ZpcnN0Tm9kZSwgbGFzdE5vZGVdID0gW1xuICAgICAgICBlZGl0b3IuZ2V0RWxlbWVudEJ5S2V5KHRvcExldmVsTm9kZUtleXNbMF0pLFxuICAgICAgICBlZGl0b3IuZ2V0RWxlbWVudEJ5S2V5KHRvcExldmVsTm9kZUtleXNbdG9wTGV2ZWxOb2RlS2V5cy5sZW5ndGggLSAxXSksXG4gICAgICBdXG5cbiAgICAgIGNvbnN0IFtmaXJzdE5vZGVSZWN0LCBsYXN0Tm9kZVJlY3RdID0gW1xuICAgICAgICBmaXJzdE5vZGU/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxuICAgICAgICBsYXN0Tm9kZT8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksXG4gICAgICBdXG5cbiAgICAgIGlmIChmaXJzdE5vZGVSZWN0ICYmIGxhc3ROb2RlUmVjdCkge1xuICAgICAgICBpZiAoZXZlbnQueSA8IGZpcnN0Tm9kZVJlY3QudG9wKSB7XG4gICAgICAgICAgYmxvY2tFbGVtID0gZmlyc3ROb2RlXG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQueSA+IGxhc3ROb2RlUmVjdC5ib3R0b20pIHtcbiAgICAgICAgICBibG9ja0VsZW0gPSBsYXN0Tm9kZVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGJsb2NrRWxlbSkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBibG9ja0VsZW06IG51bGwsXG4gICAgICAgICAgICBzaG91bGRSZW1vdmUsXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRmluZCBtYXRjaGluZyBibG9jayBlbGVtZW50XG4gICAgbGV0IGluZGV4ID0gZ2V0Q3VycmVudEluZGV4KHRvcExldmVsTm9kZUtleXMubGVuZ3RoKVxuICAgIGxldCBkaXJlY3Rpb24gPSBJbmRldGVybWluYXRlXG5cbiAgICB3aGlsZSAoaW5kZXggPj0gMCAmJiBpbmRleCA8IHRvcExldmVsTm9kZUtleXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBrZXkgPSB0b3BMZXZlbE5vZGVLZXlzW2luZGV4XVxuICAgICAgY29uc3QgZWxlbSA9IGVkaXRvci5nZXRFbGVtZW50QnlLZXkoa2V5KVxuICAgICAgaWYgKGVsZW0gPT09IG51bGwpIHtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHBvaW50ID0gbmV3IFBvaW50KGV2ZW50LnggKyBob3Jpem9udGFsT2Zmc2V0LCBldmVudC55KVxuICAgICAgY29uc3QgZG9tUmVjdCA9IFJlY3QuZnJvbURPTShlbGVtKVxuICAgICAgY29uc3QgeyBtYXJnaW5Cb3R0b20sIG1hcmdpblRvcCB9ID0gZ2V0Q29sbGFwc2VkTWFyZ2lucyhlbGVtKVxuXG4gICAgICBjb25zdCByZWN0ID0gZG9tUmVjdC5nZW5lcmF0ZU5ld1JlY3Qoe1xuICAgICAgICBib3R0b206IGRvbVJlY3QuYm90dG9tICsgbWFyZ2luQm90dG9tLFxuICAgICAgICBsZWZ0OiBhbmNob3JFbGVtZW50UmVjdC5sZWZ0LFxuICAgICAgICByaWdodDogYW5jaG9yRWxlbWVudFJlY3QucmlnaHQsXG4gICAgICAgIHRvcDogZG9tUmVjdC50b3AgLSBtYXJnaW5Ub3AsXG4gICAgICB9KVxuXG4gICAgICBjb25zdCB7XG4gICAgICAgIHJlYXNvbjogeyBpc09uQm90dG9tU2lkZSwgaXNPblRvcFNpZGUgfSxcbiAgICAgICAgcmVzdWx0LFxuICAgICAgfSA9IHJlY3QuY29udGFpbnMocG9pbnQpXG5cbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgYmxvY2tFbGVtID0gZWxlbVxuICAgICAgICBibG9ja05vZGUgPSAkZ2V0Tm9kZUJ5S2V5KGtleSlcbiAgICAgICAgcHJldkluZGV4ID0gaW5kZXhcblxuICAgICAgICAvLyBDaGVjayBpZiBibG9ja05vZGUgaXMgYW4gZW1wdHkgdGV4dCBub2RlXG4gICAgICAgIGlmIChcbiAgICAgICAgICAhYmxvY2tOb2RlIHx8XG4gICAgICAgICAgYmxvY2tOb2RlLmdldFR5cGUoKSAhPT0gJ3BhcmFncmFwaCcgfHxcbiAgICAgICAgICBibG9ja05vZGUuZ2V0VGV4dENvbnRlbnQoKSAhPT0gJydcbiAgICAgICAgKSB7XG4gICAgICAgICAgYmxvY2tFbGVtID0gbnVsbFxuICAgICAgICAgIHNob3VsZFJlbW92ZSA9IHRydWVcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBpZiAoZGlyZWN0aW9uID09PSBJbmRldGVybWluYXRlKSB7XG4gICAgICAgIGlmIChpc09uVG9wU2lkZSkge1xuICAgICAgICAgIGRpcmVjdGlvbiA9IFVwd2FyZFxuICAgICAgICB9IGVsc2UgaWYgKGlzT25Cb3R0b21TaWRlKSB7XG4gICAgICAgICAgZGlyZWN0aW9uID0gRG93bndhcmRcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBzdG9wIHNlYXJjaCBibG9jayBlbGVtZW50XG4gICAgICAgICAgZGlyZWN0aW9uID0gSW5maW5pdHlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpbmRleCArPSBkaXJlY3Rpb25cbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuIHtcbiAgICBibG9ja0VsZW06IGJsb2NrRWxlbSxcbiAgICBzaG91bGRSZW1vdmUsXG4gIH1cbn1cblxuZnVuY3Rpb24gdXNlQWRkQmxvY2tIYW5kbGUoXG4gIGVkaXRvcjogTGV4aWNhbEVkaXRvcixcbiAgYW5jaG9yRWxlbTogSFRNTEVsZW1lbnQsXG4gIGlzRWRpdGFibGU6IGJvb2xlYW4sXG4pOiBKU1guRWxlbWVudCB7XG4gIGNvbnN0IHNjcm9sbGVyRWxlbSA9IGFuY2hvckVsZW0ucGFyZW50RWxlbWVudFxuXG4gIGNvbnN0IG1lbnVSZWYgPSB1c2VSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IFtlbXB0eUJsb2NrRWxlbSwgc2V0RW1wdHlCbG9ja0VsZW1dID0gdXNlU3RhdGU8SFRNTEVsZW1lbnQgfCBudWxsPihudWxsKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZnVuY3Rpb24gb25Eb2N1bWVudE1vdXNlTW92ZShldmVudDogTW91c2VFdmVudCkge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0XG4gICAgICBpZiAoIWlzSFRNTEVsZW1lbnQodGFyZ2V0KSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgbGV0IGRpc3RhbmNlRnJvbVNjcm9sbGVyRWxlbSA9IDBcbiAgICAgIC8vIENhbGN1bGF0ZSBkaXN0YW5jZSBiZXR3ZWVuIHNjcm9sbGVyRWxlbSBhbmQgdGFyZ2V0IGlmIHRhcmdldCBpcyBub3QgaW4gc2Nyb2xsZXJFbGVtXG4gICAgICBpZiAoc2Nyb2xsZXJFbGVtICYmICFzY3JvbGxlckVsZW0uY29udGFpbnModGFyZ2V0KSkge1xuICAgICAgICBjb25zdCB7IGJvdHRvbSwgbGVmdCwgcmlnaHQsIHRvcCB9ID0gc2Nyb2xsZXJFbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICAgIGNvbnN0IHsgcGFnZVgsIHBhZ2VZIH0gPSBldmVudFxuICAgICAgICBjb25zdCBob3Jpem9udGFsQnVmZmVyID0gNTBcbiAgICAgICAgY29uc3QgdmVydGljYWxCdWZmZXIgPSAyNVxuICAgICAgICBjb25zdCBhZGp1c3RlZFRvcCA9IHRvcCArIHdpbmRvdy5zY3JvbGxZXG4gICAgICAgIGNvbnN0IGFkanVzdGVkQm90dG9tID0gYm90dG9tICsgd2luZG93LnNjcm9sbFlcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgcGFnZVkgPCBhZGp1c3RlZFRvcCAtIHZlcnRpY2FsQnVmZmVyIHx8XG4gICAgICAgICAgcGFnZVkgPiBhZGp1c3RlZEJvdHRvbSArIHZlcnRpY2FsQnVmZmVyIHx8XG4gICAgICAgICAgcGFnZVggPCBsZWZ0IC0gaG9yaXpvbnRhbEJ1ZmZlciB8fFxuICAgICAgICAgIHBhZ2VYID4gcmlnaHQgKyBob3Jpem9udGFsQnVmZmVyXG4gICAgICAgICkge1xuICAgICAgICAgIHNldEVtcHR5QmxvY2tFbGVtKG51bGwpXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaGlzIGlzIHVzZWQgdG8gYWxsb3cgdGhlIF9lbXB0eUJsb2NrRWxlbSB0byBiZSBmb3VuZCB3aGVuIHRoZSBtb3VzZSBpcyBpbiB0aGVcbiAgICAgICAgLy8gYnVmZmVyIHpvbmUgYXJvdW5kIHRoZSBzY3JvbGxlckVsZW0uXG4gICAgICAgIGlmIChwYWdlWCA8IGxlZnQgfHwgcGFnZVggPiByaWdodCkge1xuICAgICAgICAgIGRpc3RhbmNlRnJvbVNjcm9sbGVyRWxlbSA9IHBhZ2VYIDwgbGVmdCA/IHBhZ2VYIC0gbGVmdCA6IHBhZ2VYIC0gcmlnaHRcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNPbkhhbmRsZUVsZW1lbnQodGFyZ2V0LCBBRERfQkxPQ0tfTUVOVV9DTEFTU05BTUUpKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgY29uc3QgeyBibG9ja0VsZW06IF9lbXB0eUJsb2NrRWxlbSwgc2hvdWxkUmVtb3ZlIH0gPSBnZXRCbG9ja0VsZW1lbnQoXG4gICAgICAgIGFuY2hvckVsZW0sXG4gICAgICAgIGVkaXRvcixcbiAgICAgICAgZXZlbnQsXG4gICAgICAgIGZhbHNlLFxuICAgICAgICAtZGlzdGFuY2VGcm9tU2Nyb2xsZXJFbGVtLFxuICAgICAgKVxuICAgICAgaWYgKCFfZW1wdHlCbG9ja0VsZW0gJiYgIXNob3VsZFJlbW92ZSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIHNldEVtcHR5QmxvY2tFbGVtKF9lbXB0eUJsb2NrRWxlbSlcbiAgICB9XG5cbiAgICAvLyBTaW5jZSB0aGUgZHJhZ2dhYmxlQmxvY2tFbGVtIGlzIG91dHNpZGUgdGhlIGFjdHVhbCBlZGl0b3IsIHdlIG5lZWQgdG8gbGlzdGVuIHRvIHRoZSBkb2N1bWVudFxuICAgIC8vIHRvIGJlIGFibGUgdG8gZGV0ZWN0IHdoZW4gdGhlIG1vdXNlIGlzIG91dHNpZGUgdGhlIGVkaXRvciBhbmQgcmVzcGVjdCBhIGJ1ZmZlciBhcm91bmQgdGhlXG4gICAgLy8gdGhlIHNjcm9sbGVyRWxlbSB0byBhdm9pZCB0aGUgZHJhZ2dhYmxlQmxvY2tFbGVtIGRpc2FwcGVhcmluZyB0b28gZWFybHkuXG4gICAgZG9jdW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIG9uRG9jdW1lbnRNb3VzZU1vdmUpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIG9uRG9jdW1lbnRNb3VzZU1vdmUpXG4gICAgfVxuICB9LCBbc2Nyb2xsZXJFbGVtLCBhbmNob3JFbGVtLCBlZGl0b3JdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKG1lbnVSZWYuY3VycmVudCkge1xuICAgICAgc2V0SGFuZGxlUG9zaXRpb24oZW1wdHlCbG9ja0VsZW0sIG1lbnVSZWYuY3VycmVudCwgYW5jaG9yRWxlbSwgU1BBQ0UpXG4gICAgfVxuICB9LCBbYW5jaG9yRWxlbSwgZW1wdHlCbG9ja0VsZW1dKVxuXG4gIGNvbnN0IGhhbmRsZUFkZENsaWNrID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50KSA9PiB7XG4gICAgICBpZiAoIWVtcHR5QmxvY2tFbGVtKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBlZGl0b3IudXBkYXRlKCgpID0+IHtcbiAgICAgICAgY29uc3Qgbm9kZTogUGFyYWdyYXBoTm9kZSA9ICRnZXROZWFyZXN0Tm9kZUZyb21ET01Ob2RlKGVtcHR5QmxvY2tFbGVtKSBhcyBQYXJhZ3JhcGhOb2RlXG4gICAgICAgIGlmICghbm9kZSB8fCBub2RlLmdldFR5cGUoKSAhPT0gJ3BhcmFncmFwaCcpIHtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICBlZGl0b3IuZm9jdXMoKVxuXG4gICAgICAgIG5vZGUuc2VsZWN0KClcbiAgICAgICAgLypjb25zdCBucyA9ICRjcmVhdGVOb2RlU2VsZWN0aW9uKCk7XG4gICAgICAgIG5zLmFkZChub2RlLmdldEtleSgpKVxuICAgICAgICAkc2V0U2VsZWN0aW9uKG5zKSovXG4gICAgICB9KVxuXG4gICAgICAvLyBNYWtlIHN1cmUgdGhpcyBpcyBjYWxsZWQgQUZURVIgdGhlIGVkaXRvcmZvY3VzKCkgZXZlbnQgaGFzIGJlZW4gcHJvY2Vzc2VkIGJ5IHRoZSBicm93c2VyXG4gICAgICAvLyBPdGhlcndpc2UsIHRoaXMgd29uJ3Qgd29ya1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGVkaXRvci5kaXNwYXRjaENvbW1hbmQoRU5BQkxFX1NMQVNIX01FTlVfQ09NTUFORCwge1xuICAgICAgICAgIHJlY3Q6IGVtcHR5QmxvY2tFbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxuICAgICAgICB9KVxuICAgICAgfSwgMClcblxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICB9LFxuICAgIFtlZGl0b3IsIGVtcHR5QmxvY2tFbGVtXSxcbiAgKVxuXG4gIHJldHVybiBjcmVhdGVQb3J0YWwoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzc05hbWU9XCJpY29uIGFkZC1ibG9jay1tZW51XCJcbiAgICAgICAgb25DbGljaz17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgaGFuZGxlQWRkQ2xpY2soZXZlbnQpXG4gICAgICAgIH19XG4gICAgICAgIHJlZj17bWVudVJlZn1cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtpc0VkaXRhYmxlID8gJ2ljb24nIDogJyd9IC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L1JlYWN0LkZyYWdtZW50PixcbiAgICBhbmNob3JFbGVtLFxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBBZGRCbG9ja0hhbmRsZVBsdWdpbih7XG4gIGFuY2hvckVsZW0gPSBkb2N1bWVudC5ib2R5LFxufToge1xuICBhbmNob3JFbGVtPzogSFRNTEVsZW1lbnRcbn0pOiBKU1guRWxlbWVudCB7XG4gIGNvbnN0IFtlZGl0b3JdID0gdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCgpXG4gIHJldHVybiB1c2VBZGRCbG9ja0hhbmRsZShlZGl0b3IsIGFuY2hvckVsZW0sIGVkaXRvci5fZWRpdGFibGUpXG59XG4iXSwibmFtZXMiOlsiQWRkQmxvY2tIYW5kbGVQbHVnaW4iLCJTUEFDRSIsIkFERF9CTE9DS19NRU5VX0NMQVNTTkFNRSIsIkRvd253YXJkIiwiVXB3YXJkIiwiSW5kZXRlcm1pbmF0ZSIsInByZXZJbmRleCIsIkluZmluaXR5IiwiZ2V0Q3VycmVudEluZGV4Iiwia2V5c0xlbmd0aCIsIk1hdGgiLCJmbG9vciIsImdldEJsb2NrRWxlbWVudCIsImFuY2hvckVsZW0iLCJlZGl0b3IiLCJldmVudCIsInVzZUVkZ2VBc0RlZmF1bHQiLCJob3Jpem9udGFsT2Zmc2V0IiwiYW5jaG9yRWxlbWVudFJlY3QiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJ0b3BMZXZlbE5vZGVLZXlzIiwiZ2V0VG9wTGV2ZWxOb2RlS2V5cyIsImJsb2NrRWxlbSIsImJsb2NrTm9kZSIsInNob3VsZFJlbW92ZSIsImdldEVkaXRvclN0YXRlIiwicmVhZCIsImZpcnN0Tm9kZSIsImxhc3ROb2RlIiwiZ2V0RWxlbWVudEJ5S2V5IiwibGVuZ3RoIiwiZmlyc3ROb2RlUmVjdCIsImxhc3ROb2RlUmVjdCIsInkiLCJ0b3AiLCJib3R0b20iLCJpbmRleCIsImRpcmVjdGlvbiIsImtleSIsImVsZW0iLCJwb2ludCIsIlBvaW50IiwieCIsImRvbVJlY3QiLCJSZWN0IiwiZnJvbURPTSIsIm1hcmdpbkJvdHRvbSIsIm1hcmdpblRvcCIsImdldENvbGxhcHNlZE1hcmdpbnMiLCJyZWN0IiwiZ2VuZXJhdGVOZXdSZWN0IiwibGVmdCIsInJpZ2h0IiwicmVhc29uIiwiaXNPbkJvdHRvbVNpZGUiLCJpc09uVG9wU2lkZSIsInJlc3VsdCIsImNvbnRhaW5zIiwiJGdldE5vZGVCeUtleSIsImdldFR5cGUiLCJnZXRUZXh0Q29udGVudCIsInVzZUFkZEJsb2NrSGFuZGxlIiwiaXNFZGl0YWJsZSIsInNjcm9sbGVyRWxlbSIsInBhcmVudEVsZW1lbnQiLCJtZW51UmVmIiwidXNlUmVmIiwiZW1wdHlCbG9ja0VsZW0iLCJzZXRFbXB0eUJsb2NrRWxlbSIsInVzZVN0YXRlIiwidXNlRWZmZWN0Iiwib25Eb2N1bWVudE1vdXNlTW92ZSIsInRhcmdldCIsImlzSFRNTEVsZW1lbnQiLCJkaXN0YW5jZUZyb21TY3JvbGxlckVsZW0iLCJwYWdlWCIsInBhZ2VZIiwiaG9yaXpvbnRhbEJ1ZmZlciIsInZlcnRpY2FsQnVmZmVyIiwiYWRqdXN0ZWRUb3AiLCJ3aW5kb3ciLCJzY3JvbGxZIiwiYWRqdXN0ZWRCb3R0b20iLCJpc09uSGFuZGxlRWxlbWVudCIsIl9lbXB0eUJsb2NrRWxlbSIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJjdXJyZW50Iiwic2V0SGFuZGxlUG9zaXRpb24iLCJoYW5kbGVBZGRDbGljayIsInVzZUNhbGxiYWNrIiwidXBkYXRlIiwibm9kZSIsIiRnZXROZWFyZXN0Tm9kZUZyb21ET01Ob2RlIiwiZm9jdXMiLCJzZWxlY3QiLCJzZXRUaW1lb3V0IiwiZGlzcGF0Y2hDb21tYW5kIiwiRU5BQkxFX1NMQVNIX01FTlVfQ09NTUFORCIsInN0b3BQcm9wYWdhdGlvbiIsInByZXZlbnREZWZhdWx0IiwiY3JlYXRlUG9ydGFsIiwiUmVhY3QiLCJGcmFnbWVudCIsImJ1dHRvbiIsImNsYXNzTmFtZSIsIm9uQ2xpY2siLCJyZWYiLCJ0eXBlIiwiZGl2IiwiYm9keSIsInVzZUxleGljYWxDb21wb3NlckNvbnRleHQiLCJfZWRpdGFibGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Q0FNQzs7OzsrQkF3UmVBOzs7ZUFBQUE7Ozt3Q0FyUjBCO3lCQU1uQzsrREFDZ0I7MEJBRU07dUJBRUM7dUJBQ1I7c0JBQ0Q7NENBQ3FCO3FDQUNOO3FDQUNBO21DQUNGO21DQUNBO1FBQzNCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRVAsTUFBTUMsUUFBUSxDQUFDO0FBQ2YsTUFBTUMsMkJBQTJCO0FBRWpDLE1BQU1DLFdBQVc7QUFDakIsTUFBTUMsU0FBUyxDQUFDO0FBQ2hCLE1BQU1DLGdCQUFnQjtBQUV0QixJQUFJQyxZQUFZQztBQUVoQixTQUFTQyxnQkFBZ0JDLFVBQWtCO0lBQ3pDLElBQUlBLGVBQWUsR0FBRztRQUNwQixPQUFPRjtJQUNUO0lBQ0EsSUFBSUQsYUFBYSxLQUFLQSxZQUFZRyxZQUFZO1FBQzVDLE9BQU9IO0lBQ1Q7SUFFQSxPQUFPSSxLQUFLQyxLQUFLLENBQUNGLGFBQWE7QUFDakM7QUFFQSxTQUFTRyxnQkFDUEMsVUFBdUIsRUFDdkJDLE1BQXFCLEVBQ3JCQyxLQUFpQixFQUNqQkMsbUJBQW1CLEtBQUssRUFDeEJDLG1CQUFtQixDQUFDO0lBS3BCLE1BQU1DLG9CQUFvQkwsV0FBV00scUJBQXFCO0lBQzFELE1BQU1DLG1CQUFtQkMsSUFBQUEsd0NBQW1CLEVBQUNQO0lBRTdDLElBQUlRLFlBQWdDO0lBQ3BDLElBQUlDLFlBQWdDO0lBQ3BDLElBQUlDLGVBQWU7SUFFbkIsa0VBQWtFO0lBQ2xFVixPQUFPVyxjQUFjLEdBQUdDLElBQUksQ0FBQztRQUMzQixJQUFJVixrQkFBa0I7WUFDcEIsTUFBTSxDQUFDVyxXQUFXQyxTQUFTLEdBQUc7Z0JBQzVCZCxPQUFPZSxlQUFlLENBQUNULGdCQUFnQixDQUFDLEVBQUU7Z0JBQzFDTixPQUFPZSxlQUFlLENBQUNULGdCQUFnQixDQUFDQSxpQkFBaUJVLE1BQU0sR0FBRyxFQUFFO2FBQ3JFO1lBRUQsTUFBTSxDQUFDQyxlQUFlQyxhQUFhLEdBQUc7Z0JBQ3BDTCxXQUFXUjtnQkFDWFMsVUFBVVQ7YUFDWDtZQUVELElBQUlZLGlCQUFpQkMsY0FBYztnQkFDakMsSUFBSWpCLE1BQU1rQixDQUFDLEdBQUdGLGNBQWNHLEdBQUcsRUFBRTtvQkFDL0JaLFlBQVlLO2dCQUNkLE9BQU8sSUFBSVosTUFBTWtCLENBQUMsR0FBR0QsYUFBYUcsTUFBTSxFQUFFO29CQUN4Q2IsWUFBWU07Z0JBQ2Q7Z0JBRUEsSUFBSU4sV0FBVztvQkFDYixPQUFPO3dCQUNMQSxXQUFXO3dCQUNYRTtvQkFDRjtnQkFDRjtZQUNGO1FBQ0Y7UUFFQSw4QkFBOEI7UUFDOUIsSUFBSVksUUFBUTVCLGdCQUFnQlksaUJBQWlCVSxNQUFNO1FBQ25ELElBQUlPLFlBQVloQztRQUVoQixNQUFPK0IsU0FBUyxLQUFLQSxRQUFRaEIsaUJBQWlCVSxNQUFNLENBQUU7WUFDcEQsTUFBTVEsTUFBTWxCLGdCQUFnQixDQUFDZ0IsTUFBTTtZQUNuQyxNQUFNRyxPQUFPekIsT0FBT2UsZUFBZSxDQUFDUztZQUNwQyxJQUFJQyxTQUFTLE1BQU07Z0JBQ2pCO1lBQ0Y7WUFDQSxNQUFNQyxRQUFRLElBQUlDLFlBQUssQ0FBQzFCLE1BQU0yQixDQUFDLEdBQUd6QixrQkFBa0JGLE1BQU1rQixDQUFDO1lBQzNELE1BQU1VLFVBQVVDLFVBQUksQ0FBQ0MsT0FBTyxDQUFDTjtZQUM3QixNQUFNLEVBQUVPLFlBQVksRUFBRUMsU0FBUyxFQUFFLEdBQUdDLElBQUFBLHdDQUFtQixFQUFDVDtZQUV4RCxNQUFNVSxPQUFPTixRQUFRTyxlQUFlLENBQUM7Z0JBQ25DZixRQUFRUSxRQUFRUixNQUFNLEdBQUdXO2dCQUN6QkssTUFBTWpDLGtCQUFrQmlDLElBQUk7Z0JBQzVCQyxPQUFPbEMsa0JBQWtCa0MsS0FBSztnQkFDOUJsQixLQUFLUyxRQUFRVCxHQUFHLEdBQUdhO1lBQ3JCO1lBRUEsTUFBTSxFQUNKTSxRQUFRLEVBQUVDLGNBQWMsRUFBRUMsV0FBVyxFQUFFLEVBQ3ZDQyxNQUFNLEVBQ1AsR0FBR1AsS0FBS1EsUUFBUSxDQUFDakI7WUFFbEIsSUFBSWdCLFFBQVE7Z0JBQ1ZsQyxZQUFZaUI7Z0JBQ1poQixZQUFZbUMsSUFBQUEsc0JBQWEsRUFBQ3BCO2dCQUMxQmhDLFlBQVk4QjtnQkFFWiwyQ0FBMkM7Z0JBQzNDLElBQ0UsQ0FBQ2IsYUFDREEsVUFBVW9DLE9BQU8sT0FBTyxlQUN4QnBDLFVBQVVxQyxjQUFjLE9BQU8sSUFDL0I7b0JBQ0F0QyxZQUFZO29CQUNaRSxlQUFlO2dCQUNqQjtnQkFDQTtZQUNGO1lBRUEsSUFBSWEsY0FBY2hDLGVBQWU7Z0JBQy9CLElBQUlrRCxhQUFhO29CQUNmbEIsWUFBWWpDO2dCQUNkLE9BQU8sSUFBSWtELGdCQUFnQjtvQkFDekJqQixZQUFZbEM7Z0JBQ2QsT0FBTztvQkFDTCw0QkFBNEI7b0JBQzVCa0MsWUFBWTlCO2dCQUNkO1lBQ0Y7WUFFQTZCLFNBQVNDO1FBQ1g7SUFDRjtJQUVBLE9BQU87UUFDTGYsV0FBV0E7UUFDWEU7SUFDRjtBQUNGO0FBRUEsU0FBU3FDLGtCQUNQL0MsTUFBcUIsRUFDckJELFVBQXVCLEVBQ3ZCaUQsVUFBbUI7SUFFbkIsTUFBTUMsZUFBZWxELFdBQVdtRCxhQUFhO0lBRTdDLE1BQU1DLFVBQVVDLElBQUFBLGFBQU0sRUFBb0I7SUFDMUMsTUFBTSxDQUFDQyxnQkFBZ0JDLGtCQUFrQixHQUFHQyxJQUFBQSxlQUFRLEVBQXFCO0lBRXpFQyxJQUFBQSxnQkFBUyxFQUFDO1FBQ1IsU0FBU0Msb0JBQW9CeEQsS0FBaUI7WUFDNUMsTUFBTXlELFNBQVN6RCxNQUFNeUQsTUFBTTtZQUMzQixJQUFJLENBQUNDLElBQUFBLG9CQUFhLEVBQUNELFNBQVM7Z0JBQzFCO1lBQ0Y7WUFFQSxJQUFJRSwyQkFBMkI7WUFDL0Isc0ZBQXNGO1lBQ3RGLElBQUlYLGdCQUFnQixDQUFDQSxhQUFhTixRQUFRLENBQUNlLFNBQVM7Z0JBQ2xELE1BQU0sRUFBRXJDLE1BQU0sRUFBRWdCLElBQUksRUFBRUMsS0FBSyxFQUFFbEIsR0FBRyxFQUFFLEdBQUc2QixhQUFhNUMscUJBQXFCO2dCQUN2RSxNQUFNLEVBQUV3RCxLQUFLLEVBQUVDLEtBQUssRUFBRSxHQUFHN0Q7Z0JBQ3pCLE1BQU04RCxtQkFBbUI7Z0JBQ3pCLE1BQU1DLGlCQUFpQjtnQkFDdkIsTUFBTUMsY0FBYzdDLE1BQU04QyxPQUFPQyxPQUFPO2dCQUN4QyxNQUFNQyxpQkFBaUIvQyxTQUFTNkMsT0FBT0MsT0FBTztnQkFFOUMsSUFDRUwsUUFBUUcsY0FBY0Qsa0JBQ3RCRixRQUFRTSxpQkFBaUJKLGtCQUN6QkgsUUFBUXhCLE9BQU8wQixvQkFDZkYsUUFBUXZCLFFBQVF5QixrQkFDaEI7b0JBQ0FULGtCQUFrQjtvQkFDbEI7Z0JBQ0Y7Z0JBRUEsaUZBQWlGO2dCQUNqRix1Q0FBdUM7Z0JBQ3ZDLElBQUlPLFFBQVF4QixRQUFRd0IsUUFBUXZCLE9BQU87b0JBQ2pDc0IsMkJBQTJCQyxRQUFReEIsT0FBT3dCLFFBQVF4QixPQUFPd0IsUUFBUXZCO2dCQUNuRTtZQUNGO1lBRUEsSUFBSStCLElBQUFBLG9DQUFpQixFQUFDWCxRQUFRdEUsMkJBQTJCO2dCQUN2RDtZQUNGO1lBQ0EsTUFBTSxFQUFFb0IsV0FBVzhELGVBQWUsRUFBRTVELFlBQVksRUFBRSxHQUFHWixnQkFDbkRDLFlBQ0FDLFFBQ0FDLE9BQ0EsT0FDQSxDQUFDMkQ7WUFFSCxJQUFJLENBQUNVLG1CQUFtQixDQUFDNUQsY0FBYztnQkFDckM7WUFDRjtZQUNBNEMsa0JBQWtCZ0I7UUFDcEI7UUFFQSwrRkFBK0Y7UUFDL0YsNEZBQTRGO1FBQzVGLDJFQUEyRTtRQUMzRUMsVUFBVUMsaUJBQWlCLGFBQWFmO1FBRXhDLE9BQU87WUFDTGMsVUFBVUUsb0JBQW9CLGFBQWFoQjtRQUM3QztJQUNGLEdBQUc7UUFBQ1I7UUFBY2xEO1FBQVlDO0tBQU87SUFFckN3RCxJQUFBQSxnQkFBUyxFQUFDO1FBQ1IsSUFBSUwsUUFBUXVCLE9BQU8sRUFBRTtZQUNuQkMsSUFBQUEsb0NBQWlCLEVBQUN0QixnQkFBZ0JGLFFBQVF1QixPQUFPLEVBQUUzRSxZQUFZWjtRQUNqRTtJQUNGLEdBQUc7UUFBQ1k7UUFBWXNEO0tBQWU7SUFFL0IsTUFBTXVCLGlCQUFpQkMsSUFBQUEsa0JBQVcsRUFDaEMsQ0FBQzVFO1FBQ0MsSUFBSSxDQUFDb0QsZ0JBQWdCO1lBQ25CO1FBQ0Y7UUFFQXJELE9BQU84RSxNQUFNLENBQUM7WUFDWixNQUFNQyxPQUFzQkMsSUFBQUEsbUNBQTBCLEVBQUMzQjtZQUN2RCxJQUFJLENBQUMwQixRQUFRQSxLQUFLbEMsT0FBTyxPQUFPLGFBQWE7Z0JBQzNDO1lBQ0Y7WUFDQTdDLE9BQU9pRixLQUFLO1lBRVpGLEtBQUtHLE1BQU07UUFDWDs7eUJBRWlCLEdBQ25CO1FBRUEsMkZBQTJGO1FBQzNGLDZCQUE2QjtRQUM3QkMsV0FBVztZQUNUbkYsT0FBT29GLGVBQWUsQ0FBQ0MscURBQXlCLEVBQUU7Z0JBQ2hEbEQsTUFBTWtCLGVBQWVoRCxxQkFBcUI7WUFDNUM7UUFDRixHQUFHO1FBRUhKLE1BQU1xRixlQUFlO1FBQ3JCckYsTUFBTXNGLGNBQWM7SUFDdEIsR0FDQTtRQUFDdkY7UUFBUXFEO0tBQWU7SUFHMUIscUJBQU9tQyxJQUFBQSxzQkFBWSxnQkFDakIscUJBQUNDLE9BQU1DLFFBQVEsc0JBQ2IscUJBQUNDO1FBQ0NDLFdBQVU7UUFDVkMsU0FBUyxDQUFDNUY7WUFDUjJFLGVBQWUzRTtRQUNqQjtRQUNBNkYsS0FBSzNDO1FBQ0w0QyxNQUFLO3FCQUVMLHFCQUFDQztRQUFJSixXQUFXNUMsYUFBYSxTQUFTO1VBRzFDakQ7QUFFSjtBQUVPLFNBQVNiLHFCQUFxQixFQUNuQ2EsYUFBYXdFLFNBQVMwQixJQUFJLEVBRzNCO0lBQ0MsTUFBTSxDQUFDakcsT0FBTyxHQUFHa0csSUFBQUEsaURBQXlCO0lBQzFDLE9BQU9uRCxrQkFBa0IvQyxRQUFRRCxZQUFZQyxPQUFPbUcsU0FBUztBQUMvRCJ9
@@ -0,0 +1,2 @@
1
+ export declare function debounce(func: Function, wait: number): (...args: any[]) => void;
2
+ //# sourceMappingURL=debounce.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debounce.d.ts","sourceRoot":"","sources":["../../../../../../src/field/lexical/plugins/handles/DraggableBlockPlugin/debounce.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,aAEzB,GAAG,EAAE,UAUhC"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "debounce", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return debounce;
9
+ }
10
+ });
11
+ function debounce(func, wait) {
12
+ let timeout = null;
13
+ return function(...args) {
14
+ const later = ()=>{
15
+ clearTimeout(timeout);
16
+ timeout = null;
17
+ func(...args);
18
+ };
19
+ clearTimeout(timeout);
20
+ timeout = window.setTimeout(later, wait);
21
+ };
22
+ }
23
+
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvaGFuZGxlcy9EcmFnZ2FibGVCbG9ja1BsdWdpbi9kZWJvdW5jZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZGVib3VuY2UoZnVuYzogRnVuY3Rpb24sIHdhaXQ6IG51bWJlcikge1xuICBsZXQgdGltZW91dDogbnVsbCB8IG51bWJlciA9IG51bGxcbiAgcmV0dXJuIGZ1bmN0aW9uICguLi5hcmdzOiBhbnlbXSkge1xuICAgIGNvbnN0IGxhdGVyID0gKCkgPT4ge1xuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpXG4gICAgICB0aW1lb3V0ID0gbnVsbFxuICAgICAgZnVuYyguLi5hcmdzKVxuICAgIH1cblxuICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KVxuICAgIHRpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dChsYXRlciwgd2FpdClcbiAgfVxufVxuIl0sIm5hbWVzIjpbImRlYm91bmNlIiwiZnVuYyIsIndhaXQiLCJ0aW1lb3V0IiwiYXJncyIsImxhdGVyIiwiY2xlYXJUaW1lb3V0Iiwid2luZG93Iiwic2V0VGltZW91dCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFBZ0JBOzs7ZUFBQUE7OztBQUFULFNBQVNBLFNBQVNDLElBQWMsRUFBRUMsSUFBWTtJQUNuRCxJQUFJQyxVQUF5QjtJQUM3QixPQUFPLFNBQVUsR0FBR0MsSUFBVztRQUM3QixNQUFNQyxRQUFRO1lBQ1pDLGFBQWFIO1lBQ2JBLFVBQVU7WUFDVkYsUUFBUUc7UUFDVjtRQUVBRSxhQUFhSDtRQUNiQSxVQUFVSSxPQUFPQyxVQUFVLENBQUNILE9BQU9IO0lBQ3JDO0FBQ0YifQ==
@@ -0,0 +1,2 @@
1
+ export declare function getBoundingClientRectWithoutTransform(elem: HTMLElement): DOMRect;
2
+ //# sourceMappingURL=getBoundingRectWithoutTransform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getBoundingRectWithoutTransform.d.ts","sourceRoot":"","sources":["../../../../../../src/field/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.ts"],"names":[],"mappings":"AAAA,wBAAgB,qCAAqC,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAchF"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "getBoundingClientRectWithoutTransform", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return getBoundingClientRectWithoutTransform;
9
+ }
10
+ });
11
+ function getBoundingClientRectWithoutTransform(elem) {
12
+ const rect = elem.getBoundingClientRect();
13
+ // Extract the translation value from the transform style
14
+ const transformValue = getComputedStyle(elem).getPropertyValue('transform');
15
+ if (!transformValue || transformValue === 'none') {
16
+ return rect;
17
+ }
18
+ const lastNumberOfTransformValue = transformValue.split(',').pop();
19
+ rect.y = rect.y - Number(lastNumberOfTransformValue.replace(')', ''));
20
+ // Return the original bounding rect if no translation is applied
21
+ return rect;
22
+ }
23
+
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvaGFuZGxlcy9EcmFnZ2FibGVCbG9ja1BsdWdpbi9nZXRCb3VuZGluZ1JlY3RXaXRob3V0VHJhbnNmb3JtLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBnZXRCb3VuZGluZ0NsaWVudFJlY3RXaXRob3V0VHJhbnNmb3JtKGVsZW06IEhUTUxFbGVtZW50KTogRE9NUmVjdCB7XG4gIGNvbnN0IHJlY3QgPSBlbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG5cbiAgLy8gRXh0cmFjdCB0aGUgdHJhbnNsYXRpb24gdmFsdWUgZnJvbSB0aGUgdHJhbnNmb3JtIHN0eWxlXG4gIGNvbnN0IHRyYW5zZm9ybVZhbHVlID0gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtKS5nZXRQcm9wZXJ0eVZhbHVlKCd0cmFuc2Zvcm0nKVxuICBpZiAoIXRyYW5zZm9ybVZhbHVlIHx8IHRyYW5zZm9ybVZhbHVlID09PSAnbm9uZScpIHtcbiAgICByZXR1cm4gcmVjdFxuICB9XG5cbiAgY29uc3QgbGFzdE51bWJlck9mVHJhbnNmb3JtVmFsdWUgPSB0cmFuc2Zvcm1WYWx1ZS5zcGxpdCgnLCcpLnBvcCgpXG4gIHJlY3QueSA9IHJlY3QueSAtIE51bWJlcihsYXN0TnVtYmVyT2ZUcmFuc2Zvcm1WYWx1ZS5yZXBsYWNlKCcpJywgJycpKVxuXG4gIC8vIFJldHVybiB0aGUgb3JpZ2luYWwgYm91bmRpbmcgcmVjdCBpZiBubyB0cmFuc2xhdGlvbiBpcyBhcHBsaWVkXG4gIHJldHVybiByZWN0XG59XG4iXSwibmFtZXMiOlsiZ2V0Qm91bmRpbmdDbGllbnRSZWN0V2l0aG91dFRyYW5zZm9ybSIsImVsZW0iLCJyZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwidHJhbnNmb3JtVmFsdWUiLCJnZXRDb21wdXRlZFN0eWxlIiwiZ2V0UHJvcGVydHlWYWx1ZSIsImxhc3ROdW1iZXJPZlRyYW5zZm9ybVZhbHVlIiwic3BsaXQiLCJwb3AiLCJ5IiwiTnVtYmVyIiwicmVwbGFjZSJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFBZ0JBOzs7ZUFBQUE7OztBQUFULFNBQVNBLHNDQUFzQ0MsSUFBaUI7SUFDckUsTUFBTUMsT0FBT0QsS0FBS0UscUJBQXFCO0lBRXZDLHlEQUF5RDtJQUN6RCxNQUFNQyxpQkFBaUJDLGlCQUFpQkosTUFBTUssZ0JBQWdCLENBQUM7SUFDL0QsSUFBSSxDQUFDRixrQkFBa0JBLG1CQUFtQixRQUFRO1FBQ2hELE9BQU9GO0lBQ1Q7SUFFQSxNQUFNSyw2QkFBNkJILGVBQWVJLEtBQUssQ0FBQyxLQUFLQyxHQUFHO0lBQ2hFUCxLQUFLUSxDQUFDLEdBQUdSLEtBQUtRLENBQUMsR0FBR0MsT0FBT0osMkJBQTJCSyxPQUFPLENBQUMsS0FBSztJQUVqRSxpRUFBaUU7SUFDakUsT0FBT1Y7QUFDVCJ9
@@ -0,0 +1,27 @@
1
+ import type { LexicalEditor, LexicalNode } from 'lexical';
2
+ import { Point } from '../../../utils/point';
3
+ type Props = {
4
+ anchorElem: HTMLElement;
5
+ cache_treshold?: number;
6
+ editor: LexicalEditor;
7
+ /** fuzzy makes the search not exact. If no exact match found, find the closes node instead of returning null */
8
+ fuzzy?: boolean;
9
+ horizontalOffset?: number;
10
+ point: Point;
11
+ /**
12
+ * The index to start searching from. It can be a considerable performance optimization to start searching from the index of the
13
+ * previously found node, as the node is likely to be close to the next node.
14
+ */
15
+ startIndex?: number;
16
+ useEdgeAsDefault?: boolean;
17
+ verbose?: boolean;
18
+ };
19
+ type Output = {
20
+ blockElem: HTMLElement | null;
21
+ blockNode: LexicalNode | null;
22
+ foundAtIndex: number;
23
+ isFoundNodeEmptyParagraph: boolean;
24
+ };
25
+ export declare function getNodeCloseToPoint(props: Props): Output;
26
+ export {};
27
+ //# sourceMappingURL=getNodeCloseToPoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getNodeCloseToPoint.d.ts","sourceRoot":"","sources":["../../../../../../src/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAIzD,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAW5C,KAAK,KAAK,GAAG;IACX,UAAU,EAAE,WAAW,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,aAAa,CAAA;IACrB,gHAAgH;IAChH,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,KAAK,EAAE,KAAK,CAAA;IACZ;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,KAAK,MAAM,GAAG;IACZ,SAAS,EAAE,WAAW,GAAG,IAAI,CAAA;IAC7B,SAAS,EAAE,WAAW,GAAG,IAAI,CAAA;IAC7B,YAAY,EAAE,MAAM,CAAA;IACpB,yBAAyB,EAAE,OAAO,CAAA;CACnC,CAAA;AAaD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAkLxD"}
@@ -0,0 +1,160 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "getNodeCloseToPoint", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return getNodeCloseToPoint;
9
+ }
10
+ });
11
+ const _lexical = require("lexical");
12
+ const _point = require("../../../utils/point");
13
+ const _rect = require("../../../utils/rect");
14
+ const _getCollapsedMargins = require("../utils/getCollapsedMargins");
15
+ const _getTopLevelNodeKeys = require("../utils/getTopLevelNodeKeys");
16
+ const _getBoundingRectWithoutTransform = require("./getBoundingRectWithoutTransform");
17
+ // Directions
18
+ const Downward = 1;
19
+ const Upward = -1;
20
+ const Indeterminate = 0;
21
+ const cache = {
22
+ props: null,
23
+ result: null
24
+ };
25
+ function isPointClose(previous, current, threshold = 20) {
26
+ const dx = previous.x - current.x;
27
+ const dy = previous.y - current.y;
28
+ return dx * dx + dy * dy <= threshold * threshold;
29
+ }
30
+ function getNodeCloseToPoint(props) {
31
+ const { anchorElem, cache_treshold = 20, editor, fuzzy = false, horizontalOffset = 0, point: { x, y }, startIndex = 0, useEdgeAsDefault = false, verbose = false } = props;
32
+ // Use cache
33
+ if (cache_treshold > 0 && cache.props && cache.result && cache.props.fuzzy === props.fuzzy && cache.props.horizontalOffset === props.horizontalOffset && cache.props.useEdgeAsDefault === props.useEdgeAsDefault && isPointClose(cache.props.point, props.point, cache_treshold)) {
34
+ if (verbose) {
35
+ //console.log('Returning cached result')
36
+ }
37
+ return cache.result;
38
+ }
39
+ const anchorElementRect = anchorElem.getBoundingClientRect();
40
+ const topLevelNodeKeys = (0, _getTopLevelNodeKeys.getTopLevelNodeKeys)(editor);
41
+ const closestBlockElem = {
42
+ blockElem: null,
43
+ blockNode: null,
44
+ distance: Infinity,
45
+ foundAtIndex: -1,
46
+ isFoundNodeEmptyParagraph: false
47
+ };
48
+ // Return null if matching block element is the first or last node
49
+ editor.getEditorState().read(()=>{
50
+ if (useEdgeAsDefault) {
51
+ const [firstNode, lastNode] = [
52
+ editor.getElementByKey(topLevelNodeKeys[0]),
53
+ editor.getElementByKey(topLevelNodeKeys[topLevelNodeKeys.length - 1])
54
+ ];
55
+ const [firstNodeRect, lastNodeRect] = [
56
+ (0, _getBoundingRectWithoutTransform.getBoundingClientRectWithoutTransform)(firstNode),
57
+ (0, _getBoundingRectWithoutTransform.getBoundingClientRectWithoutTransform)(lastNode)
58
+ ];
59
+ if (firstNodeRect && lastNodeRect) {
60
+ if (y < firstNodeRect.top) {
61
+ closestBlockElem.blockElem = firstNode;
62
+ closestBlockElem.distance = firstNodeRect.top - y;
63
+ closestBlockElem.blockNode = (0, _lexical.$getNodeByKey)(topLevelNodeKeys[0]);
64
+ closestBlockElem.foundAtIndex = 0;
65
+ } else if (y > lastNodeRect.bottom) {
66
+ closestBlockElem.distance = y - lastNodeRect.bottom;
67
+ closestBlockElem.blockNode = (0, _lexical.$getNodeByKey)(topLevelNodeKeys[topLevelNodeKeys.length - 1]);
68
+ closestBlockElem.blockElem = lastNode;
69
+ closestBlockElem.foundAtIndex = topLevelNodeKeys.length - 1;
70
+ }
71
+ if (closestBlockElem?.blockElem) {
72
+ if (verbose) {
73
+ //console.log('useEdgeAsDefault', useEdgeAsDefault)
74
+ }
75
+ return {
76
+ blockElem: null,
77
+ isFoundNodeEmptyParagraph: false
78
+ };
79
+ }
80
+ }
81
+ }
82
+ // Find matching block element
83
+ let index = startIndex;
84
+ let direction = Indeterminate;
85
+ if (verbose) {
86
+ //console.log('start index', startIndex)
87
+ }
88
+ while(index >= 0 && index < topLevelNodeKeys.length){
89
+ const key = topLevelNodeKeys[index];
90
+ const elem = editor.getElementByKey(key);
91
+ if (elem === null) {
92
+ break;
93
+ }
94
+ const point = new _point.Point(x + horizontalOffset, y);
95
+ //const domRect = Rect.fromDOM(elem)
96
+ // Do not consider transform of blocks when calculating distance
97
+ const domRect = _rect.Rect.fromDOMRect((0, _getBoundingRectWithoutTransform.getBoundingClientRectWithoutTransform)(elem));
98
+ const { marginBottom, marginTop } = (0, _getCollapsedMargins.getCollapsedMargins)(elem);
99
+ const rect = domRect.generateNewRect({
100
+ bottom: domRect.bottom + marginBottom,
101
+ left: anchorElementRect.left,
102
+ right: anchorElementRect.right,
103
+ top: domRect.top - marginTop
104
+ });
105
+ const { distance, isOnBottomSide, isOnTopSide } = rect.distanceFromPoint(point);
106
+ if (verbose) {
107
+ //console.log('distance', distance)
108
+ }
109
+ if (distance === 0) {
110
+ closestBlockElem.blockElem = elem;
111
+ closestBlockElem.blockNode = (0, _lexical.$getNodeByKey)(key);
112
+ closestBlockElem.foundAtIndex = index;
113
+ closestBlockElem.distance = distance;
114
+ // Check if blockNode is an empty text node
115
+ if (closestBlockElem.blockNode && closestBlockElem.blockNode.getType() === 'paragraph' && closestBlockElem.blockNode.getTextContent() === '') {
116
+ if (!fuzzy) {
117
+ closestBlockElem.blockElem = null;
118
+ closestBlockElem.blockNode = null;
119
+ }
120
+ closestBlockElem.isFoundNodeEmptyParagraph = true;
121
+ }
122
+ break;
123
+ } else if (fuzzy) {
124
+ if (distance < closestBlockElem.distance) {
125
+ closestBlockElem.blockElem = elem;
126
+ closestBlockElem.blockNode = (0, _lexical.$getNodeByKey)(key);
127
+ closestBlockElem.distance = distance;
128
+ closestBlockElem.foundAtIndex = index;
129
+ }
130
+ }
131
+ if (direction === Indeterminate) {
132
+ if (isOnTopSide) {
133
+ direction = Upward;
134
+ } else if (isOnBottomSide) {
135
+ direction = Downward;
136
+ } else {
137
+ // stop search block element
138
+ direction = Infinity;
139
+ }
140
+ }
141
+ index += direction;
142
+ }
143
+ });
144
+ // Store in cache before returning
145
+ cache.props = props;
146
+ cache.result = {
147
+ blockElem: closestBlockElem.blockElem,
148
+ blockNode: closestBlockElem.blockNode,
149
+ foundAtIndex: closestBlockElem.foundAtIndex,
150
+ isFoundNodeEmptyParagraph: closestBlockElem.isFoundNodeEmptyParagraph
151
+ };
152
+ return {
153
+ blockElem: closestBlockElem.blockElem,
154
+ blockNode: closestBlockElem.blockNode,
155
+ foundAtIndex: closestBlockElem.foundAtIndex,
156
+ isFoundNodeEmptyParagraph: closestBlockElem.isFoundNodeEmptyParagraph
157
+ };
158
+ }
159
+
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvaGFuZGxlcy9EcmFnZ2FibGVCbG9ja1BsdWdpbi9nZXROb2RlQ2xvc2VUb1BvaW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGV4aWNhbEVkaXRvciwgTGV4aWNhbE5vZGUgfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgeyAkZ2V0Tm9kZUJ5S2V5IH0gZnJvbSAnbGV4aWNhbCdcblxuaW1wb3J0IHsgUG9pbnQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9wb2ludCdcbmltcG9ydCB7IFJlY3QgfSBmcm9tICcuLi8uLi8uLi91dGlscy9yZWN0J1xuaW1wb3J0IHsgZ2V0Q29sbGFwc2VkTWFyZ2lucyB9IGZyb20gJy4uL3V0aWxzL2dldENvbGxhcHNlZE1hcmdpbnMnXG5pbXBvcnQgeyBnZXRUb3BMZXZlbE5vZGVLZXlzIH0gZnJvbSAnLi4vdXRpbHMvZ2V0VG9wTGV2ZWxOb2RlS2V5cydcbmltcG9ydCB7IGdldEJvdW5kaW5nQ2xpZW50UmVjdFdpdGhvdXRUcmFuc2Zvcm0gfSBmcm9tICcuL2dldEJvdW5kaW5nUmVjdFdpdGhvdXRUcmFuc2Zvcm0nXG5cbi8vIERpcmVjdGlvbnNcbmNvbnN0IERvd253YXJkID0gMVxuY29uc3QgVXB3YXJkID0gLTFcbmNvbnN0IEluZGV0ZXJtaW5hdGUgPSAwXG5cbnR5cGUgUHJvcHMgPSB7XG4gIGFuY2hvckVsZW06IEhUTUxFbGVtZW50XG4gIGNhY2hlX3RyZXNob2xkPzogbnVtYmVyXG4gIGVkaXRvcjogTGV4aWNhbEVkaXRvclxuICAvKiogZnV6enkgbWFrZXMgdGhlIHNlYXJjaCBub3QgZXhhY3QuIElmIG5vIGV4YWN0IG1hdGNoIGZvdW5kLCBmaW5kIHRoZSBjbG9zZXMgbm9kZSBpbnN0ZWFkIG9mIHJldHVybmluZyBudWxsICovXG4gIGZ1enp5PzogYm9vbGVhblxuICBob3Jpem9udGFsT2Zmc2V0PzogbnVtYmVyXG4gIHBvaW50OiBQb2ludFxuICAvKipcbiAgICogVGhlIGluZGV4IHRvIHN0YXJ0IHNlYXJjaGluZyBmcm9tLiBJdCBjYW4gYmUgYSBjb25zaWRlcmFibGUgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uIHRvIHN0YXJ0IHNlYXJjaGluZyBmcm9tIHRoZSBpbmRleCBvZiB0aGVcbiAgICogcHJldmlvdXNseSBmb3VuZCBub2RlLCBhcyB0aGUgbm9kZSBpcyBsaWtlbHkgdG8gYmUgY2xvc2UgdG8gdGhlIG5leHQgbm9kZS5cbiAgICovXG4gIHN0YXJ0SW5kZXg/OiBudW1iZXJcbiAgdXNlRWRnZUFzRGVmYXVsdD86IGJvb2xlYW5cbiAgdmVyYm9zZT86IGJvb2xlYW5cbn1cblxudHlwZSBPdXRwdXQgPSB7XG4gIGJsb2NrRWxlbTogSFRNTEVsZW1lbnQgfCBudWxsXG4gIGJsb2NrTm9kZTogTGV4aWNhbE5vZGUgfCBudWxsXG4gIGZvdW5kQXRJbmRleDogbnVtYmVyXG4gIGlzRm91bmROb2RlRW1wdHlQYXJhZ3JhcGg6IGJvb2xlYW5cbn1cblxuY29uc3QgY2FjaGUgPSB7XG4gIHByb3BzOiBudWxsIGFzIFByb3BzIHwgbnVsbCxcbiAgcmVzdWx0OiBudWxsIGFzIE91dHB1dCB8IG51bGwsXG59XG5cbmZ1bmN0aW9uIGlzUG9pbnRDbG9zZShwcmV2aW91czogUG9pbnQsIGN1cnJlbnQ6IFBvaW50LCB0aHJlc2hvbGQ6IG51bWJlciA9IDIwKTogYm9vbGVhbiB7XG4gIGNvbnN0IGR4ID0gcHJldmlvdXMueCAtIGN1cnJlbnQueFxuICBjb25zdCBkeSA9IHByZXZpb3VzLnkgLSBjdXJyZW50LnlcbiAgcmV0dXJuIGR4ICogZHggKyBkeSAqIGR5IDw9IHRocmVzaG9sZCAqIHRocmVzaG9sZFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Tm9kZUNsb3NlVG9Qb2ludChwcm9wczogUHJvcHMpOiBPdXRwdXQge1xuICBjb25zdCB7XG4gICAgYW5jaG9yRWxlbSxcbiAgICBjYWNoZV90cmVzaG9sZCA9IDIwLFxuICAgIGVkaXRvcixcbiAgICBmdXp6eSA9IGZhbHNlLFxuICAgIGhvcml6b250YWxPZmZzZXQgPSAwLFxuICAgIHBvaW50OiB7IHgsIHkgfSxcbiAgICBzdGFydEluZGV4ID0gMCxcbiAgICB1c2VFZGdlQXNEZWZhdWx0ID0gZmFsc2UsXG4gICAgdmVyYm9zZSA9IGZhbHNlLFxuICB9ID0gcHJvcHNcblxuICAvLyBVc2UgY2FjaGVcbiAgaWYgKFxuICAgIGNhY2hlX3RyZXNob2xkID4gMCAmJlxuICAgIGNhY2hlLnByb3BzICYmXG4gICAgY2FjaGUucmVzdWx0ICYmXG4gICAgY2FjaGUucHJvcHMuZnV6enkgPT09IHByb3BzLmZ1enp5ICYmXG4gICAgY2FjaGUucHJvcHMuaG9yaXpvbnRhbE9mZnNldCA9PT0gcHJvcHMuaG9yaXpvbnRhbE9mZnNldCAmJlxuICAgIGNhY2hlLnByb3BzLnVzZUVkZ2VBc0RlZmF1bHQgPT09IHByb3BzLnVzZUVkZ2VBc0RlZmF1bHQgJiZcbiAgICBpc1BvaW50Q2xvc2UoY2FjaGUucHJvcHMucG9pbnQsIHByb3BzLnBvaW50LCBjYWNoZV90cmVzaG9sZClcbiAgKSB7XG4gICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgIC8vY29uc29sZS5sb2coJ1JldHVybmluZyBjYWNoZWQgcmVzdWx0JylcbiAgICB9XG4gICAgcmV0dXJuIGNhY2hlLnJlc3VsdFxuICB9XG5cbiAgY29uc3QgYW5jaG9yRWxlbWVudFJlY3QgPSBhbmNob3JFbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gIGNvbnN0IHRvcExldmVsTm9kZUtleXMgPSBnZXRUb3BMZXZlbE5vZGVLZXlzKGVkaXRvcilcblxuICBjb25zdCBjbG9zZXN0QmxvY2tFbGVtOiB7XG4gICAgYmxvY2tFbGVtOiBIVE1MRWxlbWVudCB8IG51bGxcbiAgICBibG9ja05vZGU6IExleGljYWxOb2RlIHwgbnVsbFxuICAgIGRpc3RhbmNlOiBudW1iZXJcbiAgICBmb3VuZEF0SW5kZXg6IG51bWJlclxuICAgIGlzRm91bmROb2RlRW1wdHlQYXJhZ3JhcGg6IGJvb2xlYW5cbiAgfSA9IHtcbiAgICBibG9ja0VsZW06IG51bGwsXG4gICAgYmxvY2tOb2RlOiBudWxsLFxuICAgIGRpc3RhbmNlOiBJbmZpbml0eSxcbiAgICBmb3VuZEF0SW5kZXg6IC0xLFxuICAgIGlzRm91bmROb2RlRW1wdHlQYXJhZ3JhcGg6IGZhbHNlLFxuICB9XG5cbiAgLy8gUmV0dXJuIG51bGwgaWYgbWF0Y2hpbmcgYmxvY2sgZWxlbWVudCBpcyB0aGUgZmlyc3Qgb3IgbGFzdCBub2RlXG4gIGVkaXRvci5nZXRFZGl0b3JTdGF0ZSgpLnJlYWQoKCkgPT4ge1xuICAgIGlmICh1c2VFZGdlQXNEZWZhdWx0KSB7XG4gICAgICBjb25zdCBbZmlyc3ROb2RlLCBsYXN0Tm9kZV0gPSBbXG4gICAgICAgIGVkaXRvci5nZXRFbGVtZW50QnlLZXkodG9wTGV2ZWxOb2RlS2V5c1swXSksXG4gICAgICAgIGVkaXRvci5nZXRFbGVtZW50QnlLZXkodG9wTGV2ZWxOb2RlS2V5c1t0b3BMZXZlbE5vZGVLZXlzLmxlbmd0aCAtIDFdKSxcbiAgICAgIF1cblxuICAgICAgY29uc3QgW2ZpcnN0Tm9kZVJlY3QsIGxhc3ROb2RlUmVjdF0gPSBbXG4gICAgICAgIGdldEJvdW5kaW5nQ2xpZW50UmVjdFdpdGhvdXRUcmFuc2Zvcm0oZmlyc3ROb2RlKSxcbiAgICAgICAgZ2V0Qm91bmRpbmdDbGllbnRSZWN0V2l0aG91dFRyYW5zZm9ybShsYXN0Tm9kZSksXG4gICAgICBdXG5cbiAgICAgIGlmIChmaXJzdE5vZGVSZWN0ICYmIGxhc3ROb2RlUmVjdCkge1xuICAgICAgICBpZiAoeSA8IGZpcnN0Tm9kZVJlY3QudG9wKSB7XG4gICAgICAgICAgY2xvc2VzdEJsb2NrRWxlbS5ibG9ja0VsZW0gPSBmaXJzdE5vZGVcbiAgICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmRpc3RhbmNlID0gZmlyc3ROb2RlUmVjdC50b3AgLSB5XG4gICAgICAgICAgY2xvc2VzdEJsb2NrRWxlbS5ibG9ja05vZGUgPSAkZ2V0Tm9kZUJ5S2V5KHRvcExldmVsTm9kZUtleXNbMF0pXG4gICAgICAgICAgY2xvc2VzdEJsb2NrRWxlbS5mb3VuZEF0SW5kZXggPSAwXG4gICAgICAgIH0gZWxzZSBpZiAoeSA+IGxhc3ROb2RlUmVjdC5ib3R0b20pIHtcbiAgICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmRpc3RhbmNlID0geSAtIGxhc3ROb2RlUmVjdC5ib3R0b21cbiAgICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmJsb2NrTm9kZSA9ICRnZXROb2RlQnlLZXkodG9wTGV2ZWxOb2RlS2V5c1t0b3BMZXZlbE5vZGVLZXlzLmxlbmd0aCAtIDFdKVxuICAgICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uYmxvY2tFbGVtID0gbGFzdE5vZGVcbiAgICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmZvdW5kQXRJbmRleCA9IHRvcExldmVsTm9kZUtleXMubGVuZ3RoIC0gMVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNsb3Nlc3RCbG9ja0VsZW0/LmJsb2NrRWxlbSkge1xuICAgICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKCd1c2VFZGdlQXNEZWZhdWx0JywgdXNlRWRnZUFzRGVmYXVsdClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYmxvY2tFbGVtOiBudWxsLFxuICAgICAgICAgICAgaXNGb3VuZE5vZGVFbXB0eVBhcmFncmFwaDogZmFsc2UsXG4gICAgICAgICAgfSBhcyBPdXRwdXRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZpbmQgbWF0Y2hpbmcgYmxvY2sgZWxlbWVudFxuICAgIGxldCBpbmRleCA9IHN0YXJ0SW5kZXhcbiAgICBsZXQgZGlyZWN0aW9uID0gSW5kZXRlcm1pbmF0ZVxuXG4gICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgIC8vY29uc29sZS5sb2coJ3N0YXJ0IGluZGV4Jywgc3RhcnRJbmRleClcbiAgICB9XG5cbiAgICB3aGlsZSAoaW5kZXggPj0gMCAmJiBpbmRleCA8IHRvcExldmVsTm9kZUtleXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBrZXkgPSB0b3BMZXZlbE5vZGVLZXlzW2luZGV4XVxuICAgICAgY29uc3QgZWxlbSA9IGVkaXRvci5nZXRFbGVtZW50QnlLZXkoa2V5KVxuICAgICAgaWYgKGVsZW0gPT09IG51bGwpIHtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHBvaW50ID0gbmV3IFBvaW50KHggKyBob3Jpem9udGFsT2Zmc2V0LCB5KVxuICAgICAgLy9jb25zdCBkb21SZWN0ID0gUmVjdC5mcm9tRE9NKGVsZW0pXG4gICAgICAvLyBEbyBub3QgY29uc2lkZXIgdHJhbnNmb3JtIG9mIGJsb2NrcyB3aGVuIGNhbGN1bGF0aW5nIGRpc3RhbmNlXG4gICAgICBjb25zdCBkb21SZWN0ID0gUmVjdC5mcm9tRE9NUmVjdChnZXRCb3VuZGluZ0NsaWVudFJlY3RXaXRob3V0VHJhbnNmb3JtKGVsZW0pKVxuXG4gICAgICBjb25zdCB7IG1hcmdpbkJvdHRvbSwgbWFyZ2luVG9wIH0gPSBnZXRDb2xsYXBzZWRNYXJnaW5zKGVsZW0pXG5cbiAgICAgIGNvbnN0IHJlY3QgPSBkb21SZWN0LmdlbmVyYXRlTmV3UmVjdCh7XG4gICAgICAgIGJvdHRvbTogZG9tUmVjdC5ib3R0b20gKyBtYXJnaW5Cb3R0b20sXG4gICAgICAgIGxlZnQ6IGFuY2hvckVsZW1lbnRSZWN0LmxlZnQsXG4gICAgICAgIHJpZ2h0OiBhbmNob3JFbGVtZW50UmVjdC5yaWdodCxcbiAgICAgICAgdG9wOiBkb21SZWN0LnRvcCAtIG1hcmdpblRvcCxcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IHsgZGlzdGFuY2UsIGlzT25Cb3R0b21TaWRlLCBpc09uVG9wU2lkZSB9ID0gcmVjdC5kaXN0YW5jZUZyb21Qb2ludChwb2ludClcblxuICAgICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgICAgLy9jb25zb2xlLmxvZygnZGlzdGFuY2UnLCBkaXN0YW5jZSlcbiAgICAgIH1cblxuICAgICAgaWYgKGRpc3RhbmNlID09PSAwKSB7XG4gICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uYmxvY2tFbGVtID0gZWxlbVxuICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmJsb2NrTm9kZSA9ICRnZXROb2RlQnlLZXkoa2V5KVxuICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmZvdW5kQXRJbmRleCA9IGluZGV4XG4gICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uZGlzdGFuY2UgPSBkaXN0YW5jZVxuXG4gICAgICAgIC8vIENoZWNrIGlmIGJsb2NrTm9kZSBpcyBhbiBlbXB0eSB0ZXh0IG5vZGVcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uYmxvY2tOb2RlICYmXG4gICAgICAgICAgY2xvc2VzdEJsb2NrRWxlbS5ibG9ja05vZGUuZ2V0VHlwZSgpID09PSAncGFyYWdyYXBoJyAmJlxuICAgICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uYmxvY2tOb2RlLmdldFRleHRDb250ZW50KCkgPT09ICcnXG4gICAgICAgICkge1xuICAgICAgICAgIGlmICghZnV6enkpIHtcbiAgICAgICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uYmxvY2tFbGVtID0gbnVsbFxuICAgICAgICAgICAgY2xvc2VzdEJsb2NrRWxlbS5ibG9ja05vZGUgPSBudWxsXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2xvc2VzdEJsb2NrRWxlbS5pc0ZvdW5kTm9kZUVtcHR5UGFyYWdyYXBoID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICB9IGVsc2UgaWYgKGZ1enp5KSB7XG4gICAgICAgIGlmIChkaXN0YW5jZSA8IGNsb3Nlc3RCbG9ja0VsZW0uZGlzdGFuY2UpIHtcbiAgICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmJsb2NrRWxlbSA9IGVsZW1cbiAgICAgICAgICBjbG9zZXN0QmxvY2tFbGVtLmJsb2NrTm9kZSA9ICRnZXROb2RlQnlLZXkoa2V5KVxuICAgICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uZGlzdGFuY2UgPSBkaXN0YW5jZVxuICAgICAgICAgIGNsb3Nlc3RCbG9ja0VsZW0uZm91bmRBdEluZGV4ID0gaW5kZXhcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoZGlyZWN0aW9uID09PSBJbmRldGVybWluYXRlKSB7XG4gICAgICAgIGlmIChpc09uVG9wU2lkZSkge1xuICAgICAgICAgIGRpcmVjdGlvbiA9IFVwd2FyZFxuICAgICAgICB9IGVsc2UgaWYgKGlzT25Cb3R0b21TaWRlKSB7XG4gICAgICAgICAgZGlyZWN0aW9uID0gRG93bndhcmRcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBzdG9wIHNlYXJjaCBibG9jayBlbGVtZW50XG4gICAgICAgICAgZGlyZWN0aW9uID0gSW5maW5pdHlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpbmRleCArPSBkaXJlY3Rpb25cbiAgICB9XG4gIH0pXG5cbiAgLy8gU3RvcmUgaW4gY2FjaGUgYmVmb3JlIHJldHVybmluZ1xuICBjYWNoZS5wcm9wcyA9IHByb3BzXG4gIGNhY2hlLnJlc3VsdCA9IHtcbiAgICBibG9ja0VsZW06IGNsb3Nlc3RCbG9ja0VsZW0uYmxvY2tFbGVtLFxuICAgIGJsb2NrTm9kZTogY2xvc2VzdEJsb2NrRWxlbS5ibG9ja05vZGUsXG4gICAgZm91bmRBdEluZGV4OiBjbG9zZXN0QmxvY2tFbGVtLmZvdW5kQXRJbmRleCxcbiAgICBpc0ZvdW5kTm9kZUVtcHR5UGFyYWdyYXBoOiBjbG9zZXN0QmxvY2tFbGVtLmlzRm91bmROb2RlRW1wdHlQYXJhZ3JhcGgsXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGJsb2NrRWxlbTogY2xvc2VzdEJsb2NrRWxlbS5ibG9ja0VsZW0sXG4gICAgYmxvY2tOb2RlOiBjbG9zZXN0QmxvY2tFbGVtLmJsb2NrTm9kZSxcbiAgICBmb3VuZEF0SW5kZXg6IGNsb3Nlc3RCbG9ja0VsZW0uZm91bmRBdEluZGV4LFxuICAgIGlzRm91bmROb2RlRW1wdHlQYXJhZ3JhcGg6IGNsb3Nlc3RCbG9ja0VsZW0uaXNGb3VuZE5vZGVFbXB0eVBhcmFncmFwaCxcbiAgfVxufVxuIl0sIm5hbWVzIjpbImdldE5vZGVDbG9zZVRvUG9pbnQiLCJEb3dud2FyZCIsIlVwd2FyZCIsIkluZGV0ZXJtaW5hdGUiLCJjYWNoZSIsInByb3BzIiwicmVzdWx0IiwiaXNQb2ludENsb3NlIiwicHJldmlvdXMiLCJjdXJyZW50IiwidGhyZXNob2xkIiwiZHgiLCJ4IiwiZHkiLCJ5IiwiYW5jaG9yRWxlbSIsImNhY2hlX3RyZXNob2xkIiwiZWRpdG9yIiwiZnV6enkiLCJob3Jpem9udGFsT2Zmc2V0IiwicG9pbnQiLCJzdGFydEluZGV4IiwidXNlRWRnZUFzRGVmYXVsdCIsInZlcmJvc2UiLCJhbmNob3JFbGVtZW50UmVjdCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsInRvcExldmVsTm9kZUtleXMiLCJnZXRUb3BMZXZlbE5vZGVLZXlzIiwiY2xvc2VzdEJsb2NrRWxlbSIsImJsb2NrRWxlbSIsImJsb2NrTm9kZSIsImRpc3RhbmNlIiwiSW5maW5pdHkiLCJmb3VuZEF0SW5kZXgiLCJpc0ZvdW5kTm9kZUVtcHR5UGFyYWdyYXBoIiwiZ2V0RWRpdG9yU3RhdGUiLCJyZWFkIiwiZmlyc3ROb2RlIiwibGFzdE5vZGUiLCJnZXRFbGVtZW50QnlLZXkiLCJsZW5ndGgiLCJmaXJzdE5vZGVSZWN0IiwibGFzdE5vZGVSZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0V2l0aG91dFRyYW5zZm9ybSIsInRvcCIsIiRnZXROb2RlQnlLZXkiLCJib3R0b20iLCJpbmRleCIsImRpcmVjdGlvbiIsImtleSIsImVsZW0iLCJQb2ludCIsImRvbVJlY3QiLCJSZWN0IiwiZnJvbURPTVJlY3QiLCJtYXJnaW5Cb3R0b20iLCJtYXJnaW5Ub3AiLCJnZXRDb2xsYXBzZWRNYXJnaW5zIiwicmVjdCIsImdlbmVyYXRlTmV3UmVjdCIsImxlZnQiLCJyaWdodCIsImlzT25Cb3R0b21TaWRlIiwiaXNPblRvcFNpZGUiLCJkaXN0YW5jZUZyb21Qb2ludCIsImdldFR5cGUiLCJnZXRUZXh0Q29udGVudCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFrRGdCQTs7O2VBQUFBOzs7eUJBaERjO3VCQUVSO3NCQUNEO3FDQUNlO3FDQUNBO2lEQUNrQjtBQUV0RCxhQUFhO0FBQ2IsTUFBTUMsV0FBVztBQUNqQixNQUFNQyxTQUFTLENBQUM7QUFDaEIsTUFBTUMsZ0JBQWdCO0FBMEJ0QixNQUFNQyxRQUFRO0lBQ1pDLE9BQU87SUFDUEMsUUFBUTtBQUNWO0FBRUEsU0FBU0MsYUFBYUMsUUFBZSxFQUFFQyxPQUFjLEVBQUVDLFlBQW9CLEVBQUU7SUFDM0UsTUFBTUMsS0FBS0gsU0FBU0ksQ0FBQyxHQUFHSCxRQUFRRyxDQUFDO0lBQ2pDLE1BQU1DLEtBQUtMLFNBQVNNLENBQUMsR0FBR0wsUUFBUUssQ0FBQztJQUNqQyxPQUFPSCxLQUFLQSxLQUFLRSxLQUFLQSxNQUFNSCxZQUFZQTtBQUMxQztBQUVPLFNBQVNWLG9CQUFvQkssS0FBWTtJQUM5QyxNQUFNLEVBQ0pVLFVBQVUsRUFDVkMsaUJBQWlCLEVBQUUsRUFDbkJDLE1BQU0sRUFDTkMsUUFBUSxLQUFLLEVBQ2JDLG1CQUFtQixDQUFDLEVBQ3BCQyxPQUFPLEVBQUVSLENBQUMsRUFBRUUsQ0FBQyxFQUFFLEVBQ2ZPLGFBQWEsQ0FBQyxFQUNkQyxtQkFBbUIsS0FBSyxFQUN4QkMsVUFBVSxLQUFLLEVBQ2hCLEdBQUdsQjtJQUVKLFlBQVk7SUFDWixJQUNFVyxpQkFBaUIsS0FDakJaLE1BQU1DLEtBQUssSUFDWEQsTUFBTUUsTUFBTSxJQUNaRixNQUFNQyxLQUFLLENBQUNhLEtBQUssS0FBS2IsTUFBTWEsS0FBSyxJQUNqQ2QsTUFBTUMsS0FBSyxDQUFDYyxnQkFBZ0IsS0FBS2QsTUFBTWMsZ0JBQWdCLElBQ3ZEZixNQUFNQyxLQUFLLENBQUNpQixnQkFBZ0IsS0FBS2pCLE1BQU1pQixnQkFBZ0IsSUFDdkRmLGFBQWFILE1BQU1DLEtBQUssQ0FB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
@@ -0,0 +1,3 @@
1
+ import type React from 'react';
2
+ export declare function highlightElemOriginalPosition(debugHighlightRef: React.RefObject<HTMLDivElement>, htmlElem: HTMLElement, anchorElem: HTMLElement): void;
3
+ //# sourceMappingURL=highlightElemOriginalPosition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"highlightElemOriginalPosition.d.ts","sourceRoot":"","sources":["../../../../../../src/field/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,wBAAgB,6BAA6B,CAC3C,iBAAiB,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,EAClD,QAAQ,EAAE,WAAW,EACrB,UAAU,EAAE,WAAW,QA4BxB"}