@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,230 @@
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
+ function _export(target, all) {
12
+ for(var name in all)Object.defineProperty(target, name, {
13
+ enumerable: true,
14
+ get: all[name]
15
+ });
16
+ }
17
+ _export(exports, {
18
+ createLinkMatcherWithRegExp: function() {
19
+ return createLinkMatcherWithRegExp;
20
+ },
21
+ AutoLinkPlugin: function() {
22
+ return AutoLinkPlugin;
23
+ }
24
+ });
25
+ const _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
26
+ const _utils = require("@lexical/utils");
27
+ const _lexical = require("lexical");
28
+ const _react = require("react");
29
+ const _invariant = require("../../../../lexical/utils/invariant");
30
+ const _AutoLinkNode = require("../../nodes/AutoLinkNode");
31
+ const _LinkNode = require("../../nodes/LinkNode");
32
+ function createLinkMatcherWithRegExp(regExp, urlTransformer = (text)=>text) {
33
+ return (text)=>{
34
+ const match = regExp.exec(text);
35
+ if (match === null) return null;
36
+ return {
37
+ index: match.index,
38
+ length: match[0].length,
39
+ text: match[0],
40
+ url: urlTransformer(text)
41
+ };
42
+ };
43
+ }
44
+ function findFirstMatch(text, matchers) {
45
+ for(let i = 0; i < matchers.length; i++){
46
+ const match = matchers[i](text);
47
+ if (match != null) {
48
+ return match;
49
+ }
50
+ }
51
+ return null;
52
+ }
53
+ const PUNCTUATION_OR_SPACE = /[.,;\s]/;
54
+ function isSeparator(char) {
55
+ return PUNCTUATION_OR_SPACE.test(char);
56
+ }
57
+ function endsWithSeparator(textContent) {
58
+ return isSeparator(textContent[textContent.length - 1]);
59
+ }
60
+ function startsWithSeparator(textContent) {
61
+ return isSeparator(textContent[0]);
62
+ }
63
+ function isPreviousNodeValid(node) {
64
+ let previousNode = node.getPreviousSibling();
65
+ if ((0, _lexical.$isElementNode)(previousNode)) {
66
+ previousNode = previousNode.getLastDescendant();
67
+ }
68
+ return previousNode === null || (0, _lexical.$isLineBreakNode)(previousNode) || (0, _lexical.$isTextNode)(previousNode) && endsWithSeparator(previousNode.getTextContent());
69
+ }
70
+ function isNextNodeValid(node) {
71
+ let nextNode = node.getNextSibling();
72
+ if ((0, _lexical.$isElementNode)(nextNode)) {
73
+ nextNode = nextNode.getFirstDescendant();
74
+ }
75
+ return nextNode === null || (0, _lexical.$isLineBreakNode)(nextNode) || (0, _lexical.$isTextNode)(nextNode) && startsWithSeparator(nextNode.getTextContent());
76
+ }
77
+ function isContentAroundIsValid(matchStart, matchEnd, text, node) {
78
+ const contentBeforeIsValid = matchStart > 0 ? isSeparator(text[matchStart - 1]) : isPreviousNodeValid(node);
79
+ if (!contentBeforeIsValid) {
80
+ return false;
81
+ }
82
+ const contentAfterIsValid = matchEnd < text.length ? isSeparator(text[matchEnd]) : isNextNodeValid(node);
83
+ return contentAfterIsValid;
84
+ }
85
+ function handleLinkCreation(node, matchers, onChange) {
86
+ const nodeText = node.getTextContent();
87
+ let text = nodeText;
88
+ let invalidMatchEnd = 0;
89
+ let remainingTextNode = node;
90
+ let match;
91
+ while((match = findFirstMatch(text, matchers)) != null && match !== null){
92
+ const matchStart = match.index;
93
+ const matchLength = match.length;
94
+ const matchEnd = matchStart + matchLength;
95
+ const isValid = isContentAroundIsValid(invalidMatchEnd + matchStart, invalidMatchEnd + matchEnd, nodeText, node);
96
+ if (isValid) {
97
+ let linkTextNode;
98
+ if (invalidMatchEnd + matchStart === 0) {
99
+ [linkTextNode, remainingTextNode] = remainingTextNode.splitText(invalidMatchEnd + matchLength);
100
+ } else {
101
+ [, linkTextNode, remainingTextNode] = remainingTextNode.splitText(invalidMatchEnd + matchStart, invalidMatchEnd + matchStart + matchLength);
102
+ }
103
+ const fields = {
104
+ linkType: 'custom',
105
+ url: match.url,
106
+ ...match.attributes
107
+ };
108
+ const linkNode = (0, _AutoLinkNode.$createAutoLinkNode)({
109
+ fields
110
+ });
111
+ const textNode = (0, _lexical.$createTextNode)(match.text);
112
+ textNode.setFormat(linkTextNode.getFormat());
113
+ textNode.setDetail(linkTextNode.getDetail());
114
+ linkNode.append(textNode);
115
+ linkTextNode.replace(linkNode);
116
+ onChange(match.url, null);
117
+ invalidMatchEnd = 0;
118
+ } else {
119
+ invalidMatchEnd += matchEnd;
120
+ }
121
+ text = text.substring(matchEnd);
122
+ }
123
+ }
124
+ function handleLinkEdit(linkNode, matchers, onChange) {
125
+ // Check children are simple text
126
+ const children = linkNode.getChildren();
127
+ const childrenLength = children.length;
128
+ for(let i = 0; i < childrenLength; i++){
129
+ const child = children[i];
130
+ if (!(0, _lexical.$isTextNode)(child) || !child.isSimpleText()) {
131
+ replaceWithChildren(linkNode);
132
+ onChange(null, linkNode.getFields()?.url ?? null);
133
+ return;
134
+ }
135
+ }
136
+ // Check text content fully matches
137
+ const text = linkNode.getTextContent();
138
+ const match = findFirstMatch(text, matchers);
139
+ if (match === null || match.text !== text) {
140
+ replaceWithChildren(linkNode);
141
+ onChange(null, linkNode.getFields()?.url ?? null);
142
+ return;
143
+ }
144
+ // Check neighbors
145
+ if (!isPreviousNodeValid(linkNode) || !isNextNodeValid(linkNode)) {
146
+ replaceWithChildren(linkNode);
147
+ onChange(null, linkNode.getFields()?.url ?? null);
148
+ return;
149
+ }
150
+ const url = linkNode.getFields()?.url;
151
+ if (url !== match?.url) {
152
+ const flds = linkNode.getFields();
153
+ flds.url = match?.url;
154
+ linkNode.setFields(flds);
155
+ onChange(match.url, url ?? null);
156
+ }
157
+ }
158
+ // Bad neighbours are edits in neighbor nodes that make AutoLinks incompatible.
159
+ // Given the creation preconditions, these can only be simple text nodes.
160
+ function handleBadNeighbors(textNode, matchers, onChange) {
161
+ const previousSibling = textNode.getPreviousSibling();
162
+ const nextSibling = textNode.getNextSibling();
163
+ const text = textNode.getTextContent();
164
+ if ((0, _AutoLinkNode.$isAutoLinkNode)(previousSibling) && !startsWithSeparator(text)) {
165
+ previousSibling.append(textNode);
166
+ handleLinkEdit(previousSibling, matchers, onChange);
167
+ onChange(null, previousSibling.getFields()?.url ?? null);
168
+ }
169
+ if ((0, _AutoLinkNode.$isAutoLinkNode)(nextSibling) && !endsWithSeparator(text)) {
170
+ replaceWithChildren(nextSibling);
171
+ handleLinkEdit(nextSibling, matchers, onChange);
172
+ onChange(null, nextSibling.getFields()?.url ?? null);
173
+ }
174
+ }
175
+ function replaceWithChildren(node) {
176
+ const children = node.getChildren();
177
+ const childrenLength = children.length;
178
+ for(let j = childrenLength - 1; j >= 0; j--){
179
+ node.insertAfter(children[j]);
180
+ }
181
+ node.remove();
182
+ return children.map((child)=>child.getLatest());
183
+ }
184
+ function useAutoLink(editor, matchers, onChange) {
185
+ (0, _react.useEffect)(()=>{
186
+ if (!editor.hasNodes([
187
+ _AutoLinkNode.AutoLinkNode
188
+ ])) {
189
+ (0, _invariant.invariant)(false, 'LexicalAutoLinkPlugin: AutoLinkNode not registered on editor');
190
+ }
191
+ const onChangeWrapped = (url, prevUrl)=>{
192
+ if (onChange != null) {
193
+ onChange(url, prevUrl);
194
+ }
195
+ };
196
+ return (0, _utils.mergeRegister)(editor.registerNodeTransform(_lexical.TextNode, (textNode)=>{
197
+ const parent = textNode.getParentOrThrow();
198
+ const previous = textNode.getPreviousSibling();
199
+ if ((0, _AutoLinkNode.$isAutoLinkNode)(parent)) {
200
+ handleLinkEdit(parent, matchers, onChangeWrapped);
201
+ } else if (!(0, _LinkNode.$isLinkNode)(parent)) {
202
+ if (textNode.isSimpleText() && (startsWithSeparator(textNode.getTextContent()) || !(0, _AutoLinkNode.$isAutoLinkNode)(previous))) {
203
+ handleLinkCreation(textNode, matchers, onChangeWrapped);
204
+ }
205
+ handleBadNeighbors(textNode, matchers, onChangeWrapped);
206
+ }
207
+ }));
208
+ }, [
209
+ editor,
210
+ matchers,
211
+ onChange
212
+ ]);
213
+ }
214
+ const URL_REGEX = /((https?:\/\/(www\.)?)|(www\.))[-\w@:%.+~#=]{1,256}\.[a-zA-Z\d()]{1,6}\b([-\w()@:%+.~#?&/=]*)/;
215
+ const EMAIL_REGEX = /(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\])|(([a-zA-Z\-\d]+\.)+[a-zA-Z]{2,}))/;
216
+ const MATCHERS = [
217
+ createLinkMatcherWithRegExp(URL_REGEX, (text)=>{
218
+ return text.startsWith('http') ? text : `https://${text}`;
219
+ }),
220
+ createLinkMatcherWithRegExp(EMAIL_REGEX, (text)=>{
221
+ return `mailto:${text}`;
222
+ })
223
+ ];
224
+ function AutoLinkPlugin() {
225
+ const [editor] = (0, _LexicalComposerContext.useLexicalComposerContext)();
226
+ useAutoLink(editor, MATCHERS);
227
+ return null;
228
+ }
229
+
230
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9MaW5rL3BsdWdpbnMvYXV0b0xpbmsvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBNZXRhIFBsYXRmb3JtcywgSW5jLiBhbmQgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBFbGVtZW50Tm9kZSwgTGV4aWNhbEVkaXRvciwgTGV4aWNhbE5vZGUgfSBmcm9tICdsZXhpY2FsJ1xuXG5pbXBvcnQgeyB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dCdcbmltcG9ydCB7IG1lcmdlUmVnaXN0ZXIgfSBmcm9tICdAbGV4aWNhbC91dGlscydcbmltcG9ydCB7ICRjcmVhdGVUZXh0Tm9kZSwgJGlzRWxlbWVudE5vZGUsICRpc0xpbmVCcmVha05vZGUsICRpc1RleHROb2RlLCBUZXh0Tm9kZSB9IGZyb20gJ2xleGljYWwnXG5pbXBvcnQgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgaW52YXJpYW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vbGV4aWNhbC91dGlscy9pbnZhcmlhbnQnXG5pbXBvcnQgeyAkY3JlYXRlQXV0b0xpbmtOb2RlLCAkaXNBdXRvTGlua05vZGUsIEF1dG9MaW5rTm9kZSB9IGZyb20gJy4uLy4uL25vZGVzL0F1dG9MaW5rTm9kZSdcbmltcG9ydCB7ICRpc0xpbmtOb2RlLCB0eXBlIExpbmtGaWVsZHMgfSBmcm9tICcuLi8uLi9ub2Rlcy9MaW5rTm9kZSdcblxudHlwZSBDaGFuZ2VIYW5kbGVyID0gKHVybDogbnVsbCB8IHN0cmluZywgcHJldlVybDogbnVsbCB8IHN0cmluZykgPT4gdm9pZFxuXG5pbnRlcmZhY2UgTGlua01hdGNoZXJSZXN1bHQge1xuICBmaWVsZHM/OiBMaW5rRmllbGRzXG4gIGluZGV4OiBudW1iZXJcbiAgbGVuZ3RoOiBudW1iZXJcbiAgdGV4dDogc3RyaW5nXG4gIHVybDogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIExpbmtNYXRjaGVyID0gKHRleHQ6IHN0cmluZykgPT4gTGlua01hdGNoZXJSZXN1bHQgfCBudWxsXG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVMaW5rTWF0Y2hlcldpdGhSZWdFeHAoXG4gIHJlZ0V4cDogUmVnRXhwLFxuICB1cmxUcmFuc2Zvcm1lcjogKHRleHQ6IHN0cmluZykgPT4gc3RyaW5nID0gKHRleHQpID0+IHRleHQsXG4pIHtcbiAgcmV0dXJuICh0ZXh0OiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBtYXRjaCA9IHJlZ0V4cC5leGVjKHRleHQpXG4gICAgaWYgKG1hdGNoID09PSBudWxsKSByZXR1cm4gbnVsbFxuICAgIHJldHVybiB7XG4gICAgICBpbmRleDogbWF0Y2guaW5kZXgsXG4gICAgICBsZW5ndGg6IG1hdGNoWzBdLmxlbmd0aCxcbiAgICAgIHRleHQ6IG1hdGNoWzBdLFxuICAgICAgdXJsOiB1cmxUcmFuc2Zvcm1lcih0ZXh0KSxcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZmluZEZpcnN0TWF0Y2godGV4dDogc3RyaW5nLCBtYXRjaGVyczogTGlua01hdGNoZXJbXSk6IExpbmtNYXRjaGVyUmVzdWx0IHwgbnVsbCB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbWF0Y2hlcnMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBtYXRjaCA9IG1hdGNoZXJzW2ldKHRleHQpXG5cbiAgICBpZiAobWF0Y2ggIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG1hdGNoXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGxcbn1cblxuY29uc3QgUFVOQ1RVQVRJT05fT1JfU1BBQ0UgPSAvWy4sO1xcc10vXG5cbmZ1bmN0aW9uIGlzU2VwYXJhdG9yKGNoYXI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gUFVOQ1RVQVRJT05fT1JfU1BBQ0UudGVzdChjaGFyKVxufVxuXG5mdW5jdGlvbiBlbmRzV2l0aFNlcGFyYXRvcih0ZXh0Q29udGVudDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBpc1NlcGFyYXRvcih0ZXh0Q29udGVudFt0ZXh0Q29udGVudC5sZW5ndGggLSAxXSlcbn1cblxuZnVuY3Rpb24gc3RhcnRzV2l0aFNlcGFyYXRvcih0ZXh0Q29udGVudDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBpc1NlcGFyYXRvcih0ZXh0Q29udGVudFswXSlcbn1cblxuZnVuY3Rpb24gaXNQcmV2aW91c05vZGVWYWxpZChub2RlOiBMZXhpY2FsTm9kZSk6IGJvb2xlYW4ge1xuICBsZXQgcHJldmlvdXNOb2RlID0gbm9kZS5nZXRQcmV2aW91c1NpYmxpbmcoKVxuICBpZiAoJGlzRWxlbWVudE5vZGUocHJldmlvdXNOb2RlKSkge1xuICAgIHByZXZpb3VzTm9kZSA9IHByZXZpb3VzTm9kZS5nZXRMYXN0RGVzY2VuZGFudCgpXG4gIH1cbiAgcmV0dXJuIChcbiAgICBwcmV2aW91c05vZGUgPT09IG51bGwgfHxcbiAgICAkaXNMaW5lQnJlYWtOb2RlKHByZXZpb3VzTm9kZSkgfHxcbiAgICAoJGlzVGV4dE5vZGUocHJldmlvdXNOb2RlKSAmJiBlbmRzV2l0aFNlcGFyYXRvcihwcmV2aW91c05vZGUuZ2V0VGV4dENvbnRlbnQoKSkpXG4gIClcbn1cblxuZnVuY3Rpb24gaXNOZXh0Tm9kZVZhbGlkKG5vZGU6IExleGljYWxOb2RlKTogYm9vbGVhbiB7XG4gIGxldCBuZXh0Tm9kZSA9IG5vZGUuZ2V0TmV4dFNpYmxpbmcoKVxuICBpZiAoJGlzRWxlbWVudE5vZGUobmV4dE5vZGUpKSB7XG4gICAgbmV4dE5vZGUgPSBuZXh0Tm9kZS5nZXRGaXJzdERlc2NlbmRhbnQoKVxuICB9XG4gIHJldHVybiAoXG4gICAgbmV4dE5vZGUgPT09IG51bGwgfHxcbiAgICAkaXNMaW5lQnJlYWtOb2RlKG5leHROb2RlKSB8fFxuICAgICgkaXNUZXh0Tm9kZShuZXh0Tm9kZSkgJiYgc3RhcnRzV2l0aFNlcGFyYXRvcihuZXh0Tm9kZS5nZXRUZXh0Q29udGVudCgpKSlcbiAgKVxufVxuXG5mdW5jdGlvbiBpc0NvbnRlbnRBcm91bmRJc1ZhbGlkKFxuICBtYXRjaFN0YXJ0OiBudW1iZXIsXG4gIG1hdGNoRW5kOiBudW1iZXIsXG4gIHRleHQ6IHN0cmluZyxcbiAgbm9kZTogVGV4dE5vZGUsXG4pOiBib29sZWFuIHtcbiAgY29uc3QgY29udGVudEJlZm9yZUlzVmFsaWQgPVxuICAgIG1hdGNoU3RhcnQgPiAwID8gaXNTZXBhcmF0b3IodGV4dFttYXRjaFN0YXJ0IC0gMV0pIDogaXNQcmV2aW91c05vZGVWYWxpZChub2RlKVxuICBpZiAoIWNvbnRlbnRCZWZvcmVJc1ZhbGlkKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBjb25zdCBjb250ZW50QWZ0ZXJJc1ZhbGlkID1cbiAgICBtYXRjaEVuZCA8IHRleHQubGVuZ3RoID8gaXNTZXBhcmF0b3IodGV4dFttYXRjaEVuZF0pIDogaXNOZXh0Tm9kZVZhbGlkKG5vZGUpXG4gIHJldHVybiBjb250ZW50QWZ0ZXJJc1ZhbGlkXG59XG5cbmZ1bmN0aW9uIGhhbmRsZUxpbmtDcmVhdGlvbihcbiAgbm9kZTogVGV4dE5vZGUsXG4gIG1hdGNoZXJzOiBMaW5rTWF0Y2hlcltdLFxuICBvbkNoYW5nZTogQ2hhbmdlSGFuZGxlcixcbik6IHZvaWQge1xuICBjb25zdCBub2RlVGV4dCA9IG5vZGUuZ2V0VGV4dENvbnRlbnQoKVxuICBsZXQgdGV4dCA9IG5vZGVUZXh0XG4gIGxldCBpbnZhbGlkTWF0Y2hFbmQgPSAwXG4gIGxldCByZW1haW5pbmdUZXh0Tm9kZSA9IG5vZGVcbiAgbGV0IG1hdGNoXG5cbiAgd2hpbGUgKChtYXRjaCA9IGZpbmRGaXJzdE1hdGNoKHRleHQsIG1hdGNoZXJzKSkgIT0gbnVsbCAmJiBtYXRjaCAhPT0gbnVsbCkge1xuICAgIGNvbnN0IG1hdGNoU3RhcnQ6IG51bWJlciA9IG1hdGNoLmluZGV4XG4gICAgY29uc3QgbWF0Y2hMZW5ndGg6IG51bWJlciA9IG1hdGNoLmxlbmd0aFxuICAgIGNvbnN0IG1hdGNoRW5kID0gbWF0Y2hTdGFydCArIG1hdGNoTGVuZ3RoXG4gICAgY29uc3QgaXNWYWxpZCA9IGlzQ29udGVudEFyb3VuZElzVmFsaWQoXG4gICAgICBpbnZhbGlkTWF0Y2hFbmQgKyBtYXRjaFN0YXJ0LFxuICAgICAgaW52YWxpZE1hdGNoRW5kICsgbWF0Y2hFbmQsXG4gICAgICBub2RlVGV4dCxcbiAgICAgIG5vZGUsXG4gICAgKVxuXG4gICAgaWYgKGlzVmFsaWQpIHtcbiAgICAgIGxldCBsaW5rVGV4dE5vZGVcbiAgICAgIGlmIChpbnZhbGlkTWF0Y2hFbmQgKyBtYXRjaFN0YXJ0ID09PSAwKSB7XG4gICAgICAgIDtbbGlua1RleHROb2RlLCByZW1haW5pbmdUZXh0Tm9kZV0gPSByZW1haW5pbmdUZXh0Tm9kZS5zcGxpdFRleHQoXG4gICAgICAgICAgaW52YWxpZE1hdGNoRW5kICsgbWF0Y2hMZW5ndGgsXG4gICAgICAgIClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIDtbLCBsaW5rVGV4dE5vZGUsIHJlbWFpbmluZ1RleHROb2RlXSA9IHJlbWFpbmluZ1RleHROb2RlLnNwbGl0VGV4dChcbiAgICAgICAgICBpbnZhbGlkTWF0Y2hFbmQgKyBtYXRjaFN0YXJ0LFxuICAgICAgICAgIGludmFsaWRNYXRjaEVuZCArIG1hdGNoU3RhcnQgKyBtYXRjaExlbmd0aCxcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgY29uc3QgZmllbGRzOiBMaW5rRmllbGRzID0ge1xuICAgICAgICBsaW5rVHlwZTogJ2N1c3RvbScsXG4gICAgICAgIHVybDogbWF0Y2gudXJsLFxuICAgICAgICAuLi5tYXRjaC5hdHRyaWJ1dGVzLFxuICAgICAgfVxuXG4gICAgICBjb25zdCBsaW5rTm9kZSA9ICRjcmVhdGVBdXRvTGlua05vZGUoeyBmaWVsZHMgfSlcbiAgICAgIGNvbnN0IHRleHROb2RlID0gJGNyZWF0ZVRleHROb2RlKG1hdGNoLnRleHQpXG4gICAgICB0ZXh0Tm9kZS5zZXRGb3JtYXQobGlua1RleHROb2RlLmdldEZvcm1hdCgpKVxuICAgICAgdGV4dE5vZGUuc2V0RGV0YWlsKGxpbmtUZXh0Tm9kZS5nZXREZXRhaWwoKSlcbiAgICAgIGxpbmtOb2RlLmFwcGVuZCh0ZXh0Tm9kZSlcbiAgICAgIGxpbmtUZXh0Tm9kZS5yZXBsYWNlKGxpbmtOb2RlKVxuICAgICAgb25DaGFuZ2UobWF0Y2gudXJsLCBudWxsKVxuICAgICAgaW52YWxpZE1hdGNoRW5kID0gMFxuICAgIH0gZWxzZSB7XG4gICAgICBpbnZhbGlkTWF0Y2hFbmQgKz0gbWF0Y2hFbmRcbiAgICB9XG5cbiAgICB0ZXh0ID0gdGV4dC5zdWJzdHJpbmcobWF0Y2hFbmQpXG4gIH1cbn1cblxuZnVuY3Rpb24gaGFuZGxlTGlua0VkaXQoXG4gIGxpbmtOb2RlOiBBdXRvTGlua05vZGUsXG4gIG1hdGNoZXJzOiBMaW5rTWF0Y2hlcltdLFxuICBvbkNoYW5nZTogQ2hhbmdlSGFuZGxlcixcbik6IHZvaWQge1xuICAvLyBDaGVjayBjaGlsZHJlbiBhcmUgc2ltcGxlIHRleHRcbiAgY29uc3QgY2hpbGRyZW4gPSBsaW5rTm9kZS5nZXRDaGlsZHJlbigpXG4gIGNvbnN0IGNoaWxkcmVuTGVuZ3RoID0gY2hpbGRyZW4ubGVuZ3RoXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY2hpbGRyZW5MZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGNoaWxkID0gY2hpbGRyZW5baV1cbiAgICBpZiAoISRpc1RleHROb2RlKGNoaWxkKSB8fCAhY2hpbGQuaXNTaW1wbGVUZXh0KCkpIHtcbiAgICAgIHJlcGxhY2VXaXRoQ2hpbGRyZW4obGlua05vZGUpXG4gICAgICBvbkNoYW5nZShudWxsLCBsaW5rTm9kZS5nZXRGaWVsZHMoKT8udXJsID8/IG51bGwpXG4gICAgICByZXR1cm5cbiAgICB9XG4gIH1cblxuICAvLyBDaGVjayB0ZXh0IGNvbnRlbnQgZnVsbHkgbWF0Y2hlc1xuICBjb25zdCB0ZXh0ID0gbGlua05vZGUuZ2V0VGV4dENvbnRlbnQoKVxuICBjb25zdCBtYXRjaCA9IGZpbmRGaXJzdE1hdGNoKHRleHQsIG1hdGNoZXJzKVxuICBpZiAobWF0Y2ggPT09IG51bGwgfHwgbWF0Y2gudGV4dCAhPT0gdGV4dCkge1xuICAgIHJlcGxhY2VXaXRoQ2hpbGRyZW4obGlua05vZGUpXG4gICAgb25DaGFuZ2UobnVsbCwgbGlua05vZGUuZ2V0RmllbGRzKCk/LnVybCA/PyBudWxsKVxuICAgIHJldHVyblxuICB9XG5cbiAgLy8gQ2hlY2sgbmVpZ2hib3JzXG4gIGlmICghaXNQcmV2aW91c05vZGVWYWxpZChsaW5rTm9kZSkgfHwgIWlzTmV4dE5vZGVWYWxpZChsaW5rTm9kZSkpIHtcbiAgICByZXBsYWNlV2l0aENoaWxkcmVuKGxpbmtOb2RlKVxuICAgIG9uQ2hhbmdlKG51bGwsIGxpbmtOb2RlLmdldEZpZWxkcygpPy51cmwgPz8gbnVsbClcbiAgICByZXR1cm5cbiAgfVxuXG4gIGNvbnN0IHVybCA9IGxpbmtOb2RlLmdldEZpZWxkcygpPy51cmxcbiAgaWYgKHVybCAhPT0gbWF0Y2g/LnVybCkge1xuICAgIGNvbnN0IGZsZHMgPSBsaW5rTm9kZS5nZXRGaWVsZHMoKVxuICAgIGZsZHMudXJsID0gbWF0Y2g/LnVybFxuICAgIGxpbmtOb2RlLnNldEZpZWxkcyhmbGRzKVxuICAgIG9uQ2hhbmdlKG1hdGNoLnVybCwgdXJsID8/IG51bGwpXG4gIH1cbn1cblxuLy8gQmFkIG5laWdoYm91cnMgYXJlIGVkaXRzIGluIG5laWdoYm9yIG5vZGVzIHRoYXQgbWFrZSBBdXRvTGlua3MgaW5jb21wYXRpYmxlLlxuLy8gR2l2ZW4gdGhlIGNyZWF0aW9uIHByZWNvbmRpdGlvbnMsIHRoZXNlIGNhbiBvbmx5IGJlIHNpbXBsZSB0ZXh0IG5vZGVzLlxuZnVuY3Rpb24gaGFuZGxlQmFkTmVpZ2hib3JzKFxuICB0ZXh0Tm9kZTogVGV4dE5vZGUsXG4gIG1hdGNoZXJzOiBMaW5rTWF0Y2hlcltdLFxuICBvbkNoYW5nZTogQ2hhbmdlSGFuZGxlcixcbik6IHZvaWQge1xuICBjb25zdCBwcmV2aW91c1NpYmxpbmcgPSB0ZXh0Tm9kZS5nZXRQcmV2aW91c1NpYmxpbmcoKVxuICBjb25zdCBuZXh0U2libGluZyA9IHRleHROb2RlLmdldE5leHRTaWJsaW5nKClcbiAgY29uc3QgdGV4dCA9IHRleHROb2RlLmdldFRleHRDb250ZW50KClcblxuICBpZiAoJGlzQXV0b0xpbmtOb2RlKHByZXZpb3VzU2libGluZykgJiYgIXN0YXJ0c1dpdGhTZXBhcmF0b3IodGV4dCkpIHtcbiAgICBwcmV2aW91c1NpYmxpbmcuYXBwZW5kKHRleHROb2RlKVxuICAgIGhhbmRsZUxpbmtFZGl0KHByZXZpb3VzU2libGluZywgbWF0Y2hlcnMsIG9uQ2hhbmdlKVxuICAgIG9uQ2hhbmdlKG51bGwsIHByZXZpb3VzU2libGluZy5nZXRGaWVsZHMoKT8udXJsID8/IG51bGwpXG4gIH1cblxuICBpZiAoJGlzQXV0b0xpbmtOb2RlKG5leHRTaWJsaW5nKSAmJiAhZW5kc1dpdGhTZXBhcmF0b3IodGV4dCkpIHtcbiAgICByZXBsYWNlV2l0aENoaWxkcmVuKG5leHRTaWJsaW5nKVxuICAgIGhhbmRsZUxpbmtFZGl0KG5leHRTaWJsaW5nLCBtYXRjaGVycywgb25DaGFuZ2UpXG4gICAgb25DaGFuZ2UobnVsbCwgbmV4dFNpYmxpbmcuZ2V0RmllbGRzKCk/LnVybCA/PyBudWxsKVxuICB9XG59XG5cbmZ1bmN0aW9uIHJlcGxhY2VXaXRoQ2hpbGRyZW4obm9kZTogRWxlbWVudE5vZGUpOiBMZXhpY2FsTm9kZVtdIHtcbiAgY29uc3QgY2hpbGRyZW4gPSBub2RlLmdldENoaWxkcmVuKClcbiAgY29uc3QgY2hpbGRyZW5MZW5ndGggPSBjaGlsZHJlbi5sZW5ndGhcblxuICBmb3IgKGxldCBqID0gY2hpbGRyZW5MZW5ndGggLSAxOyBqID49IDA7IGotLSkge1xuICAgIG5vZGUuaW5zZXJ0QWZ0ZXIoY2hpbGRyZW5bal0pXG4gIH1cblxuICBub2RlLnJlbW92ZSgpXG4gIHJldHVybiBjaGlsZHJlbi5tYXAoKGNoaWxkKSA9PiBjaGlsZC5nZXRMYXRlc3QoKSlcbn1cblxuZnVuY3Rpb24gdXNlQXV0b0xpbmsoXG4gIGVkaXRvcjogTGV4aWNhbEVkaXRvcixcbiAgbWF0Y2hlcnM6IExpbmtNYXRjaGVyW10sXG4gIG9uQ2hhbmdlPzogQ2hhbmdlSGFuZGxlcixcbik6IHZvaWQge1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghZWRpdG9yLmhhc05vZGVzKFtBdXRvTGlua05vZGVdKSkge1xuICAgICAgaW52YXJpYW50KGZhbHNlLCAnTGV4aWNhbEF1dG9MaW5rUGx1Z2luOiBBdXRvTGlua05vZGUgbm90IHJlZ2lzdGVyZWQgb24gZWRpdG9yJylcbiAgICB9XG5cbiAgICBjb25zdCBvbkNoYW5nZVdyYXBwZWQgPSAodXJsOiBudWxsIHwgc3RyaW5nLCBwcmV2VXJsOiBudWxsIHwgc3RyaW5nKTogdm9pZCA9PiB7XG4gICAgICBpZiAob25DaGFuZ2UgIT0gbnVsbCkge1xuICAgICAgICBvbkNoYW5nZSh1cmwsIHByZXZVcmwpXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG1lcmdlUmVnaXN0ZXIoXG4gICAgICBlZGl0b3IucmVnaXN0ZXJOb2RlVHJhbnNmb3JtKFRleHROb2RlLCAodGV4dE5vZGU6IFRleHROb2RlKSA9PiB7XG4gICAgICAgIGNvbnN0IHBhcmVudCA9IHRleHROb2RlLmdldFBhcmVudE9yVGhyb3coKVxuICAgICAgICBjb25zdCBwcmV2aW91cyA9IHRleHROb2RlLmdldFByZXZpb3VzU2libGluZygpXG4gICAgICAgIGlmICgkaXNBdXRvTGlua05vZGUocGFyZW50KSkge1xuICAgICAgICAgIGhhbmRsZUxpbmtFZGl0KHBhcmVudCwgbWF0Y2hlcnMsIG9uQ2hhbmdlV3JhcHBlZClcbiAgICAgICAgfSBlbHNlIGlmICghJGlzTGlua05vZGUocGFyZW50KSkge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHRleHROb2RlLmlzU2ltcGxlVGV4dCgpICYmXG4gICAgICAgICAgICAoc3RhcnRzV2l0aFNlcGFyYXRvcih0ZXh0Tm9kZS5nZXRUZXh0Q29udGVudCgpKSB8fCAhJGlzQXV0b0xpbmtOb2RlKHByZXZpb3VzKSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGhhbmRsZUxpbmtDcmVhdGlvbih0ZXh0Tm9kZSwgbWF0Y2hlcnMsIG9uQ2hhbmdlV3JhcHBlZClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBoYW5kbGVCYWROZWlnaGJvcnModGV4dE5vZGUsIG1hdGNoZXJzLCBvbkNoYW5nZVdyYXBwZWQpXG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgIClcbiAgfSwgW2VkaXRvciwgbWF0Y2hlcnMsIG9uQ2hhbmdlXSlcbn1cblxuY29uc3QgVVJMX1JFR0VYID1cbiAgLygoaHR0cHM/OlxcL1xcLyh3d3dcXC4pPyl8KHd3d1xcLikpWy1cXHdAOiUuK34jPV17MSwyNTZ9XFwuW2EtekEtWlxcZCgpXXsxLDZ9XFxiKFstXFx3KClAOiUrLn4jPyYvPV0qKS9cblxuY29uc3QgRU1BSUxfUkVHRVggPVxuICAvKChbXjw+KClbXFxdXFxcXC4sOzpcXHNAXCJdKyhcXC5bXjw+KClbXFxdXFxcXC4sOzpcXHNAXCJdKykqKXwoXCIuK1wiKSlAKChcXFtcXGR7MSwzfVxcLlxcZHsxLDN9XFwuXFxkezEsM31cXC5cXGR7MSwzfVxcXSl8KChbYS16QS1aXFwtXFxkXStcXC4pK1thLXpBLVpdezIsfSkpL1xuXG5jb25zdCBNQVRDSEVSUyA9IFtcbiAgY3JlYXRlTGlua01hdGNoZXJXaXRoUmVnRXhwKFVSTF9SRUdFWCwgKHRleHQpID0+IHtcbiAgICByZXR1cm4gdGV4dC5zdGFydHNXaXRoKCdodHRwJykgPyB0ZXh0IDogYGh0dHBzOi8vJHt0ZXh0fWBcbiAgfSksXG4gIGNyZWF0ZUxpbmtNYXRjaGVyV2l0aFJlZ0V4cChFTUFJTF9SRUdFWCwgKHRleHQpID0+IHtcbiAgICByZXR1cm4gYG1haWx0bzoke3RleHR9YFxuICB9KSxcbl1cblxuZXhwb3J0IGZ1bmN0aW9uIEF1dG9MaW5rUGx1Z2luKCk6IEpTWC5FbGVtZW50IHwgbnVsbCB7XG4gIGNvbnN0IFtlZGl0b3JdID0gdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCgpXG5cbiAgdXNlQXV0b0xpbmsoZWRpdG9yLCBNQVRDSEVSUylcblxuICByZXR1cm4gbnVsbFxufVxuIl0sIm5hbWVzIjpbImNyZWF0ZUxpbmtNYXRjaGVyV2l0aFJlZ0V4cCIsIkF1dG9MaW5rUGx1Z2luIiwicmVnRXhwIiwidXJsVHJhbnNmb3JtZXIiLCJ0ZXh0IiwibWF0Y2giLCJleGVjIiwiaW5kZXgiLCJsZW5ndGgiLCJ1cmwiLCJmaW5kRmlyc3RNYXRjaCIsIm1hdGNoZXJzIiwiaSIsIlBVTkNUVUFUSU9OX09SX1NQQUNFIiwiaXNTZXBhcmF0b3IiLCJjaGFyIiwidGVzdCIsImVuZHNXaXRoU2VwYXJhdG9yIiwidGV4dENvbnRlbnQiLCJzdGFydHNXaXRoU2VwYXJhdG9yIiwiaXNQcmV2aW91c05vZGVWYWxpZCIsIm5vZGUiLCJwcmV2aW91c05vZGUiLCJnZXRQcmV2aW91c1NpYmxpbmciLCIkaXNFbGVtZW50Tm9kZSIsImdldExhc3REZXNjZW5kYW50IiwiJGlzTGluZUJyZWFrTm9kZSIsIiRpc1RleHROb2RlIiwiZ2V0VGV4dENvbnRlbnQiLCJpc05leHROb2RlVmFsaWQiLCJuZXh0Tm9kZSIsImdldE5leHRTaWJsaW5nIiwiZ2V0Rmlyc3REZXNjZW5kYW50IiwiaXNDb250ZW50QXJvdW5kSXNWYWxpZCIsIm1hdGNoU3RhcnQiLCJtYXRjaEVuZCIsImNvbnRlbnRCZWZvcmVJc1ZhbGlkIiwiY29udGVudEFmdGVySXNWYWxpZCIsImhhbmRsZUxpbmtDcmVhdGlvbiIsIm9uQ2hhbmdlIiwibm9kZVRleHQiLCJpbnZhbGlkTWF0Y2hFbmQiLCJyZW1haW5pbmdUZXh0Tm9kZSIsIm1hdGNoTGVuZ3RoIiwiaXNWYWxpZCIsImxpbmtUZXh0Tm9kZSIsInNwbGl0VGV4dCIsImZpZWxkcyIsImxpbmtUeXBlIiwiYXR0cmlidXRlcyIsImxpbmtOb2RlIiwiJGNyZWF0ZUF1dG9MaW5rTm9kZSIsInRleHROb2RlIiwiJGNyZWF0ZVRleHROb2RlIiwic2V0Rm9ybWF0IiwiZ2V0Rm9ybWF0Iiwic2V0RGV0YWlsIiwiZ2V0RGV0YWlsIiwiYXBwZW5kIiwicmVwbGFjZSIsInN1YnN0cmluZyIsImhhbmRsZUxpbmtFZGl0IiwiY2hpbGRyZW4iLCJnZXRDaGlsZHJlbiIsImNoaWxkcmVuTGVuZ3RoIiwiY2hpbGQiLCJpc1NpbXBsZVRleHQiLCJyZXBsYWNlV2l0aENoaWxkcmVuIiwiZ2V0RmllbGRzIiwiZmxkcyIsInNldEZpZWxkcyIsImhhbmRsZUJhZE5laWdoYm9ycyIsInByZXZpb3VzU2libGluZyIsIm5leHRTaWJsaW5nIiwiJGlzQXV0b0xpbmtOb2RlIiwiaiIsImluc2VydEFmdGVyIiwicmVtb3ZlIiwibWFwIiwiZ2V0TGF0ZXN0IiwidXNlQXV0b0xpbmsiLCJlZGl0b3IiLCJ1c2VFZmZlY3QiLCJoYXNOb2RlcyIsIkF1dG9MaW5rTm9kZSIsImludmFyaWFudCIsIm9uQ2hhbmdlV3JhcHBlZCIsInByZXZVcmwiLCJtZXJnZVJlZ2lzdGVyIiwicmVnaXN0ZXJOb2RlVHJhbnNmb3JtIiwiVGV4dE5vZGUiLCJwYXJlbnQiLCJnZXRQYXJlbnRPclRocm93IiwicHJldmlvdXMiLCIkaXNMaW5rTm9kZSIsIlVSTF9SRUdFWCIsIkVNQUlMX1JFR0VYIiwiTUFUQ0hFUlMiLCJzdGFydHNXaXRoIiwidXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztDQU1DOzs7Ozs7Ozs7OztJQXlCZUEsMkJBQTJCO2VBQTNCQTs7SUE2UUFDLGNBQWM7ZUFBZEE7Ozt3Q0FsUzBCO3VC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
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import type { LexicalCommand } from 'lexical';
3
+ import type { LinkFeatureProps } from '../../..';
4
+ import type { LinkPayload } from '../types';
5
+ export declare const TOGGLE_LINK_WITH_MODAL_COMMAND: LexicalCommand<LinkPayload | null>;
6
+ export declare function LinkEditor({ anchorElem, fields: customFieldSchema, }: {
7
+ anchorElem: HTMLElement;
8
+ } & LinkFeatureProps): JSX.Element;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/field/features/Link/plugins/floatingLinkEditor/LinkEditor/index.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AA4B7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAS3C,eAAO,MAAM,8BAA8B,EAAE,cAAc,CAAC,WAAW,GAAG,IAAI,CAE7E,CAAA;AAED,wBAAgB,UAAU,CAAC,EACzB,UAAU,EACV,MAAM,EAAE,iBAAiB,GAC1B,EAAE;IAAE,UAAU,EAAE,WAAW,CAAA;CAAE,GAAG,gBAAgB,GAAG,GAAG,CAAC,OAAO,CA+Q9D"}
@@ -0,0 +1,301 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ TOGGLE_LINK_WITH_MODAL_COMMAND: function() {
13
+ return TOGGLE_LINK_WITH_MODAL_COMMAND;
14
+ },
15
+ LinkEditor: function() {
16
+ return LinkEditor;
17
+ }
18
+ });
19
+ const _modal = require("@faceless-ui/modal");
20
+ const _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
21
+ const _utils = require("@lexical/utils");
22
+ const _lexical = require("lexical");
23
+ const _elements = require("payload/components/elements");
24
+ const _forms = require("payload/components/forms");
25
+ const _utilities = require("payload/components/utilities");
26
+ const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
27
+ const _reacti18next = require("react-i18next");
28
+ const _EditorConfigProvider = require("../../../../../lexical/config/EditorConfigProvider");
29
+ const _getSelectedNode = require("../../../../../lexical/utils/getSelectedNode");
30
+ const _setFloatingElemPositionForLinkEditor = require("../../../../../lexical/utils/setFloatingElemPositionForLinkEditor");
31
+ const _drawer = require("../../../drawer");
32
+ const _LinkNode = require("../../../nodes/LinkNode");
33
+ const _utilities1 = require("../utilities");
34
+ function _getRequireWildcardCache(nodeInterop) {
35
+ if (typeof WeakMap !== "function") return null;
36
+ var cacheBabelInterop = new WeakMap();
37
+ var cacheNodeInterop = new WeakMap();
38
+ return (_getRequireWildcardCache = function(nodeInterop) {
39
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
40
+ })(nodeInterop);
41
+ }
42
+ function _interop_require_wildcard(obj, nodeInterop) {
43
+ if (!nodeInterop && obj && obj.__esModule) {
44
+ return obj;
45
+ }
46
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
47
+ return {
48
+ default: obj
49
+ };
50
+ }
51
+ var cache = _getRequireWildcardCache(nodeInterop);
52
+ if (cache && cache.has(obj)) {
53
+ return cache.get(obj);
54
+ }
55
+ var newObj = {};
56
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
57
+ for(var key in obj){
58
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
59
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
60
+ if (desc && (desc.get || desc.set)) {
61
+ Object.defineProperty(newObj, key, desc);
62
+ } else {
63
+ newObj[key] = obj[key];
64
+ }
65
+ }
66
+ }
67
+ newObj.default = obj;
68
+ if (cache) {
69
+ cache.set(obj, newObj);
70
+ }
71
+ return newObj;
72
+ }
73
+ const TOGGLE_LINK_WITH_MODAL_COMMAND = (0, _lexical.createCommand)('TOGGLE_LINK_WITH_MODAL_COMMAND');
74
+ function LinkEditor({ anchorElem, fields: customFieldSchema }) {
75
+ const [editor] = (0, _LexicalComposerContext.useLexicalComposerContext)();
76
+ const editorRef = (0, _react.useRef)(null);
77
+ const [linkUrl, setLinkUrl] = (0, _react.useState)('');
78
+ const [linkLabel, setLinkLabel] = (0, _react.useState)('');
79
+ const { uuid } = (0, _EditorConfigProvider.useEditorConfigContext)();
80
+ const config = (0, _utilities.useConfig)();
81
+ const { user } = (0, _utilities.useAuth)();
82
+ const { code: locale } = (0, _utilities.useLocale)();
83
+ const { i18n, t } = (0, _reacti18next.useTranslation)([
84
+ 'fields',
85
+ 'upload',
86
+ 'general'
87
+ ]);
88
+ const { getDocPreferences } = (0, _utilities.useDocumentInfo)();
89
+ const [initialState, setInitialState] = (0, _react.useState)({});
90
+ const [fieldSchema] = (0, _react.useState)(()=>{
91
+ const fields = (0, _utilities1.transformExtraFields)(customFieldSchema, config, i18n);
92
+ return fields;
93
+ });
94
+ const { closeModal, toggleModal } = (0, _modal.useModal)();
95
+ const editDepth = (0, _utilities.useEditDepth)();
96
+ const [isLink, setIsLink] = (0, _react.useState)(false);
97
+ const drawerSlug = (0, _elements.formatDrawerSlug)({
98
+ depth: editDepth,
99
+ slug: `lexical-rich-text-link-` + uuid
100
+ });
101
+ const updateLinkEditor = (0, _react.useCallback)(async ()=>{
102
+ const selection = (0, _lexical.$getSelection)();
103
+ let selectedNodeDomRect = null;
104
+ // Handle the data displayed in the floating link editor & drawer when you click on a link node
105
+ if ((0, _lexical.$isRangeSelection)(selection)) {
106
+ const node = (0, _getSelectedNode.getSelectedNode)(selection);
107
+ selectedNodeDomRect = editor.getElementByKey(node.getKey())?.getBoundingClientRect();
108
+ const linkParent = (0, _utils.$findMatchingParent)(node, _LinkNode.$isLinkNode);
109
+ if (linkParent == null) {
110
+ setIsLink(false);
111
+ setLinkUrl('');
112
+ setLinkLabel('');
113
+ return;
114
+ }
115
+ // Initial state:
116
+ const data = {
117
+ fields: {
118
+ doc: undefined,
119
+ linkType: undefined,
120
+ newTab: undefined,
121
+ nofollow: undefined,
122
+ sponsored: undefined,
123
+ url: '',
124
+ ...linkParent.getFields()
125
+ },
126
+ text: linkParent.getTextContent()
127
+ };
128
+ if (linkParent.getFields()?.linkType === 'custom') {
129
+ setLinkUrl(linkParent.getFields()?.url ?? '');
130
+ setLinkLabel('');
131
+ } else {
132
+ // internal link
133
+ setLinkUrl(`/admin/collections/${linkParent.getFields()?.doc?.relationTo}/${linkParent.getFields()?.doc?.value}`);
134
+ setLinkLabel(`relation to ${linkParent.getFields()?.doc?.relationTo}: ${linkParent.getFields()?.doc?.value}`);
135
+ }
136
+ // Set initial state of the drawer. This will basically pre-fill the drawer fields with the
137
+ // values saved in the link node you clicked on.
138
+ const preferences = await getDocPreferences();
139
+ const state = await (0, _utilities.buildStateFromSchema)({
140
+ data,
141
+ fieldSchema,
142
+ locale,
143
+ operation: 'create',
144
+ preferences,
145
+ t,
146
+ user: user ?? undefined
147
+ });
148
+ setInitialState(state);
149
+ setIsLink(true);
150
+ }
151
+ const editorElem = editorRef.current;
152
+ const nativeSelection = window.getSelection();
153
+ const { activeElement } = document;
154
+ if (editorElem === null) {
155
+ return;
156
+ }
157
+ const rootElement = editor.getRootElement();
158
+ if (selection !== null && nativeSelection !== null && rootElement !== null && rootElement.contains(nativeSelection.anchorNode) && editor.isEditable()) {
159
+ if (!selectedNodeDomRect) {
160
+ // Get the DOM rect of the selected node using the native selection. This sometimes produces the wrong
161
+ // result, which is why we use lexical's selection preferably.
162
+ selectedNodeDomRect = nativeSelection.getRangeAt(0).getBoundingClientRect();
163
+ }
164
+ if (selectedNodeDomRect != null) {
165
+ selectedNodeDomRect.y += 40;
166
+ (0, _setFloatingElemPositionForLinkEditor.setFloatingElemPositionForLinkEditor)(selectedNodeDomRect, editorElem, anchorElem);
167
+ }
168
+ } else if (activeElement == null || activeElement.className !== 'link-input') {
169
+ if (rootElement !== null) {
170
+ (0, _setFloatingElemPositionForLinkEditor.setFloatingElemPositionForLinkEditor)(null, editorElem, anchorElem);
171
+ }
172
+ setLinkUrl('');
173
+ setLinkLabel('');
174
+ }
175
+ return true;
176
+ }, [
177
+ anchorElem,
178
+ editor,
179
+ fieldSchema
180
+ ]);
181
+ (0, _react.useEffect)(()=>{
182
+ return (0, _utils.mergeRegister)(editor.registerCommand(TOGGLE_LINK_WITH_MODAL_COMMAND, (payload)=>{
183
+ editor.dispatchCommand(_LinkNode.TOGGLE_LINK_COMMAND, payload);
184
+ // Now, open the modal
185
+ updateLinkEditor().then(()=>{
186
+ toggleModal(drawerSlug);
187
+ }).catch((error)=>{
188
+ throw error;
189
+ });
190
+ return true;
191
+ }, _lexical.COMMAND_PRIORITY_LOW));
192
+ }, [
193
+ editor,
194
+ updateLinkEditor,
195
+ toggleModal,
196
+ drawerSlug
197
+ ]);
198
+ (0, _react.useEffect)(()=>{
199
+ if (!isLink && editorRef) {
200
+ editorRef.current.style.opacity = '0';
201
+ editorRef.current.style.transform = 'translate(-10000px, -10000px)';
202
+ }
203
+ }, [
204
+ isLink
205
+ ]);
206
+ (0, _react.useEffect)(()=>{
207
+ const scrollerElem = anchorElem.parentElement;
208
+ const update = ()=>{
209
+ editor.getEditorState().read(()=>{
210
+ void updateLinkEditor();
211
+ });
212
+ };
213
+ window.addEventListener('resize', update);
214
+ if (scrollerElem != null) {
215
+ scrollerElem.addEventListener('scroll', update);
216
+ }
217
+ return ()=>{
218
+ window.removeEventListener('resize', update);
219
+ if (scrollerElem != null) {
220
+ scrollerElem.removeEventListener('scroll', update);
221
+ }
222
+ };
223
+ }, [
224
+ anchorElem.parentElement,
225
+ editor,
226
+ updateLinkEditor
227
+ ]);
228
+ (0, _react.useEffect)(()=>{
229
+ return (0, _utils.mergeRegister)(editor.registerUpdateListener(({ editorState })=>{
230
+ editorState.read(()=>{
231
+ void updateLinkEditor();
232
+ });
233
+ }), editor.registerCommand(_lexical.SELECTION_CHANGE_COMMAND, ()=>{
234
+ void updateLinkEditor();
235
+ return true;
236
+ }, _lexical.COMMAND_PRIORITY_LOW), editor.registerCommand(_lexical.KEY_ESCAPE_COMMAND, ()=>{
237
+ if (isLink) {
238
+ setIsLink(false);
239
+ return true;
240
+ }
241
+ return false;
242
+ }, _lexical.COMMAND_PRIORITY_HIGH));
243
+ }, [
244
+ editor,
245
+ updateLinkEditor,
246
+ setIsLink,
247
+ isLink
248
+ ]);
249
+ (0, _react.useEffect)(()=>{
250
+ editor.getEditorState().read(()=>{
251
+ void updateLinkEditor();
252
+ });
253
+ }, [
254
+ editor,
255
+ updateLinkEditor
256
+ ]);
257
+ return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement("div", {
258
+ className: "link-editor",
259
+ ref: editorRef
260
+ }, /*#__PURE__*/ _react.default.createElement("div", {
261
+ className: "link-input"
262
+ }, /*#__PURE__*/ _react.default.createElement("a", {
263
+ href: linkUrl,
264
+ rel: "noopener noreferrer",
265
+ target: "_blank"
266
+ }, linkLabel != null && linkLabel.length > 0 ? linkLabel : linkUrl), /*#__PURE__*/ _react.default.createElement("button", {
267
+ "aria-label": "Edit link",
268
+ className: "link-edit",
269
+ onClick: ()=>{
270
+ toggleModal(drawerSlug);
271
+ },
272
+ onMouseDown: (event)=>{
273
+ event.preventDefault();
274
+ },
275
+ tabIndex: 0,
276
+ type: "button"
277
+ }), /*#__PURE__*/ _react.default.createElement("button", {
278
+ "aria-label": "Remove link",
279
+ className: "link-trash",
280
+ onClick: ()=>{
281
+ editor.dispatchCommand(_LinkNode.TOGGLE_LINK_COMMAND, null);
282
+ },
283
+ onMouseDown: (event)=>{
284
+ event.preventDefault();
285
+ },
286
+ tabIndex: 0,
287
+ type: "button"
288
+ }))), /*#__PURE__*/ _react.default.createElement(_drawer.LinkDrawer, {
289
+ drawerSlug: drawerSlug,
290
+ fieldSchema: fieldSchema,
291
+ handleModalSubmit: (fields)=>{
292
+ closeModal(drawerSlug);
293
+ const data = (0, _forms.reduceFieldsToValues)(fields, true);
294
+ const newLinkPayload = data;
295
+ editor.dispatchCommand(_LinkNode.TOGGLE_LINK_COMMAND, newLinkPayload);
296
+ },
297
+ initialState: initialState
298
+ }));
299
+ }
300
+
301
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9MaW5rL3BsdWdpbnMvZmxvYXRpbmdMaW5rRWRpdG9yL0xpbmtFZGl0b3IvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGV4aWNhbENvbW1hbmQgfSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZHMgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyB1c2VNb2RhbCB9IGZyb20gJ0BmYWNlbGVzcy11aS9tb2RhbCdcbmltcG9ydCB7IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQgfSBmcm9tICdAbGV4aWNhbC9yZWFjdC9MZXhpY2FsQ29tcG9zZXJDb250ZXh0J1xuaW1wb3J0IHsgJGZpbmRNYXRjaGluZ1BhcmVudCwgbWVyZ2VSZWdpc3RlciB9IGZyb20gJ0BsZXhpY2FsL3V0aWxzJ1xuaW1wb3J0IHtcbiAgJGdldFNlbGVjdGlvbixcbiAgJGlzUmFuZ2VTZWxlY3Rpb24sXG4gIENPTU1BTkRfUFJJT1JJVFlfSElHSCxcbiAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gIEtFWV9FU0NBUEVfQ09NTUFORCxcbiAgU0VMRUNUSU9OX0NIQU5HRV9DT01NQU5ELFxuICBjcmVhdGVDb21tYW5kLFxufSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHsgZm9ybWF0RHJhd2VyU2x1ZyB9IGZyb20gJ3BheWxvYWQvY29tcG9uZW50cy9lbGVtZW50cydcbmltcG9ydCB7IHJlZHVjZUZpZWxkc1RvVmFsdWVzIH0gZnJvbSAncGF5bG9hZC9jb21wb25lbnRzL2Zvcm1zJ1xuaW1wb3J0IHtcbiAgYnVpbGRTdGF0ZUZyb21TY2hlbWEsXG4gIHVzZUF1dGgsXG4gIHVzZUNvbmZpZyxcbiAgdXNlRG9jdW1lbnRJbmZvLFxuICB1c2VFZGl0RGVwdGgsXG4gIHVzZUxvY2FsZSxcbn0gZnJvbSAncGF5bG9hZC9jb21wb25lbnRzL3V0aWxpdGllcydcbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5cbmltcG9ydCB0eXBlIHsgTGlua0ZlYXR1cmVQcm9wcyB9IGZyb20gJy4uLy4uLy4uJ1xuaW1wb3J0IHR5cGUgeyBMaW5rTm9kZSB9IGZyb20gJy4uLy4uLy4uL25vZGVzL0xpbmtOb2RlJ1xuaW1wb3J0IHR5cGUgeyBMaW5rUGF5bG9hZCB9IGZyb20gJy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyB1c2VFZGl0b3JDb25maWdDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGV4aWNhbC9jb25maWcvRWRpdG9yQ29uZmlnUHJvdmlkZXInXG5pbXBvcnQgeyBnZXRTZWxlY3RlZE5vZGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9sZXhpY2FsL3V0aWxzL2dldFNlbGVjdGVkTm9kZSdcbmltcG9ydCB7IHNldEZsb2F0aW5nRWxlbVBvc2l0aW9uRm9yTGlua0VkaXRvciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xleGljYWwvdXRpbHMvc2V0RmxvYXRpbmdFbGVtUG9zaXRpb25Gb3JMaW5rRWRpdG9yJ1xuaW1wb3J0IHsgTGlua0RyYXdlciB9IGZyb20gJy4uLy4uLy4uL2RyYXdlcidcbmltcG9ydCB7ICRpc0xpbmtOb2RlLCBUT0dHTEVfTElOS19DT01NQU5EIH0gZnJvbSAnLi4vLi4vLi4vbm9kZXMvTGlua05vZGUnXG5pbXBvcnQgeyB0cmFuc2Zvcm1FeHRyYUZpZWxkcyB9IGZyb20gJy4uL3V0aWxpdGllcydcblxuZXhwb3J0IGNvbnN0IFRPR0dMRV9MSU5LX1dJVEhfTU9EQUxfQ09NTUFORDogTGV4aWNhbENvbW1hbmQ8TGlua1BheWxvYWQgfCBudWxsPiA9IGNyZWF0ZUNvbW1hbmQoXG4gICdUT0dHTEVfTElOS19XSVRIX01PREFMX0NPTU1BTkQnLFxuKVxuXG5leHBvcnQgZnVuY3Rpb24gTGlua0VkaXRvcih7XG4gIGFuY2hvckVsZW0sXG4gIGZpZWxkczogY3VzdG9tRmllbGRTY2hlbWEsXG59OiB7IGFuY2hvckVsZW06IEhUTUxFbGVtZW50IH0gJiBMaW5rRmVhdHVyZVByb3BzKTogSlNYLkVsZW1lbnQge1xuICBjb25zdCBbZWRpdG9yXSA9IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQoKVxuXG4gIGNvbnN0IGVkaXRvclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudCB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtsaW5rVXJsLCBzZXRMaW5rVXJsXSA9IHVzZVN0YXRlKCcnKVxuICBjb25zdCBbbGlua0xhYmVsLCBzZXRMaW5rTGFiZWxdID0gdXNlU3RhdGUoJycpXG5cbiAgY29uc3QgeyB1dWlkIH0gPSB1c2VFZGl0b3JDb25maWdDb250ZXh0KClcblxuICBjb25zdCBjb25maWcgPSB1c2VDb25maWcoKVxuXG4gIGNvbnN0IHsgdXNlciB9ID0gdXNlQXV0aCgpXG4gIGNvbnN0IHsgY29kZTogbG9jYWxlIH0gPSB1c2VMb2NhbGUoKVxuICBjb25zdCB7IGkxOG4sIHQgfSA9IHVzZVRyYW5zbGF0aW9uKFsnZmllbGRzJywgJ3VwbG9hZCcsICdnZW5lcmFsJ10pXG5cbiAgY29uc3QgeyBnZXREb2NQcmVmZXJlbmNlcyB9ID0gdXNlRG9jdW1lbnRJbmZvKClcblxuICBjb25zdCBbaW5pdGlhbFN0YXRlLCBzZXRJbml0aWFsU3RhdGVdID0gdXNlU3RhdGU8RmllbGRzPih7fSlcblxuICBjb25zdCBbZmllbGRTY2hlbWFdID0gdXNlU3RhdGUoKCkgPT4ge1xuICAgIGNvbnN0IGZpZWxkcyA9IHRyYW5zZm9ybUV4dHJhRmllbGRzKGN1c3RvbUZpZWxkU2NoZW1hLCBjb25maWcsIGkxOG4pXG5cbiAgICByZXR1cm4gZmllbGRzXG4gIH0pXG5cbiAgY29uc3QgeyBjbG9zZU1vZGFsLCB0b2dnbGVNb2RhbCB9ID0gdXNlTW9kYWwoKVxuICBjb25zdCBlZGl0RGVwdGggPSB1c2VFZGl0RGVwdGgoKVxuICBjb25zdCBbaXNMaW5rLCBzZXRJc0xpbmtdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgY29uc3QgZHJhd2VyU2x1ZyA9IGZvcm1hdERyYXdlclNsdWcoe1xuICAgIGRlcHRoOiBlZGl0RGVwdGgsXG4gICAgc2x1ZzogYGxleGljYWwtcmljaC10ZXh0LWxpbmstYCArIHV1aWQsXG4gIH0pXG5cbiAgY29uc3QgdXBkYXRlTGlua0VkaXRvciA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSAkZ2V0U2VsZWN0aW9uKClcbiAgICBsZXQgc2VsZWN0ZWROb2RlRG9tUmVjdDogRE9NUmVjdCB8IHVuZGVmaW5lZCA9IG51bGxcblxuICAgIC8vIEhhbmRsZSB0aGUgZGF0YSBkaXNwbGF5ZWQgaW4gdGhlIGZsb2F0aW5nIGxpbmsgZWRpdG9yICYgZHJhd2VyIHdoZW4geW91IGNsaWNrIG9uIGEgbGluayBub2RlXG4gICAgaWYgKCRpc1JhbmdlU2VsZWN0aW9uKHNlbGVjdGlvbikpIHtcbiAgICAgIGNvbnN0IG5vZGUgPSBnZXRTZWxlY3RlZE5vZGUoc2VsZWN0aW9uKVxuICAgICAgc2VsZWN0ZWROb2RlRG9tUmVjdCA9IGVkaXRvci5nZXRFbGVtZW50QnlLZXkobm9kZS5nZXRLZXkoKSk/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICBjb25zdCBsaW5rUGFyZW50OiBMaW5rTm9kZSA9ICRmaW5kTWF0Y2hpbmdQYXJlbnQobm9kZSwgJGlzTGlua05vZGUpIGFzIExpbmtOb2RlXG4gICAgICBpZiAobGlua1BhcmVudCA9PSBudWxsKSB7XG4gICAgICAgIHNldElzTGluayhmYWxzZSlcbiAgICAgICAgc2V0TGlua1VybCgnJylcbiAgICAgICAgc2V0TGlua0xhYmVsKCcnKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gSW5pdGlhbCBzdGF0ZTpcbiAgICAgIGNvbnN0IGRhdGE6IExpbmtQYXlsb2FkID0ge1xuICAgICAgICBmaWVsZHM6IHtcbiAgICAgICAgICBkb2M6IHVuZGVmaW5lZCxcbiAgICAgICAgICBsaW5rVHlwZTogdW5kZWZpbmVkLFxuICAgICAgICAgIG5ld1RhYjogdW5kZWZpbmVkLFxuICAgICAgICAgIG5vZm9sbG93OiB1bmRlZmluZWQsXG4gICAgICAgICAgc3BvbnNvcmVkOiB1bmRlZmluZWQsXG4gICAgICAgICAgdXJsOiAnJyxcbiAgICAgICAgICAuLi5saW5rUGFyZW50LmdldEZpZWxkcygpLFxuICAgICAgICB9LFxuICAgICAgICB0ZXh0OiBsaW5rUGFyZW50LmdldFRleHRDb250ZW50KCksXG4gICAgICB9XG5cbiAgICAgIGlmIChsaW5rUGFyZW50LmdldEZpZWxkcygpPy5saW5rVHlwZSA9PT0gJ2N1c3RvbScpIHtcbiAgICAgICAgc2V0TGlua1VybChsaW5rUGFyZW50LmdldEZpZWxkcygpPy51cmwgPz8gJycpXG4gICAgICAgIHNldExpbmtMYWJlbCgnJylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGludGVybmFsIGxpbmtcbiAgICAgICAgc2V0TGlua1VybChcbiAgICAgICAgICBgL2FkbWluL2NvbGxlY3Rpb25zLyR7bGlua1BhcmVudC5nZXRGaWVsZHMoKT8uZG9jPy5yZWxhdGlvblRvfS8ke2xpbmtQYXJlbnQuZ2V0RmllbGRzKClcbiAgICAgICAgICAgID8uZG9jPy52YWx1ZX1gLFxuICAgICAgICApXG4gICAgICAgIHNldExpbmtMYWJlbChcbiAgICAgICAgICBgcmVsYXRpb24gdG8gJHtsaW5rUGFyZW50LmdldEZpZWxkcygpPy5kb2M/LnJlbGF0aW9uVG99OiAke2xpbmtQYXJlbnQuZ2V0RmllbGRzKCk/LmRvY1xuICAgICAgICAgICAgPy52YWx1ZX1gLFxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIC8vIFNldCBpbml0aWFsIHN0YXRlIG9mIHRoZSBkcmF3ZXIuIFRoaXMgd2lsbCBiYXNpY2FsbHkgcHJlLWZpbGwgdGhlIGRyYXdlciBmaWVsZHMgd2l0aCB0aGVcbiAgICAgIC8vIHZhbHVlcyBzYXZlZCBpbiB0aGUgbGluayBub2RlIHlvdSBjbGlja2VkIG9uLlxuICAgICAgY29uc3QgcHJlZmVyZW5jZXMgPSBhd2FpdCBnZXREb2NQcmVmZXJlbmNlcygpXG4gICAgICBjb25zdCBzdGF0ZSA9IGF3YWl0IGJ1aWxkU3RhdGVGcm9tU2NoZW1hKHtcbiAgICAgICAgZGF0YSxcbiAgICAgICAgZmllbGRTY2hlbWEsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgb3BlcmF0aW9uOiAnY3JlYXRlJyxcbiAgICAgICAgcHJlZmVyZW5jZXMsXG4gICAgICAgIHQsXG4gICAgICAgIHVzZXI6IHVzZXIgPz8gdW5kZWZpbmVkLFxuICAgICAgfSlcbiAgICAgIHNldEluaXRpYWxTdGF0ZShzdGF0ZSlcbiAgICAgIHNldElzTGluayh0cnVlKVxuICAgIH1cblxuICAgIGNvbnN0IGVkaXRvckVsZW0gPSBlZGl0b3JSZWYuY3VycmVudFxuICAgIGNvbnN0IG5hdGl2ZVNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKVxuICAgIGNvbnN0IHsgYWN0aXZlRWxlbWVudCB9ID0gZG9jdW1lbnRcblxuICAgIGlmIChlZGl0b3JFbGVtID09PSBudWxsKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCByb290RWxlbWVudCA9IGVkaXRvci5nZXRSb290RWxlbWVudCgpXG5cbiAgICBpZiAoXG4gICAgICBzZWxlY3Rpb24gIT09IG51bGwgJiZcbiAgICAgIG5hdGl2ZVNlbGVjdGlvbiAhPT0gbnVsbCAmJlxuICAgICAgcm9vdEVsZW1lbnQgIT09IG51bGwgJiZcbiAgICAgIHJvb3RFbGVtZW50LmNvbnRhaW5zKG5hdGl2ZVNlbGVjdGlvbi5hbmNob3JOb2RlKSAmJlxuICAgICAgZWRpdG9yLmlzRWRpdGFibGUoKVxuICAgICkge1xuICAgICAgaWYgKCFzZWxlY3RlZE5vZGVEb21SZWN0KSB7XG4gICAgICAgIC8vIEdldCB0aGUgRE9NIHJlY3Qgb2YgdGhlIHNlbGVjdGVkIG5vZGUgdXNpbmcgdGhlIG5hdGl2ZSBzZWxlY3Rpb24uIFRoaXMgc29tZXRpbWVzIHByb2R1Y2VzIHRoZSB3cm9uZ1xuICAgICAgICAvLyByZXN1bHQsIHdoaWNoIGlzIHdoeSB3ZSB1c2UgbGV4aWNhbCdzIHNlbGVjdGlvbiBwcmVmZXJhYmx5LlxuICAgICAgICBzZWxlY3RlZE5vZGVEb21SZWN0ID0gbmF0aXZlU2VsZWN0aW9uLmdldFJhbmdlQXQoMCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgIH1cblxuICAgICAgaWYgKHNlbGVjdGVkTm9kZURvbVJlY3QgIT0gbnVsbCkge1xuICAgICAgICBzZWxlY3RlZE5vZGVEb21SZWN0LnkgKz0gNDBcbiAgICAgICAgc2V0RmxvYXRpbmdFbGVtUG9zaXRpb25Gb3JMaW5rRWRpdG9yKHNlbGVjdGVkTm9kZURvbVJlY3QsIGVkaXRvckVsZW0sIGFuY2hvckVsZW0pXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChhY3RpdmVFbGVtZW50ID09IG51bGwgfHwgYWN0aXZlRWxlbWVudC5jbGFzc05hbWUgIT09ICdsaW5rLWlucHV0Jykge1xuICAgICAgaWYgKHJvb3RFbGVtZW50ICE9PSBudWxsKSB7XG4gICAgICAgIHNldEZsb2F0aW5nRWxlbVBvc2l0aW9uRm9yTGlua0VkaXRvcihudWxsLCBlZGl0b3JFbGVtLCBhbmNob3JFbGVtKVxuICAgICAgfVxuICAgICAgc2V0TGlua1VybCgnJylcbiAgICAgIHNldExpbmtMYWJlbCgnJylcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZVxuICB9LCBbYW5jaG9yRWxlbSwgZWRpdG9yLCBmaWVsZFNjaGVtYV0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gbWVyZ2VSZWdpc3RlcihcbiAgICAgIGVkaXRvci5yZWdpc3RlckNvbW1hbmQoXG4gICAgICAgIFRPR0dMRV9MSU5LX1dJVEhfTU9EQUxfQ09NTUFORCxcbiAgICAgICAgKHBheWxvYWQ6IExpbmtQYXlsb2FkKSA9PiB7XG4gICAgICAgICAgZWRpdG9yLmRpc3BhdGNoQ29tbWFuZChUT0dHTEVfTElOS19DT01NQU5ELCBwYXlsb2FkKVxuXG4gICAgICAgICAgLy8gTm93LCBvcGVuIHRoZSBtb2RhbFxuICAgICAgICAgIHVwZGF0ZUxpbmtFZGl0b3IoKVxuICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICB0b2dnbGVNb2RhbChkcmF3ZXJTbHVnKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgdGhyb3cgZXJyb3JcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gICAgICApLFxuICAgIClcbiAgfSwgW2VkaXRvciwgdXBkYXRlTGlua0VkaXRvciwgdG9nZ2xlTW9kYWwsIGRyYXdlclNsdWddKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpc0xpbmsgJiYgZWRpdG9yUmVmKSB7XG4gICAgICBlZGl0b3JSZWYuY3VycmVudC5zdHlsZS5vcGFjaXR5ID0gJzAnXG4gICAgICBlZGl0b3JSZWYuY3VycmVudC5zdHlsZS50cmFuc2Zvcm0gPSAndHJhbnNsYXRlKC0xMDAwMHB4LCAtMTAwMDBweCknXG4gICAgfVxuICB9LCBbaXNMaW5rXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHNjcm9sbGVyRWxlbSA9IGFuY2hvckVsZW0ucGFyZW50RWxlbWVudFxuXG4gICAgY29uc3QgdXBkYXRlID0gKCk6IHZvaWQgPT4ge1xuICAgICAgZWRpdG9yLmdldEVkaXRvclN0YXRlKCkucmVhZCgoKSA9PiB7XG4gICAgICAgIHZvaWQgdXBkYXRlTGlua0VkaXRvcigpXG4gICAgICB9KVxuICAgIH1cblxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB1cGRhdGUpXG5cbiAgICBpZiAoc2Nyb2xsZXJFbGVtICE9IG51bGwpIHtcbiAgICAgIHNjcm9sbGVyRWxlbS5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB1cGRhdGUpXG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB1cGRhdGUpXG5cbiAgICAgIGlmIChzY3JvbGxlckVsZW0gIT0gbnVsbCkge1xuICAgICAgICBzY3JvbGxlckVsZW0ucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdXBkYXRlKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2FuY2hvckVsZW0ucGFyZW50RWxlbWVudCwgZWRpdG9yLCB1cGRhdGVMaW5rRWRpdG9yXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiBtZXJnZVJlZ2lzdGVyKFxuICAgICAgZWRpdG9yLnJlZ2lzdGVyVXBkYXRlTGlzdGVuZXIoKHsgZWRpdG9yU3RhdGUgfSkgPT4ge1xuICAgICAgICBlZGl0b3JTdGF0ZS5yZWFkKCgpID0+IHtcbiAgICAgICAgICB2b2lkIHVwZGF0ZUxpbmtFZGl0b3IoKVxuICAgICAgICB9KVxuICAgICAgfSksXG5cbiAgICAgIGVkaXRvci5yZWdpc3RlckNvbW1hbmQoXG4gICAgICAgIFNFTEVDVElPTl9DSEFOR0VfQ09NTUFORCxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHZvaWQgdXBkYXRlTGlua0VkaXRvcigpXG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gICAgICApLFxuICAgICAgZWRpdG9yLnJlZ2lzdGVyQ29tbWFuZChcbiAgICAgICAgS0VZX0VTQ0FQRV9DT01NQU5ELFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgaWYgKGlzTGluaykge1xuICAgICAgICAgICAgc2V0SXNMaW5rKGZhbHNlKVxuICAgICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIENPTU1BTkRfUFJJT1JJVFlfSElHSCxcbiAgICAgICksXG4gICAgKVxuICB9LCBbZWRpdG9yLCB1cGRhdGVMaW5rRWRpdG9yLCBzZXRJc0xpbmssIGlzTGlua10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICAgIHZvaWQgdXBkYXRlTGlua0VkaXRvcigpXG4gICAgfSlcbiAgfSwgW2VkaXRvciwgdXBkYXRlTGlua0VkaXRvcl0pXG5cbiAgcmV0dXJuIChcbiAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImxpbmstZWRpdG9yXCIgcmVmPXtlZGl0b3JSZWZ9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxpbmstaW5wdXRcIj5cbiAgICAgICAgICA8YSBocmVmPXtsaW5rVXJsfSByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgICAgICAgICB7bGlua0xhYmVsICE9IG51bGwgJiYgbGlua0xhYmVsLmxlbmd0aCA+IDAgPyBsaW5rTGFiZWwgOiBsaW5rVXJsfVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiRWRpdCBsaW5rXCJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImxpbmstZWRpdFwiXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgIHRvZ2dsZU1vZGFsKGRyYXdlclNsdWcpXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgb25Nb3VzZURvd249eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJSZW1vdmUgbGlua1wiXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJsaW5rLXRyYXNoXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgZWRpdG9yLmRpc3BhdGNoQ29tbWFuZChUT0dHTEVfTElOS19DT01NQU5ELCBudWxsKVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIG9uTW91c2VEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxMaW5rRHJhd2VyXG4gICAgICAgIGRyYXdlclNsdWc9e2RyYXdlclNsdWd9XG4gICAgICAgIGZpZWxkU2NoZW1hPXtmaWVsZFNjaGVtYX1cbiAgICAgICAgaGFuZGxlTW9kYWxTdWJtaXQ9eyhmaWVsZHM6IEZpZWxkcykgPT4ge1xuICAgICAgICAgIGNsb3NlTW9kYWwoZHJhd2VyU2x1ZylcblxuICAgICAgICAgIGNvbnN0IGRhdGEgPSByZWR1Y2VGaWVsZHNUb1ZhbHVlcyhmaWVsZHMsIHRydWUpXG5cbiAgICAgICAgICBjb25zdCBuZXdMaW5rUGF5bG9hZDogTGlua1BheWxvYWQgPSBkYXRhIGFzIExpbmtQYXlsb2FkXG5cbiAgICAgICAgICBlZGl0b3IuZGlzcGF0Y2hDb21tYW5kKFRPR0dMRV9MSU5LX0NPTU1BTkQsIG5ld0xpbmtQYXlsb2FkKVxuICAgICAgICB9fVxuICAgICAgICBpbml0aWFsU3RhdGU9e2luaXRpYWxTdGF0ZX1cbiAgICAgIC8+XG4gICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIlRPR0dMRV9MSU5LX1dJVEhfTU9EQUxfQ09NTUFORCIsIkxpbmtFZGl0b3IiLCJjcmVhdGVDb21tYW5kIiwiYW5jaG9yRWxlbSIsImZpZWxkcyIsImN1c3RvbUZpZWxkU2NoZW1hIiwiZWRpdG9yIiwidXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCIsImVkaXRvclJlZiIsInVzZVJlZiIsImxpbmtVcmwiLCJzZXRMaW5rVXJsIiwidXNlU3RhdGUiLCJsaW5rTGFiZWwiLCJzZXRMaW5rTGFiZWwiLCJ1dWlkIiwidXNlRWRpdG9yQ29uZmlnQ29udGV4dCIsImNvbmZpZyIsInVzZUNvbmZpZyIsInVzZXIiLCJ1c2VBdXRoIiwiY29kZSIsImxvY2FsZSIsInVzZUxvY2FsZSIsImkxOG4iLCJ0IiwidXNlVHJhbnNsYXRpb24iLCJnZXREb2NQcmVmZXJlbmNlcyIsInVzZURvY3VtZW50SW5mbyIsImluaXRpYWxTdGF0ZSIsInNldEluaXRpYWxTdGF0ZSIsImZpZWxkU2NoZW1hIiwidHJhbnNmb3JtRXh0cmFGaWVsZHMiLCJjbG9zZU1vZGFsIiwidG9nZ2xlTW9kYWwiLCJ1c2VNb2RhbCIsImVkaXREZXB0aCIsInVzZUVkaXREZXB0aCIsImlzTGluayIsInNldElzTGluayIsImRyYXdlclNsdWciLCJmb3JtYXREcmF3ZXJTbHVnIiwiZGVwdGgiLCJzbHVnIiwidXBkYXRlTGlua0VkaXRvciIsInVzZUNhbGxiYWNrIiwic2VsZWN0aW9uIiwiJGdldFNlbGVjdGlvbiIsInNlbGVjdGVkTm9kZURvbVJlY3QiLCIkaXNSYW5nZVNlbGVjdGlvbiIsIm5vZGUiLCJnZXRTZWxlY3RlZE5vZGUiLCJnZXRFbGVtZW50QnlLZXkiLCJnZXRLZXkiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJsaW5rUGFyZW50IiwiJGZpbmRNYXRjaGluZ1BhcmVudCIsIiRpc0xpbmtOb2RlIiwiZGF0YSIsImRvYyIsInVuZGVmaW5lZCIsImxpbmtUeXBlIiwibmV3VGFiIiwibm9mb2xsb3ciLCJzcG9uc29yZWQiLCJ1cmwiLCJnZXRGaWVsZHMiLCJ0ZXh0IiwiZ2V0VGV4dENvbnRlbnQiLCJyZWxhdGlvblRvIiwidmFsdWUiLCJwcmVmZXJlbmNlcyIsInN0YXRlIiwiYnVpbGRTdGF0ZUZyb21TY2hlbWEiLCJvcGVyYXRpb24iLCJlZGl0b3JFbGVtIiwiY3VycmVudCIsIm5hdGl2ZVNlbGVjdGlvbiIsIndpbmRvdyIsImdldFNlbGVjdGlvbiIsImFjdGl2ZUVsZW1lbnQiLCJkb2N1bWVudCIsInJvb3RFbGVtZW50IiwiZ2V0Um9vdEVsZW1lbnQiLCJjb250YWlucyIsImFuY2hvck5vZGUiLCJpc0VkaXRhYmxlIiwiZ2V0UmFuZ2VBdCIsInkiLCJzZXRGbG9hdGluZ0VsZW1Qb3NpdGlvbkZvckxpbmtFZGl0b3IiLCJjbGFzc05hbWUiLCJ1c2VFZmZlY3QiLCJtZXJnZVJlZ2lzdGVyIiwicmVnaXN0ZXJDb21tYW5kIiwicGF5bG9hZCIsImRpc3BhdGNoQ29tbWFuZCIsIlRPR0dMRV9MSU5LX0NPTU1BTkQiLCJ0aGVuIiwiY2F0Y2giLCJlcnJvciIsIkNPTU1BTkRfUFJJT1JJVFlfTE9XIiwic3R5bGUiLCJvcGFjaXR5IiwidHJhbnNmb3JtIiwic2Nyb2xsZXJFbGVtIiwicGFyZW50RWxlbWVudCIsInVwZGF0ZSIsImdldEVkaXRvclN0YXRlIiwicmVhZCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwicmVnaXN0ZXJVcGRhdGVMaXN0ZW5lciIsImVkaXRvclN0YXRlIiwiU0VMRUNUSU9OX0NIQU5HRV9DT01NQU5EIiwiS0VZX0VTQ0FQRV9DT01NQU5EIiwiQ09NTUFORF9QUklPUklUWV9ISUdIIiwiUmVhY3QiLCJGcmFnbWVudCIsImRpdiIsInJlZiIsImEiLCJocmVmIiwicmVsIiwidGFyZ2V0IiwibGVuZ3RoIiwiYnV0dG9uIiwiYXJpYS1sYWJlbCIsIm9uQ2xpY2siLCJvbk1vdXNlRG93biIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJ0YWJJbmRleCIsInR5cGUiLCJMaW5rRHJhd2VyIiwiaGFuZGxlTW9kYWxTdWJtaXQiLCJyZWR1Y2VG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
@@ -0,0 +1,7 @@
1
+ import * as React from 'react';
2
+ import type { LinkFeatureProps } from '../..';
3
+ import './index.scss';
4
+ export declare const FloatingLinkEditorPlugin: React.FC<{
5
+ anchorElem?: HTMLElement;
6
+ } & LinkFeatureProps>;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/field/features/Link/plugins/floatingLinkEditor/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;AAG7C,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,EAAE,CAC7C;IACE,UAAU,CAAC,EAAE,WAAW,CAAA;CACzB,GAAG,gBAAgB,CAGrB,CAAA"}