@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,78 +1,20 @@
1
1
  'use client';
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- function _export(target, all) {
7
- for(var name in all)Object.defineProperty(target, name, {
8
- enumerable: true,
9
- get: all[name]
10
- });
11
- }
12
- _export(exports, {
13
- DropDown: function() {
14
- return DropDown;
15
- },
16
- DropDownItem: function() {
17
- return DropDownItem;
18
- }
19
- });
20
- const _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
21
- const _utils = require("@lexical/utils");
22
- const _lexical = require("lexical");
23
- const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
24
- const _reactdom = require("react-dom");
25
- function _getRequireWildcardCache(nodeInterop) {
26
- if (typeof WeakMap !== "function") return null;
27
- var cacheBabelInterop = new WeakMap();
28
- var cacheNodeInterop = new WeakMap();
29
- return (_getRequireWildcardCache = function(nodeInterop) {
30
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
31
- })(nodeInterop);
32
- }
33
- function _interop_require_wildcard(obj, nodeInterop) {
34
- if (!nodeInterop && obj && obj.__esModule) {
35
- return obj;
36
- }
37
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
38
- return {
39
- default: obj
40
- };
41
- }
42
- var cache = _getRequireWildcardCache(nodeInterop);
43
- if (cache && cache.has(obj)) {
44
- return cache.get(obj);
45
- }
46
- var newObj = {
47
- __proto__: null
48
- };
49
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
50
- for(var key in obj){
51
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
52
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
53
- if (desc && (desc.get || desc.set)) {
54
- Object.defineProperty(newObj, key, desc);
55
- } else {
56
- newObj[key] = obj[key];
57
- }
58
- }
59
- }
60
- newObj.default = obj;
61
- if (cache) {
62
- cache.set(obj, newObj);
63
- }
64
- return newObj;
65
- }
2
+ import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
3
+ import { mergeRegister } from '@lexical/utils';
4
+ import { $getSelection } from 'lexical';
5
+ import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
6
+ import React from 'react';
7
+ import { createPortal } from 'react-dom';
66
8
  const baseClass = 'floating-select-toolbar-popup__dropdown-item';
