@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,368 @@
1
+ /** @module @lexical/link */ /**
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
+ LinkNode: function() {
19
+ return LinkNode;
20
+ },
21
+ $createLinkNode: function() {
22
+ return $createLinkNode;
23
+ },
24
+ $isLinkNode: function() {
25
+ return $isLinkNode;
26
+ },
27
+ TOGGLE_LINK_COMMAND: function() {
28
+ return TOGGLE_LINK_COMMAND;
29
+ },
30
+ toggleLink: function() {
31
+ return toggleLink;
32
+ }
33
+ });
34
+ const _utils = require("@lexical/utils");
35
+ const _lexical = require("lexical");
36
+ const SUPPORTED_URL_PROTOCOLS = new Set([
37
+ 'http:',
38
+ 'https:',
39
+ 'mailto:',
40
+ 'sms:',
41
+ 'tel:'
42
+ ]);
43
+ class LinkNode extends _lexical.ElementNode {
44
+ __fields;
45
+ constructor({ fields = {
46
+ doc: null,
47
+ linkType: 'custom',
48
+ newTab: false,
49
+ url: undefined
50
+ }, key }){
51
+ super(key);
52
+ this.__fields = fields;
53
+ }
54
+ static clone(node) {
55
+ return new LinkNode({
56
+ fields: node.__fields,
57
+ key: node.__key
58
+ });
59
+ }
60
+ static getType() {
61
+ return 'link';
62
+ }
63
+ static importDOM() {
64
+ return {
65
+ a: (node)=>({
66
+ conversion: convertAnchorElement,
67
+ priority: 1
68
+ })
69
+ };
70
+ }
71
+ static importJSON(serializedNode) {
72
+ const node = $createLinkNode({
73
+ fields: serializedNode.fields
74
+ });
75
+ node.setFormat(serializedNode.format);
76
+ node.setIndent(serializedNode.indent);
77
+ node.setDirection(serializedNode.direction);
78
+ return node;
79
+ }
80
+ canBeEmpty() {
81
+ return false;
82
+ }
83
+ canInsertTextAfter() {
84
+ return false;
85
+ }
86
+ canInsertTextBefore() {
87
+ return false;
88
+ }
89
+ createDOM(config) {
90
+ const element = document.createElement('a');
91
+ if (this.__fields?.linkType === 'custom') {
92
+ element.href = this.sanitizeUrl(this.__fields.url ?? '');
93
+ }
94
+ if (this.__fields?.newTab ?? false) {
95
+ element.target = '_blank';
96
+ }
97
+ element.rel = '';
98
+ if (this.__fields?.newTab === true && this.__fields?.linkType === 'custom') {
99
+ element.rel = manageRel(element.rel, 'add', 'noopener');
100
+ }
101
+ if (this.__fields?.sponsored ?? false) {
102
+ element.rel = manageRel(element.rel, 'add', 'sponsored');
103
+ }
104
+ if (this.__fields?.nofollow ?? false) {
105
+ element.rel = manageRel(element.rel, 'add', 'nofollow');
106
+ }
107
+ if (this.__fields?.rel !== null) {
108
+ element.rel += ` ${this.__rel}`;
109
+ }
110
+ (0, _utils.addClassNamesToElement)(element, config.theme.link);
111
+ return element;
112
+ }
113
+ exportJSON() {
114
+ return {
115
+ ...super.exportJSON(),
116
+ fields: this.getFields(),
117
+ type: this.getType(),
118
+ version: 1
119
+ };
120
+ }
121
+ extractWithChild(child, selection, destination) {
122
+ if (!(0, _lexical.$isRangeSelection)(selection)) {
123
+ return false;
124
+ }
125
+ const anchorNode = selection.anchor.getNode();
126
+ const focusNode = selection.focus.getNode();
127
+ return this.isParentOf(anchorNode) && this.isParentOf(focusNode) && selection.getTextContent().length > 0;
128
+ }
129
+ getFields() {
130
+ return this.getLatest().__fields;
131
+ }
132
+ insertNewAfter(selection, restoreSelection = true) {
133
+ const element = this.getParentOrThrow().insertNewAfter(selection, restoreSelection);
134
+ if ((0, _lexical.$isElementNode)(element)) {
135
+ const linkNode = $createLinkNode({
136
+ fields: this.__fields
137
+ });
138
+ element.append(linkNode);
139
+ return linkNode;
140
+ }
141
+ return null;
142
+ }
143
+ isInline() {
144
+ return true;
145
+ }
146
+ sanitizeUrl(url) {
147
+ try {
148
+ const parsedUrl = new URL(url);
149
+ // eslint-disable-next-line no-script-url
150
+ if (!SUPPORTED_URL_PROTOCOLS.has(parsedUrl.protocol)) {
151
+ return 'about:blank';
152
+ }
153
+ } catch (e) {
154
+ return 'https://';
155
+ }
156
+ return url;
157
+ }
158
+ setFields(fields) {
159
+ const writable = this.getWritable();
160
+ writable.__fields = fields;
161
+ }
162
+ updateDOM(prevNode, anchor, config) {
163
+ const url = this.__fields?.url;
164
+ const newTab = this.__fields?.newTab;
165
+ const sponsored = this.__fields?.sponsored;
166
+ const nofollow = this.__fields?.nofollow;
167
+ const rel = this.__fields?.rel;
168
+ if (url != null && url !== prevNode.__fields?.url && this.__fields?.linkType === 'custom') {
169
+ anchor.href = url;
170
+ }
171
+ if (this.__fields?.linkType === 'internal' && prevNode.__fields?.linkType === 'custom') {
172
+ anchor.removeAttribute('href');
173
+ }
174
+ // TODO: not 100% sure why we're settign rel to '' - revisit
175
+ // Start rel config here, then check newTab below
176
+ if (anchor.rel == null) {
177
+ anchor.rel = '';
178
+ }
179
+ if (newTab !== prevNode.__fields?.newTab) {
180
+ if (newTab ?? false) {
181
+ anchor.target = '_blank';
182
+ if (this.__fields?.linkType === 'custom') {
183
+ anchor.rel = manageRel(anchor.rel, 'add', 'noopener');
184
+ }
185
+ } else {
186
+ anchor.removeAttribute('target');
187
+ anchor.rel = manageRel(anchor.rel, 'remove', 'noopener');
188
+ }
189
+ }
190
+ if (nofollow !== prevNode.__fields.nofollow) {
191
+ if (nofollow ?? false) {
192
+ anchor.rel = manageRel(anchor.rel, 'add', 'nofollow');
193
+ } else {
194
+ anchor.rel = manageRel(anchor.rel, 'remove', 'nofollow');
195
+ }
196
+ }
197
+ if (sponsored !== prevNode.__fields.sponsored) {
198
+ if (sponsored ?? false) {
199
+ anchor.rel = manageRel(anchor.rel, 'add', 'sponsored');
200
+ } else {
201
+ anchor.rel = manageRel(anchor.rel, 'remove', 'sponsored');
202
+ }
203
+ }
204
+ // TODO - revisit - I don't think there can be any other rel
205
+ // values other than nofollow and noopener - so not
206
+ // sure why anchor.rel += rel below
207
+ if (rel !== prevNode.__fields.rel) {
208
+ if (rel != null) {
209
+ anchor.rel += rel;
210
+ } else {
211
+ anchor.removeAttribute('rel');
212
+ }
213
+ }
214
+ return false;
215
+ }
216
+ }
217
+ function convertAnchorElement(domNode) {
218
+ let node = null;
219
+ if ((0, _utils.isHTMLAnchorElement)(domNode)) {
220
+ const content = domNode.textContent;
221
+ if (content !== null && content !== '') {
222
+ node = $createLinkNode({
223
+ fields: {
224
+ doc: null,
225
+ linkType: 'custom',
226
+ newTab: domNode.getAttribute('target') === '_blank',
227
+ nofollow: domNode.getAttribute('rel')?.includes('nofollow') ?? false,
228
+ rel: domNode.getAttribute('rel'),
229
+ sponsored: domNode.getAttribute('rel')?.includes('sponsored') ?? false,
230
+ url: domNode.getAttribute('href') ?? ''
231
+ }
232
+ });
233
+ }
234
+ }
235
+ return {
236
+ node
237
+ };
238
+ }
239
+ function $createLinkNode({ fields }) {
240
+ return (0, _lexical.$applyNodeReplacement)(new LinkNode({
241
+ fields
242
+ }));
243
+ }
244
+ function $isLinkNode(node) {
245
+ return node instanceof LinkNode;
246
+ }
247
+ const TOGGLE_LINK_COMMAND = (0, _lexical.createCommand)('TOGGLE_LINK_COMMAND');
248
+ function toggleLink(payload) {
249
+ const selection = (0, _lexical.$getSelection)();
250
+ if (!(0, _lexical.$isRangeSelection)(selection)) {
251
+ return;
252
+ }
253
+ const nodes = selection.extract();
254
+ if (payload === null) {
255
+ // Remove LinkNodes
256
+ nodes.forEach((node)=>{
257
+ const parent = node.getParent();
258
+ if ($isLinkNode(parent)) {
259
+ const children = parent.getChildren();
260
+ for(let i = 0; i < children.length; i += 1){
261
+ parent.insertBefore(children[i]);
262
+ }
263
+ parent.remove();
264
+ }
265
+ });
266
+ } else {
267
+ // Add or merge LinkNodes
268
+ if (nodes.length === 1) {
269
+ const firstNode = nodes[0];
270
+ // if the first node is a LinkNode or if its
271
+ // parent is a LinkNode, we update the URL, target and rel.
272
+ const linkNode = $isLinkNode(firstNode) ? firstNode : $getLinkAncestor(firstNode);
273
+ if (linkNode !== null) {
274
+ linkNode.setFields(payload.fields);
275
+ if (payload.text != null && payload.text !== linkNode.getTextContent()) {
276
+ // remove all children and add child with new textcontent:
277
+ linkNode.append((0, _lexical.$createTextNode)(payload.text));
278
+ linkNode.getChildren().forEach((child)=>{
279
+ if (child !== linkNode.getLastChild()) {
280
+ child.remove();
281
+ }
282
+ });
283
+ }
284
+ return;
285
+ }
286
+ }
287
+ let prevParent = null;
288
+ let linkNode = null;
289
+ nodes.forEach((node)=>{
290
+ const parent = node.getParent();
291
+ if (parent === linkNode || parent === null || (0, _lexical.$isElementNode)(node) && !node.isInline()) {
292
+ return;
293
+ }
294
+ if ($isLinkNode(parent)) {
295
+ linkNode = parent;
296
+ parent.setFields(payload.fields);
297
+ if (payload.text != null && payload.text !== parent.getTextContent()) {
298
+ // remove all children and add child with new textcontent:
299
+ parent.append((0, _lexical.$createTextNode)(payload.text));
300
+ parent.getChildren().forEach((child)=>{
301
+ if (child !== parent.getLastChild()) {
302
+ child.remove();
303
+ }
304
+ });
305
+ }
306
+ return;
307
+ }
308
+ if (!parent.is(prevParent)) {
309
+ prevParent = parent;
310
+ linkNode = $createLinkNode({
311
+ fields: payload.fields
312
+ });
313
+ if ($isLinkNode(parent)) {
314
+ if (node.getPreviousSibling() === null) {
315
+ parent.insertBefore(linkNode);
316
+ } else {
317
+ parent.insertAfter(linkNode);
318
+ }
319
+ } else {
320
+ node.insertBefore(linkNode);
321
+ }
322
+ }
323
+ if ($isLinkNode(node)) {
324
+ if (node.is(linkNode)) {
325
+ return;
326
+ }
327
+ if (linkNode !== null) {
328
+ const children = node.getChildren();
329
+ for(let i = 0; i < children.length; i += 1){
330
+ linkNode.append(children[i]);
331
+ }
332
+ }
333
+ node.remove();
334
+ return;
335
+ }
336
+ if (linkNode !== null) {
337
+ linkNode.append(node);
338
+ }
339
+ });
340
+ }
341
+ }
342
+ function $getLinkAncestor(node) {
343
+ return $getAncestor(node, (ancestor)=>$isLinkNode(ancestor));
344
+ }
345
+ function $getAncestor(node, predicate) {
346
+ let parent = node;
347
+ while(parent !== null && (parent = parent.getParent()) !== null && !predicate(parent));
348
+ return parent;
349
+ }
350
+ function manageRel(input, action, value) {
351
+ let result;
352
+ let mutableInput = `${input}`;
353
+ if (action === 'add') {
354
+ // if we somehow got out of sync - clean up
355
+ if (mutableInput.includes(value)) {
356
+ const re = new RegExp(value, 'g');
357
+ mutableInput = mutableInput.replace(re, '').trim();
358
+ }
359
+ mutableInput = mutableInput.trim();
360
+ result = mutableInput.length === 0 ? `${value}` : `${mutableInput} ${value}`;
361
+ } else {
362
+ const re = new RegExp(value, 'g');
363
+ result = mutableInput.replace(re, '').trim();
364
+ }
365
+ return result;
366
+ }
367
+
368
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9MaW5rL25vZGVzL0xpbmtOb2RlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQG1vZHVsZSBAbGV4aWNhbC9saW5rICovXG4vKipcbiAqIENvcHlyaWdodCAoYykgTWV0YSBQbGF0Zm9ybXMsIEluYy4gYW5kIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKlxuICovXG5cbmltcG9ydCB7IGFkZENsYXNzTmFtZXNUb0VsZW1lbnQsIGlzSFRNTEFuY2hvckVsZW1lbnQgfSBmcm9tICdAbGV4aWNhbC91dGlscydcbmltcG9ydCB7XG4gICRhcHBseU5vZGVSZXBsYWNlbWVudCxcbiAgJGNyZWF0ZVRleHROb2RlLFxuICAkZ2V0U2VsZWN0aW9uLFxuICAkaXNFbGVtZW50Tm9kZSxcbiAgJGlzUmFuZ2VTZWxlY3Rpb24sXG4gIHR5cGUgRE9NQ29udmVyc2lvbk1hcCxcbiAgdHlwZSBET01Db252ZXJzaW9uT3V0cHV0LFxuICB0eXBlIEVkaXRvckNvbmZpZyxcbiAgRWxlbWVudE5vZGUsXG4gIHR5cGUgR3JpZFNlbGVjdGlvbixcbiAgdHlwZSBMZXhpY2FsQ29tbWFuZCxcbiAgdHlwZSBMZXhpY2FsTm9kZSxcbiAgdHlwZSBOb2RlS2V5LFxuICB0eXBlIE5vZGVTZWxlY3Rpb24sXG4gIHR5cGUgUmFuZ2VTZWxlY3Rpb24sXG4gIHR5cGUgU2VyaWFsaXplZEVsZW1lbnROb2RlLFxuICB0eXBlIFNwcmVhZCxcbiAgY3JlYXRlQ29tbWFuZCxcbn0gZnJvbSAnbGV4aWNhbCdcblxuaW1wb3J0IHR5cGUgeyBMaW5rUGF5bG9hZCB9IGZyb20gJy4uL3BsdWdpbnMvZmxvYXRpbmdMaW5rRWRpdG9yL3R5cGVzJ1xuXG5leHBvcnQgdHlwZSBMaW5rRmllbGRzID0ge1xuICAvLyB1bmtub3duLCBjdXN0b20gZmllbGRzOlxuICBba2V5OiBzdHJpbmddOiB1bmtub3duXG4gIGRvYzoge1xuICAgIGRhdGE/OiBhbnkgLy8gV2lsbCBiZSBwb3B1bGF0ZWQgaW4gYWZ0ZXJSZWFkIGhvb2tcbiAgICByZWxhdGlvblRvOiBzdHJpbmdcbiAgICB2YWx1ZTogc3RyaW5nXG4gIH0gfCBudWxsXG4gIGxpbmtUeXBlOiAnY3VzdG9tJyB8ICdpbnRlcm5hbCdcbiAgbmV3VGFiOiBib29sZWFuXG4gIHVybDogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIFNlcmlhbGl6ZWRMaW5rTm9kZSA9IFNwcmVhZDxcbiAge1xuICAgIGZpZWxkczogTGlua0ZpZWxkc1xuICB9LFxuICBTZXJpYWxpemVkRWxlbWVudE5vZGVcbj5cblxuY29uc3QgU1VQUE9SVEVEX1VSTF9QUk9UT0NPTFMgPSBuZXcgU2V0KFsnaHR0cDonLCAnaHR0cHM6JywgJ21haWx0bzonLCAnc21zOicsICd0ZWw6J10pXG5cbi8qKiBAbm9Jbmhlcml0RG9jICovXG5leHBvcnQgY2xhc3MgTGlua05vZGUgZXh0ZW5kcyBFbGVtZW50Tm9kZSB7XG4gIF9fZmllbGRzOiBMaW5rRmllbGRzXG5cbiAgY29uc3RydWN0b3Ioe1xuICAgIGZpZWxkcyA9IHtcbiAgICAgIGRvYzogbnVsbCxcbiAgICAgIGxpbmtUeXBlOiAnY3VzdG9tJyxcbiAgICAgIG5ld1RhYjogZmFsc2UsXG4gICAgICB1cmw6IHVuZGVmaW5lZCxcbiAgICB9LFxuICAgIGtleSxcbiAgfToge1xuICAgIGZpZWxkczogTGlua0ZpZWxkc1xuICAgIGtleT86IE5vZGVLZXlcbiAgfSkge1xuICAgIHN1cGVyKGtleSlcbiAgICB0aGlzLl9fZmllbGRzID0gZmllbGRzXG4gIH1cblxuICBzdGF0aWMgY2xvbmUobm9kZTogTGlua05vZGUpOiBMaW5rTm9kZSB7XG4gICAgcmV0dXJuIG5ldyBMaW5rTm9kZSh7XG4gICAgICBmaWVsZHM6IG5vZGUuX19maWVsZHMsXG4gICAgICBrZXk6IG5vZGUuX19rZXksXG4gICAgfSlcbiAgfVxuXG4gIHN0YXRpYyBnZXRUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdsaW5rJ1xuICB9XG5cbiAgc3RhdGljIGltcG9ydERPTSgpOiBET01Db252ZXJzaW9uTWFwIHwgbnVsbCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGE6IChub2RlOiBOb2RlKSA9PiAoe1xuICAgICAgICBjb252ZXJzaW9uOiBjb252ZXJ0QW5jaG9yRWxlbWVudCxcbiAgICAgICAgcHJpb3JpdHk6IDEsXG4gICAgICB9KSxcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgaW1wb3J0SlNPTihzZXJpYWxpemVkTm9kZTogU2VyaWFsaXplZExpbmtOb2RlKTogTGlua05vZGUge1xuICAgIGNvbnN0IG5vZGUgPSAkY3JlYXRlTGlua05vZGUoe1xuICAgICAgZmllbGRzOiBzZXJpYWxpemVkTm9kZS5maWVsZHMsXG4gICAgfSlcbiAgICBub2RlLnNldEZvcm1hdChzZXJpYWxpemVkTm9kZS5mb3JtYXQpXG4gICAgbm9kZS5zZXRJbmRlbnQoc2VyaWFsaXplZE5vZGUuaW5kZW50KVxuICAgIG5vZGUuc2V0RGlyZWN0aW9uKHNlcmlhbGl6ZWROb2RlLmRpcmVjdGlvbilcbiAgICByZXR1cm4gbm9kZVxuICB9XG5cbiAgY2FuQmVFbXB0eSgpOiBmYWxzZSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBjYW5JbnNlcnRUZXh0QWZ0ZXIoKTogZmFsc2Uge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgY2FuSW5zZXJ0VGV4dEJlZm9yZSgpOiBmYWxzZSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBjcmVhdGVET00oY29uZmlnOiBFZGl0b3JDb25maWcpOiBIVE1MQW5jaG9yRWxlbWVudCB7XG4gICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKVxuICAgIGlmICh0aGlzLl9fZmllbGRzPy5saW5rVHlwZSA9PT0gJ2N1c3RvbScpIHtcbiAgICAgIGVsZW1lbnQuaHJlZiA9IHRoaXMuc2FuaXRpemVVcmwodGhpcy5fX2ZpZWxkcy51cmwgPz8gJycpXG4gICAgfVxuICAgIGlmICh0aGlzLl9fZmllbGRzPy5uZXdUYWIgPz8gZmFsc2UpIHtcbiAgICAgIGVsZW1lbnQudGFyZ2V0ID0gJ19ibGFuaydcbiAgICB9XG5cbiAgICBlbGVtZW50LnJlbCA9ICcnXG5cbiAgICBpZiAodGhpcy5fX2ZpZWxkcz8ubmV3VGFiID09PSB0cnVlICYmIHRoaXMuX19maWVsZHM/LmxpbmtUeXBlID09PSAnY3VzdG9tJykge1xuICAgICAgZWxlbWVudC5yZWwgPSBtYW5hZ2VSZWwoZWxlbWVudC5yZWwsICdhZGQnLCAnbm9vcGVuZXInKVxuICAgIH1cblxuICAgIGlmICh0aGlzLl9fZmllbGRzPy5zcG9uc29yZWQgPz8gZmFsc2UpIHtcbiAgICAgIGVsZW1lbnQucmVsID0gbWFuYWdlUmVsKGVsZW1lbnQucmVsLCAnYWRkJywgJ3Nwb25zb3JlZCcpXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX19maWVsZHM/Lm5vZm9sbG93ID8/IGZhbHNlKSB7XG4gICAgICBlbGVtZW50LnJlbCA9IG1hbmFnZVJlbChlbGVtZW50LnJlbCwgJ2FkZCcsICdub2ZvbGxvdycpXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX19maWVsZHM/LnJlbCAhPT0gbnVsbCkge1xuICAgICAgZWxlbWVudC5yZWwgKz0gYCAke3RoaXMuX19yZWx9YFxuICAgIH1cbiAgICBhZGRDbGFzc05hbWVzVG9FbGVtZW50KGVsZW1lbnQsIGNvbmZpZy50aGVtZS5saW5rKVxuICAgIHJldHVybiBlbGVtZW50XG4gIH1cblxuICBleHBvcnRKU09OKCk6IFNlcmlhbGl6ZWRMaW5rTm9kZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN1cGVyLmV4cG9ydEpTT04oKSxcbiAgICAgIGZpZWxkczogdGhpcy5nZXRGaWVsZHMoKSxcbiAgICAgIHR5cGU6IHRoaXMuZ2V0VHlwZSgpLFxuICAgICAgdmVyc2lvbjogMSxcbiAgICB9XG4gIH1cblxuICBleHRyYWN0V2l0aENoaWxkKFxuICAgIGNoaWxkOiBMZXhpY2FsTm9kZSxcbiAgICBzZWxlY3Rpb246IEdyaWRTZWxlY3Rpb24gfCBOb2RlU2VsZWN0aW9uIHwgUmFuZ2VTZWxlY3Rpb24sXG4gICAgZGVzdGluYXRpb246ICdjbG9uZScgfCAnaHRtbCcsXG4gICk6IGJvb2xlYW4ge1xuICAgIGlmICghJGlzUmFuZ2VTZWxlY3Rpb24oc2VsZWN0aW9uKSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgY29uc3QgYW5jaG9yTm9kZSA9IHNlbGVjdGlvbi5hbmNob3IuZ2V0Tm9kZSgpXG4gICAgY29uc3QgZm9jdXNOb2RlID0gc2VsZWN0aW9uLmZvY3VzLmdldE5vZGUoKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuaXNQYXJlbnRPZihhbmNob3JOb2RlKSAmJlxuICAgICAgdGhpcy5pc1BhcmVudE9mKGZvY3VzTm9kZSkgJiZcbiAgICAgIHNlbGVjdGlvbi5nZXRUZXh0Q29udGVudCgpLmxlbmd0aCA+IDBcbiAgICApXG4gIH1cblxuICBnZXRGaWVsZHMoKTogTGlua0ZpZWxkcyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TGF0ZXN0KCkuX19maWVsZHNcbiAgfVxuXG4gIGluc2VydE5ld0FmdGVyKHNlbGVjdGlvbjogUmFuZ2VTZWxlY3Rpb24sIHJlc3RvcmVTZWxlY3Rpb24gPSB0cnVlKTogRWxlbWVudE5vZGUgfCBudWxsIHtcbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5nZXRQYXJlbnRPclRocm93KCkuaW5zZXJ0TmV3QWZ0ZXIoc2VsZWN0aW9uLCByZXN0b3JlU2VsZWN0aW9uKVxuICAgIGlmICgkaXNFbGVtZW50Tm9kZShlbGVtZW50KSkge1xuICAgICAgY29uc3QgbGlua05vZGUgPSAkY3JlYXRlTGlua05vZGUoeyBmaWVsZHM6IHRoaXMuX19maWVsZHMgfSlcbiAgICAgIGVsZW1lbnQuYXBwZW5kKGxpbmtOb2RlKVxuICAgICAgcmV0dXJuIGxpbmtOb2RlXG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBpc0lubGluZSgpOiB0cnVlIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgc2FuaXRpemVVcmwodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBwYXJzZWRVcmwgPSBuZXcgVVJMKHVybClcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zY3JpcHQtdXJsXG4gICAgICBpZiAoIVNVUFBPUlRFRF9VUkxfUFJPVE9DT0xTLmhhcyhwYXJzZWRVcmwucHJvdG9jb2wpKSB7XG4gICAgICAgIHJldHVybiAnYWJvdXQ6YmxhbmsnXG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuICdodHRwczovLydcbiAgICB9XG4gICAgcmV0dXJuIHVybFxuICB9XG5cbiAgc2V0RmllbGRzKGZpZWxkczogTGlua0ZpZWxkcyk6IHZvaWQge1xuICAgIGNvbnN0IHdyaXRhYmxlID0gdGhpcy5nZXRXcml0YWJsZSgpXG4gICAgd3JpdGFibGUuX19maWVsZHMgPSBmaWVsZHNcbiAgfVxuXG4gIHVwZGF0ZURPTShwcmV2Tm9kZTogTGlua05vZGUsIGFuY2hvcjogSFRNTEFuY2hvckVsZW1lbnQsIGNvbmZpZzogRWRpdG9yQ29uZmlnKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5fX2ZpZWxkcz8udXJsXG4gICAgY29uc3QgbmV3VGFiID0gdGhpcy5fX2ZpZWxkcz8ubmV3VGFiXG4gICAgY29uc3Qgc3BvbnNvcmVkID0gdGhpcy5fX2ZpZWxkcz8uc3BvbnNvcmVkXG4gICAgY29uc3Qgbm9mb2xsb3cgPSB0aGlzLl9fZmllbGRzPy5ub2ZvbGxvd1xuICAgIGNvbnN0IHJlbCA9IHRoaXMuX19maWVsZHM/LnJlbFxuICAgIGlmICh1cmwgIT0gbnVsbCAmJiB1cmwgIT09IHByZXZOb2RlLl9fZmllbGRzPy51cmwgJiYgdGhpcy5fX2ZpZWxkcz8ubGlua1R5cGUgPT09ICdjdXN0b20nKSB7XG4gICAgICBhbmNob3IuaHJlZiA9IHVybFxuICAgIH1cbiAgICBpZiAodGhpcy5fX2ZpZWxkcz8ubGlua1R5cGUgPT09ICdpbnRlcm5hbCcgJiYgcHJldk5vZGUuX19maWVsZHM/LmxpbmtUeXBlID09PSAnY3VzdG9tJykge1xuICAgICAgYW5jaG9yLnJlbW92ZUF0dHJpYnV0ZSgnaHJlZicpXG4gICAgfVxuXG4gICAgLy8gVE9ETzogbm90IDEwMCUgc3VyZSB3aHkgd2UncmUgc2V0dGlnbiByZWwgdG8gJycgLSByZXZpc2l0XG4gICAgLy8gU3RhcnQgcmVsIGNvbmZpZyBoZXJlLCB0aGVuIGNoZWNrIG5ld1RhYiBiZWxvd1xuICAgIGlmIChhbmNob3IucmVsID09IG51bGwpIHtcbiAgICAgIGFuY2hvci5yZWwgPSAnJ1xuICAgIH1cblxuICAgIGlmIChuZXdUYWIgIT09IHByZXZOb2RlLl9fZmllbGRzPy5uZXdUYWIpIHtcbiAgICAgIGlmIChuZXdUYWIgPz8gZmFsc2UpIHtcbiAgICAgICAgYW5jaG9yLnRhcmdldCA9ICdfYmxhbmsnXG4gICAgICAgIGlmICh0aGlzLl9fZmllbGRzPy5saW5rVHlwZSA9PT0gJ2N1c3RvbScpIHtcbiAgICAgICAgICBhbmNob3IucmVsID0gbWFuYWdlUmVsKGFuY2hvci5yZWwsICdhZGQnLCAnbm9vcGVuZXInKVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhbmNob3IucmVtb3ZlQXR0cmlidXRlKCd0YXJnZXQnKVxuICAgICAgICBhbmNob3IucmVsID0gbWFuYWdlUmVsKGFuY2hvci5yZWwsICdyZW1vdmUnLCAnbm9vcGVuZXInKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChub2ZvbGxvdyAhPT0gcHJldk5vZGUuX19maWVsZHMubm9mb2xsb3cpIHtcbiAgICAgIGlmIChub2ZvbGxvdyA/PyBmYWxzZSkge1xuICAgICAgICBhbmNob3IucmVsID0gbWFuYWdlUmVsKGFuY2hvci5yZWwsICdhZGQnLCAnbm9mb2xsb3cnKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYW5jaG9yLnJlbCA9IG1hbmFnZVJlbChhbmNob3IucmVsLCAncmVtb3ZlJywgJ25vZm9sbG93JylcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc3BvbnNvcmVkICE9PSBwcmV2Tm9kZS5fX2ZpZWxkcy5zcG9uc29yZWQpIHtcbiAgICAgIGlmIChzcG9uc29yZWQgPz8gZmFsc2UpIHtcbiAgICAgICAgYW5jaG9yLnJlbCA9IG1hbmFnZVJlbChhbmNob3IucmVsLCAnYWRkJywgJ3Nwb25zb3JlZCcpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhbmNob3IucmVsID0gbWFuYWdlUmVsKGFuY2hvci5yZWwsICdyZW1vdmUnLCAnc3BvbnNvcmVkJylcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUT0RPIC0gcmV2aXNpdCAtIEkgZG9uJ3QgdGhpbmsgdGhlcmUgY2FuIGJlIGFueSBvdGhlciByZWxcbiAgICAvLyB2YWx1ZXMgb3RoZXIgdGhhbiBub2ZvbGxvdyBhbmQgbm9vcGVuZXIgLSBzbyBub3RcbiAgICAvLyBzdXJlIHdoeSBhbmNob3IucmVsICs9IHJlbCBiZWxvd1xuICAgIGlmIChyZWwgIT09IHByZXZOb2RlLl9fZmllbGRzLnJlbCkge1xuICAgICAgaWYgKHJlbCAhPSBudWxsKSB7XG4gICAgICAgIGFuY2hvci5yZWwgKz0gcmVsXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhbmNob3IucmVtb3ZlQXR0cmlidXRlKCdyZWwnKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZVxuICB9XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRBbmNob3JFbGVtZW50KGRvbU5vZGU6IE5vZGUpOiBET01Db252ZXJzaW9uT3V0cHV0IHtcbiAgbGV0IG5vZGU6IExpbmtOb2RlIHwgbnVsbCA9IG51bGxcbiAgaWYgKGlzSFRNTEFuY2hvckVsZW1lbnQoZG9tTm9kZSkpIHtcbiAgICBjb25zdCBjb250ZW50ID0gZG9tTm9kZS50ZXh0Q29udGVudFxuICAgIGlmIChjb250ZW50ICE9PSBudWxsICYmIGNvbnRlbnQgIT09ICcnKSB7XG4gICAgICBub2RlID0gJGNyZWF0ZUxpbmtOb2RlKHtcbiAgICAgICAgZmllbGRzOiB7XG4gICAgICAgICAgZG9jOiBudWxsLFxuICAgICAgICAgIGxpbmtUeXBlOiAnY3VzdG9tJyxcbiAgICAgICAgICBuZXdUYWI6IGRvbU5vZGUuZ2V0QXR0cmlidXRlKCd0YXJnZXQnKSA9PT0gJ19ibGFuaycsXG4gICAgICAgICAgbm9mb2xsb3c6IGRvbU5vZGUuZ2V0QXR0cmlidXRlKCdyZWwnKT8uaW5jbHVkZXMoJ25vZm9sbG93JykgPz8gZmFsc2UsXG4gICAgICAgICAgcmVsOiBkb21Ob2RlLmdldEF0dHJpYnV0ZSgncmVsJyksXG4gICAgICAgICAgc3BvbnNvcmVkOiBkb21Ob2RlLmdldEF0dHJpYnV0ZSgncmVsJyk/LmluY2x1ZGVzKCdzcG9uc29yZWQnKSA/PyBmYWxzZSxcbiAgICAgICAgICB1cmw6IGRvbU5vZGUuZ2V0QXR0cmlidXRlKCdocmVmJykgPz8gJycsXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgIH1cbiAgfVxuICByZXR1cm4geyBub2RlIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uICRjcmVhdGVMaW5rTm9kZSh7IGZpZWxkcyB9OiB7IGZpZWxkczogTGlua0ZpZWxkcyB9KTogTGlua05vZGUge1xuICByZXR1cm4gJGFwcGx5Tm9kZVJlcGxhY2VtZW50KG5ldyBMaW5rTm9kZSh7IGZpZWxkcyB9KSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uICRpc0xpbmtOb2RlKG5vZGU6IExleGljYWxOb2RlIHwgbnVsbCB8IHVuZGVmaW5lZCk6IG5vZGUgaXMgTGlua05vZGUge1xuICByZXR1cm4gbm9kZSBpbnN0YW5jZW9mIExpbmtOb2RlXG59XG5cbmV4cG9ydCBjb25zdCBUT0dHTEVfTElOS19DT01NQU5EOiBMZXhpY2FsQ29tbWFuZDxMaW5rUGF5bG9hZCB8IG51bGw+ID1cbiAgY3JlYXRlQ29tbWFuZCgnVE9HR0xFX0xJTktfQ09NTUFORCcpXG5cbmV4cG9ydCBmdW5jdGlvbiB0b2dnbGVMaW5rKHBheWxvYWQ6IExpbmtQYXlsb2FkKTogdm9pZCB7XG4gIGNvbnN0IHNlbGVjdGlvbiA9ICRnZXRTZWxlY3Rpb24oKVxuXG4gIGlmICghJGlzUmFuZ2VTZWxlY3Rpb24oc2VsZWN0aW9uKSkge1xuICAgIHJldHVyblxuICB9XG4gIGNvbnN0IG5vZGVzID0gc2VsZWN0aW9uLmV4dHJhY3QoKVxuXG4gIGlmIChwYXlsb2FkID09PSBudWxsKSB7XG4gICAgLy8gUmVtb3ZlIExpbmtOb2Rlc1xuICAgIG5vZGVzLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgIGNvbnN0IHBhcmVudCA9IG5vZGUuZ2V0UGFyZW50KClcblxuICAgICAgaWYgKCRpc0xpbmtOb2RlKHBhcmVudCkpIHtcbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBwYXJlbnQuZ2V0Q2hpbGRyZW4oKVxuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgICBwYXJlbnQuaW5zZXJ0QmVmb3JlKGNoaWxkcmVuW2ldKVxuICAgICAgICB9XG5cbiAgICAgICAgcGFyZW50LnJlbW92ZSgpXG4gICAgICB9XG4gICAgfSlcbiAgfSBlbHNlIHtcbiAgICAvLyBBZGQgb3IgbWVyZ2UgTGlua05vZGVzXG4gICAgaWYgKG5vZGVzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgY29uc3QgZmlyc3ROb2RlID0gbm9kZXNbMF1cbiAgICAgIC8vIGlmIHRoZSBmaXJzdCBub2RlIGlzIGEgTGlua05vZGUgb3IgaWYgaXRzXG4gICAgICAvLyBwYXJlbnQgaXMgYSBMaW5rTm9kZSwgd2UgdXBkYXRlIHRoZSBVUkwsIHRhcmdldCBhbmQgcmVsLlxuICAgICAgY29uc3QgbGlua05vZGU6IExpbmtOb2RlIHwgbnVsbCA9ICRpc0xpbmtOb2RlKGZpcnN0Tm9kZSlcbiAgICAgICAgPyBmaXJzdE5vZGVcbiAgICAgICAgOiAkZ2V0TGlua0FuY2VzdG9yKGZpcnN0Tm9kZSlcbiAgICAgIGlmIChsaW5rTm9kZSAhPT0gbnVsbCkge1xuICAgICAgICBsaW5rTm9kZS5zZXRGaWVsZHMocGF5bG9hZC5maWVsZHMpXG5cbiAgICAgICAgaWYgKHBheWxvYWQudGV4dCAhPSBudWxsICYmIHBheWxvYWQudGV4dCAhPT0gbGlua05vZGUuZ2V0VGV4dENvbnRlbnQoKSkge1xuICAgICAgICAgIC8vIHJlbW92ZSBhbGwgY2hpbGRyZW4gYW5kIGFkZCBjaGlsZCB3aXRoIG5ldyB0ZXh0Y29udGVudDpcbiAgICAgICAgICBsaW5rTm9kZS5hcHBlbmQoJGNyZWF0ZVRleHROb2RlKHBheWxvYWQudGV4dCkpXG4gICAgICAgICAgbGlua05vZGUuZ2V0Q2hpbGRyZW4oKS5mb3JFYWNoKChjaGlsZCkgPT4ge1xuICAgICAgICAgICAgaWYgKGNoaWxkICE9PSBsaW5rTm9kZS5nZXRMYXN0Q2hpbGQoKSkge1xuICAgICAgICAgICAgICBjaGlsZC5yZW1vdmUoKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IHByZXZQYXJlbnQ6IEVsZW1lbnROb2RlIHwgTGlua05vZGUgfCBudWxsID0gbnVsbFxuICAgIGxldCBsaW5rTm9kZTogTGlua05vZGUgfCBudWxsID0gbnVsbFxuXG4gICAgbm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgY29uc3QgcGFyZW50ID0gbm9kZS5nZXRQYXJlbnQoKVxuXG4gICAgICBpZiAocGFyZW50ID09PSBsaW5rTm9kZSB8fCBwYXJlbnQgPT09IG51bGwgfHwgKCRpc0VsZW1lbnROb2RlKG5vZGUpICYmICFub2RlLmlzSW5saW5lKCkpKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAoJGlzTGlua05vZGUocGFyZW50KSkge1xuICAgICAgICBsaW5rTm9kZSA9IHBhcmVudFxuICAgICAgICBwYXJlbnQuc2V0RmllbGRzKHBheWxvYWQuZmllbGRzKVxuICAgICAgICBpZiAocGF5bG9hZC50ZXh0ICE9IG51bGwgJiYgcGF5bG9hZC50ZXh0ICE9PSBwYXJlbnQuZ2V0VGV4dENvbnRlbnQoKSkge1xuICAgICAgICAgIC8vIHJlbW92ZSBhbGwgY2hpbGRyZW4gYW5kIGFkZCBjaGlsZCB3aXRoIG5ldyB0ZXh0Y29udGVudDpcbiAgICAgICAgICBwYXJlbnQuYXBwZW5kKCRjcmVhdGVUZXh0Tm9kZShwYXlsb2FkLnRleHQpKVxuICAgICAgICAgIHBhcmVudC5nZXRDaGlsZHJlbigpLmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgICAgICAgICBpZiAoY2hpbGQgIT09IHBhcmVudC5nZXRMYXN0Q2hpbGQoKSkge1xuICAgICAgICAgICAgICBjaGlsZC5yZW1vdmUoKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlmICghcGFyZW50LmlzKHByZXZQYXJlbnQpKSB7XG4gICAgICAgIHByZXZQYXJlbnQgPSBwYXJlbnRcbiAgICAgICAgbGlua05vZGUgPSAkY3JlYXRlTGlua05vZGUoeyBmaWVsZHM6IHBheWxvYWQuZmllbGRzIH0pXG5cbiAgICAgICAgaWYgKCRpc0xpbmtOb2RlKHBhcmVudCkpIHtcbiAgICAgICAgICBpZiAobm9kZS5nZXRQcmV2aW91c1NpYmxpbmcoKSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcGFyZW50Lmluc2VydEJlZm9yZShsaW5rTm9kZSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGFyZW50Lmluc2VydEFmdGVyKGxpbmtOb2RlKVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBub2RlLmluc2VydEJlZm9yZShsaW5rTm9kZSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoJGlzTGlua05vZGUobm9kZSkpIHtcbiAgICAgICAgaWYgKG5vZGUuaXMobGlua05vZGUpKSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxpbmtOb2RlICE9PSBudWxsKSB7XG4gICAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBub2RlLmdldENoaWxkcmVuKClcblxuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgICAgIGxpbmtOb2RlLmFwcGVuZChjaGlsZHJlbltpXSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBub2RlLnJlbW92ZSgpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAobGlua05vZGUgIT09IG51bGwpIHtcbiAgICAgICAgbGlua05vZGUuYXBwZW5kKG5vZGUpXG4gICAgICB9XG4gICAgfSlcbiAgfVxufVxuXG5mdW5jdGlvbiAkZ2V0TGlua0FuY2VzdG9yKG5vZGU6IExleGljYWxOb2RlKTogTGlua05vZGUgfCBudWxsIHtcbiAgcmV0dXJuICRnZXRBbmNlc3Rvcihub2RlLCAoYW5jZXN0b3IpID0+ICRpc0xpbmtOb2RlKGFuY2VzdG9yKSkgYXMgTGlua05vZGVcbn1cblxuZnVuY3Rpb24gJGdldEFuY2VzdG9yKFxuICBub2RlOiBMZXhpY2FsTm9kZSxcbiAgcHJlZGljYXRlOiAoYW5jZXN0b3I6IExleGljYWxOb2RlKSA9PiBib29sZWFuLFxuKTogTGV4aWNhbE5vZGUgfCBudWxsIHtcbiAgbGV0IHBhcmVudDogTGV4aWNhbE5vZGUgfCBudWxsID0gbm9kZVxuICB3aGlsZSAocGFyZW50ICE9PSBudWxsICYmIChwYXJlbnQgPSBwYXJlbnQuZ2V0UGFyZW50KCkpICE9PSBudWxsICYmICFwcmVkaWNhdGUocGFyZW50KSk7XG4gIHJldHVybiBwYXJlbnRcbn1cblxuZnVuY3Rpb24gbWFuYWdlUmVsKGlucHV0OiBzdHJpbmcsIGFjdGlvbjogJ2FkZCcgfCAncmVtb3ZlJywgdmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGxldCByZXN1bHQ6IHN0cmluZ1xuICBsZXQgbXV0YWJsZUlucHV0ID0gYCR7aW5wdXR9YFxuICBpZiAoYWN0aW9uID09PSAnYWRkJykge1xuICAgIC8vIGlmIHdlIHNvbWVob3cgZ290IG91dCBvZiBzeW5jIC0gY2xlYW4gdXBcbiAgICBpZiAobXV0YWJsZUlucHV0LmluY2x1ZGVzKHZhbHVlKSkge1xuICAgICAgY29uc3QgcmUgPSBuZXcgUmVnRXhwKHZhbHVlLCAnZycpXG4gICAgICBtdXRhYmxlSW5wdXQgPSBtdXRhYmxlSW5wdXQucmVwbGFjZShyZSwgJycpLnRyaW0oKVxuICAgIH1cbiAgICBtdXRhYmxlSW5wdXQgPSBtdXRhYmxlSW5wdXQudHJpbSgpXG4gICAgcmVzdWx0ID0gbXV0YWJsZUlucHV0Lmxlbmd0aCA9PT0gMCA/IGAke3ZhbHVlfWAgOiBgJHttdXRhYmxlSW5wdXR9ICR7dmFsdWV9YFxuICB9IGVsc2Uge1xuICAgIGNvbnN0IHJlID0gbmV3IFJlZ0V4cCh2YWx1ZSwgJ2cnKVxuICAgIHJlc3VsdCA9IG11dGFibGVJbnB1dC5yZXBsYWNlKHJlLCAnJykudHJpbSgpXG4gIH1cbiAgcmV0dXJuIHJlc3VsdFxufVxuIl0sIm5hbWVzIjpbIkxpbmtOb2RlIiwiJGNyZWF0ZUxpbmtOb2RlIiwiJGlzTGlua05vZGUiLCJUT0dHTEVfTElOS19DT01NQU5EIiwidG9nZ2xlTGluayIsIlNVUFBPUlRFRF9VUkxfUFJPVE9DT0xTIiwiU2V0IiwiRWxlbWVudE5vZGUiLCJfX2ZpZWxkcyIsImNvbnN0cnVjdG9yIiwiZmllbGRzIiwiZG9jIiwibGlua1R5cGUiLCJuZXdUYWIiLCJ1cmwiLCJ1bmRlZmluZWQiLCJrZXkiLCJjbG9uZSIsIm5vZGUiLCJfX2tleSIsImdldFR5cGUiLCJpbXBvcnRET00iLCJhIiwiY29udmVyc2lvbiIsImNvbnZlcnRBbmNob3JFbGVtZW50IiwicHJpb3JpdHkiLCJpbXBvcnRKU09OIiwic2VyaWFsaXplZE5vZGUiLCJzZXRGb3JtYXQiLCJmb3JtYXQiLCJzZXRJbmRlbnQiLCJpbmRlbnQiLCJzZXREaXJlY3Rpb24iLCJkaXJlY3Rpb24iLCJjYW5CZUVtcHR5IiwiY2FuSW5zZXJ0VGV4dEFmdGVyIiwiY2FuSW5zZXJ0VGV4dEJlZm9yZSIsImNyZWF0ZURPTSIsImNvbmZpZyIsImVsZW1lbnQiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJocmVmIiwic2FuaXRpemVVcmwiLCJ0YXJnZXQiLCJyZWwiLCJtYW5hZ2VSZWwiLCJzcG9uc29yZWQiLCJub2ZvbGxvdyIsIl9fcmVsIiwiYWRkQ2xhc3NOYW1lc1RvRWxlbWVudCIsInRoZW1lIiwibGluayIsImV4cG9ydEpTT04iLCJnZXRGaWVsZHMiLCJ0eXBlIiwidmVyc2lvbiIsImV4dHJhY3RXaXRoQ2hpbGQiLCJjaGlsZCIsInNlbGVjdGlvbiIsImRlc3RpbmF0aW9uIiwiJGlzUmFuZ2VTZWxlY3Rpb24iLCJhbmNob3JOb2RlIiwiYW5jaG9yIiwiZ2V0Tm9kZSIsImZvY3VzTm9kZSIsImZvY3VzIiwiaXNQYXJlbnRPZiIsImdldFRleHRDb250ZW50IiwibGVuZ3RoIiwiZ2V0TGF0ZXN0IiwiaW5zZXJ0TmV3QWZ0ZXIiLCJyZXN0b3JlU2VsZWN0aW9uIiwiZ2V0UGFyZW50T3JUaHJvdyIsIiRpc0VsZW1lbnROb2RlIiwibGlua05vZGUiLCJhcHBlbmQiLCJpc0lubGluZSIsInBhcnNlZFVybCIsIlVSTCIsImhhcyIsInByb3RvY29sIiwiZSIsInNldEZpZWxkcyIsIndyaXRhYmxlIiwiZ2V0V3JpdGFibGUiLCJ1cGRhdGVET00iLCJwcmV2Tm9kZSIsInJlbW92ZUF0dHJpYnV0ZSIsImRvbU5vZGUiLCJpc0hUTUxBbmNob3JFbGVtZW50IiwiY29udGVudCIsInRleHRDb250ZW50IiwiZ2V0QXR0cmlidXRlIiwiaW5jbHVkZXMiLCIkYXBwbHlOb2RlUmVwbGFjZW1lbnQiLCJjcmVhdGVDb21tYW5kIiwicGF5bG9hZCIsIiRnZXRTZWxlY3Rpb24iLCJub2RlcyIsImV4dHJhY3QiLCJmb3JFYWNoIiwicGFyZW50IiwiZ2V0UGFyZW50IiwiY2hpbGRyZW4iLCJnZXRDaGlsZHJlbiIsImkiLCJpbnNlcnRCZWZvcmUiLCJyZW1vdmUiLCJmaXJzdE5vZGUiLCIkZ2V0TGlua0FuY2VzdG9yIiwidGV4dCIsIiRjcmVhdGVUZXh0Tm9kZSIsImdldExhc3RDaGlsZCIsInByZXZQYXJlbnQiLCJpcyIsImdldFByZXZpb3VzU2libGluZyIsImluc2VydEFmdGVyIiwiJGdldEFuY2VzdG9yIiwiYW5jZXN0b3IiLCJwcmVkaWNhdGUiLCJpbnB1dCIsImFjdGlvbiIsInZhbHVlIiwicmVzdWx0IiwibXV0YWJsZUlucHV0IiwicmUiLCJSZWdFeHAiLCJyZXBsYWNlIiwidHJpbSJdLCJtYXBwaW5ncyI6IkFBQUEsMEJBQTBCLEdBQzFCOzs7Ozs7Q0FNQzs7Ozs7Ozs7Ozs7SUFpRFlBLFFBQVE7ZUFBUkE7O0lBOE9HQyxlQUFlO2VBQWZBOztJQUlBQyxXQUFXO2VBQVhBOztJQUlIQyxtQkFBbUI7ZUFBbkJBOztJQUdHQyxVQUFVO2VBQVZBOzs7dUJBeFM0Qzt5QkFvQnJEO0FBd0JQLE1BQU1DLDBCQUEwQixJQUFJQyxJQUFJO0lBQUM7SUFBUztJQUFVO0lBQVc7SUFBUTtDQUFPO0FBRy9FLE1BQU1OLGlCQUFpQk8sb0JBQVc7SUFDdkNDLFNBQW9CO0lBRXBCQyxZQUFZLEVBQ1ZDLFNBQVM7UUFDUEMsS0FBSztRQUNMQyxVQUFVO1FBQ1ZDLFFBQVE7UUFDUkMsS0FBS0M7SUFDUCxDQUFDLEVBQ0RDLEdBQUcsRUFJSixDQUFFO1FBQ0QsS0FBSyxDQUFDQTtRQUNOLElBQUksQ0FBQ1IsUUFBUSxHQUFHRTtJQUNsQjtJQUVBLE9BQU9PLE1BQU1DLElBQWMsRUFBWTtRQUNyQyxPQUFPLElBQUlsQixTQUFTO1lBQ2xCVSxRQUFRUSxLQUFLVixRQUFRO1lBQ3JCUSxLQUFLRSxLQUFLQyxLQUFLO1FBQ2pCO0lBQ0Y7SUFFQSxPQUFPQyxVQUFrQjtRQUN2QixPQUFPO0lBQ1Q7SUFFQSxPQUFPQyxZQUFxQztRQUMxQyxPQUFPO1lBQ0xDLEdBQUcsQ0FBQ0osT0FBZ0IsQ0FBQTtvQkFDbEJLLFlBQVlDO29CQUNaQyxVQUFVO2dCQUNaLENBQUE7UUFDRjtJQUNGO0lBRUEsT0FBT0MsV0FBV0MsY0FBa0MsRUFBWTtRQUM5RCxNQUFNVCxPQUFPakIsZ0JBQWdCO1lBQzNCUyxRQUFRaUIsZUFBZWpCLE1BQU07UUFDL0I7UUFDQVEsS0FBS1UsU0FBUyxDQUFDRCxlQUFlRSxNQUFNO1FBQ3BDWCxLQUFLWSxTQUFTLENBQUNILGVBQWVJLE1BQU07UUFDcENiLEtBQUtjLFlBQVksQ0FBQ0wsZUFBZU0sU0FBUztRQUMxQyxPQUFPZjtJQUNUO0lBRUFnQixhQUFvQjtRQUNsQixPQUFPO0lBQ1Q7SUFFQUMscUJBQTRCO1FBQzFCLE9BQU87SUFDVDtJQUVBQyxzQkFBNkI7UUFDM0IsT0FBTztJQUNUO0lBRUFDLFVBQVVDLE1BQW9CLEVBQXFCO1FBQ2pELE1BQU1DLFVBQVVDLFNBQVNDLGFBQWEsQ0FBQztRQUN2QyxJQUFJLElBQUksQ0FBQ2pDLFFBQVEsRUFBRUksYUFBYSxVQUFVO1lBQ3hDMkIsUUFBUUcsSUFBSSxHQUFHLElBQUksQ0FBQ0MsV0FBVyxDQUFDLElBQUksQ0FBQ25DLFFBQVEsQ0FBQ00sR0FBRyxJQUFJO1FBQ3ZEO1FBQ0EsSUFBSSxJQUFJLENBQUNOLFFBQVEsRUFBRUssVUFBVSxPQUFPO1lBQ2xDMEIsUUFBUUssTUFBTSxHQUFHO1FBQ25CO1FBRUFMLFFBQVFNLEdBQUcsR0FBRztRQUVkLElBQUksSUFBSSxDQUFDckMsUUFBUSxFQUFFSyxXQUFXLFFBQVEsSUFBSSxDQUFDTCxRQUFRLEVBQUVJLGFBQWEsVUFBVTtZQUMxRTJCLFFBQVFNLEdBQUcsR0FBR0MsVUFBVVAsUUFBUU0sR0FBRyxFQUFFLE9BQU87UUFDOUM7UUFFQSxJQUFJLElBQUksQ0FBQ3JDLFFBQVEsRUFBRXVDLGFBQWEsT0FBTztZQUNyQ1IsUUFBUU0sR0FBRyxHQUFHQyxVQUFVUCxRQUFRTSxHQUFHLEVBQUUsT0FBTztRQUM5QztRQUVBLElBQUksSUFBSSxDQUFDckMsUUFBUSxFQUFFd0MsWUFBWSxPQUFPO1lBQ3BDVCxRQUFRTSxHQUFHLEdBQUdDLFVBQVVQLFFBQVFNLEdBQUcsRUFBRSxPQUFPO1FBQzlDO1FBRUEsSUFBSSxJQUFJLENBQUNyQyxRQUFRLEVBQUVxQyxRQUFRLE1BQU07WUFDL0JOLFFBQVFNLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUNJLEtBQUssQ0FBQyxDQUFDO1FBQ2pDO1FBQ0FDLElBQUFBLDZCQUFzQixFQUFDWCxTQUFTRCxPQUFPYSxLQUFLLENBQUNDLElBQUk7UUFDakQsT0FBT2I7SUFDVDtJQUVBYyxhQUFpQztRQUMvQixPQUFPO1lBQ0wsR0FBRyxLQUFLLENBQUNBLFlBQVk7WUFDckIzQyxRQUFRLElBQUksQ0FBQzRDLFNBQVM7WUFDdEJDLE1BQU0sSUFBSSxDQUFDbkMsT0FBTztZQUNsQm9DLFNBQVM7UUFDWDtJQUNGO0lBRUFDLGlCQUNFQyxLQUFrQixFQUNsQkMsU0FBeUQsRUFDekRDLFdBQTZCLEVBQ3BCO1FBQ1QsSUFBSSxDQUFDQyxJQUFBQSwwQkFBaUIsRUFBQ0YsWUFBWTtZQUNqQyxPQUFPO1FBQ1Q7UUFFQSxNQUFNRyxhQUFhSCxVQUFVSSxNQUFNLENBQUNDLE9BQU87UUFDM0MsTUFBTUMsWUFBWU4sVUFBVU8sS0FBSyxDQUFDRixPQUFPO1FBRXpDLE9BQ0UsSUFBSSxDQUFDRyxVQUFVLENBQUNMLGVBQ2hCLElBQUksQ0FBQ0ssVUFBVSxDQUFDRixjQUNoQk4sVUFBVVMsY0FBYyxHQUFHQyxNQUFNLEdBQUc7SUFFeEM7SUFFQWYsWUFBd0I7UUFDdEIsT0FBTyxJQUFJLENBQUNnQixTQUFTLEdBQUc5RCxRQUFRO0lBQ2xDO0lBRUErRCxlQUFlWixTQUF5QixFQUFFYSxtQkFBbUIsSUFBSSxFQUFzQjtRQUNyRixNQUFNakMsVUFBVSxJQUFJLENBQUNrQyxnQkFBZ0IsR0FBR0YsY0FBYyxDQUFDWixXQUFXYTtRQUNsRSxJQUFJRSxJQUFBQSx1QkFBYyxFQUFDbkMsVUFBVTtZQUMzQixNQUFNb0MsV0FBVzFFLGdCQUFnQjtnQkFBRVMsUUFBUSxJQUFJLENBQUNGLFFBQVE7WUFBQztZQUN6RCtCLFFBQVFxQyxNQUFNLENBQUNEO1lBQ2YsT0FBT0E7UUFDVDtRQUNBLE9BQU87SUFDVDtJQUVBRSxXQUFpQjtRQUNmLE9BQU87SUFDVDtJQUVBbEMsWUFBWTdCLEdBQVcsRUFBVTtRQUMvQixJQUFJO1lBQ0YsTUFBTWdFLFlBQVksSUFBSUMsSUFBSWpFO1lBQzFCLHlDQUF5QztZQUN6QyxJQUFJLENBQUNULHdCQUF3QjJFLEdBQUcsQ0FBQ0YsVUFBVUcsUUFBUSxHQUFHO2dCQUNwRCxPQUFPO1lBQ1Q7UUFDRixFQUFFLE9BQU9DLEdBQUc7WUFDVixPQUFPO1FBQ1Q7UUFDQSxPQUFPcEU7SUFDVDtJQUVBcUUsVUFBVXpFLE1BQWtCLEVBQVE7UUFDbEMsTUFBTTBFLFdBQVcsSUFBSSxDQUFDQyxXQUFXO1FBQ2pDRCxTQUFTNUUsUUFBUSxHQUFHRTtJQUN0QjtJQUVBNEUsVUFBVUMsUUFBa0IsRUFBRXhCLE1BQXlCLEVBQUV6QixNQUFvQixFQUFXO1FBQ3RGLE1BQU14QixNQUFNLElBQUksQ0FBQ04sUUFBUSxFQUFFTTtRQUMzQixNQUFNRCxTQUFTLElBQUksQ0FBQ0wsUUFBUSxFQUFFSztRQUM5QixNQUFNa0MsWUFBWSxJQUFJLENBQUN2QyxRQUFRLEVBQUV1QztRQUNqQyxNQUFNQyxXQUFXLElBQUksQ0FBQ3hDLFFBQVEsRUFBRXdDO1FBQ2hDLE1BQU1ILE1BQU0sSUFBSSxDQUFDckMsUUFBUSxFQUFFcUM7UUFDM0IsSUFBSS9CLE9BQU8sUUFBUUEsUUFBUXlFLFNBQVMvRSxRQUFRLEVBQUVNLE9BQU8sSUFBSSxDQUFDTixRQUFRLEVBQUVJLGFBQWEsVUFBVTtZQUN6Rm1ELE9BQU9yQixJQUFJLEdBQUc1QjtRQUNoQjtRQUNBLElBQUksSUFBSSxDQUFDTixRQUFRLEVBQUVJLGFBQWEsY0FBYzJFLFNBQVMvRSxRQUFRLEVBQUVJLGFBQWEsVUFBVTtZQUN0Rm1ELE9BQU95QixlQUFlLENBQUM7UUFDekI7UUFFQSw0REFBNEQ7UUFDNUQsaURBQWlEO1FBQ2pELElBQUl6QixPQUFPbEIsR0FBRyxJQUFJLE1BQU07WUFDdEJrQixPQUFPbEIsR0FBRyxHQUFHO1FBQ2Y7UUFFQSxJQUFJaEMsV0FBVzBFLFNBQVMvRSxRQUFRLEVBQUVLLFFBQVE7WUFDeEMsSUFBSUEsVUFBVSxPQUFPO2dCQUNuQmtELE9BQU9uQixNQUFNLEdBQUc7Z0JBQ2hCLElBQUksSUFBSSxDQUFDcEMsUUFBUSxFQUFFSSxhQUFhLFVBQVU7b0JBQ3hDbUQsT0FBT2xCLEdBQUcsR0FBR0MsVUFBVWlCLE9BQU9sQixHQUFHLEVBQUUsT0FBTztnQkFDNUM7WUFDRixPQUFPO2dCQUNMa0IsT0FBT3lCLGVBQWUsQ0FBQztnQkFDdkJ6QixPQUFPbEIsR0FBRyxHQUFHQyxVQUFVaUIsT0FBT2xCLEdBQUcsRUFBRSxVQUFVO1lBQy9DO1FBQ0Y7UUFFQSxJQUFJRyxhQUFhdUMsU0FBUy9FLFFBQVEsQ0FBQ3dDLFFBQVEsRUFBRTtZQUMzQyxJQUFJQSxZQUFZLE9BQU87Z0JBQ3JCZSxPQUFPbEIsR0FBRyxHQUFHQyxVQUFVaUIsT0FBT2xCLEdBQUcsRUFBRSxPQUFPO1lBQzVDLE9BQU87Z0JBQ0xrQixPQUFPbEIsR0FBRyxHQUFHQyxVQUFVaUIsT0FBT2xCLEdBQUcsRUFBRSxVQUFVO1lBQy9DO1FBQ0Y7UUFFQSxJQUFJRSxjQUFjd0MsU0FBUy9FLFFBQVEsQ0FBQ3VDLFNBQVMsRUFBRTtZQUM3QyxJQUFJQSxhQUFhLE9BQU87Z0JBQ3RCZ0IsT0FBT2xCLEdBQUcsR0FBR0MsVUFBVWlCLE9BQU9sQixHQUFHLEVBQUUsT0FBTztZQUM1QyxPQUFPO2dCQUNMa0IsT0FBT2xCLEdBQUcsR0FBR0MsVUFBVWlCLE9BQU9sQixHQUFHLEVBQUUsVUFBVTtZQUMvQztRQUNGO1FBRUEsNERBQTREO1FBQzVELG1EQUFtRDtRQUNuRCxtQ0FBbUM7UUFDbkMsSUFBSUEsUUFBUTBDLFNBQVMvRSxRQUFRLENBQUNxQyxHQUFHLEVBQUU7WUFDakMsSUFBSUEsT0FBTyxNQUFNO2dCQUNma0IsT0FBT2xCLEdBQUcsSUFBSUE7WUFDaEIsT0FBTztnQkFDTGtCLE9BQU95QixlQUFlLENBQUM7WUFDekI7UUFDRjtRQUVBLE9BQU87SUFDVDtBQUNGO0FBRUEsU0FBU2hFLHFCQUFxQmlFLE9BQWE7SUFDekMsSUFBSXZFLE9BQXdCO0lBQzVCLElBQUl3RSxJQUFBQSwwQkFBbUIsRUFBQ0QsVUFBVTtRQUNoQyxNQUFNRSxVQUFVRixRQUFRRyxXQUFXO1FBQ25DLElBQUlELFlBQVksUUFBUUEsWUFBWSxJQUFJO1lBQ3RDekUsT0FBT2pCLGdCQUFnQjtnQkFDckJTLFFBQVE7b0JBQ05DLEtBQUs7b0JBQ0xDLFVBQVU7b0JBQ1ZDLFFBQVE0RSxRQUFRSSxZQUFZLENBQUMsY0FBYztvQkFDM0M3QyxVQUFVeUMsUUFBUUksWUFBWSxDQUFDLFFBQVFDLFNBQVMsZUFBZTtvQkFDL0RqRCxLQUFLNEMsUUFBUUksWUFBWSxDQUFDO29CQUMxQjlDLFdBQVcwQyxRQUFRSSxZQUFZLENBQUMsUUFBUUMsU0FBUyxnQkFBZ0I7b0JBQ2pFaEYsS0FBSzJFLFFBQVFJLFlBQVksQ0FBQyxXQUFXO2dCQUN2QztZQUNGO1FBQ0Y7SUFDRjtJQUNBLE9BQU87UUFBRTNFO0lBQUs7QUFDaEI7QUFFTyxTQUFTakIsZ0JBQWdCLEVBQUVTLE1BQU0sRUFBMEI7SUFDaEUsT0FBT3FGLElBQUFBLDhCQUFxQixFQUFDLElBQUkvRixTQUFTO1FBQUVVO0lBQU87QUFDckQ7QUFFTyxTQUFTUixZQUFZZ0IsSUFBb0M7SUFDOUQsT0FBT0EsZ0JBQWdCbEI7QUFDekI7QUFFTyxNQUFNRyxzQkFDWDZGLElBQUFBLHNCQUFhLEVBQUM7QUFFVCxTQUFTNUYsV0FBVzZGLE9BQW9CO0lBQzdDLE1BQU10QyxZQUFZdUMsSUFBQUEsc0JBQWE7SUFFL0IsSUFBSSxDQUFDckMsSUFBQUEsMEJBQWlCLEVBQUNGLFlBQVk7UUFDakM7SUFDRjtJQUNBLE1BQU13QyxRQUFReEMsVUFBVXlDLE9BQU87SUFFL0IsSUFBSUgsWUFBWSxNQUFNO1FBQ3BCLG1CQUFtQjtRQUNuQkUsTUFBTUUsT0FBTyxDQUFDLENBQUNuRjtZQUNiLE1BQU1vRixTQUFTcEYsS0FBS3FGLFNBQVM7WUFFN0IsSUFBSXJHLFlBQVlvRyxTQUFTO2dCQUN2QixNQUFNRSxXQUFXRixPQUFPRyxXQUFXO2dCQUVuQyxJQUFLLElBQUlDLElBQUksR0FBR0EsSUFBSUYsU0FBU25DLE1BQU0sRUFBRXFDLEtBQUssRUFBRztvQkFDM0NKLE9BQU9LLFlBQVksQ0FBQ0gsUUFBUSxDQUFDRSxFQUFFO2dCQUNqQztnQkFFQUosT0FBT00sTUFBTTtZQUNmO1FBQ0Y7SUFDRixPQUFPO1FBQ0wseUJBQXlCO1FBQ3pCLElBQUlULE1BQU05QixNQUFNLEtBQUssR0FBRztZQUN0QixNQUFNd0MsWUFBWVYsS0FBSyxDQUFDLEVBQUU7WUFDMUIsNENBQTRDO1lBQzVDLDJEQUEyRDtZQUMzRCxNQUFNeEIsV0FBNEJ6RSxZQUFZMkcsYUFDMUNBLFlBQ0FDLGlCQUFpQkQ7WUFDckIsSUFBSWxDLGFBQWEsTUFBTTtnQkFDckJBLFNBQVNRLFNBQVMsQ0FBQ2MsUUFBUXZGLE1BQU07Z0JBRWpDLElBQUl1RixRQUFRYyxJQUFJLElBQUksUUFBUWQsUUFBUWMsSUFBSSxLQUFLcEMsU0FBU1AsY0FBYyxJQUFJO29CQUN0RSwwREFBMEQ7b0JBQzFETyxTQUFTQyxNQUFNLENBQUNvQyxJQUFBQSx3QkFBZSxFQUFDZixRQUFRYyxJQUFJO29CQUM1Q3BDLFNBQVM4QixXQUFXLEdBQUdKLE9BQU8sQ0FBQyxDQUFDM0M7d0JBQzlCLElBQUlBLFVBQVVpQixTQUFTc0MsWUFBWSxJQUFJOzRCQUNyQ3ZELE1BQU1rRCxNQUFNO3dCQUNkO29CQUNGO2dCQUNGO2dCQUNBO1lBQ0Y7UUFDRjtRQUVBLElBQUlNLGFBQTRDO1FBQ2hELElBQUl2QyxXQUE0QjtRQUVoQ3dCLE1BQU1FLE9BQU8sQ0FBQyxDQUFDbkY7WUFDYixNQUFNb0YsU0FBU3BGLEtBQUtxRixTQUFTO1lBRTdCLElBQUlELFdBQVczQixZQUFZMkIsV0FBVyxRQUFTNUIsSUFBQUEsdUJBQWMsRUFBQ3hELFNBQVMsQ0FBQ0EsS0FBSzJELFFBQVEsSUFBSztnQkFDeEY7WUFDRjtZQUVBLElBQUkzRSxZQUFZb0csU0FBUztnQkFDdkIzQixXQUFXMkI7Z0JBQ1hBLE9BQU9uQixTQUFTLENBQUNjLFFBQVF2RixNQUFNO2dCQUMvQixJQUFJdUYsUUFBUWMsSUFBSSxJQUFJLFFBQVFkLFFBQVFjLElBQUksS0FBS1QsT0FBT2xDLGNBQWMsSUFBSTtvQkFDcEUsMERBQTBEO29CQUMxRGtDLE9BQU8xQixNQUFNLENBQUNvQyxJQUFBQSx3QkFBZSxFQUFDZixRQUFRYyxJQUFJO29CQUMxQ1QsT0FBT0csV0FBVyxHQUFHSixPQUFPLENBQUMsQ0FBQzNDO3dCQUM1QixJQUFJQSxVQUFVNEMsT0FBT1csWUFBWSxJQUFJOzRCQUNuQ3ZELE1BQU1rRCxNQUFNO3dCQUNkO29CQUNGO2dCQUNGO2dCQUNBO1lBQ0Y7WUFFQSxJQUFJLENBQUNOLE9BQU9hLEVBQUUsQ0FBQ0QsYUFBYTtnQkFDMUJBLGFBQWFaO2dCQUNiM0IsV0FBVzFFLGdCQUFnQjtvQkFBRVMsUUFBUXVGLFFBQVF2RixNQUFNO2dCQUFDO2dCQUVwRCxJQUFJUixZQUFZb0csU0FBUztvQkFDdkIsSUFBSXBGLEtBQUtrRyxrQkFBa0IsT0FBTyxNQUFNO3dCQUN0Q2QsT0FBT0ssWUFBWSxDQUFDaEM7b0JBQ3RCLE9BQU87d0JBQ0wyQixPQUFPZSxXQUFXLENBQUMxQztvQkFDckI7Z0JBQ0YsT0FBTztvQkFDTHpELEtBQUt5RixZQUFZLENBQUNoQztnQkFDcEI7WUFDRjtZQUVBLElBQUl6RSxZQUFZZ0IsT0FBTztnQkFDckIsSUFBSUEsS0FBS2lHLEVBQUUsQ0FBQ3hDLFdBQVc7b0JBQ3JCO2dCQUNGO2dCQUNBLElBQUlBLGFBQWEsTUFBTTtvQkFDckIsTUFBTTZCLFdBQVd0RixLQUFLdUYsV0FBVztvQkFFakMsSUFBSyxJQUFJQyxJQUFJLEdBQUdBLElBQUlGLFNBQVNuQyxNQUFNLEVBQUVxQyxLQUFLLEVBQUc7d0JBQzNDL0IsU0FBU0MsTUFBTSxDQUFDNEIsUUFBUSxDQUFDRSxFQUFFO29CQUM3QjtnQkFDRjtnQkFFQXhGLEtBQUswRixNQUFNO2dCQUNYO1lBQ0Y7WUFFQSxJQUFJakMsYUFBYSxNQUFNO2dCQUNyQkEsU0FBU0MsTUFBTSxDQUFDMUQ7WUFDbEI7UUFDRjtJQUNGO0FBQ0Y7QUFFQSxTQUFTNEYsaUJBQWlCNUYsSUFBaUI7SUFDekMsT0FBT29HLGFBQWFwRyxNQUFNLENBQUNxRyxXQUFhckgsWUFBWXFIO0FBQ3REO0FBRUEsU0FBU0QsYUFDUHBHLElBQWlCLEVBQ2pCc0csU0FBNkM7SUFFN0MsSUFBSWxCLFNBQTZCcEY7SUFDakMsTUFBT29GLFdBQVcsUUFBUSxBQUFDQSxDQUFBQSxTQUFTQSxPQUFPQyxTQUFTLEVBQUMsTUFBTyxRQUFRLENBQUNpQixVQUFVbEI7SUFDL0UsT0FBT0E7QUFDVDtBQUVBLFNBQVN4RCxVQUFVMkUsS0FBYSxFQUFFQyxNQUF3QixFQUFFQyxLQUFhO0lBQ3ZFLElBQUlDO0lBQ0osSUFBSUMsZUFBZSxDQUFDLEVBQUVKLE1BQU0sQ0FBQztJQUM3QixJQUFJQyxXQUFXLE9BQU87UUFDcEIsMkNBQTJDO1FBQzNDLElBQUlHLGFBQWEvQixRQUFRLENBQUM2QixRQUFRO1lBQ2hDLE1BQU1HLEtBQUssSUFBSUMsT0FBT0osT0FBTztZQUM3QkUsZUFBZUEsYUFBYUcsT0FBTyxDQUFDRixJQUFJLElBQUlHLElBQUk7UUFDbEQ7UUFDQUosZUFBZUEsYUFBYUksSUFBSTtRQUNoQ0wsU0FBU0MsYUFBYXhELE1BQU0sS0FBSyxJQUFJLENBQUMsRUFBRXNELE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRUUsYUFBYSxDQUFDLEVBQUVGLE1BQU0sQ0FBQztJQUM5RSxPQUFPO1FBQ0wsTUFBTUcsS0FBSyxJQUFJQyxPQUFPSixPQUFPO1FBQzdCQyxTQUFTQyxhQUFhRyxPQUFPLENBQUNGLElBQUksSUFBSUcsSUFBSTtJQUM1QztJQUNBLE9BQU9MO0FBQ1QifQ==
@@ -0,0 +1,26 @@
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
+ */
8
+ /// <reference types="react" />
9
+ import { type LinkFields } from '../../nodes/LinkNode';
10
+ interface LinkMatcherResult {
11
+ fields?: LinkFields;
12
+ index: number;
13
+ length: number;
14
+ text: string;
15
+ url: string;
16
+ }
17
+ export type LinkMatcher = (text: string) => LinkMatcherResult | null;
18
+ export declare function createLinkMatcherWithRegExp(regExp: RegExp, urlTransformer?: (text: string) => string): (text: string) => {
19
+ index: number;
20
+ length: number;
21
+ text: string;
22
+ url: string;
23
+ };
24
+ export declare function AutoLinkPlugin(): JSX.Element | null;
25
+ export {};
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/field/features/Link/plugins/autoLink/index.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;;AAWH,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAInE,UAAU,iBAAiB;IACzB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,iBAAiB,GAAG,IAAI,CAAA;AAEpE,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,EACd,cAAc,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAuB,UAE3C,MAAM;;;;;EAUrB;AA+PD,wBAAgB,cAAc,IAAI,GAAG,CAAC,OAAO,GAAG,IAAI,CAMnD"}