@webiny/app-admin 5.40.0-beta.2 → 5.40.0-beta.4

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 (361) hide show
  1. package/base/Admin.d.ts +1 -1
  2. package/base/Admin.js +7 -4
  3. package/base/Admin.js.map +1 -1
  4. package/base/Base.d.ts +1 -1
  5. package/base/Base.js +7 -2
  6. package/base/Base.js.map +1 -1
  7. package/base/Version.d.ts +3 -0
  8. package/base/Version.js +56 -0
  9. package/base/Version.js.map +1 -0
  10. package/base/plugins/AddGraphQLQuerySelection.js +1 -2
  11. package/base/plugins/AddGraphQLQuerySelection.js.map +1 -1
  12. package/base/providers/ApolloProvider.d.ts +1 -1
  13. package/base/providers/ApolloProvider.js +1 -2
  14. package/base/providers/ApolloProvider.js.map +1 -1
  15. package/base/providers/TelemetryProvider.d.ts +2 -1
  16. package/base/providers/TelemetryProvider.js +2 -3
  17. package/base/providers/TelemetryProvider.js.map +1 -1
  18. package/base/providers/UiStateProvider.d.ts +2 -1
  19. package/base/providers/UiStateProvider.js +1 -2
  20. package/base/providers/UiStateProvider.js.map +1 -1
  21. package/base/providers/ViewCompositionProvider.d.ts +2 -1
  22. package/base/providers/ViewCompositionProvider.js +1 -2
  23. package/base/providers/ViewCompositionProvider.js.map +1 -1
  24. package/base/ui/Brand.d.ts +5 -3
  25. package/base/ui/Brand.js +2 -4
  26. package/base/ui/Brand.js.map +1 -1
  27. package/base/ui/CenteredView.d.ts +2 -1
  28. package/base/ui/CenteredView.js +20 -11
  29. package/base/ui/CenteredView.js.map +1 -1
  30. package/base/ui/Dashboard.d.ts +5 -3
  31. package/base/ui/Dashboard.js +2 -4
  32. package/base/ui/Dashboard.js.map +1 -1
  33. package/base/ui/FileManager.d.ts +3 -2
  34. package/base/ui/FileManager.js +3 -6
  35. package/base/ui/FileManager.js.map +1 -1
  36. package/base/ui/Layout.d.ts +4 -2
  37. package/base/ui/Layout.js +2 -4
  38. package/base/ui/Layout.js.map +1 -1
  39. package/base/ui/LocaleSelector.d.ts +5 -3
  40. package/base/ui/LocaleSelector.js +2 -4
  41. package/base/ui/LocaleSelector.js.map +1 -1
  42. package/base/ui/LoginScreen.d.ts +3 -2
  43. package/base/ui/LoginScreen.js +2 -4
  44. package/base/ui/LoginScreen.js.map +1 -1
  45. package/base/ui/Logo.d.ts +6 -4
  46. package/base/ui/Logo.js +3 -6
  47. package/base/ui/Logo.js.map +1 -1
  48. package/base/ui/Menu.d.ts +9 -6
  49. package/base/ui/Menu.js +3 -8
  50. package/base/ui/Menu.js.map +1 -1
  51. package/base/ui/Navigation.d.ts +16 -6
  52. package/base/ui/Navigation.js +7 -13
  53. package/base/ui/Navigation.js.map +1 -1
  54. package/base/ui/NotFound.d.ts +5 -3
  55. package/base/ui/NotFound.js +2 -4
  56. package/base/ui/NotFound.js.map +1 -1
  57. package/base/ui/Search.d.ts +6 -3
  58. package/base/ui/Search.js +4 -8
  59. package/base/ui/Search.js.map +1 -1
  60. package/base/ui/Tags.d.ts +1 -1
  61. package/base/ui/Tags.js +2 -4
  62. package/base/ui/Tags.js.map +1 -1
  63. package/base/ui/UserMenu.d.ts +16 -8
  64. package/base/ui/UserMenu.js +9 -18
  65. package/base/ui/UserMenu.js.map +1 -1
  66. package/components/AdminLayout.d.ts +1 -1
  67. package/components/AdminLayout.js +1 -2
  68. package/components/AdminLayout.js.map +1 -1
  69. package/components/AppInstaller/AppInstaller.d.ts +1 -1
  70. package/components/AppInstaller/AppInstaller.js +5 -3
  71. package/components/AppInstaller/AppInstaller.js.map +1 -1
  72. package/components/AppInstaller/Sidebar.d.ts +2 -2
  73. package/components/AppInstaller/Sidebar.js +39 -58
  74. package/components/AppInstaller/Sidebar.js.map +1 -1
  75. package/components/AppInstaller/index.d.ts +2 -2
  76. package/components/AppInstaller/index.js +1 -2
  77. package/components/AppInstaller/index.js.map +1 -1
  78. package/components/AppInstaller/styled.d.ts +4 -4
  79. package/components/AppInstaller/styled.js +54 -61
  80. package/components/AppInstaller/styled.js.map +1 -1
  81. package/components/AppInstaller/useInstaller.js +1 -2
  82. package/components/AppInstaller/useInstaller.js.map +1 -1
  83. package/components/BulkActions/Worker.d.ts +2 -1
  84. package/components/BulkActions/Worker.js +4 -8
  85. package/components/BulkActions/Worker.js.map +1 -1
  86. package/components/BulkActions/index.js.map +1 -1
  87. package/components/BulkActions/useDialogWithReport/DialogMessage.d.ts +2 -2
  88. package/components/BulkActions/useDialogWithReport/DialogMessage.js +5 -4
  89. package/components/BulkActions/useDialogWithReport/DialogMessage.js.map +1 -1
  90. package/components/BulkActions/useDialogWithReport/index.js.map +1 -1
  91. package/components/BulkActions/useDialogWithReport/useDialogWithReport.d.ts +2 -0
  92. package/components/BulkActions/useDialogWithReport/useDialogWithReport.js +10 -3
  93. package/components/BulkActions/useDialogWithReport/useDialogWithReport.js.map +1 -1
  94. package/components/BulkActions/useDialogWithReport/useDialogWithReport.styled.d.ts +1 -1
  95. package/components/BulkActions/useDialogWithReport/useDialogWithReport.styled.js +35 -15
  96. package/components/BulkActions/useDialogWithReport/useDialogWithReport.styled.js.map +1 -1
  97. package/components/Buttons/Buttons.d.ts +5 -5
  98. package/components/Buttons/Buttons.js +5 -10
  99. package/components/Buttons/Buttons.js.map +1 -1
  100. package/components/Buttons/Buttons.styles.d.ts +1 -1
  101. package/components/Buttons/Buttons.styles.js +15 -5
  102. package/components/Buttons/Buttons.styles.js.map +1 -1
  103. package/components/Buttons/index.js.map +1 -1
  104. package/components/Buttons/useButtons.d.ts +1 -1
  105. package/components/Buttons/useButtons.js +2 -4
  106. package/components/Buttons/useButtons.js.map +1 -1
  107. package/components/Dialogs/CustomDialog.d.ts +17 -0
  108. package/components/Dialogs/CustomDialog.js +55 -0
  109. package/components/Dialogs/CustomDialog.js.map +1 -0
  110. package/components/Dialogs/Dialog.d.ts +15 -0
  111. package/components/Dialogs/Dialog.js +45 -0
  112. package/components/Dialogs/Dialog.js.map +1 -0
  113. package/components/Dialogs/DialogsContext.d.ts +43 -0
  114. package/components/Dialogs/DialogsContext.js +121 -0
  115. package/components/Dialogs/DialogsContext.js.map +1 -0
  116. package/components/Dialogs/styled.d.ts +10 -0
  117. package/components/Dialogs/styled.js +40 -0
  118. package/components/Dialogs/styled.js.map +1 -0
  119. package/components/Dialogs/useDialogs.d.ts +3 -0
  120. package/components/Dialogs/useDialogs.js +24 -0
  121. package/components/Dialogs/useDialogs.js.map +1 -0
  122. package/components/EmptyView.d.ts +2 -2
  123. package/components/EmptyView.js +14 -33
  124. package/components/EmptyView.js.map +1 -1
  125. package/components/Filters/Filters.d.ts +1 -1
  126. package/components/Filters/Filters.js +1 -2
  127. package/components/Filters/Filters.js.map +1 -1
  128. package/components/Filters/Filters.styled.d.ts +3 -3
  129. package/components/Filters/Filters.styled.js +43 -15
  130. package/components/Filters/Filters.styled.js.map +1 -1
  131. package/components/Filters/index.js.map +1 -1
  132. package/components/FloatingActionButton.d.ts +1 -1
  133. package/components/FloatingActionButton.js +1 -2
  134. package/components/FloatingActionButton.js.map +1 -1
  135. package/components/LexicalEditor/LexicalEditor.d.ts +2 -2
  136. package/components/LexicalEditor/LexicalEditor.js +1 -2
  137. package/components/LexicalEditor/LexicalEditor.js.map +1 -1
  138. package/components/LexicalEditor/index.js.map +1 -1
  139. package/components/MultiImageUpload.d.ts +2 -2
  140. package/components/MultiImageUpload.js +1 -2
  141. package/components/MultiImageUpload.js.map +1 -1
  142. package/components/OptionsMenu/OptionsMenu.d.ts +1 -1
  143. package/components/OptionsMenu/OptionsMenu.js +1 -2
  144. package/components/OptionsMenu/OptionsMenu.js.map +1 -1
  145. package/components/OptionsMenu/OptionsMenu.styled.d.ts +3 -34
  146. package/components/OptionsMenu/OptionsMenu.styled.js +15 -5
  147. package/components/OptionsMenu/OptionsMenu.styled.js.map +1 -1
  148. package/components/OptionsMenu/OptionsMenuItem.d.ts +1 -1
  149. package/components/OptionsMenu/OptionsMenuItem.js +1 -2
  150. package/components/OptionsMenu/OptionsMenuItem.js.map +1 -1
  151. package/components/OptionsMenu/OptionsMenuLink.d.ts +1 -1
  152. package/components/OptionsMenu/OptionsMenuLink.js +1 -2
  153. package/components/OptionsMenu/OptionsMenuLink.js.map +1 -1
  154. package/components/OptionsMenu/index.js.map +1 -1
  155. package/components/OptionsMenu/useOptionsMenuItem.d.ts +1 -1
  156. package/components/OptionsMenu/useOptionsMenuItem.js +2 -4
  157. package/components/OptionsMenu/useOptionsMenuItem.js.map +1 -1
  158. package/components/OverlayLayout/OverlayLayout.d.ts +1 -1
  159. package/components/OverlayLayout/OverlayLayout.js +21 -27
  160. package/components/OverlayLayout/OverlayLayout.js.map +1 -1
  161. package/components/OverlayLayout/index.js.map +1 -1
  162. package/components/Permissions/CannotUseAaclAlert.d.ts +2 -2
  163. package/components/Permissions/CannotUseAaclAlert.js +1 -2
  164. package/components/Permissions/CannotUseAaclAlert.js.map +1 -1
  165. package/components/Permissions/Permissions.d.ts +2 -2
  166. package/components/Permissions/Permissions.js +1 -2
  167. package/components/Permissions/Permissions.js.map +1 -1
  168. package/components/Permissions/StyledComponents.d.ts +2 -2
  169. package/components/Permissions/StyledComponents.js +5 -8
  170. package/components/Permissions/StyledComponents.js.map +1 -1
  171. package/components/Permissions/index.js.map +1 -1
  172. package/components/RichTextEditor/RichTextEditor.d.ts +2 -2
  173. package/components/RichTextEditor/RichTextEditor.js +1 -2
  174. package/components/RichTextEditor/RichTextEditor.js.map +1 -1
  175. package/components/RichTextEditor/index.js.map +1 -1
  176. package/components/RichTextEditor/tools/header/index.js +2 -4
  177. package/components/RichTextEditor/tools/header/index.js.map +1 -1
  178. package/components/RichTextEditor/tools/image/index.js +2 -4
  179. package/components/RichTextEditor/tools/image/index.js.map +1 -1
  180. package/components/RichTextEditor/tools/image/svgs.js +1 -2
  181. package/components/RichTextEditor/tools/image/svgs.js.map +1 -1
  182. package/components/RichTextEditor/tools/image/tunes.js +2 -4
  183. package/components/RichTextEditor/tools/image/tunes.js.map +1 -1
  184. package/components/RichTextEditor/tools/image/types.js.map +1 -1
  185. package/components/RichTextEditor/tools/image/ui.js +3 -6
  186. package/components/RichTextEditor/tools/image/ui.js.map +1 -1
  187. package/components/RichTextEditor/tools/paragraph/index.js +2 -4
  188. package/components/RichTextEditor/tools/paragraph/index.js.map +1 -1
  189. package/components/RichTextEditor/tools/textColor/index.js +2 -4
  190. package/components/RichTextEditor/tools/textColor/index.js.map +1 -1
  191. package/components/RichTextEditor/tools/utils.js +3 -6
  192. package/components/RichTextEditor/tools/utils.js.map +1 -1
  193. package/components/Routes.d.ts +2 -2
  194. package/components/Routes.js +1 -2
  195. package/components/Routes.js.map +1 -1
  196. package/components/SearchUI.d.ts +2 -2
  197. package/components/SearchUI.js +15 -36
  198. package/components/SearchUI.js.map +1 -1
  199. package/components/SimpleForm/SimpleForm.d.ts +3 -3
  200. package/components/SimpleForm/SimpleForm.js +28 -22
  201. package/components/SimpleForm/SimpleForm.js.map +1 -1
  202. package/components/SimpleForm/index.js.map +1 -1
  203. package/components/SimpleUI/InputField.d.ts +3 -2
  204. package/components/SimpleUI/InputField.js +5 -6
  205. package/components/SimpleUI/InputField.js.map +1 -1
  206. package/components/SingleImageUpload.d.ts +1 -1
  207. package/components/SingleImageUpload.js +18 -22
  208. package/components/SingleImageUpload.js.map +1 -1
  209. package/components/SplitView/SplitView.d.ts +3 -3
  210. package/components/SplitView/SplitView.js +24 -21
  211. package/components/SplitView/SplitView.js.map +1 -1
  212. package/components/SplitView/index.js.map +1 -1
  213. package/components/Wcp.d.ts +1 -1
  214. package/components/Wcp.js +1 -2
  215. package/components/Wcp.js.map +1 -1
  216. package/components/index.js.map +1 -1
  217. package/hooks/createGenericContext.d.ts +1 -1
  218. package/hooks/createGenericContext.js.map +1 -1
  219. package/hooks/index.d.ts +2 -0
  220. package/hooks/index.js +22 -0
  221. package/hooks/index.js.map +1 -1
  222. package/hooks/useConfirmationDialog.js +1 -2
  223. package/hooks/useConfirmationDialog.js.map +1 -1
  224. package/hooks/useDialog.js +1 -2
  225. package/hooks/useDialog.js.map +1 -1
  226. package/hooks/useIsMounted.js +1 -2
  227. package/hooks/useIsMounted.js.map +1 -1
  228. package/hooks/useKeyHandler.js.map +1 -1
  229. package/hooks/useModKey.js.map +1 -1
  230. package/hooks/useShiftKey.js.map +1 -1
  231. package/hooks/useSnackbar.js +1 -2
  232. package/hooks/useSnackbar.js.map +1 -1
  233. package/hooks/useStateIfMounted.js.map +1 -1
  234. package/hooks/useStateWithCallback.d.ts +5 -0
  235. package/hooks/useStateWithCallback.js +31 -0
  236. package/hooks/useStateWithCallback.js.map +1 -0
  237. package/index.d.ts +2 -0
  238. package/index.js +20 -0
  239. package/index.js.map +1 -1
  240. package/package.json +33 -31
  241. package/plugins/MenuPlugin.js +5 -8
  242. package/plugins/MenuPlugin.js.map +1 -1
  243. package/plugins/PermissionRendererPlugin.js +5 -8
  244. package/plugins/PermissionRendererPlugin.js.map +1 -1
  245. package/plugins/globalSearch/SearchBar.d.ts +3 -2
  246. package/plugins/globalSearch/SearchBar.js +11 -15
  247. package/plugins/globalSearch/SearchBar.js.map +1 -1
  248. package/plugins/globalSearch/SearchBarDropdown.d.ts +1 -1
  249. package/plugins/globalSearch/SearchBarDropdown.js +5 -8
  250. package/plugins/globalSearch/SearchBarDropdown.js.map +1 -1
  251. package/plugins/globalSearch/index.js +1 -2
  252. package/plugins/globalSearch/index.js.map +1 -1
  253. package/plugins/globalSearch/styled.d.ts +3 -3
  254. package/plugins/globalSearch/styled.js +49 -46
  255. package/plugins/globalSearch/styled.js.map +1 -1
  256. package/plugins/uiLayoutRenderer/index.js +1 -2
  257. package/plugins/uiLayoutRenderer/index.js.map +1 -1
  258. package/styles/material-theme-assignments.scss +62 -43
  259. package/styles/material.scss +0 -1
  260. package/styles/reset.scss +1 -0
  261. package/styles.scss +1 -0
  262. package/types.d.ts +3 -0
  263. package/types.js.map +1 -1
  264. package/ui/UIElement.js.map +1 -1
  265. package/ui/UILayout.js.map +1 -1
  266. package/ui/UIRenderer.js.map +1 -1
  267. package/ui/UIView.js.map +1 -1
  268. package/ui/elements/AccordionElement.js +9 -15
  269. package/ui/elements/AccordionElement.js.map +1 -1
  270. package/ui/elements/ButtonElement.js +5 -8
  271. package/ui/elements/ButtonElement.js.map +1 -1
  272. package/ui/elements/ButtonGroupElement.js +18 -19
  273. package/ui/elements/ButtonGroupElement.js.map +1 -1
  274. package/ui/elements/GenericElement.js.map +1 -1
  275. package/ui/elements/LabelElement.js +5 -8
  276. package/ui/elements/LabelElement.js.map +1 -1
  277. package/ui/elements/NavigationMenuElement.js +8 -13
  278. package/ui/elements/NavigationMenuElement.js.map +1 -1
  279. package/ui/elements/PanelElement.js +4 -6
  280. package/ui/elements/PanelElement.js.map +1 -1
  281. package/ui/elements/PlaceholderElement.js +5 -8
  282. package/ui/elements/PlaceholderElement.js.map +1 -1
  283. package/ui/elements/SmallButtonElement.js +5 -8
  284. package/ui/elements/SmallButtonElement.js.map +1 -1
  285. package/ui/elements/TypographyElement.js +5 -8
  286. package/ui/elements/TypographyElement.js.map +1 -1
  287. package/ui/elements/ViewElement.js.map +1 -1
  288. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js +5 -8
  289. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js.map +1 -1
  290. package/ui/elements/form/DynamicFieldsetElement.js +5 -8
  291. package/ui/elements/form/DynamicFieldsetElement.js.map +1 -1
  292. package/ui/elements/form/FileManagerElement/EmptyStateElement.js +4 -6
  293. package/ui/elements/form/FileManagerElement/EmptyStateElement.js.map +1 -1
  294. package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js +5 -8
  295. package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js.map +1 -1
  296. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js +18 -25
  297. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js.map +1 -1
  298. package/ui/elements/form/FileManagerElement/styled.d.ts +5 -7
  299. package/ui/elements/form/FileManagerElement/styled.js +58 -69
  300. package/ui/elements/form/FileManagerElement/styled.js.map +1 -1
  301. package/ui/elements/form/FileManagerElement.js +5 -8
  302. package/ui/elements/form/FileManagerElement.js.map +1 -1
  303. package/ui/elements/form/FormElement.js +5 -8
  304. package/ui/elements/form/FormElement.js.map +1 -1
  305. package/ui/elements/form/FormFieldElement.js +7 -11
  306. package/ui/elements/form/FormFieldElement.js.map +1 -1
  307. package/ui/elements/form/HiddenElement.js +5 -8
  308. package/ui/elements/form/HiddenElement.js.map +1 -1
  309. package/ui/elements/form/InputElement.js +5 -8
  310. package/ui/elements/form/InputElement.js.map +1 -1
  311. package/ui/elements/form/PasswordElement.js +5 -8
  312. package/ui/elements/form/PasswordElement.js.map +1 -1
  313. package/ui/elements/form/SelectElement.js +5 -8
  314. package/ui/elements/form/SelectElement.js.map +1 -1
  315. package/ui/elements/form/TextareaElement.js +5 -8
  316. package/ui/elements/form/TextareaElement.js.map +1 -1
  317. package/ui/views/AdminView/ContentElement.js +20 -16
  318. package/ui/views/AdminView/ContentElement.js.map +1 -1
  319. package/ui/views/AdminView/HeaderElement.js +8 -13
  320. package/ui/views/AdminView/HeaderElement.js.map +1 -1
  321. package/ui/views/AdminView/HeaderSectionCenterElement.js +7 -10
  322. package/ui/views/AdminView/HeaderSectionCenterElement.js.map +1 -1
  323. package/ui/views/AdminView/HeaderSectionLeftElement.js +7 -10
  324. package/ui/views/AdminView/HeaderSectionLeftElement.js.map +1 -1
  325. package/ui/views/AdminView/HeaderSectionRightElement.js +7 -10
  326. package/ui/views/AdminView/HeaderSectionRightElement.js.map +1 -1
  327. package/ui/views/AdminView/components/Dialog.d.ts +2 -2
  328. package/ui/views/AdminView/components/Dialog.js +1 -2
  329. package/ui/views/AdminView/components/Dialog.js.map +1 -1
  330. package/ui/views/AdminView/components/Hamburger.d.ts +2 -2
  331. package/ui/views/AdminView/components/Hamburger.js +1 -2
  332. package/ui/views/AdminView/components/Hamburger.js.map +1 -1
  333. package/ui/views/AdminView/components/Snackbar.d.ts +2 -2
  334. package/ui/views/AdminView/components/Snackbar.js +1 -2
  335. package/ui/views/AdminView/components/Snackbar.js.map +1 -1
  336. package/ui/views/FormView/FormContainerElement.d.ts +2 -2
  337. package/ui/views/FormView/FormContainerElement.js +18 -13
  338. package/ui/views/FormView/FormContainerElement.js.map +1 -1
  339. package/ui/views/FormView/FormContentElement.js +4 -6
  340. package/ui/views/FormView/FormContentElement.js.map +1 -1
  341. package/ui/views/FormView/FormFooterElement.d.ts +2 -2
  342. package/ui/views/FormView/FormFooterElement.js +18 -20
  343. package/ui/views/FormView/FormFooterElement.js.map +1 -1
  344. package/ui/views/FormView/FormHeaderElement.js +13 -16
  345. package/ui/views/FormView/FormHeaderElement.js.map +1 -1
  346. package/ui/views/FormView.js +5 -8
  347. package/ui/views/FormView.js.map +1 -1
  348. package/ui/views/OverlayView/ContentElement.js +18 -13
  349. package/ui/views/OverlayView/ContentElement.js.map +1 -1
  350. package/ui/views/OverlayView/HeaderElement.js +9 -13
  351. package/ui/views/OverlayView/HeaderElement.js.map +1 -1
  352. package/ui/views/OverlayView/HeaderTitleElement.js +8 -13
  353. package/ui/views/OverlayView/HeaderTitleElement.js.map +1 -1
  354. package/ui/views/OverlayView/useOverlayView.js +3 -4
  355. package/ui/views/OverlayView/useOverlayView.js.map +1 -1
  356. package/ui/views/OverlayView.js +21 -25
  357. package/ui/views/OverlayView.js.map +1 -1
  358. package/ui/views/SplitView/SplitViewPanelElement.js +7 -11
  359. package/ui/views/SplitView/SplitViewPanelElement.js.map +1 -1
  360. package/ui/views/SplitView.js +14 -18
  361. package/ui/views/SplitView.js.map +1 -1
