@payloadcms/richtext-lexical 3.0.0-alpha.18 → 3.0.0-alpha.20

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 (283) hide show
  1. package/components.js +6 -33
  2. package/dist/cell/index.js +29 -80
  3. package/dist/exports/components.js +6 -33
  4. package/dist/field/Field.js +15 -66
  5. package/dist/field/features/align/feature.client.js +21 -31
  6. package/dist/field/features/align/feature.server.js +4 -14
  7. package/dist/field/features/align/floatingSelectToolbarAlignDropdownSection.js +4 -14
  8. package/dist/field/features/blockquote/feature.client.js +20 -30
  9. package/dist/field/features/blockquote/feature.server.js +11 -21
  10. package/dist/field/features/blockquote/markdownTransformer.js +9 -19
  11. package/dist/field/features/blocks/component/BlockContent.js +34 -85
  12. package/dist/field/features/blocks/component/FormSavePlugin.js +7 -17
  13. package/dist/field/features/blocks/component/index.js +25 -76
  14. package/dist/field/features/blocks/drawer/index.js +25 -84
  15. package/dist/field/features/blocks/feature.client.js +15 -25
  16. package/dist/field/features/blocks/feature.server.js +16 -26
  17. package/dist/field/features/blocks/nodes/BlocksNode.d.ts.map +1 -1
  18. package/dist/field/features/blocks/nodes/BlocksNode.js +11 -78
  19. package/dist/field/features/blocks/plugin/commands.js +3 -13
  20. package/dist/field/features/blocks/plugin/index.js +20 -71
  21. package/dist/field/features/blocks/populationPromise.js +6 -16
  22. package/dist/field/features/blocks/validate.js +4 -14
  23. package/dist/field/features/common/floatingSelectToolbarFeaturesButtonsSection/index.js +2 -12
  24. package/dist/field/features/common/floatingSelectToolbarTextDropdownSection/index.js +4 -14
  25. package/dist/field/features/converters/html/converter/converters/linebreak.js +2 -12
  26. package/dist/field/features/converters/html/converter/converters/paragraph.js +4 -14
  27. package/dist/field/features/converters/html/converter/converters/text.js +10 -20
  28. package/dist/field/features/converters/html/converter/defaultConverters.js +8 -18
  29. package/dist/field/features/converters/html/converter/index.js +3 -21
  30. package/dist/field/features/converters/html/converter/types.js +2 -5
  31. package/dist/field/features/converters/html/feature.server.js +2 -12
  32. package/dist/field/features/converters/html/field/index.js +11 -25
  33. package/dist/field/features/createClientComponent.js +6 -14
  34. package/dist/field/features/createFeaturePropComponent.js +5 -15
  35. package/dist/field/features/debug/testrecorder/feature.client.js +5 -15
  36. package/dist/field/features/debug/testrecorder/feature.server.js +4 -14
  37. package/dist/field/features/debug/testrecorder/plugin/index.js +41 -99
  38. package/dist/field/features/debug/treeview/feature.client.js +5 -15
  39. package/dist/field/features/debug/treeview/feature.server.js +4 -14
  40. package/dist/field/features/debug/treeview/plugin/index.js +8 -59
  41. package/dist/field/features/format/bold/feature.client.js +14 -24
  42. package/dist/field/features/format/bold/feature.server.js +8 -18
  43. package/dist/field/features/format/bold/markdownTransformers.js +5 -29
  44. package/dist/field/features/format/common/floatingSelectToolbarSection.js +2 -12
  45. package/dist/field/features/format/inlinecode/feature.client.js +12 -22
  46. package/dist/field/features/format/inlinecode/feature.server.js +6 -16
  47. package/dist/field/features/format/inlinecode/markdownTransformers.js +2 -12
  48. package/dist/field/features/format/italic/feature.client.js +13 -23
  49. package/dist/field/features/format/italic/feature.server.js +7 -17
  50. package/dist/field/features/format/italic/markdownTransformers.js +3 -21
  51. package/dist/field/features/format/strikethrough/feature.client.js +12 -22
  52. package/dist/field/features/format/strikethrough/feature.server.js +6 -16
  53. package/dist/field/features/format/strikethrough/markdownTransformers.js +2 -12
  54. package/dist/field/features/format/subscript/feature.client.js +10 -20
  55. package/dist/field/features/format/subscript/feature.server.js +4 -14
  56. package/dist/field/features/format/superscript/feature.client.js +10 -20
  57. package/dist/field/features/format/superscript/feature.server.js +4 -14
  58. package/dist/field/features/format/underline/feature.client.js +10 -20
  59. package/dist/field/features/format/underline/feature.server.js +4 -14
  60. package/dist/field/features/heading/feature.client.js +28 -37
  61. package/dist/field/features/heading/feature.server.js +12 -22
  62. package/dist/field/features/heading/markdownTransformer.js +8 -18
  63. package/dist/field/features/indent/feature.client.js +13 -23
  64. package/dist/field/features/indent/feature.server.js +4 -14
  65. package/dist/field/features/indent/floatingSelectToolbarIndentSection.js +2 -12
  66. package/dist/field/features/link/drawer/baseFields.js +6 -16
  67. package/dist/field/features/link/drawer/index.js +24 -74
  68. package/dist/field/features/link/drawer/types.js +2 -5
  69. package/dist/field/features/link/feature.client.js +29 -39
  70. package/dist/field/features/link/feature.server.js +22 -32
  71. package/dist/field/features/link/nodes/AutoLinkNode.js +10 -29
  72. package/dist/field/features/link/nodes/LinkNode.js +18 -45
  73. package/dist/field/features/link/nodes/types.js +2 -5
  74. package/dist/field/features/link/plugins/autoLink/index.js +33 -51
  75. package/dist/field/features/link/plugins/clickableLink/index.js +5 -20
  76. package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/commands.js +3 -13
  77. package/dist/field/features/link/plugins/floatingLinkEditor/LinkEditor/index.js +64 -114
  78. package/dist/field/features/link/plugins/floatingLinkEditor/index.js +7 -58
  79. package/dist/field/features/link/plugins/floatingLinkEditor/types.js +5 -5
  80. package/dist/field/features/link/plugins/floatingLinkEditor/utilities.js +6 -14
  81. package/dist/field/features/link/plugins/link/index.js +21 -31
  82. package/dist/field/features/link/populationPromise.js +6 -16
  83. package/dist/field/features/lists/checklist/feature.client.js +21 -31
  84. package/dist/field/features/lists/checklist/feature.server.js +12 -22
  85. package/dist/field/features/lists/checklist/markdownTransformers.js +8 -18
  86. package/dist/field/features/lists/checklist/plugin/index.js +5 -20
  87. package/dist/field/features/lists/common/markdown.js +10 -28
  88. package/dist/field/features/lists/htmlConverter.js +9 -27
  89. package/dist/field/features/lists/orderedlist/feature.client.js +19 -29
  90. package/dist/field/features/lists/orderedlist/feature.server.js +12 -22
  91. package/dist/field/features/lists/orderedlist/markdownTransformer.js +8 -18
  92. package/dist/field/features/lists/plugin/index.js +5 -20
  93. package/dist/field/features/lists/unorderedlist/feature.client.js +19 -29
  94. package/dist/field/features/lists/unorderedlist/feature.server.js +12 -22
  95. package/dist/field/features/lists/unorderedlist/markdownTransformer.js +8 -18
  96. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/client.js +4 -14
  97. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/converter.js +4 -14
  98. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/heading/index.js +6 -16
  99. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/client.js +4 -14
  100. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/converter.js +4 -14
  101. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/link/index.js +6 -16
  102. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/client.js +4 -14
  103. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/converter.js +4 -14
  104. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/list/index.js +6 -16
  105. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/client.js +4 -14
  106. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/converter.js +4 -14
  107. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/listItem/index.js +6 -16
  108. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/client.js +4 -14
  109. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/converter.js +4 -14
  110. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/quote/index.js +6 -16
  111. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/client.js +4 -14
  112. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/converter.js +4 -14
  113. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/unknown/index.js +6 -16
  114. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/client.js +4 -14
  115. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/converter.js +2 -12
  116. package/dist/field/features/migrations/lexicalPluginToLexical/converter/converters/upload/index.js +6 -16
  117. package/dist/field/features/migrations/lexicalPluginToLexical/converter/defaultConverters.js +16 -26
  118. package/dist/field/features/migrations/lexicalPluginToLexical/converter/index.js +5 -29
  119. package/dist/field/features/migrations/lexicalPluginToLexical/converter/types.js +2 -5
  120. package/dist/field/features/migrations/lexicalPluginToLexical/feature.client.js +7 -17
  121. package/dist/field/features/migrations/lexicalPluginToLexical/feature.server.js +9 -19
  122. package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/Component.js +5 -20
  123. package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.d.ts.map +1 -1
  124. package/dist/field/features/migrations/lexicalPluginToLexical/nodes/unknownConvertedNode/index.js +10 -73
  125. package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/client.js +4 -14
  126. package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/converter.js +4 -14
  127. package/dist/field/features/migrations/slateToLexical/converter/converters/blockquote/index.js +6 -16
  128. package/dist/field/features/migrations/slateToLexical/converter/converters/heading/client.js +4 -14
  129. package/dist/field/features/migrations/slateToLexical/converter/converters/heading/converter.js +4 -14
  130. package/dist/field/features/migrations/slateToLexical/converter/converters/heading/index.js +6 -16
  131. package/dist/field/features/migrations/slateToLexical/converter/converters/indent/client.js +4 -14
  132. package/dist/field/features/migrations/slateToLexical/converter/converters/indent/converter.js +4 -14
  133. package/dist/field/features/migrations/slateToLexical/converter/converters/indent/index.js +6 -16
  134. package/dist/field/features/migrations/slateToLexical/converter/converters/link/client.js +4 -14
  135. package/dist/field/features/migrations/slateToLexical/converter/converters/link/converter.js +4 -14
  136. package/dist/field/features/migrations/slateToLexical/converter/converters/link/index.js +6 -16
  137. package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/client.js +4 -14
  138. package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/converter.js +4 -14
  139. package/dist/field/features/migrations/slateToLexical/converter/converters/listItem/index.js +6 -16
  140. package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/client.js +4 -14
  141. package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/converter.js +4 -14
  142. package/dist/field/features/migrations/slateToLexical/converter/converters/orderedList/index.js +6 -16
  143. package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/client.js +4 -14
  144. package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/converter.js +2 -12
  145. package/dist/field/features/migrations/slateToLexical/converter/converters/relationship/index.js +6 -16
  146. package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/client.js +4 -14
  147. package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/converter.js +4 -14
  148. package/dist/field/features/migrations/slateToLexical/converter/converters/unknown/index.js +6 -16
  149. package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/client.js +4 -14
  150. package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/converter.js +4 -14
  151. package/dist/field/features/migrations/slateToLexical/converter/converters/unorderedList/index.js +6 -16
  152. package/dist/field/features/migrations/slateToLexical/converter/converters/upload/client.js +4 -14
  153. package/dist/field/features/migrations/slateToLexical/converter/converters/upload/converter.js +2 -12
  154. package/dist/field/features/migrations/slateToLexical/converter/converters/upload/index.js +6 -16
  155. package/dist/field/features/migrations/slateToLexical/converter/defaultConverters.js +22 -32
  156. package/dist/field/features/migrations/slateToLexical/converter/index.js +14 -41
  157. package/dist/field/features/migrations/slateToLexical/converter/types.js +2 -5
  158. package/dist/field/features/migrations/slateToLexical/feature.client.js +7 -17
  159. package/dist/field/features/migrations/slateToLexical/feature.server.js +9 -19
  160. package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/Component.js +5 -20
  161. package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.d.ts.map +1 -1
  162. package/dist/field/features/migrations/slateToLexical/nodes/unknownConvertedNode/index.js +10 -73
  163. package/dist/field/features/paragraph/feature.client.js +16 -26
  164. package/dist/field/features/paragraph/feature.server.js +4 -14
  165. package/dist/field/features/relationship/drawer/commands.js +3 -13
  166. package/dist/field/features/relationship/drawer/index.js +24 -75
  167. package/dist/field/features/relationship/feature.client.js +15 -25
  168. package/dist/field/features/relationship/feature.server.js +8 -18
  169. package/dist/field/features/relationship/nodes/RelationshipNode.d.ts.map +1 -1
  170. package/dist/field/features/relationship/nodes/RelationshipNode.js +8 -71
  171. package/dist/field/features/relationship/nodes/components/RelationshipComponent.js +35 -86
  172. package/dist/field/features/relationship/plugins/index.js +22 -80
  173. package/dist/field/features/relationship/populationPromise.js +4 -14
  174. package/dist/field/features/relationship/utils/EnabledRelationshipsCondition.js +8 -59
  175. package/dist/field/features/types.js +2 -5
  176. package/dist/field/features/upload/component/ExtraFieldsDrawer/index.js +36 -84
  177. package/dist/field/features/upload/component/index.js +47 -98
  178. package/dist/field/features/upload/drawer/commands.js +3 -13
  179. package/dist/field/features/upload/drawer/index.js +23 -74
  180. package/dist/field/features/upload/feature.client.js +13 -23
  181. package/dist/field/features/upload/feature.server.js +11 -21
  182. package/dist/field/features/upload/nodes/UploadNode.d.ts.map +1 -1
  183. package/dist/field/features/upload/nodes/UploadNode.js +11 -73
  184. package/dist/field/features/upload/plugin/index.js +22 -81
  185. package/dist/field/features/upload/populationPromise.js +6 -16
  186. package/dist/field/features/upload/validate.js +9 -19
  187. package/dist/field/index.d.ts.map +1 -1
  188. package/dist/field/index.js +23 -75
  189. package/dist/field/lexical/EditorPlugin.js +5 -56
  190. package/dist/field/lexical/LexicalEditor.js +39 -94
  191. package/dist/field/lexical/LexicalProvider.js +15 -66
  192. package/dist/field/lexical/config/client/EditorConfigProvider.js +11 -69
  193. package/dist/field/lexical/config/client/default.js +4 -14
  194. package/dist/field/lexical/config/client/loader.js +5 -12
  195. package/dist/field/lexical/config/client/sanitize.js +3 -21
  196. package/dist/field/lexical/config/server/default.js +44 -68
  197. package/dist/field/lexical/config/server/loader.js +3 -21
  198. package/dist/field/lexical/config/server/sanitize.js +5 -23
  199. package/dist/field/lexical/config/types.js +2 -5
  200. package/dist/field/lexical/nodes/index.js +2 -12
  201. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarButton/index.js +19 -70
  202. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/DropDown.js +40 -98
  203. package/dist/field/lexical/plugins/FloatingSelectToolbar/ToolbarDropdown/index.js +11 -34
  204. package/dist/field/lexical/plugins/FloatingSelectToolbar/index.js +55 -105
  205. package/dist/field/lexical/plugins/FloatingSelectToolbar/types.js +2 -5
  206. package/dist/field/lexical/plugins/MarkdownShortcut/index.js +7 -58
  207. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/LexicalMenu.js +39 -64
  208. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/index.js +32 -97
  209. package/dist/field/lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js +3 -21
  210. package/dist/field/lexical/plugins/SlashMenu/index.js +27 -77
  211. package/dist/field/lexical/plugins/SlashMenu/useMenuTriggerMatch.js +8 -16
  212. package/dist/field/lexical/plugins/handles/AddBlockHandlePlugin/index.js +35 -84
  213. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/debounce.js +2 -12
  214. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getBoundingRectWithoutTransform.js +2 -12
  215. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/getNodeCloseToPoint.js +18 -28
  216. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/highlightElemOriginalPosition.js +4 -14
  217. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/index.js +52 -102
  218. package/dist/field/lexical/plugins/handles/DraggableBlockPlugin/setTargetLine.js +8 -18
  219. package/dist/field/lexical/plugins/handles/utils/getCollapsedMargins.js +2 -12
  220. package/dist/field/lexical/plugins/handles/utils/getTopLevelNodeKeys.js +4 -14
  221. package/dist/field/lexical/plugins/handles/utils/isOnHandleElement.js +2 -12
  222. package/dist/field/lexical/plugins/handles/utils/setHandlePosition.js +2 -12
  223. package/dist/field/lexical/theme/EditorTheme.js +3 -13
  224. package/dist/field/lexical/ui/ContentEditable.js +6 -57
  225. package/dist/field/lexical/ui/icons/AI/index.js +7 -22
  226. package/dist/field/lexical/ui/icons/AlignCenter/index.js +6 -21
  227. package/dist/field/lexical/ui/icons/AlignJustify/index.js +6 -21
  228. package/dist/field/lexical/ui/icons/AlignLeft/index.js +6 -21
  229. package/dist/field/lexical/ui/icons/AlignRight/index.js +6 -21
  230. package/dist/field/lexical/ui/icons/Block/index.js +6 -21
  231. package/dist/field/lexical/ui/icons/Blockquote/index.js +4 -19
  232. package/dist/field/lexical/ui/icons/Bold/index.js +4 -19
  233. package/dist/field/lexical/ui/icons/Checklist/index.js +5 -20
  234. package/dist/field/lexical/ui/icons/Code/index.js +5 -20
  235. package/dist/field/lexical/ui/icons/CodeBlock/index.js +5 -20
  236. package/dist/field/lexical/ui/icons/H1/index.js +4 -19
  237. package/dist/field/lexical/ui/icons/H2/index.js +4 -19
  238. package/dist/field/lexical/ui/icons/H3/index.js +4 -19
  239. package/dist/field/lexical/ui/icons/H4/index.js +4 -19
  240. package/dist/field/lexical/ui/icons/H5/index.js +4 -19
  241. package/dist/field/lexical/ui/icons/H6/index.js +4 -19
  242. package/dist/field/lexical/ui/icons/IndentDecrease/index.js +7 -22
  243. package/dist/field/lexical/ui/icons/IndentIncrease/index.js +7 -22
  244. package/dist/field/lexical/ui/icons/Italic/index.js +4 -19
  245. package/dist/field/lexical/ui/icons/Link/index.js +7 -22
  246. package/dist/field/lexical/ui/icons/OrderedList/index.js +8 -23
  247. package/dist/field/lexical/ui/icons/Relationship/index.js +7 -22
  248. package/dist/field/lexical/ui/icons/Strikethrough/index.js +5 -20
  249. package/dist/field/lexical/ui/icons/Subscript/index.js +4 -19
  250. package/dist/field/lexical/ui/icons/Superscript/index.js +4 -19
  251. package/dist/field/lexical/ui/icons/Text/index.js +4 -19
  252. package/dist/field/lexical/ui/icons/Underline/index.js +5 -20
  253. package/dist/field/lexical/ui/icons/UnorderedList/index.js +9 -24
  254. package/dist/field/lexical/ui/icons/Upload/index.js +6 -21
  255. package/dist/field/lexical/utils/canUseDOM.js +2 -12
  256. package/dist/field/lexical/utils/cloneDeep.js +2 -12
  257. package/dist/field/lexical/utils/environment.js +13 -51
  258. package/dist/field/lexical/utils/getDOMRangeRect.js +2 -12
  259. package/dist/field/lexical/utils/getSelectedNode.js +5 -15
  260. package/dist/field/lexical/utils/guard.js +2 -12
  261. package/dist/field/lexical/utils/invariant.js +2 -12
  262. package/dist/field/lexical/utils/joinClasses.js +2 -12
  263. package/dist/field/lexical/utils/markdown/createBlockNode.js +2 -12
  264. package/dist/field/lexical/utils/nodeFormat.js +17 -61
  265. package/dist/field/lexical/utils/point.js +3 -21
  266. package/dist/field/lexical/utils/rect.js +4 -14
  267. package/dist/field/lexical/utils/setFloatingElemPosition.js +5 -12
  268. package/dist/field/lexical/utils/setFloatingElemPositionForLinkEditor.js +2 -12
  269. package/dist/field/lexical/utils/swipe.js +5 -29
  270. package/dist/field/lexical/utils/url.js +3 -21
  271. package/dist/generateComponentMap.js +10 -25
  272. package/dist/generateSchemaMap.js +4 -14
  273. package/dist/index.d.ts.map +1 -1
  274. package/dist/index.js +102 -490
  275. package/dist/populate/defaultValue.js +3 -21
  276. package/dist/populate/populate.js +2 -12
  277. package/dist/populate/recurseNestedFields.js +4 -14
  278. package/dist/populate/richTextRelationshipPromise.js +3 -21
  279. package/dist/types.js +2 -5
  280. package/dist/useLexicalFeature.js +6 -16
  281. package/dist/validate/index.js +6 -16
  282. package/dist/validate/validateNodes.js +2 -12
  283. package/package.json +9 -8