67
- const DropDownContext = /*#__PURE__*/ _react.default.createContext(null);
68
- function DropDownItem({ children, entry, title }) {
69
- const [editor] = (0, _LexicalComposerContext.useLexicalComposerContext)();
70
- const [enabled, setEnabled] = (0, _react.useState)(true);
71
- const [active, setActive] = (0, _react.useState)(false);
72
- const [className, setClassName] = (0, _react.useState)(baseClass);
73
- const updateStates = (0, _react.useCallback)(()=>{
9
+ const DropDownContext = /*#__PURE__*/ React.createContext(null);
10
+ export function DropDownItem({ children, entry, title }) {
11
+ const [editor] = useLexicalComposerContext();
12
+ const [enabled, setEnabled] = useState(true);
13
+ const [active, setActive] = useState(false);
14
+ const [className, setClassName] = useState(baseClass);
15
+ const updateStates = useCallback(()=>{
74
16
  editor.getEditorState().read(()=>{
75
- const selection = (0, _lexical.$getSelection)();
17
+ const selection = $getSelection();
76
18
  if (entry.isActive) {
77
19
  const isActive = entry.isActive({
78
20
  editor,
@@ -98,12 +40,12 @@ function DropDownItem({ children, entry, title }) {
98
40
  enabled,
99
41
  entry
100
42
  ]);
101
- (0, _react.useEffect)(()=>{
43
+ useEffect(()=>{
102
44
  updateStates();
103
45
  }, [
104
46
  updateStates
105
47
  ]);
106
- (0, _react.useEffect)(()=>{
48
+ useEffect(()=>{
107
49
  document.addEventListener('mouseup', updateStates);
108
50
  return ()=>{
109
51
  document.removeEventListener('mouseup', updateStates);
@@ -111,15 +53,15 @@ function DropDownItem({ children, entry, title }) {
111
53
  }, [
112
54
  updateStates
113
55
  ]);
114
- (0, _react.useEffect)(()=>{
115
- return (0, _utils.mergeRegister)(editor.registerUpdateListener(()=>{
56
+ useEffect(()=>{
57
+ return mergeRegister(editor.registerUpdateListener(()=>{
116
58
  updateStates();
117
59
  }));
118
60
  }, [
119
61
  editor,
120
62
  updateStates
121
63
  ]);
122
- (0, _react.useEffect)(()=>{
64
+ useEffect(()=>{
123
65
  setClassName([
124
66
  baseClass,
125
67
  enabled === false ? 'disabled' : '',
@@ -132,13 +74,13 @@ function DropDownItem({ children, entry, title }) {
132
74
  className,
133
75
  entry.key
134
76
  ]);
135
- const ref = (0, _react.useRef)(null);
136
- const dropDownContext = _react.default.useContext(DropDownContext);
77
+ const ref = useRef(null);
78
+ const dropDownContext = React.useContext(DropDownContext);
137
79
  if (dropDownContext === null) {
138
80
  throw new Error('DropDownItem must be used within a DropDown');
139
81
  }
140
82
  const { registerItem } = dropDownContext;
141
- (0, _react.useEffect)(()=>{
83
+ useEffect(()=>{
142
84
  if (ref?.current != null) {
143
85
  registerItem(ref);
144
86
  }
@@ -146,7 +88,7 @@ function DropDownItem({ children, entry, title }) {
146
88
  ref,
147
89
  registerItem
148
90
  ]);
149
- return /*#__PURE__*/ _react.default.createElement("button", {
91
+ return /*#__PURE__*/ React.createElement("button", {
150
92
  className: className,
151
93
  onClick: ()=>{
152
94
  if (enabled !== false) {
@@ -167,9 +109,9 @@ function DropDownItem({ children, entry, title }) {
167
109
  }, children);
168
110
  }
169
111
  function DropDownItems({ children, dropDownRef, onClose }) {
170
- const [items, setItems] = (0, _react.useState)();
171
- const [highlightedItem, setHighlightedItem] = (0, _react.useState)();
172
- const registerItem = (0, _react.useCallback)((itemRef)=>{
112
+ const [items, setItems] = useState();
113
+ const [highlightedItem, setHighlightedItem] = useState();
114
+ const registerItem = useCallback((itemRef)=>{
173
115
  setItems((prev)=>prev != null ? [
174
116
  ...prev,
175
117
  itemRef
@@ -205,12 +147,12 @@ function DropDownItems({ children, dropDownRef, onClose }) {
205
147
  });
206
148
  }
207
149
  };
208
- const contextValue = (0, _react.useMemo)(()=>({
150
+ const contextValue = useMemo(()=>({
209
151
  registerItem
210
152
  }), [
211
153
  registerItem
212
154
  ]);
213
- (0, _react.useEffect)(()=>{
155
+ useEffect(()=>{
214
156
  if (items != null && highlightedItem == null) {
215
157
  setHighlightedItem(items[0]);
216
158
  }
@@ -221,25 +163,25 @@ function DropDownItems({ children, dropDownRef, onClose }) {
221
163
  items,
222
164
  highlightedItem
223
165
  ]);
224
- return /*#__PURE__*/ _react.default.createElement(DropDownContext.Provider, {
166
+ return /*#__PURE__*/ React.createElement(DropDownContext.Provider, {
225
167
  value: contextValue
226
- }, /*#__PURE__*/ _react.default.createElement("div", {
168
+ }, /*#__PURE__*/ React.createElement("div", {
227
169
  className: "floating-select-toolbar-popup__dropdown-items",
228
170
  onKeyDown: handleKeyDown,
229
171
  ref: dropDownRef
230
172
  }, children));
231
173
  }
232
- function DropDown({ Icon, buttonAriaLabel, buttonClassName, children, disabled = false, stopCloseOnClickSelf }) {
233
- const dropDownRef = (0, _react.useRef)(null);
234
- const buttonRef = (0, _react.useRef)(null);
235
- const [showDropDown, setShowDropDown] = (0, _react.useState)(false);
174
+ export function DropDown({ Icon, buttonAriaLabel, buttonClassName, children, disabled = false, stopCloseOnClickSelf }) {
175
+ const dropDownRef = useRef(null);
176
+ const buttonRef = useRef(null);
177
+ const [showDropDown, setShowDropDown] = useState(false);
236
178
  const handleClose = ()=>{
237
179
  setShowDropDown(false);
238
180
  if (buttonRef?.current != null) {
239
181
  buttonRef.current.focus();
240
182
  }
241
183
  };
242
- (0, _react.useEffect)(()=>{
184
+ useEffect(()=>{
243
185
  const button = buttonRef.current;
244
186
  const dropDown = dropDownRef.current;
245
187
  if (showDropDown && button !== null && dropDown !== null) {
@@ -253,7 +195,7 @@ function DropDown({ Icon, buttonAriaLabel, buttonClassName, children, disabled =
253
195
  buttonRef,
254
196
  showDropDown
255
197
  ]);
256
- (0, _react.useEffect)(()=>{
198
+ useEffect(()=>{
257
199
  const button = buttonRef.current;
258
200
  if (button !== null && showDropDown) {
259
201
  const handle = (event)=>{
@@ -279,7 +221,7 @@ function DropDown({ Icon, buttonAriaLabel, buttonClassName, children, disabled =
279
221
  showDropDown,
280
222
  stopCloseOnClickSelf
281
223
  ]);
282
- return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement("button", {
224
+ return /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement("button", {
283
225
  "aria-label": buttonAriaLabel,
284
226
  className: buttonClassName + (showDropDown ? ' active' : ''),
285
227
  disabled: disabled,
@@ -295,12 +237,12 @@ function DropDown({ Icon, buttonAriaLabel, buttonClassName, children, disabled =
295
237
  },
296
238
  ref: buttonRef,
297
239
  type: "button"
298
- }, /*#__PURE__*/ _react.default.createElement(Icon, null), /*#__PURE__*/ _react.default.createElement("i", {
240
+ }, /*#__PURE__*/ React.createElement(Icon, null), /*#__PURE__*/ React.createElement("i", {
299
241
  className: "floating-select-toolbar-popup__dropdown-caret"
300
- })), showDropDown && /*#__PURE__*/ (0, _reactdom.createPortal)(/*#__PURE__*/ _react.default.createElement(DropDownItems, {
242
+ })), showDropDown && /*#__PURE__*/ createPortal(/*#__PURE__*/ React.createElement(DropDownItems, {
301
243
  dropDownRef: dropDownRef,
302
244
  onClose: handleClose
303
245
  }, children), document.body));
304
246
  }
305
247
 
306
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvRmxvYXRpbmdTZWxlY3RUb29sYmFyL1Rvb2xiYXJEcm9wZG93bi9Ecm9wRG93bi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5pbXBvcnQgeyB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dCdcbmltcG9ydCB7IG1lcmdlUmVnaXN0ZXIgfSBmcm9tICdAbGV4aWNhbC91dGlscydcbmltcG9ydCB7ICRnZXRTZWxlY3Rpb24gfSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHsgdHlwZSBSZWFjdE5vZGUsIHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gJ3JlYWN0LWRvbSdcblxuaW1wb3J0IHR5cGUgeyBGbG9hdGluZ1Rvb2xiYXJTZWN0aW9uRW50cnkgfSBmcm9tICcuLi90eXBlcydcblxuY29uc3QgYmFzZUNsYXNzID0gJ2Zsb2F0aW5nLXNlbGVjdC10b29sYmFyLXBvcHVwX19kcm9wZG93bi1pdGVtJ1xuXG5pbnRlcmZhY2UgRHJvcERvd25Db250ZXh0VHlwZSB7XG4gIHJlZ2lzdGVySXRlbTogKHJlZjogUmVhY3QuUmVmT2JqZWN0PEhUTUxCdXR0b25FbGVtZW50PikgPT4gdm9pZFxufVxuXG5jb25zdCBEcm9wRG93bkNvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0PERyb3BEb3duQ29udGV4dFR5cGUgfCBudWxsPihudWxsKVxuXG5leHBvcnQgZnVuY3Rpb24gRHJvcERvd25JdGVtKHtcbiAgY2hpbGRyZW4sXG4gIGVudHJ5LFxuICB0aXRsZSxcbn06IHtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZVxuICBlbnRyeTogRmxvYXRpbmdUb29sYmFyU2VjdGlvbkVudHJ5XG4gIHRpdGxlPzogc3RyaW5nXG59KTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgY29uc3QgW2VkaXRvcl0gPSB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0KClcbiAgY29uc3QgW2VuYWJsZWQsIHNldEVuYWJsZWRdID0gdXNlU3RhdGU8Ym9vbGVhbj4odHJ1ZSlcbiAgY29uc3QgW2FjdGl2ZSwgc2V0QWN0aXZlXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKVxuICBjb25zdCBbY2xhc3NOYW1lLCBzZXRDbGFzc05hbWVdID0gdXNlU3RhdGU8c3RyaW5nPihiYXNlQ2xhc3MpXG5cbiAgY29uc3QgdXBkYXRlU3RhdGVzID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGVkaXRvci5nZXRFZGl0b3JTdGF0ZSgpLnJlYWQoKCkgPT4ge1xuICAgICAgY29uc3Qgc2VsZWN0aW9uID0gJGdldFNlbGVjdGlvbigpXG4gICAgICBpZiAoZW50cnkuaXNBY3RpdmUpIHtcbiAgICAgICAgY29uc3QgaXNBY3RpdmUgPSBlbnRyeS5pc0FjdGl2ZSh7IGVkaXRvciwgc2VsZWN0aW9uIH0pXG4gICAgICAgIGlmIChhY3RpdmUgIT09IGlzQWN0aXZlKSB7XG4gICAgICAgICAgc2V0QWN0aXZlKGlzQWN0aXZlKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoZW50cnkuaXNFbmFibGVkKSB7XG4gICAgICAgIGNvbnN0IGlzRW5hYmxlZCA9IGVudHJ5LmlzRW5hYmxlZCh7IGVkaXRvciwgc2VsZWN0aW9uIH0pXG4gICAgICAgIGlmIChlbmFibGVkICE9PSBpc0VuYWJsZWQpIHtcbiAgICAgICAgICBzZXRFbmFibGVkKGlzRW5hYmxlZClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gIH0sIFthY3RpdmUsIGVkaXRvciwgZW5hYmxlZCwgZW50cnldKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgdXBkYXRlU3RhdGVzKClcbiAgfSwgW3VwZGF0ZVN0YXRlc10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdXBkYXRlU3RhdGVzKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdXBkYXRlU3RhdGVzKVxuICAgIH1cbiAgfSwgW3VwZGF0ZVN0YXRlc10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gbWVyZ2VSZWdpc3RlcihcbiAgICAgIGVkaXRvci5yZWdpc3RlclVwZGF0ZUxpc3RlbmVyKCgpID0+IHtcbiAgICAgICAgdXBkYXRlU3RhdGVzKClcbiAgICAgIH0pLFxuICAgIClcbiAgfSwgW2VkaXRvciwgdXBkYXRlU3RhdGVzXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldENsYXNzTmFtZShcbiAgICAgIFtcbiAgICAgICAgYmFzZUNsYXNzLFxuICAgICAgICBlbmFibGVkID09PSBmYWxzZSA/ICdkaXNhYmxlZCcgOiAnJyxcbiAgICAgICAgYWN0aXZlID8gJ2FjdGl2ZScgOiAnJyxcbiAgICAgICAgZW50cnk/LmtleSA/IGAke2Jhc2VDbGFzc30tJHtlbnRyeS5rZXl9YCA6ICcnLFxuICAgICAgXVxuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgIC5qb2luKCcgJyksXG4gICAgKVxuICB9LCBbZW5hYmxlZCwgYWN0aXZlLCBjbGFzc05hbWUsIGVudHJ5LmtleV0pXG5cbiAgY29uc3QgcmVmID0gdXNlUmVmPEhUTUxCdXR0b25FbGVtZW50PihudWxsKVxuXG4gIGNvbnN0IGRyb3BEb3duQ29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoRHJvcERvd25Db250ZXh0KVxuXG4gIGlmIChkcm9wRG93bkNvbnRleHQgPT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Ryb3BEb3duSXRlbSBtdXN0IGJlIHVzZWQgd2l0aGluIGEgRHJvcERvd24nKVxuICB9XG5cbiAgY29uc3QgeyByZWdpc3Rlckl0ZW0gfSA9IGRyb3BEb3duQ29udGV4dFxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHJlZj8uY3VycmVudCAhPSBudWxsKSB7XG4gICAgICByZWdpc3Rlckl0ZW0ocmVmKVxuICAgIH1cbiAgfSwgW3JlZiwgcmVnaXN0ZXJJdGVtXSlcblxuICByZXR1cm4gKFxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICBpZiAoZW5hYmxlZCAhPT0gZmFsc2UpIHtcbiAgICAgICAgICBlbnRyeS5vbkNsaWNrKHtcbiAgICAgICAgICAgIGVkaXRvcixcbiAgICAgICAgICAgIGlzQWN0aXZlOiBhY3RpdmUsXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfX1cbiAgICAgIG9uTW91c2VEb3duPXsoZSkgPT4ge1xuICAgICAgICAvLyBUaGlzIGlzIHJlcXVpcmVkIGZvciBGaXJlZm94IGNvbXBhdGliaWxpdHkuIFdpdGhvdXQgaXQsIHRoZSBkcm9wZG93biB3aWxsIGRpc2FwcGVhciB3aXRob3V0IHRoZSBvbkNsaWNrIGJlaW5nIGNhbGxlZC5cbiAgICAgICAgLy8gVGhpcyBvbmx5IGhhcHBlbnMgaW4gRmlyZWZveC4gTXVzdCBiZSBzb21ldGhpbmcgYWJvdXQgaG93IEZpcmVmb3ggaGFuZGxlcyBmb2N1cyBldmVudHMgZGlmZmVyZW50bHkuXG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgfX1cbiAgICAgIHJlZj17cmVmfVxuICAgICAgdGl0bGU9e3RpdGxlfVxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvYnV0dG9uPlxuICApXG59XG5cbmZ1bmN0aW9uIERyb3BEb3duSXRlbXMoe1xuICBjaGlsZHJlbixcbiAgZHJvcERvd25SZWYsXG4gIG9uQ2xvc2UsXG59OiB7XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGVcbiAgZHJvcERvd25SZWY6IFJlYWN0LlJlZjxIVE1MRGl2RWxlbWVudD5cbiAgb25DbG9zZTogKCkgPT4gdm9pZFxufSk6IEpTWC5FbGVtZW50IHtcbiAgY29uc3QgW2l0ZW1zLCBzZXRJdGVtc10gPSB1c2VTdGF0ZTxBcnJheTxSZWFjdC5SZWZPYmplY3Q8SFRNTEJ1dHRvbkVsZW1lbnQ+Pj4oKVxuICBjb25zdCBbaGlnaGxpZ2h0ZWRJdGVtLCBzZXRIaWdobGlnaHRlZEl0ZW1dID0gdXNlU3RhdGU8UmVhY3QuUmVmT2JqZWN0PEhUTUxCdXR0b25FbGVtZW50Pj4oKVxuXG4gIGNvbnN0IHJlZ2lzdGVySXRlbSA9IHVzZUNhbGxiYWNrKFxuICAgIChpdGVtUmVmOiBSZWFjdC5SZWZPYmplY3Q8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiB7XG4gICAgICBzZXRJdGVtcygocHJldikgPT4gKHByZXYgIT0gbnVsbCA/IFsuLi5wcmV2LCBpdGVtUmVmXSA6IFtpdGVtUmVmXSkpXG4gICAgfSxcbiAgICBbc2V0SXRlbXNdLFxuICApXG5cbiAgY29uc3QgaGFuZGxlS2V5RG93biA9IChldmVudDogUmVhY3QuS2V5Ym9hcmRFdmVudDxIVE1MRGl2RWxlbWVudD4pOiB2b2lkID0+IHtcbiAgICBpZiAoaXRlbXMgPT0gbnVsbCkgcmV0dXJuXG5cbiAgICBjb25zdCB7IGtleSB9ID0gZXZlbnRcblxuICAgIGlmIChbJ0Fycm93RG93bicsICdBcnJvd1VwJywgJ0VzY2FwZScsICdUYWInXS5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgfVxuXG4gICAgaWYgKGtleSA9PT0gJ0VzY2FwZScgfHwga2V5ID09PSAnVGFiJykge1xuICAgICAgb25DbG9zZSgpXG4gICAgfSBlbHNlIGlmIChrZXkgPT09ICdBcnJvd1VwJykge1xuICAgICAgc2V0SGlnaGxpZ2h0ZWRJdGVtKChwcmV2KSA9PiB7XG4gICAgICAgIGlmIChwcmV2ID09IG51bGwpIHJldHVybiBpdGVtc1swXVxuICAgICAgICBjb25zdCBpbmRleCA9IGl0ZW1zLmluZGV4T2YocHJldikgLSAxXG4gICAgICAgIHJldHVybiBpdGVtc1tpbmRleCA9PT0gLTEgPyBpdGVtcy5sZW5ndGggLSAxIDogaW5kZXhdXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgc2V0SGlnaGxpZ2h0ZWRJdGVtKChwcmV2KSA9PiB7XG4gICAgICAgIGlmIChwcmV2ID09IG51bGwpIHJldHVybiBpdGVtc1swXVxuICAgICAgICByZXR1cm4gaXRlbXNbaXRlbXMuaW5kZXhPZihwcmV2KSArIDFdXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGNvbnRleHRWYWx1ZSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIHJlZ2lzdGVySXRlbSxcbiAgICB9KSxcbiAgICBbcmVnaXN0ZXJJdGVtXSxcbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGl0ZW1zICE9IG51bGwgJiYgaGlnaGxpZ2h0ZWRJdGVtID09IG51bGwpIHtcbiAgICAgIHNldEhpZ2hsaWdodGVkSXRlbShpdGVtc1swXSlcbiAgICB9XG5cbiAgICBpZiAoaGlnaGxpZ2h0ZWRJdGVtPy5jdXJyZW50ICE9IG51bGwpIHtcbiAgICAgIGhpZ2hsaWdodGVkSXRlbS5jdXJyZW50LmZvY3VzKClcbiAgICB9XG4gIH0sIFtpdGVtcywgaGlnaGxpZ2h0ZWRJdGVtXSlcblxuICByZXR1cm4gKFxuICAgIDxEcm9wRG93bkNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2NvbnRleHRWYWx1ZX0+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT1cImZsb2F0aW5nLXNlbGVjdC10b29sYmFyLXBvcHVwX19kcm9wZG93bi1pdGVtc1wiXG4gICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgcmVmPXtkcm9wRG93blJlZn1cbiAgICAgID5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9kaXY+XG4gICAgPC9Ecm9wRG93bkNvbnRleHQuUHJvdmlkZXI+XG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIERyb3BEb3duKHtcbiAgSWNvbixcbiAgYnV0dG9uQXJpYUxhYmVsLFxuICBidXR0b25DbGFzc05hbWUsXG4gIGNoaWxkcmVuLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICBzdG9wQ2xvc2VPbkNsaWNrU2VsZixcbn06IHtcbiAgSWNvbj86IFJlYWN0LkZDXG4gIGJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZ1xuICBidXR0b25DbGFzc05hbWU6IHN0cmluZ1xuICBjaGlsZHJlbjogUmVhY3ROb2RlXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICBzdG9wQ2xvc2VPbkNsaWNrU2VsZj86IGJvb2xlYW5cbn0pOiBSZWFjdC5SZWFjdE5vZGUge1xuICBjb25zdCBkcm9wRG93blJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgYnV0dG9uUmVmID0gdXNlUmVmPEhUTUxCdXR0b25FbGVtZW50PihudWxsKVxuICBjb25zdCBbc2hvd0Ryb3BEb3duLCBzZXRTaG93RHJvcERvd25dID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgY29uc3QgaGFuZGxlQ2xvc2UgPSAoKTogdm9pZCA9PiB7XG4gICAgc2V0U2hvd0Ryb3BEb3duKGZhbHNlKVxuICAgIGlmIChidXR0b25SZWY/LmN1cnJlbnQgIT0gbnVsbCkge1xuICAgICAgYnV0dG9uUmVmLmN1cnJlbnQuZm9jdXMoKVxuICAgIH1cbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgYnV0dG9uID0gYnV0dG9uUmVmLmN1cnJlbnRcbiAgICBjb25zdCBkcm9wRG93biA9IGRyb3BEb3duUmVmLmN1cnJlbnRcblxuICAgIGlmIChzaG93RHJvcERvd24gJiYgYnV0dG9uICE9PSBudWxsICYmIGRyb3BEb3duICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB7IGxlZnQsIHRvcCB9ID0gYnV0dG9uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICBjb25zdCBzY3JvbGxUb3BPZmZzZXQgPSB3aW5kb3cucGFnZVlPZmZzZXQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcFxuICAgICAgZHJvcERvd24uc3R5bGUudG9wID0gYCR7dG9wICsgc2Nyb2xsVG9wT2Zmc2V0ICsgYnV0dG9uLm9mZnNldEhlaWdodCArIDV9cHhgXG4gICAgICBkcm9wRG93bi5zdHlsZS5sZWZ0ID0gYCR7TWF0aC5taW4obGVmdCAtIDUsIHdpbmRvdy5pbm5lcldpZHRoIC0gZHJvcERvd24ub2Zmc2V0V2lkdGggLSAyMCl9cHhgXG4gICAgfVxuICB9LCBbZHJvcERvd25SZWYsIGJ1dHRvblJlZiwgc2hvd0Ryb3BEb3duXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGJ1dHRvbiA9IGJ1dHRvblJlZi5jdXJyZW50XG5cbiAgICBpZiAoYnV0dG9uICE9PSBudWxsICYmIHNob3dEcm9wRG93bikge1xuICAgICAgY29uc3QgaGFuZGxlID0gKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCA9PiB7XG4gICAgICAgIGNvbnN0IHsgdGFyZ2V0IH0gPSBldmVudFxuICAgICAgICBpZiAoc3RvcENsb3NlT25DbGlja1NlbGYgIT0gbnVsbCkge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLW9wdGlvbmFsLWNoYWluXG4gICAgICAgICAgaWYgKGRyb3BEb3duUmVmLmN1cnJlbnQgIT0gbnVsbCAmJiBkcm9wRG93blJlZi5jdXJyZW50LmNvbnRhaW5zKHRhcmdldCBhcyBOb2RlKSkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghYnV0dG9uLmNvbnRhaW5zKHRhcmdldCBhcyBOb2RlKSkge1xuICAgICAgICAgIHNldFNob3dEcm9wRG93bihmYWxzZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGUpXG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2Ryb3BEb3duUmVmLCBidXR0b25SZWYsIHNob3dEcm9wRG93biwgc3RvcENsb3NlT25DbGlja1NlbGZdKVxuXG4gIHJldHVybiAoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPGJ1dHRvblxuICAgICAgICBhcmlhLWxhYmVsPXtidXR0b25BcmlhTGFiZWx9XG4gICAgICAgIGNsYXNzTmFtZT17YnV0dG9uQ2xhc3NOYW1lICsgKHNob3dEcm9wRG93biA/ICcgYWN0aXZlJyA6ICcnKX1cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBvbkNsaWNrPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgc2V0U2hvd0Ryb3BEb3duKCFzaG93RHJvcERvd24pXG4gICAgICAgIH19XG4gICAgICAgIG9uTW91c2VEb3duPXsoZSkgPT4ge1xuICAgICAgICAgIC8vIFRoaXMgZml4ZXMgYSBidWcgd2hlcmUgeW91IGFyZSB1bmFibGUgdG8gY2xpY2sgdGhlIGJ1dHRvbiBpZiB5b3UgYXJlIGluIGEgTkVTVEVEIGVkaXRvciAoZWRpdG9yIGluIGJsb2NrcyBmaWVsZCBpbiBlZGl0b3IpLlxuICAgICAgICAgIC8vIFRodXMgb25seSBoYXBwZW5zIGlmIHlvdSBjbGljayBvbiB0aGUgU1ZHIG9mIHRoZSBidXR0b24uIENsaWNraW5nIG9uIHRoZSBvdXRzaWRlIHdvcmtzLiBSZWxhdGVkIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcGF5bG9hZGNtcy9wYXlsb2FkL2lzc3Vlcy80MDI1XG4gICAgICAgICAgLy8gVE9ETzogRmluZCBvdXQgd2h5IGV4YWN0bHkgaXQgaGFwcGVucyBhbmQgd2h5IGUucHJldmVudERlZmF1bHQoKSBvbiB0aGUgbW91c2VEb3duIGZpeGVzIGl0LiBXcml0ZSB0aGF0IGRvd24gaGVyZSwgb3IgcG90ZW50aWFsbHkgZml4IGEgcm9vdCBjYXVzZSwgaWYgdGhlcmUgaXMgYW55LlxuICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgICB9fVxuICAgICAgICByZWY9e2J1dHRvblJlZn1cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICA+XG4gICAgICAgIDxJY29uIC8+XG4gICAgICAgIDxpIGNsYXNzTmFtZT1cImZsb2F0aW5nLXNlbGVjdC10b29sYmFyLXBvcHVwX19kcm9wZG93bi1jYXJldFwiIC8+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAge3Nob3dEcm9wRG93biAmJlxuICAgICAgICBjcmVhdGVQb3J0YWwoXG4gICAgICAgICAgPERyb3BEb3duSXRlbXMgZHJvcERvd25SZWY9e2Ryb3BEb3duUmVmfSBvbkNsb3NlPXtoYW5kbGVDbG9zZX0+XG4gICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgPC9Ecm9wRG93bkl0ZW1zPixcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LFxuICAgICAgICApfVxuICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJEcm9wRG93biIsIkRyb3BEb3duSXRlbSIsImJhc2VDbGFzcyIsIkRyb3BEb3duQ29udGV4dCIsIlJlYWN0IiwiY3JlYXRlQ29udGV4dCIsImNoaWxkcmVuIiwiZW50cnkiLCJ0aXRsZSIsImVkaXRvciIsInVzZUxleGljYWxDb21wb3NlckNvbnRleHQiLCJlbmFibGVkIiwic2V0RW5hYmxlZCIsInVzZVN0YXRlIiwiYWN0aXZlIiwic2V0QWN0aXZlIiwiY2xhc3NOYW1lIiwic2V0Q2xhc3NOYW1lIiwidXBkYXRlU3RhdGVzIiwidXNlQ2FsbGJhY2siLCJnZXRFZGl0b3JTdGF0ZSIsInJlYWQiLCJzZWxlY3Rpb24iLCIkZ2V0U2VsZWN0aW9uIiwiaXNBY3RpdmUiLCJpc0VuYWJsZWQiLCJ1c2VFZmZlY3QiLCJkb2N1bWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwibWVyZ2VSZWdpc3RlciIsInJlZ2lzdGVyVXBkYXRlTGlzdGVuZXIiLCJrZXkiLCJmaWx0ZXIiLCJCb29sZWFuIiwiam9pbiIsInJlZiIsInVzZVJlZiIsImRyb3BEb3duQ29udGV4dCIsInVzZUNvbnRleHQiLCJFcnJvciIsInJlZ2lzdGVySXRlbSIsImN1cnJlbnQiLCJidXR0b24iLCJvbkNsaWNrIiwib25Nb3VzZURvd24iLCJlIiwicHJldmVudERlZmF1bHQiLCJ0eXBlIiwiRHJvcERvd25JdGVtcyIsImRyb3BEb3duUmVmIiwib25DbG9zZSIsIml0ZW1zIiwic2V0SXRlbXMiLCJoaWdobGlnaHRlZEl0ZW0iLCJzZXRIaWdobGlnaHRlZEl0ZW0iLCJpdGVtUmVmIiwicHJldiIsImhhbmRsZUtleURvd24iLCJldmVudCIsImluY2x1ZGVzIiwiaW5kZXgiLCJpbmRleE9mIiwibGVuZ3RoIiwiY29udGV4dFZhbHVlIiwidXNlTWVtbyIsImZvY3VzIiwiUHJvdmlkZXIiLCJ2YWx1ZSIsImRpdiIsIm9uS2V5RG93biIsIkljb24iLCJidXR0b25BcmlhTGFiZWwiLCJidXR0b25DbGFzc05hbWUiLCJkaXNhYmxlZCIsInN0b3BDbG9zZU9uQ2xpY2tTZWxmIiwiYnV0dG9uUmVmIiwic2hvd0Ryb3BEb3duIiwic2V0U2hvd0Ryb3BEb3duIiwiaGFuZGxlQ2xvc2UiLCJkcm9wRG93biIsImxlZnQiLCJ0b3AiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJzY3JvbGxUb3BPZmZzZXQiLCJ3aW5kb3ciLCJwYWdlWU9mZnNldCIsImRvY3VtZW50RWxlbWVudCIsInNjcm9sbFRvcCIsInN0eWxlIiwib2Zmc2V0SGVpZ2h0IiwiTWF0aCIsIm1pbiIsImlubmVyV2lkdGgiLCJvZmZzZXRXaWR0aCIsImhhbmRsZSIsInRhcmdldCIsImNvbnRhaW5zIiwiRnJhZ21lbnQiLCJhcmlhLWxhYmVsIiwiaSIsImNyZWF0ZVBvcnRhbCIsImJvZHkiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7SUFxTWdCQSxRQUFRO2VBQVJBOztJQW5MQUMsWUFBWTtlQUFaQTs7O3dDQWpCMEI7dUJBQ1o7eUJBQ0E7K0RBQ29EOzBCQUVyRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSTdCLE1BQU1DLFlBQVk7QUFNbEIsTUFBTUMsZ0NBQWtCQyxjQUFLLENBQUNDLGFBQWEsQ0FBNkI7QUFFakUsU0FBU0osYUFBYSxFQUMzQkssUUFBUSxFQUNSQyxLQUFLLEVBQ0xDLEtBQUssRUFLTjtJQUNDLE1BQU0sQ0FBQ0MsT0FBTyxHQUFHQyxJQUFBQSxpREFBeUI7SUFDMUMsTUFBTSxDQUFDQyxTQUFTQyxXQUFXLEdBQUdDLElBQUFBLGVBQVEsRUFBVTtJQUNoRCxNQUFNLENBQUNDLFFBQVFDLFVBQVUsR0FBR0YsSUFBQUEsZUFBUSxFQUFVO0lBQzlDLE1BQU0sQ0FBQ0csV0FBV0MsYUFBYSxHQUFHSixJQUFBQSxlQUFRLEVBQVNYO0lBRW5ELE1BQU1nQixlQUFlQyxJQUFBQSxrQkFBVyxFQUFDO1FBQy9CVixPQUFPVyxjQUFjLEdBQUdDLElBQUksQ0FBQztZQUMzQixNQUFNQyxZQUFZQyxJQUFBQSxzQkFBYTtZQUMvQixJQUFJaEIsTUFBTWlCLFFBQVEsRUFBRTtnQkFDbEIsTUFBTUEsV0FBV2pCLE1BQU1pQixRQUFRLENBQUM7b0JBQUVmO29CQUFRYTtnQkFBVTtnQkFDcEQsSUFBSVIsV0FBV1UsVUFBVTtvQkFDdkJULFVBQVVTO2dCQUNaO1lBQ0Y7WUFDQSxJQUFJakIsTUFBTWtCLFNBQVMsRUFBRTtnQkFDbkIsTUFBTUEsWUFBWWxCLE1BQU1rQixTQUFTLENBQUM7b0JBQUVoQjtvQkFBUWE7Z0JBQVU7Z0JBQ3RELElBQUlYLFlBQVljLFdBQVc7b0JBQ3pCYixXQUFXYTtnQkFDYjtZQUNG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
248
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvRmxvYXRpbmdTZWxlY3RUb29sYmFyL1Rvb2xiYXJEcm9wZG93bi9Ecm9wRG93bi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5pbXBvcnQgeyB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IH0gZnJvbSAnQGxleGljYWwvcmVhY3QvTGV4aWNhbENvbXBvc2VyQ29udGV4dCdcbmltcG9ydCB7IG1lcmdlUmVnaXN0ZXIgfSBmcm9tICdAbGV4aWNhbC91dGlscydcbmltcG9ydCB7ICRnZXRTZWxlY3Rpb24gfSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHsgdHlwZSBSZWFjdE5vZGUsIHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gJ3JlYWN0LWRvbSdcblxuaW1wb3J0IHR5cGUgeyBGbG9hdGluZ1Rvb2xiYXJTZWN0aW9uRW50cnkgfSBmcm9tICcuLi90eXBlcydcblxuY29uc3QgYmFzZUNsYXNzID0gJ2Zsb2F0aW5nLXNlbGVjdC10b29sYmFyLXBvcHVwX19kcm9wZG93bi1pdGVtJ1xuXG5pbnRlcmZhY2UgRHJvcERvd25Db250ZXh0VHlwZSB7XG4gIHJlZ2lzdGVySXRlbTogKHJlZjogUmVhY3QuUmVmT2JqZWN0PEhUTUxCdXR0b25FbGVtZW50PikgPT4gdm9pZFxufVxuXG5jb25zdCBEcm9wRG93bkNvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0PERyb3BEb3duQ29udGV4dFR5cGUgfCBudWxsPihudWxsKVxuXG5leHBvcnQgZnVuY3Rpb24gRHJvcERvd25JdGVtKHtcbiAgY2hpbGRyZW4sXG4gIGVudHJ5LFxuICB0aXRsZSxcbn06IHtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZVxuICBlbnRyeTogRmxvYXRpbmdUb29sYmFyU2VjdGlvbkVudHJ5XG4gIHRpdGxlPzogc3RyaW5nXG59KTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgY29uc3QgW2VkaXRvcl0gPSB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0KClcbiAgY29uc3QgW2VuYWJsZWQsIHNldEVuYWJsZWRdID0gdXNlU3RhdGU8Ym9vbGVhbj4odHJ1ZSlcbiAgY29uc3QgW2FjdGl2ZSwgc2V0QWN0aXZlXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKVxuICBjb25zdCBbY2xhc3NOYW1lLCBzZXRDbGFzc05hbWVdID0gdXNlU3RhdGU8c3RyaW5nPihiYXNlQ2xhc3MpXG5cbiAgY29uc3QgdXBkYXRlU3RhdGVzID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGVkaXRvci5nZXRFZGl0b3JTdGF0ZSgpLnJlYWQoKCkgPT4ge1xuICAgICAgY29uc3Qgc2VsZWN0aW9uID0gJGdldFNlbGVjdGlvbigpXG4gICAgICBpZiAoZW50cnkuaXNBY3RpdmUpIHtcbiAgICAgICAgY29uc3QgaXNBY3RpdmUgPSBlbnRyeS5pc0FjdGl2ZSh7IGVkaXRvciwgc2VsZWN0aW9uIH0pXG4gICAgICAgIGlmIChhY3RpdmUgIT09IGlzQWN0aXZlKSB7XG4gICAgICAgICAgc2V0QWN0aXZlKGlzQWN0aXZlKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoZW50cnkuaXNFbmFibGVkKSB7XG4gICAgICAgIGNvbnN0IGlzRW5hYmxlZCA9IGVudHJ5LmlzRW5hYmxlZCh7IGVkaXRvciwgc2VsZWN0aW9uIH0pXG4gICAgICAgIGlmIChlbmFibGVkICE9PSBpc0VuYWJsZWQpIHtcbiAgICAgICAgICBzZXRFbmFibGVkKGlzRW5hYmxlZClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gIH0sIFthY3RpdmUsIGVkaXRvciwgZW5hYmxlZCwgZW50cnldKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgdXBkYXRlU3RhdGVzKClcbiAgfSwgW3VwZGF0ZVN0YXRlc10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdXBkYXRlU3RhdGVzKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdXBkYXRlU3RhdGVzKVxuICAgIH1cbiAgfSwgW3VwZGF0ZVN0YXRlc10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gbWVyZ2VSZWdpc3RlcihcbiAgICAgIGVkaXRvci5yZWdpc3RlclVwZGF0ZUxpc3RlbmVyKCgpID0+IHtcbiAgICAgICAgdXBkYXRlU3RhdGVzKClcbiAgICAgIH0pLFxuICAgIClcbiAgfSwgW2VkaXRvciwgdXBkYXRlU3RhdGVzXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldENsYXNzTmFtZShcbiAgICAgIFtcbiAgICAgICAgYmFzZUNsYXNzLFxuICAgICAgICBlbmFibGVkID09PSBmYWxzZSA/ICdkaXNhYmxlZCcgOiAnJyxcbiAgICAgICAgYWN0aXZlID8gJ2FjdGl2ZScgOiAnJyxcbiAgICAgICAgZW50cnk/LmtleSA/IGAke2Jhc2VDbGFzc30tJHtlbnRyeS5rZXl9YCA6ICcnLFxuICAgICAgXVxuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgIC5qb2luKCcgJyksXG4gICAgKVxuICB9LCBbZW5hYmxlZCwgYWN0aXZlLCBjbGFzc05hbWUsIGVudHJ5LmtleV0pXG5cbiAgY29uc3QgcmVmID0gdXNlUmVmPEhUTUxCdXR0b25FbGVtZW50PihudWxsKVxuXG4gIGNvbnN0IGRyb3BEb3duQ29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoRHJvcERvd25Db250ZXh0KVxuXG4gIGlmIChkcm9wRG93bkNvbnRleHQgPT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Ryb3BEb3duSXRlbSBtdXN0IGJlIHVzZWQgd2l0aGluIGEgRHJvcERvd24nKVxuICB9XG5cbiAgY29uc3QgeyByZWdpc3Rlckl0ZW0gfSA9IGRyb3BEb3duQ29udGV4dFxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHJlZj8uY3VycmVudCAhPSBudWxsKSB7XG4gICAgICByZWdpc3Rlckl0ZW0ocmVmKVxuICAgIH1cbiAgfSwgW3JlZiwgcmVnaXN0ZXJJdGVtXSlcblxuICByZXR1cm4gKFxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICBpZiAoZW5hYmxlZCAhPT0gZmFsc2UpIHtcbiAgICAgICAgICBlbnRyeS5vbkNsaWNrKHtcbiAgICAgICAgICAgIGVkaXRvcixcbiAgICAgICAgICAgIGlzQWN0aXZlOiBhY3RpdmUsXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfX1cbiAgICAgIG9uTW91c2VEb3duPXsoZSkgPT4ge1xuICAgICAgICAvLyBUaGlzIGlzIHJlcXVpcmVkIGZvciBGaXJlZm94IGNvbXBhdGliaWxpdHkuIFdpdGhvdXQgaXQsIHRoZSBkcm9wZG93biB3aWxsIGRpc2FwcGVhciB3aXRob3V0IHRoZSBvbkNsaWNrIGJlaW5nIGNhbGxlZC5cbiAgICAgICAgLy8gVGhpcyBvbmx5IGhhcHBlbnMgaW4gRmlyZWZveC4gTXVzdCBiZSBzb21ldGhpbmcgYWJvdXQgaG93IEZpcmVmb3ggaGFuZGxlcyBmb2N1cyBldmVudHMgZGlmZmVyZW50bHkuXG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgfX1cbiAgICAgIHJlZj17cmVmfVxuICAgICAgdGl0bGU9e3RpdGxlfVxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvYnV0dG9uPlxuICApXG59XG5cbmZ1bmN0aW9uIERyb3BEb3duSXRlbXMoe1xuICBjaGlsZHJlbixcbiAgZHJvcERvd25SZWYsXG4gIG9uQ2xvc2UsXG59OiB7XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGVcbiAgZHJvcERvd25SZWY6IFJlYWN0LlJlZjxIVE1MRGl2RWxlbWVudD5cbiAgb25DbG9zZTogKCkgPT4gdm9pZFxufSk6IEpTWC5FbGVtZW50IHtcbiAgY29uc3QgW2l0ZW1zLCBzZXRJdGVtc10gPSB1c2VTdGF0ZTxBcnJheTxSZWFjdC5SZWZPYmplY3Q8SFRNTEJ1dHRvbkVsZW1lbnQ+Pj4oKVxuICBjb25zdCBbaGlnaGxpZ2h0ZWRJdGVtLCBzZXRIaWdobGlnaHRlZEl0ZW1dID0gdXNlU3RhdGU8UmVhY3QuUmVmT2JqZWN0PEhUTUxCdXR0b25FbGVtZW50Pj4oKVxuXG4gIGNvbnN0IHJlZ2lzdGVySXRlbSA9IHVzZUNhbGxiYWNrKFxuICAgIChpdGVtUmVmOiBSZWFjdC5SZWZPYmplY3Q8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiB7XG4gICAgICBzZXRJdGVtcygocHJldikgPT4gKHByZXYgIT0gbnVsbCA/IFsuLi5wcmV2LCBpdGVtUmVmXSA6IFtpdGVtUmVmXSkpXG4gICAgfSxcbiAgICBbc2V0SXRlbXNdLFxuICApXG5cbiAgY29uc3QgaGFuZGxlS2V5RG93biA9IChldmVudDogUmVhY3QuS2V5Ym9hcmRFdmVudDxIVE1MRGl2RWxlbWVudD4pOiB2b2lkID0+IHtcbiAgICBpZiAoaXRlbXMgPT0gbnVsbCkgcmV0dXJuXG5cbiAgICBjb25zdCB7IGtleSB9ID0gZXZlbnRcblxuICAgIGlmIChbJ0Fycm93RG93bicsICdBcnJvd1VwJywgJ0VzY2FwZScsICdUYWInXS5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgfVxuXG4gICAgaWYgKGtleSA9PT0gJ0VzY2FwZScgfHwga2V5ID09PSAnVGFiJykge1xuICAgICAgb25DbG9zZSgpXG4gICAgfSBlbHNlIGlmIChrZXkgPT09ICdBcnJvd1VwJykge1xuICAgICAgc2V0SGlnaGxpZ2h0ZWRJdGVtKChwcmV2KSA9PiB7XG4gICAgICAgIGlmIChwcmV2ID09IG51bGwpIHJldHVybiBpdGVtc1swXVxuICAgICAgICBjb25zdCBpbmRleCA9IGl0ZW1zLmluZGV4T2YocHJldikgLSAxXG4gICAgICAgIHJldHVybiBpdGVtc1tpbmRleCA9PT0gLTEgPyBpdGVtcy5sZW5ndGggLSAxIDogaW5kZXhdXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgc2V0SGlnaGxpZ2h0ZWRJdGVtKChwcmV2KSA9PiB7XG4gICAgICAgIGlmIChwcmV2ID09IG51bGwpIHJldHVybiBpdGVtc1swXVxuICAgICAgICByZXR1cm4gaXRlbXNbaXRlbXMuaW5kZXhPZihwcmV2KSArIDFdXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGNvbnRleHRWYWx1ZSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIHJlZ2lzdGVySXRlbSxcbiAgICB9KSxcbiAgICBbcmVnaXN0ZXJJdGVtXSxcbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGl0ZW1zICE9IG51bGwgJiYgaGlnaGxpZ2h0ZWRJdGVtID09IG51bGwpIHtcbiAgICAgIHNldEhpZ2hsaWdodGVkSXRlbShpdGVtc1swXSlcbiAgICB9XG5cbiAgICBpZiAoaGlnaGxpZ2h0ZWRJdGVtPy5jdXJyZW50ICE9IG51bGwpIHtcbiAgICAgIGhpZ2hsaWdodGVkSXRlbS5jdXJyZW50LmZvY3VzKClcbiAgICB9XG4gIH0sIFtpdGVtcywgaGlnaGxpZ2h0ZWRJdGVtXSlcblxuICByZXR1cm4gKFxuICAgIDxEcm9wRG93bkNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2NvbnRleHRWYWx1ZX0+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT1cImZsb2F0aW5nLXNlbGVjdC10b29sYmFyLXBvcHVwX19kcm9wZG93bi1pdGVtc1wiXG4gICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgcmVmPXtkcm9wRG93blJlZn1cbiAgICAgID5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9kaXY+XG4gICAgPC9Ecm9wRG93bkNvbnRleHQuUHJvdmlkZXI+XG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIERyb3BEb3duKHtcbiAgSWNvbixcbiAgYnV0dG9uQXJpYUxhYmVsLFxuICBidXR0b25DbGFzc05hbWUsXG4gIGNoaWxkcmVuLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICBzdG9wQ2xvc2VPbkNsaWNrU2VsZixcbn06IHtcbiAgSWNvbj86IFJlYWN0LkZDXG4gIGJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZ1xuICBidXR0b25DbGFzc05hbWU6IHN0cmluZ1xuICBjaGlsZHJlbjogUmVhY3ROb2RlXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICBzdG9wQ2xvc2VPbkNsaWNrU2VsZj86IGJvb2xlYW5cbn0pOiBSZWFjdC5SZWFjdE5vZGUge1xuICBjb25zdCBkcm9wRG93blJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgYnV0dG9uUmVmID0gdXNlUmVmPEhUTUxCdXR0b25FbGVtZW50PihudWxsKVxuICBjb25zdCBbc2hvd0Ryb3BEb3duLCBzZXRTaG93RHJvcERvd25dID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgY29uc3QgaGFuZGxlQ2xvc2UgPSAoKTogdm9pZCA9PiB7XG4gICAgc2V0U2hvd0Ryb3BEb3duKGZhbHNlKVxuICAgIGlmIChidXR0b25SZWY/LmN1cnJlbnQgIT0gbnVsbCkge1xuICAgICAgYnV0dG9uUmVmLmN1cnJlbnQuZm9jdXMoKVxuICAgIH1cbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgYnV0dG9uID0gYnV0dG9uUmVmLmN1cnJlbnRcbiAgICBjb25zdCBkcm9wRG93biA9IGRyb3BEb3duUmVmLmN1cnJlbnRcblxuICAgIGlmIChzaG93RHJvcERvd24gJiYgYnV0dG9uICE9PSBudWxsICYmIGRyb3BEb3duICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB7IGxlZnQsIHRvcCB9ID0gYnV0dG9uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICBjb25zdCBzY3JvbGxUb3BPZmZzZXQgPSB3aW5kb3cucGFnZVlPZmZzZXQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcFxuICAgICAgZHJvcERvd24uc3R5bGUudG9wID0gYCR7dG9wICsgc2Nyb2xsVG9wT2Zmc2V0ICsgYnV0dG9uLm9mZnNldEhlaWdodCArIDV9cHhgXG4gICAgICBkcm9wRG93bi5zdHlsZS5sZWZ0ID0gYCR7TWF0aC5taW4obGVmdCAtIDUsIHdpbmRvdy5pbm5lcldpZHRoIC0gZHJvcERvd24ub2Zmc2V0V2lkdGggLSAyMCl9cHhgXG4gICAgfVxuICB9LCBbZHJvcERvd25SZWYsIGJ1dHRvblJlZiwgc2hvd0Ryb3BEb3duXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGJ1dHRvbiA9IGJ1dHRvblJlZi5jdXJyZW50XG5cbiAgICBpZiAoYnV0dG9uICE9PSBudWxsICYmIHNob3dEcm9wRG93bikge1xuICAgICAgY29uc3QgaGFuZGxlID0gKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCA9PiB7XG4gICAgICAgIGNvbnN0IHsgdGFyZ2V0IH0gPSBldmVudFxuICAgICAgICBpZiAoc3RvcENsb3NlT25DbGlja1NlbGYgIT0gbnVsbCkge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLW9wdGlvbmFsLWNoYWluXG4gICAgICAgICAgaWYgKGRyb3BEb3duUmVmLmN1cnJlbnQgIT0gbnVsbCAmJiBkcm9wRG93blJlZi5jdXJyZW50LmNvbnRhaW5zKHRhcmdldCBhcyBOb2RlKSkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghYnV0dG9uLmNvbnRhaW5zKHRhcmdldCBhcyBOb2RlKSkge1xuICAgICAgICAgIHNldFNob3dEcm9wRG93bihmYWxzZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGUpXG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2Ryb3BEb3duUmVmLCBidXR0b25SZWYsIHNob3dEcm9wRG93biwgc3RvcENsb3NlT25DbGlja1NlbGZdKVxuXG4gIHJldHVybiAoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPGJ1dHRvblxuICAgICAgICBhcmlhLWxhYmVsPXtidXR0b25BcmlhTGFiZWx9XG4gICAgICAgIGNsYXNzTmFtZT17YnV0dG9uQ2xhc3NOYW1lICsgKHNob3dEcm9wRG93biA/ICcgYWN0aXZlJyA6ICcnKX1cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBvbkNsaWNrPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgc2V0U2hvd0Ryb3BEb3duKCFzaG93RHJvcERvd24pXG4gICAgICAgIH19XG4gICAgICAgIG9uTW91c2VEb3duPXsoZSkgPT4ge1xuICAgICAgICAgIC8vIFRoaXMgZml4ZXMgYSBidWcgd2hlcmUgeW91IGFyZSB1bmFibGUgdG8gY2xpY2sgdGhlIGJ1dHRvbiBpZiB5b3UgYXJlIGluIGEgTkVTVEVEIGVkaXRvciAoZWRpdG9yIGluIGJsb2NrcyBmaWVsZCBpbiBlZGl0b3IpLlxuICAgICAgICAgIC8vIFRodXMgb25seSBoYXBwZW5zIGlmIHlvdSBjbGljayBvbiB0aGUgU1ZHIG9mIHRoZSBidXR0b24uIENsaWNraW5nIG9uIHRoZSBvdXRzaWRlIHdvcmtzLiBSZWxhdGVkIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vcGF5bG9hZGNtcy9wYXlsb2FkL2lzc3Vlcy80MDI1XG4gICAgICAgICAgLy8gVE9ETzogRmluZCBvdXQgd2h5IGV4YWN0bHkgaXQgaGFwcGVucyBhbmQgd2h5IGUucHJldmVudERlZmF1bHQoKSBvbiB0aGUgbW91c2VEb3duIGZpeGVzIGl0LiBXcml0ZSB0aGF0IGRvd24gaGVyZSwgb3IgcG90ZW50aWFsbHkgZml4IGEgcm9vdCBjYXVzZSwgaWYgdGhlcmUgaXMgYW55LlxuICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgICB9fVxuICAgICAgICByZWY9e2J1dHRvblJlZn1cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICA+XG4gICAgICAgIDxJY29uIC8+XG4gICAgICAgIDxpIGNsYXNzTmFtZT1cImZsb2F0aW5nLXNlbGVjdC10b29sYmFyLXBvcHVwX19kcm9wZG93bi1jYXJldFwiIC8+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAge3Nob3dEcm9wRG93biAmJlxuICAgICAgICBjcmVhdGVQb3J0YWwoXG4gICAgICAgICAgPERyb3BEb3duSXRlbXMgZHJvcERvd25SZWY9e2Ryb3BEb3duUmVmfSBvbkNsb3NlPXtoYW5kbGVDbG9zZX0+XG4gICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgPC9Ecm9wRG93bkl0ZW1zPixcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LFxuICAgICAgICApfVxuICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJ1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0IiwibWVyZ2VSZWdpc3RlciIsIiRnZXRTZWxlY3Rpb24iLCJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsIlJlYWN0IiwiY3JlYXRlUG9ydGFsIiwiYmFzZUNsYXNzIiwiRHJvcERvd25Db250ZXh0IiwiY3JlYXRlQ29udGV4dCIsIkRyb3BEb3duSXRlbSIsImNoaWxkcmVuIiwiZW50cnkiLCJ0aXRsZSIsImVkaXRvciIsImVuYWJsZWQiLCJzZXRFbmFibGVkIiwiYWN0aXZlIiwic2V0QWN0aXZlIiwiY2xhc3NOYW1lIiwic2V0Q2xhc3NOYW1lIiwidXBkYXRlU3RhdGVzIiwiZ2V0RWRpdG9yU3RhdGUiLCJyZWFkIiwic2VsZWN0aW9uIiwiaXNBY3RpdmUiLCJpc0VuYWJsZWQiLCJkb2N1bWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwicmVnaXN0ZXJVcGRhdGVMaXN0ZW5lciIsImtleSIsImZpbHRlciIsIkJvb2xlYW4iLCJqb2luIiwicmVmIiwiZHJvcERvd25Db250ZXh0IiwidXNlQ29udGV4dCIsIkVycm9yIiwicmVnaXN0ZXJJdGVtIiwiY3VycmVudCIsImJ1dHRvbiIsIm9uQ2xpY2siLCJvbk1vdXNlRG93biIsImUiLCJwcmV2ZW50RGVmYXVsdCIsInR5cGUiLCJEcm9wRG93bkl0ZW1zIiwiZHJvcERvd25SZWYiLCJvbkNsb3NlIiwiaXRlbXMiLCJzZXRJdGVtcyIsImhpZ2hsaWdodGVkSXRlbSIsInNldEhpZ2hsaWdodGVkSXRlbSIsIml0ZW1SZWYiLCJwcmV2IiwiaGFuZGxlS2V5RG93biIsImV2ZW50IiwiaW5jbHVkZXMiLCJpbmRleCIsImluZGV4T2YiLCJsZW5ndGgiLCJjb250ZXh0VmFsdWUiLCJmb2N1cyIsIlByb3ZpZGVyIiwidmFsdWUiLCJkaXYiLCJvbktleURvd24iLCJEcm9wRG93biIsIkljb24iLCJidXR0b25BcmlhTGFiZWwiLCJidXR0b25DbGFzc05hbWUiLCJkaXNhYmxlZCIsInN0b3BDbG9zZU9uQ2xpY2tTZWxmIiwiYnV0dG9uUmVmIiwic2hvd0Ryb3BEb3duIiwic2V0U2hvd0Ryb3BEb3duIiwiaGFuZGxlQ2xvc2UiLCJkcm9wRG93biIsImxlZnQiLCJ0b3AiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJzY3JvbGxUb3BPZmZzZXQiLCJ3aW5kb3ciLCJwYWdlWU9mZnNldCIsImRvY3VtZW50RWxlbWVudCIsInNjcm9sbFRvcCIsInN0eWxlIiwib2Zmc2V0SGVpZ2h0IiwiTWF0aCIsIm1pbiIsImlubmVyV2lkdGgiLCJvZmZzZXRXaWR0aCIsImhhbmRsZSIsInRhcmdldCIsImNvbnRhaW5zIiwiRnJhZ21lbnQiLCJhcmlhLWxhYmVsIiwiaSIsImJvZHkiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0EsU0FBU0EseUJBQXlCLFFBQVEsd0NBQXVDO0FBQ2pGLFNBQVNDLGFBQWEsUUFBUSxpQkFBZ0I7QUFDOUMsU0FBU0MsYUFBYSxRQUFRLFVBQVM7QUFDdkMsU0FBeUJDLFdBQVcsRUFBRUMsU0FBUyxFQUFFQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLFFBQU87QUFDekYsT0FBT0MsV0FBVyxRQUFPO0FBQ3pCLFNBQVNDLFlBQVksUUFBUSxZQUFXO0FBSXhDLE1BQU1DLFlBQVk7QUFNbEIsTUFBTUMsZ0NBQWtCSCxNQUFNSSxhQUFhLENBQTZCO0FBRXhFLE9BQU8sU0FBU0MsYUFBYSxFQUMzQkMsUUFBUSxFQUNSQyxLQUFLLEVBQ0xDLEtBQUssRUFLTjtJQUNDLE1BQU0sQ0FBQ0MsT0FBTyxHQUFHakI7SUFDakIsTUFBTSxDQUFDa0IsU0FBU0MsV0FBVyxHQUFHWixTQUFrQjtJQUNoRCxNQUFNLENBQUNhLFFBQVFDLFVBQVUsR0FBR2QsU0FBa0I7SUFDOUMsTUFBTSxDQUFDZSxXQUFXQyxhQUFhLEdBQUdoQixTQUFpQkc7SUFFbkQsTUFBTWMsZUFBZXJCLFlBQVk7UUFDL0JjLE9BQU9RLGNBQWMsR0FBR0MsSUFBSSxDQUFDO1lBQzNCLE1BQU1DLFlBQVl6QjtZQUNsQixJQUFJYSxNQUFNYSxRQUFRLEVBQUU7Z0JBQ2xCLE1BQU1BLFdBQVdiLE1BQU1hLFFBQVEsQ0FBQztvQkFBRVg7b0JBQVFVO2dCQUFVO2dCQUNwRCxJQUFJUCxXQUFXUSxVQUFVO29CQUN2QlAsVUFBVU87Z0JBQ1o7WUFDRjtZQUNBLElBQUliLE1BQU1jLFNBQVMsRUFBRTtnQkFDbkIsTUFBTUEsWUFBWWQsTUFBTWMsU0FBUyxDQUFDO29CQUFFWjtvQkFBUVU7Z0JBQVU7Z0JBQ3RELElBQUlULFlBQVlXLFdBQVc7b0JBQ3pCVixXQUFXVTtn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
@@ -1,49 +1,26 @@
1
1
  'use client';
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- function _export(target, all) {
7
- for(var name in all)Object.defineProperty(target, name, {
8
- enumerable: true,
9
- get: all[name]
10
- });
11
- }
12
- _export(exports, {
13
- ToolbarDropdown: function() {
14
- return ToolbarDropdown;
15
- },
16
- ToolbarEntry: function() {
17
- return ToolbarEntry;
18
- }
19
- });
20
- const _react = /*#__PURE__*/ _interop_require_default(require("react"));
21
- const _DropDown = require("./DropDown");
22
- require("./index.scss");
23
- function _interop_require_default(obj) {
24
- return obj && obj.__esModule ? obj : {
25
- default: obj
26
- };
27
- }
2
+ import React from 'react';
28
3
  const baseClass = 'floating-select-toolbar-popup__dropdown';
29
- const ToolbarEntry = ({ anchorElem, editor, entry })=>{
4
+ import { DropDown, DropDownItem } from './DropDown';
5
+ import './index.scss';
6
+ export const ToolbarEntry = ({ anchorElem, editor, entry })=>{
30
7
  if (entry.Component) {
31
- return entry?.Component && /*#__PURE__*/ _react.default.createElement(entry.Component, {
8
+ return entry?.Component && /*#__PURE__*/ React.createElement(entry.Component, {
32
9
  anchorElem: anchorElem,
33
10
  editor: editor,
34
11
  entry: entry,
35
12
  key: entry.key
36
13
  });
37
14
  }
38
- return /*#__PURE__*/ _react.default.createElement(_DropDown.DropDownItem, {
15
+ return /*#__PURE__*/ React.createElement(DropDownItem, {
39
16
  entry: entry,
40
17
  key: entry.key
41
- }, entry?.ChildComponent && /*#__PURE__*/ _react.default.createElement(entry.ChildComponent, null), /*#__PURE__*/ _react.default.createElement("span", {
18
+ }, entry?.ChildComponent && /*#__PURE__*/ React.createElement(entry.ChildComponent, null), /*#__PURE__*/ React.createElement("span", {
42
19
  className: "text"
43
20
  }, entry.label));
44
21
  };
45
- const ToolbarDropdown = ({ Icon, anchorElem, classNames, editor, entries, sectionKey })=>{
46
- return /*#__PURE__*/ _react.default.createElement(_DropDown.DropDown, {
22
+ export const ToolbarDropdown = ({ Icon, anchorElem, classNames, editor, entries, sectionKey })=>{
23
+ return /*#__PURE__*/ React.createElement(DropDown, {
47
24
  Icon: Icon,
48
25
  buttonAriaLabel: `${sectionKey} dropdown`,
49
26
  buttonClassName: [
@@ -53,7 +30,7 @@ const ToolbarDropdown = ({ Icon, anchorElem, classNames, editor, entries, sectio
53
30
  ].filter(Boolean).join(' '),
54
31
  key: sectionKey
55
32
  }, entries.length && entries.map((entry)=>{
56
- return /*#__PURE__*/ _react.default.createElement(ToolbarEntry, {
33
+ return /*#__PURE__*/ React.createElement(ToolbarEntry, {
57
34
  anchorElem: anchorElem,
58
35
  editor: editor,
59
36
  entry: entry,
@@ -62,4 +39,4 @@ const ToolbarDropdown = ({ Icon, anchorElem, classNames, editor, entries, sectio
62
39
  }));
63
40
  };
64
41
 
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvRmxvYXRpbmdTZWxlY3RUb29sYmFyL1Rvb2xiYXJEcm9wZG93bi9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5cbmNvbnN0IGJhc2VDbGFzcyA9ICdmbG9hdGluZy1zZWxlY3QtdG9vbGJhci1wb3B1cF9fZHJvcGRvd24nXG5cbmltcG9ydCB0eXBlIHsgTGV4aWNhbEVkaXRvciB9IGZyb20gJ2xleGljYWwnXG5cbmltcG9ydCB0eXBlIHsgRmxvYXRpbmdUb29sYmFyU2VjdGlvbkVudHJ5IH0gZnJvbSAnLi4vdHlwZXMnXG5cbmltcG9ydCB7IERyb3BEb3duLCBEcm9wRG93bkl0ZW0gfSBmcm9tICcuL0Ryb3BEb3duJ1xuaW1wb3J0ICcuL2luZGV4LnNjc3MnXG5cbmV4cG9ydCBjb25zdCBUb29sYmFyRW50cnkgPSAoe1xuICBhbmNob3JFbGVtLFxuICBlZGl0b3IsXG4gIGVudHJ5LFxufToge1xuICBhbmNob3JFbGVtOiBIVE1MRWxlbWVudFxuICBlZGl0b3I6IExleGljYWxFZGl0b3JcbiAgZW50cnk6IEZsb2F0aW5nVG9vbGJhclNlY3Rpb25FbnRyeVxufSkgPT4ge1xuICBpZiAoZW50cnkuQ29tcG9uZW50KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGVudHJ5Py5Db21wb25lbnQgJiYgKFxuICAgICAgICA8ZW50cnkuQ29tcG9uZW50IGFuY2hvckVsZW09e2FuY2hvckVsZW19IGVkaXRvcj17ZWRpdG9yfSBlbnRyeT17ZW50cnl9IGtleT17ZW50cnkua2V5fSAvPlxuICAgICAgKVxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPERyb3BEb3duSXRlbSBlbnRyeT17ZW50cnl9IGtleT17ZW50cnkua2V5fT5cbiAgICAgIHtlbnRyeT8uQ2hpbGRDb21wb25lbnQgJiYgPGVudHJ5LkNoaWxkQ29tcG9uZW50IC8+fVxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dFwiPntlbnRyeS5sYWJlbH08L3NwYW4+XG4gICAgPC9Ecm9wRG93bkl0ZW0+XG4gIClcbn1cblxuZXhwb3J0IGNvbnN0IFRvb2xiYXJEcm9wZG93biA9ICh7XG4gIEljb24sXG4gIGFuY2hvckVsZW0sXG4gIGNsYXNzTmFtZXMsXG4gIGVkaXRvcixcbiAgZW50cmllcyxcbiAgc2VjdGlvbktleSxcbn06IHtcbiAgSWNvbj86IFJlYWN0LkZDXG4gIGFuY2hvckVsZW06IEhUTUxFbGVtZW50XG4gIGNsYXNzTmFtZXM/OiBzdHJpbmdbXVxuICBlZGl0b3I6IExleGljYWxFZGl0b3JcbiAgZW50cmllczogRmxvYXRpbmdUb29sYmFyU2VjdGlvbkVudHJ5W11cbiAgc2VjdGlvbktleTogc3RyaW5nXG59KSA9PiB7XG4gIHJldHVybiAoXG4gICAgPERyb3BEb3duXG4gICAgICBJY29uPXtJY29ufVxuICAgICAgYnV0dG9uQXJpYUxhYmVsPXtgJHtzZWN0aW9uS2V5fSBkcm9wZG93bmB9XG4gICAgICBidXR0b25DbGFzc05hbWU9e1tiYXNlQ2xhc3MsIGAke2Jhc2VDbGFzc30tJHtzZWN0aW9uS2V5fWAsIC4uLihjbGFzc05hbWVzIHx8IFtdKV1cbiAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgICAuam9pbignICcpfVxuICAgICAga2V5PXtzZWN0aW9uS2V5fVxuICAgID5cbiAgICAgIHtlbnRyaWVzLmxlbmd0aCAmJlxuICAgICAgICBlbnRyaWVzLm1hcCgoZW50cnkpID0+IHtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPFRvb2xiYXJFbnRyeSBhbmNob3JFbGVtPXthbmNob3JFbGVtfSBlZGl0b3I9e2VkaXRvcn0gZW50cnk9e2VudHJ5fSBrZXk9e2VudHJ5LmtleX0gLz5cbiAgICAgICAgICApXG4gICAgICAgIH0pfVxuICAgIDwvRHJvcERvd24+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJUb29sYmFyRHJvcGRvd24iLCJUb29sYmFyRW50cnkiLCJiYXNlQ2xhc3MiLCJhbmNob3JFbGVtIiwiZWRpdG9yIiwiZW50cnkiLCJDb21wb25lbnQiLCJrZXkiLCJEcm9wRG93bkl0ZW0iLCJDaGlsZENvbXBvbmVudCIsInNwYW4iLCJjbGFzc05hbWUiLCJsYWJlbCIsIkljb24iLCJjbGFzc05hbWVzIiwiZW50cmllcyIsInNlY3Rpb25LZXkiLCJEcm9wRG93biIsImJ1dHRvbkFyaWFMYWJlbCIsImJ1dHRvbkNsYXNzTmFtZSIsImZpbHRlciIsIkJvb2xlYW4iLCJqb2luIiwibGVuZ3RoIiwibWFwIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0lBcUNhQSxlQUFlO2VBQWZBOztJQXpCQUMsWUFBWTtlQUFaQTs7OzhEQVhLOzBCQVFxQjtRQUNoQzs7Ozs7O0FBUFAsTUFBTUMsWUFBWTtBQVNYLE1BQU1ELGVBQWUsQ0FBQyxFQUMzQkUsVUFBVSxFQUNWQyxNQUFNLEVBQ05DLEtBQUssRUFLTjtJQUNDLElBQUlBLE1BQU1DLFNBQVMsRUFBRTtRQUNuQixPQUNFRCxPQUFPQywyQkFDTCw2QkFBQ0QsTUFBTUMsU0FBUztZQUFDSCxZQUFZQTtZQUFZQyxRQUFRQTtZQUFRQyxPQUFPQTtZQUFPRSxLQUFLRixNQUFNRSxHQUFHOztJQUczRjtJQUVBLHFCQUNFLDZCQUFDQyxzQkFBWTtRQUFDSCxPQUFPQTtRQUFPRSxLQUFLRixNQUFNRSxHQUFHO09BQ3ZDRixPQUFPSSxnQ0FBa0IsNkJBQUNKLE1BQU1JLGNBQWMsdUJBQy9DLDZCQUFDQztRQUFLQyxXQUFVO09BQVFOLE1BQU1PLEtBQUs7QUFHekM7QUFFTyxNQUFNWixrQkFBa0IsQ0FBQyxFQUM5QmEsSUFBSSxFQUNKVixVQUFVLEVBQ1ZXLFVBQVUsRUFDVlYsTUFBTSxFQUNOVyxPQUFPLEVBQ1BDLFVBQVUsRUFRWDtJQUNDLHFCQUNFLDZCQUFDQyxrQkFBUTtRQUNQSixNQUFNQTtRQUNOSyxpQkFBaUIsQ0FBQyxFQUFFRixXQUFXLFNBQVMsQ0FBQztRQUN6Q0csaUJBQWlCO1lBQUNqQjtZQUFXLENBQUMsRUFBRUEsVUFBVSxDQUFDLEVBQUVjLFdBQVcsQ0FBQztlQUFNRixjQUFjLEVBQUU7U0FBRSxDQUM5RU0sTUFBTSxDQUFDQyxTQUNQQyxJQUFJLENBQUM7UUFDUmYsS0FBS1M7T0FFSkQsUUFBUVEsTUFBTSxJQUNiUixRQUFRUyxHQUFHLENBQUMsQ0FBQ25CO1FBQ1gscUJBQ0UsNkJBQUNKO1lBQWFFLFlBQVlBO1lBQVlDLFFBQVFBO1lBQVFDLE9BQU9BO1lBQU9FLEtBQUtGLE1BQU1FLEdBQUc7O0lBRXRGO0FBR1IifQ==
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL3BsdWdpbnMvRmxvYXRpbmdTZWxlY3RUb29sYmFyL1Rvb2xiYXJEcm9wZG93bi9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5cbmNvbnN0IGJhc2VDbGFzcyA9ICdmbG9hdGluZy1zZWxlY3QtdG9vbGJhci1wb3B1cF9fZHJvcGRvd24nXG5cbmltcG9ydCB0eXBlIHsgTGV4aWNhbEVkaXRvciB9IGZyb20gJ2xleGljYWwnXG5cbmltcG9ydCB0eXBlIHsgRmxvYXRpbmdUb29sYmFyU2VjdGlvbkVudHJ5IH0gZnJvbSAnLi4vdHlwZXMnXG5cbmltcG9ydCB7IERyb3BEb3duLCBEcm9wRG93bkl0ZW0gfSBmcm9tICcuL0Ryb3BEb3duJ1xuaW1wb3J0ICcuL2luZGV4LnNjc3MnXG5cbmV4cG9ydCBjb25zdCBUb29sYmFyRW50cnkgPSAoe1xuICBhbmNob3JFbGVtLFxuICBlZGl0b3IsXG4gIGVudHJ5LFxufToge1xuICBhbmNob3JFbGVtOiBIVE1MRWxlbWVudFxuICBlZGl0b3I6IExleGljYWxFZGl0b3JcbiAgZW50cnk6IEZsb2F0aW5nVG9vbGJhclNlY3Rpb25FbnRyeVxufSkgPT4ge1xuICBpZiAoZW50cnkuQ29tcG9uZW50KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGVudHJ5Py5Db21wb25lbnQgJiYgKFxuICAgICAgICA8ZW50cnkuQ29tcG9uZW50IGFuY2hvckVsZW09e2FuY2hvckVsZW19IGVkaXRvcj17ZWRpdG9yfSBlbnRyeT17ZW50cnl9IGtleT17ZW50cnkua2V5fSAvPlxuICAgICAgKVxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPERyb3BEb3duSXRlbSBlbnRyeT17ZW50cnl9IGtleT17ZW50cnkua2V5fT5cbiAgICAgIHtlbnRyeT8uQ2hpbGRDb21wb25lbnQgJiYgPGVudHJ5LkNoaWxkQ29tcG9uZW50IC8+fVxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dFwiPntlbnRyeS5sYWJlbH08L3NwYW4+XG4gICAgPC9Ecm9wRG93bkl0ZW0+XG4gIClcbn1cblxuZXhwb3J0IGNvbnN0IFRvb2xiYXJEcm9wZG93biA9ICh7XG4gIEljb24sXG4gIGFuY2hvckVsZW0sXG4gIGNsYXNzTmFtZXMsXG4gIGVkaXRvcixcbiAgZW50cmllcyxcbiAgc2VjdGlvbktleSxcbn06IHtcbiAgSWNvbj86IFJlYWN0LkZDXG4gIGFuY2hvckVsZW06IEhUTUxFbGVtZW50XG4gIGNsYXNzTmFtZXM/OiBzdHJpbmdbXVxuICBlZGl0b3I6IExleGljYWxFZGl0b3JcbiAgZW50cmllczogRmxvYXRpbmdUb29sYmFyU2VjdGlvbkVudHJ5W11cbiAgc2VjdGlvbktleTogc3RyaW5nXG59KSA9PiB7XG4gIHJldHVybiAoXG4gICAgPERyb3BEb3duXG4gICAgICBJY29uPXtJY29ufVxuICAgICAgYnV0dG9uQXJpYUxhYmVsPXtgJHtzZWN0aW9uS2V5fSBkcm9wZG93bmB9XG4gICAgICBidXR0b25DbGFzc05hbWU9e1tiYXNlQ2xhc3MsIGAke2Jhc2VDbGFzc30tJHtzZWN0aW9uS2V5fWAsIC4uLihjbGFzc05hbWVzIHx8IFtdKV1cbiAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgICAuam9pbignICcpfVxuICAgICAga2V5PXtzZWN0aW9uS2V5fVxuICAgID5cbiAgICAgIHtlbnRyaWVzLmxlbmd0aCAmJlxuICAgICAgICBlbnRyaWVzLm1hcCgoZW50cnkpID0+IHtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPFRvb2xiYXJFbnRyeSBhbmNob3JFbGVtPXthbmNob3JFbGVtfSBlZGl0b3I9e2VkaXRvcn0gZW50cnk9e2VudHJ5fSBrZXk9e2VudHJ5LmtleX0gLz5cbiAgICAgICAgICApXG4gICAgICAgIH0pfVxuICAgIDwvRHJvcERvd24+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJSZWFjdCIsImJhc2VDbGFzcyIsIkRyb3BEb3duIiwiRHJvcERvd25JdGVtIiwiVG9vbGJhckVudHJ5IiwiYW5jaG9yRWxlbSIsImVkaXRvciIsImVudHJ5IiwiQ29tcG9uZW50Iiwia2V5IiwiQ2hpbGRDb21wb25lbnQiLCJzcGFuIiwiY2xhc3NOYW1lIiwibGFiZWwiLCJUb29sYmFyRHJvcGRvd24iLCJJY29uIiwiY2xhc3NOYW1lcyIsImVudHJpZXMiLCJzZWN0aW9uS2V5IiwiYnV0dG9uQXJpYUxhYmVsIiwiYnV0dG9uQ2xhc3NOYW1lIiwiZmlsdGVyIiwiQm9vbGVhbiIsImpvaW4iLCJsZW5ndGgiLCJtYXAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0EsT0FBT0EsV0FBVyxRQUFPO0FBRXpCLE1BQU1DLFlBQVk7QUFNbEIsU0FBU0MsUUFBUSxFQUFFQyxZQUFZLFFBQVEsYUFBWTtBQUNuRCxPQUFPLGVBQWM7QUFFckIsT0FBTyxNQUFNQyxlQUFlLENBQUMsRUFDM0JDLFVBQVUsRUFDVkMsTUFBTSxFQUNOQyxLQUFLLEVBS047SUFDQyxJQUFJQSxNQUFNQyxTQUFTLEVBQUU7UUFDbkIsT0FDRUQsT0FBT0MsMkJBQ0wsb0JBQUNELE1BQU1DLFNBQVM7WUFBQ0gsWUFBWUE7WUFBWUMsUUFBUUE7WUFBUUMsT0FBT0E7WUFBT0UsS0FBS0YsTUFBTUUsR0FBRzs7SUFHM0Y7SUFFQSxxQkFDRSxvQkFBQ047UUFBYUksT0FBT0E7UUFBT0UsS0FBS0YsTUFBTUUsR0FBRztPQUN2Q0YsT0FBT0csZ0NBQWtCLG9CQUFDSCxNQUFNRyxjQUFjLHVCQUMvQyxvQkFBQ0M7UUFBS0MsV0FBVTtPQUFRTCxNQUFNTSxLQUFLO0FBR3pDLEVBQUM7QUFFRCxPQUFPLE1BQU1DLGtCQUFrQixDQUFDLEVBQzlCQyxJQUFJLEVBQ0pWLFVBQVUsRUFDVlcsVUFBVSxFQUNWVixNQUFNLEVBQ05XLE9BQU8sRUFDUEMsVUFBVSxFQVFYO0lBQ0MscUJBQ0Usb0JBQUNoQjtRQUNDYSxNQUFNQTtRQUNOSSxpQkFBaUIsQ0FBQyxFQUFFRCxXQUFXLFNBQVMsQ0FBQztRQUN6Q0UsaUJBQWlCO1lBQUNuQjtZQUFXLENBQUMsRUFBRUEsVUFBVSxDQUFDLEVBQUVpQixXQUFXLENBQUM7ZUFBTUYsY0FBYyxFQUFFO1NBQUUsQ0FDOUVLLE1BQU0sQ0FBQ0MsU0FDUEMsSUFBSSxDQUFDO1FBQ1JkLEtBQUtTO09BRUpELFFBQVFPLE1BQU0sSUFDYlAsUUFBUVEsR0FBRyxDQUFDLENBQUNsQjtRQUNYLHFCQUNFLG9CQUFDSDtZQUFhQyxZQUFZQTtZQUFZQyxRQUFRQTtZQUFRQyxPQUFPQTtZQUFPRSxLQUFLRixNQUFNRSxHQUFHOztJQUV0RjtBQUdSLEVBQUMifQ==