@@ -14,7 +14,7 @@ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/creat
14
14
  * - show/hide preview
15
15
  * - apply tune view
16
16
  */
17
- var Ui = /*#__PURE__*/function () {
17
+ var Ui = exports.default = /*#__PURE__*/function () {
18
18
  /**
19
19
  * @param ui - image tool Ui module
20
20
  * @param ui.api - Editor.js API
@@ -60,7 +60,7 @@ var Ui = /*#__PURE__*/function () {
60
60
  *
61
61
  * @returns {object}
62
62
  */
63
- (0, _createClass2.default)(Ui, [{
63
+ return (0, _createClass2.default)(Ui, [{
64
64
  key: "CSS",
65
65
  get: function get() {
66
66
  return {
@@ -236,7 +236,6 @@ var Ui = /*#__PURE__*/function () {
236
236
  };
237
237
  }
238
238
  }]);
239
- return Ui;
240
239
  }();
241
240
  /**
242
241
  * Helper for making Elements with attributes
@@ -246,8 +245,7 @@ var Ui = /*#__PURE__*/function () {
246
245
  * @param {object} attributes - any attributes
247
246
  * @returns {HTMLElement}
248
247
  */
249
- exports.default = Ui;
250
- var make = function make(tagName) {
248
+ var make = exports.make = function make(tagName) {
251
249
  var classNames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
252
250
  var attributes = arguments.length > 2 ? arguments[2] : undefined;
253
251
  var element = document.createElement(tagName);
@@ -274,6 +272,5 @@ var make = function make(tagName) {
274
272
  }
275
273
  return element;
276
274
  };
277
- exports.make = make;
278
275
 
279
276
  //# sourceMappingURL=ui.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Ui","_ref","api","config","onSelectFile","readOnly","_classCallCheck2","default","nodes","wrapper","make","CSS","baseClass","imageContainer","fileButton","createFileButton","imageEl","undefined","caption","input","contentEditable","dataset","captionPlaceholder","appendChild","_createClass2","key","get","styles","block","button","value","render","toolData","file","Object","keys","length","toggleStatus","status","EMPTY","_this","innerHTML","i18n","t","addEventListener","fillImage","url","_this2","tag","test","attributes","src","eventName","autoplay","loop","muted","playsinline","FILLED","fillCaption","text","statusType","prototype","hasOwnProperty","call","newStatus","classList","toggle","concat","applyTune","tuneName","exports","tagName","classNames","arguments","element","document","createElement","Array","isArray","_element$classList","add","apply","_toConsumableArray2","attrName"],"sources":["ui.ts"],"sourcesContent":["import { API } from \"@editorjs/editorjs\";\nimport { ImageToolConfig, ImageToolData } from \"./types\";\n\ninterface OnSelectFileCallable {\n (): void;\n}\ninterface UiStatus {\n EMPTY: \"empty\";\n FILLED: \"filled\";\n [key: string]: string;\n}\ninterface UiParams {\n api: API;\n config: ImageToolConfig;\n onSelectFile: OnSelectFileCallable;\n readOnly: boolean;\n}\n/**\n * Class for working with UI:\n * - rendering base structure\n * - show/hide preview\n * - apply tune view\n */\nexport default class Ui {\n private api: API;\n private config: ImageToolConfig;\n private readonly readOnly: boolean;\n private readonly onSelectFile: OnSelectFileCallable;\n\n public readonly nodes: {\n wrapper: HTMLElement;\n imageContainer: HTMLElement;\n fileButton: HTMLElement;\n imageEl?: HTMLElement;\n caption: HTMLElement;\n };\n\n /**\n * @param ui - image tool Ui module\n * @param ui.api - Editor.js API\n * @param ui.config - user config\n * @param ui.onSelectFile - callback for clicks on Select file button\n * @param ui.readOnly - read-only mode flag\n */\n constructor({ api, config, onSelectFile, readOnly }: UiParams) {\n this.api = api;\n this.config = config;\n this.onSelectFile = onSelectFile;\n this.readOnly = readOnly;\n this.nodes = {\n wrapper: make(\"div\", [this.CSS.baseClass, this.CSS.wrapper]),\n imageContainer: make(\"div\", [this.CSS.imageContainer]),\n fileButton: this.createFileButton(),\n imageEl: undefined,\n caption: make(\"div\", [this.CSS.input, this.CSS.caption], {\n contentEditable: !this.readOnly\n })\n };\n\n /**\n * Create base structure\n * <wrapper>\n * <image-container/>\n * <caption />\n * </wrapper>\n */\n this.nodes.caption.dataset[\"placeholder\"] = this.config.captionPlaceholder;\n this.nodes.wrapper.appendChild(this.nodes.imageContainer);\n this.nodes.wrapper.appendChild(this.nodes.caption);\n this.nodes.wrapper.appendChild(this.nodes.fileButton);\n }\n\n /**\n * CSS classes\n *\n * @returns {object}\n */\n get CSS() {\n return {\n baseClass: this.api.styles.block,\n input: this.api.styles.input,\n button: this.api.styles.button,\n\n /**\n * Tool's classes\n */\n wrapper: \"image-tool\",\n imageContainer: \"image-tool__image\",\n imageEl: \"image-tool__image-picture\",\n caption: \"image-tool__caption\"\n };\n }\n\n /**\n * Ui statuses:\n * - empty\n * - filled\n *\n * @returns {{EMPTY: string, UPLOADING: string, FILLED: string}}\n */\n static get status(): UiStatus {\n return {\n EMPTY: \"empty\",\n FILLED: \"filled\"\n };\n }\n\n /**\n * Renders tool UI\n *\n * @param {ImageToolData} toolData - saved tool data\n * @returns {Element}\n */\n render(toolData: ImageToolData) {\n if (!toolData.file || Object.keys(toolData.file).length === 0) {\n this.toggleStatus(Ui.status.EMPTY);\n }\n\n return this.nodes.wrapper;\n }\n\n /**\n * Creates upload-file button\n *\n * @returns {Element}\n */\n createFileButton() {\n const button = make(\"div\", [this.CSS.button]);\n\n button.innerHTML = this.api.i18n.t(\"Select an Image\");\n\n button.addEventListener(\"click\", () => {\n this.onSelectFile();\n });\n\n return button;\n }\n\n /**\n * Shows an image\n *\n * @param {string} url - image source\n * @returns {void}\n */\n public fillImage(url: string): void {\n /**\n * Check for a source extension to compose element correctly: video tag for mp4, img — for others\n */\n const tag = /\\.mp4$/.test(url) ? \"VIDEO\" : \"IMG\";\n\n const attributes: any = {\n src: url\n };\n\n /**\n * We use eventName variable because IMG and VIDEO tags have different event to be called on source load\n * - IMG: load\n * - VIDEO: loadeddata\n *\n * @type {string}\n */\n let eventName = \"load\";\n\n /**\n * Update attributes and eventName if source is a mp4 video\n */\n if (tag === \"VIDEO\") {\n /**\n * Add attributes for playing muted mp4 as a gif\n *\n * @type {boolean}\n */\n attributes.autoplay = true;\n attributes.loop = true;\n attributes.muted = true;\n attributes.playsinline = true;\n\n /**\n * Change event to be listened\n *\n * @type {string}\n */\n eventName = \"loadeddata\";\n }\n\n /**\n * Compose tag with defined attributes\n *\n * @type {Element}\n */\n this.nodes.imageEl = make(tag, this.CSS.imageEl, attributes);\n\n /**\n * Add load event listener\n */\n this.nodes.imageEl.addEventListener(eventName, () => {\n this.toggleStatus(Ui.status.FILLED);\n });\n\n this.nodes.imageContainer.appendChild(this.nodes.imageEl);\n }\n\n /**\n * Shows caption input\n *\n * @param {string} text - caption text\n * @returns {void}\n */\n public fillCaption(text: string): void {\n if (!this.nodes.caption) {\n return;\n }\n this.nodes.caption.innerHTML = text;\n }\n\n /**\n * Changes UI status\n *\n * @param {string} status - see {@link Ui.status} constants\n * @returns {void}\n */\n public toggleStatus(status: string): void {\n for (const statusType in Ui.status) {\n if (Object.prototype.hasOwnProperty.call(Ui.status, statusType) === false) {\n continue;\n }\n const newStatus = Ui.status[statusType];\n this.nodes.wrapper.classList.toggle(\n `${this.CSS.wrapper}--${newStatus}`,\n status === newStatus\n );\n }\n }\n\n /**\n * Apply visual representation of activated tune\n *\n * @param {string} tuneName - one of available tunes {@link Tunes.tunes}\n * @param {boolean} status - true for enable, false for disable\n * @returns {void}\n */\n public applyTune(tuneName: string, status: boolean) {\n this.nodes.wrapper.classList.toggle(`${this.CSS.wrapper}--${tuneName}`, status);\n }\n}\n\n/**\n * Helper for making Elements with attributes\n *\n * @param {string} tagName - new Element tag name\n * @param {Array|string} classNames - list or name of CSS class\n * @param {object} attributes - any attributes\n * @returns {HTMLElement}\n */\nexport const make = function make(\n tagName: string,\n classNames: string[] | string | null = null,\n attributes?: Record<string, string | number | boolean>\n): HTMLElement {\n const element: HTMLElement = document.createElement(tagName);\n\n if (Array.isArray(classNames)) {\n element.classList.add(...classNames);\n } else if (classNames) {\n element.classList.add(classNames);\n }\n\n if (!attributes) {\n return element;\n }\n for (const attrName in attributes) {\n /**\n * Unfortunately it is a problem to map attributes to element because element is complaining\n * that attrName is a string, which cannot index the HTMLElement\n */\n const key = attrName as keyof HTMLElement;\n /**\n * Error says that each key is a read-only property.\n */\n // @ts-expect-error\n element[key] = attributes[attrName];\n }\n\n return element;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["Ui","exports","default","_ref","api","config","onSelectFile","readOnly","_classCallCheck2","nodes","wrapper","make","CSS","baseClass","imageContainer","fileButton","createFileButton","imageEl","undefined","caption","input","contentEditable","dataset","captionPlaceholder","appendChild","_createClass2","key","get","styles","block","button","value","render","toolData","file","Object","keys","length","toggleStatus","status","EMPTY","_this","innerHTML","i18n","t","addEventListener","fillImage","url","_this2","tag","test","attributes","src","eventName","autoplay","loop","muted","playsinline","FILLED","fillCaption","text","statusType","prototype","hasOwnProperty","call","newStatus","classList","toggle","concat","applyTune","tuneName","tagName","classNames","arguments","element","document","createElement","Array","isArray","_element$classList","add","apply","_toConsumableArray2","attrName"],"sources":["ui.ts"],"sourcesContent":["import { API } from \"@editorjs/editorjs\";\nimport { ImageToolConfig, ImageToolData } from \"./types\";\n\ninterface OnSelectFileCallable {\n (): void;\n}\ninterface UiStatus {\n EMPTY: \"empty\";\n FILLED: \"filled\";\n [key: string]: string;\n}\ninterface UiParams {\n api: API;\n config: ImageToolConfig;\n onSelectFile: OnSelectFileCallable;\n readOnly: boolean;\n}\n/**\n * Class for working with UI:\n * - rendering base structure\n * - show/hide preview\n * - apply tune view\n */\nexport default class Ui {\n private api: API;\n private config: ImageToolConfig;\n private readonly readOnly: boolean;\n private readonly onSelectFile: OnSelectFileCallable;\n\n public readonly nodes: {\n wrapper: HTMLElement;\n imageContainer: HTMLElement;\n fileButton: HTMLElement;\n imageEl?: HTMLElement;\n caption: HTMLElement;\n };\n\n /**\n * @param ui - image tool Ui module\n * @param ui.api - Editor.js API\n * @param ui.config - user config\n * @param ui.onSelectFile - callback for clicks on Select file button\n * @param ui.readOnly - read-only mode flag\n */\n constructor({ api, config, onSelectFile, readOnly }: UiParams) {\n this.api = api;\n this.config = config;\n this.onSelectFile = onSelectFile;\n this.readOnly = readOnly;\n this.nodes = {\n wrapper: make(\"div\", [this.CSS.baseClass, this.CSS.wrapper]),\n imageContainer: make(\"div\", [this.CSS.imageContainer]),\n fileButton: this.createFileButton(),\n imageEl: undefined,\n caption: make(\"div\", [this.CSS.input, this.CSS.caption], {\n contentEditable: !this.readOnly\n })\n };\n\n /**\n * Create base structure\n * <wrapper>\n * <image-container/>\n * <caption />\n * </wrapper>\n */\n this.nodes.caption.dataset[\"placeholder\"] = this.config.captionPlaceholder;\n this.nodes.wrapper.appendChild(this.nodes.imageContainer);\n this.nodes.wrapper.appendChild(this.nodes.caption);\n this.nodes.wrapper.appendChild(this.nodes.fileButton);\n }\n\n /**\n * CSS classes\n *\n * @returns {object}\n */\n get CSS() {\n return {\n baseClass: this.api.styles.block,\n input: this.api.styles.input,\n button: this.api.styles.button,\n\n /**\n * Tool's classes\n */\n wrapper: \"image-tool\",\n imageContainer: \"image-tool__image\",\n imageEl: \"image-tool__image-picture\",\n caption: \"image-tool__caption\"\n };\n }\n\n /**\n * Ui statuses:\n * - empty\n * - filled\n *\n * @returns {{EMPTY: string, UPLOADING: string, FILLED: string}}\n */\n static get status(): UiStatus {\n return {\n EMPTY: \"empty\",\n FILLED: \"filled\"\n };\n }\n\n /**\n * Renders tool UI\n *\n * @param {ImageToolData} toolData - saved tool data\n * @returns {Element}\n */\n render(toolData: ImageToolData) {\n if (!toolData.file || Object.keys(toolData.file).length === 0) {\n this.toggleStatus(Ui.status.EMPTY);\n }\n\n return this.nodes.wrapper;\n }\n\n /**\n * Creates upload-file button\n *\n * @returns {Element}\n */\n createFileButton() {\n const button = make(\"div\", [this.CSS.button]);\n\n button.innerHTML = this.api.i18n.t(\"Select an Image\");\n\n button.addEventListener(\"click\", () => {\n this.onSelectFile();\n });\n\n return button;\n }\n\n /**\n * Shows an image\n *\n * @param {string} url - image source\n * @returns {void}\n */\n public fillImage(url: string): void {\n /**\n * Check for a source extension to compose element correctly: video tag for mp4, img — for others\n */\n const tag = /\\.mp4$/.test(url) ? \"VIDEO\" : \"IMG\";\n\n const attributes: any = {\n src: url\n };\n\n /**\n * We use eventName variable because IMG and VIDEO tags have different event to be called on source load\n * - IMG: load\n * - VIDEO: loadeddata\n *\n * @type {string}\n */\n let eventName = \"load\";\n\n /**\n * Update attributes and eventName if source is a mp4 video\n */\n if (tag === \"VIDEO\") {\n /**\n * Add attributes for playing muted mp4 as a gif\n *\n * @type {boolean}\n */\n attributes.autoplay = true;\n attributes.loop = true;\n attributes.muted = true;\n attributes.playsinline = true;\n\n /**\n * Change event to be listened\n *\n * @type {string}\n */\n eventName = \"loadeddata\";\n }\n\n /**\n * Compose tag with defined attributes\n *\n * @type {Element}\n */\n this.nodes.imageEl = make(tag, this.CSS.imageEl, attributes);\n\n /**\n * Add load event listener\n */\n this.nodes.imageEl.addEventListener(eventName, () => {\n this.toggleStatus(Ui.status.FILLED);\n });\n\n this.nodes.imageContainer.appendChild(this.nodes.imageEl);\n }\n\n /**\n * Shows caption input\n *\n * @param {string} text - caption text\n * @returns {void}\n */\n public fillCaption(text: string): void {\n if (!this.nodes.caption) {\n return;\n }\n this.nodes.caption.innerHTML = text;\n }\n\n /**\n * Changes UI status\n *\n * @param {string} status - see {@link Ui.status} constants\n * @returns {void}\n */\n public toggleStatus(status: string): void {\n for (const statusType in Ui.status) {\n if (Object.prototype.hasOwnProperty.call(Ui.status, statusType) === false) {\n continue;\n }\n const newStatus = Ui.status[statusType];\n this.nodes.wrapper.classList.toggle(\n `${this.CSS.wrapper}--${newStatus}`,\n status === newStatus\n );\n }\n }\n\n /**\n * Apply visual representation of activated tune\n *\n * @param {string} tuneName - one of available tunes {@link Tunes.tunes}\n * @param {boolean} status - true for enable, false for disable\n * @returns {void}\n */\n public applyTune(tuneName: string, status: boolean) {\n this.nodes.wrapper.classList.toggle(`${this.CSS.wrapper}--${tuneName}`, status);\n }\n}\n\n/**\n * Helper for making Elements with attributes\n *\n * @param {string} tagName - new Element tag name\n * @param {Array|string} classNames - list or name of CSS class\n * @param {object} attributes - any attributes\n * @returns {HTMLElement}\n */\nexport const make = function make(\n tagName: string,\n classNames: string[] | string | null = null,\n attributes?: Record<string, string | number | boolean>\n): HTMLElement {\n const element: HTMLElement = document.createElement(tagName);\n\n if (Array.isArray(classNames)) {\n element.classList.add(...classNames);\n } else if (classNames) {\n element.classList.add(classNames);\n }\n\n if (!attributes) {\n return element;\n }\n for (const attrName in attributes) {\n /**\n * Unfortunately it is a problem to map attributes to element because element is complaining\n * that attrName is a string, which cannot index the HTMLElement\n */\n const key = attrName as keyof HTMLElement;\n /**\n * Error says that each key is a read-only property.\n */\n // @ts-expect-error\n element[key] = attributes[attrName];\n }\n\n return element;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -72,7 +72,7 @@ var Paragraph = /*#__PURE__*/function () {
72
72
  * @return {string}
73
73
  * @constructor
74
74
  */
75
- (0, _createClass2.default)(Paragraph, [{
75
+ return (0, _createClass2.default)(Paragraph, [{
76
76
  key: "data",
77
77
  get:
78
78
  /**
@@ -481,9 +481,7 @@ var Paragraph = /*#__PURE__*/function () {
481
481
  };
482
482
  }
483
483
  }]);
484
- return Paragraph;
485
484
  }();
486
- var _default = Paragraph;
487
- exports.default = _default;
485
+ var _default = exports.default = Paragraph;
488
486
 
489
487
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_utils","require","Paragraph","_ref","data","config","api","readOnly","_classCallCheck2","default","typography","_CSS","block","styles","settingsButton","settingsButtonActive","wrapper","onKeyUp","bind","_placeholder","placeholder","DEFAULT_PLACEHOLDER","_data","normalizeData","_element","drawView","_preserveBlank","preserveBlank","undefined","settingsButtons","alignments","ALIGNMENTS","_createClass2","key","get","text","innerHTML","_objectSpread2","set","_this","forEach","alignment","name","textAlign","classList","add","concat","remove","className","_this$_element$classL","apply","_toConsumableArray2","split","_this2","find","TextAlign","START","svg","ALIGNMENT_ICONS","start","value","e","code","textContent","div","document","createElement","contentEditable","dataset","i18n","t","addEventListener","render","renderSettings","_this3","holder","selectTypeButton","currentAlignment","setAlignment","appendChild","push","typographyForParagraph","Object","values","filter","item","component","input","option","Option","label","onclick","event","_ref2","target","setTypographyClass","merge","validate","savedData","trim","save","toolsContent","getTextAlign","includes","onPaste","detail","_this4","button","toggle","newData","export","import","br","tags","icon","title","_default","exports"],"sources":["index.ts"],"sourcesContent":["import { API, PasteEvent } from \"@editorjs/editorjs\";\nimport { Alignment, ALIGNMENTS, TextAlign, ALIGNMENT_ICONS } from \"../utils\";\nimport { HTMLPasteEventDetail } from \"@editorjs/editorjs/types/tools/paste-events\";\n\n/**\n * @typedef {object} ParagraphConfig\n * @property {string} placeholder - placeholder for the empty paragraph\n * @property {boolean} preserveBlank - Whether or not to keep blank paragraphs when saving editor data`\n */\ninterface ParagraphConfig {\n placeholder: string;\n preserveBlank: boolean;\n typography?: Typography;\n}\n/**\n * @typedef {Object} ParagraphData\n * @description Tool's input and output data format\n * @property {String} text — Paragraph's content. Can include HTML tags: <a><b><i>\n */\ninterface ParagraphData {\n text: string;\n textAlign: TextAlign;\n className?: string;\n}\n\ninterface Typography {\n [key: string]: {\n label: string;\n component: string;\n className: string;\n };\n}\n\ninterface ParagraphArgs {\n data: ParagraphData;\n config: ParagraphConfig;\n api: any;\n readOnly: boolean;\n}\nclass Paragraph {\n private readonly api: API;\n private readonly readOnly: boolean;\n private readonly _CSS: any;\n // private readonly _settings: any;\n private _data: ParagraphData;\n private readonly _element: any;\n private readonly _placeholder: string;\n private readonly _preserveBlank: boolean;\n private readonly alignments: Alignment[];\n private readonly settingsButtons: HTMLElement[];\n private readonly typography: Typography | null;\n\n /**\n * Render plugin`s main Element and fill it with saved data\n *\n * @param {object} params - constructor params\n * @param {ParagraphData} params.data - previously saved data\n * @param {ParagraphConfig} params.config - user config for Tool\n * @param {object} params.api - editor.js api\n * @param {boolean} readOnly - read only mode flag\n */\n public constructor({ data, config, api, readOnly }: ParagraphArgs) {\n this.api = api;\n this.readOnly = readOnly;\n this.typography = config.typography || null;\n this._CSS = {\n block: this.api.styles.block,\n settingsButton: this.api.styles.settingsButton,\n settingsButtonActive: this.api.styles.settingsButtonActive,\n wrapper: \"ce-paragraph\"\n };\n\n if (!this.readOnly) {\n this.onKeyUp = this.onKeyUp.bind(this);\n }\n\n /**\n * Placeholder for paragraph if it is first Block\n * @type {string}\n */\n this._placeholder = config.placeholder ? config.placeholder : Paragraph.DEFAULT_PLACEHOLDER;\n this._data = this.normalizeData(data);\n this._element = this.drawView();\n this._preserveBlank = config.preserveBlank !== undefined ? config.preserveBlank : false;\n this.settingsButtons = [];\n this.alignments = ALIGNMENTS;\n\n // Call the `data` setter, to properly render the view element.\n this.data = this._data;\n }\n\n /**\n * Default placeholder for Paragraph Tool\n *\n * @return {string}\n * @constructor\n */\n public static get DEFAULT_PLACEHOLDER(): string {\n return \"\";\n }\n\n /**\n * Enable Conversion Toolbar. Paragraph can be converted to/from other tools\n */\n public static get conversionConfig() {\n return {\n export: \"text\", // to convert Paragraph to other block, use 'text' property of saved data\n import: \"text\" // to covert other block's exported string to Paragraph, fill 'text' property of tool data\n };\n }\n\n /**\n * Sanitizer rules\n */\n public static get sanitize() {\n return {\n text: {\n br: true\n }\n };\n }\n\n /**\n * Returns true to notify the core that read-only mode is supported\n *\n * @return {boolean}\n */\n public static get isReadOnlySupported(): boolean {\n return true;\n }\n\n /**\n * Get current Tools`s data\n * @returns {ParagraphData} Current data\n * @private\n */\n public get data(): ParagraphData {\n const text = this._element.innerHTML;\n\n // this._data.text = text;\n\n return {\n ...this._data,\n text\n };\n }\n\n /**\n * Store data in plugin:\n * - at the this._data property\n * - at the HTML\n *\n * @param {ParagraphData} data — data to set\n * @private\n */\n public set data(data: ParagraphData) {\n this._data = data || ({} as ParagraphData);\n\n this._element.innerHTML = this._data.text || \"\";\n\n /**\n * Add Alignment class\n */\n this.alignments.forEach(alignment => {\n if (alignment.name === this._data.textAlign) {\n this._element.classList.add(`ce-header-text--${alignment.name}`);\n } else {\n this._element.classList.remove(`ce-header-text--${alignment.name}`);\n }\n });\n\n /**\n * Add Typography class\n */\n if (this._data.className) {\n this._element.classList.add(...this._data.className.split(\" \"));\n }\n }\n\n /**\n * Used by Editor paste handling API.\n * Provides configuration to handle P tags.\n *\n * @returns {{tags: string[]}}\n */\n public static get pasteConfig() {\n return {\n tags: [\"P\"]\n };\n }\n\n /**\n * Icon and title for displaying at the Toolbox\n *\n * @return {{icon: string, title: string}}\n */\n public static get toolbox() {\n return {\n icon:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0.2 -0.3 9 11.4\" width=\"12\" height=\"14\">\\n' +\n ' <path d=\"M0 2.77V.92A1 1 0 01.2.28C.35.1.56 0 .83 0h7.66c.28.01.48.1.63.28.14.17.21.38.21.64v1.85c0 .26-.08.48-.23.66-.15.17-.37.26-.66.26-.28 0-.5-.09-.64-.26a1 1 0 01-.21-.66V1.69H5.6v7.58h.5c.25 0 .45.08.6.23.17.16.25.35.25.6s-.08.45-.24.6a.87.87 0 01-.62.22H3.21a.87.87 0 01-.61-.22.78.78 0 01-.24-.6c0-.25.08-.44.24-.6a.85.85 0 01.61-.23h.5V1.7H1.73v1.08c0 .26-.08.48-.23.66-.15.17-.37.26-.66.26-.28 0-.5-.09-.64-.26A1 1 0 010 2.77z\"/>\\n' +\n \"</svg>\",\n title: \"Text\"\n };\n }\n\n /**\n * Get current alignment\n *\n * @returns {alignment}\n */\n public get currentAlignment(): Alignment {\n let alignment = this.alignments.find(alignment => alignment.name === this._data.textAlign);\n\n if (!alignment) {\n alignment = { name: TextAlign.START, svg: ALIGNMENT_ICONS.start };\n }\n\n return alignment;\n }\n\n /**\n * Check if text content is empty and set empty string to inner html.\n * We need this because some browsers (e.g. Safari) insert <br> into empty contentEditable elements\n *\n * @param {KeyboardEvent} e - key up event\n */\n public onKeyUp(e: KeyboardEvent): void {\n if (e.code !== \"Backspace\" && e.code !== \"Delete\") {\n return;\n }\n\n const { textContent } = this._element;\n\n if (textContent === \"\") {\n this._element.innerHTML = \"\";\n }\n }\n\n /**\n * Create Tool's view\n * @return {HTMLElement}\n * @private\n */\n public drawView(): HTMLElement {\n const div: HTMLDivElement = document.createElement(\"div\");\n div.classList.add(this._CSS.wrapper, this._CSS.block);\n // Add custom className to view.\n if (this._data.className) {\n div.classList.add(this._data.className);\n }\n div.contentEditable = \"false\";\n div.dataset[\"placeholder\"] = this.api.i18n.t(this._placeholder);\n\n if (!this.readOnly) {\n div.contentEditable = \"true\";\n div.addEventListener(\"keyup\", this.onKeyUp);\n }\n\n return div;\n }\n\n /**\n * Return Tool's view\n */\n public render(): HTMLDivElement {\n return this._element;\n }\n\n /**\n * Create Block's settings block\n */\n public renderSettings(): HTMLElement {\n const holder: HTMLDivElement = document.createElement(\"div\");\n\n // Add alignment selectors\n this.alignments.forEach(alignment => {\n const selectTypeButton: HTMLSpanElement = document.createElement(\"span\");\n\n selectTypeButton.classList.add(this._CSS.settingsButton);\n\n /**\n * Highlight current level button\n */\n if (this.currentAlignment.name === alignment.name) {\n selectTypeButton.classList.add(this._CSS.settingsButtonActive);\n }\n\n /**\n * Add SVG icon\n */\n selectTypeButton.innerHTML = alignment.svg;\n\n /**\n * Save alignment to its button\n */\n selectTypeButton.dataset[\"textAlign\"] = alignment.name;\n\n /**\n * Set up click handler\n */\n selectTypeButton.addEventListener(\"click\", () => {\n this.setAlignment(alignment);\n });\n\n /**\n * Append settings button to holder\n */\n holder.appendChild(selectTypeButton);\n\n /**\n * Save settings buttons\n */\n this.settingsButtons.push(selectTypeButton);\n });\n\n // Add `Typography` selector\n if (this.typography) {\n const typographyForParagraph = Object.values(this.typography).filter(\n item => item.component === \"p\"\n );\n\n const selectTypeButton = document.createElement(\"SELECT\") as HTMLSelectElement;\n // Add editor's default input style\n selectTypeButton.classList.add(this.api.styles.input);\n // Add typography options\n typographyForParagraph.forEach(item => {\n const option = new Option(item.label, item.className);\n\n selectTypeButton.appendChild(option);\n });\n // Add \"onclick\" handler\n selectTypeButton.onclick = event => {\n const { value } = event.target as HTMLSelectElement;\n this.setTypographyClass(value);\n };\n\n /**\n * Append settings button to holder\n */\n holder.appendChild(selectTypeButton);\n\n /**\n * Save settings buttons\n */\n this.settingsButtons.push(selectTypeButton);\n }\n\n return holder;\n }\n\n /**\n * Method that specified how to merge two Text blocks.\n * Called by Editor.js by backspace at the beginning of the Block\n * @param {ParagraphData} data\n * @public\n */\n public merge(data: ParagraphData): void {\n this.data = {\n ...this.data,\n text: this.data.text + data.text\n };\n }\n\n /**\n * Validate Paragraph block data:\n * - check for emptiness\n *\n * @param {ParagraphData} savedData — data received after saving\n * @returns {boolean} false if saved data is not correct, otherwise true\n * @public\n */\n public validate(savedData: ParagraphData): boolean {\n return !(savedData.text.trim() === \"\" && !this._preserveBlank);\n }\n\n /**\n * Extract Tool's data from the view\n * @param {HTMLDivElement} toolsContent - Paragraph tools rendered view\n * @returns {ParagraphData} - saved data\n * @public\n */\n public save(toolsContent: HTMLElement) {\n return {\n text: toolsContent.innerHTML,\n textAlign: this.getTextAlign(toolsContent.className),\n className: this.data.className\n };\n }\n\n /**\n * Extract textAlign from className\n *\n * @param {string} className - heading element className\n * @returns {TextAlign} textAlign\n */\n public getTextAlign(className: string): TextAlign {\n let textAlign = TextAlign.START;\n // Match className with alignment\n this.alignments.forEach(alignment => {\n if (className.includes(`ce-header-text--${alignment.name}`)) {\n textAlign = alignment.name;\n }\n });\n return textAlign;\n }\n\n /**\n * On paste callback fired from Editor.\n *\n * @param {PasteEvent} event - event with pasted data\n */\n public onPaste(event: PasteEvent): void {\n const detail = event.detail as HTMLPasteEventDetail;\n this.data = {\n ...this.data,\n text: detail.data.innerHTML\n };\n }\n\n /**\n * Callback for Block's settings buttons\n *\n * @param {number} alignment - level to set\n */\n public setAlignment(alignment: Alignment): void {\n this.data = {\n textAlign: alignment.name,\n text: this.data.text\n };\n\n /**\n * Highlight button by selected level\n */\n this.settingsButtons.forEach(button => {\n button.classList.toggle(\n this._CSS.settingsButtonActive,\n button.dataset[\"textAlign\"] === alignment.name\n );\n });\n }\n\n /**\n * Callback for Block's settings buttons\n *\n * @param {string} className - name of typography class\n */\n public setTypographyClass(className: string): void {\n this.data = {\n textAlign: this.data.textAlign,\n text: this.data.text,\n className: className\n };\n }\n\n /**\n * Normalize input data\n *\n * @param {HeaderData} data - saved data to process\n *\n * @returns {HeaderData}\n * @private\n */\n public normalizeData(data?: Partial<ParagraphData>): ParagraphData {\n const newData: Partial<ParagraphData> = {};\n\n if (typeof data !== \"object\") {\n data = {};\n }\n\n newData.text = data.text || \"\";\n newData.textAlign = data.textAlign || TextAlign.START;\n newData.className = data.className || \"\";\n\n return newData as ParagraphData;\n }\n}\n\nexport default Paragraph;\n"],"mappings":";;;;;;;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAGA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AACA;AAJA,IAyBMC,SAAS;EAIX;;EASA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI,SAAAA,UAAAC,IAAA,EAAmE;IAAA,IAA9CC,IAAI,GAAAD,IAAA,CAAJC,IAAI;MAAEC,MAAM,GAAAF,IAAA,CAANE,MAAM;MAAEC,GAAG,GAAAH,IAAA,CAAHG,GAAG;MAAEC,QAAQ,GAAAJ,IAAA,CAARI,QAAQ;IAAA,IAAAC,gBAAA,CAAAC,OAAA,QAAAP,SAAA;IAC5C,IAAI,CAACI,GAAG,GAAGA,GAAG;IACd,IAAI,CAACC,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACG,UAAU,GAAGL,MAAM,CAACK,UAAU,IAAI,IAAI;IAC3C,IAAI,CAACC,IAAI,GAAG;MACRC,KAAK,EAAE,IAAI,CAACN,GAAG,CAACO,MAAM,CAACD,KAAK;MAC5BE,cAAc,EAAE,IAAI,CAACR,GAAG,CAACO,MAAM,CAACC,cAAc;MAC9CC,oBAAoB,EAAE,IAAI,CAACT,GAAG,CAACO,MAAM,CAACE,oBAAoB;MAC1DC,OAAO,EAAE;IACb,CAAC;IAED,IAAI,CAAC,IAAI,CAACT,QAAQ,EAAE;MAChB,IAAI,CAACU,OAAO,GAAG,IAAI,CAACA,OAAO,CAACC,IAAI,CAAC,IAAI,CAAC;IAC1C;;IAEA;AACR;AACA;AACA;IACQ,IAAI,CAACC,YAAY,GAAGd,MAAM,CAACe,WAAW,GAAGf,MAAM,CAACe,WAAW,GAAGlB,SAAS,CAACmB,mBAAmB;IAC3F,IAAI,CAACC,KAAK,GAAG,IAAI,CAACC,aAAa,CAACnB,IAAI,CAAC;IACrC,IAAI,CAACoB,QAAQ,GAAG,IAAI,CAACC,QAAQ,CAAC,CAAC;IAC/B,IAAI,CAACC,cAAc,GAAGrB,MAAM,CAACsB,aAAa,KAAKC,SAAS,GAAGvB,MAAM,CAACsB,aAAa,GAAG,KAAK;IACvF,IAAI,CAACE,eAAe,GAAG,EAAE;IACzB,IAAI,CAACC,UAAU,GAAGC,iBAAU;;IAE5B;IACA,IAAI,CAAC3B,IAAI,GAAG,IAAI,CAACkB,KAAK;EAC1B;;EAEA;AACJ;AACA;AACA;AACA;AACA;EALI,IAAAU,aAAA,CAAAvB,OAAA,EAAAP,SAAA;IAAA+B,GAAA;IAAAC,GAAA;IAwCA;AACJ;AACA;AACA;AACA;IACI,SAAAA,IAAA,EAAiC;MAC7B,IAAMC,IAAI,GAAG,IAAI,CAACX,QAAQ,CAACY,SAAS;;MAEpC;;MAEA,WAAAC,cAAA,CAAA5B,OAAA,MAAA4B,cAAA,CAAA5B,OAAA,MACO,IAAI,CAACa,KAAK;QACba,IAAI,EAAJA;MAAI;IAEZ;;IAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,OAPI;IAAAG,GAAA,EAQA,SAAAA,IAAgBlC,IAAmB,EAAE;MAAA,IAAAmC,KAAA;MACjC,IAAI,CAACjB,KAAK,GAAGlB,IAAI,IAAK,CAAC,CAAmB;MAE1C,IAAI,CAACoB,QAAQ,CAACY,SAAS,GAAG,IAAI,CAACd,KAAK,CAACa,IAAI,IAAI,EAAE;;MAE/C;AACR;AACA;MACQ,IAAI,CAACL,UAAU,CAACU,OAAO,CAAC,UAAAC,SAAS,EAAI;QACjC,IAAIA,SAAS,CAACC,IAAI,KAAKH,KAAI,CAACjB,KAAK,CAACqB,SAAS,EAAE;UACzCJ,KAAI,CAACf,QAAQ,CAACoB,SAAS,CAACC,GAAG,oBAAAC,MAAA,CAAoBL,SAAS,CAACC,IAAI,CAAE,CAAC;QACpE,CAAC,MAAM;UACHH,KAAI,CAACf,QAAQ,CAACoB,SAAS,CAACG,MAAM,oBAAAD,MAAA,CAAoBL,SAAS,CAACC,IAAI,CAAE,CAAC;QACvE;MACJ,CAAC,CAAC;;MAEF;AACR;AACA;MACQ,IAAI,IAAI,CAACpB,KAAK,CAAC0B,SAAS,EAAE;QAAA,IAAAC,qBAAA;QACtB,CAAAA,qBAAA,OAAI,CAACzB,QAAQ,CAACoB,SAAS,EAACC,GAAG,CAAAK,KAAA,CAAAD,qBAAA,MAAAE,mBAAA,CAAA1C,OAAA,EAAI,IAAI,CAACa,KAAK,CAAC0B,SAAS,CAACI,KAAK,CAAC,GAAG,CAAC,EAAC;MACnE;IACJ;;IAEA;AACJ;AACA;AACA;AACA;AACA;EALI;IAAAnB,GAAA;IAAAC,GAAA;IA2BA;AACJ;AACA;AACA;AACA;IACI,SAAAA,IAAA,EAAyC;MAAA,IAAAmB,MAAA;MACrC,IAAIZ,SAAS,GAAG,IAAI,CAACX,UAAU,CAACwB,IAAI,CAAC,UAAAb,SAAS;QAAA,OAAIA,SAAS,CAACC,IAAI,KAAKW,MAAI,CAAC/B,KAAK,CAACqB,SAAS;MAAA,EAAC;MAE1F,IAAI,CAACF,SAAS,EAAE;QACZA,SAAS,GAAG;UAAEC,IAAI,EAAEa,gBAAS,CAACC,KAAK;UAAEC,GAAG,EAAEC,sBAAe,CAACC;QAAM,CAAC;MACrE;MAEA,OAAOlB,SAAS;IACpB;;IAEA;AACJ;AACA;AACA;AACA;AACA;EALI;IAAAR,GAAA;IAAA2B,KAAA,EAMA,SAAA3C,QAAe4C,CAAgB,EAAQ;MACnC,IAAIA,CAAC,CAACC,IAAI,KAAK,WAAW,IAAID,CAAC,CAACC,IAAI,KAAK,QAAQ,EAAE;QAC/C;MACJ;MAEA,IAAQC,WAAW,GAAK,IAAI,CAACvC,QAAQ,CAA7BuC,WAAW;MAEnB,IAAIA,WAAW,KAAK,EAAE,EAAE;QACpB,IAAI,CAACvC,QAAQ,CAACY,SAAS,GAAG,EAAE;MAChC;IACJ;;IAEA;AACJ;AACA;AACA;AACA;EAJI;IAAAH,GAAA;IAAA2B,KAAA,EAKA,SAAAnC,SAAA,EAA+B;MAC3B,IAAMuC,GAAmB,GAAGC,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;MACzDF,GAAG,CAACpB,SAAS,CAACC,GAAG,CAAC,IAAI,CAAClC,IAAI,CAACK,OAAO,EAAE,IAAI,CAACL,IAAI,CAACC,KAAK,CAAC;MACrD;MACA,IAAI,IAAI,CAACU,KAAK,CAAC0B,SAAS,EAAE;QACtBgB,GAAG,CAACpB,SAAS,CAACC,GAAG,CAAC,IAAI,CAACvB,KAAK,CAAC0B,SAAS,CAAC;MAC3C;MACAgB,GAAG,CAACG,eAAe,GAAG,OAAO;MAC7BH,GAAG,CAACI,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC9D,GAAG,CAAC+D,IAAI,CAACC,CAAC,CAAC,IAAI,CAACnD,YAAY,CAAC;MAE/D,IAAI,CAAC,IAAI,CAACZ,QAAQ,EAAE;QAChByD,GAAG,CAACG,eAAe,GAAG,MAAM;QAC5BH,GAAG,CAACO,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAACtD,OAAO,CAAC;MAC/C;MAEA,OAAO+C,GAAG;IACd;;IAEA;AACJ;AACA;EAFI;IAAA/B,GAAA;IAAA2B,KAAA,EAGA,SAAAY,OAAA,EAAgC;MAC5B,OAAO,IAAI,CAAChD,QAAQ;IACxB;;IAEA;AACJ;AACA;EAFI;IAAAS,GAAA;IAAA2B,KAAA,EAGA,SAAAa,eAAA,EAAqC;MAAA,IAAAC,MAAA;MACjC,IAAMC,MAAsB,GAAGV,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;;MAE5D;MACA,IAAI,CAACpC,UAAU,CAACU,OAAO,CAAC,UAAAC,SAAS,EAAI;QACjC,IAAMmC,gBAAiC,GAAGX,QAAQ,CAACC,aAAa,CAAC,MAAM,CAAC;QAExEU,gBAAgB,CAAChC,SAAS,CAACC,GAAG,CAAC6B,MAAI,CAAC/D,IAAI,CAACG,cAAc,CAAC;;QAExD;AACZ;AACA;QACY,IAAI4D,MAAI,CAACG,gBAAgB,CAACnC,IAAI,KAAKD,SAAS,CAACC,IAAI,EAAE;UAC/CkC,gBAAgB,CAAChC,SAAS,CAACC,GAAG,CAAC6B,MAAI,CAAC/D,IAAI,CAACI,oBAAoB,CAAC;QAClE;;QAEA;AACZ;AACA;QACY6D,gBAAgB,CAACxC,SAAS,GAAGK,SAAS,CAACgB,GAAG;;QAE1C;AACZ;AACA;QACYmB,gBAAgB,CAACR,OAAO,CAAC,WAAW,CAAC,GAAG3B,SAAS,CAACC,IAAI;;QAEtD;AACZ;AACA;QACYkC,gBAAgB,CAACL,gBAAgB,CAAC,OAAO,EAAE,YAAM;UAC7CG,MAAI,CAACI,YAAY,CAACrC,SAAS,CAAC;QAChC,CAAC,CAAC;;QAEF;AACZ;AACA;QACYkC,MAAM,CAACI,WAAW,CAACH,gBAAgB,CAAC;;QAEpC;AACZ;AACA;QACYF,MAAI,CAAC7C,eAAe,CAACmD,IAAI,CAACJ,gBAAgB,CAAC;MAC/C,CAAC,CAAC;;MAEF;MACA,IAAI,IAAI,CAAClE,UAAU,EAAE;QACjB,IAAMuE,sBAAsB,GAAGC,MAAM,CAACC,MAAM,CAAC,IAAI,CAACzE,UAAU,CAAC,CAAC0E,MAAM,CAChE,UAAAC,IAAI;UAAA,OAAIA,IAAI,CAACC,SAAS,KAAK,GAAG;QAAA,CAClC,CAAC;QAED,IAAMV,gBAAgB,GAAGX,QAAQ,CAACC,aAAa,CAAC,QAAQ,CAAsB;QAC9E;QACAU,gBAAgB,CAAChC,SAAS,CAACC,GAAG,CAAC,IAAI,CAACvC,GAAG,CAACO,MAAM,CAAC0E,KAAK,CAAC;QACrD;QACAN,sBAAsB,CAACzC,OAAO,CAAC,UAAA6C,IAAI,EAAI;UACnC,IAAMG,MAAM,GAAG,IAAIC,MAAM,CAACJ,IAAI,CAACK,KAAK,EAAEL,IAAI,CAACrC,SAAS,CAAC;UAErD4B,gBAAgB,CAACG,WAAW,CAACS,MAAM,CAAC;QACxC,CAAC,CAAC;QACF;QACAZ,gBAAgB,CAACe,OAAO,GAAG,UAAAC,KAAK,EAAI;UAChC,IAAAC,KAAA,GAAkBD,KAAK,CAACE,MAAM;YAAtBlC,KAAK,GAAAiC,KAAA,CAALjC,KAAK;UACbc,MAAI,CAACqB,kBAAkB,CAACnC,KAAK,CAAC;QAClC,CAAC;;QAED;AACZ;AACA;QACYe,MAAM,CAACI,WAAW,CAACH,gBAAgB,CAAC;;QAEpC;AACZ;AACA;QACY,IAAI,CAAC/C,eAAe,CAACmD,IAAI,CAACJ,gBAAgB,CAAC;MAC/C;MAEA,OAAOD,MAAM;IACjB;;IAEA;AACJ;AACA;AACA;AACA;AACA;EALI;IAAA1C,GAAA;IAAA2B,KAAA,EAMA,SAAAoC,MAAa5F,IAAmB,EAAQ;MACpC,IAAI,CAACA,IAAI,OAAAiC,cAAA,CAAA5B,OAAA,MAAA4B,cAAA,CAAA5B,OAAA,MACF,IAAI,CAACL,IAAI;QACZ+B,IAAI,EAAE,IAAI,CAAC/B,IAAI,CAAC+B,IAAI,GAAG/B,IAAI,CAAC+B;MAAI,EACnC;IACL;;IAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EAPI;IAAAF,GAAA;IAAA2B,KAAA,EAQA,SAAAqC,SAAgBC,SAAwB,EAAW;MAC/C,OAAO,EAAEA,SAAS,CAAC/D,IAAI,CAACgE,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAACzE,cAAc,CAAC;IAClE;;IAEA;AACJ;AACA;AACA;AACA;AACA;EALI;IAAAO,GAAA;IAAA2B,KAAA,EAMA,SAAAwC,KAAYC,YAAyB,EAAE;MACnC,OAAO;QACHlE,IAAI,EAAEkE,YAAY,CAACjE,SAAS;QAC5BO,SAAS,EAAE,IAAI,CAAC2D,YAAY,CAACD,YAAY,CAACrD,SAAS,CAAC;QACpDA,SAAS,EAAE,IAAI,CAAC5C,IAAI,CAAC4C;MACzB,CAAC;IACL;;IAEA;AACJ;AACA;AACA;AACA;AACA;EALI;IAAAf,GAAA;IAAA2B,KAAA,EAMA,SAAA0C,aAAoBtD,SAAiB,EAAa;MAC9C,IAAIL,SAAS,GAAGY,gBAAS,CAACC,KAAK;MAC/B;MACA,IAAI,CAAC1B,UAAU,CAACU,OAAO,CAAC,UAAAC,SAAS,EAAI;QACjC,IAAIO,SAAS,CAACuD,QAAQ,oBAAAzD,MAAA,CAAoBL,SAAS,CAACC,IAAI,CAAE,CAAC,EAAE;UACzDC,SAAS,GAAGF,SAAS,CAACC,IAAI;QAC9B;MACJ,CAAC,CAAC;MACF,OAAOC,SAAS;IACpB;;IAEA;AACJ;AACA;AACA;AACA;EAJI;IAAAV,GAAA;IAAA2B,KAAA,EAKA,SAAA4C,QAAeZ,KAAiB,EAAQ;MACpC,IAAMa,MAAM,GAAGb,KAAK,CAACa,MAA8B;MACnD,IAAI,CAACrG,IAAI,OAAAiC,cAAA,CAAA5B,OAAA,MAAA4B,cAAA,CAAA5B,OAAA,MACF,IAAI,CAACL,IAAI;QACZ+B,IAAI,EAAEsE,MAAM,CAACrG,IAAI,CAACgC;MAAS,EAC9B;IACL;;IAEA;AACJ;AACA;AACA;AACA;EAJI;IAAAH,GAAA;IAAA2B,KAAA,EAKA,SAAAkB,aAAoBrC,SAAoB,EAAQ;MAAA,IAAAiE,MAAA;MAC5C,IAAI,CAACtG,IAAI,GAAG;QACRuC,SAAS,EAAEF,SAAS,CAACC,IAAI;QACzBP,IAAI,EAAE,IAAI,CAAC/B,IAAI,CAAC+B;MACpB,CAAC;;MAED;AACR;AACA;MACQ,IAAI,CAACN,eAAe,CAACW,OAAO,CAAC,UAAAmE,MAAM,EAAI;QACnCA,MAAM,CAAC/D,SAAS,CAACgE,MAAM,CACnBF,MAAI,CAAC/F,IAAI,CAACI,oBAAoB,EAC9B4F,MAAM,CAACvC,OAAO,CAAC,WAAW,CAAC,KAAK3B,SAAS,CAACC,IAC9C,CAAC;MACL,CAAC,CAAC;IACN;;IAEA;AACJ;AACA;AACA;AACA;EAJI;IAAAT,GAAA;IAAA2B,KAAA,EAKA,SAAAmC,mBAA0B/C,SAAiB,EAAQ;MAC/C,IAAI,CAAC5C,IAAI,GAAG;QACRuC,SAAS,EAAE,IAAI,CAACvC,IAAI,CAACuC,SAAS;QAC9BR,IAAI,EAAE,IAAI,CAAC/B,IAAI,CAAC+B,IAAI;QACpBa,SAAS,EAAEA;MACf,CAAC;IACL;;IAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EAPI;IAAAf,GAAA;IAAA2B,KAAA,EAQA,SAAArC,cAAqBnB,IAA6B,EAAiB;MAC/D,IAAMyG,OAA+B,GAAG,CAAC,CAAC;MAE1C,IAAI,OAAOzG,IAAI,KAAK,QAAQ,EAAE;QAC1BA,IAAI,GAAG,CAAC,CAAC;MACb;MAEAyG,OAAO,CAAC1E,IAAI,GAAG/B,IAAI,CAAC+B,IAAI,IAAI,EAAE;MAC9B0E,OAAO,CAAClE,SAAS,GAAGvC,IAAI,CAACuC,SAAS,IAAIY,gBAAS,CAACC,KAAK;MACrDqD,OAAO,CAAC7D,SAAS,GAAG5C,IAAI,CAAC4C,SAAS,IAAI,EAAE;MAExC,OAAO6D,OAAO;IAClB;EAAC;IAAA5E,GAAA;IAAAC,GAAA,EA1XD,SAAAA,IAAA,EAAgD;MAC5C,OAAO,EAAE;IACb;;IAEA;AACJ;AACA;EAFI;IAAAD,GAAA;IAAAC,GAAA,EAGA,SAAAA,IAAA,EAAqC;MACjC,OAAO;QACH4E,MAAM,EAAE,MAAM;QAAE;QAChBC,MAAM,EAAE,MAAM,CAAC;MACnB,CAAC;IACL;;IAEA;AACJ;AACA;EAFI;IAAA9E,GAAA;IAAAC,GAAA,EAGA,SAAAA,IAAA,EAA6B;MACzB,OAAO;QACHC,IAAI,EAAE;UACF6E,EAAE,EAAE;QACR;MACJ,CAAC;IACL;;IAEA;AACJ;AACA;AACA;AACA;EAJI;IAAA/E,GAAA;IAAAC,GAAA,EAKA,SAAAA,IAAA,EAAiD;MAC7C,OAAO,IAAI;IACf;EAAC;IAAAD,GAAA;IAAAC,GAAA,EAwDD,SAAAA,IAAA,EAAgC;MAC5B,OAAO;QACH+E,IAAI,EAAE,CAAC,GAAG;MACd,CAAC;IACL;;IAEA;AACJ;AACA;AACA;AACA;EAJI;IAAAhF,GAAA;IAAAC,GAAA,EAKA,SAAAA,IAAA,EAA4B;MACxB,OAAO;QACHgF,IAAI,EACA,6FAA6F,GAC7F,8bAA8b,GAC9b,QAAQ;QACZC,KAAK,EAAE;MACX,CAAC;IACL;EAAC;EAAA,OAAAjH,SAAA;AAAA;AAAA,IAAAkH,QAAA,GAkRUlH,SAAS;AAAAmH,OAAA,CAAA5G,OAAA,GAAA2G,QAAA"}
1
+ {"version":3,"names":["_utils","require","Paragraph","_ref","data","config","api","readOnly","_classCallCheck2","default","typography","_CSS","block","styles","settingsButton","settingsButtonActive","wrapper","onKeyUp","bind","_placeholder","placeholder","DEFAULT_PLACEHOLDER","_data","normalizeData","_element","drawView","_preserveBlank","preserveBlank","undefined","settingsButtons","alignments","ALIGNMENTS","_createClass2","key","get","text","innerHTML","_objectSpread2","set","_this","forEach","alignment","name","textAlign","classList","add","concat","remove","className","_this$_element$classL","apply","_toConsumableArray2","split","_this2","find","TextAlign","START","svg","ALIGNMENT_ICONS","start","value","e","code","textContent","div","document","createElement","contentEditable","dataset","i18n","t","addEventListener","render","renderSettings","_this3","holder","selectTypeButton","currentAlignment","setAlignment","appendChild","push","typographyForParagraph","Object","values","filter","item","component","input","option","Option","label","onclick","event","_ref2","target","setTypographyClass","merge","validate","savedData","trim","save","toolsContent","getTextAlign","includes","onPaste","detail","_this4","button","toggle","newData","export","import","br","tags","icon","title","_default","exports"],"sources":["index.ts"],"sourcesContent":["import { API, PasteEvent } from \"@editorjs/editorjs\";\nimport { Alignment, ALIGNMENTS, TextAlign, ALIGNMENT_ICONS } from \"../utils\";\nimport { HTMLPasteEventDetail } from \"@editorjs/editorjs/types/tools/paste-events\";\n\n/**\n * @typedef {object} ParagraphConfig\n * @property {string} placeholder - placeholder for the empty paragraph\n * @property {boolean} preserveBlank - Whether or not to keep blank paragraphs when saving editor data`\n */\ninterface ParagraphConfig {\n placeholder: string;\n preserveBlank: boolean;\n typography?: Typography;\n}\n/**\n * @typedef {Object} ParagraphData\n * @description Tool's input and output data format\n * @property {String} text — Paragraph's content. Can include HTML tags: <a><b><i>\n */\ninterface ParagraphData {\n text: string;\n textAlign: TextAlign;\n className?: string;\n}\n\ninterface Typography {\n [key: string]: {\n label: string;\n component: string;\n className: string;\n };\n}\n\ninterface ParagraphArgs {\n data: ParagraphData;\n config: ParagraphConfig;\n api: any;\n readOnly: boolean;\n}\nclass Paragraph {\n private readonly api: API;\n private readonly readOnly: boolean;\n private readonly _CSS: any;\n // private readonly _settings: any;\n private _data: ParagraphData;\n private readonly _element: any;\n private readonly _placeholder: string;\n private readonly _preserveBlank: boolean;\n private readonly alignments: Alignment[];\n private readonly settingsButtons: HTMLElement[];\n private readonly typography: Typography | null;\n\n /**\n * Render plugin`s main Element and fill it with saved data\n *\n * @param {object} params - constructor params\n * @param {ParagraphData} params.data - previously saved data\n * @param {ParagraphConfig} params.config - user config for Tool\n * @param {object} params.api - editor.js api\n * @param {boolean} readOnly - read only mode flag\n */\n public constructor({ data, config, api, readOnly }: ParagraphArgs) {\n this.api = api;\n this.readOnly = readOnly;\n this.typography = config.typography || null;\n this._CSS = {\n block: this.api.styles.block,\n settingsButton: this.api.styles.settingsButton,\n settingsButtonActive: this.api.styles.settingsButtonActive,\n wrapper: \"ce-paragraph\"\n };\n\n if (!this.readOnly) {\n this.onKeyUp = this.onKeyUp.bind(this);\n }\n\n /**\n * Placeholder for paragraph if it is first Block\n * @type {string}\n */\n this._placeholder = config.placeholder ? config.placeholder : Paragraph.DEFAULT_PLACEHOLDER;\n this._data = this.normalizeData(data);\n this._element = this.drawView();\n this._preserveBlank = config.preserveBlank !== undefined ? config.preserveBlank : false;\n this.settingsButtons = [];\n this.alignments = ALIGNMENTS;\n\n // Call the `data` setter, to properly render the view element.\n this.data = this._data;\n }\n\n /**\n * Default placeholder for Paragraph Tool\n *\n * @return {string}\n * @constructor\n */\n public static get DEFAULT_PLACEHOLDER(): string {\n return \"\";\n }\n\n /**\n * Enable Conversion Toolbar. Paragraph can be converted to/from other tools\n */\n public static get conversionConfig() {\n return {\n export: \"text\", // to convert Paragraph to other block, use 'text' property of saved data\n import: \"text\" // to covert other block's exported string to Paragraph, fill 'text' property of tool data\n };\n }\n\n /**\n * Sanitizer rules\n */\n public static get sanitize() {\n return {\n text: {\n br: true\n }\n };\n }\n\n /**\n * Returns true to notify the core that read-only mode is supported\n *\n * @return {boolean}\n */\n public static get isReadOnlySupported(): boolean {\n return true;\n }\n\n /**\n * Get current Tools`s data\n * @returns {ParagraphData} Current data\n * @private\n */\n public get data(): ParagraphData {\n const text = this._element.innerHTML;\n\n // this._data.text = text;\n\n return {\n ...this._data,\n text\n };\n }\n\n /**\n * Store data in plugin:\n * - at the this._data property\n * - at the HTML\n *\n * @param {ParagraphData} data — data to set\n * @private\n */\n public set data(data: ParagraphData) {\n this._data = data || ({} as ParagraphData);\n\n this._element.innerHTML = this._data.text || \"\";\n\n /**\n * Add Alignment class\n */\n this.alignments.forEach(alignment => {\n if (alignment.name === this._data.textAlign) {\n this._element.classList.add(`ce-header-text--${alignment.name}`);\n } else {\n this._element.classList.remove(`ce-header-text--${alignment.name}`);\n }\n });\n\n /**\n * Add Typography class\n */\n if (this._data.className) {\n this._element.classList.add(...this._data.className.split(\" \"));\n }\n }\n\n /**\n * Used by Editor paste handling API.\n * Provides configuration to handle P tags.\n *\n * @returns {{tags: string[]}}\n */\n public static get pasteConfig() {\n return {\n tags: [\"P\"]\n };\n }\n\n /**\n * Icon and title for displaying at the Toolbox\n *\n * @return {{icon: string, title: string}}\n */\n public static get toolbox() {\n return {\n icon:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0.2 -0.3 9 11.4\" width=\"12\" height=\"14\">\\n' +\n ' <path d=\"M0 2.77V.92A1 1 0 01.2.28C.35.1.56 0 .83 0h7.66c.28.01.48.1.63.28.14.17.21.38.21.64v1.85c0 .26-.08.48-.23.66-.15.17-.37.26-.66.26-.28 0-.5-.09-.64-.26a1 1 0 01-.21-.66V1.69H5.6v7.58h.5c.25 0 .45.08.6.23.17.16.25.35.25.6s-.08.45-.24.6a.87.87 0 01-.62.22H3.21a.87.87 0 01-.61-.22.78.78 0 01-.24-.6c0-.25.08-.44.24-.6a.85.85 0 01.61-.23h.5V1.7H1.73v1.08c0 .26-.08.48-.23.66-.15.17-.37.26-.66.26-.28 0-.5-.09-.64-.26A1 1 0 010 2.77z\"/>\\n' +\n \"</svg>\",\n title: \"Text\"\n };\n }\n\n /**\n * Get current alignment\n *\n * @returns {alignment}\n */\n public get currentAlignment(): Alignment {\n let alignment = this.alignments.find(alignment => alignment.name === this._data.textAlign);\n\n if (!alignment) {\n alignment = { name: TextAlign.START, svg: ALIGNMENT_ICONS.start };\n }\n\n return alignment;\n }\n\n /**\n * Check if text content is empty and set empty string to inner html.\n * We need this because some browsers (e.g. Safari) insert <br> into empty contentEditable elements\n *\n * @param {KeyboardEvent} e - key up event\n */\n public onKeyUp(e: KeyboardEvent): void {\n if (e.code !== \"Backspace\" && e.code !== \"Delete\") {\n return;\n }\n\n const { textContent } = this._element;\n\n if (textContent === \"\") {\n this._element.innerHTML = \"\";\n }\n }\n\n /**\n * Create Tool's view\n * @return {HTMLElement}\n * @private\n */\n public drawView(): HTMLElement {\n const div: HTMLDivElement = document.createElement(\"div\");\n div.classList.add(this._CSS.wrapper, this._CSS.block);\n // Add custom className to view.\n if (this._data.className) {\n div.classList.add(this._data.className);\n }\n div.contentEditable = \"false\";\n div.dataset[\"placeholder\"] = this.api.i18n.t(this._placeholder);\n\n if (!this.readOnly) {\n div.contentEditable = \"true\";\n div.addEventListener(\"keyup\", this.onKeyUp);\n }\n\n return div;\n }\n\n /**\n * Return Tool's view\n */\n public render(): HTMLDivElement {\n return this._element;\n }\n\n /**\n * Create Block's settings block\n */\n public renderSettings(): HTMLElement {\n const holder: HTMLDivElement = document.createElement(\"div\");\n\n // Add alignment selectors\n this.alignments.forEach(alignment => {\n const selectTypeButton: HTMLSpanElement = document.createElement(\"span\");\n\n selectTypeButton.classList.add(this._CSS.settingsButton);\n\n /**\n * Highlight current level button\n */\n if (this.currentAlignment.name === alignment.name) {\n selectTypeButton.classList.add(this._CSS.settingsButtonActive);\n }\n\n /**\n * Add SVG icon\n */\n selectTypeButton.innerHTML = alignment.svg;\n\n /**\n * Save alignment to its button\n */\n selectTypeButton.dataset[\"textAlign\"] = alignment.name;\n\n /**\n * Set up click handler\n */\n selectTypeButton.addEventListener(\"click\", () => {\n this.setAlignment(alignment);\n });\n\n /**\n * Append settings button to holder\n */\n holder.appendChild(selectTypeButton);\n\n /**\n * Save settings buttons\n */\n this.settingsButtons.push(selectTypeButton);\n });\n\n // Add `Typography` selector\n if (this.typography) {\n const typographyForParagraph = Object.values(this.typography).filter(\n item => item.component === \"p\"\n );\n\n const selectTypeButton = document.createElement(\"SELECT\") as HTMLSelectElement;\n // Add editor's default input style\n selectTypeButton.classList.add(this.api.styles.input);\n // Add typography options\n typographyForParagraph.forEach(item => {\n const option = new Option(item.label, item.className);\n\n selectTypeButton.appendChild(option);\n });\n // Add \"onclick\" handler\n selectTypeButton.onclick = event => {\n const { value } = event.target as HTMLSelectElement;\n this.setTypographyClass(value);\n };\n\n /**\n * Append settings button to holder\n */\n holder.appendChild(selectTypeButton);\n\n /**\n * Save settings buttons\n */\n this.settingsButtons.push(selectTypeButton);\n }\n\n return holder;\n }\n\n /**\n * Method that specified how to merge two Text blocks.\n * Called by Editor.js by backspace at the beginning of the Block\n * @param {ParagraphData} data\n * @public\n */\n public merge(data: ParagraphData): void {\n this.data = {\n ...this.data,\n text: this.data.text + data.text\n };\n }\n\n /**\n * Validate Paragraph block data:\n * - check for emptiness\n *\n * @param {ParagraphData} savedData — data received after saving\n * @returns {boolean} false if saved data is not correct, otherwise true\n * @public\n */\n public validate(savedData: ParagraphData): boolean {\n return !(savedData.text.trim() === \"\" && !this._preserveBlank);\n }\n\n /**\n * Extract Tool's data from the view\n * @param {HTMLDivElement} toolsContent - Paragraph tools rendered view\n * @returns {ParagraphData} - saved data\n * @public\n */\n public save(toolsContent: HTMLElement) {\n return {\n text: toolsContent.innerHTML,\n textAlign: this.getTextAlign(toolsContent.className),\n className: this.data.className\n };\n }\n\n /**\n * Extract textAlign from className\n *\n * @param {string} className - heading element className\n * @returns {TextAlign} textAlign\n */\n public getTextAlign(className: string): TextAlign {\n let textAlign = TextAlign.START;\n // Match className with alignment\n this.alignments.forEach(alignment => {\n if (className.includes(`ce-header-text--${alignment.name}`)) {\n textAlign = alignment.name;\n }\n });\n return textAlign;\n }\n\n /**\n * On paste callback fired from Editor.\n *\n * @param {PasteEvent} event - event with pasted data\n */\n public onPaste(event: PasteEvent): void {\n const detail = event.detail as HTMLPasteEventDetail;\n this.data = {\n ...this.data,\n text: detail.data.innerHTML\n };\n }\n\n /**\n * Callback for Block's settings buttons\n *\n * @param {number} alignment - level to set\n */\n public setAlignment(alignment: Alignment): void {\n this.data = {\n textAlign: alignment.name,\n text: this.data.text\n };\n\n /**\n * Highlight button by selected level\n */\n this.settingsButtons.forEach(button => {\n button.classList.toggle(\n this._CSS.settingsButtonActive,\n button.dataset[\"textAlign\"] === alignment.name\n );\n });\n }\n\n /**\n * Callback for Block's settings buttons\n *\n * @param {string} className - name of typography class\n */\n public setTypographyClass(className: string): void {\n this.data = {\n textAlign: this.data.textAlign,\n text: this.data.text,\n className: className\n };\n }\n\n /**\n * Normalize input data\n *\n * @param {HeaderData} data - saved data to process\n *\n * @returns {HeaderData}\n * @private\n */\n public normalizeData(data?: Partial<ParagraphData>): ParagraphData {\n const newData: Partial<ParagraphData> = {};\n\n if (typeof data !== \"object\") {\n data = {};\n }\n\n newData.text = data.text || \"\";\n newData.textAlign = data.textAlign || TextAlign.START;\n newData.className = data.className || \"\";\n\n return newData as ParagraphData;\n }\n}\n\nexport default Paragraph;\n"],"mappings":";;;;;;;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAGA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AACA;AAJA,IAyBMC,SAAS;EAIX;;EASA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI,SAAAA,UAAAC,IAAA,EAAmE;IAAA,IAA9CC,IAAI,GAAAD,IAAA,CAAJC,IAAI;MAAEC,MAAM,GAAAF,IAAA,CAANE,MAAM;MAAEC,GAAG,GAAAH,IAAA,CAAHG,GAAG;MAAEC,QAAQ,GAAAJ,IAAA,CAARI,QAAQ;IAAA,IAAAC,gBAAA,CAAAC,OAAA,QAAAP,SAAA;IAC5C,IAAI,CAACI,GAAG,GAAGA,GAAG;IACd,IAAI,CAACC,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACG,UAAU,GAAGL,MAAM,CAACK,UAAU,IAAI,IAAI;IAC3C,IAAI,CAACC,IAAI,GAAG;MACRC,KAAK,EAAE,IAAI,CAACN,GAAG,CAACO,MAAM,CAACD,KAAK;MAC5BE,cAAc,EAAE,IAAI,CAACR,GAAG,CAACO,MAAM,CAACC,cAAc;MAC9CC,oBAAoB,EAAE,IAAI,CAACT,GAAG,CAACO,MAAM,CAACE,oBAAoB;MAC1DC,OAAO,EAAE;IACb,CAAC;IAED,IAAI,CAAC,IAAI,CAACT,QAAQ,EAAE;MAChB,IAAI,CAACU,OAAO,GAAG,IAAI,CAACA,OAAO,CAACC,IAAI,CAAC,IAAI,CAAC;IAC1C;;IAEA;AACR;AACA;AACA;IACQ,IAAI,CAACC,YAAY,GAAGd,MAAM,CAACe,WAAW,GAAGf,MAAM,CAACe,WAAW,GAAGlB,SAAS,CAACmB,mBAAmB;IAC3F,IAAI,CAACC,KAAK,GAAG,IAAI,CAACC,aAAa,CAACnB,IAAI,CAAC;IACrC,IAAI,CAACoB,QAAQ,GAAG,IAAI,CAACC,QAAQ,CAAC,CAAC;IAC/B,IAAI,CAACC,cAAc,GAAGrB,MAAM,CAACsB,aAAa,KAAKC,SAAS,GAAGvB,MAAM,CAACsB,aAAa,GAAG,KAAK;IACvF,IAAI,CAACE,eAAe,GAAG,EAAE;IACzB,IAAI,CAACC,UAAU,GAAGC,iBAAU;;IAE5B;IACA,IAAI,CAAC3B,IAAI,GAAG,IAAI,CAACkB,KAAK;EAC1B;;EAEA;AACJ;AACA;AACA;AACA;AACA;EALI,WAAAU,aAAA,CAAAvB,OAAA,EAAAP,SAAA;IAAA+B,GAAA;IAAAC,GAAA;IAwCA;AACJ;AACA;AACA;AACA;IACI,SAAAA,IAAA,EAAiC;MAC7B,IAAMC,IAAI,GAAG,IAAI,CAACX,QAAQ,CAACY,SAAS;;MAEpC;;MAEA,WAAAC,cAAA,CAAA5B,OAAA,MAAA4B,cAAA,CAAA5B,OAAA,MACO,IAAI,CAACa,KAAK;QACba,IAAI,EAAJA;MAAI;IAEZ;;IAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,OAPI;IAAAG,GAAA,EAQA,SAAAA,IAAgBlC,IAAmB,EAAE;MAAA,IAAAmC,KAAA;MACjC,IAAI,CAACjB,KAAK,GAAGlB,IAAI,IAAK,CAAC,CAAmB;MAE1C,IAAI,CAACoB,QAAQ,CAACY,SAAS,GAAG,IAAI,CAACd,KAAK,CAACa,IAAI,IAAI,EAAE;;MAE/C;AACR;AACA;MACQ,IAAI,CAACL,UAAU,CAACU,OAAO,CAAC,UAAAC,SAAS,EAAI;QACjC,IAAIA,SAAS,CAACC,IAAI,KAAKH,KAAI,CAACjB,KAAK,CAACqB,SAAS,EAAE;UACzCJ,KAAI,CAACf,QAAQ,CAACoB,SAAS,CAACC,GAAG,oBAAAC,MAAA,CAAoBL,SAAS,CAACC,IAAI,CAAE,CAAC;QACpE,CAAC,MAAM;UACHH,KAAI,CAACf,QAAQ,CAACoB,SAAS,CAACG,MAAM,oBAAAD,MAAA,CAAoBL,SAAS,CAACC,IAAI,CAAE,CAAC;QACvE;MACJ,CAAC,CAAC;;MAEF;AACR;AACA;MACQ,IAAI,IAAI,CAACpB,KAAK,CAAC0B,SAAS,EAAE;QAAA,IAAAC,qBAAA;QACtB,CAAAA,qBAAA,OAAI,CAACzB,QAAQ,CAACoB,SAAS,EAACC,GAAG,CAAAK,KAAA,CAAAD,qBAAA,MAAAE,mBAAA,CAAA1C,OAAA,EAAI,IAAI,CAACa,KAAK,CAAC0B,SAAS,CAACI,KAAK,CAAC,GAAG,CAAC,EAAC;MACnE;IACJ;;IAEA;AACJ;AACA;AACA;AACA;AACA;EALI;IAAAnB,GAAA;IAAAC,GAAA;IA2BA;AACJ;AACA;AACA;AACA;IACI,SAAAA,IAAA,EAAyC;MAAA,IAAAmB,MAAA;MACrC,IAAIZ,SAAS,GAAG,IAAI,CAACX,UAAU,CAACwB,IAAI,CAAC,UAAAb,SAAS;QAAA,OAAIA,SAAS,CAACC,IAAI,KAAKW,MAAI,CAAC/B,KAAK,CAACqB,SAAS;MAAA,EAAC;MAE1F,IAAI,CAACF,SAAS,EAAE;QACZA,SAAS,GAAG;UAAEC,IAAI,EAAEa,gBAAS,CAACC,KAAK;UAAEC,GAAG,EAAEC,sBAAe,CAACC;QAAM,CAAC;MACrE;MAEA,OAAOlB,SAAS;IACpB;;IAEA;AACJ;AACA;AACA;AACA;AACA;EALI;IAAAR,GAAA;IAAA2B,KAAA,EAMA,SAAA3C,QAAe4C,CAAgB,EAAQ;MACnC,IAAIA,CAAC,CAACC,IAAI,KAAK,WAAW,IAAID,CAAC,CAACC,IAAI,KAAK,QAAQ,EAAE;QAC/C;MACJ;MAEA,IAAQC,WAAW,GAAK,IAAI,CAACvC,QAAQ,CAA7BuC,WAAW;MAEnB,IAAIA,WAAW,KAAK,EAAE,EAAE;QACpB,IAAI,CAACvC,QAAQ,CAACY,SAAS,GAAG,EAAE;MAChC;IACJ;;IAEA;AACJ;AACA;AACA;AACA;EAJI;IAAAH,GAAA;IAAA2B,KAAA,EAKA,SAAAnC,SAAA,EAA+B;MAC3B,IAAMuC,GAAmB,GAAGC,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;MACzDF,GAAG,CAACpB,SAAS,CAACC,GAAG,CAAC,IAAI,CAAClC,IAAI,CAACK,OAAO,EAAE,IAAI,CAACL,IAAI,CAACC,KAAK,CAAC;MACrD;MACA,IAAI,IAAI,CAACU,KAAK,CAAC0B,SAAS,EAAE;QACtBgB,GAAG,CAACpB,SAAS,CAACC,GAAG,CAAC,IAAI,CAACvB,KAAK,CAAC0B,SAAS,CAAC;MAC3C;MACAgB,GAAG,CAACG,eAAe,GAAG,OAAO;MAC7BH,GAAG,CAACI,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC9D,GAAG,CAAC+D,IAAI,CAACC,CAAC,CAAC,IAAI,CAACnD,YAAY,CAAC;MAE/D,IAAI,CAAC,IAAI,CAACZ,QAAQ,EAAE;QAChByD,GAAG,CAACG,eAAe,GAAG,MAAM;QAC5BH,GAAG,CAACO,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAACtD,OAAO,CAAC;MAC/C;MAEA,OAAO+C,GAAG;IACd;;IAEA;AACJ;AACA;EAFI;IAAA/B,GAAA;IAAA2B,KAAA,EAGA,SAAAY,OAAA,EAAgC;MAC5B,OAAO,IAAI,CAAChD,QAAQ;IACxB;;IAEA;AACJ;AACA;EAFI;IAAAS,GAAA;IAAA2B,KAAA,EAGA,SAAAa,eAAA,EAAqC;MAAA,IAAAC,MAAA;MACjC,IAAMC,MAAsB,GAAGV,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;;MAE5D;MACA,IAAI,CAACpC,UAAU,CAACU,OAAO,CAAC,UAAAC,SAAS,EAAI;QACjC,IAAMmC,gBAAiC,GAAGX,QAAQ,CAACC,aAAa,CAAC,MAAM,CAAC;QAExEU,gBAAgB,CAAChC,SAAS,CAACC,GAAG,CAAC6B,MAAI,CAAC/D,IAAI,CAACG,cAAc,CAAC;;QAExD;AACZ;AACA;QACY,IAAI4D,MAAI,CAACG,gBAAgB,CAACnC,IAAI,KAAKD,SAAS,CAACC,IAAI,EAAE;UAC/CkC,gBAAgB,CAAChC,SAAS,CAACC,GAAG,CAAC6B,MAAI,CAAC/D,IAAI,CAACI,oBAAoB,CAAC;QAClE;;QAEA;AACZ;AACA;QACY6D,gBAAgB,CAACxC,SAAS,GAAGK,SAAS,CAACgB,GAAG;;QAE1C;AACZ;AACA;QACYmB,gBAAgB,CAACR,OAAO,CAAC,WAAW,CAAC,GAAG3B,SAAS,CAACC,IAAI;;QAEtD;AACZ;AACA;QACYkC,gBAAgB,CAACL,gBAAgB,CAAC,OAAO,EAAE,YAAM;UAC7CG,MAAI,CAACI,YAAY,CAACrC,SAAS,CAAC;QAChC,CAAC,CAAC;;QAEF;AACZ;AACA;QACYkC,MAAM,CAACI,WAAW,CAACH,gBAAgB,CAAC;;QAEpC;AACZ;AACA;QACYF,MAAI,CAAC7C,eAAe,CAACmD,IAAI,CAACJ,gBAAgB,CAAC;MAC/C,CAAC,CAAC;;MAEF;MACA,IAAI,IAAI,CAAClE,UAAU,EAAE;QACjB,IAAMuE,sBAAsB,GAAGC,MAAM,CAACC,MAAM,CAAC,IAAI,CAACzE,UAAU,CAAC,CAAC0E,MAAM,CAChE,UAAAC,IAAI;UAAA,OAAIA,IAAI,CAACC,SAAS,KAAK,GAAG;QAAA,CAClC,CAAC;QAED,IAAMV,gBAAgB,GAAGX,QAAQ,CAACC,aAAa,CAAC,QAAQ,CAAsB;QAC9E;QACAU,gBAAgB,CAAChC,SAAS,CAACC,GAAG,CAAC,IAAI,CAACvC,GAAG,CAACO,MAAM,CAAC0E,KAAK,CAAC;QACrD;QACAN,sBAAsB,CAACzC,OAAO,CAAC,UAAA6C,IAAI,EAAI;UACnC,IAAMG,MAAM,GAAG,IAAIC,MAAM,CAACJ,IAAI,CAACK,KAAK,EAAEL,IAAI,CAACrC,SAAS,CAAC;UAErD4B,gBAAgB,CAACG,WAAW,CAACS,MAAM,CAAC;QACxC,CAAC,CAAC;QACF;QACAZ,gBAAgB,CAACe,OAAO,GAAG,UAAAC,KAAK,EAAI;UAChC,IAAAC,KAAA,GAAkBD,KAAK,CAACE,MAAM;YAAtBlC,KAAK,GAAAiC,KAAA,CAALjC,KAAK;UACbc,MAAI,CAACqB,kBAAkB,CAACnC,KAAK,CAAC;QAClC,CAAC;;QAED;AACZ;AACA;QACYe,MAAM,CAACI,WAAW,CAACH,gBAAgB,CAAC;;QAEpC;AACZ;AACA;QACY,IAAI,CAAC/C,eAAe,CAACmD,IAAI,CAACJ,gBAAgB,CAAC;MAC/C;MAEA,OAAOD,MAAM;IACjB;;IAEA;AACJ;AACA;AACA;AACA;AACA;EALI;IAAA1C,GAAA;IAAA2B,KAAA,EAMA,SAAAoC,MAAa5F,IAAmB,EAAQ;MACpC,IAAI,CAACA,IAAI,OAAAiC,cAAA,CAAA5B,OAAA,MAAA4B,cAAA,CAAA5B,OAAA,MACF,IAAI,CAACL,IAAI;QACZ+B,IAAI,EAAE,IAAI,CAAC/B,IAAI,CAAC+B,IAAI,GAAG/B,IAAI,CAAC+B;MAAI,EACnC;IACL;;IAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EAPI;IAAAF,GAAA;IAAA2B,KAAA,EAQA,SAAAqC,SAAgBC,SAAwB,EAAW;MAC/C,OAAO,EAAEA,SAAS,CAAC/D,IAAI,CAACgE,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAACzE,cAAc,CAAC;IAClE;;IAEA;AACJ;AACA;AACA;AACA;AACA;EALI;IAAAO,GAAA;IAAA2B,KAAA,EAMA,SAAAwC,KAAYC,YAAyB,EAAE;MACnC,OAAO;QACHlE,IAAI,EAAEkE,YAAY,CAACjE,SAAS;QAC5BO,SAAS,EAAE,IAAI,CAAC2D,YAAY,CAACD,YAAY,CAACrD,SAAS,CAAC;QACpDA,SAAS,EAAE,IAAI,CAAC5C,IAAI,CAAC4C;MACzB,CAAC;IACL;;IAEA;AACJ;AACA;AACA;AACA;AACA;EALI;IAAAf,GAAA;IAAA2B,KAAA,EAMA,SAAA0C,aAAoBtD,SAAiB,EAAa;MAC9C,IAAIL,SAAS,GAAGY,gBAAS,CAACC,KAAK;MAC/B;MACA,IAAI,CAAC1B,UAAU,CAACU,OAAO,CAAC,UAAAC,SAAS,EAAI;QACjC,IAAIO,SAAS,CAACuD,QAAQ,oBAAAzD,MAAA,CAAoBL,SAAS,CAACC,IAAI,CAAE,CAAC,EAAE;UACzDC,SAAS,GAAGF,SAAS,CAACC,IAAI;QAC9B;MACJ,CAAC,CAAC;MACF,OAAOC,SAAS;IACpB;;IAEA;AACJ;AACA;AACA;AACA;EAJI;IAAAV,GAAA;IAAA2B,KAAA,EAKA,SAAA4C,QAAeZ,KAAiB,EAAQ;MACpC,IAAMa,MAAM,GAAGb,KAAK,CAACa,MAA8B;MACnD,IAAI,CAACrG,IAAI,OAAAiC,cAAA,CAAA5B,OAAA,MAAA4B,cAAA,CAAA5B,OAAA,MACF,IAAI,CAACL,IAAI;QACZ+B,IAAI,EAAEsE,MAAM,CAACrG,IAAI,CAACgC;MAAS,EAC9B;IACL;;IAEA;AACJ;AACA;AACA;AACA;EAJI;IAAAH,GAAA;IAAA2B,KAAA,EAKA,SAAAkB,aAAoBrC,SAAoB,EAAQ;MAAA,IAAAiE,MAAA;MAC5C,IAAI,CAACtG,IAAI,GAAG;QACRuC,SAAS,EAAEF,SAAS,CAACC,IAAI;QACzBP,IAAI,EAAE,IAAI,CAAC/B,IAAI,CAAC+B;MACpB,CAAC;;MAED;AACR;AACA;MACQ,IAAI,CAACN,eAAe,CAACW,OAAO,CAAC,UAAAmE,MAAM,EAAI;QACnCA,MAAM,CAAC/D,SAAS,CAACgE,MAAM,CACnBF,MAAI,CAAC/F,IAAI,CAACI,oBAAoB,EAC9B4F,MAAM,CAACvC,OAAO,CAAC,WAAW,CAAC,KAAK3B,SAAS,CAACC,IAC9C,CAAC;MACL,CAAC,CAAC;IACN;;IAEA;AACJ;AACA;AACA;AACA;EAJI;IAAAT,GAAA;IAAA2B,KAAA,EAKA,SAAAmC,mBAA0B/C,SAAiB,EAAQ;MAC/C,IAAI,CAAC5C,IAAI,GAAG;QACRuC,SAAS,EAAE,IAAI,CAACvC,IAAI,CAACuC,SAAS;QAC9BR,IAAI,EAAE,IAAI,CAAC/B,IAAI,CAAC+B,IAAI;QACpBa,SAAS,EAAEA;MACf,CAAC;IACL;;IAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EAPI;IAAAf,GAAA;IAAA2B,KAAA,EAQA,SAAArC,cAAqBnB,IAA6B,EAAiB;MAC/D,IAAMyG,OAA+B,GAAG,CAAC,CAAC;MAE1C,IAAI,OAAOzG,IAAI,KAAK,QAAQ,EAAE;QAC1BA,IAAI,GAAG,CAAC,CAAC;MACb;MAEAyG,OAAO,CAAC1E,IAAI,GAAG/B,IAAI,CAAC+B,IAAI,IAAI,EAAE;MAC9B0E,OAAO,CAAClE,SAAS,GAAGvC,IAAI,CAACuC,SAAS,IAAIY,gBAAS,CAACC,KAAK;MACrDqD,OAAO,CAAC7D,SAAS,GAAG5C,IAAI,CAAC4C,SAAS,IAAI,EAAE;MAExC,OAAO6D,OAAO;IAClB;EAAC;IAAA5E,GAAA;IAAAC,GAAA,EA1XD,SAAAA,IAAA,EAAgD;MAC5C,OAAO,EAAE;IACb;;IAEA;AACJ;AACA;EAFI;IAAAD,GAAA;IAAAC,GAAA,EAGA,SAAAA,IAAA,EAAqC;MACjC,OAAO;QACH4E,MAAM,EAAE,MAAM;QAAE;QAChBC,MAAM,EAAE,MAAM,CAAC;MACnB,CAAC;IACL;;IAEA;AACJ;AACA;EAFI;IAAA9E,GAAA;IAAAC,GAAA,EAGA,SAAAA,IAAA,EAA6B;MACzB,OAAO;QACHC,IAAI,EAAE;UACF6E,EAAE,EAAE;QACR;MACJ,CAAC;IACL;;IAEA;AACJ;AACA;AACA;AACA;EAJI;IAAA/E,GAAA;IAAAC,GAAA,EAKA,SAAAA,IAAA,EAAiD;MAC7C,OAAO,IAAI;IACf;EAAC;IAAAD,GAAA;IAAAC,GAAA,EAwDD,SAAAA,IAAA,EAAgC;MAC5B,OAAO;QACH+E,IAAI,EAAE,CAAC,GAAG;MACd,CAAC;IACL;;IAEA;AACJ;AACA;AACA;AACA;EAJI;IAAAhF,GAAA;IAAAC,GAAA,EAKA,SAAAA,IAAA,EAA4B;MACxB,OAAO;QACHgF,IAAI,EACA,6FAA6F,GAC7F,8bAA8b,GAC9b,QAAQ;QACZC,KAAK,EAAE;MACX,CAAC;IACL;EAAC;AAAA;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAA5G,OAAA,GAkRUP,SAAS","ignoreList":[]}
@@ -29,7 +29,7 @@ var TextColorTool = /*#__PURE__*/function () {
29
29
  colorBoxActive: "ce-text-color-tool__color-box--active"
30
30
  };
31
31
  }
32
- (0, _createClass2.default)(TextColorTool, [{
32
+ return (0, _createClass2.default)(TextColorTool, [{
33
33
  key: "state",
34
34
  get: function get() {
35
35
  return this._state;
@@ -229,9 +229,7 @@ var TextColorTool = /*#__PURE__*/function () {
229
229
  };
230
230
  }
231
231
  }]);
232
- return TextColorTool;
233
232
  }();
234
- var _default = TextColorTool;
235
- exports.default = _default;
233
+ var _default = exports.default = TextColorTool;
236
234
 
237
235
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["COLOR_TOOL_CLASS","TextColorTool","_ref","api","config","_classCallCheck2","default","button","colorPicker","_state","tag","color","class","themeColors","_CSS","colorBox","colorBoxActive","_createClass2","key","get","set","state","classList","toggle","styles","inlineToolButtonActive","value","render","document","createElement","type","innerHTML","add","inlineToolButton","renderActions","_this","forEach","style","backgroundColor","addEventListener","childNodes","node","contains","remove","appendChild","surround","range","unwrap","wrap","selectedText","extractContents","mark","insertNode","selection","expandToTag","findParentTag","text","showActions","_this2","onclick","hidden","hideActions","onchange","checkState","convertToHex","rgb","match","hexR","parseInt","toString","hexG","hexB","length","clear","span","el","_default","exports"],"sources":["index.ts"],"sourcesContent":["import { API } from \"@editorjs/editorjs\";\n\nconst COLOR_TOOL_CLASS = \"cdx-text-color\";\n\ninterface Config {\n themeColors: string[];\n}\n\ninterface TextColorToolParams {\n api: API;\n config: Config;\n}\n\ninterface SanitizeResultSpanResult {\n class?: string;\n style?: CSSStyleDeclaration;\n}\ninterface SanitizeResult {\n span: (element: HTMLElement) => SanitizeResultSpanResult;\n}\n\nclass TextColorTool {\n private _state: boolean;\n private color: string;\n private readonly api: API;\n private readonly tag: string;\n private readonly class: string;\n private colorPicker: HTMLDivElement | null;\n private button: HTMLButtonElement | null;\n private readonly config: Config;\n private readonly _CSS: any;\n\n constructor({ api, config }: TextColorToolParams) {\n this.api = api;\n this.button = null;\n this.colorPicker = null;\n this._state = false;\n this.tag = \"SPAN\";\n this.color = \"red\";\n this.class = COLOR_TOOL_CLASS;\n this.config = config || { themeColors: [\"#44bd32\"] };\n this._CSS = {\n colorPicker: \"ce-text-color-tool\",\n colorBox: \"ce-text-color-tool__color-box\",\n colorBoxActive: \"ce-text-color-tool__color-box--active\"\n };\n }\n\n static get isInline(): boolean {\n return true;\n }\n\n /**\n * Sanitize method returns rules to let Editor know which HTML tags it should respect.\n * @returns {object} sanitizer configuration.\n * https://editorjs.io/sanitizer\n */\n static get sanitize(): SanitizeResult {\n // Block Tools are not connected with Inline ones,\n // so markup added by Inline Tool will be removed on pasting or on saving.\n // We need this config so that `class` & `style` attributes will remain intact for \"span\".\n return {\n /**\n * TODO: figure out the element type\n */\n span: (el: HTMLElement) => {\n // Respect `class` and `style` attributes if this condition is meet.\n if (el.classList.contains(COLOR_TOOL_CLASS)) {\n return {\n class: COLOR_TOOL_CLASS,\n style: el.style\n };\n }\n return {};\n }\n };\n }\n\n get state(): boolean {\n return this._state;\n }\n\n set state(state) {\n this._state = state;\n if (!this.button) {\n return;\n }\n this.button.classList.toggle(this.api.styles.inlineToolButtonActive, state);\n }\n /**\n * Render method must return HTML element of the button for Inline Toolbar.\n */\n public render(): HTMLButtonElement {\n this.button = document.createElement(\"button\");\n this.button.type = \"button\";\n this.button.innerHTML =\n '<svg width=\"20\" height=\"18\"><path d=\"M10.458 12.04l2.919 1.686-.781 1.417-.984-.03-.974 1.687H8.674l1.49-2.583-.508-.775.802-1.401zm.546-.952l3.624-6.327a1.597 1.597 0 0 1 2.182-.59 1.632 1.632 0 0 1 .615 2.201l-3.519 6.391-2.902-1.675zm-7.73 3.467h3.465a1.123 1.123 0 1 1 0 2.247H3.273a1.123 1.123 0 1 1 0-2.247z\"/></svg>';\n this.button.classList.add(this.api.styles.inlineToolButton);\n\n return this.button;\n }\n\n /**\n * Input for the link\n */\n public renderActions(): HTMLElement {\n // Create action element\n this.colorPicker = document.createElement(\"div\");\n // Add element properties\n this.colorPicker.classList.add(this._CSS.colorPicker);\n\n this.config.themeColors.forEach(color => {\n // create element\n const colorBox = document.createElement(\"button\");\n // add properties\n colorBox.style.backgroundColor = color;\n colorBox.classList.add(this._CSS.colorBox);\n\n colorBox.addEventListener(\"click\", () => {\n if (this.color === color) {\n // reset the color\n this.color = \"unset\";\n } else {\n // set color\n this.color = color;\n }\n\n if (this.colorPicker) {\n /**\n * TODO @ts-refactor\n * TS Complains there is no classList on child node.\n */\n this.colorPicker.childNodes.forEach((node: any) => {\n if (node.classList.contains(this._CSS.colorBoxActive)) {\n // remove active class\n node.classList.remove(this._CSS.colorBoxActive);\n }\n });\n }\n // add active class\n colorBox.classList.add(this._CSS.colorBoxActive);\n });\n if (!this.colorPicker) {\n return;\n }\n // save element\n this.colorPicker.appendChild(colorBox);\n });\n\n // Return element\n return this.colorPicker;\n }\n\n /**\n * Finally, when button is pressed Editor calls\n * surround method of the tool with Range object as an argument.\n */\n public surround(range: Range): void {\n if (this.state) {\n this.unwrap(range);\n return;\n }\n\n this.wrap(range);\n }\n\n public wrap(range: Range): void {\n const selectedText = range.extractContents();\n const mark = document.createElement(this.tag);\n\n mark.classList.add(this.class);\n\n mark.appendChild(selectedText);\n range.insertNode(mark);\n\n this.api.selection.expandToTag(mark);\n }\n\n public unwrap(range: Range): void {\n const mark = this.api.selection.findParentTag(this.tag, this.class);\n const text = range.extractContents();\n\n if (mark) {\n mark.remove();\n }\n\n range.insertNode(text);\n }\n\n public showActions(mark: HTMLElement): void {\n if (!this.colorPicker) {\n return;\n }\n this.colorPicker.onclick = () => {\n mark.style.color = this.color;\n };\n this.colorPicker.hidden = false;\n }\n\n public hideActions(): void {\n if (!this.colorPicker) {\n return;\n }\n this.colorPicker.onchange = null;\n this.colorPicker.hidden = true;\n }\n\n /**\n * CheckState method of each Inline Tool is called by Editor with current `Selection`\n * when user selects some text\n */\n public checkState(): void {\n const mark = this.api.selection.findParentTag(this.tag);\n\n this.state = !!mark;\n\n if (!!mark) {\n this.showActions(mark);\n } else {\n this.hideActions();\n }\n }\n\n public convertToHex(color: string): string {\n const rgb = color.match(/(\\d+)/g);\n if (!rgb) {\n return \"\";\n }\n\n let hexR = parseInt(rgb[0]).toString(16);\n let hexG = parseInt(rgb[1]).toString(16);\n let hexB = parseInt(rgb[2]).toString(16);\n\n hexR = hexR.length === 1 ? \"0\" + hexR : hexR;\n hexG = hexG.length === 1 ? \"0\" + hexG : hexG;\n hexB = hexB.length === 1 ? \"0\" + hexB : hexB;\n\n return \"#\" + hexR + hexG + hexB;\n }\n\n public clear(): void {\n this.hideActions();\n }\n}\n\nexport default TextColorTool;\n"],"mappings":"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"}
1
+ {"version":3,"names":["COLOR_TOOL_CLASS","TextColorTool","_ref","api","config","_classCallCheck2","default","button","colorPicker","_state","tag","color","class","themeColors","_CSS","colorBox","colorBoxActive","_createClass2","key","get","set","state","classList","toggle","styles","inlineToolButtonActive","value","render","document","createElement","type","innerHTML","add","inlineToolButton","renderActions","_this","forEach","style","backgroundColor","addEventListener","childNodes","node","contains","remove","appendChild","surround","range","unwrap","wrap","selectedText","extractContents","mark","insertNode","selection","expandToTag","findParentTag","text","showActions","_this2","onclick","hidden","hideActions","onchange","checkState","convertToHex","rgb","match","hexR","parseInt","toString","hexG","hexB","length","clear","span","el","_default","exports"],"sources":["index.ts"],"sourcesContent":["import { API } from \"@editorjs/editorjs\";\n\nconst COLOR_TOOL_CLASS = \"cdx-text-color\";\n\ninterface Config {\n themeColors: string[];\n}\n\ninterface TextColorToolParams {\n api: API;\n config: Config;\n}\n\ninterface SanitizeResultSpanResult {\n class?: string;\n style?: CSSStyleDeclaration;\n}\ninterface SanitizeResult {\n span: (element: HTMLElement) => SanitizeResultSpanResult;\n}\n\nclass TextColorTool {\n private _state: boolean;\n private color: string;\n private readonly api: API;\n private readonly tag: string;\n private readonly class: string;\n private colorPicker: HTMLDivElement | null;\n private button: HTMLButtonElement | null;\n private readonly config: Config;\n private readonly _CSS: any;\n\n constructor({ api, config }: TextColorToolParams) {\n this.api = api;\n this.button = null;\n this.colorPicker = null;\n this._state = false;\n this.tag = \"SPAN\";\n this.color = \"red\";\n this.class = COLOR_TOOL_CLASS;\n this.config = config || { themeColors: [\"#44bd32\"] };\n this._CSS = {\n colorPicker: \"ce-text-color-tool\",\n colorBox: \"ce-text-color-tool__color-box\",\n colorBoxActive: \"ce-text-color-tool__color-box--active\"\n };\n }\n\n static get isInline(): boolean {\n return true;\n }\n\n /**\n * Sanitize method returns rules to let Editor know which HTML tags it should respect.\n * @returns {object} sanitizer configuration.\n * https://editorjs.io/sanitizer\n */\n static get sanitize(): SanitizeResult {\n // Block Tools are not connected with Inline ones,\n // so markup added by Inline Tool will be removed on pasting or on saving.\n // We need this config so that `class` & `style` attributes will remain intact for \"span\".\n return {\n /**\n * TODO: figure out the element type\n */\n span: (el: HTMLElement) => {\n // Respect `class` and `style` attributes if this condition is meet.\n if (el.classList.contains(COLOR_TOOL_CLASS)) {\n return {\n class: COLOR_TOOL_CLASS,\n style: el.style\n };\n }\n return {};\n }\n };\n }\n\n get state(): boolean {\n return this._state;\n }\n\n set state(state) {\n this._state = state;\n if (!this.button) {\n return;\n }\n this.button.classList.toggle(this.api.styles.inlineToolButtonActive, state);\n }\n /**\n * Render method must return HTML element of the button for Inline Toolbar.\n */\n public render(): HTMLButtonElement {\n this.button = document.createElement(\"button\");\n this.button.type = \"button\";\n this.button.innerHTML =\n '<svg width=\"20\" height=\"18\"><path d=\"M10.458 12.04l2.919 1.686-.781 1.417-.984-.03-.974 1.687H8.674l1.49-2.583-.508-.775.802-1.401zm.546-.952l3.624-6.327a1.597 1.597 0 0 1 2.182-.59 1.632 1.632 0 0 1 .615 2.201l-3.519 6.391-2.902-1.675zm-7.73 3.467h3.465a1.123 1.123 0 1 1 0 2.247H3.273a1.123 1.123 0 1 1 0-2.247z\"/></svg>';\n this.button.classList.add(this.api.styles.inlineToolButton);\n\n return this.button;\n }\n\n /**\n * Input for the link\n */\n public renderActions(): HTMLElement {\n // Create action element\n this.colorPicker = document.createElement(\"div\");\n // Add element properties\n this.colorPicker.classList.add(this._CSS.colorPicker);\n\n this.config.themeColors.forEach(color => {\n // create element\n const colorBox = document.createElement(\"button\");\n // add properties\n colorBox.style.backgroundColor = color;\n colorBox.classList.add(this._CSS.colorBox);\n\n colorBox.addEventListener(\"click\", () => {\n if (this.color === color) {\n // reset the color\n this.color = \"unset\";\n } else {\n // set color\n this.color = color;\n }\n\n if (this.colorPicker) {\n /**\n * TODO @ts-refactor\n * TS Complains there is no classList on child node.\n */\n this.colorPicker.childNodes.forEach((node: any) => {\n if (node.classList.contains(this._CSS.colorBoxActive)) {\n // remove active class\n node.classList.remove(this._CSS.colorBoxActive);\n }\n });\n }\n // add active class\n colorBox.classList.add(this._CSS.colorBoxActive);\n });\n if (!this.colorPicker) {\n return;\n }\n // save element\n this.colorPicker.appendChild(colorBox);\n });\n\n // Return element\n return this.colorPicker;\n }\n\n /**\n * Finally, when button is pressed Editor calls\n * surround method of the tool with Range object as an argument.\n */\n public surround(range: Range): void {\n if (this.state) {\n this.unwrap(range);\n return;\n }\n\n this.wrap(range);\n }\n\n public wrap(range: Range): void {\n const selectedText = range.extractContents();\n const mark = document.createElement(this.tag);\n\n mark.classList.add(this.class);\n\n mark.appendChild(selectedText);\n range.insertNode(mark);\n\n this.api.selection.expandToTag(mark);\n }\n\n public unwrap(range: Range): void {\n const mark = this.api.selection.findParentTag(this.tag, this.class);\n const text = range.extractContents();\n\n if (mark) {\n mark.remove();\n }\n\n range.insertNode(text);\n }\n\n public showActions(mark: HTMLElement): void {\n if (!this.colorPicker) {\n return;\n }\n this.colorPicker.onclick = () => {\n mark.style.color = this.color;\n };\n this.colorPicker.hidden = false;\n }\n\n public hideActions(): void {\n if (!this.colorPicker) {\n return;\n }\n this.colorPicker.onchange = null;\n this.colorPicker.hidden = true;\n }\n\n /**\n * CheckState method of each Inline Tool is called by Editor with current `Selection`\n * when user selects some text\n */\n public checkState(): void {\n const mark = this.api.selection.findParentTag(this.tag);\n\n this.state = !!mark;\n\n if (!!mark) {\n this.showActions(mark);\n } else {\n this.hideActions();\n }\n }\n\n public convertToHex(color: string): string {\n const rgb = color.match(/(\\d+)/g);\n if (!rgb) {\n return \"\";\n }\n\n let hexR = parseInt(rgb[0]).toString(16);\n let hexG = parseInt(rgb[1]).toString(16);\n let hexB = parseInt(rgb[2]).toString(16);\n\n hexR = hexR.length === 1 ? \"0\" + hexR : hexR;\n hexG = hexG.length === 1 ? \"0\" + hexG : hexG;\n hexB = hexB.length === 1 ? \"0\" + hexB : hexB;\n\n return \"#\" + hexR + hexG + hexB;\n }\n\n public clear(): void {\n this.hideActions();\n }\n}\n\nexport default TextColorTool;\n"],"mappings":"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","ignoreList":[]}
@@ -4,21 +4,19 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.TextAlign = exports.ALIGNMENT_ICONS = exports.ALIGNMENTS = void 0;
7
- var TextAlign = /*#__PURE__*/function (TextAlign) {
7
+ var TextAlign = exports.TextAlign = /*#__PURE__*/function (TextAlign) {
8
8
  TextAlign["START"] = "start";
9
9
  TextAlign["END"] = "end";
10
10
  TextAlign["CENTER"] = "center";
11
11
  return TextAlign;
12
12
  }({});
13
- exports.TextAlign = TextAlign;
14
- var ALIGNMENT_ICONS = {
13
+ var ALIGNMENT_ICONS = exports.ALIGNMENT_ICONS = {
15
14
  start: '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24">\n' + ' <path fill="none" d="M0 0h24v24H0V0z"/>\n' + " <g>\n" + ' <path fill="currentColor" d="M14 15H4c-.55 0-1 .45-1 1s.45 1 1 1h10c.55 0 1-.45 1-1s-.45-1-1-1zm0-8H4c-.55 0-1 .45-1 1s.45 1 1 1h10c.55 0 1-.45 1-1s-.45-1-1-1zM4 13h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm0 8h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zM3 4c0 .55.45 1 1 1h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1z"/>\n' + " </g>\n" + "</svg>",
16
15
  end: '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24">\n' + ' <path fill="none" d="M0 0h24v24H0V0z"/>\n' + " <g>\n" + ' <path fill="currentColor" d="M4 21h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm6-4h10c.55 0 1-.45 1-1s-.45-1-1-1H10c-.55 0-1 .45-1 1s.45 1 1 1zm-6-4h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm6-4h10c.55 0 1-.45 1-1s-.45-1-1-1H10c-.55 0-1 .45-1 1s.45 1 1 1zM3 4c0 .55.45 1 1 1h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1z"/>\n' + " </g>\n" + "</svg>",
17
16
  center: '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24">\n' + ' <path fill="none" d="M0 0h24v24H0V0z"/>\n' + " <g>\n" + ' <path fill="currentColor" d="M7 16c0 .55.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1zm-3 5h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm0-8h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm3-5c0 .55.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1zM3 4c0 .55.45 1 1 1h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1z"/>\n' + " </g>\n" + "</svg>",
18
17
  justify: '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24">\n' + ' <path fill="none" d="M0 0h24v24H0V0z"/>\n' + " <g>\n" + ' <path fill="currentColor" d="M4 21h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm0-4h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm0-4h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm0-4h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zM3 4c0 .55.45 1 1 1h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1z"/>\n' + " </g>\n" + "</svg>"
19
18
  };
20
- exports.ALIGNMENT_ICONS = ALIGNMENT_ICONS;
21
- var ALIGNMENTS = [{
19
+ var ALIGNMENTS = exports.ALIGNMENTS = [{
22
20
  name: TextAlign.START,
23
21
  svg: ALIGNMENT_ICONS.start
24
22
  }, {
@@ -28,6 +26,5 @@ var ALIGNMENTS = [{
28
26
  name: TextAlign.END,
29
27
  svg: ALIGNMENT_ICONS.end
30
28
  }];
31
- exports.ALIGNMENTS = ALIGNMENTS;
32
29
 
33
30
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["TextAlign","exports","ALIGNMENT_ICONS","start","end","center","justify","ALIGNMENTS","name","START","svg","CENTER","END"],"sources":["utils.ts"],"sourcesContent":["export enum TextAlign {\n START = \"start\",\n END = \"end\",\n CENTER = \"center\"\n}\n\nexport type Alignment = {\n name: TextAlign;\n svg: string;\n};\n\nexport const ALIGNMENT_ICONS = {\n start:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\">\\n' +\n ' <path fill=\"none\" d=\"M0 0h24v24H0V0z\"/>\\n' +\n \" <g>\\n\" +\n ' <path fill=\"currentColor\" d=\"M14 15H4c-.55 0-1 .45-1 1s.45 1 1 1h10c.55 0 1-.45 1-1s-.45-1-1-1zm0-8H4c-.55 0-1 .45-1 1s.45 1 1 1h10c.55 0 1-.45 1-1s-.45-1-1-1zM4 13h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm0 8h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zM3 4c0 .55.45 1 1 1h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1z\"/>\\n' +\n \" </g>\\n\" +\n \"</svg>\",\n end:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\">\\n' +\n ' <path fill=\"none\" d=\"M0 0h24v24H0V0z\"/>\\n' +\n \" <g>\\n\" +\n ' <path fill=\"currentColor\" d=\"M4 21h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm6-4h10c.55 0 1-.45 1-1s-.45-1-1-1H10c-.55 0-1 .45-1 1s.45 1 1 1zm-6-4h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm6-4h10c.55 0 1-.45 1-1s-.45-1-1-1H10c-.55 0-1 .45-1 1s.45 1 1 1zM3 4c0 .55.45 1 1 1h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1z\"/>\\n' +\n \" </g>\\n\" +\n \"</svg>\",\n center:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\">\\n' +\n ' <path fill=\"none\" d=\"M0 0h24v24H0V0z\"/>\\n' +\n \" <g>\\n\" +\n ' <path fill=\"currentColor\" d=\"M7 16c0 .55.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1zm-3 5h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm0-8h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm3-5c0 .55.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1zM3 4c0 .55.45 1 1 1h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1z\"/>\\n' +\n \" </g>\\n\" +\n \"</svg>\",\n justify:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\">\\n' +\n ' <path fill=\"none\" d=\"M0 0h24v24H0V0z\"/>\\n' +\n \" <g>\\n\" +\n ' <path fill=\"currentColor\" d=\"M4 21h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm0-4h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm0-4h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm0-4h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zM3 4c0 .55.45 1 1 1h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1z\"/>\\n' +\n \" </g>\\n\" +\n \"</svg>\"\n};\n\nexport const ALIGNMENTS = [\n {\n name: TextAlign.START,\n svg: ALIGNMENT_ICONS.start\n },\n {\n name: TextAlign.CENTER,\n svg: ALIGNMENT_ICONS.center\n },\n {\n name: TextAlign.END,\n svg: ALIGNMENT_ICONS.end\n }\n];\n"],"mappings":";;;;;;IAAYA,SAAS,0BAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAAA,OAATA,SAAS;AAAA;AAAAC,OAAA,CAAAD,SAAA,GAAAA,SAAA;AAWd,IAAME,eAAe,GAAG;EAC3BC,KAAK,EACD,mEAAmE,GACnE,6CAA6C,GAC7C,SAAS,GACT,gXAAgX,GAChX,UAAU,GACV,QAAQ;EACZC,GAAG,EACC,mEAAmE,GACnE,6CAA6C,GAC7C,SAAS,GACT,iXAAiX,GACjX,UAAU,GACV,QAAQ;EACZC,MAAM,EACF,mEAAmE,GACnE,6CAA6C,GAC7C,SAAS,GACT,uXAAuX,GACvX,UAAU,GACV,QAAQ;EACZC,OAAO,EACH,mEAAmE,GACnE,6CAA6C,GAC7C,SAAS,GACT,8WAA8W,GAC9W,UAAU,GACV;AACR,CAAC;AAACL,OAAA,CAAAC,eAAA,GAAAA,eAAA;AAEK,IAAMK,UAAU,GAAG,CACtB;EACIC,IAAI,EAAER,SAAS,CAACS,KAAK;EACrBC,GAAG,EAAER,eAAe,CAACC;AACzB,CAAC,EACD;EACIK,IAAI,EAAER,SAAS,CAACW,MAAM;EACtBD,GAAG,EAAER,eAAe,CAACG;AACzB,CAAC,EACD;EACIG,IAAI,EAAER,SAAS,CAACY,GAAG;EACnBF,GAAG,EAAER,eAAe,CAACE;AACzB,CAAC,CACJ;AAACH,OAAA,CAAAM,UAAA,GAAAA,UAAA"}
1
+ {"version":3,"names":["TextAlign","exports","ALIGNMENT_ICONS","start","end","center","justify","ALIGNMENTS","name","START","svg","CENTER","END"],"sources":["utils.ts"],"sourcesContent":["export enum TextAlign {\n START = \"start\",\n END = \"end\",\n CENTER = \"center\"\n}\n\nexport type Alignment = {\n name: TextAlign;\n svg: string;\n};\n\nexport const ALIGNMENT_ICONS = {\n start:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\">\\n' +\n ' <path fill=\"none\" d=\"M0 0h24v24H0V0z\"/>\\n' +\n \" <g>\\n\" +\n ' <path fill=\"currentColor\" d=\"M14 15H4c-.55 0-1 .45-1 1s.45 1 1 1h10c.55 0 1-.45 1-1s-.45-1-1-1zm0-8H4c-.55 0-1 .45-1 1s.45 1 1 1h10c.55 0 1-.45 1-1s-.45-1-1-1zM4 13h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm0 8h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zM3 4c0 .55.45 1 1 1h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1z\"/>\\n' +\n \" </g>\\n\" +\n \"</svg>\",\n end:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\">\\n' +\n ' <path fill=\"none\" d=\"M0 0h24v24H0V0z\"/>\\n' +\n \" <g>\\n\" +\n ' <path fill=\"currentColor\" d=\"M4 21h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm6-4h10c.55 0 1-.45 1-1s-.45-1-1-1H10c-.55 0-1 .45-1 1s.45 1 1 1zm-6-4h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm6-4h10c.55 0 1-.45 1-1s-.45-1-1-1H10c-.55 0-1 .45-1 1s.45 1 1 1zM3 4c0 .55.45 1 1 1h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1z\"/>\\n' +\n \" </g>\\n\" +\n \"</svg>\",\n center:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\">\\n' +\n ' <path fill=\"none\" d=\"M0 0h24v24H0V0z\"/>\\n' +\n \" <g>\\n\" +\n ' <path fill=\"currentColor\" d=\"M7 16c0 .55.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1zm-3 5h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm0-8h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm3-5c0 .55.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1zM3 4c0 .55.45 1 1 1h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1z\"/>\\n' +\n \" </g>\\n\" +\n \"</svg>\",\n justify:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\">\\n' +\n ' <path fill=\"none\" d=\"M0 0h24v24H0V0z\"/>\\n' +\n \" <g>\\n\" +\n ' <path fill=\"currentColor\" d=\"M4 21h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm0-4h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm0-4h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm0-4h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zM3 4c0 .55.45 1 1 1h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1z\"/>\\n' +\n \" </g>\\n\" +\n \"</svg>\"\n};\n\nexport const ALIGNMENTS = [\n {\n name: TextAlign.START,\n svg: ALIGNMENT_ICONS.start\n },\n {\n name: TextAlign.CENTER,\n svg: ALIGNMENT_ICONS.center\n },\n {\n name: TextAlign.END,\n svg: ALIGNMENT_ICONS.end\n }\n];\n"],"mappings":";;;;;;IAAYA,SAAS,GAAAC,OAAA,CAAAD,SAAA,0BAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAAA,OAATA,SAAS;AAAA;AAWd,IAAME,eAAe,GAAAD,OAAA,CAAAC,eAAA,GAAG;EAC3BC,KAAK,EACD,mEAAmE,GACnE,6CAA6C,GAC7C,SAAS,GACT,gXAAgX,GAChX,UAAU,GACV,QAAQ;EACZC,GAAG,EACC,mEAAmE,GACnE,6CAA6C,GAC7C,SAAS,GACT,iXAAiX,GACjX,UAAU,GACV,QAAQ;EACZC,MAAM,EACF,mEAAmE,GACnE,6CAA6C,GAC7C,SAAS,GACT,uXAAuX,GACvX,UAAU,GACV,QAAQ;EACZC,OAAO,EACH,mEAAmE,GACnE,6CAA6C,GAC7C,SAAS,GACT,8WAA8W,GAC9W,UAAU,GACV;AACR,CAAC;AAEM,IAAMC,UAAU,GAAAN,OAAA,CAAAM,UAAA,GAAG,CACtB;EACIC,IAAI,EAAER,SAAS,CAACS,KAAK;EACrBC,GAAG,EAAER,eAAe,CAACC;AACzB,CAAC,EACD;EACIK,IAAI,EAAER,SAAS,CAACW,MAAM;EACtBD,GAAG,EAAER,eAAe,CAACG;AACzB,CAAC,EACD;EACIG,IAAI,EAAER,SAAS,CAACY,GAAG;EACnBF,GAAG,EAAER,eAAe,CAACE;AACzB,CAAC,CACJ","ignoreList":[]}
@@ -1,6 +1,6 @@
1
- /// <reference types="react" />
1
+ import React from "react";
2
2
  interface RoutesProps {
3
3
  routes: JSX.Element[];
4
4
  }
5
- export declare const Routes: (props: RoutesProps) => JSX.Element;
5
+ export declare const Routes: (props: RoutesProps) => React.JSX.Element;
6
6
  export {};
@@ -9,7 +9,7 @@ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers
9
9
  var _react = _interopRequireDefault(require("react"));
10
10
  var _plugins = require("@webiny/plugins");
11
11
  var _reactRouter = require("@webiny/react-router");
12
- var Routes = function Routes(props) {
12
+ var Routes = exports.Routes = function Routes(props) {
13
13
  var routes = [].concat((0, _toConsumableArray2.default)(props.routes), (0, _toConsumableArray2.default)(_plugins.plugins.byType("route").map(function (_ref) {
14
14
  var route = _ref.route;
15
15
  return route;
@@ -39,6 +39,5 @@ var Routes = function Routes(props) {
39
39
  });
40
40
  }));
41
41
  };
42
- exports.Routes = Routes;
43
42
 
44
43
  //# sourceMappingURL=Routes.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_plugins","_reactRouter","Routes","props","routes","concat","_toConsumableArray2","default","plugins","byType","map","_ref","route","sort","a","b","pathA","path","pathB","includes","createElement","index","React","cloneElement","key","exports"],"sources":["Routes.tsx"],"sourcesContent":["import React from \"react\";\nimport { plugins } from \"@webiny/plugins\";\nimport { Routes as ReactRouterRoutes } from \"@webiny/react-router\";\nimport { RoutePlugin } from \"@webiny/app/types\";\n\ninterface RoutesProps {\n routes: JSX.Element[];\n}\n\nexport const Routes = (props: RoutesProps) => {\n const routes = [\n ...props.routes,\n // For backwards compatibility, we need to support the RoutePlugin routes as well.\n ...plugins.byType<RoutePlugin>(\"route\").map(({ route }) => route)\n ].sort((a, b) => {\n const pathA = a.props.path || \"*\";\n const pathB = b.props.path || \"*\";\n\n // This will sort paths at the very bottom of the list\n if (pathA === \"/\" && pathB === \"*\") {\n return -1;\n }\n\n // This will push * and / to the bottom of the list\n if (pathA === \"*\" || pathA === \"/\") {\n return 1;\n }\n\n // This will push * and / to the bottom of the list\n if ([\"*\", \"/\"].includes(pathB)) {\n return -1;\n }\n\n return 0;\n });\n\n return (\n <ReactRouterRoutes>\n {routes.map((route, index) =>\n React.cloneElement(route, { key: `${route.props.path}:${index}` })\n )}\n </ReactRouterRoutes>\n );\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AAOO,IAAMG,MAAM,GAAG,SAATA,MAAMA,CAAIC,KAAkB,EAAK;EAC1C,IAAMC,MAAM,GAAG,GAAAC,MAAA,KAAAC,mBAAA,CAAAC,OAAA,EACRJ,KAAK,CAACC,MAAM,OAAAE,mBAAA,CAAAC,OAAA,EAEZC,gBAAO,CAACC,MAAM,CAAc,OAAO,CAAC,CAACC,GAAG,CAAC,UAAAC,IAAA;IAAA,IAAGC,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAA,OAAOA,KAAK;EAAA,EAAC,GACnEC,IAAI,CAAC,UAACC,CAAC,EAAEC,CAAC,EAAK;IACb,IAAMC,KAAK,GAAGF,CAAC,CAACX,KAAK,CAACc,IAAI,IAAI,GAAG;IACjC,IAAMC,KAAK,GAAGH,CAAC,CAACZ,KAAK,CAACc,IAAI,IAAI,GAAG;;IAEjC;IACA,IAAID,KAAK,KAAK,GAAG,IAAIE,KAAK,KAAK,GAAG,EAAE;MAChC,OAAO,CAAC,CAAC;IACb;;IAEA;IACA,IAAIF,KAAK,KAAK,GAAG,IAAIA,KAAK,KAAK,GAAG,EAAE;MAChC,OAAO,CAAC;IACZ;;IAEA;IACA,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAACG,QAAQ,CAACD,KAAK,CAAC,EAAE;MAC5B,OAAO,CAAC,CAAC;IACb;IAEA,OAAO,CAAC;EACZ,CAAC,CAAC;EAEF,oBACIrB,MAAA,CAAAU,OAAA,CAAAa,aAAA,CAACnB,YAAA,CAAAC,MAAiB,QACbE,MAAM,CAACM,GAAG,CAAC,UAACE,KAAK,EAAES,KAAK;IAAA,oBACrBC,cAAK,CAACC,YAAY,CAACX,KAAK,EAAE;MAAEY,GAAG,KAAAnB,MAAA,CAAKO,KAAK,CAACT,KAAK,CAACc,IAAI,OAAAZ,MAAA,CAAIgB,KAAK;IAAG,CAAC,CAAC;EAAA,CACtE,CACe,CAAC;AAE5B,CAAC;AAACI,OAAA,CAAAvB,MAAA,GAAAA,MAAA"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_plugins","_reactRouter","Routes","exports","props","routes","concat","_toConsumableArray2","default","plugins","byType","map","_ref","route","sort","a","b","pathA","path","pathB","includes","createElement","index","React","cloneElement","key"],"sources":["Routes.tsx"],"sourcesContent":["import React from \"react\";\nimport { plugins } from \"@webiny/plugins\";\nimport { Routes as ReactRouterRoutes } from \"@webiny/react-router\";\nimport { RoutePlugin } from \"@webiny/app/types\";\n\ninterface RoutesProps {\n routes: JSX.Element[];\n}\n\nexport const Routes = (props: RoutesProps) => {\n const routes = [\n ...props.routes,\n // For backwards compatibility, we need to support the RoutePlugin routes as well.\n ...plugins.byType<RoutePlugin>(\"route\").map(({ route }) => route)\n ].sort((a, b) => {\n const pathA = a.props.path || \"*\";\n const pathB = b.props.path || \"*\";\n\n // This will sort paths at the very bottom of the list\n if (pathA === \"/\" && pathB === \"*\") {\n return -1;\n }\n\n // This will push * and / to the bottom of the list\n if (pathA === \"*\" || pathA === \"/\") {\n return 1;\n }\n\n // This will push * and / to the bottom of the list\n if ([\"*\", \"/\"].includes(pathB)) {\n return -1;\n }\n\n return 0;\n });\n\n return (\n <ReactRouterRoutes>\n {routes.map((route, index) =>\n React.cloneElement(route, { key: `${route.props.path}:${index}` })\n )}\n </ReactRouterRoutes>\n );\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AAOO,IAAMG,MAAM,GAAAC,OAAA,CAAAD,MAAA,GAAG,SAATA,MAAMA,CAAIE,KAAkB,EAAK;EAC1C,IAAMC,MAAM,GAAG,GAAAC,MAAA,KAAAC,mBAAA,CAAAC,OAAA,EACRJ,KAAK,CAACC,MAAM,OAAAE,mBAAA,CAAAC,OAAA,EAEZC,gBAAO,CAACC,MAAM,CAAc,OAAO,CAAC,CAACC,GAAG,CAAC,UAAAC,IAAA;IAAA,IAAGC,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAA,OAAOA,KAAK;EAAA,EAAC,GACnEC,IAAI,CAAC,UAACC,CAAC,EAAEC,CAAC,EAAK;IACb,IAAMC,KAAK,GAAGF,CAAC,CAACX,KAAK,CAACc,IAAI,IAAI,GAAG;IACjC,IAAMC,KAAK,GAAGH,CAAC,CAACZ,KAAK,CAACc,IAAI,IAAI,GAAG;;IAEjC;IACA,IAAID,KAAK,KAAK,GAAG,IAAIE,KAAK,KAAK,GAAG,EAAE;MAChC,OAAO,CAAC,CAAC;IACb;;IAEA;IACA,IAAIF,KAAK,KAAK,GAAG,IAAIA,KAAK,KAAK,GAAG,EAAE;MAChC,OAAO,CAAC;IACZ;;IAEA;IACA,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAACG,QAAQ,CAACD,KAAK,CAAC,EAAE;MAC5B,OAAO,CAAC,CAAC;IACb;IAEA,OAAO,CAAC;EACZ,CAAC,CAAC;EAEF,oBACItB,MAAA,CAAAW,OAAA,CAAAa,aAAA,CAACpB,YAAA,CAAAC,MAAiB,QACbG,MAAM,CAACM,GAAG,CAAC,UAACE,KAAK,EAAES,KAAK;IAAA,oBACrBC,cAAK,CAACC,YAAY,CAACX,KAAK,EAAE;MAAEY,GAAG,KAAAnB,MAAA,CAAKO,KAAK,CAACT,KAAK,CAACc,IAAI,OAAAZ,MAAA,CAAIgB,KAAK;IAAG,CAAC,CAAC;EAAA,CACtE,CACe,CAAC;AAE5B,CAAC","ignoreList":[]}
@@ -1,9 +1,9 @@
1
- /// <reference types="react" />
1
+ import React from "react";
2
2
  export interface SearchProps {
3
3
  value: string;
4
4
  onChange: (value: string) => void;
5
5
  onEnter?: () => any;
6
6
  inputPlaceholder?: string;
7
7
  }
8
- declare const Search: ({ value, onChange, onEnter, inputPlaceholder }: SearchProps) => JSX.Element;
8
+ declare const Search: ({ value, onChange, onEnter, inputPlaceholder }: SearchProps) => React.JSX.Element;
9
9
  export default Search;
@@ -1,49 +1,29 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
3
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.default = void 0;
9
+ var _base = _interopRequireDefault(require("@emotion/styled/base"));
9
10
  var _react = _interopRequireWildcard(require("react"));
10
- var _styled = _interopRequireDefault(require("@emotion/styled"));
11
11
  var _InputField = _interopRequireDefault(require("./SimpleUI/InputField"));
12
12
  var _search = require("@material-design-icons/svg/outlined/search.svg");
13
- var SearchWrapper = /*#__PURE__*/(0, _styled.default)("div", {
13
+ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
14
+ var SearchWrapper = /*#__PURE__*/(0, _base.default)("div", process.env.NODE_ENV === "production" ? {
15
+ target: "epa3kz70"
16
+ } : {
14
17
  target: "epa3kz70",
15
18
  label: "SearchWrapper"
16
- })({
17
- width: "100%",
18
- height: "100%",
19
- display: "flex",
20
- position: "relative",
21
- "& .search__icon": {
22
- position: "absolute",
23
- top: 0,
24
- left: 0,
25
- bottom: 0,
26
- pointerEvents: "none",
27
- display: "flex",
28
- alignItems: "center",
29
- paddingLeft: "0.25rem",
30
- color: "var(--mdc-theme-text-secondary-on-background)"
31
- },
32
- "& .search__input": {
33
- width: "100%",
34
- padding: "0.5rem 0.5rem 0.5rem 2.25rem",
35
- outline: "none",
36
- border: "none",
37
- color: "var(--mdc-theme-text-primary-on-background)",
38
- "&:focus": {
39
- outline: "none"
40
- },
41
- "&::placeholder": {
42
- textTransform: "uppercase",
43
- letterSpacing: "0.05em",
44
- color: "var(--mdc-theme-text-secondary-on-background)"
45
- }
46
- }
19
+ })(process.env.NODE_ENV === "production" ? {
20
+ name: "1pjguuy",
21
+ styles: "width:100%;height:100%;display:flex;position:relative;& .search__icon{position:absolute;top:0;left:0;bottom:0;pointer-events:none;display:flex;align-items:center;padding-left:0.25rem;color:var(--mdc-theme-text-secondary-on-background);}& .search__input{width:100%;padding:0.5rem 0.5rem 0.5rem 2.25rem;outline:none;border:none;color:var(--mdc-theme-text-primary-on-background);&:focus{outline:none;}&::placeholder{text-transform:uppercase;letter-spacing:0.05em;color:var(--mdc-theme-text-secondary-on-background);}}"
22
+ } : {
23
+ name: "1pjguuy",
24
+ styles: "width:100%;height:100%;display:flex;position:relative;& .search__icon{position:absolute;top:0;left:0;bottom:0;pointer-events:none;display:flex;align-items:center;padding-left:0.25rem;color:var(--mdc-theme-text-secondary-on-background);}& .search__input{width:100%;padding:0.5rem 0.5rem 0.5rem 2.25rem;outline:none;border:none;color:var(--mdc-theme-text-primary-on-background);&:focus{outline:none;}&::placeholder{text-transform:uppercase;letter-spacing:0.05em;color:var(--mdc-theme-text-secondary-on-background);}}",
25
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNlYXJjaFVJLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLc0IiLCJmaWxlIjoiU2VhcmNoVUkudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCBJbnB1dEZpZWxkLCB7IE9uS2V5RG93blByb3BzIH0gZnJvbSBcIi4vU2ltcGxlVUkvSW5wdXRGaWVsZFwiO1xuaW1wb3J0IHsgUmVhY3RDb21wb25lbnQgYXMgU2VhcmNoSWNvbiB9IGZyb20gXCJAbWF0ZXJpYWwtZGVzaWduLWljb25zL3N2Zy9vdXRsaW5lZC9zZWFyY2guc3ZnXCI7XG5cbmNvbnN0IFNlYXJjaFdyYXBwZXIgPSBzdHlsZWQoXCJkaXZcIikoe1xuICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICBoZWlnaHQ6IFwiMTAwJVwiLFxuICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG5cbiAgICBcIiYgLnNlYXJjaF9faWNvblwiOiB7XG4gICAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICAgIHRvcDogMCxcbiAgICAgICAgbGVmdDogMCxcbiAgICAgICAgYm90dG9tOiAwLFxuICAgICAgICBwb2ludGVyRXZlbnRzOiBcIm5vbmVcIixcbiAgICAgICAgZGlzcGxheTogXCJmbGV4XCIsXG4gICAgICAgIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG4gICAgICAgIHBhZGRpbmdMZWZ0OiBcIjAuMjVyZW1cIixcbiAgICAgICAgY29sb3I6IFwidmFyKC0tbWRjLXRoZW1lLXRleHQtc2Vjb25kYXJ5LW9uLWJhY2tncm91bmQpXCJcbiAgICB9LFxuXG4gICAgXCImIC5zZWFyY2hfX2lucHV0XCI6IHtcbiAgICAgICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgICAgICBwYWRkaW5nOiBcIjAuNXJlbSAwLjVyZW0gMC41cmVtIDIuMjVyZW1cIixcbiAgICAgICAgb3V0bGluZTogXCJub25lXCIsXG4gICAgICAgIGJvcmRlcjogXCJub25lXCIsXG4gICAgICAgIGNvbG9yOiBcInZhcigtLW1kYy10aGVtZS10ZXh0LXByaW1hcnktb24tYmFja2dyb3VuZClcIixcbiAgICAgICAgXCImOmZvY3VzXCI6IHtcbiAgICAgICAgICAgIG91dGxpbmU6IFwibm9uZVwiXG4gICAgICAgIH0sXG4gICAgICAgIFwiJjo6cGxhY2Vob2xkZXJcIjoge1xuICAgICAgICAgICAgdGV4dFRyYW5zZm9ybTogXCJ1cHBlcmNhc2VcIixcbiAgICAgICAgICAgIGxldHRlclNwYWNpbmc6IFwiMC4wNWVtXCIsXG4gICAgICAgICAgICBjb2xvcjogXCJ2YXIoLS1tZGMtdGhlbWUtdGV4dC1zZWNvbmRhcnktb24tYmFja2dyb3VuZClcIlxuICAgICAgICB9XG4gICAgfVxufSk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoUHJvcHMge1xuICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgb25DaGFuZ2U6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xuICAgIG9uRW50ZXI/OiAoKSA9PiBhbnk7XG4gICAgaW5wdXRQbGFjZWhvbGRlcj86IHN0cmluZztcbn1cblxuY29uc3QgU2VhcmNoID0gKHsgdmFsdWUsIG9uQ2hhbmdlLCBvbkVudGVyLCBpbnB1dFBsYWNlaG9sZGVyID0gXCJTZWFyY2guLi5cIiB9OiBTZWFyY2hQcm9wcykgPT4ge1xuICAgIGNvbnN0IGlucHV0T25LZXlEb3duID0gdXNlQ2FsbGJhY2soXG4gICAgICAgIChlOiBPbktleURvd25Qcm9wcykgPT4ge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBvbkVudGVyID09PSBcImZ1bmN0aW9uXCIgJiYgZS5rZXkgPT09IFwiRW50ZXJcIikge1xuICAgICAgICAgICAgICAgIG9uRW50ZXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgW29uRW50ZXJdXG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxTZWFyY2hXcmFwcGVyIGRhdGEtdGVzdGlkPXtcImRlZmF1bHQtZGF0YS1saXN0LnNlYXJjaFwifT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2VhcmNoX19pY29uXCI+XG4gICAgICAgICAgICAgICAgPFNlYXJjaEljb24gLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPElucHV0RmllbGRcbiAgICAgICAgICAgICAgICBvbktleURvd249e2lucHV0T25LZXlEb3dufVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInNlYXJjaF9faW5wdXRcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtpbnB1dFBsYWNlaG9sZGVyfVxuICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvU2VhcmNoV3JhcHBlcj5cbiAgICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgU2VhcmNoO1xuIl19 */",
26
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
47
27
  });
48
28
  var Search = function Search(_ref) {
49
29
  var value = _ref.value,
@@ -69,7 +49,6 @@ var Search = function Search(_ref) {
69
49
  autoComplete: "off"
70
50
  }));
71
51
  };
72
- var _default = Search;
73
- exports.default = _default;
52
+ var _default = exports.default = Search;
74
53
 
75
54
  //# sourceMappingURL=SearchUI.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_styled","_interopRequireDefault","_InputField","_search","SearchWrapper","styled","target","label","width","height","display","position","top","left","bottom","pointerEvents","alignItems","paddingLeft","color","padding","outline","border","textTransform","letterSpacing","Search","_ref","value","onChange","onEnter","_ref$inputPlaceholder","inputPlaceholder","inputOnKeyDown","useCallback","e","key","default","createElement","className","ReactComponent","onKeyDown","placeholder","autoComplete","_default","exports"],"sources":["SearchUI.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport styled from \"@emotion/styled\";\nimport InputField from \"./SimpleUI/InputField\";\nimport { ReactComponent as SearchIcon } from \"@material-design-icons/svg/outlined/search.svg\";\n\nconst SearchWrapper = styled(\"div\")({\n width: \"100%\",\n height: \"100%\",\n display: \"flex\",\n position: \"relative\",\n\n \"& .search__icon\": {\n position: \"absolute\",\n top: 0,\n left: 0,\n bottom: 0,\n pointerEvents: \"none\",\n display: \"flex\",\n alignItems: \"center\",\n paddingLeft: \"0.25rem\",\n color: \"var(--mdc-theme-text-secondary-on-background)\"\n },\n\n \"& .search__input\": {\n width: \"100%\",\n padding: \"0.5rem 0.5rem 0.5rem 2.25rem\",\n outline: \"none\",\n border: \"none\",\n color: \"var(--mdc-theme-text-primary-on-background)\",\n \"&:focus\": {\n outline: \"none\"\n },\n \"&::placeholder\": {\n textTransform: \"uppercase\",\n letterSpacing: \"0.05em\",\n color: \"var(--mdc-theme-text-secondary-on-background)\"\n }\n }\n});\n\nexport interface SearchProps {\n value: string;\n onChange: (value: string) => void;\n onEnter?: () => any;\n inputPlaceholder?: string;\n}\nconst Search = ({ value, onChange, onEnter, inputPlaceholder = \"Search...\" }: SearchProps) => {\n const inputOnKeyDown = useCallback(\n e => {\n if (typeof onEnter === \"function\" && e.key === \"Enter\") {\n onEnter();\n }\n },\n [onEnter]\n );\n\n return (\n <SearchWrapper data-testid={\"default-data-list.search\"}>\n <div className=\"search__icon\">\n <SearchIcon />\n </div>\n <InputField\n onKeyDown={inputOnKeyDown}\n className=\"search__input\"\n placeholder={inputPlaceholder}\n value={value}\n onChange={onChange}\n autoComplete=\"off\"\n />\n </SearchWrapper>\n );\n};\n\nexport default Search;\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,WAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AAEA,IAAMK,aAAa,oBAAGC,eAAM,EAAC,KAAK;EAAAC,MAAA;EAAAC,KAAA;AAAA,GAAE;EAChCC,KAAK,EAAE,MAAM;EACbC,MAAM,EAAE,MAAM;EACdC,OAAO,EAAE,MAAM;EACfC,QAAQ,EAAE,UAAU;EAEpB,iBAAiB,EAAE;IACfA,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,MAAM,EAAE,CAAC;IACTC,aAAa,EAAE,MAAM;IACrBL,OAAO,EAAE,MAAM;IACfM,UAAU,EAAE,QAAQ;IACpBC,WAAW,EAAE,SAAS;IACtBC,KAAK,EAAE;EACX,CAAC;EAED,kBAAkB,EAAE;IAChBV,KAAK,EAAE,MAAM;IACbW,OAAO,EAAE,8BAA8B;IACvCC,OAAO,EAAE,MAAM;IACfC,MAAM,EAAE,MAAM;IACdH,KAAK,EAAE,6CAA6C;IACpD,SAAS,EAAE;MACPE,OAAO,EAAE;IACb,CAAC;IACD,gBAAgB,EAAE;MACdE,aAAa,EAAE,WAAW;MAC1BC,aAAa,EAAE,QAAQ;MACvBL,KAAK,EAAE;IACX;EACJ;AACJ,CAAC,CAAC;AAQF,IAAMM,MAAM,GAAG,SAATA,MAAMA,CAAAC,IAAA,EAAkF;EAAA,IAA5EC,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAEC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAAEC,OAAO,GAAAH,IAAA,CAAPG,OAAO;IAAAC,qBAAA,GAAAJ,IAAA,CAAEK,gBAAgB;IAAhBA,gBAAgB,GAAAD,qBAAA,cAAG,WAAW,GAAAA,qBAAA;EACtE,IAAME,cAAc,GAAG,IAAAC,kBAAW,EAC9B,UAAAC,CAAC,EAAI;IACD,IAAI,OAAOL,OAAO,KAAK,UAAU,IAAIK,CAAC,CAACC,GAAG,KAAK,OAAO,EAAE;MACpDN,OAAO,CAAC,CAAC;IACb;EACJ,CAAC,EACD,CAACA,OAAO,CACZ,CAAC;EAED,oBACI/B,MAAA,CAAAsC,OAAA,CAAAC,aAAA,CAAChC,aAAa;IAAC,eAAa;EAA2B,gBACnDP,MAAA,CAAAsC,OAAA,CAAAC,aAAA;IAAKC,SAAS,EAAC;EAAc,gBACzBxC,MAAA,CAAAsC,OAAA,CAAAC,aAAA,CAACjC,OAAA,CAAAmC,cAAU,MAAE,CACZ,CAAC,eACNzC,MAAA,CAAAsC,OAAA,CAAAC,aAAA,CAAClC,WAAA,CAAAiC,OAAU;IACPI,SAAS,EAAER,cAAe;IAC1BM,SAAS,EAAC,eAAe;IACzBG,WAAW,EAAEV,gBAAiB;IAC9BJ,KAAK,EAAEA,KAAM;IACbC,QAAQ,EAAEA,QAAS;IACnBc,YAAY,EAAC;EAAK,CACrB,CACU,CAAC;AAExB,CAAC;AAAC,IAAAC,QAAA,GAEalB,MAAM;AAAAmB,OAAA,CAAAR,OAAA,GAAAO,QAAA"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_InputField","_interopRequireDefault","_search","_EMOTION_STRINGIFIED_CSS_ERROR__","SearchWrapper","_base","default","process","env","NODE_ENV","target","label","name","styles","map","toString","Search","_ref","value","onChange","onEnter","_ref$inputPlaceholder","inputPlaceholder","inputOnKeyDown","useCallback","e","key","createElement","className","ReactComponent","onKeyDown","placeholder","autoComplete","_default","exports"],"sources":["SearchUI.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport styled from \"@emotion/styled\";\nimport InputField, { OnKeyDownProps } from \"./SimpleUI/InputField\";\nimport { ReactComponent as SearchIcon } from \"@material-design-icons/svg/outlined/search.svg\";\n\nconst SearchWrapper = styled(\"div\")({\n width: \"100%\",\n height: \"100%\",\n display: \"flex\",\n position: \"relative\",\n\n \"& .search__icon\": {\n position: \"absolute\",\n top: 0,\n left: 0,\n bottom: 0,\n pointerEvents: \"none\",\n display: \"flex\",\n alignItems: \"center\",\n paddingLeft: \"0.25rem\",\n color: \"var(--mdc-theme-text-secondary-on-background)\"\n },\n\n \"& .search__input\": {\n width: \"100%\",\n padding: \"0.5rem 0.5rem 0.5rem 2.25rem\",\n outline: \"none\",\n border: \"none\",\n color: \"var(--mdc-theme-text-primary-on-background)\",\n \"&:focus\": {\n outline: \"none\"\n },\n \"&::placeholder\": {\n textTransform: \"uppercase\",\n letterSpacing: \"0.05em\",\n color: \"var(--mdc-theme-text-secondary-on-background)\"\n }\n }\n});\n\nexport interface SearchProps {\n value: string;\n onChange: (value: string) => void;\n onEnter?: () => any;\n inputPlaceholder?: string;\n}\n\nconst Search = ({ value, onChange, onEnter, inputPlaceholder = \"Search...\" }: SearchProps) => {\n const inputOnKeyDown = useCallback(\n (e: OnKeyDownProps) => {\n if (typeof onEnter === \"function\" && e.key === \"Enter\") {\n onEnter();\n }\n },\n [onEnter]\n );\n\n return (\n <SearchWrapper data-testid={\"default-data-list.search\"}>\n <div className=\"search__icon\">\n <SearchIcon />\n </div>\n <InputField\n onKeyDown={inputOnKeyDown}\n className=\"search__input\"\n placeholder={inputPlaceholder}\n value={value}\n onChange={onChange}\n autoComplete=\"off\"\n />\n </SearchWrapper>\n );\n};\n\nexport default Search;\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAA8F,SAAAI,iCAAA;AAE9F,IAAMC,aAAa,gBAAG,IAAAC,KAAA,CAAAC,OAAA,EAAO,KAAK,EAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,EAAC,CAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAZ;AAAA,CAiClC,CAAC;AASF,IAAMa,MAAM,GAAG,SAATA,MAAMA,CAAAC,IAAA,EAAkF;EAAA,IAA5EC,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAEC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAAEC,OAAO,GAAAH,IAAA,CAAPG,OAAO;IAAAC,qBAAA,GAAAJ,IAAA,CAAEK,gBAAgB;IAAhBA,gBAAgB,GAAAD,qBAAA,cAAG,WAAW,GAAAA,qBAAA;EACtE,IAAME,cAAc,GAAG,IAAAC,kBAAW,EAC9B,UAACC,CAAiB,EAAK;IACnB,IAAI,OAAOL,OAAO,KAAK,UAAU,IAAIK,CAAC,CAACC,GAAG,KAAK,OAAO,EAAE;MACpDN,OAAO,CAAC,CAAC;IACb;EACJ,CAAC,EACD,CAACA,OAAO,CACZ,CAAC;EAED,oBACIvB,MAAA,CAAAS,OAAA,CAAAqB,aAAA,CAACvB,aAAa;IAAC,eAAa;EAA2B,gBACnDP,MAAA,CAAAS,OAAA,CAAAqB,aAAA;IAAKC,SAAS,EAAC;EAAc,gBACzB/B,MAAA,CAAAS,OAAA,CAAAqB,aAAA,CAACzB,OAAA,CAAA2B,cAAU,MAAE,CACZ,CAAC,eACNhC,MAAA,CAAAS,OAAA,CAAAqB,aAAA,CAAC3B,WAAA,CAAAM,OAAU;IACPwB,SAAS,EAAEP,cAAe;IAC1BK,SAAS,EAAC,eAAe;IACzBG,WAAW,EAAET,gBAAiB;IAC9BJ,KAAK,EAAEA,KAAM;IACbC,QAAQ,EAAEA,QAAS;IACnBa,YAAY,EAAC;EAAK,CACrB,CACU,CAAC;AAExB,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAA5B,OAAA,GAEaU,MAAM","ignoreList":[]}