@@ -1,94 +1,44 @@
1
1
  'use client';
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "LinkEditor", {
7
- enumerable: true,
8
- get: function() {
9
- return LinkEditor;
10
- }
11
- });
12
- const _modal = require("@faceless-ui/modal");
13
- const _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
14
- const _utils = require("@lexical/utils");
15
- const _translations = require("@payloadcms/translations");
16
- const _ui = require("@payloadcms/ui");
17
- const _lexical = require("lexical");
18
- const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
19
- const _EditorConfigProvider = require("../../../../../lexical/config/client/EditorConfigProvider");
20
- const _getSelectedNode = require("../../../../../lexical/utils/getSelectedNode");
21
- const _setFloatingElemPositionForLinkEditor = require("../../../../../lexical/utils/setFloatingElemPositionForLinkEditor");
22
- const _drawer = require("../../../drawer");
23
- const _AutoLinkNode = require("../../../nodes/AutoLinkNode");
24
- const _LinkNode = require("../../../nodes/LinkNode");
25
- const _commands = require("./commands");
26
- function _getRequireWildcardCache(nodeInterop) {
27
- if (typeof WeakMap !== "function") return null;
28
- var cacheBabelInterop = new WeakMap();
29
- var cacheNodeInterop = new WeakMap();
30
- return (_getRequireWildcardCache = function(nodeInterop) {
31
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
32
- })(nodeInterop);
33
- }
34
- function _interop_require_wildcard(obj, nodeInterop) {
35
- if (!nodeInterop && obj && obj.__esModule) {
36
- return obj;
37
- }
38
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
39
- return {
40
- default: obj
41
- };
42
- }
43
- var cache = _getRequireWildcardCache(nodeInterop);
44
- if (cache && cache.has(obj)) {
45
- return cache.get(obj);
46
- }
47
- var newObj = {
48
- __proto__: null
49
- };
50
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
51
- for(var key in obj){
52
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
53
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
54
- if (desc && (desc.get || desc.set)) {
55
- Object.defineProperty(newObj, key, desc);
56
- } else {
57
- newObj[key] = obj[key];
58
- }
59
- }
60
- }
61
- newObj.default = obj;
62
- if (cache) {
63
- cache.set(obj, newObj);
64
- }
65
- return newObj;
66
- }
67
- function LinkEditor({ anchorElem }) {
68
- const [editor] = (0, _LexicalComposerContext.useLexicalComposerContext)();
69
- const editorRef = (0, _react.useRef)(null);
70
- const [linkUrl, setLinkUrl] = (0, _react.useState)('');
71
- const [linkLabel, setLinkLabel] = (0, _react.useState)('');
72
- const { uuid } = (0, _EditorConfigProvider.useEditorConfigContext)();
73
- const config = (0, _ui.useConfig)();
74
- const { i18n, t } = (0, _ui.useTranslation)();
75
- const [stateData, setStateData] = (0, _react.useState)(null);
76
- const { closeModal, toggleModal } = (0, _modal.useModal)();
77
- const editDepth = (0, _ui.useEditDepth)();
78
- const [isLink, setIsLink] = (0, _react.useState)(false);
79
- const [isAutoLink, setIsAutoLink] = (0, _react.useState)(false);
80
- const drawerSlug = (0, _ui.formatDrawerSlug)({
2
+ import { useModal } from '@faceless-ui/modal';
3
+ import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
4
+ import { $findMatchingParent, mergeRegister } from '@lexical/utils';
5
+ import { getTranslation } from '@payloadcms/translations';
6
+ import { formatDrawerSlug, useConfig, useEditDepth, useTranslation } from '@payloadcms/ui';
7
+ import { $getSelection, $isRangeSelection, COMMAND_PRIORITY_HIGH, COMMAND_PRIORITY_LOW, KEY_ESCAPE_COMMAND, SELECTION_CHANGE_COMMAND } from 'lexical';
8
+ import React, { useCallback, useEffect, useRef, useState } from 'react';
9
+ import { useEditorConfigContext } from '../../../../../lexical/config/client/EditorConfigProvider';
10
+ import { getSelectedNode } from '../../../../../lexical/utils/getSelectedNode';
11
+ import { setFloatingElemPositionForLinkEditor } from '../../../../../lexical/utils/setFloatingElemPositionForLinkEditor';
12
+ import { LinkDrawer } from '../../../drawer';
13
+ import { $isAutoLinkNode } from '../../../nodes/AutoLinkNode';
14
+ import { $createLinkNode } from '../../../nodes/LinkNode';
15
+ import { $isLinkNode, TOGGLE_LINK_COMMAND } from '../../../nodes/LinkNode';
16
+ import { TOGGLE_LINK_WITH_MODAL_COMMAND } from './commands';
17
+ export function LinkEditor({ anchorElem }) {
18
+ const [editor] = useLexicalComposerContext();
19
+ const editorRef = useRef(null);
20
+ const [linkUrl, setLinkUrl] = useState('');
21
+ const [linkLabel, setLinkLabel] = useState('');
22
+ const { uuid } = useEditorConfigContext();
23
+ const config = useConfig();
24
+ const { i18n, t } = useTranslation();
25
+ const [stateData, setStateData] = useState(null);
26
+ const { closeModal, toggleModal } = useModal();
27
+ const editDepth = useEditDepth();
28
+ const [isLink, setIsLink] = useState(false);
29
+ const [isAutoLink, setIsAutoLink] = useState(false);
30
+ const drawerSlug = formatDrawerSlug({
81
31
  slug: `lexical-rich-text-link-` + uuid,
82
32
  depth: editDepth
83
33
  });
84
- const updateLinkEditor = (0, _react.useCallback)(()=>{
85
- const selection = (0, _lexical.$getSelection)();
34
+ const updateLinkEditor = useCallback(()=>{
35
+ const selection = $getSelection();
86
36
  let selectedNodeDomRect = null;
87
37
  // Handle the data displayed in the floating link editor & drawer when you click on a link node
88
- if ((0, _lexical.$isRangeSelection)(selection)) {
89
- const node = (0, _getSelectedNode.getSelectedNode)(selection);
38
+ if ($isRangeSelection(selection)) {
39
+ const node = getSelectedNode(selection);
90
40
  selectedNodeDomRect = editor.getElementByKey(node.getKey())?.getBoundingClientRect();
91
- const linkParent = (0, _utils.$findMatchingParent)(node, _LinkNode.$isLinkNode);
41
+ const linkParent = $findMatchingParent(node, $isLinkNode);
92
42
  if (linkParent == null) {
93
43
  setIsLink(false);
94
44
  setIsAutoLink(false);
@@ -115,13 +65,13 @@ function LinkEditor({ anchorElem }) {
115
65
  setLinkUrl(`/admin/collections/${linkParent.getFields()?.doc?.relationTo}/${linkParent.getFields()?.doc?.value}`);
116
66
  const relatedField = config.collections.find((coll)=>coll.slug === linkParent.getFields()?.doc?.relationTo);
117
67
  const label = t('fields:linkedTo', {
118
- label: (0, _translations.getTranslation)(relatedField.labels.singular, i18n)
68
+ label: getTranslation(relatedField.labels.singular, i18n)
119
69
  }).replace(/<[^>]*>?/g, '');
120
70
  setLinkLabel(label);
121
71
  }
122
72
  setStateData(data);
123
73
  setIsLink(true);
124
- if ((0, _AutoLinkNode.$isAutoLinkNode)(linkParent)) {
74
+ if ($isAutoLinkNode(linkParent)) {
125
75
  setIsAutoLink(true);
126
76
  } else {
127
77
  setIsAutoLink(false);
@@ -142,11 +92,11 @@ function LinkEditor({ anchorElem }) {
142
92
  }
143
93
  if (selectedNodeDomRect != null) {
144
94
  selectedNodeDomRect.y += 40;
145
- (0, _setFloatingElemPositionForLinkEditor.setFloatingElemPositionForLinkEditor)(selectedNodeDomRect, editorElem, anchorElem);
95
+ setFloatingElemPositionForLinkEditor(selectedNodeDomRect, editorElem, anchorElem);
146
96
  }
147
97
  } else if (activeElement == null || activeElement.className !== 'link-input') {
148
98
  if (rootElement !== null) {
149
- (0, _setFloatingElemPositionForLinkEditor.setFloatingElemPositionForLinkEditor)(null, editorElem, anchorElem);
99
+ setFloatingElemPositionForLinkEditor(null, editorElem, anchorElem);
150
100
  }
151
101
  setLinkUrl('');
152
102
  setLinkLabel('');
@@ -159,21 +109,21 @@ function LinkEditor({ anchorElem }) {
159
109
  t,
160
110
  i18n
161
111
  ]);
162
- (0, _react.useEffect)(()=>{
163
- return (0, _utils.mergeRegister)(editor.registerCommand(_commands.TOGGLE_LINK_WITH_MODAL_COMMAND, (payload)=>{
164
- editor.dispatchCommand(_LinkNode.TOGGLE_LINK_COMMAND, payload);
112
+ useEffect(()=>{
113
+ return mergeRegister(editor.registerCommand(TOGGLE_LINK_WITH_MODAL_COMMAND, (payload)=>{
114
+ editor.dispatchCommand(TOGGLE_LINK_COMMAND, payload);
165
115
  // Now, open the modal
166
116
  updateLinkEditor();
167
117
  toggleModal(drawerSlug);
168
118
  return true;
169
- }, _lexical.COMMAND_PRIORITY_LOW));
119
+ }, COMMAND_PRIORITY_LOW));
170
120
  }, [
171
121
  editor,
172
122
  updateLinkEditor,
173
123
  toggleModal,
174
124
  drawerSlug
175
125
  ]);
176
- (0, _react.useEffect)(()=>{
126
+ useEffect(()=>{
177
127
  if (!isLink && editorRef) {
178
128
  editorRef.current.style.opacity = '0';
179
129
  editorRef.current.style.transform = 'translate(-10000px, -10000px)';
@@ -181,7 +131,7 @@ function LinkEditor({ anchorElem }) {
181
131
  }, [
182
132
  isLink
183
133
  ]);
184
- (0, _react.useEffect)(()=>{
134
+ useEffect(()=>{
185
135
  const scrollerElem = anchorElem.parentElement;
186
136
  const update = ()=>{
187
137
  editor.getEditorState().read(()=>{
@@ -203,29 +153,29 @@ function LinkEditor({ anchorElem }) {
203
153
  editor,
204
154
  updateLinkEditor
205
155
  ]);
206
- (0, _react.useEffect)(()=>{
207
- return (0, _utils.mergeRegister)(editor.registerUpdateListener(({ editorState })=>{
156
+ useEffect(()=>{
157
+ return mergeRegister(editor.registerUpdateListener(({ editorState })=>{
208
158
  editorState.read(()=>{
209
159
  void updateLinkEditor();
210
160
  });
211
- }), editor.registerCommand(_lexical.SELECTION_CHANGE_COMMAND, ()=>{
161
+ }), editor.registerCommand(SELECTION_CHANGE_COMMAND, ()=>{
212
162
  void updateLinkEditor();
213
163
  return true;
214
- }, _lexical.COMMAND_PRIORITY_LOW), editor.registerCommand(_lexical.KEY_ESCAPE_COMMAND, ()=>{
164
+ }, COMMAND_PRIORITY_LOW), editor.registerCommand(KEY_ESCAPE_COMMAND, ()=>{
215
165
  if (isLink) {
216
166
  setIsLink(false);
217
167
  setIsAutoLink(false);
218
168
  return true;
219
169
  }
220
170
  return false;
221
- }, _lexical.COMMAND_PRIORITY_HIGH));
171
+ }, COMMAND_PRIORITY_HIGH));
222
172
  }, [
223
173
  editor,
224
174
  updateLinkEditor,
225
175
  setIsLink,
226
176
  isLink
227
177
  ]);
228
- (0, _react.useEffect)(()=>{
178
+ useEffect(()=>{
229
179
  editor.getEditorState().read(()=>{
230
180
  void updateLinkEditor();
231
181
  });
@@ -233,16 +183,16 @@ function LinkEditor({ anchorElem }) {
233
183
  editor,
234
184
  updateLinkEditor
235
185
  ]);
236
- return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement("div", {
186
+ return /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement("div", {
237
187
  className: "link-editor",
238
188
  ref: editorRef
239
- }, /*#__PURE__*/ _react.default.createElement("div", {
189
+ }, /*#__PURE__*/ React.createElement("div", {
240
190
  className: "link-input"
241
- }, /*#__PURE__*/ _react.default.createElement("a", {
191
+ }, /*#__PURE__*/ React.createElement("a", {
242
192
  href: linkUrl,
243
193
  rel: "noopener noreferrer",
244
194
  target: "_blank"
245
- }, linkLabel != null && linkLabel.length > 0 ? linkLabel : linkUrl), editor.isEditable() && /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement("button", {
195
+ }, linkLabel != null && linkLabel.length > 0 ? linkLabel : linkUrl), editor.isEditable() && /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement("button", {
246
196
  "aria-label": "Edit link",
247
197
  className: "link-edit",
248
198
  onClick: ()=>{
@@ -253,29 +203,29 @@ function LinkEditor({ anchorElem }) {
253
203
  },
254
204
  tabIndex: 0,
255
205
  type: "button"
256
- }), !isAutoLink && /*#__PURE__*/ _react.default.createElement("button", {
206
+ }), !isAutoLink && /*#__PURE__*/ React.createElement("button", {
257
207
  "aria-label": "Remove link",
258
208
  className: "link-trash",
259
209
  onClick: ()=>{
260
- editor.dispatchCommand(_LinkNode.TOGGLE_LINK_COMMAND, null);
210
+ editor.dispatchCommand(TOGGLE_LINK_COMMAND, null);
261
211
  },
262
212
  onMouseDown: (event)=>{
263
213
  event.preventDefault();
264
214
  },
265
215
  tabIndex: 0,
266
216
  type: "button"
267
- })))), /*#__PURE__*/ _react.default.createElement(_drawer.LinkDrawer, {
217
+ })))), /*#__PURE__*/ React.createElement(LinkDrawer, {
268
218
  drawerSlug: drawerSlug,
269
219
  handleModalSubmit: (fields, data)=>{
270
220
  closeModal(drawerSlug);
271
221
  const newLinkPayload = data;
272
222
  // See: https://github.com/facebook/lexical/pull/5536. This updates autolink nodes to link nodes whenever a change was made (which is good!).
273
223
  editor.update(()=>{
274
- const selection = (0, _lexical.$getSelection)();
275
- if ((0, _lexical.$isRangeSelection)(selection)) {
276
- const parent = (0, _getSelectedNode.getSelectedNode)(selection).getParent();
277
- if ((0, _AutoLinkNode.$isAutoLinkNode)(parent)) {
278
- const linkNode = (0, _LinkNode.$createLinkNode)({
224
+ const selection = $getSelection();
225
+ if ($isRangeSelection(selection)) {
226
+ const parent = getSelectedNode(selection).getParent();
227
+ if ($isAutoLinkNode(parent)) {
228
+ const linkNode = $createLinkNode({
279
229
  fields: newLinkPayload.fields
280
230
  });
281
231
  parent.replace(linkNode, true);
@@ -284,10 +234,10 @@ function LinkEditor({ anchorElem }) {
284
234
  });
285
235
  // Needs to happen AFTER a potential auto link => link node conversion, as otherwise, the updated text to display may be lost due to
286
236
  // it being applied to the auto link node instead of the link node.
287
- editor.dispatchCommand(_LinkNode.TOGGLE_LINK_COMMAND, newLinkPayload);
237
+ editor.dispatchCommand(TOGGLE_LINK_COMMAND, newLinkPayload);
288
238
  },
289
239
  stateData: stateData
290
240
  }));
291
241
  }
292
242
 
293
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9saW5rL3BsdWdpbnMvZmxvYXRpbmdMaW5rRWRpdG9yL0xpbmtFZGl0b3IvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuaW1wb3J0IHR5cGUgeyBGb3JtU3RhdGUgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBEYXRhIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHsgdXNlTW9kYWwgfSBmcm9tICdAZmFjZWxlc3MtdWkvbW9kYWwnXG5pbXBvcnQgeyB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dCdcbmltcG9ydCB7ICRmaW5kTWF0Y2hpbmdQYXJlbnQsIG1lcmdlUmVnaXN0ZXIgfSBmcm9tICdAbGV4aWNhbC91dGlscydcbmltcG9ydCB7IGdldFRyYW5zbGF0aW9uIH0gZnJvbSAnQHBheWxvYWRjbXMvdHJhbnNsYXRpb25zJ1xuaW1wb3J0IHsgZm9ybWF0RHJhd2VyU2x1ZywgdXNlQ29uZmlnLCB1c2VFZGl0RGVwdGgsIHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAnQHBheWxvYWRjbXMvdWknXG5pbXBvcnQge1xuICAkZ2V0U2VsZWN0aW9uLFxuICAkaXNSYW5nZVNlbGVjdGlvbixcbiAgQ09NTUFORF9QUklPUklUWV9ISUdILFxuICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgS0VZX0VTQ0FQRV9DT01NQU5ELFxuICBTRUxFQ1RJT05fQ0hBTkdFX0NPTU1BTkQsXG59IGZyb20gJ2xleGljYWwnXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgdHlwZSB7IExpbmtOb2RlIH0gZnJvbSAnLi4vLi4vLi4vbm9kZXMvTGlua05vZGUnXG5pbXBvcnQgdHlwZSB7IExpbmtQYXlsb2FkIH0gZnJvbSAnLi4vdHlwZXMnXG5cbmltcG9ydCB7IHVzZUVkaXRvckNvbmZpZ0NvbnRleHQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9sZXhpY2FsL2NvbmZpZy9jbGllbnQvRWRpdG9yQ29uZmlnUHJvdmlkZXInXG5pbXBvcnQgeyBnZXRTZWxlY3RlZE5vZGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9sZXhpY2FsL3V0aWxzL2dldFNlbGVjdGVkTm9kZSdcbmltcG9ydCB7IHNldEZsb2F0aW5nRWxlbVBvc2l0aW9uRm9yTGlua0VkaXRvciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xleGljYWwvdXRpbHMvc2V0RmxvYXRpbmdFbGVtUG9zaXRpb25Gb3JMaW5rRWRpdG9yJ1xuaW1wb3J0IHsgTGlua0RyYXdlciB9IGZyb20gJy4uLy4uLy4uL2RyYXdlcidcbmltcG9ydCB7ICRpc0F1dG9MaW5rTm9kZSB9IGZyb20gJy4uLy4uLy4uL25vZGVzL0F1dG9MaW5rTm9kZSdcbmltcG9ydCB7ICRjcmVhdGVMaW5rTm9kZSB9IGZyb20gJy4uLy4uLy4uL25vZGVzL0xpbmtOb2RlJ1xuaW1wb3J0IHsgJGlzTGlua05vZGUsIFRPR0dMRV9MSU5LX0NPTU1BTkQgfSBmcm9tICcuLi8uLi8uLi9ub2Rlcy9MaW5rTm9kZSdcbmltcG9ydCB7IFRPR0dMRV9MSU5LX1dJVEhfTU9EQUxfQ09NTUFORCB9IGZyb20gJy4vY29tbWFuZHMnXG5cbmV4cG9ydCBmdW5jdGlvbiBMaW5rRWRpdG9yKHsgYW5jaG9yRWxlbSB9OiB7IGFuY2hvckVsZW06IEhUTUxFbGVtZW50IH0pOiBSZWFjdC5SZWFjdE5vZGUge1xuICBjb25zdCBbZWRpdG9yXSA9IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQoKVxuXG4gIGNvbnN0IGVkaXRvclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudCB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtsaW5rVXJsLCBzZXRMaW5rVXJsXSA9IHVzZVN0YXRlKCcnKVxuICBjb25zdCBbbGlua0xhYmVsLCBzZXRMaW5rTGFiZWxdID0gdXNlU3RhdGUoJycpXG5cbiAgY29uc3QgeyB1dWlkIH0gPSB1c2VFZGl0b3JDb25maWdDb250ZXh0KClcblxuICBjb25zdCBjb25maWcgPSB1c2VDb25maWcoKVxuXG4gIGNvbnN0IHsgaTE4biwgdCB9ID0gdXNlVHJhbnNsYXRpb24oKVxuXG4gIGNvbnN0IFtzdGF0ZURhdGEsIHNldFN0YXRlRGF0YV0gPSB1c2VTdGF0ZTxMaW5rUGF5bG9hZD4obnVsbClcblxuICBjb25zdCB7IGNsb3NlTW9kYWwsIHRvZ2dsZU1vZGFsIH0gPSB1c2VNb2RhbCgpXG4gIGNvbnN0IGVkaXREZXB0aCA9IHVzZUVkaXREZXB0aCgpXG4gIGNvbnN0IFtpc0xpbmssIHNldElzTGlua10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2lzQXV0b0xpbmssIHNldElzQXV0b0xpbmtdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgY29uc3QgZHJhd2VyU2x1ZyA9IGZvcm1hdERyYXdlclNsdWcoe1xuICAgIHNsdWc6IGBsZXhpY2FsLXJpY2gtdGV4dC1saW5rLWAgKyB1dWlkLFxuICAgIGRlcHRoOiBlZGl0RGVwdGgsXG4gIH0pXG5cbiAgY29uc3QgdXBkYXRlTGlua0VkaXRvciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSAkZ2V0U2VsZWN0aW9uKClcbiAgICBsZXQgc2VsZWN0ZWROb2RlRG9tUmVjdDogRE9NUmVjdCB8IHVuZGVmaW5lZCA9IG51bGxcblxuICAgIC8vIEhhbmRsZSB0aGUgZGF0YSBkaXNwbGF5ZWQgaW4gdGhlIGZsb2F0aW5nIGxpbmsgZWRpdG9yICYgZHJhd2VyIHdoZW4geW91IGNsaWNrIG9uIGEgbGluayBub2RlXG4gICAgaWYgKCRpc1JhbmdlU2VsZWN0aW9uKHNlbGVjdGlvbikpIHtcbiAgICAgIGNvbnN0IG5vZGUgPSBnZXRTZWxlY3RlZE5vZGUoc2VsZWN0aW9uKVxuICAgICAgc2VsZWN0ZWROb2RlRG9tUmVjdCA9IGVkaXRvci5nZXRFbGVtZW50QnlLZXkobm9kZS5nZXRLZXkoKSk/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICBjb25zdCBsaW5rUGFyZW50OiBMaW5rTm9kZSA9ICRmaW5kTWF0Y2hpbmdQYXJlbnQobm9kZSwgJGlzTGlua05vZGUpXG4gICAgICBpZiAobGlua1BhcmVudCA9PSBudWxsKSB7XG4gICAgICAgIHNldElzTGluayhmYWxzZSlcbiAgICAgICAgc2V0SXNBdXRvTGluayhmYWxzZSlcbiAgICAgICAgc2V0TGlua1VybCgnJylcbiAgICAgICAgc2V0TGlua0xhYmVsKCcnKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gSW5pdGlhbCBzdGF0ZTpcbiAgICAgIGNvbnN0IGRhdGE6IExpbmtQYXlsb2FkID0ge1xuICAgICAgICBmaWVsZHM6IHtcbiAgICAgICAgICBkb2M6IHVuZGVmaW5lZCxcbiAgICAgICAgICBsaW5rVHlwZTogdW5kZWZpbmVkLFxuICAgICAgICAgIG5ld1RhYjogdW5kZWZpbmVkLFxuICAgICAgICAgIHVybDogJycsXG4gICAgICAgICAgLi4ubGlua1BhcmVudC5nZXRGaWVsZHMoKSxcbiAgICAgICAgfSxcbiAgICAgICAgdGV4dDogbGlua1BhcmVudC5nZXRUZXh0Q29udGVudCgpLFxuICAgICAgfVxuXG4gICAgICBpZiAobGlua1BhcmVudC5nZXRGaWVsZHMoKT8ubGlua1R5cGUgPT09ICdjdXN0b20nKSB7XG4gICAgICAgIHNldExpbmtVcmwobGlua1BhcmVudC5nZXRGaWVsZHMoKT8udXJsID8/ICcnKVxuICAgICAgICBzZXRMaW5rTGFiZWwoJycpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBpbnRlcm5hbCBsaW5rXG4gICAgICAgIHNldExpbmtVcmwoXG4gICAgICAgICAgYC9hZG1pbi9jb2xsZWN0aW9ucy8ke2xpbmtQYXJlbnQuZ2V0RmllbGRzKCk/LmRvYz8ucmVsYXRpb25Ub30vJHtcbiAgICAgICAgICAgIGxpbmtQYXJlbnQuZ2V0RmllbGRzKCk/LmRvYz8udmFsdWVcbiAgICAgICAgICB9YCxcbiAgICAgICAgKVxuXG4gICAgICAgIGNvbnN0IHJlbGF0ZWRGaWVsZCA9IGNvbmZpZy5jb2xsZWN0aW9ucy5maW5kKFxuICAgICAgICAgIChjb2xsKSA9PiBjb2xsLnNsdWcgPT09IGxpbmtQYXJlbnQuZ2V0RmllbGRzKCk/LmRvYz8ucmVsYXRpb25UbyxcbiAgICAgICAgKVxuICAgICAgICBjb25zdCBsYWJlbCA9IHQoJ2ZpZWxkczpsaW5rZWRUbycsIHtcbiAgICAgICAgICBsYWJlbDogZ2V0VHJhbnNsYXRpb24ocmVsYXRlZEZpZWxkLmxhYmVscy5zaW5ndWxhciwgaTE4biksXG4gICAgICAgIH0pLnJlcGxhY2UoLzxbXj5dKj4/L2csICcnKVxuICAgICAgICBzZXRMaW5rTGFiZWwobGFiZWwpXG4gICAgICB9XG5cbiAgICAgIHNldFN0YXRlRGF0YShkYXRhKVxuICAgICAgc2V0SXNMaW5rKHRydWUpXG4gICAgICBpZiAoJGlzQXV0b0xpbmtOb2RlKGxpbmtQYXJlbnQpKSB7XG4gICAgICAgIHNldElzQXV0b0xpbmsodHJ1ZSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldElzQXV0b0xpbmsoZmFsc2UpXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZWRpdG9yRWxlbSA9IGVkaXRvclJlZi5jdXJyZW50XG4gICAgY29uc3QgbmF0aXZlU2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpXG4gICAgY29uc3QgeyBhY3RpdmVFbGVtZW50IH0gPSBkb2N1bWVudFxuXG4gICAgaWYgKGVkaXRvckVsZW0gPT09IG51bGwpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHJvb3RFbGVtZW50ID0gZWRpdG9yLmdldFJvb3RFbGVtZW50KClcblxuICAgIGlmIChcbiAgICAgIHNlbGVjdGlvbiAhPT0gbnVsbCAmJlxuICAgICAgbmF0aXZlU2VsZWN0aW9uICE9PSBudWxsICYmXG4gICAgICByb290RWxlbWVudCAhPT0gbnVsbCAmJlxuICAgICAgcm9vdEVsZW1lbnQuY29udGFpbnMobmF0aXZlU2VsZWN0aW9uLmFuY2hvck5vZGUpXG4gICAgKSB7XG4gICAgICBpZiAoIXNlbGVjdGVkTm9kZURvbVJlY3QpIHtcbiAgICAgICAgLy8gR2V0IHRoZSBET00gcmVjdCBvZiB0aGUgc2VsZWN0ZWQgbm9kZSB1c2luZyB0aGUgbmF0aXZlIHNlbGVjdGlvbi4gVGhpcyBzb21ldGltZXMgcHJvZHVjZXMgdGhlIHdyb25nXG4gICAgICAgIC8vIHJlc3VsdCwgd2hpY2ggaXMgd2h5IHdlIHVzZSBsZXhpY2FsJ3Mgc2VsZWN0aW9uIHByZWZlcmFibHkuXG4gICAgICAgIHNlbGVjdGVkTm9kZURvbVJlY3QgPSBuYXRpdmVTZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgfVxuXG4gICAgICBpZiAoc2VsZWN0ZWROb2RlRG9tUmVjdCAhPSBudWxsKSB7XG4gICAgICAgIHNlbGVjdGVkTm9kZURvbVJlY3QueSArPSA0MFxuICAgICAgICBzZXRGbG9hdGluZ0VsZW1Qb3NpdGlvbkZvckxpbmtFZGl0b3Ioc2VsZWN0ZWROb2RlRG9tUmVjdCwgZWRpdG9yRWxlbSwgYW5jaG9yRWxlbSlcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGFjdGl2ZUVsZW1lbnQgPT0gbnVsbCB8fCBhY3RpdmVFbGVtZW50LmNsYXNzTmFtZSAhPT0gJ2xpbmstaW5wdXQnKSB7XG4gICAgICBpZiAocm9vdEVsZW1lbnQgIT09IG51bGwpIHtcbiAgICAgICAgc2V0RmxvYXRpbmdFbGVtUG9zaXRpb25Gb3JMaW5rRWRpdG9yKG51bGwsIGVkaXRvckVsZW0sIGFuY2hvckVsZW0pXG4gICAgICB9XG4gICAgICBzZXRMaW5rVXJsKCcnKVxuICAgICAgc2V0TGlua0xhYmVsKCcnKVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlXG4gIH0sIFthbmNob3JFbGVtLCBlZGl0b3IsIGNvbmZpZywgdCwgaTE4bl0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gbWVyZ2VSZWdpc3RlcihcbiAgICAgIGVkaXRvci5yZWdpc3RlckNvbW1hbmQoXG4gICAgICAgIFRPR0dMRV9MSU5LX1dJVEhfTU9EQUxfQ09NTUFORCxcbiAgICAgICAgKHBheWxvYWQ6IExpbmtQYXlsb2FkKSA9PiB7XG4gICAgICAgICAgZWRpdG9yLmRpc3BhdGNoQ29tbWFuZChUT0dHTEVfTElOS19DT01NQU5ELCBwYXlsb2FkKVxuXG4gICAgICAgICAgLy8gTm93LCBvcGVuIHRoZSBtb2RhbFxuICAgICAgICAgIHVwZGF0ZUxpbmtFZGl0b3IoKVxuICAgICAgICAgIHRvZ2dsZU1vZGFsKGRyYXdlclNsdWcpXG5cbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgKVxuICB9LCBbZWRpdG9yLCB1cGRhdGVMaW5rRWRpdG9yLCB0b2dnbGVNb2RhbCwgZHJhd2VyU2x1Z10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzTGluayAmJiBlZGl0b3JSZWYpIHtcbiAgICAgIGVkaXRvclJlZi5jdXJyZW50LnN0eWxlLm9wYWNpdHkgPSAnMCdcbiAgICAgIGVkaXRvclJlZi5jdXJyZW50LnN0eWxlLnRyYW5zZm9ybSA9ICd0cmFuc2xhdGUoLTEwMDAwcHgsIC0xMDAwMHB4KSdcbiAgICB9XG4gIH0sIFtpc0xpbmtdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgc2Nyb2xsZXJFbGVtID0gYW5jaG9yRWxlbS5wYXJlbnRFbGVtZW50XG5cbiAgICBjb25zdCB1cGRhdGUgPSAoKTogdm9pZCA9PiB7XG4gICAgICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICAgICAgdm9pZCB1cGRhdGVMaW5rRWRpdG9yKClcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHVwZGF0ZSlcblxuICAgIGlmIChzY3JvbGxlckVsZW0gIT0gbnVsbCkge1xuICAgICAgc2Nyb2xsZXJFbGVtLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHVwZGF0ZSlcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHVwZGF0ZSlcblxuICAgICAgaWYgKHNjcm9sbGVyRWxlbSAhPSBudWxsKSB7XG4gICAgICAgIHNjcm9sbGVyRWxlbS5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB1cGRhdGUpXG4gICAgICB9XG4gICAgfVxuICB9LCBbYW5jaG9yRWxlbS5wYXJlbnRFbGVtZW50LCBlZGl0b3IsIHVwZGF0ZUxpbmtFZGl0b3JdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuIG1lcmdlUmVnaXN0ZXIoXG4gICAgICBlZGl0b3IucmVnaXN0ZXJVcGRhdGVMaXN0ZW5lcigoeyBlZGl0b3JTdGF0ZSB9KSA9PiB7XG4gICAgICAgIGVkaXRvclN0YXRlLnJlYWQoKCkgPT4ge1xuICAgICAgICAgIHZvaWQgdXBkYXRlTGlua0VkaXRvcigpXG4gICAgICAgIH0pXG4gICAgICB9KSxcblxuICAgICAgZWRpdG9yLnJlZ2lzdGVyQ29tbWFuZChcbiAgICAgICAgU0VMRUNUSU9OX0NIQU5HRV9DT01NQU5ELFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdm9pZCB1cGRhdGVMaW5rRWRpdG9yKClcbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgICBlZGl0b3IucmVnaXN0ZXJDb21tYW5kKFxuICAgICAgICBLRVlfRVNDQVBFX0NPTU1BTkQsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBpZiAoaXNMaW5rKSB7XG4gICAgICAgICAgICBzZXRJc0xpbmsoZmFsc2UpXG4gICAgICAgICAgICBzZXRJc0F1dG9MaW5rKGZhbHNlKVxuICAgICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIENPTU1BTkRfUFJJT1JJVFlfSElHSCxcbiAgICAgICksXG4gICAgKVxuICB9LCBbZWRpdG9yLCB1cGRhdGVMaW5rRWRpdG9yLCBzZXRJc0xpbmssIGlzTGlua10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICAgIHZvaWQgdXBkYXRlTGlua0VkaXRvcigpXG4gICAgfSlcbiAgfSwgW2VkaXRvciwgdXBkYXRlTGlua0VkaXRvcl0pXG5cbiAgcmV0dXJuIChcbiAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImxpbmstZWRpdG9yXCIgcmVmPXtlZGl0b3JSZWZ9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxpbmstaW5wdXRcIj5cbiAgICAgICAgICA8YSBocmVmPXtsaW5rVXJsfSByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgICAgICAgICB7bGlua0xhYmVsICE9IG51bGwgJiYgbGlua0xhYmVsLmxlbmd0aCA+IDAgPyBsaW5rTGFiZWwgOiBsaW5rVXJsfVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgICB7ZWRpdG9yLmlzRWRpdGFibGUoKSAmJiAoXG4gICAgICAgICAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiRWRpdCBsaW5rXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJsaW5rLWVkaXRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIHRvZ2dsZU1vZGFsKGRyYXdlclNsdWcpXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBvbk1vdXNlRG93bj17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgeyFpc0F1dG9MaW5rICYmIChcbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiUmVtb3ZlIGxpbmtcIlxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibGluay10cmFzaFwiXG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGVkaXRvci5kaXNwYXRjaENvbW1hbmQoVE9HR0xFX0xJTktfQ09NTUFORCwgbnVsbClcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICBvbk1vdXNlRG93bj17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1JlYWN0LkZyYWdtZW50PlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8TGlua0RyYXdlclxuICAgICAgICBkcmF3ZXJTbHVnPXtkcmF3ZXJTbHVnfVxuICAgICAgICBoYW5kbGVNb2RhbFN1Ym1pdD17KGZpZWxkczogRm9ybVN0YXRlLCBkYXRhOiBEYXRhKSA9PiB7XG4gICAgICAgICAgY2xvc2VNb2RhbChkcmF3ZXJTbHVnKVxuXG4gICAgICAgICAgY29uc3QgbmV3TGlua1BheWxvYWQ6IExpbmtQYXlsb2FkID0gZGF0YSBhcyBMaW5rUGF5bG9hZFxuXG4gICAgICAgICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svbGV4aWNhbC9wdWxsLzU1MzYuIFRoaXMgdXBkYXRlcyBhdXRvbGluayBub2RlcyB0byBsaW5rIG5vZGVzIHdoZW5ldmVyIGEgY2hhbmdlIHdhcyBtYWRlICh3aGljaCBpcyBnb29kISkuXG4gICAgICAgICAgZWRpdG9yLnVwZGF0ZSgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSAkZ2V0U2VsZWN0aW9uKClcbiAgICAgICAgICAgIGlmICgkaXNSYW5nZVNlbGVjdGlvbihzZWxlY3Rpb24pKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IGdldFNlbGVjdGVkTm9kZShzZWxlY3Rpb24pLmdldFBhcmVudCgpXG4gICAgICAgICAgICAgIGlmICgkaXNBdXRvTGlua05vZGUocGFyZW50KSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmtOb2RlID0gJGNyZWF0ZUxpbmtOb2RlKHtcbiAgICAgICAgICAgICAgICAgIGZpZWxkczogbmV3TGlua1BheWxvYWQuZmllbGRzLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgcGFyZW50LnJlcGxhY2UobGlua05vZGUsIHRydWUpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgLy8gTmVlZHMgdG8gaGFwcGVuIEFGVEVSIGEgcG90ZW50aWFsIGF1dG8gbGluayA9PiBsaW5rIG5vZGUgY29udmVyc2lvbiwgYXMgb3RoZXJ3aXNlLCB0aGUgdXBkYXRlZCB0ZXh0IHRvIGRpc3BsYXkgbWF5IGJlIGxvc3QgZHVlIHRvXG4gICAgICAgICAgLy8gaXQgYmVpbmcgYXBwbGllZCB0byB0aGUgYXV0byBsaW5rIG5vZGUgaW5zdGVhZCBvZiB0aGUgbGluayBub2RlLlxuICAgICAgICAgIGVkaXRvci5kaXNwYXRjaENvbW1hbmQoVE9HR0xFX0xJTktfQ09NTUFORCwgbmV3TGlua1BheWxvYWQpXG4gICAgICAgIH19XG4gICAgICAgIHN0YXRlRGF0YT17c3RhdGVEYXRhfVxuICAgICAgLz5cbiAgICA8L1JlYWN0LkZyYWdtZW50PlxuICApXG59XG4iXSwibmFtZXMiOlsiTGlua0VkaXRvciIsImFuY2hvckVsZW0iLCJlZGl0b3IiLCJ1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IiwiZWRpdG9yUmVmIiwidXNlUmVmIiwibGlua1VybCIsInNldExpbmtVcmwiLCJ1c2VTdGF0ZSIsImxpbmtMYWJlbCIsInNldExpbmtMYWJlbCIsInV1aWQiLCJ1c2VFZGl0b3JDb25maWdDb250ZXh0IiwiY29uZmlnIiwidXNlQ29uZmlnIiwiaTE4biIsInQiLCJ1c2VUcmFuc2xhdGlvbiIsInN0YXRlRGF0YSIsInNldFN0YXRlRGF0YSIsImNsb3NlTW9kYWwiLCJ0b2dnbGVNb2RhbCIsInVzZU1vZGFsIiwiZWRpdERlcHRoIiwidXNlRWRpdERlcHRoIiwiaXNMaW5rIiwic2V0SXNMaW5rIiwiaXNBdXRvTGluayIsInNldElzQXV0b0xpbmsiLCJkcmF3ZXJTbHVnIiwiZm9ybWF0RHJhd2VyU2x1ZyIsInNsdWciLCJkZXB0aCIsInVwZGF0ZUxpbmtFZGl0b3IiLCJ1c2VDYWxsYmFjayIsInNlbGVjdGlvbiIsIiRnZXRTZWxlY3Rpb24iLCJzZWxlY3RlZE5vZGVEb21SZWN0IiwiJGlzUmFuZ2VTZWxlY3Rpb24iLCJub2RlIiwiZ2V0U2VsZWN0ZWROb2RlIiwiZ2V0RWxlbWVudEJ5S2V5IiwiZ2V0S2V5IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwibGlua1BhcmVudCIsIiRmaW5kTWF0Y2hpbmdQYXJlbnQiLCIkaXNMaW5rTm9kZSIsImRhdGEiLCJmaWVsZHMiLCJkb2MiLCJ1bmRlZmluZWQiLCJsaW5rVHlwZSIsIm5ld1RhYiIsInVybCIsImdldEZpZWxkcyIsInRleHQiLCJnZXRUZXh0Q29udGVudCIsInJlbGF0aW9uVG8iLCJ2YWx1ZSIsInJlbGF0ZWRGaWVsZCIsImNvbGxlY3Rpb25zIiwiZmluZCIsImNvbGwiLCJsYWJlbCIsImdldFRyYW5zbGF0aW9uIiwibGFiZWxzIiwic2luZ3VsYXIiLCJyZXBsYWNlIiwiJGlzQXV0b0xpbmtOb2RlIiwiZWRpdG9yRWxlbSIsImN1cnJlbnQiLCJuYXRpdmVTZWxlY3Rpb24iLCJ3aW5kb3ciLCJnZXRTZWxlY3Rpb24iLCJhY3RpdmVFbGVtZW50IiwiZG9jdW1lbnQiLCJyb290RWxlbWVudCIsImdldFJvb3RFbGVtZW50IiwiY29udGFpbnMiLCJhbmNob3JOb2RlIiwiZ2V0UmFuZ2VBdCIsInkiLCJzZXRGbG9hdGluZ0VsZW1Qb3NpdGlvbkZvckxpbmtFZGl0b3IiLCJjbGFzc05hbWUiLCJ1c2VFZmZlY3QiLCJtZXJnZVJlZ2lzdGVyIiwicmVnaXN0ZXJDb21tYW5kIiwiVE9HR0xFX0xJTktfV0lUSF9NT0RBTF9DT01NQU5EIiwicGF5bG9hZCIsImRpc3BhdGNoQ29tbWFuZCIsIlRPR0dMRV9MSU5LX0NPTU1BTkQiLCJDT01NQU5EX1BSSU9SSVRZX0xPVyIsInN0eWxlIiwib3BhY2l0eSIsInRyYW5zZm9ybSIsInNjcm9sbGVyRWxlbSIsInBhcmVudEVsZW1lbnQiLCJ1cGRhdGUiLCJnZXRFZGl0b3JTdGF0ZSIsInJlYWQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInJlZ2lzdGVyVXBkYXRlTGlzdGVuZXIiLCJlZGl0b3JTdGF0ZSIsIlNFTEVDVElPTl9DSEFOR0VfQ09NTUFORCIsIktFWV9FU0NBUEVfQ09NTUFORCIsIkNPTU1BTkRfUFJJT1JJVFlfSElHSCIsIlJlYWN0IiwiRnJhZ21lbnQiLCJkaXYiLCJyZWYiLCJhIiwiaHJlZiIsInJlbCIsInRhcmdldCIsImxlbmd0aCIsImlzRWRpdGFibGUiLCJidXR0b24iLCJhcmlhLWxhYmVsIiwib25DbGljayIsIm9uTW91c2VEb3duIiwiZXZlbnQiLCJwcmV2ZW50RGVmYXVsdCIsInRhYkluZGV4IiwidHlwZSIsIkxpbmtEcmF3ZXIiLCJoYW5kbGVNb2RhbFN1Ym1pdCIsIm5ld0xpbmtQYXlsb2FkIiwicGFyZW50IiwiZ2V0UGFyZW50IiwibGlua05vZGUiLCIkY3JlYXRlTGlua05vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OzsrQkErQmdCQTs7O2VBQUFBOzs7dUJBM0JTO3dDQUNpQjt1QkFDUzs4QkFDcEI7b0JBQzJDO3lCQVFuRTsrREFDeUQ7c0NBS3pCO2lDQUNQO3NEQUNxQjt3QkFDMUI7OEJBQ0s7MEJBQ0E7MEJBRWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV4QyxTQUFTQSxXQUFXLEVBQUVDLFVBQVUsRUFBK0I7SUFDcEUsTUFBTSxDQUFDQyxPQUFPLEdBQUdDLElBQUFBLGlEQUF5QjtJQUUxQyxNQUFNQyxZQUFZQyxJQUFBQSxhQUFNLEVBQXdCO0lBQ2hELE1BQU0sQ0FBQ0MsU0FBU0MsV0FBVyxHQUFHQyxJQUFBQSxlQUFRLEVBQUM7SUFDdkMsTUFBTSxDQUFDQyxXQUFXQyxhQUFhLEdBQUdGLElBQUFBLGVBQVEsRUFBQztJQUUzQyxNQUFNLEVBQUVHLElBQUksRUFBRSxHQUFHQyxJQUFBQSw0Q0FBc0I7SUFFdkMsTUFBTUMsU0FBU0MsSUFBQUEsYUFBUztJQUV4QixNQUFNLEVBQUVDLElBQUksRUFBRUMsQ0FBQyxFQUFFLEdBQUdDLElBQUFBLGtCQUFjO0lBRWxDLE1BQU0sQ0FBQ0MsV0FBV0MsYUFBYSxHQUFHWCxJQUFBQSxlQUFRLEVBQWM7SUFFeEQsTUFBTSxFQUFFWSxVQUFVLEVBQUVDLFdBQVcsRUFBRSxHQUFHQyxJQUFBQSxlQUFRO0lBQzVDLE1BQU1DLFlBQVlDLElBQUFBLGdCQUFZO0lBQzlCLE1BQU0sQ0FBQ0MsUUFBUUMsVUFBVSxHQUFHbEIsSUFBQUEsZUFBUSxFQUFDO0lBQ3JDLE1BQU0sQ0FBQ21CLFlBQVlDLGNBQWMsR0FBR3BC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
243
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9saW5rL3BsdWdpbnMvZmxvYXRpbmdMaW5rRWRpdG9yL0xpbmtFZGl0b3IvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuaW1wb3J0IHR5cGUgeyBGb3JtU3RhdGUgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBEYXRhIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHsgdXNlTW9kYWwgfSBmcm9tICdAZmFjZWxlc3MtdWkvbW9kYWwnXG5pbXBvcnQgeyB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dCdcbmltcG9ydCB7ICRmaW5kTWF0Y2hpbmdQYXJlbnQsIG1lcmdlUmVnaXN0ZXIgfSBmcm9tICdAbGV4aWNhbC91dGlscydcbmltcG9ydCB7IGdldFRyYW5zbGF0aW9uIH0gZnJvbSAnQHBheWxvYWRjbXMvdHJhbnNsYXRpb25zJ1xuaW1wb3J0IHsgZm9ybWF0RHJhd2VyU2x1ZywgdXNlQ29uZmlnLCB1c2VFZGl0RGVwdGgsIHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAnQHBheWxvYWRjbXMvdWknXG5pbXBvcnQge1xuICAkZ2V0U2VsZWN0aW9uLFxuICAkaXNSYW5nZVNlbGVjdGlvbixcbiAgQ09NTUFORF9QUklPUklUWV9ISUdILFxuICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgS0VZX0VTQ0FQRV9DT01NQU5ELFxuICBTRUxFQ1RJT05fQ0hBTkdFX0NPTU1BTkQsXG59IGZyb20gJ2xleGljYWwnXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgdHlwZSB7IExpbmtOb2RlIH0gZnJvbSAnLi4vLi4vLi4vbm9kZXMvTGlua05vZGUnXG5pbXBvcnQgdHlwZSB7IExpbmtQYXlsb2FkIH0gZnJvbSAnLi4vdHlwZXMnXG5cbmltcG9ydCB7IHVzZUVkaXRvckNvbmZpZ0NvbnRleHQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9sZXhpY2FsL2NvbmZpZy9jbGllbnQvRWRpdG9yQ29uZmlnUHJvdmlkZXInXG5pbXBvcnQgeyBnZXRTZWxlY3RlZE5vZGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9sZXhpY2FsL3V0aWxzL2dldFNlbGVjdGVkTm9kZSdcbmltcG9ydCB7IHNldEZsb2F0aW5nRWxlbVBvc2l0aW9uRm9yTGlua0VkaXRvciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xleGljYWwvdXRpbHMvc2V0RmxvYXRpbmdFbGVtUG9zaXRpb25Gb3JMaW5rRWRpdG9yJ1xuaW1wb3J0IHsgTGlua0RyYXdlciB9IGZyb20gJy4uLy4uLy4uL2RyYXdlcidcbmltcG9ydCB7ICRpc0F1dG9MaW5rTm9kZSB9IGZyb20gJy4uLy4uLy4uL25vZGVzL0F1dG9MaW5rTm9kZSdcbmltcG9ydCB7ICRjcmVhdGVMaW5rTm9kZSB9IGZyb20gJy4uLy4uLy4uL25vZGVzL0xpbmtOb2RlJ1xuaW1wb3J0IHsgJGlzTGlua05vZGUsIFRPR0dMRV9MSU5LX0NPTU1BTkQgfSBmcm9tICcuLi8uLi8uLi9ub2Rlcy9MaW5rTm9kZSdcbmltcG9ydCB7IFRPR0dMRV9MSU5LX1dJVEhfTU9EQUxfQ09NTUFORCB9IGZyb20gJy4vY29tbWFuZHMnXG5cbmV4cG9ydCBmdW5jdGlvbiBMaW5rRWRpdG9yKHsgYW5jaG9yRWxlbSB9OiB7IGFuY2hvckVsZW06IEhUTUxFbGVtZW50IH0pOiBSZWFjdC5SZWFjdE5vZGUge1xuICBjb25zdCBbZWRpdG9yXSA9IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQoKVxuXG4gIGNvbnN0IGVkaXRvclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudCB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtsaW5rVXJsLCBzZXRMaW5rVXJsXSA9IHVzZVN0YXRlKCcnKVxuICBjb25zdCBbbGlua0xhYmVsLCBzZXRMaW5rTGFiZWxdID0gdXNlU3RhdGUoJycpXG5cbiAgY29uc3QgeyB1dWlkIH0gPSB1c2VFZGl0b3JDb25maWdDb250ZXh0KClcblxuICBjb25zdCBjb25maWcgPSB1c2VDb25maWcoKVxuXG4gIGNvbnN0IHsgaTE4biwgdCB9ID0gdXNlVHJhbnNsYXRpb24oKVxuXG4gIGNvbnN0IFtzdGF0ZURhdGEsIHNldFN0YXRlRGF0YV0gPSB1c2VTdGF0ZTxMaW5rUGF5bG9hZD4obnVsbClcblxuICBjb25zdCB7IGNsb3NlTW9kYWwsIHRvZ2dsZU1vZGFsIH0gPSB1c2VNb2RhbCgpXG4gIGNvbnN0IGVkaXREZXB0aCA9IHVzZUVkaXREZXB0aCgpXG4gIGNvbnN0IFtpc0xpbmssIHNldElzTGlua10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2lzQXV0b0xpbmssIHNldElzQXV0b0xpbmtdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgY29uc3QgZHJhd2VyU2x1ZyA9IGZvcm1hdERyYXdlclNsdWcoe1xuICAgIHNsdWc6IGBsZXhpY2FsLXJpY2gtdGV4dC1saW5rLWAgKyB1dWlkLFxuICAgIGRlcHRoOiBlZGl0RGVwdGgsXG4gIH0pXG5cbiAgY29uc3QgdXBkYXRlTGlua0VkaXRvciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSAkZ2V0U2VsZWN0aW9uKClcbiAgICBsZXQgc2VsZWN0ZWROb2RlRG9tUmVjdDogRE9NUmVjdCB8IHVuZGVmaW5lZCA9IG51bGxcblxuICAgIC8vIEhhbmRsZSB0aGUgZGF0YSBkaXNwbGF5ZWQgaW4gdGhlIGZsb2F0aW5nIGxpbmsgZWRpdG9yICYgZHJhd2VyIHdoZW4geW91IGNsaWNrIG9uIGEgbGluayBub2RlXG4gICAgaWYgKCRpc1JhbmdlU2VsZWN0aW9uKHNlbGVjdGlvbikpIHtcbiAgICAgIGNvbnN0IG5vZGUgPSBnZXRTZWxlY3RlZE5vZGUoc2VsZWN0aW9uKVxuICAgICAgc2VsZWN0ZWROb2RlRG9tUmVjdCA9IGVkaXRvci5nZXRFbGVtZW50QnlLZXkobm9kZS5nZXRLZXkoKSk/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICBjb25zdCBsaW5rUGFyZW50OiBMaW5rTm9kZSA9ICRmaW5kTWF0Y2hpbmdQYXJlbnQobm9kZSwgJGlzTGlua05vZGUpXG4gICAgICBpZiAobGlua1BhcmVudCA9PSBudWxsKSB7XG4gICAgICAgIHNldElzTGluayhmYWxzZSlcbiAgICAgICAgc2V0SXNBdXRvTGluayhmYWxzZSlcbiAgICAgICAgc2V0TGlua1VybCgnJylcbiAgICAgICAgc2V0TGlua0xhYmVsKCcnKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gSW5pdGlhbCBzdGF0ZTpcbiAgICAgIGNvbnN0IGRhdGE6IExpbmtQYXlsb2FkID0ge1xuICAgICAgICBmaWVsZHM6IHtcbiAgICAgICAgICBkb2M6IHVuZGVmaW5lZCxcbiAgICAgICAgICBsaW5rVHlwZTogdW5kZWZpbmVkLFxuICAgICAgICAgIG5ld1RhYjogdW5kZWZpbmVkLFxuICAgICAgICAgIHVybDogJycsXG4gICAgICAgICAgLi4ubGlua1BhcmVudC5nZXRGaWVsZHMoKSxcbiAgICAgICAgfSxcbiAgICAgICAgdGV4dDogbGlua1BhcmVudC5nZXRUZXh0Q29udGVudCgpLFxuICAgICAgfVxuXG4gICAgICBpZiAobGlua1BhcmVudC5nZXRGaWVsZHMoKT8ubGlua1R5cGUgPT09ICdjdXN0b20nKSB7XG4gICAgICAgIHNldExpbmtVcmwobGlua1BhcmVudC5nZXRGaWVsZHMoKT8udXJsID8/ICcnKVxuICAgICAgICBzZXRMaW5rTGFiZWwoJycpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBpbnRlcm5hbCBsaW5rXG4gICAgICAgIHNldExpbmtVcmwoXG4gICAgICAgICAgYC9hZG1pbi9jb2xsZWN0aW9ucy8ke2xpbmtQYXJlbnQuZ2V0RmllbGRzKCk/LmRvYz8ucmVsYXRpb25Ub30vJHtcbiAgICAgICAgICAgIGxpbmtQYXJlbnQuZ2V0RmllbGRzKCk/LmRvYz8udmFsdWVcbiAgICAgICAgICB9YCxcbiAgICAgICAgKVxuXG4gICAgICAgIGNvbnN0IHJlbGF0ZWRGaWVsZCA9IGNvbmZpZy5jb2xsZWN0aW9ucy5maW5kKFxuICAgICAgICAgIChjb2xsKSA9PiBjb2xsLnNsdWcgPT09IGxpbmtQYXJlbnQuZ2V0RmllbGRzKCk/LmRvYz8ucmVsYXRpb25UbyxcbiAgICAgICAgKVxuICAgICAgICBjb25zdCBsYWJlbCA9IHQoJ2ZpZWxkczpsaW5rZWRUbycsIHtcbiAgICAgICAgICBsYWJlbDogZ2V0VHJhbnNsYXRpb24ocmVsYXRlZEZpZWxkLmxhYmVscy5zaW5ndWxhciwgaTE4biksXG4gICAgICAgIH0pLnJlcGxhY2UoLzxbXj5dKj4/L2csICcnKVxuICAgICAgICBzZXRMaW5rTGFiZWwobGFiZWwpXG4gICAgICB9XG5cbiAgICAgIHNldFN0YXRlRGF0YShkYXRhKVxuICAgICAgc2V0SXNMaW5rKHRydWUpXG4gICAgICBpZiAoJGlzQXV0b0xpbmtOb2RlKGxpbmtQYXJlbnQpKSB7XG4gICAgICAgIHNldElzQXV0b0xpbmsodHJ1ZSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldElzQXV0b0xpbmsoZmFsc2UpXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZWRpdG9yRWxlbSA9IGVkaXRvclJlZi5jdXJyZW50XG4gICAgY29uc3QgbmF0aXZlU2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpXG4gICAgY29uc3QgeyBhY3RpdmVFbGVtZW50IH0gPSBkb2N1bWVudFxuXG4gICAgaWYgKGVkaXRvckVsZW0gPT09IG51bGwpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHJvb3RFbGVtZW50ID0gZWRpdG9yLmdldFJvb3RFbGVtZW50KClcblxuICAgIGlmIChcbiAgICAgIHNlbGVjdGlvbiAhPT0gbnVsbCAmJlxuICAgICAgbmF0aXZlU2VsZWN0aW9uICE9PSBudWxsICYmXG4gICAgICByb290RWxlbWVudCAhPT0gbnVsbCAmJlxuICAgICAgcm9vdEVsZW1lbnQuY29udGFpbnMobmF0aXZlU2VsZWN0aW9uLmFuY2hvck5vZGUpXG4gICAgKSB7XG4gICAgICBpZiAoIXNlbGVjdGVkTm9kZURvbVJlY3QpIHtcbiAgICAgICAgLy8gR2V0IHRoZSBET00gcmVjdCBvZiB0aGUgc2VsZWN0ZWQgbm9kZSB1c2luZyB0aGUgbmF0aXZlIHNlbGVjdGlvbi4gVGhpcyBzb21ldGltZXMgcHJvZHVjZXMgdGhlIHdyb25nXG4gICAgICAgIC8vIHJlc3VsdCwgd2hpY2ggaXMgd2h5IHdlIHVzZSBsZXhpY2FsJ3Mgc2VsZWN0aW9uIHByZWZlcmFibHkuXG4gICAgICAgIHNlbGVjdGVkTm9kZURvbVJlY3QgPSBuYXRpdmVTZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgfVxuXG4gICAgICBpZiAoc2VsZWN0ZWROb2RlRG9tUmVjdCAhPSBudWxsKSB7XG4gICAgICAgIHNlbGVjdGVkTm9kZURvbVJlY3QueSArPSA0MFxuICAgICAgICBzZXRGbG9hdGluZ0VsZW1Qb3NpdGlvbkZvckxpbmtFZGl0b3Ioc2VsZWN0ZWROb2RlRG9tUmVjdCwgZWRpdG9yRWxlbSwgYW5jaG9yRWxlbSlcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGFjdGl2ZUVsZW1lbnQgPT0gbnVsbCB8fCBhY3RpdmVFbGVtZW50LmNsYXNzTmFtZSAhPT0gJ2xpbmstaW5wdXQnKSB7XG4gICAgICBpZiAocm9vdEVsZW1lbnQgIT09IG51bGwpIHtcbiAgICAgICAgc2V0RmxvYXRpbmdFbGVtUG9zaXRpb25Gb3JMaW5rRWRpdG9yKG51bGwsIGVkaXRvckVsZW0sIGFuY2hvckVsZW0pXG4gICAgICB9XG4gICAgICBzZXRMaW5rVXJsKCcnKVxuICAgICAgc2V0TGlua0xhYmVsKCcnKVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlXG4gIH0sIFthbmNob3JFbGVtLCBlZGl0b3IsIGNvbmZpZywgdCwgaTE4bl0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gbWVyZ2VSZWdpc3RlcihcbiAgICAgIGVkaXRvci5yZWdpc3RlckNvbW1hbmQoXG4gICAgICAgIFRPR0dMRV9MSU5LX1dJVEhfTU9EQUxfQ09NTUFORCxcbiAgICAgICAgKHBheWxvYWQ6IExpbmtQYXlsb2FkKSA9PiB7XG4gICAgICAgICAgZWRpdG9yLmRpc3BhdGNoQ29tbWFuZChUT0dHTEVfTElOS19DT01NQU5ELCBwYXlsb2FkKVxuXG4gICAgICAgICAgLy8gTm93LCBvcGVuIHRoZSBtb2RhbFxuICAgICAgICAgIHVwZGF0ZUxpbmtFZGl0b3IoKVxuICAgICAgICAgIHRvZ2dsZU1vZGFsKGRyYXdlclNsdWcpXG5cbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgKVxuICB9LCBbZWRpdG9yLCB1cGRhdGVMaW5rRWRpdG9yLCB0b2dnbGVNb2RhbCwgZHJhd2VyU2x1Z10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzTGluayAmJiBlZGl0b3JSZWYpIHtcbiAgICAgIGVkaXRvclJlZi5jdXJyZW50LnN0eWxlLm9wYWNpdHkgPSAnMCdcbiAgICAgIGVkaXRvclJlZi5jdXJyZW50LnN0eWxlLnRyYW5zZm9ybSA9ICd0cmFuc2xhdGUoLTEwMDAwcHgsIC0xMDAwMHB4KSdcbiAgICB9XG4gIH0sIFtpc0xpbmtdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgc2Nyb2xsZXJFbGVtID0gYW5jaG9yRWxlbS5wYXJlbnRFbGVtZW50XG5cbiAgICBjb25zdCB1cGRhdGUgPSAoKTogdm9pZCA9PiB7XG4gICAgICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICAgICAgdm9pZCB1cGRhdGVMaW5rRWRpdG9yKClcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHVwZGF0ZSlcblxuICAgIGlmIChzY3JvbGxlckVsZW0gIT0gbnVsbCkge1xuICAgICAgc2Nyb2xsZXJFbGVtLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHVwZGF0ZSlcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHVwZGF0ZSlcblxuICAgICAgaWYgKHNjcm9sbGVyRWxlbSAhPSBudWxsKSB7XG4gICAgICAgIHNjcm9sbGVyRWxlbS5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB1cGRhdGUpXG4gICAgICB9XG4gICAgfVxuICB9LCBbYW5jaG9yRWxlbS5wYXJlbnRFbGVtZW50LCBlZGl0b3IsIHVwZGF0ZUxpbmtFZGl0b3JdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuIG1lcmdlUmVnaXN0ZXIoXG4gICAgICBlZGl0b3IucmVnaXN0ZXJVcGRhdGVMaXN0ZW5lcigoeyBlZGl0b3JTdGF0ZSB9KSA9PiB7XG4gICAgICAgIGVkaXRvclN0YXRlLnJlYWQoKCkgPT4ge1xuICAgICAgICAgIHZvaWQgdXBkYXRlTGlua0VkaXRvcigpXG4gICAgICAgIH0pXG4gICAgICB9KSxcblxuICAgICAgZWRpdG9yLnJlZ2lzdGVyQ29tbWFuZChcbiAgICAgICAgU0VMRUNUSU9OX0NIQU5HRV9DT01NQU5ELFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdm9pZCB1cGRhdGVMaW5rRWRpdG9yKClcbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBDT01NQU5EX1BSSU9SSVRZX0xPVyxcbiAgICAgICksXG4gICAgICBlZGl0b3IucmVnaXN0ZXJDb21tYW5kKFxuICAgICAgICBLRVlfRVNDQVBFX0NPTU1BTkQsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBpZiAoaXNMaW5rKSB7XG4gICAgICAgICAgICBzZXRJc0xpbmsoZmFsc2UpXG4gICAgICAgICAgICBzZXRJc0F1dG9MaW5rKGZhbHNlKVxuICAgICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIENPTU1BTkRfUFJJT1JJVFlfSElHSCxcbiAgICAgICksXG4gICAgKVxuICB9LCBbZWRpdG9yLCB1cGRhdGVMaW5rRWRpdG9yLCBzZXRJc0xpbmssIGlzTGlua10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICAgIHZvaWQgdXBkYXRlTGlua0VkaXRvcigpXG4gICAgfSlcbiAgfSwgW2VkaXRvciwgdXBkYXRlTGlua0VkaXRvcl0pXG5cbiAgcmV0dXJuIChcbiAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImxpbmstZWRpdG9yXCIgcmVmPXtlZGl0b3JSZWZ9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxpbmstaW5wdXRcIj5cbiAgICAgICAgICA8YSBocmVmPXtsaW5rVXJsfSByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgICAgICAgICB7bGlua0xhYmVsICE9IG51bGwgJiYgbGlua0xhYmVsLmxlbmd0aCA+IDAgPyBsaW5rTGFiZWwgOiBsaW5rVXJsfVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgICB7ZWRpdG9yLmlzRWRpdGFibGUoKSAmJiAoXG4gICAgICAgICAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiRWRpdCBsaW5rXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJsaW5rLWVkaXRcIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIHRvZ2dsZU1vZGFsKGRyYXdlclNsdWcpXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBvbk1vdXNlRG93bj17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgeyFpc0F1dG9MaW5rICYmIChcbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiUmVtb3ZlIGxpbmtcIlxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibGluay10cmFzaFwiXG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGVkaXRvci5kaXNwYXRjaENvbW1hbmQoVE9HR0xFX0xJTktfQ09NTUFORCwgbnVsbClcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICBvbk1vdXNlRG93bj17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1JlYWN0LkZyYWdtZW50PlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8TGlua0RyYXdlclxuICAgICAgICBkcmF3ZXJTbHVnPXtkcmF3ZXJTbHVnfVxuICAgICAgICBoYW5kbGVNb2RhbFN1Ym1pdD17KGZpZWxkczogRm9ybVN0YXRlLCBkYXRhOiBEYXRhKSA9PiB7XG4gICAgICAgICAgY2xvc2VNb2RhbChkcmF3ZXJTbHVnKVxuXG4gICAgICAgICAgY29uc3QgbmV3TGlua1BheWxvYWQ6IExpbmtQYXlsb2FkID0gZGF0YSBhcyBMaW5rUGF5bG9hZFxuXG4gICAgICAgICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svbGV4aWNhbC9wdWxsLzU1MzYuIFRoaXMgdXBkYXRlcyBhdXRvbGluayBub2RlcyB0byBsaW5rIG5vZGVzIHdoZW5ldmVyIGEgY2hhbmdlIHdhcyBtYWRlICh3aGljaCBpcyBnb29kISkuXG4gICAgICAgICAgZWRpdG9yLnVwZGF0ZSgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSAkZ2V0U2VsZWN0aW9uKClcbiAgICAgICAgICAgIGlmICgkaXNSYW5nZVNlbGVjdGlvbihzZWxlY3Rpb24pKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IGdldFNlbGVjdGVkTm9kZShzZWxlY3Rpb24pLmdldFBhcmVudCgpXG4gICAgICAgICAgICAgIGlmICgkaXNBdXRvTGlua05vZGUocGFyZW50KSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmtOb2RlID0gJGNyZWF0ZUxpbmtOb2RlKHtcbiAgICAgICAgICAgICAgICAgIGZpZWxkczogbmV3TGlua1BheWxvYWQuZmllbGRzLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgcGFyZW50LnJlcGxhY2UobGlua05vZGUsIHRydWUpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgLy8gTmVlZHMgdG8gaGFwcGVuIEFGVEVSIGEgcG90ZW50aWFsIGF1dG8gbGluayA9PiBsaW5rIG5vZGUgY29udmVyc2lvbiwgYXMgb3RoZXJ3aXNlLCB0aGUgdXBkYXRlZCB0ZXh0IHRvIGRpc3BsYXkgbWF5IGJlIGxvc3QgZHVlIHRvXG4gICAgICAgICAgLy8gaXQgYmVpbmcgYXBwbGllZCB0byB0aGUgYXV0byBsaW5rIG5vZGUgaW5zdGVhZCBvZiB0aGUgbGluayBub2RlLlxuICAgICAgICAgIGVkaXRvci5kaXNwYXRjaENvbW1hbmQoVE9HR0xFX0xJTktfQ09NTUFORCwgbmV3TGlua1BheWxvYWQpXG4gICAgICAgIH19XG4gICAgICAgIHN0YXRlRGF0YT17c3RhdGVEYXRhfVxuICAgICAgLz5cbiAgICA8L1JlYWN0LkZyYWdtZW50PlxuICApXG59XG4iXSwibmFtZXMiOlsidXNlTW9kYWwiLCJ1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IiwiJGZpbmRNYXRjaGluZ1BhcmVudCIsIm1lcmdlUmVnaXN0ZXIiLCJnZXRUcmFuc2xhdGlvbiIsImZvcm1hdERyYXdlclNsdWciLCJ1c2VDb25maWciLCJ1c2VFZGl0RGVwdGgiLCJ1c2VUcmFuc2xhdGlvbiIsIiRnZXRTZWxlY3Rpb24iLCIkaXNSYW5nZVNlbGVjdGlvbiIsIkNPTU1BTkRfUFJJT1JJVFlfSElHSCIsIkNPTU1BTkRfUFJJT1JJVFlfTE9XIiwiS0VZX0VTQ0FQRV9DT01NQU5EIiwiU0VMRUNUSU9OX0NIQU5HRV9DT01NQU5EIiwiUmVhY3QiLCJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZVN0YXRlIiwidXNlRWRpdG9yQ29uZmlnQ29udGV4dCIsImdldFNlbGVjdGVkTm9kZSIsInNldEZsb2F0aW5nRWxlbVBvc2l0aW9uRm9yTGlua0VkaXRvciIsIkxpbmtEcmF3ZXIiLCIkaXNBdXRvTGlua05vZGUiLCIkY3JlYXRlTGlua05vZGUiLCIkaXNMaW5rTm9kZSIsIlRPR0dMRV9MSU5LX0NPTU1BTkQiLCJUT0dHTEVfTElOS19XSVRIX01PREFMX0NPTU1BTkQiLCJMaW5rRWRpdG9yIiwiYW5jaG9yRWxlbSIsImVkaXRvciIsImVkaXRvclJlZiIsImxpbmtVcmwiLCJzZXRMaW5rVXJsIiwibGlua0xhYmVsIiwic2V0TGlua0xhYmVsIiwidXVpZCIsImNvbmZpZyIsImkxOG4iLCJ0Iiwic3RhdGVEYXRhIiwic2V0U3RhdGVEYXRhIiwiY2xvc2VNb2RhbCIsInRvZ2dsZU1vZGFsIiwiZWRpdERlcHRoIiwiaXNMaW5rIiwic2V0SXNMaW5rIiwiaXNBdXRvTGluayIsInNldElzQXV0b0xpbmsiLCJkcmF3ZXJTbHVnIiwic2x1ZyIsImRlcHRoIiwidXBkYXRlTGlua0VkaXRvciIsInNlbGVjdGlvbiIsInNlbGVjdGVkTm9kZURvbVJlY3QiLCJub2RlIiwiZ2V0RWxlbWVudEJ5S2V5IiwiZ2V0S2V5IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwibGlua1BhcmVudCIsImRhdGEiLCJmaWVsZHMiLCJkb2MiLCJ1bmRlZmluZWQiLCJsaW5rVHlwZSIsIm5ld1RhYiIsInVybCIsImdldEZpZWxkcyIsInRleHQiLCJnZXRUZXh0Q29udGVudCIsInJlbGF0aW9uVG8iLCJ2YWx1ZSIsInJlbGF0ZWRGaWVsZCIsImNvbGxlY3Rpb25zIiwiZmluZCIsImNvbGwiLCJsYWJlbCIsImxhYmVscyIsInNpbmd1bGFyIiwicmVwbGFjZSIsImVkaXRvckVsZW0iLCJjdXJyZW50IiwibmF0aXZlU2VsZWN0aW9uIiwid2luZG93IiwiZ2V0U2VsZWN0aW9uIiwiYWN0aXZlRWxlbWVudCIsImRvY3VtZW50Iiwicm9vdEVsZW1lbnQiLCJnZXRSb290RWxlbWVudCIsImNvbnRhaW5zIiwiYW5jaG9yTm9kZSIsImdldFJhbmdlQXQiLCJ5IiwiY2xhc3NOYW1lIiwicmVnaXN0ZXJDb21tYW5kIiwicGF5bG9hZCIsImRpc3BhdGNoQ29tbWFuZCIsInN0eWxlIiwib3BhY2l0eSIsInRyYW5zZm9ybSIsInNjcm9sbGVyRWxlbSIsInBhcmVudEVsZW1lbnQiLCJ1cGRhdGUiLCJnZXRFZGl0b3JTdGF0ZSIsInJlYWQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInJlZ2lzdGVyVXBkYXRlTGlzdGVuZXIiLCJlZGl0b3JTdGF0ZSIsIkZyYWdtZW50IiwiZGl2IiwicmVmIiwiYSIsImhyZWYiLCJyZWwiLCJ0YXJnZXQiLCJsZW5ndGgiLCJpc0VkaXRhYmxlIiwiYnV0dG9uIiwiYXJpYS1sYWJlbCIsIm9uQ2xpY2siLCJvbk1vdXNlRG93biIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJ0YWJJbmRleCIsInR5cGUiLCJoYW5kbGVNb2RhbFN1Ym1pdCIsIm5ld0xpbmtQYXlsb2FkIiwicGFyZW50IiwiZ2V0UGFyZW50IiwibGlua05vZGUiXSwibWFwcGluZ3MiOiJBQUFBO0FBSUEsU0FBU0EsUUFBUSxRQUFRLHFCQUFvQjtBQUM3QyxTQUFTQyx5QkFBeUIsUUFBUSx3Q0FBdUM7QUFDakYsU0FBU0MsbUJBQW1CLEVBQUVDLGFBQWEsUUFBUSxpQkFBZ0I7QUFDbkUsU0FBU0MsY0FBYyxRQUFRLDJCQUEwQjtBQUN6RCxTQUFTQyxnQkFBZ0IsRUFBRUMsU0FBUyxFQUFFQyxZQUFZLEVBQUVDLGNBQWMsUUFBUSxpQkFBZ0I7QUFDMUYsU0FDRUMsYUFBYSxFQUNiQyxpQkFBaUIsRUFDakJDLHFCQUFxQixFQUNyQkMsb0JBQW9CLEVBQ3BCQyxrQkFBa0IsRUFDbEJDLHdCQUF3QixRQUNuQixVQUFTO0FBQ2hCLE9BQU9DLFNBQVNDLFdBQVcsRUFBRUMsU0FBUyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSxRQUFPO0FBS3ZFLFNBQVNDLHNCQUFzQixRQUFRLDREQUEyRDtBQUNsRyxTQUFTQyxlQUFlLFFBQVEsK0NBQThDO0FBQzlFLFNBQVNDLG9DQUFvQyxRQUFRLG9FQUFtRTtBQUN4SCxTQUFTQyxVQUFVLFFBQVEsa0JBQWlCO0FBQzVDLFNBQVNDLGVBQWUsUUFBUSw4QkFBNkI7QUFDN0QsU0FBU0MsZUFBZSxRQUFRLDBCQUF5QjtBQUN6RCxTQUFTQyxXQUFXLEVBQUVDLG1CQUFtQixRQUFRLDBCQUF5QjtBQUMxRSxTQUFTQyw4QkFBOEIsUUFBUSxhQUFZO0FBRTNELE9BQU8sU0FBU0MsV0FBVyxFQUFFQyxVQUFVLEVBQStCO0lBQ3BFLE1BQU0sQ0FBQ0MsT0FBTyxHQUFHOUI7SUFFakIsTUFBTStCLFlBQVlkLE9BQThCO0lBQ2hELE1BQU0sQ0FBQ2UsU0FB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
@@ -1,64 +1,13 @@
1
1
  'use client';
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "FloatingLinkEditorPlugin", {
7
- enumerable: true,
8
- get: function() {
9
- return FloatingLinkEditorPlugin;
10
- }
11
- });
12
- const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
13
- const _reactdom = require("react-dom");
14
- const _LinkEditor = require("./LinkEditor");
15
- require("./index.scss");
16
- function _getRequireWildcardCache(nodeInterop) {
17
- if (typeof WeakMap !== "function") return null;
18
- var cacheBabelInterop = new WeakMap();
19
- var cacheNodeInterop = new WeakMap();
20
- return (_getRequireWildcardCache = function(nodeInterop) {
21
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
22
- })(nodeInterop);
23
- }
24
- function _interop_require_wildcard(obj, nodeInterop) {
25
- if (!nodeInterop && obj && obj.__esModule) {
26
- return obj;
27
- }
28
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
29
- return {
30
- default: obj
31
- };
32
- }
33
- var cache = _getRequireWildcardCache(nodeInterop);
34
- if (cache && cache.has(obj)) {
35
- return cache.get(obj);
36
- }
37
- var newObj = {
38
- __proto__: null
39
- };
40
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
41
- for(var key in obj){
42
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
43
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
44
- if (desc && (desc.get || desc.set)) {
45
- Object.defineProperty(newObj, key, desc);
46
- } else {
47
- newObj[key] = obj[key];
48
- }
49
- }
50
- }
51
- newObj.default = obj;
52
- if (cache) {
53
- cache.set(obj, newObj);
54
- }
55
- return newObj;
56
- }
57
- const FloatingLinkEditorPlugin = (props)=>{
2
+ import * as React from 'react';
3
+ import { createPortal } from 'react-dom';
4
+ import { LinkEditor } from './LinkEditor';
5
+ import './index.scss';
6
+ export const FloatingLinkEditorPlugin = (props)=>{
58
7
  const { anchorElem = document.body } = props;
59
- return /*#__PURE__*/ (0, _reactdom.createPortal)(/*#__PURE__*/ _react.createElement(_LinkEditor.LinkEditor, {
8
+ return /*#__PURE__*/ createPortal(/*#__PURE__*/ React.createElement(LinkEditor, {
60
9
  anchorElem: anchorElem
61
10
  }), anchorElem);
62
11
  };
63
12
 
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9saW5rL3BsdWdpbnMvZmxvYXRpbmdMaW5rRWRpdG9yL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJ1xuXG5pbXBvcnQgeyBMaW5rRWRpdG9yIH0gZnJvbSAnLi9MaW5rRWRpdG9yJ1xuaW1wb3J0ICcuL2luZGV4LnNjc3MnXG5cbmV4cG9ydCBjb25zdCBGbG9hdGluZ0xpbmtFZGl0b3JQbHVnaW46IFJlYWN0LkZDPHtcbiAgYW5jaG9yRWxlbTogSFRNTEVsZW1lbnRcbn0+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgYW5jaG9yRWxlbSA9IGRvY3VtZW50LmJvZHkgfSA9IHByb3BzXG5cbiAgcmV0dXJuIGNyZWF0ZVBvcnRhbCg8TGlua0VkaXRvciBhbmNob3JFbGVtPXthbmNob3JFbGVtfSAvPiwgYW5jaG9yRWxlbSlcbn1cbiJdLCJuYW1lcyI6WyJGbG9hdGluZ0xpbmtFZGl0b3JQbHVnaW4iLCJwcm9wcyIsImFuY2hvckVsZW0iLCJkb2N1bWVudCIsImJvZHkiLCJjcmVhdGVQb3J0YWwiLCJMaW5rRWRpdG9yIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7K0JBT2FBOzs7ZUFBQUE7OzsrREFOVTswQkFDTTs0QkFFRjtRQUNwQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsTUFBTUEsMkJBRVIsQ0FBQ0M7SUFDSixNQUFNLEVBQUVDLGFBQWFDLFNBQVNDLElBQUksRUFBRSxHQUFHSDtJQUV2QyxxQkFBT0ksSUFBQUEsc0JBQVksZ0JBQUMscUJBQUNDLHNCQUFVO1FBQUNKLFlBQVlBO1FBQWdCQTtBQUM5RCJ9
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9saW5rL3BsdWdpbnMvZmxvYXRpbmdMaW5rRWRpdG9yL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJ1xuXG5pbXBvcnQgeyBMaW5rRWRpdG9yIH0gZnJvbSAnLi9MaW5rRWRpdG9yJ1xuaW1wb3J0ICcuL2luZGV4LnNjc3MnXG5cbmV4cG9ydCBjb25zdCBGbG9hdGluZ0xpbmtFZGl0b3JQbHVnaW46IFJlYWN0LkZDPHtcbiAgYW5jaG9yRWxlbTogSFRNTEVsZW1lbnRcbn0+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgYW5jaG9yRWxlbSA9IGRvY3VtZW50LmJvZHkgfSA9IHByb3BzXG5cbiAgcmV0dXJuIGNyZWF0ZVBvcnRhbCg8TGlua0VkaXRvciBhbmNob3JFbGVtPXthbmNob3JFbGVtfSAvPiwgYW5jaG9yRWxlbSlcbn1cbiJdLCJuYW1lcyI6WyJSZWFjdCIsImNyZWF0ZVBvcnRhbCIsIkxpbmtFZGl0b3IiLCJGbG9hdGluZ0xpbmtFZGl0b3JQbHVnaW4iLCJwcm9wcyIsImFuY2hvckVsZW0iLCJkb2N1bWVudCIsImJvZHkiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0EsWUFBWUEsV0FBVyxRQUFPO0FBQzlCLFNBQVNDLFlBQVksUUFBUSxZQUFXO0FBRXhDLFNBQVNDLFVBQVUsUUFBUSxlQUFjO0FBQ3pDLE9BQU8sZUFBYztBQUVyQixPQUFPLE1BQU1DLDJCQUVSLENBQUNDO0lBQ0osTUFBTSxFQUFFQyxhQUFhQyxTQUFTQyxJQUFJLEVBQUUsR0FBR0g7SUFFdkMscUJBQU9ILDJCQUFhLG9CQUFDQztRQUFXRyxZQUFZQTtRQUFnQkE7QUFDOUQsRUFBQyJ9
@@ -1,6 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
1
+ /**
2
+ * The payload of a link node
3
+ * This can be delivered from the link node to the drawer, or from the drawer/anything to the TOGGLE_LINK_COMMAND
4
+ */ export { };
5
5
 
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9saW5rL3BsdWdpbnMvZmxvYXRpbmdMaW5rRWRpdG9yL3R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGlua0ZpZWxkcyB9IGZyb20gJy4uLy4uL25vZGVzL3R5cGVzJ1xuXG4vKipcbiAqIFRoZSBwYXlsb2FkIG9mIGEgbGluayBub2RlXG4gKiBUaGlzIGNhbiBiZSBkZWxpdmVyZWQgZnJvbSB0aGUgbGluayBub2RlIHRvIHRoZSBkcmF3ZXIsIG9yIGZyb20gdGhlIGRyYXdlci9hbnl0aGluZyB0byB0aGUgVE9HR0xFX0xJTktfQ09NTUFORFxuICovXG5leHBvcnQgdHlwZSBMaW5rUGF5bG9hZCA9IHtcbiAgZmllbGRzOiBMaW5rRmllbGRzXG4gIC8qKlxuICAgKiBUaGUgdGV4dCBjb250ZW50IG9mIHRoZSBsaW5rIG5vZGUgLSB3aWxsIGJlIGRpc3BsYXllZCBpbiB0aGUgZHJhd2VyXG4gICAqL1xuICB0ZXh0OiBudWxsIHwgc3RyaW5nXG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7OztDQUdDLEdBQ0QsV0FNQyJ9
@@ -1,16 +1,8 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "transformExtraFields", {
6
- enumerable: true,
7
- get: function() {
8
- return transformExtraFields;
9
- }
10
- });
11
- const _baseFields = require("../../drawer/baseFields");
12
- function transformExtraFields(customFieldSchema, config, i18n, enabledCollections, disabledCollections) {
13
- const baseFields = (0, _baseFields.getBaseFields)(config, enabledCollections, disabledCollections);
1
+ import { getBaseFields } from '../../drawer/baseFields';
2
+ /**
3
+ * This function is run to enrich the basefields which every link has with potential, custom user-added fields.
4
+ */ export function transformExtraFields(customFieldSchema, config, i18n, enabledCollections, disabledCollections) {
5
+ const baseFields = getBaseFields(config, enabledCollections, disabledCollections);
14
6
  const fields = typeof customFieldSchema === 'function' ? customFieldSchema({
15
7
  config,
16
8
  defaultFields: baseFields,
@@ -42,4 +34,4 @@ function transformExtraFields(customFieldSchema, config, i18n, enabledCollection
42
34
  return fields;
43
35
  }
44
36
 
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9saW5rL3BsdWdpbnMvZmxvYXRpbmdMaW5rRWRpdG9yL3V0aWxpdGllcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEkxOG4gfSBmcm9tICdAcGF5bG9hZGNtcy90cmFuc2xhdGlvbnMnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbmZpZyB9IGZyb20gJ3BheWxvYWQvY29uZmlnJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZCwgR3JvdXBGaWVsZCB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IGdldEJhc2VGaWVsZHMgfSBmcm9tICcuLi8uLi9kcmF3ZXIvYmFzZUZpZWxkcydcblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGlzIHJ1biB0byBlbnJpY2ggdGhlIGJhc2VmaWVsZHMgd2hpY2ggZXZlcnkgbGluayBoYXMgd2l0aCBwb3RlbnRpYWwsIGN1c3RvbSB1c2VyLWFkZGVkIGZpZWxkcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUV4dHJhRmllbGRzKFxuICBjdXN0b21GaWVsZFNjaGVtYTpcbiAgICB8ICgoYXJnczogeyBjb25maWc6IFNhbml0aXplZENvbmZpZzsgZGVmYXVsdEZpZWxkczogRmllbGRbXTsgaTE4bjogSTE4biB9KSA9PiBGaWVsZFtdKVxuICAgIHwgRmllbGRbXSxcbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gIGkxOG46IEkxOG4sXG4gIGVuYWJsZWRDb2xsZWN0aW9ucz86IGZhbHNlIHwgc3RyaW5nW10sXG4gIGRpc2FibGVkQ29sbGVjdGlvbnM/OiBmYWxzZSB8IHN0cmluZ1tdLFxuKTogRmllbGRbXSB7XG4gIGNvbnN0IGJhc2VGaWVsZHM6IEZpZWxkW10gPSBnZXRCYXNlRmllbGRzKGNvbmZpZywgZW5hYmxlZENvbGxlY3Rpb25zLCBkaXNhYmxlZENvbGxlY3Rpb25zKVxuXG4gIGNvbnN0IGZpZWxkcyA9XG4gICAgdHlwZW9mIGN1c3RvbUZpZWxkU2NoZW1hID09PSAnZnVuY3Rpb24nXG4gICAgICA/IGN1c3RvbUZpZWxkU2NoZW1hKHsgY29uZmlnLCBkZWZhdWx0RmllbGRzOiBiYXNlRmllbGRzLCBpMThuIH0pXG4gICAgICA6IGJhc2VGaWVsZHNcblxuICAvLyBXcmFwIGZpZWxkcyB3aGljaCBhcmUgbm90IHBhcnQgb2YgdGhlIGJhc2Ugc2NoZW1hIGluIGEgZ3JvdXAgbmFtZWQgJ2ZpZWxkcycgLSBvdGhlcndpc2UgdGhleSB3aWxsIGJlIHJlbmRlcmVkIGJ1dCBub3Qgc2F2ZWRcbiAgY29uc3QgZXh0cmFGaWVsZHMgPSBbXVxuICBmb3IgKGxldCBpID0gZmllbGRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgY29uc3QgZmllbGQgPSBmaWVsZHNbaV1cblxuICAgIGlmICgnbmFtZScgaW4gZmllbGQpIHtcbiAgICAgIGlmIChcbiAgICAgICAgIWJhc2VGaWVsZHMuZmluZCgoYmFzZUZpZWxkKSA9PiAhKCduYW1lJyBpbiBiYXNlRmllbGQpIHx8IGJhc2VGaWVsZC5uYW1lID09PSBmaWVsZC5uYW1lKVxuICAgICAgKSB7XG4gICAgICAgIGlmIChmaWVsZC5uYW1lICE9PSAnZmllbGRzJyAmJiBmaWVsZC50eXBlICE9PSAnZ3JvdXAnKSB7XG4gICAgICAgICAgZXh0cmFGaWVsZHMucHVzaChmaWVsZClcbiAgICAgICAgICAvLyBSZW1vdmUgZnJvbSBmaWVsZHMgZnJvbSBub3csIGFzIHRoZXkgbmVlZCB0byBiZSBwYXJ0IG9mIHRoZSBmaWVsZHMgZ3JvdXAgYmVsb3dcbiAgICAgICAgICBmaWVsZHMuc3BsaWNlKGZpZWxkcy5pbmRleE9mKGZpZWxkKSwgMSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChBcnJheS5pc0FycmF5KGN1c3RvbUZpZWxkU2NoZW1hKSB8fCBmaWVsZHMubGVuZ3RoID4gMCkge1xuICAgIC8vIGZpbmQgZmllbGQgd2l0aCBuYW1lICdmaWVsZHMnIGFuZCBhZGQgdGhlIGV4dHJhIGZpZWxkcyB0byBpdFxuICAgIGNvbnN0IGZpZWxkc0ZpZWxkOiBHcm91cEZpZWxkID0gZmllbGRzLmZpbmQoXG4gICAgICAoZmllbGQpID0+IGZpZWxkLnR5cGUgPT09ICdncm91cCcgJiYgZmllbGQubmFtZSA9PT0gJ2ZpZWxkcycsXG4gICAgKSBhcyBHcm91cEZpZWxkXG4gICAgaWYgKCFmaWVsZHNGaWVsZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQ291bGQgbm90IGZpbmQgZmllbGQgd2l0aCBuYW1lIFwiZmllbGRzXCIuIFRoaXMgaXMgcmVxdWlyZWQgdG8gYWRkIGZpZWxkcyB0byB0aGUgbGluayBmaWVsZC4nLFxuICAgICAgKVxuICAgIH1cbiAgICBmaWVsZHNGaWVsZC5maWVsZHMgPSBBcnJheS5pc0FycmF5KGZpZWxkc0ZpZWxkLmZpZWxkcykgPyBmaWVsZHNGaWVsZC5maWVsZHMgOiBbXVxuICAgIGZpZWxkc0ZpZWxkLmZpZWxkcy5wdXNoKFxuICAgICAgLi4uKEFycmF5LmlzQXJyYXkoY3VzdG9tRmllbGRTY2hlbWEpID8gY3VzdG9tRmllbGRTY2hlbWEuY29uY2F0KGV4dHJhRmllbGRzKSA6IGV4dHJhRmllbGRzKSxcbiAgICApXG4gIH1cbiAgcmV0dXJuIGZpZWxkc1xufVxuIl0sIm5hbWVzIjpbInRyYW5zZm9ybUV4dHJhRmllbGRzIiwiY3VzdG9tRmllbGRTY2hlbWEiLCJjb25maWciLCJpMThuIiwiZW5hYmxlZENvbGxlY3Rpb25zIiwiZGlzYWJsZWRDb2xsZWN0aW9ucyIsImJhc2VGaWVsZHMiLCJnZXRCYXNlRmllbGRzIiwiZmllbGRzIiwiZGVmYXVsdEZpZWxkcyIsImV4dHJhRmllbGRzIiwiaSIsImxlbmd0aCIsImZpZWxkIiwiZmluZCIsImJhc2VGaWVsZCIsIm5hbWUiLCJ0eXBlIiwicHVzaCIsInNwbGljZSIsImluZGV4T2YiLCJBcnJheSIsImlzQXJyYXkiLCJmaWVsZHNGaWVsZCIsIkVycm9yIiwiY29uY2F0Il0sIm1hcHBpbmdzIjoiOzs7OytCQVNnQkE7OztlQUFBQTs7OzRCQUxjO0FBS3ZCLFNBQVNBLHFCQUNkQyxpQkFFVyxFQUNYQyxNQUF1QixFQUN2QkMsSUFBVSxFQUNWQyxrQkFBcUMsRUFDckNDLG1CQUFzQztJQUV0QyxNQUFNQyxhQUFzQkMsSUFBQUEseUJBQWEsRUFBQ0wsUUFBUUUsb0JBQW9CQztJQUV0RSxNQUFNRyxTQUNKLE9BQU9QLHNCQUFzQixhQUN6QkEsa0JBQWtCO1FBQUVDO1FBQVFPLGVBQWVIO1FBQVlIO0lBQUssS0FDNURHO0lBRU4sOEhBQThIO0lBQzlILE1BQU1JLGNBQWMsRUFBRTtJQUN0QixJQUFLLElBQUlDLElBQUlILE9BQU9JLE1BQU0sR0FBRyxHQUFHRCxLQUFLLEdBQUdBLElBQUs7UUFDM0MsTUFBTUUsUUFBUUwsTUFBTSxDQUFDRyxFQUFFO1FBRXZCLElBQUksVUFBVUUsT0FBTztZQUNuQixJQUNFLENBQUNQLFdBQVdRLElBQUksQ0FBQyxDQUFDQyxZQUFjLENBQUUsQ0FBQSxVQUFVQSxTQUFRLEtBQU1BLFVBQVVDLElBQUksS0FBS0gsTUFBTUcsSUFBSSxHQUN2RjtnQkFDQSxJQUFJSCxNQUFNRyxJQUFJLEtBQUssWUFBWUgsTUFBTUksSUFBSSxLQUFLLFNBQVM7b0JBQ3JEUCxZQUFZUSxJQUFJLENBQUNMO29CQUNqQixpRkFBaUY7b0JBQ2pGTCxPQUFPVyxNQUFNLENBQUNYLE9BQU9ZLE9BQU8sQ0FBQ1AsUUFBUTtnQkFDdkM7WUFDRjtRQUNGO0lBQ0Y7SUFFQSxJQUFJUSxNQUFNQyxPQUFPLENBQUNyQixzQkFBc0JPLE9BQU9JLE1BQU0sR0FBRyxHQUFHO1FBQ3pELCtEQUErRDtRQUMvRCxNQUFNVyxjQUEwQmYsT0FBT00sSUFBSSxDQUN6QyxDQUFDRCxRQUFVQSxNQUFNSSxJQUFJLEtBQUssV0FBV0osTUFBTUcsSUFBSSxLQUFLO1FBRXRELElBQUksQ0FBQ08sYUFBYTtZQUNoQixNQUFNLElBQUlDLE1BQ1I7UUFFSjtRQUNBRCxZQUFZZixNQUFNLEdBQUdhLE1BQU1DLE9BQU8sQ0FBQ0MsWUFBWWYsTUFBTSxJQUFJZSxZQUFZZixNQUFNLEdBQUcsRUFBRTtRQUNoRmUsWUFBWWYsTUFBTSxDQUFDVSxJQUFJLElBQ2pCRyxNQUFNQyxPQUFPLENBQUNyQixxQkFBcUJBLGtCQUFrQndCLE1BQU0sQ0FBQ2YsZUFBZUE7SUFFbkY7SUFDQSxPQUFPRjtBQUNUIn0=
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9saW5rL3BsdWdpbnMvZmxvYXRpbmdMaW5rRWRpdG9yL3V0aWxpdGllcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEkxOG4gfSBmcm9tICdAcGF5bG9hZGNtcy90cmFuc2xhdGlvbnMnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbmZpZyB9IGZyb20gJ3BheWxvYWQvY29uZmlnJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZCwgR3JvdXBGaWVsZCB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IGdldEJhc2VGaWVsZHMgfSBmcm9tICcuLi8uLi9kcmF3ZXIvYmFzZUZpZWxkcydcblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGlzIHJ1biB0byBlbnJpY2ggdGhlIGJhc2VmaWVsZHMgd2hpY2ggZXZlcnkgbGluayBoYXMgd2l0aCBwb3RlbnRpYWwsIGN1c3RvbSB1c2VyLWFkZGVkIGZpZWxkcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUV4dHJhRmllbGRzKFxuICBjdXN0b21GaWVsZFNjaGVtYTpcbiAgICB8ICgoYXJnczogeyBjb25maWc6IFNhbml0aXplZENvbmZpZzsgZGVmYXVsdEZpZWxkczogRmllbGRbXTsgaTE4bjogSTE4biB9KSA9PiBGaWVsZFtdKVxuICAgIHwgRmllbGRbXSxcbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gIGkxOG46IEkxOG4sXG4gIGVuYWJsZWRDb2xsZWN0aW9ucz86IGZhbHNlIHwgc3RyaW5nW10sXG4gIGRpc2FibGVkQ29sbGVjdGlvbnM/OiBmYWxzZSB8IHN0cmluZ1tdLFxuKTogRmllbGRbXSB7XG4gIGNvbnN0IGJhc2VGaWVsZHM6IEZpZWxkW10gPSBnZXRCYXNlRmllbGRzKGNvbmZpZywgZW5hYmxlZENvbGxlY3Rpb25zLCBkaXNhYmxlZENvbGxlY3Rpb25zKVxuXG4gIGNvbnN0IGZpZWxkcyA9XG4gICAgdHlwZW9mIGN1c3RvbUZpZWxkU2NoZW1hID09PSAnZnVuY3Rpb24nXG4gICAgICA/IGN1c3RvbUZpZWxkU2NoZW1hKHsgY29uZmlnLCBkZWZhdWx0RmllbGRzOiBiYXNlRmllbGRzLCBpMThuIH0pXG4gICAgICA6IGJhc2VGaWVsZHNcblxuICAvLyBXcmFwIGZpZWxkcyB3aGljaCBhcmUgbm90IHBhcnQgb2YgdGhlIGJhc2Ugc2NoZW1hIGluIGEgZ3JvdXAgbmFtZWQgJ2ZpZWxkcycgLSBvdGhlcndpc2UgdGhleSB3aWxsIGJlIHJlbmRlcmVkIGJ1dCBub3Qgc2F2ZWRcbiAgY29uc3QgZXh0cmFGaWVsZHMgPSBbXVxuICBmb3IgKGxldCBpID0gZmllbGRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgY29uc3QgZmllbGQgPSBmaWVsZHNbaV1cblxuICAgIGlmICgnbmFtZScgaW4gZmllbGQpIHtcbiAgICAgIGlmIChcbiAgICAgICAgIWJhc2VGaWVsZHMuZmluZCgoYmFzZUZpZWxkKSA9PiAhKCduYW1lJyBpbiBiYXNlRmllbGQpIHx8IGJhc2VGaWVsZC5uYW1lID09PSBmaWVsZC5uYW1lKVxuICAgICAgKSB7XG4gICAgICAgIGlmIChmaWVsZC5uYW1lICE9PSAnZmllbGRzJyAmJiBmaWVsZC50eXBlICE9PSAnZ3JvdXAnKSB7XG4gICAgICAgICAgZXh0cmFGaWVsZHMucHVzaChmaWVsZClcbiAgICAgICAgICAvLyBSZW1vdmUgZnJvbSBmaWVsZHMgZnJvbSBub3csIGFzIHRoZXkgbmVlZCB0byBiZSBwYXJ0IG9mIHRoZSBmaWVsZHMgZ3JvdXAgYmVsb3dcbiAgICAgICAgICBmaWVsZHMuc3BsaWNlKGZpZWxkcy5pbmRleE9mKGZpZWxkKSwgMSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChBcnJheS5pc0FycmF5KGN1c3RvbUZpZWxkU2NoZW1hKSB8fCBmaWVsZHMubGVuZ3RoID4gMCkge1xuICAgIC8vIGZpbmQgZmllbGQgd2l0aCBuYW1lICdmaWVsZHMnIGFuZCBhZGQgdGhlIGV4dHJhIGZpZWxkcyB0byBpdFxuICAgIGNvbnN0IGZpZWxkc0ZpZWxkOiBHcm91cEZpZWxkID0gZmllbGRzLmZpbmQoXG4gICAgICAoZmllbGQpID0+IGZpZWxkLnR5cGUgPT09ICdncm91cCcgJiYgZmllbGQubmFtZSA9PT0gJ2ZpZWxkcycsXG4gICAgKSBhcyBHcm91cEZpZWxkXG4gICAgaWYgKCFmaWVsZHNGaWVsZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQ291bGQgbm90IGZpbmQgZmllbGQgd2l0aCBuYW1lIFwiZmllbGRzXCIuIFRoaXMgaXMgcmVxdWlyZWQgdG8gYWRkIGZpZWxkcyB0byB0aGUgbGluayBmaWVsZC4nLFxuICAgICAgKVxuICAgIH1cbiAgICBmaWVsZHNGaWVsZC5maWVsZHMgPSBBcnJheS5pc0FycmF5KGZpZWxkc0ZpZWxkLmZpZWxkcykgPyBmaWVsZHNGaWVsZC5maWVsZHMgOiBbXVxuICAgIGZpZWxkc0ZpZWxkLmZpZWxkcy5wdXNoKFxuICAgICAgLi4uKEFycmF5LmlzQXJyYXkoY3VzdG9tRmllbGRTY2hlbWEpID8gY3VzdG9tRmllbGRTY2hlbWEuY29uY2F0KGV4dHJhRmllbGRzKSA6IGV4dHJhRmllbGRzKSxcbiAgICApXG4gIH1cbiAgcmV0dXJuIGZpZWxkc1xufVxuIl0sIm5hbWVzIjpbImdldEJhc2VGaWVsZHMiLCJ0cmFuc2Zvcm1FeHRyYUZpZWxkcyIsImN1c3RvbUZpZWxkU2NoZW1hIiwiY29uZmlnIiwiaTE4biIsImVuYWJsZWRDb2xsZWN0aW9ucyIsImRpc2FibGVkQ29sbGVjdGlvbnMiLCJiYXNlRmllbGRzIiwiZmllbGRzIiwiZGVmYXVsdEZpZWxkcyIsImV4dHJhRmllbGRzIiwiaSIsImxlbmd0aCIsImZpZWxkIiwiZmluZCIsImJhc2VGaWVsZCIsIm5hbWUiLCJ0eXBlIiwicHVzaCIsInNwbGljZSIsImluZGV4T2YiLCJBcnJheSIsImlzQXJyYXkiLCJmaWVsZHNGaWVsZCIsIkVycm9yIiwiY29uY2F0Il0sIm1hcHBpbmdzIjoiQUFJQSxTQUFTQSxhQUFhLFFBQVEsMEJBQXlCO0FBRXZEOztDQUVDLEdBQ0QsT0FBTyxTQUFTQyxxQkFDZEMsaUJBRVcsRUFDWEMsTUFBdUIsRUFDdkJDLElBQVUsRUFDVkMsa0JBQXFDLEVBQ3JDQyxtQkFBc0M7SUFFdEMsTUFBTUMsYUFBc0JQLGNBQWNHLFFBQVFFLG9CQUFvQkM7SUFFdEUsTUFBTUUsU0FDSixPQUFPTixzQkFBc0IsYUFDekJBLGtCQUFrQjtRQUFFQztRQUFRTSxlQUFlRjtRQUFZSDtJQUFLLEtBQzVERztJQUVOLDhIQUE4SDtJQUM5SCxNQUFNRyxjQUFjLEVBQUU7SUFDdEIsSUFBSyxJQUFJQyxJQUFJSCxPQUFPSSxNQUFNLEdBQUcsR0FBR0QsS0FBSyxHQUFHQSxJQUFLO1FBQzNDLE1BQU1FLFFBQVFMLE1BQU0sQ0FBQ0csRUFBRTtRQUV2QixJQUFJLFVBQVVFLE9BQU87WUFDbkIsSUFDRSxDQUFDTixXQUFXTyxJQUFJLENBQUMsQ0FBQ0MsWUFBYyxDQUFFLENBQUEsVUFBVUEsU0FBUSxLQUFNQSxVQUFVQyxJQUFJLEtBQUtILE1BQU1HLElBQUksR0FDdkY7Z0JBQ0EsSUFBSUgsTUFBTUcsSUFBSSxLQUFLLFlBQVlILE1BQU1JLElBQUksS0FBSyxTQUFTO29CQUNyRFAsWUFBWVEsSUFBSSxDQUFDTDtvQkFDakIsaUZBQWlGO29CQUNqRkwsT0FBT1csTUFBTSxDQUFDWCxPQUFPWSxPQUFPLENBQUNQLFFBQVE7Z0JBQ3ZDO1lBQ0Y7UUFDRjtJQUNGO0lBRUEsSUFBSVEsTUFBTUMsT0FBTyxDQUFDcEIsc0JBQXNCTSxPQUFPSSxNQUFNLEdBQUcsR0FBRztRQUN6RCwrREFBK0Q7UUFDL0QsTUFBTVcsY0FBMEJmLE9BQU9NLElBQUksQ0FDekMsQ0FBQ0QsUUFBVUEsTUFBTUksSUFBSSxLQUFLLFdBQVdKLE1BQU1HLElBQUksS0FBSztRQUV0RCxJQUFJLENBQUNPLGFBQWE7WUFDaEIsTUFBTSxJQUFJQyxNQUNSO1FBRUo7UUFDQUQsWUFBWWYsTUFBTSxHQUFHYSxNQUFNQyxPQUFPLENBQUNDLFlBQVlmLE1BQU0sSUFBSWUsWUFBWWYsTUFBTSxHQUFHLEVBQUU7UUFDaEZlLFlBQVlmLE1BQU0sQ0FBQ1UsSUFBSSxJQUNqQkcsTUFBTUMsT0FBTyxDQUFDcEIscUJBQXFCQSxrQkFBa0J1QixNQUFNLENBQUNmLGVBQWVBO0lBRW5GO0lBQ0EsT0FBT0Y7QUFDVCJ9