@webiny/app-admin 0.0.0-unstable.99666aeb00 → 0.0.0-unstable.9bd236cf5e

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 (657) hide show
  1. package/assets/icons/file_download.svg +1 -0
  2. package/assets/icons/file_upload.svg +1 -0
  3. package/base/Admin.d.ts +2 -2
  4. package/base/Admin.js +27 -41
  5. package/base/Admin.js.map +1 -1
  6. package/base/Base/Menus/SupportMenuItems.d.ts +2 -0
  7. package/base/Base/Menus/SupportMenuItems.js +20 -0
  8. package/base/Base/Menus/SupportMenuItems.js.map +1 -0
  9. package/base/Base/Menus/WebinyVersion.d.ts +2 -0
  10. package/base/Base/Menus/WebinyVersion.js +24 -0
  11. package/base/Base/Menus/WebinyVersion.js.map +1 -0
  12. package/base/Base/Menus.d.ts +2 -0
  13. package/base/Base/Menus.js +129 -0
  14. package/base/Base/Menus.js.map +1 -0
  15. package/base/Base/Routes.d.ts +2 -0
  16. package/base/Base/Routes.js +24 -0
  17. package/base/Base/Routes.js.map +1 -0
  18. package/base/Base/Tenant/wby-logo.svg +3 -0
  19. package/base/Base/Tenant.d.ts +2 -0
  20. package/base/Base/Tenant.js +19 -0
  21. package/base/Base/Tenant.js.map +1 -0
  22. package/base/Base.d.ts +1 -1
  23. package/base/Base.js +13 -74
  24. package/base/Base.js.map +1 -1
  25. package/base/WebinyVersion.d.ts +2 -0
  26. package/base/WebinyVersion.js +24 -0
  27. package/base/WebinyVersion.js.map +1 -0
  28. package/base/plugins/AddGraphQLQuerySelection.d.ts +2 -3
  29. package/base/plugins/AddGraphQLQuerySelection.js +13 -22
  30. package/base/plugins/AddGraphQLQuerySelection.js.map +1 -1
  31. package/base/providers/AdminUiStateProvider.d.ts +1 -0
  32. package/base/providers/AdminUiStateProvider.js +14 -0
  33. package/base/providers/AdminUiStateProvider.js.map +1 -0
  34. package/base/providers/ApolloProvider.d.ts +5 -2
  35. package/base/providers/ApolloProvider.js +11 -16
  36. package/base/providers/ApolloProvider.js.map +1 -1
  37. package/base/providers/TelemetryProvider.d.ts +1 -2
  38. package/base/providers/TelemetryProvider.js +15 -24
  39. package/base/providers/TelemetryProvider.js.map +1 -1
  40. package/base/providers/UiProviders.d.ts +1 -0
  41. package/base/providers/UiProviders.js +14 -0
  42. package/base/providers/UiProviders.js.map +1 -0
  43. package/base/providers/UiStateProvider.d.ts +1 -2
  44. package/base/providers/UiStateProvider.js +12 -16
  45. package/base/providers/UiStateProvider.js.map +1 -1
  46. package/base/providers/ViewCompositionProvider.d.ts +5 -1
  47. package/base/providers/ViewCompositionProvider.js +35 -45
  48. package/base/providers/ViewCompositionProvider.js.map +1 -1
  49. package/base/ui/Brand.d.ts +39 -2
  50. package/base/ui/Brand.js +7 -14
  51. package/base/ui/Brand.js.map +1 -1
  52. package/base/ui/CenteredView.d.ts +21 -1
  53. package/base/ui/CenteredView.js +14 -34
  54. package/base/ui/CenteredView.js.map +1 -1
  55. package/base/ui/Dashboard.d.ts +39 -2
  56. package/base/ui/Dashboard.js +7 -14
  57. package/base/ui/Dashboard.js.map +1 -1
  58. package/base/ui/FileManager.d.ts +28 -10
  59. package/base/ui/FileManager.js +51 -53
  60. package/base/ui/FileManager.js.map +1 -1
  61. package/base/ui/Layout.d.ts +40 -2
  62. package/base/ui/Layout.js +10 -18
  63. package/base/ui/Layout.js.map +1 -1
  64. package/base/ui/LocaleSelector.d.ts +39 -2
  65. package/base/ui/LocaleSelector.js +7 -14
  66. package/base/ui/LocaleSelector.js.map +1 -1
  67. package/base/ui/LoginScreen.d.ts +21 -2
  68. package/base/ui/LoginScreen.js +21 -17
  69. package/base/ui/LoginScreen.js.map +1 -1
  70. package/base/ui/Logo.d.ts +38 -7
  71. package/base/ui/Logo.js +7 -29
  72. package/base/ui/Logo.js.map +1 -1
  73. package/base/ui/Navigation.d.ts +39 -23
  74. package/base/ui/Navigation.js +14 -146
  75. package/base/ui/Navigation.js.map +1 -1
  76. package/base/ui/NotFound.d.ts +39 -2
  77. package/base/ui/NotFound.js +7 -14
  78. package/base/ui/NotFound.js.map +1 -1
  79. package/base/ui/Tags.d.ts +2 -2
  80. package/base/ui/Tags.js +16 -18
  81. package/base/ui/Tags.js.map +1 -1
  82. package/base/ui/TenantSelector.d.ts +39 -0
  83. package/base/ui/TenantSelector.js +8 -0
  84. package/base/ui/TenantSelector.js.map +1 -0
  85. package/base/ui/UserMenu/UserMenu.d.ts +39 -0
  86. package/base/ui/UserMenu/UserMenu.js +8 -0
  87. package/base/ui/UserMenu/UserMenu.js.map +1 -0
  88. package/base/ui/UserMenu/UserMenuHandle.d.ts +39 -0
  89. package/base/ui/UserMenu/UserMenuHandle.js +8 -0
  90. package/base/ui/UserMenu/UserMenuHandle.js.map +1 -0
  91. package/base/ui/UserMenu/UserMenuItem.d.ts +81 -0
  92. package/base/ui/UserMenu/UserMenuItem.js +19 -0
  93. package/base/ui/UserMenu/UserMenuItem.js.map +1 -0
  94. package/base/ui/UserMenu/UserMenuLink.d.ts +81 -0
  95. package/base/ui/UserMenu/UserMenuLink.js +19 -0
  96. package/base/ui/UserMenu/UserMenuLink.js.map +1 -0
  97. package/base/ui/UserMenu/UserMenuSeparator.d.ts +42 -0
  98. package/base/ui/UserMenu/UserMenuSeparator.js +9 -0
  99. package/base/ui/UserMenu/UserMenuSeparator.js.map +1 -0
  100. package/base/ui/UserMenu.d.ts +79 -29
  101. package/base/ui/UserMenu.js +16 -110
  102. package/base/ui/UserMenu.js.map +1 -1
  103. package/components/AdminLayout.d.ts +2 -1
  104. package/components/AdminLayout.js +9 -14
  105. package/components/AdminLayout.js.map +1 -1
  106. package/components/AppInstaller/AppInstaller.d.ts +5 -1
  107. package/components/AppInstaller/AppInstaller.js +63 -67
  108. package/components/AppInstaller/AppInstaller.js.map +1 -1
  109. package/components/AppInstaller/Sidebar.d.ts +2 -2
  110. package/components/AppInstaller/Sidebar.js +71 -108
  111. package/components/AppInstaller/Sidebar.js.map +1 -1
  112. package/components/AppInstaller/index.d.ts +2 -2
  113. package/components/AppInstaller/index.js +12 -17
  114. package/components/AppInstaller/index.js.map +1 -1
  115. package/components/AppInstaller/styled.d.ts +4 -6
  116. package/components/AppInstaller/styled.js +57 -69
  117. package/components/AppInstaller/styled.js.map +1 -1
  118. package/components/AppInstaller/useInstaller.d.ts +1 -1
  119. package/components/AppInstaller/useInstaller.js +97 -138
  120. package/components/AppInstaller/useInstaller.js.map +1 -1
  121. package/components/BulkActions/Worker.d.ts +83 -0
  122. package/components/BulkActions/Worker.js +126 -0
  123. package/components/BulkActions/Worker.js.map +1 -0
  124. package/components/BulkActions/index.d.ts +2 -0
  125. package/components/BulkActions/index.js +4 -0
  126. package/components/BulkActions/index.js.map +1 -0
  127. package/components/BulkActions/useDialogWithReport/DialogMessage.d.ts +5 -0
  128. package/components/BulkActions/useDialogWithReport/DialogMessage.js +23 -0
  129. package/components/BulkActions/useDialogWithReport/DialogMessage.js.map +1 -0
  130. package/components/BulkActions/useDialogWithReport/index.d.ts +1 -0
  131. package/components/BulkActions/useDialogWithReport/index.js +3 -0
  132. package/components/BulkActions/useDialogWithReport/index.js.map +1 -0
  133. package/components/BulkActions/useDialogWithReport/useDialogWithReport.d.ts +19 -0
  134. package/components/BulkActions/useDialogWithReport/useDialogWithReport.js +51 -0
  135. package/components/BulkActions/useDialogWithReport/useDialogWithReport.js.map +1 -0
  136. package/components/Buttons/Buttons.d.ts +24 -0
  137. package/components/Buttons/Buttons.js +77 -0
  138. package/components/Buttons/Buttons.js.map +1 -0
  139. package/components/Buttons/Buttons.styles.d.ts +5 -0
  140. package/components/Buttons/Buttons.styles.js +18 -0
  141. package/components/Buttons/Buttons.styles.js.map +1 -0
  142. package/components/Buttons/index.d.ts +2 -0
  143. package/components/Buttons/index.js +4 -0
  144. package/components/Buttons/index.js.map +1 -0
  145. package/components/Buttons/useButtons.d.ts +14 -0
  146. package/components/Buttons/useButtons.js +24 -0
  147. package/components/Buttons/useButtons.js.map +1 -0
  148. package/components/Dialogs/CustomDialog.d.ts +17 -0
  149. package/components/Dialogs/CustomDialog.js +48 -0
  150. package/components/Dialogs/CustomDialog.js.map +1 -0
  151. package/components/Dialogs/Dialog.d.ts +21 -0
  152. package/components/Dialogs/Dialog.js +62 -0
  153. package/components/Dialogs/Dialog.js.map +1 -0
  154. package/components/Dialogs/DialogsContext.d.ts +43 -0
  155. package/components/Dialogs/DialogsContext.js +141 -0
  156. package/components/Dialogs/DialogsContext.js.map +1 -0
  157. package/components/Dialogs/useDialogs.d.ts +3 -0
  158. package/components/Dialogs/useDialogs.js +12 -0
  159. package/components/Dialogs/useDialogs.js.map +1 -0
  160. package/components/EmptyView.d.ts +4 -3
  161. package/components/EmptyView.js +31 -58
  162. package/components/EmptyView.js.map +1 -1
  163. package/components/Filters/Filters.d.ts +16 -0
  164. package/components/Filters/Filters.js +21 -0
  165. package/components/Filters/Filters.js.map +1 -0
  166. package/components/Filters/FiltersToggle.d.ts +7 -0
  167. package/components/Filters/FiltersToggle.js +26 -0
  168. package/components/Filters/FiltersToggle.js.map +1 -0
  169. package/components/Filters/index.d.ts +2 -0
  170. package/components/Filters/index.js +4 -0
  171. package/components/Filters/index.js.map +1 -0
  172. package/components/FloatingActionButton.d.ts +4 -1
  173. package/components/FloatingActionButton.js +9 -14
  174. package/components/FloatingActionButton.js.map +1 -1
  175. package/components/FloatingPanel.d.ts +13 -0
  176. package/components/FloatingPanel.js +96 -0
  177. package/components/FloatingPanel.js.map +1 -0
  178. package/components/IconPicker/IconPicker.d.ts +13 -0
  179. package/components/IconPicker/IconPicker.js +39 -0
  180. package/components/IconPicker/IconPicker.js.map +1 -0
  181. package/components/IconPicker/IconPickerComponent.d.ts +17 -0
  182. package/components/IconPicker/IconPickerComponent.js +81 -0
  183. package/components/IconPicker/IconPickerComponent.js.map +1 -0
  184. package/components/IconPicker/IconPickerPresenter.d.ts +53 -0
  185. package/components/IconPicker/IconPickerPresenter.js +77 -0
  186. package/components/IconPicker/IconPickerPresenter.js.map +1 -0
  187. package/components/IconPicker/IconPickerPresenter.test.d.ts +1 -0
  188. package/components/IconPicker/IconPickerPresenter.test.js +109 -0
  189. package/components/IconPicker/IconPickerPresenter.test.js.map +1 -0
  190. package/components/IconPicker/IconPickerPresenterProvider.d.ts +9 -0
  191. package/components/IconPicker/IconPickerPresenterProvider.js +19 -0
  192. package/components/IconPicker/IconPickerPresenterProvider.js.map +1 -0
  193. package/components/IconPicker/IconPickerTab.d.ts +33 -0
  194. package/components/IconPicker/IconPickerTab.js +159 -0
  195. package/components/IconPicker/IconPickerTab.js.map +1 -0
  196. package/components/IconPicker/IconRenderer.d.ts +34 -0
  197. package/components/IconPicker/IconRenderer.js +27 -0
  198. package/components/IconPicker/IconRenderer.js.map +1 -0
  199. package/components/IconPicker/IconRepository.d.ts +19 -0
  200. package/components/IconPicker/IconRepository.js +47 -0
  201. package/components/IconPicker/IconRepository.js.map +1 -0
  202. package/components/IconPicker/IconRepository.test.d.ts +1 -0
  203. package/components/IconPicker/IconRepository.test.js +66 -0
  204. package/components/IconPicker/IconRepository.test.js.map +1 -0
  205. package/components/IconPicker/IconRepositoryFactory.d.ts +9 -0
  206. package/components/IconPicker/IconRepositoryFactory.js +17 -0
  207. package/components/IconPicker/IconRepositoryFactory.js.map +1 -0
  208. package/components/IconPicker/Loading.d.ts +14 -0
  209. package/components/IconPicker/Loading.js +50 -0
  210. package/components/IconPicker/Loading.js.map +1 -0
  211. package/components/IconPicker/components/IconPickerCell.d.ts +12 -0
  212. package/components/IconPicker/components/IconPickerCell.js +27 -0
  213. package/components/IconPicker/components/IconPickerCell.js.map +1 -0
  214. package/components/IconPicker/components/IconPickerContent.d.ts +11 -0
  215. package/components/IconPicker/components/IconPickerContent.js +41 -0
  216. package/components/IconPicker/components/IconPickerContent.js.map +1 -0
  217. package/components/IconPicker/components/IconPickerRow.d.ts +4 -0
  218. package/components/IconPicker/components/IconPickerRow.js +14 -0
  219. package/components/IconPicker/components/IconPickerRow.js.map +1 -0
  220. package/components/IconPicker/components/IconPickerTrigger.d.ts +13 -0
  221. package/components/IconPicker/components/IconPickerTrigger.js +52 -0
  222. package/components/IconPicker/components/IconPickerTrigger.js.map +1 -0
  223. package/components/IconPicker/components/index.d.ts +4 -0
  224. package/components/IconPicker/components/index.js +6 -0
  225. package/components/IconPicker/components/index.js.map +1 -0
  226. package/components/IconPicker/config/Emojis.d.ts +2 -0
  227. package/components/IconPicker/config/Emojis.js +24 -0
  228. package/components/IconPicker/config/Emojis.js.map +1 -0
  229. package/components/IconPicker/config/FontAwesomeIcons.d.ts +2 -0
  230. package/components/IconPicker/config/FontAwesomeIcons.js +61 -0
  231. package/components/IconPicker/config/FontAwesomeIcons.js.map +1 -0
  232. package/components/IconPicker/config/IconPackProvider.d.ts +7 -0
  233. package/components/IconPicker/config/IconPackProvider.js +23 -0
  234. package/components/IconPicker/config/IconPackProvider.js.map +1 -0
  235. package/components/IconPicker/config/IconType.d.ts +32 -0
  236. package/components/IconPicker/config/IconType.js +89 -0
  237. package/components/IconPicker/config/IconType.js.map +1 -0
  238. package/components/IconPicker/config/index.d.ts +31 -0
  239. package/components/IconPicker/config/index.js +45 -0
  240. package/components/IconPicker/config/index.js.map +1 -0
  241. package/components/IconPicker/defaultIcon.d.ts +6 -0
  242. package/components/IconPicker/defaultIcon.js +8 -0
  243. package/components/IconPicker/defaultIcon.js.map +1 -0
  244. package/components/IconPicker/index.d.ts +7 -0
  245. package/components/IconPicker/index.js +8 -0
  246. package/components/IconPicker/index.js.map +1 -0
  247. package/components/IconPicker/plugins/customPlugin.d.ts +2 -0
  248. package/components/IconPicker/plugins/customPlugin.js +132 -0
  249. package/components/IconPicker/plugins/customPlugin.js.map +1 -0
  250. package/components/IconPicker/plugins/emojisPlugin.d.ts +2 -0
  251. package/components/IconPicker/plugins/emojisPlugin.js +127 -0
  252. package/components/IconPicker/plugins/emojisPlugin.js.map +1 -0
  253. package/components/IconPicker/plugins/graphql.d.ts +20 -0
  254. package/components/IconPicker/plugins/graphql.js +27 -0
  255. package/components/IconPicker/plugins/graphql.js.map +1 -0
  256. package/components/IconPicker/plugins/iconsPlugin.d.ts +2 -0
  257. package/components/IconPicker/plugins/iconsPlugin.js +115 -0
  258. package/components/IconPicker/plugins/iconsPlugin.js.map +1 -0
  259. package/components/IconPicker/types.d.ts +22 -0
  260. package/components/IconPicker/types.js +10 -0
  261. package/components/IconPicker/types.js.map +1 -0
  262. package/components/LexicalEditor/LexicalEditor.d.ts +5 -5
  263. package/components/LexicalEditor/LexicalEditor.js +28 -27
  264. package/components/LexicalEditor/LexicalEditor.js.map +1 -1
  265. package/components/LexicalEditor/index.js +2 -11
  266. package/components/LexicalEditor/index.js.map +1 -1
  267. package/components/MultiImageUpload.d.ts +1 -1
  268. package/components/MultiImageUpload.js +14 -32
  269. package/components/MultiImageUpload.js.map +1 -1
  270. package/components/OptionsMenu/OptionsMenu.d.ts +10 -0
  271. package/components/OptionsMenu/OptionsMenu.js +23 -0
  272. package/components/OptionsMenu/OptionsMenu.js.map +1 -0
  273. package/components/OptionsMenu/OptionsMenuItem.d.ts +10 -0
  274. package/components/OptionsMenu/OptionsMenuItem.js +17 -0
  275. package/components/OptionsMenu/OptionsMenuItem.js.map +1 -0
  276. package/components/OptionsMenu/OptionsMenuLink.d.ts +12 -0
  277. package/components/OptionsMenu/OptionsMenuLink.js +17 -0
  278. package/components/OptionsMenu/OptionsMenuLink.js.map +1 -0
  279. package/components/OptionsMenu/index.d.ts +4 -0
  280. package/components/OptionsMenu/index.js +6 -0
  281. package/components/OptionsMenu/index.js.map +1 -0
  282. package/components/OptionsMenu/useOptionsMenuItem.d.ts +13 -0
  283. package/components/OptionsMenu/useOptionsMenuItem.js +23 -0
  284. package/components/OptionsMenu/useOptionsMenuItem.js.map +1 -0
  285. package/components/OverlayLayout/OverlayLayout.d.ts +6 -17
  286. package/components/OverlayLayout/OverlayLayout.js +45 -153
  287. package/components/OverlayLayout/OverlayLayout.js.map +1 -1
  288. package/components/OverlayLayout/components/OverlayBackdrop.d.ts +7 -0
  289. package/components/OverlayLayout/components/OverlayBackdrop.js +15 -0
  290. package/components/OverlayLayout/components/OverlayBackdrop.js.map +1 -0
  291. package/components/OverlayLayout/components/OverlayContent.d.ts +6 -0
  292. package/components/OverlayLayout/components/OverlayContent.js +21 -0
  293. package/components/OverlayLayout/components/OverlayContent.js.map +1 -0
  294. package/components/OverlayLayout/components/OverlayHeader.d.ts +13 -0
  295. package/components/OverlayLayout/components/OverlayHeader.js +44 -0
  296. package/components/OverlayLayout/components/OverlayHeader.js.map +1 -0
  297. package/components/OverlayLayout/components/OverlayRoot.d.ts +9 -0
  298. package/components/OverlayLayout/components/OverlayRoot.js +19 -0
  299. package/components/OverlayLayout/components/OverlayRoot.js.map +1 -0
  300. package/components/OverlayLayout/components/index.d.ts +4 -0
  301. package/components/OverlayLayout/components/index.js +6 -0
  302. package/components/OverlayLayout/components/index.js.map +1 -0
  303. package/components/OverlayLayout/index.js +2 -15
  304. package/components/OverlayLayout/index.js.map +1 -1
  305. package/components/Permissions/CannotUseAaclAlert.d.ts +1 -1
  306. package/components/Permissions/CannotUseAaclAlert.js +7 -13
  307. package/components/Permissions/CannotUseAaclAlert.js.map +1 -1
  308. package/components/Permissions/Permissions.d.ts +3 -3
  309. package/components/Permissions/Permissions.js +39 -49
  310. package/components/Permissions/Permissions.js.map +1 -1
  311. package/components/Permissions/PermissionsGroup.d.ts +6 -0
  312. package/components/Permissions/PermissionsGroup.js +18 -0
  313. package/components/Permissions/PermissionsGroup.js.map +1 -0
  314. package/components/Permissions/StyledComponents.d.ts +2 -3
  315. package/components/Permissions/StyledComponents.js +14 -28
  316. package/components/Permissions/StyledComponents.js.map +1 -1
  317. package/components/Permissions/index.d.ts +1 -0
  318. package/components/Permissions/index.js +5 -34
  319. package/components/Permissions/index.js.map +1 -1
  320. package/components/ResizablePanels/index.d.ts +1 -0
  321. package/components/ResizablePanels/index.js +3 -0
  322. package/components/ResizablePanels/index.js.map +1 -0
  323. package/components/RichTextEditor/RichTextEditor.d.ts +2 -2
  324. package/components/RichTextEditor/RichTextEditor.js +15 -22
  325. package/components/RichTextEditor/RichTextEditor.js.map +1 -1
  326. package/components/RichTextEditor/index.js +3 -18
  327. package/components/RichTextEditor/index.js.map +1 -1
  328. package/components/RichTextEditor/tools/header/index.d.ts +3 -4
  329. package/components/RichTextEditor/tools/header/index.js +457 -533
  330. package/components/RichTextEditor/tools/header/index.js.map +1 -1
  331. package/components/RichTextEditor/tools/image/index.d.ts +2 -4
  332. package/components/RichTextEditor/tools/image/index.js +149 -191
  333. package/components/RichTextEditor/tools/image/index.js.map +1 -1
  334. package/components/RichTextEditor/tools/image/svgs.js +6 -11
  335. package/components/RichTextEditor/tools/image/svgs.js.map +1 -1
  336. package/components/RichTextEditor/tools/image/tunes.d.ts +2 -4
  337. package/components/RichTextEditor/tools/image/tunes.js +77 -103
  338. package/components/RichTextEditor/tools/image/tunes.js.map +1 -1
  339. package/components/RichTextEditor/tools/image/types.js +2 -4
  340. package/components/RichTextEditor/tools/image/types.js.map +1 -1
  341. package/components/RichTextEditor/tools/image/ui.d.ts +2 -4
  342. package/components/RichTextEditor/tools/image/ui.js +152 -185
  343. package/components/RichTextEditor/tools/image/ui.js.map +1 -1
  344. package/components/RichTextEditor/tools/paragraph/index.d.ts +3 -4
  345. package/components/RichTextEditor/tools/paragraph/index.js +349 -402
  346. package/components/RichTextEditor/tools/paragraph/index.js.map +1 -1
  347. package/components/RichTextEditor/tools/textColor/index.d.ts +1 -4
  348. package/components/RichTextEditor/tools/textColor/index.js +165 -213
  349. package/components/RichTextEditor/tools/textColor/index.js.map +1 -1
  350. package/components/RichTextEditor/tools/utils.d.ts +1 -1
  351. package/components/RichTextEditor/tools/utils.js +7 -14
  352. package/components/RichTextEditor/tools/utils.js.map +1 -1
  353. package/components/Routes.d.ts +1 -1
  354. package/components/Routes.js +16 -24
  355. package/components/Routes.js.map +1 -1
  356. package/components/SearchUI.d.ts +2 -1
  357. package/components/SearchUI.js +25 -69
  358. package/components/SearchUI.js.map +1 -1
  359. package/components/SimpleForm/SimpleForm.d.ts +19 -8
  360. package/components/SimpleForm/SimpleForm.js +74 -70
  361. package/components/SimpleForm/SimpleForm.js.map +1 -1
  362. package/components/SimpleForm/index.js +2 -29
  363. package/components/SimpleForm/index.js.map +1 -1
  364. package/components/SimpleUI/InputField.d.ts +3 -3
  365. package/components/SimpleUI/InputField.js +43 -50
  366. package/components/SimpleUI/InputField.js.map +1 -1
  367. package/components/SingleImageUpload.d.ts +22 -4
  368. package/components/SingleImageUpload.js +41 -77
  369. package/components/SingleImageUpload.js.map +1 -1
  370. package/components/SplitView/SplitView.d.ts +10 -8
  371. package/components/SplitView/SplitView.js +53 -72
  372. package/components/SplitView/SplitView.js.map +1 -1
  373. package/components/SplitView/index.js +2 -23
  374. package/components/SplitView/index.js.map +1 -1
  375. package/components/StateInspector.d.ts +8 -0
  376. package/components/StateInspector.js +36 -0
  377. package/components/StateInspector.js.map +1 -0
  378. package/components/Wcp.d.ts +13 -0
  379. package/components/Wcp.js +27 -0
  380. package/components/Wcp.js.map +1 -0
  381. package/components/index.d.ts +2 -0
  382. package/components/index.js +4 -11
  383. package/components/index.js.map +1 -1
  384. package/config/AdminConfig/Menu/MenuGroup.d.ts +62 -0
  385. package/config/AdminConfig/Menu/MenuGroup.js +14 -0
  386. package/config/AdminConfig/Menu/MenuGroup.js.map +1 -0
  387. package/config/AdminConfig/Menu/MenuItem.d.ts +43 -0
  388. package/config/AdminConfig/Menu/MenuItem.js +14 -0
  389. package/config/AdminConfig/Menu/MenuItem.js.map +1 -0
  390. package/config/AdminConfig/Menu/MenuLink.d.ts +43 -0
  391. package/config/AdminConfig/Menu/MenuLink.js +18 -0
  392. package/config/AdminConfig/Menu/MenuLink.js.map +1 -0
  393. package/config/AdminConfig/Menu/SupportMenu/SupportMenuItem.d.ts +43 -0
  394. package/config/AdminConfig/Menu/SupportMenu/SupportMenuItem.js +13 -0
  395. package/config/AdminConfig/Menu/SupportMenu/SupportMenuItem.js.map +1 -0
  396. package/config/AdminConfig/Menu/SupportMenu/SupportMenuLink.d.ts +24 -0
  397. package/config/AdminConfig/Menu/SupportMenu/SupportMenuLink.js +13 -0
  398. package/config/AdminConfig/Menu/SupportMenu/SupportMenuLink.js.map +1 -0
  399. package/config/AdminConfig/Menu/SupportMenu.d.ts +72 -0
  400. package/config/AdminConfig/Menu/SupportMenu.js +49 -0
  401. package/config/AdminConfig/Menu/SupportMenu.js.map +1 -0
  402. package/config/AdminConfig/Menu/UserMenu/UserMenuItem.d.ts +41 -0
  403. package/config/AdminConfig/Menu/UserMenu/UserMenuItem.js +7 -0
  404. package/config/AdminConfig/Menu/UserMenu/UserMenuItem.js.map +1 -0
  405. package/config/AdminConfig/Menu/UserMenu/UserMenuLink.d.ts +41 -0
  406. package/config/AdminConfig/Menu/UserMenu/UserMenuLink.js +7 -0
  407. package/config/AdminConfig/Menu/UserMenu/UserMenuLink.js.map +1 -0
  408. package/config/AdminConfig/Menu/UserMenu/UserMenuSeparator.d.ts +1 -0
  409. package/config/AdminConfig/Menu/UserMenu/UserMenuSeparator.js +3 -0
  410. package/config/AdminConfig/Menu/UserMenu/UserMenuSeparator.js.map +1 -0
  411. package/config/AdminConfig/Menu/UserMenu/types.d.ts +7 -0
  412. package/config/AdminConfig/Menu/UserMenu/types.js +3 -0
  413. package/config/AdminConfig/Menu/UserMenu/types.js.map +1 -0
  414. package/config/AdminConfig/Menu/UserMenu.d.ts +129 -0
  415. package/config/AdminConfig/Menu/UserMenu.js +61 -0
  416. package/config/AdminConfig/Menu/UserMenu.js.map +1 -0
  417. package/config/AdminConfig/Menu/types.d.ts +7 -0
  418. package/config/AdminConfig/Menu/types.js +3 -0
  419. package/config/AdminConfig/Menu/types.js.map +1 -0
  420. package/config/AdminConfig/Menu.d.ts +350 -0
  421. package/config/AdminConfig/Menu.js +75 -0
  422. package/config/AdminConfig/Menu.js.map +1 -0
  423. package/config/AdminConfig/Route.d.ts +3 -0
  424. package/config/AdminConfig/Route.js +8 -0
  425. package/config/AdminConfig/Route.js.map +1 -0
  426. package/config/AdminConfig/Tenant/TenantLogo.d.ts +23 -0
  427. package/config/AdminConfig/Tenant/TenantLogo.js +16 -0
  428. package/config/AdminConfig/Tenant/TenantLogo.js.map +1 -0
  429. package/config/AdminConfig/Tenant/TenantName.d.ts +23 -0
  430. package/config/AdminConfig/Tenant/TenantName.js +16 -0
  431. package/config/AdminConfig/Tenant/TenantName.js.map +1 -0
  432. package/config/AdminConfig/Tenant.d.ts +66 -0
  433. package/config/AdminConfig/Tenant.js +23 -0
  434. package/config/AdminConfig/Tenant.js.map +1 -0
  435. package/config/AdminConfig/Theme/assignColor.d.ts +2 -0
  436. package/config/AdminConfig/Theme/assignColor.js +22 -0
  437. package/config/AdminConfig/Theme/assignColor.js.map +1 -0
  438. package/config/AdminConfig/Theme/consts.d.ts +2 -0
  439. package/config/AdminConfig/Theme/consts.js +4 -0
  440. package/config/AdminConfig/Theme/consts.js.map +1 -0
  441. package/config/AdminConfig/Theme/types.d.ts +3 -0
  442. package/config/AdminConfig/Theme/types.js +3 -0
  443. package/config/AdminConfig/Theme/types.js.map +1 -0
  444. package/config/AdminConfig/Theme.d.ts +16 -0
  445. package/config/AdminConfig/Theme.js +22 -0
  446. package/config/AdminConfig/Theme.js.map +1 -0
  447. package/config/AdminConfig.d.ts +434 -0
  448. package/config/AdminConfig.js +47 -0
  449. package/config/AdminConfig.js.map +1 -0
  450. package/config/createAdminConfig.d.ts +57 -0
  451. package/config/createAdminConfig.js +94 -0
  452. package/config/createAdminConfig.js.map +1 -0
  453. package/hooks/index.d.ts +10 -0
  454. package/hooks/index.js +12 -0
  455. package/hooks/index.js.map +1 -0
  456. package/hooks/useConfirmationDialog.d.ts +1 -1
  457. package/hooks/useConfirmationDialog.js +28 -40
  458. package/hooks/useConfirmationDialog.js.map +1 -1
  459. package/hooks/useDialog.d.ts +21 -2
  460. package/hooks/useDialog.js +18 -22
  461. package/hooks/useDialog.js.map +1 -1
  462. package/hooks/useIsMounted.d.ts +3 -0
  463. package/hooks/useIsMounted.js +15 -0
  464. package/hooks/useIsMounted.js.map +1 -0
  465. package/hooks/useKeyHandler.d.ts +8 -0
  466. package/hooks/useKeyHandler.js +64 -0
  467. package/hooks/useKeyHandler.js.map +1 -0
  468. package/hooks/useModKey.d.ts +1 -0
  469. package/hooks/useModKey.js +30 -0
  470. package/hooks/useModKey.js.map +1 -0
  471. package/hooks/useShiftKey.d.ts +1 -0
  472. package/hooks/useShiftKey.js +33 -0
  473. package/hooks/useShiftKey.js.map +1 -0
  474. package/hooks/useSnackbar.d.ts +1 -0
  475. package/hooks/useSnackbar.js +25 -26
  476. package/hooks/useSnackbar.js.map +1 -1
  477. package/hooks/useStateIfMounted.d.ts +2 -0
  478. package/hooks/useStateIfMounted.js +16 -0
  479. package/hooks/useStateIfMounted.js.map +1 -0
  480. package/hooks/useStateWithCallback.d.ts +5 -0
  481. package/hooks/useStateWithCallback.js +18 -0
  482. package/hooks/useStateWithCallback.js.map +1 -0
  483. package/index.d.ts +21 -11
  484. package/index.js +52 -343
  485. package/index.js.map +1 -1
  486. package/package.json +61 -44
  487. package/plugins/MenuPlugin.d.ts +1 -1
  488. package/plugins/MenuPlugin.js +17 -41
  489. package/plugins/MenuPlugin.js.map +1 -1
  490. package/plugins/PermissionRendererPlugin.d.ts +1 -1
  491. package/plugins/PermissionRendererPlugin.js +17 -41
  492. package/plugins/PermissionRendererPlugin.js.map +1 -1
  493. package/plugins/uiLayoutRenderer/index.js +41 -49
  494. package/plugins/uiLayoutRenderer/index.js.map +1 -1
  495. package/styles.scss +7 -2
  496. package/types.d.ts +26 -44
  497. package/types.js +6 -4
  498. package/types.js.map +1 -1
  499. package/ui/UIElement.js +2 -17
  500. package/ui/UIElement.js.map +1 -1
  501. package/ui/UILayout.js +2 -17
  502. package/ui/UILayout.js.map +1 -1
  503. package/ui/UIRenderer.js +2 -11
  504. package/ui/UIRenderer.js.map +1 -1
  505. package/ui/UIView.js +2 -23
  506. package/ui/UIView.js.map +1 -1
  507. package/ui/elements/AccordionElement.d.ts +2 -1
  508. package/ui/elements/AccordionElement.js +45 -81
  509. package/ui/elements/AccordionElement.js.map +1 -1
  510. package/ui/elements/ButtonElement.d.ts +4 -3
  511. package/ui/elements/ButtonElement.js +48 -82
  512. package/ui/elements/ButtonElement.js.map +1 -1
  513. package/ui/elements/ButtonGroupElement.d.ts +2 -1
  514. package/ui/elements/ButtonGroupElement.js +25 -44
  515. package/ui/elements/ButtonGroupElement.js.map +1 -1
  516. package/ui/elements/GenericElement.js +2 -15
  517. package/ui/elements/GenericElement.js.map +1 -1
  518. package/ui/elements/LabelElement.d.ts +3 -2
  519. package/ui/elements/LabelElement.js +17 -40
  520. package/ui/elements/LabelElement.js.map +1 -1
  521. package/ui/elements/NavigationMenuElement.d.ts +5 -4
  522. package/ui/elements/NavigationMenuElement.js +71 -127
  523. package/ui/elements/NavigationMenuElement.js.map +1 -1
  524. package/ui/elements/PanelElement.js +3 -21
  525. package/ui/elements/PanelElement.js.map +1 -1
  526. package/ui/elements/PlaceholderElement.js +10 -32
  527. package/ui/elements/PlaceholderElement.js.map +1 -1
  528. package/ui/elements/SmallButtonElement.d.ts +4 -2
  529. package/ui/elements/SmallButtonElement.js +22 -43
  530. package/ui/elements/SmallButtonElement.js.map +1 -1
  531. package/ui/elements/TypographyElement.d.ts +3 -2
  532. package/ui/elements/TypographyElement.js +22 -47
  533. package/ui/elements/TypographyElement.js.map +1 -1
  534. package/ui/elements/ViewElement.js +2 -15
  535. package/ui/elements/ViewElement.js.map +1 -1
  536. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.d.ts +3 -2
  537. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js +19 -37
  538. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js.map +1 -1
  539. package/ui/elements/form/DynamicFieldsetElement.d.ts +3 -2
  540. package/ui/elements/form/DynamicFieldsetElement.js +92 -130
  541. package/ui/elements/form/DynamicFieldsetElement.js.map +1 -1
  542. package/ui/elements/form/FileManagerElement/EmptyStateElement.js +9 -25
  543. package/ui/elements/form/FileManagerElement/EmptyStateElement.js.map +1 -1
  544. package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.d.ts +4 -3
  545. package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js +42 -68
  546. package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js.map +1 -1
  547. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.d.ts +4 -3
  548. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js +69 -100
  549. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js.map +1 -1
  550. package/ui/elements/form/FileManagerElement/styled.d.ts +5 -9
  551. package/ui/elements/form/FileManagerElement/styled.js +86 -93
  552. package/ui/elements/form/FileManagerElement/styled.js.map +1 -1
  553. package/ui/elements/form/FileManagerElement.d.ts +3 -2
  554. package/ui/elements/form/FileManagerElement.js +45 -87
  555. package/ui/elements/form/FileManagerElement.js.map +1 -1
  556. package/ui/elements/form/FormElement.d.ts +3 -2
  557. package/ui/elements/form/FormElement.js +19 -44
  558. package/ui/elements/form/FormElement.js.map +1 -1
  559. package/ui/elements/form/FormFieldElement.d.ts +6 -5
  560. package/ui/elements/form/FormFieldElement.js +101 -161
  561. package/ui/elements/form/FormFieldElement.js.map +1 -1
  562. package/ui/elements/form/HiddenElement.d.ts +2 -1
  563. package/ui/elements/form/HiddenElement.js +23 -45
  564. package/ui/elements/form/HiddenElement.js.map +1 -1
  565. package/ui/elements/form/InputElement.d.ts +3 -2
  566. package/ui/elements/form/InputElement.js +30 -52
  567. package/ui/elements/form/InputElement.js.map +1 -1
  568. package/ui/elements/form/PasswordElement.d.ts +1 -1
  569. package/ui/elements/form/PasswordElement.js +28 -50
  570. package/ui/elements/form/PasswordElement.js.map +1 -1
  571. package/ui/elements/form/SelectElement.d.ts +2 -1
  572. package/ui/elements/form/SelectElement.js +40 -67
  573. package/ui/elements/form/SelectElement.js.map +1 -1
  574. package/ui/elements/form/TextareaElement.d.ts +3 -2
  575. package/ui/elements/form/TextareaElement.js +32 -53
  576. package/ui/elements/form/TextareaElement.js.map +1 -1
  577. package/ui/views/AdminView/ContentElement.js +32 -49
  578. package/ui/views/AdminView/ContentElement.js.map +1 -1
  579. package/ui/views/AdminView/HeaderElement.js +62 -98
  580. package/ui/views/AdminView/HeaderElement.js.map +1 -1
  581. package/ui/views/AdminView/HeaderSectionCenterElement.d.ts +2 -1
  582. package/ui/views/AdminView/HeaderSectionCenterElement.js +19 -40
  583. package/ui/views/AdminView/HeaderSectionCenterElement.js.map +1 -1
  584. package/ui/views/AdminView/HeaderSectionLeftElement.d.ts +2 -1
  585. package/ui/views/AdminView/HeaderSectionLeftElement.js +19 -40
  586. package/ui/views/AdminView/HeaderSectionLeftElement.js.map +1 -1
  587. package/ui/views/AdminView/HeaderSectionRightElement.d.ts +2 -1
  588. package/ui/views/AdminView/HeaderSectionRightElement.js +19 -40
  589. package/ui/views/AdminView/HeaderSectionRightElement.js.map +1 -1
  590. package/ui/views/AdminView/components/Dialog.d.ts +1 -1
  591. package/ui/views/AdminView/components/Dialog.js +32 -37
  592. package/ui/views/AdminView/components/Dialog.js.map +1 -1
  593. package/ui/views/AdminView/components/Hamburger.d.ts +1 -1
  594. package/ui/views/AdminView/components/Hamburger.js +14 -22
  595. package/ui/views/AdminView/components/Hamburger.js.map +1 -1
  596. package/ui/views/FormView/FormContainerElement.d.ts +4 -3
  597. package/ui/views/FormView/FormContainerElement.js +18 -49
  598. package/ui/views/FormView/FormContainerElement.js.map +1 -1
  599. package/ui/views/FormView/FormContentElement.d.ts +3 -0
  600. package/ui/views/FormView/FormContentElement.js +9 -21
  601. package/ui/views/FormView/FormContentElement.js.map +1 -1
  602. package/ui/views/FormView/FormFooterElement.d.ts +4 -3
  603. package/ui/views/FormView/FormFooterElement.js +12 -47
  604. package/ui/views/FormView/FormFooterElement.js.map +1 -1
  605. package/ui/views/FormView/FormHeaderElement.d.ts +3 -2
  606. package/ui/views/FormView/FormHeaderElement.js +28 -79
  607. package/ui/views/FormView/FormHeaderElement.js.map +1 -1
  608. package/ui/views/FormView.d.ts +3 -3
  609. package/ui/views/FormView.js +106 -152
  610. package/ui/views/FormView.js.map +1 -1
  611. package/ui/views/OverlayView/ContentElement.d.ts +2 -1
  612. package/ui/views/OverlayView/ContentElement.js +25 -38
  613. package/ui/views/OverlayView/ContentElement.js.map +1 -1
  614. package/ui/views/OverlayView/HeaderElement.d.ts +2 -1
  615. package/ui/views/OverlayView/HeaderElement.js +65 -105
  616. package/ui/views/OverlayView/HeaderElement.js.map +1 -1
  617. package/ui/views/OverlayView/HeaderTitleElement.d.ts +4 -2
  618. package/ui/views/OverlayView/HeaderTitleElement.js +23 -49
  619. package/ui/views/OverlayView/HeaderTitleElement.js.map +1 -1
  620. package/ui/views/OverlayView/useOverlayView.js +19 -29
  621. package/ui/views/OverlayView/useOverlayView.js.map +1 -1
  622. package/ui/views/OverlayView.d.ts +3 -2
  623. package/ui/views/OverlayView.js +80 -136
  624. package/ui/views/OverlayView.js.map +1 -1
  625. package/ui/views/SplitView/SplitViewPanelElement.d.ts +2 -1
  626. package/ui/views/SplitView/SplitViewPanelElement.js +29 -68
  627. package/ui/views/SplitView/SplitViewPanelElement.js.map +1 -1
  628. package/ui/views/SplitView.d.ts +1 -1
  629. package/ui/views/SplitView.js +58 -94
  630. package/ui/views/SplitView.js.map +1 -1
  631. package/base/ui/Menu.d.ts +0 -31
  632. package/base/ui/Menu.js +0 -137
  633. package/base/ui/Menu.js.map +0 -1
  634. package/base/ui/Search.d.ts +0 -19
  635. package/base/ui/Search.js +0 -63
  636. package/base/ui/Search.js.map +0 -1
  637. package/components/OverlayLayout/icons/close.svg +0 -13
  638. package/components/OverlayLayout/icons/navigate_before.svg +0 -16
  639. package/plugins/globalSearch/SearchBar.d.ts +0 -15
  640. package/plugins/globalSearch/SearchBar.js +0 -225
  641. package/plugins/globalSearch/SearchBar.js.map +0 -1
  642. package/plugins/globalSearch/SearchBarDropdown.d.ts +0 -23
  643. package/plugins/globalSearch/SearchBarDropdown.js +0 -83
  644. package/plugins/globalSearch/SearchBarDropdown.js.map +0 -1
  645. package/plugins/globalSearch/icons/round-search-24px.svg +0 -20
  646. package/plugins/globalSearch/index.d.ts +0 -7
  647. package/plugins/globalSearch/index.js +0 -16
  648. package/plugins/globalSearch/index.js.map +0 -1
  649. package/plugins/globalSearch/styled.d.ts +0 -20
  650. package/plugins/globalSearch/styled.js +0 -131
  651. package/plugins/globalSearch/styled.js.map +0 -1
  652. package/styles/material-theme-assignments.scss +0 -350
  653. package/styles/material.scss +0 -43
  654. package/styles/theme.scss +0 -76
  655. package/ui/views/AdminView/components/Snackbar.d.ts +0 -3
  656. package/ui/views/AdminView/components/Snackbar.js +0 -32
  657. package/ui/views/AdminView/components/Snackbar.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["Header","data","config","api","readOnly","alignments","ALIGNMENTS","typography","_CSS","block","styles","settingsButton","settingsButtonActive","wrapper","_settings","_data","normalizeData","settingsButtons","_element","getTag","newData","text","level","parseInt","defaultLevel","number","textAlign","TextAlign","START","holder","document","createElement","levels","length","forEach","selectTypeButton","classList","add","currentLevel","innerHTML","svg","dataset","addEventListener","setLevel","appendChild","push","alignment","currentAlignment","name","setAlignment","button","toggle","blockData","trim","toolsContent","getTextAlign","className","includes","undefined","parentNode","newHeader","replaceChild","tag","component","toLowerCase","typographyConfig","textAlignClass","remove","contentEditable","i18n","t","placeholder","find","levelItem","ALIGNMENT_ICONS","start","userSpecified","console","warn","availableLevels","filter","l","event","content","detail","tagName","reduce","prevLevel","currLevel","Math","abs","export","import","tags","icon","title"],"sources":["index.ts"],"sourcesContent":["import { API, HTMLPasteEvent } from \"@editorjs/editorjs\";\nimport { ALIGNMENTS, ALIGNMENT_ICONS, TextAlign, Alignment } from \"../utils\";\n\ninterface Typography {\n [key: string]: {\n label: string;\n component: string;\n className: string;\n };\n}\n\nexport interface HeaderData {\n text: string;\n level: number;\n textAlign?: TextAlign;\n alignment?: Alignment;\n className?: string;\n}\n\ninterface HeaderConfig {\n levels: number[];\n typography: Typography;\n placeholder?: string;\n defaultLevel?: number;\n}\n\ninterface HeaderArgs {\n data: HeaderData;\n config: HeaderConfig;\n api: any;\n readOnly: boolean;\n}\n\nclass Header {\n private readonly api: API;\n private readonly readOnly: boolean;\n private readonly settingsButtons: any[];\n private readonly _CSS: any;\n private readonly _settings: HeaderConfig;\n private _data: HeaderData;\n private _element: any;\n private readonly alignments: Alignment[];\n private readonly typography: Typography;\n /**\n * Render plugin`s main Element and fill it with saved data\n *\n * @param {{data: HeaderData, config: HeaderConfig, api: object}}\n * data — previously saved data\n * config - user config for Tool\n * api - Editor.js API\n * readOnly - read only mode flag\n */\n constructor({ data, config, api, readOnly }: HeaderArgs) {\n this.api = api;\n this.readOnly = readOnly;\n\n this.alignments = ALIGNMENTS;\n /**\n * Import typography from theme\n */\n this.typography = config.typography || null;\n\n /**\n * Styles\n *\n * @type {object}\n */\n this._CSS = {\n block: this.api.styles.block,\n settingsButton: this.api.styles.settingsButton,\n settingsButtonActive: this.api.styles.settingsButtonActive,\n wrapper: \"ce-header\"\n };\n\n /**\n * Tool's settings passed from Editor\n *\n * @type {HeaderConfig}\n * @private\n */\n this._settings = config;\n\n /**\n * Block's data\n *\n * @type {HeaderData}\n * @private\n */\n this._data = this.normalizeData(data);\n\n /**\n * List of settings buttons\n *\n * @type {HTMLElement[]}\n */\n this.settingsButtons = [];\n\n /**\n * Main Block wrapper\n *\n * @type {HTMLElement}\n * @private\n */\n this._element = this.getTag();\n }\n\n /**\n * Normalize input data\n *\n * @param {HeaderData} data - saved data to process\n *\n * @returns {HeaderData}\n * @private\n */\n normalizeData(data: Partial<HeaderData>): HeaderData {\n const newData: Partial<HeaderData> = {};\n\n if (typeof data !== \"object\") {\n data = {};\n }\n\n newData.text = data.text || \"\";\n newData.level = parseInt(data.level as unknown as string) || this.defaultLevel.number;\n newData.textAlign = data.textAlign || TextAlign.START;\n\n return newData as HeaderData;\n }\n\n /**\n * Return Tool's view\n *\n * @returns {HTMLHeadingElement}\n * @public\n */\n render() {\n return this._element;\n }\n\n /**\n * Create Block's settings block\n *\n * @returns {HTMLElement}\n */\n renderSettings() {\n const holder = document.createElement(\"DIV\");\n\n // do not add settings button, when only one level is configured\n if (this.levels.length <= 1) {\n return holder;\n }\n\n /** Add type selectors */\n this.levels.forEach(level => {\n const selectTypeButton = document.createElement(\"SPAN\");\n\n selectTypeButton.classList.add(this._CSS.settingsButton);\n\n /**\n * Highlight current level button\n */\n if (this.currentLevel.number === level.number) {\n selectTypeButton.classList.add(this._CSS.settingsButtonActive);\n }\n\n /**\n * Add SVG icon\n */\n selectTypeButton.innerHTML = level.svg;\n\n /**\n * Save level to its button\n */\n selectTypeButton.dataset[\"level\"] = level.number + \"\";\n\n /**\n * Set up click handler\n */\n selectTypeButton.addEventListener(\"click\", () => {\n this.setLevel(level.number);\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 /**\n * Add alignment selectors\n * */\n this.alignments.forEach(alignment => {\n const selectTypeButton = 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 return holder;\n }\n\n /**\n * Callback for Block's settings buttons\n *\n * @param {number} level - level to set\n */\n setLevel(level: number): void {\n this.data = {\n level: level,\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 parseInt(button.dataset.level) === level\n );\n });\n }\n\n /**\n * Callback for Block's settings buttons\n *\n * @param {number} alignment - level to set\n */\n setAlignment(alignment: Alignment) {\n this.data = {\n textAlign: alignment.name,\n text: this.data.text,\n level: this.data.level\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 * Method that specified how to merge two Text blocks.\n * Called by Editor.js by backspace at the beginning of the Block\n *\n * @param {HeaderData} data - saved data to merger with current block\n * @public\n */\n merge(data: HeaderData): void {\n this.data = {\n text: this.data.text + data.text,\n level: this.data.level,\n alignment: this.data.alignment\n };\n }\n\n /**\n * Validate Text block data:\n * - check for emptiness\n *\n * @param {HeaderData} blockData — data received after saving\n * @returns {boolean} false if saved data is not correct, otherwise true\n * @public\n */\n validate(blockData: HeaderData): boolean {\n return blockData.text.trim() !== \"\";\n }\n\n /**\n * Extract Tool's data from the view\n *\n * @param {HTMLHeadingElement} toolsContent - Text tools rendered view\n * @returns {HeaderData} - saved data\n * @public\n */\n save(toolsContent: HTMLHeadingElement): HeaderData {\n return {\n text: toolsContent.innerHTML,\n level: this.currentLevel.number,\n textAlign: this.getTextAlign(toolsContent.className),\n className: toolsContent.className\n };\n }\n\n /**\n * Extract textAlign from className\n *\n * @param {string} className - heading element className\n * @returns {TextAlign} textAlign\n */\n 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 * Allow Header to be converted to/from other blocks\n */\n static get conversionConfig() {\n return {\n export: \"text\", // use 'text' property for other blocks\n import: \"text\" // fill 'text' property from other block's export string\n };\n }\n\n /**\n * Sanitizer Rules\n */\n static get sanitize() {\n return {\n level: false,\n text: {}\n };\n }\n\n /**\n * Returns true to notify core that read-only is supported\n *\n * @returns {boolean}\n */\n static get isReadOnlySupported() {\n return true;\n }\n\n /**\n * Get current Tools`s data\n *\n * @returns {HeaderData} Current data\n * @private\n */\n get data(): HeaderData {\n this._data.text = this._element.innerHTML;\n this._data.level = this.currentLevel.number;\n this._data.textAlign = this.currentAlignment.name;\n\n return this._data;\n }\n\n /**\n * Store data in plugin:\n * - at the this._data property\n * - at the HTML\n *\n * @param {HeaderData} data — data to set\n * @private\n */\n set data(data: HeaderData) {\n this._data = this.normalizeData(data);\n\n /**\n * If level is set and block in DOM\n * then replace it to a new block\n */\n if (data.level !== undefined && this._element.parentNode) {\n /**\n * Create a new tag\n *\n * @type {HTMLHeadingElement}\n */\n const newHeader = this.getTag();\n\n /**\n * Save Block's content\n */\n newHeader.innerHTML = this._element.innerHTML;\n\n /**\n * Replace blocks\n */\n this._element.parentNode.replaceChild(newHeader, this._element);\n\n /**\n * Save new block to private variable\n *\n * @type {HTMLHeadingElement}\n * @private\n */\n this._element = newHeader;\n }\n\n /**\n * If data.text was passed then update block's content\n */\n if (data.text !== undefined) {\n this._element.innerHTML = this._data.text || \"\";\n }\n }\n\n /**\n * Get tag for target level\n * By default returns second-leveled header\n *\n * @returns {HTMLElement}\n */\n getTag() {\n /**\n * Create element for current Block's level\n */\n const tag = document.createElement(this.currentLevel.tag);\n\n /**\n * Add text to block\n */\n tag.innerHTML = this._data.text || \"\";\n\n /**\n * Add styles class from typography\n */\n if (this.typography) {\n const component = this.currentLevel.tag.toLowerCase();\n const typographyConfig = this.typography[component];\n tag.classList.add(typographyConfig.className);\n } else {\n /**\n * Add styles class\n */\n tag.classList.add(this._CSS.wrapper);\n }\n\n /**\n * Add Alignment class\n */\n this.alignments.forEach(alignment => {\n const textAlignClass = `ce-header-text--${alignment.name}`;\n if (alignment.name === this._data.textAlign) {\n tag.classList.add(textAlignClass);\n } else {\n tag.classList.remove(textAlignClass);\n }\n });\n\n /**\n * Make tag editable\n */\n tag.contentEditable = this.readOnly ? \"false\" : \"true\";\n\n /**\n * Add Placeholder\n */\n tag.dataset[\"placeholder\"] = this.api.i18n.t(this._settings.placeholder || \"\");\n\n return tag;\n }\n\n /**\n * Get current level\n *\n * @returns {level}\n */\n get currentLevel() {\n let level = this.levels.find(levelItem => levelItem.number === this._data.level);\n\n if (!level) {\n level = this.defaultLevel;\n }\n\n return level;\n }\n\n /**\n * Get current alignment\n *\n * @returns {alignment}\n */\n get currentAlignment() {\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 * Return default level\n *\n * @returns {level}\n */\n get defaultLevel() {\n /**\n * User can specify own default level value\n */\n if (this._settings.defaultLevel) {\n const userSpecified = this.levels.find(levelItem => {\n return levelItem.number === this._settings.defaultLevel;\n });\n\n if (userSpecified) {\n return userSpecified;\n } else {\n console.warn(\n \"(ง'̀-'́)ง Heading Tool: the default level specified was not found in available levels\"\n );\n }\n }\n\n /**\n * With no additional options, there will be H2 by default\n *\n * @type {level}\n */\n return this.levels[1];\n }\n\n /**\n * @typedef {object} level\n * @property {number} number - level number\n * @property {string} tag - tag corresponds with level number\n * @property {string} svg - icon\n */\n\n /**\n * Available header levels\n *\n * @returns {level[]}\n */\n get levels() {\n const availableLevels = [\n {\n number: 1,\n tag: \"H1\",\n svg: '<svg width=\"16\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.14 1.494V4.98h4.62V1.494c0-.498.098-.871.293-1.12A.927.927 0 0 1 7.82 0c.322 0 .583.123.782.37.2.246.3.62.3 1.124v9.588c0 .503-.101.88-.303 1.128a.957.957 0 0 1-.779.374.921.921 0 0 1-.77-.378c-.193-.251-.29-.626-.29-1.124V6.989H2.14v4.093c0 .503-.1.88-.302 1.128a.957.957 0 0 1-.778.374.921.921 0 0 1-.772-.378C.096 11.955 0 11.58 0 11.082V1.494C0 .996.095.623.285.374A.922.922 0 0 1 1.06 0c.321 0 .582.123.782.37.199.246.299.62.299 1.124zm11.653 9.985V5.27c-1.279.887-2.14 1.33-2.583 1.33a.802.802 0 0 1-.563-.228.703.703 0 0 1-.245-.529c0-.232.08-.402.241-.511.161-.11.446-.25.854-.424.61-.259 1.096-.532 1.462-.818a5.84 5.84 0 0 0 .97-.962c.282-.355.466-.573.552-.655.085-.082.246-.123.483-.123.267 0 .481.093.642.28.161.186.242.443.242.77v7.813c0 .914-.345 1.371-1.035 1.371-.307 0-.554-.093-.74-.28-.187-.186-.28-.461-.28-.825z\"/></svg>'\n },\n {\n number: 2,\n tag: \"H2\",\n svg: '<svg width=\"18\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.152 1.494V4.98h4.646V1.494c0-.498.097-.871.293-1.12A.934.934 0 0 1 7.863 0c.324 0 .586.123.786.37.2.246.301.62.301 1.124v9.588c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378c-.194-.251-.29-.626-.29-1.124V6.989H2.152v4.093c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378C.097 11.955 0 11.58 0 11.082V1.494C0 .996.095.623.286.374A.929.929 0 0 1 1.066 0c.323 0 .585.123.786.37.2.246.3.62.3 1.124zm10.99 9.288h3.527c.351 0 .62.072.804.216.185.144.277.34.277.588 0 .22-.073.408-.22.56-.146.154-.368.23-.665.23h-4.972c-.338 0-.601-.093-.79-.28a.896.896 0 0 1-.284-.659c0-.162.06-.377.182-.645s.255-.478.399-.631a38.617 38.617 0 0 1 1.621-1.598c.482-.444.827-.735 1.034-.875.369-.261.676-.523.922-.787.245-.263.432-.534.56-.81.129-.278.193-.549.193-.815 0-.288-.069-.546-.206-.773a1.428 1.428 0 0 0-.56-.53 1.618 1.618 0 0 0-.774-.19c-.59 0-1.054.26-1.392.777-.045.068-.12.252-.226.554-.106.302-.225.534-.358.696-.133.162-.328.243-.585.243a.76.76 0 0 1-.56-.223c-.149-.148-.223-.351-.223-.608 0-.31.07-.635.21-.972.139-.338.347-.645.624-.92a3.093 3.093 0 0 1 1.054-.665c.426-.169.924-.253 1.496-.253.69 0 1.277.108 1.764.324.315.144.592.343.83.595.24.252.425.544.558.875.133.33.2.674.2 1.03 0 .558-.14 1.066-.416 1.523-.277.457-.56.815-.848 1.074-.288.26-.771.666-1.45 1.22-.677.554-1.142.984-1.394 1.29a3.836 3.836 0 0 0-.331.44z\"/></svg>'\n },\n {\n number: 3,\n tag: \"H3\",\n svg: '<svg width=\"18\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.152 1.494V4.98h4.646V1.494c0-.498.097-.871.293-1.12A.934.934 0 0 1 7.863 0c.324 0 .586.123.786.37.2.246.301.62.301 1.124v9.588c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378c-.194-.251-.29-.626-.29-1.124V6.989H2.152v4.093c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378C.097 11.955 0 11.58 0 11.082V1.494C0 .996.095.623.286.374A.929.929 0 0 1 1.066 0c.323 0 .585.123.786.37.2.246.3.62.3 1.124zm11.61 4.919c.418 0 .778-.123 1.08-.368.301-.245.452-.597.452-1.055 0-.35-.12-.65-.36-.902-.241-.252-.566-.378-.974-.378-.277 0-.505.038-.684.116a1.1 1.1 0 0 0-.426.306 2.31 2.31 0 0 0-.296.49c-.093.2-.178.388-.255.565a.479.479 0 0 1-.245.225.965.965 0 0 1-.409.081.706.706 0 0 1-.5-.22c-.152-.148-.228-.345-.228-.59 0-.236.071-.484.214-.745a2.72 2.72 0 0 1 .627-.746 3.149 3.149 0 0 1 1.024-.568 4.122 4.122 0 0 1 1.368-.214c.44 0 .842.06 1.205.18.364.12.679.294.947.52.267.228.47.49.606.79.136.3.204.622.204.967 0 .454-.099.843-.296 1.168-.198.324-.48.64-.848.95.354.19.653.408.895.653.243.245.426.516.548.813.123.298.184.619.184.964 0 .413-.083.812-.248 1.198-.166.386-.41.73-.732 1.031a3.49 3.49 0 0 1-1.147.708c-.443.17-.932.256-1.467.256a3.512 3.512 0 0 1-1.464-.293 3.332 3.332 0 0 1-1.699-1.64c-.142-.314-.214-.573-.214-.777 0-.263.085-.475.255-.636a.89.89 0 0 1 .637-.242c.127 0 .25.037.367.112a.53.53 0 0 1 .232.27c.236.63.489 1.099.759 1.405.27.306.65.46 1.14.46a1.714 1.714 0 0 0 1.46-.824c.17-.273.256-.588.256-.947 0-.53-.145-.947-.436-1.249-.29-.302-.694-.453-1.212-.453-.09 0-.231.01-.422.028-.19.018-.313.027-.367.027-.25 0-.443-.062-.579-.187-.136-.125-.204-.299-.204-.521 0-.218.081-.394.245-.528.163-.134.406-.2.728-.2h.28z\"/></svg>'\n },\n {\n number: 4,\n tag: \"H4\",\n svg: '<svg width=\"20\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.152 1.494V4.98h4.646V1.494c0-.498.097-.871.293-1.12A.934.934 0 0 1 7.863 0c.324 0 .586.123.786.37.2.246.301.62.301 1.124v9.588c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378c-.194-.251-.29-.626-.29-1.124V6.989H2.152v4.093c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378C.097 11.955 0 11.58 0 11.082V1.494C0 .996.095.623.286.374A.929.929 0 0 1 1.066 0c.323 0 .585.123.786.37.2.246.3.62.3 1.124zm13.003 10.09v-1.252h-3.38c-.427 0-.746-.097-.96-.29-.213-.193-.32-.456-.32-.788 0-.085.016-.171.048-.259.031-.088.078-.18.141-.276.063-.097.128-.19.195-.28.068-.09.15-.2.25-.33l3.568-4.774a5.44 5.44 0 0 1 .576-.683.763.763 0 0 1 .542-.212c.682 0 1.023.39 1.023 1.171v5.212h.29c.346 0 .623.047.832.142.208.094.313.3.313.62 0 .26-.086.45-.256.568-.17.12-.427.179-.768.179h-.41v1.252c0 .346-.077.603-.23.771-.152.168-.356.253-.612.253a.78.78 0 0 1-.61-.26c-.154-.173-.232-.427-.232-.764zm-2.895-2.76h2.895V4.91L12.26 8.823z\"/></svg>'\n },\n {\n number: 5,\n tag: \"H5\",\n svg: '<svg width=\"18\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.152 1.494V4.98h4.646V1.494c0-.498.097-.871.293-1.12A.934.934 0 0 1 7.863 0c.324 0 .586.123.786.37.2.246.301.62.301 1.124v9.588c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378c-.194-.251-.29-.626-.29-1.124V6.989H2.152v4.093c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378C.097 11.955 0 11.58 0 11.082V1.494C0 .996.095.623.286.374A.929.929 0 0 1 1.066 0c.323 0 .585.123.786.37.2.246.3.62.3 1.124zm14.16 2.645h-3.234l-.388 2.205c.644-.344 1.239-.517 1.783-.517.436 0 .843.082 1.222.245.38.164.712.39.998.677.286.289.51.63.674 1.025.163.395.245.82.245 1.273 0 .658-.148 1.257-.443 1.797-.295.54-.72.97-1.276 1.287-.556.318-1.197.477-1.923.477-.813 0-1.472-.15-1.978-.45-.506-.3-.865-.643-1.076-1.031-.21-.388-.316-.727-.316-1.018 0-.177.073-.345.22-.504a.725.725 0 0 1 .556-.238c.381 0 .665.22.85.66.182.404.427.719.736.943.309.225.654.337 1.035.337.35 0 .656-.09.919-.272.263-.182.466-.431.61-.749.142-.318.214-.678.214-1.082 0-.436-.078-.808-.232-1.117a1.607 1.607 0 0 0-.62-.69 1.674 1.674 0 0 0-.864-.229c-.39 0-.67.048-.837.143-.168.095-.41.262-.725.5-.316.239-.576.358-.78.358a.843.843 0 0 1-.592-.242c-.173-.16-.259-.344-.259-.548 0-.022.025-.177.075-.463l.572-3.26c.063-.39.181-.675.354-.852.172-.177.454-.265.844-.265h3.595c.708 0 1.062.27 1.062.81a.711.711 0 0 1-.26.572c-.172.145-.426.218-.762.218z\"/></svg>'\n },\n {\n number: 6,\n tag: \"H6\",\n svg: '<svg width=\"18\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.152 1.494V4.98h4.646V1.494c0-.498.097-.871.293-1.12A.934.934 0 0 1 7.863 0c.324 0 .586.123.786.37.2.246.301.62.301 1.124v9.588c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378c-.194-.251-.29-.626-.29-1.124V6.989H2.152v4.093c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378C.097 11.955 0 11.58 0 11.082V1.494C0 .996.095.623.286.374A.929.929 0 0 1 1.066 0c.323 0 .585.123.786.37.2.246.3.62.3 1.124zM12.53 7.058a3.093 3.093 0 0 1 1.004-.814 2.734 2.734 0 0 1 1.214-.264c.43 0 .827.08 1.19.24.365.161.684.39.957.686.274.296.485.645.635 1.048a3.6 3.6 0 0 1 .223 1.262c0 .637-.145 1.216-.437 1.736-.292.52-.699.926-1.221 1.218-.522.292-1.114.438-1.774.438-.76 0-1.416-.186-1.967-.557-.552-.37-.974-.919-1.265-1.645-.292-.726-.438-1.613-.438-2.662 0-.855.088-1.62.265-2.293.176-.674.43-1.233.76-1.676.33-.443.73-.778 1.2-1.004.47-.226 1.006-.339 1.608-.339.579 0 1.089.113 1.53.34.44.225.773.506.997.84.224.335.335.656.335.964 0 .185-.07.354-.21.505a.698.698 0 0 1-.536.227.874.874 0 0 1-.529-.18 1.039 1.039 0 0 1-.36-.498 1.42 1.42 0 0 0-.495-.655 1.3 1.3 0 0 0-.786-.247c-.24 0-.479.069-.716.207a1.863 1.863 0 0 0-.6.56c-.33.479-.525 1.333-.584 2.563zm1.832 4.213c.456 0 .834-.186 1.133-.56.298-.373.447-.862.447-1.468 0-.412-.07-.766-.21-1.062a1.584 1.584 0 0 0-.577-.678 1.47 1.47 0 0 0-.807-.234c-.28 0-.548.074-.804.224-.255.149-.461.365-.617.647a2.024 2.024 0 0 0-.234.994c0 .61.158 1.12.475 1.527.316.407.714.61 1.194.61z\"/></svg>'\n }\n ];\n\n return this._settings.levels\n ? availableLevels.filter(l => this._settings.levels.includes(l.number))\n : availableLevels;\n }\n\n /**\n * Handle H1-H6 tags on paste to substitute it with header Tool\n *\n * @param {HTMLPasteEvent} event - event with pasted content\n */\n onPaste(event: HTMLPasteEvent) {\n const content = event.detail.data;\n\n /**\n * Define default level value\n *\n * @type {number}\n */\n let level = this.defaultLevel.number;\n\n switch (content.tagName) {\n case \"H1\":\n level = 1;\n break;\n case \"H2\":\n level = 2;\n break;\n case \"H3\":\n level = 3;\n break;\n case \"H4\":\n level = 4;\n break;\n case \"H5\":\n level = 5;\n break;\n case \"H6\":\n level = 6;\n break;\n }\n\n if (this._settings.levels) {\n // Fallback to nearest level when specified not available\n level = this._settings.levels.reduce((prevLevel, currLevel) => {\n return Math.abs(currLevel - level) < Math.abs(prevLevel - level)\n ? currLevel\n : prevLevel;\n });\n }\n\n this.data = {\n level,\n text: content.innerHTML\n };\n }\n\n /**\n * Used by Editor.js paste handling API.\n * Provides configuration to handle H1-H6 tags.\n *\n * @returns {{handler: (function(HTMLElement): {text: string}), tags: string[]}}\n */\n static get pasteConfig() {\n return {\n tags: [\"H1\", \"H2\", \"H3\", \"H4\", \"H5\", \"H6\"]\n };\n }\n\n /**\n * Get Tool toolbox settings\n * icon - Tool icon's SVG\n * title - title to show in toolbox\n *\n * @returns {{icon: string, title: string}}\n */\n static get toolbox() {\n return {\n icon:\n '<svg width=\"10\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 10 14\">\\n' +\n ' <path d=\"M7.6 8.15H2.25v4.525a1.125 1.125 0 0 1-2.25 0V1.125a1.125 1.125 0 1 1 2.25 0V5.9H7.6V1.125a1.125 1.125 0 0 1 2.25 0v11.55a1.125 1.125 0 0 1-2.25 0V8.15z\"/>\\n' +\n \"</svg>\",\n title: \"Heading\"\n };\n }\n}\n\nexport default Header;\n"],"mappings":"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"}
1
+ {"version":3,"names":["ALIGNMENTS","ALIGNMENT_ICONS","TextAlign","Header","constructor","data","config","api","readOnly","alignments","typography","_CSS","block","styles","settingsButton","settingsButtonActive","wrapper","_settings","_data","normalizeData","settingsButtons","_element","getTag","newData","text","level","parseInt","defaultLevel","number","textAlign","START","render","renderSettings","holder","document","createElement","levels","length","forEach","selectTypeButton","classList","add","currentLevel","innerHTML","svg","dataset","addEventListener","setLevel","appendChild","push","alignment","currentAlignment","name","setAlignment","button","toggle","merge","validate","blockData","trim","save","toolsContent","getTextAlign","className","includes","conversionConfig","export","import","sanitize","isReadOnlySupported","undefined","parentNode","newHeader","replaceChild","tag","component","toLowerCase","typographyConfig","textAlignClass","remove","contentEditable","i18n","t","placeholder","find","levelItem","start","userSpecified","console","warn","availableLevels","filter","l","onPaste","event","content","detail","tagName","reduce","prevLevel","currLevel","Math","abs","pasteConfig","tags","toolbox","icon","title"],"sources":["index.ts"],"sourcesContent":["import type { API, HTMLPasteEvent } from \"@editorjs/editorjs\";\nimport type { Alignment } from \"../utils\";\nimport { ALIGNMENTS, ALIGNMENT_ICONS, TextAlign } from \"../utils\";\n\ninterface Typography {\n [key: string]: {\n label: string;\n component: string;\n className: string;\n };\n}\n\nexport interface HeaderData {\n text: string;\n level: number;\n textAlign?: TextAlign;\n alignment?: Alignment;\n className?: string;\n}\n\ninterface HeaderConfig {\n levels: number[];\n typography: Typography;\n placeholder?: string;\n defaultLevel?: number;\n}\n\ninterface HeaderArgs {\n data: HeaderData;\n config: HeaderConfig;\n api: any;\n readOnly: boolean;\n}\n\nclass Header {\n private readonly api: API;\n private readonly readOnly: boolean;\n private readonly settingsButtons: any[];\n private readonly _CSS: any;\n private readonly _settings: HeaderConfig;\n private _data: HeaderData;\n private _element: any;\n private readonly alignments: Alignment[];\n private readonly typography: Typography;\n /**\n * Render plugin`s main Element and fill it with saved data\n *\n * @param {{data: HeaderData, config: HeaderConfig, api: object}}\n * data — previously saved data\n * config - user config for Tool\n * api - Editor.js API\n * readOnly - read only mode flag\n */\n constructor({ data, config, api, readOnly }: HeaderArgs) {\n this.api = api;\n this.readOnly = readOnly;\n\n this.alignments = ALIGNMENTS;\n /**\n * Import typography from theme\n */\n this.typography = config.typography || null;\n\n /**\n * Styles\n *\n * @type {object}\n */\n this._CSS = {\n block: this.api.styles.block,\n settingsButton: this.api.styles.settingsButton,\n settingsButtonActive: this.api.styles.settingsButtonActive,\n wrapper: \"ce-header\"\n };\n\n /**\n * Tool's settings passed from Editor\n *\n * @type {HeaderConfig}\n * @private\n */\n this._settings = config;\n\n /**\n * Block's data\n *\n * @type {HeaderData}\n * @private\n */\n this._data = this.normalizeData(data);\n\n /**\n * List of settings buttons\n *\n * @type {HTMLElement[]}\n */\n this.settingsButtons = [];\n\n /**\n * Main Block wrapper\n *\n * @type {HTMLElement}\n * @private\n */\n this._element = this.getTag();\n }\n\n /**\n * Normalize input data\n *\n * @param {HeaderData} data - saved data to process\n *\n * @returns {HeaderData}\n * @private\n */\n normalizeData(data: Partial<HeaderData>): HeaderData {\n const newData: Partial<HeaderData> = {};\n\n if (typeof data !== \"object\") {\n data = {};\n }\n\n newData.text = data.text || \"\";\n newData.level = parseInt(data.level as unknown as string) || this.defaultLevel.number;\n newData.textAlign = data.textAlign || TextAlign.START;\n\n return newData as HeaderData;\n }\n\n /**\n * Return Tool's view\n *\n * @returns {HTMLHeadingElement}\n * @public\n */\n render() {\n return this._element;\n }\n\n /**\n * Create Block's settings block\n *\n * @returns {HTMLElement}\n */\n renderSettings() {\n const holder = document.createElement(\"DIV\");\n\n // do not add settings button, when only one level is configured\n if (this.levels.length <= 1) {\n return holder;\n }\n\n /** Add type selectors */\n this.levels.forEach(level => {\n const selectTypeButton = document.createElement(\"SPAN\");\n\n selectTypeButton.classList.add(this._CSS.settingsButton);\n\n /**\n * Highlight current level button\n */\n if (this.currentLevel.number === level.number) {\n selectTypeButton.classList.add(this._CSS.settingsButtonActive);\n }\n\n /**\n * Add SVG icon\n */\n selectTypeButton.innerHTML = level.svg;\n\n /**\n * Save level to its button\n */\n selectTypeButton.dataset[\"level\"] = level.number + \"\";\n\n /**\n * Set up click handler\n */\n selectTypeButton.addEventListener(\"click\", () => {\n this.setLevel(level.number);\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 /**\n * Add alignment selectors\n * */\n this.alignments.forEach(alignment => {\n const selectTypeButton = 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 return holder;\n }\n\n /**\n * Callback for Block's settings buttons\n *\n * @param {number} level - level to set\n */\n setLevel(level: number): void {\n this.data = {\n level: level,\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 parseInt(button.dataset.level) === level\n );\n });\n }\n\n /**\n * Callback for Block's settings buttons\n *\n * @param {number} alignment - level to set\n */\n setAlignment(alignment: Alignment) {\n this.data = {\n textAlign: alignment.name,\n text: this.data.text,\n level: this.data.level\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 * Method that specified how to merge two Text blocks.\n * Called by Editor.js by backspace at the beginning of the Block\n *\n * @param {HeaderData} data - saved data to merger with current block\n * @public\n */\n merge(data: HeaderData): void {\n this.data = {\n text: this.data.text + data.text,\n level: this.data.level,\n alignment: this.data.alignment\n };\n }\n\n /**\n * Validate Text block data:\n * - check for emptiness\n *\n * @param {HeaderData} blockData — data received after saving\n * @returns {boolean} false if saved data is not correct, otherwise true\n * @public\n */\n validate(blockData: HeaderData): boolean {\n return blockData.text.trim() !== \"\";\n }\n\n /**\n * Extract Tool's data from the view\n *\n * @param {HTMLHeadingElement} toolsContent - Text tools rendered view\n * @returns {HeaderData} - saved data\n * @public\n */\n save(toolsContent: HTMLHeadingElement): HeaderData {\n return {\n text: toolsContent.innerHTML,\n level: this.currentLevel.number,\n textAlign: this.getTextAlign(toolsContent.className),\n className: toolsContent.className\n };\n }\n\n /**\n * Extract textAlign from className\n *\n * @param {string} className - heading element className\n * @returns {TextAlign} textAlign\n */\n 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 * Allow Header to be converted to/from other blocks\n */\n static get conversionConfig() {\n return {\n export: \"text\", // use 'text' property for other blocks\n import: \"text\" // fill 'text' property from other block's export string\n };\n }\n\n /**\n * Sanitizer Rules\n */\n static get sanitize() {\n return {\n level: false,\n text: {}\n };\n }\n\n /**\n * Returns true to notify core that read-only is supported\n *\n * @returns {boolean}\n */\n static get isReadOnlySupported() {\n return true;\n }\n\n /**\n * Get current Tools`s data\n *\n * @returns {HeaderData} Current data\n * @private\n */\n get data(): HeaderData {\n this._data.text = this._element.innerHTML;\n this._data.level = this.currentLevel.number;\n this._data.textAlign = this.currentAlignment.name;\n\n return this._data;\n }\n\n /**\n * Store data in plugin:\n * - at the this._data property\n * - at the HTML\n *\n * @param {HeaderData} data — data to set\n * @private\n */\n set data(data: HeaderData) {\n this._data = this.normalizeData(data);\n\n /**\n * If level is set and block in DOM\n * then replace it to a new block\n */\n if (data.level !== undefined && this._element.parentNode) {\n /**\n * Create a new tag\n *\n * @type {HTMLHeadingElement}\n */\n const newHeader = this.getTag();\n\n /**\n * Save Block's content\n */\n newHeader.innerHTML = this._element.innerHTML;\n\n /**\n * Replace blocks\n */\n this._element.parentNode.replaceChild(newHeader, this._element);\n\n /**\n * Save new block to private variable\n *\n * @type {HTMLHeadingElement}\n * @private\n */\n this._element = newHeader;\n }\n\n /**\n * If data.text was passed then update block's content\n */\n if (data.text !== undefined) {\n this._element.innerHTML = this._data.text || \"\";\n }\n }\n\n /**\n * Get tag for target level\n * By default returns second-leveled header\n *\n * @returns {HTMLElement}\n */\n getTag() {\n /**\n * Create element for current Block's level\n */\n const tag = document.createElement(this.currentLevel.tag);\n\n /**\n * Add text to block\n */\n tag.innerHTML = this._data.text || \"\";\n\n /**\n * Add styles class from typography\n */\n if (this.typography) {\n const component = this.currentLevel.tag.toLowerCase();\n const typographyConfig = this.typography[component];\n tag.classList.add(typographyConfig.className);\n } else {\n /**\n * Add styles class\n */\n tag.classList.add(this._CSS.wrapper);\n }\n\n /**\n * Add Alignment class\n */\n this.alignments.forEach(alignment => {\n const textAlignClass = `ce-header-text--${alignment.name}`;\n if (alignment.name === this._data.textAlign) {\n tag.classList.add(textAlignClass);\n } else {\n tag.classList.remove(textAlignClass);\n }\n });\n\n /**\n * Make tag editable\n */\n tag.contentEditable = this.readOnly ? \"false\" : \"true\";\n\n /**\n * Add Placeholder\n */\n tag.dataset[\"placeholder\"] = this.api.i18n.t(this._settings.placeholder || \"\");\n\n return tag;\n }\n\n /**\n * Get current level\n *\n * @returns {level}\n */\n get currentLevel() {\n let level = this.levels.find(levelItem => levelItem.number === this._data.level);\n\n if (!level) {\n level = this.defaultLevel;\n }\n\n return level;\n }\n\n /**\n * Get current alignment\n *\n * @returns {alignment}\n */\n get currentAlignment() {\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 * Return default level\n *\n * @returns {level}\n */\n get defaultLevel() {\n /**\n * User can specify own default level value\n */\n if (this._settings.defaultLevel) {\n const userSpecified = this.levels.find(levelItem => {\n return levelItem.number === this._settings.defaultLevel;\n });\n\n if (userSpecified) {\n return userSpecified;\n } else {\n console.warn(\n \"(ง'̀-'́)ง Heading Tool: the default level specified was not found in available levels\"\n );\n }\n }\n\n /**\n * With no additional options, there will be H2 by default\n *\n * @type {level}\n */\n return this.levels[1];\n }\n\n /**\n * @typedef {object} level\n * @property {number} number - level number\n * @property {string} tag - tag corresponds with level number\n * @property {string} svg - icon\n */\n\n /**\n * Available header levels\n *\n * @returns {level[]}\n */\n get levels() {\n const availableLevels = [\n {\n number: 1,\n tag: \"H1\",\n svg: '<svg width=\"16\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.14 1.494V4.98h4.62V1.494c0-.498.098-.871.293-1.12A.927.927 0 0 1 7.82 0c.322 0 .583.123.782.37.2.246.3.62.3 1.124v9.588c0 .503-.101.88-.303 1.128a.957.957 0 0 1-.779.374.921.921 0 0 1-.77-.378c-.193-.251-.29-.626-.29-1.124V6.989H2.14v4.093c0 .503-.1.88-.302 1.128a.957.957 0 0 1-.778.374.921.921 0 0 1-.772-.378C.096 11.955 0 11.58 0 11.082V1.494C0 .996.095.623.285.374A.922.922 0 0 1 1.06 0c.321 0 .582.123.782.37.199.246.299.62.299 1.124zm11.653 9.985V5.27c-1.279.887-2.14 1.33-2.583 1.33a.802.802 0 0 1-.563-.228.703.703 0 0 1-.245-.529c0-.232.08-.402.241-.511.161-.11.446-.25.854-.424.61-.259 1.096-.532 1.462-.818a5.84 5.84 0 0 0 .97-.962c.282-.355.466-.573.552-.655.085-.082.246-.123.483-.123.267 0 .481.093.642.28.161.186.242.443.242.77v7.813c0 .914-.345 1.371-1.035 1.371-.307 0-.554-.093-.74-.28-.187-.186-.28-.461-.28-.825z\"/></svg>'\n },\n {\n number: 2,\n tag: \"H2\",\n svg: '<svg width=\"18\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.152 1.494V4.98h4.646V1.494c0-.498.097-.871.293-1.12A.934.934 0 0 1 7.863 0c.324 0 .586.123.786.37.2.246.301.62.301 1.124v9.588c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378c-.194-.251-.29-.626-.29-1.124V6.989H2.152v4.093c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378C.097 11.955 0 11.58 0 11.082V1.494C0 .996.095.623.286.374A.929.929 0 0 1 1.066 0c.323 0 .585.123.786.37.2.246.3.62.3 1.124zm10.99 9.288h3.527c.351 0 .62.072.804.216.185.144.277.34.277.588 0 .22-.073.408-.22.56-.146.154-.368.23-.665.23h-4.972c-.338 0-.601-.093-.79-.28a.896.896 0 0 1-.284-.659c0-.162.06-.377.182-.645s.255-.478.399-.631a38.617 38.617 0 0 1 1.621-1.598c.482-.444.827-.735 1.034-.875.369-.261.676-.523.922-.787.245-.263.432-.534.56-.81.129-.278.193-.549.193-.815 0-.288-.069-.546-.206-.773a1.428 1.428 0 0 0-.56-.53 1.618 1.618 0 0 0-.774-.19c-.59 0-1.054.26-1.392.777-.045.068-.12.252-.226.554-.106.302-.225.534-.358.696-.133.162-.328.243-.585.243a.76.76 0 0 1-.56-.223c-.149-.148-.223-.351-.223-.608 0-.31.07-.635.21-.972.139-.338.347-.645.624-.92a3.093 3.093 0 0 1 1.054-.665c.426-.169.924-.253 1.496-.253.69 0 1.277.108 1.764.324.315.144.592.343.83.595.24.252.425.544.558.875.133.33.2.674.2 1.03 0 .558-.14 1.066-.416 1.523-.277.457-.56.815-.848 1.074-.288.26-.771.666-1.45 1.22-.677.554-1.142.984-1.394 1.29a3.836 3.836 0 0 0-.331.44z\"/></svg>'\n },\n {\n number: 3,\n tag: \"H3\",\n svg: '<svg width=\"18\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.152 1.494V4.98h4.646V1.494c0-.498.097-.871.293-1.12A.934.934 0 0 1 7.863 0c.324 0 .586.123.786.37.2.246.301.62.301 1.124v9.588c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378c-.194-.251-.29-.626-.29-1.124V6.989H2.152v4.093c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378C.097 11.955 0 11.58 0 11.082V1.494C0 .996.095.623.286.374A.929.929 0 0 1 1.066 0c.323 0 .585.123.786.37.2.246.3.62.3 1.124zm11.61 4.919c.418 0 .778-.123 1.08-.368.301-.245.452-.597.452-1.055 0-.35-.12-.65-.36-.902-.241-.252-.566-.378-.974-.378-.277 0-.505.038-.684.116a1.1 1.1 0 0 0-.426.306 2.31 2.31 0 0 0-.296.49c-.093.2-.178.388-.255.565a.479.479 0 0 1-.245.225.965.965 0 0 1-.409.081.706.706 0 0 1-.5-.22c-.152-.148-.228-.345-.228-.59 0-.236.071-.484.214-.745a2.72 2.72 0 0 1 .627-.746 3.149 3.149 0 0 1 1.024-.568 4.122 4.122 0 0 1 1.368-.214c.44 0 .842.06 1.205.18.364.12.679.294.947.52.267.228.47.49.606.79.136.3.204.622.204.967 0 .454-.099.843-.296 1.168-.198.324-.48.64-.848.95.354.19.653.408.895.653.243.245.426.516.548.813.123.298.184.619.184.964 0 .413-.083.812-.248 1.198-.166.386-.41.73-.732 1.031a3.49 3.49 0 0 1-1.147.708c-.443.17-.932.256-1.467.256a3.512 3.512 0 0 1-1.464-.293 3.332 3.332 0 0 1-1.699-1.64c-.142-.314-.214-.573-.214-.777 0-.263.085-.475.255-.636a.89.89 0 0 1 .637-.242c.127 0 .25.037.367.112a.53.53 0 0 1 .232.27c.236.63.489 1.099.759 1.405.27.306.65.46 1.14.46a1.714 1.714 0 0 0 1.46-.824c.17-.273.256-.588.256-.947 0-.53-.145-.947-.436-1.249-.29-.302-.694-.453-1.212-.453-.09 0-.231.01-.422.028-.19.018-.313.027-.367.027-.25 0-.443-.062-.579-.187-.136-.125-.204-.299-.204-.521 0-.218.081-.394.245-.528.163-.134.406-.2.728-.2h.28z\"/></svg>'\n },\n {\n number: 4,\n tag: \"H4\",\n svg: '<svg width=\"20\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.152 1.494V4.98h4.646V1.494c0-.498.097-.871.293-1.12A.934.934 0 0 1 7.863 0c.324 0 .586.123.786.37.2.246.301.62.301 1.124v9.588c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378c-.194-.251-.29-.626-.29-1.124V6.989H2.152v4.093c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378C.097 11.955 0 11.58 0 11.082V1.494C0 .996.095.623.286.374A.929.929 0 0 1 1.066 0c.323 0 .585.123.786.37.2.246.3.62.3 1.124zm13.003 10.09v-1.252h-3.38c-.427 0-.746-.097-.96-.29-.213-.193-.32-.456-.32-.788 0-.085.016-.171.048-.259.031-.088.078-.18.141-.276.063-.097.128-.19.195-.28.068-.09.15-.2.25-.33l3.568-4.774a5.44 5.44 0 0 1 .576-.683.763.763 0 0 1 .542-.212c.682 0 1.023.39 1.023 1.171v5.212h.29c.346 0 .623.047.832.142.208.094.313.3.313.62 0 .26-.086.45-.256.568-.17.12-.427.179-.768.179h-.41v1.252c0 .346-.077.603-.23.771-.152.168-.356.253-.612.253a.78.78 0 0 1-.61-.26c-.154-.173-.232-.427-.232-.764zm-2.895-2.76h2.895V4.91L12.26 8.823z\"/></svg>'\n },\n {\n number: 5,\n tag: \"H5\",\n svg: '<svg width=\"18\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.152 1.494V4.98h4.646V1.494c0-.498.097-.871.293-1.12A.934.934 0 0 1 7.863 0c.324 0 .586.123.786.37.2.246.301.62.301 1.124v9.588c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378c-.194-.251-.29-.626-.29-1.124V6.989H2.152v4.093c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378C.097 11.955 0 11.58 0 11.082V1.494C0 .996.095.623.286.374A.929.929 0 0 1 1.066 0c.323 0 .585.123.786.37.2.246.3.62.3 1.124zm14.16 2.645h-3.234l-.388 2.205c.644-.344 1.239-.517 1.783-.517.436 0 .843.082 1.222.245.38.164.712.39.998.677.286.289.51.63.674 1.025.163.395.245.82.245 1.273 0 .658-.148 1.257-.443 1.797-.295.54-.72.97-1.276 1.287-.556.318-1.197.477-1.923.477-.813 0-1.472-.15-1.978-.45-.506-.3-.865-.643-1.076-1.031-.21-.388-.316-.727-.316-1.018 0-.177.073-.345.22-.504a.725.725 0 0 1 .556-.238c.381 0 .665.22.85.66.182.404.427.719.736.943.309.225.654.337 1.035.337.35 0 .656-.09.919-.272.263-.182.466-.431.61-.749.142-.318.214-.678.214-1.082 0-.436-.078-.808-.232-1.117a1.607 1.607 0 0 0-.62-.69 1.674 1.674 0 0 0-.864-.229c-.39 0-.67.048-.837.143-.168.095-.41.262-.725.5-.316.239-.576.358-.78.358a.843.843 0 0 1-.592-.242c-.173-.16-.259-.344-.259-.548 0-.022.025-.177.075-.463l.572-3.26c.063-.39.181-.675.354-.852.172-.177.454-.265.844-.265h3.595c.708 0 1.062.27 1.062.81a.711.711 0 0 1-.26.572c-.172.145-.426.218-.762.218z\"/></svg>'\n },\n {\n number: 6,\n tag: \"H6\",\n svg: '<svg width=\"18\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.152 1.494V4.98h4.646V1.494c0-.498.097-.871.293-1.12A.934.934 0 0 1 7.863 0c.324 0 .586.123.786.37.2.246.301.62.301 1.124v9.588c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378c-.194-.251-.29-.626-.29-1.124V6.989H2.152v4.093c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378C.097 11.955 0 11.58 0 11.082V1.494C0 .996.095.623.286.374A.929.929 0 0 1 1.066 0c.323 0 .585.123.786.37.2.246.3.62.3 1.124zM12.53 7.058a3.093 3.093 0 0 1 1.004-.814 2.734 2.734 0 0 1 1.214-.264c.43 0 .827.08 1.19.24.365.161.684.39.957.686.274.296.485.645.635 1.048a3.6 3.6 0 0 1 .223 1.262c0 .637-.145 1.216-.437 1.736-.292.52-.699.926-1.221 1.218-.522.292-1.114.438-1.774.438-.76 0-1.416-.186-1.967-.557-.552-.37-.974-.919-1.265-1.645-.292-.726-.438-1.613-.438-2.662 0-.855.088-1.62.265-2.293.176-.674.43-1.233.76-1.676.33-.443.73-.778 1.2-1.004.47-.226 1.006-.339 1.608-.339.579 0 1.089.113 1.53.34.44.225.773.506.997.84.224.335.335.656.335.964 0 .185-.07.354-.21.505a.698.698 0 0 1-.536.227.874.874 0 0 1-.529-.18 1.039 1.039 0 0 1-.36-.498 1.42 1.42 0 0 0-.495-.655 1.3 1.3 0 0 0-.786-.247c-.24 0-.479.069-.716.207a1.863 1.863 0 0 0-.6.56c-.33.479-.525 1.333-.584 2.563zm1.832 4.213c.456 0 .834-.186 1.133-.56.298-.373.447-.862.447-1.468 0-.412-.07-.766-.21-1.062a1.584 1.584 0 0 0-.577-.678 1.47 1.47 0 0 0-.807-.234c-.28 0-.548.074-.804.224-.255.149-.461.365-.617.647a2.024 2.024 0 0 0-.234.994c0 .61.158 1.12.475 1.527.316.407.714.61 1.194.61z\"/></svg>'\n }\n ];\n\n return this._settings.levels\n ? availableLevels.filter(l => this._settings.levels.includes(l.number))\n : availableLevels;\n }\n\n /**\n * Handle H1-H6 tags on paste to substitute it with header Tool\n *\n * @param {HTMLPasteEvent} event - event with pasted content\n */\n onPaste(event: HTMLPasteEvent) {\n const content = event.detail.data;\n\n /**\n * Define default level value\n *\n * @type {number}\n */\n let level = this.defaultLevel.number;\n\n switch (content.tagName) {\n case \"H1\":\n level = 1;\n break;\n case \"H2\":\n level = 2;\n break;\n case \"H3\":\n level = 3;\n break;\n case \"H4\":\n level = 4;\n break;\n case \"H5\":\n level = 5;\n break;\n case \"H6\":\n level = 6;\n break;\n }\n\n if (this._settings.levels) {\n // Fallback to nearest level when specified not available\n level = this._settings.levels.reduce((prevLevel, currLevel) => {\n return Math.abs(currLevel - level) < Math.abs(prevLevel - level)\n ? currLevel\n : prevLevel;\n });\n }\n\n this.data = {\n level,\n text: content.innerHTML\n };\n }\n\n /**\n * Used by Editor.js paste handling API.\n * Provides configuration to handle H1-H6 tags.\n *\n * @returns {{handler: (function(HTMLElement): {text: string}), tags: string[]}}\n */\n static get pasteConfig() {\n return {\n tags: [\"H1\", \"H2\", \"H3\", \"H4\", \"H5\", \"H6\"]\n };\n }\n\n /**\n * Get Tool toolbox settings\n * icon - Tool icon's SVG\n * title - title to show in toolbox\n *\n * @returns {{icon: string, title: string}}\n */\n static get toolbox() {\n return {\n icon:\n '<svg width=\"10\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 10 14\">\\n' +\n ' <path d=\"M7.6 8.15H2.25v4.525a1.125 1.125 0 0 1-2.25 0V1.125a1.125 1.125 0 1 1 2.25 0V5.9H7.6V1.125a1.125 1.125 0 0 1 2.25 0v11.55a1.125 1.125 0 0 1-2.25 0V8.15z\"/>\\n' +\n \"</svg>\",\n title: \"Heading\"\n };\n }\n}\n\nexport default Header;\n"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,5 @@
1
- /// <reference types="react" />
2
- /// <reference types="web" />
3
- import { API } from "@editorjs/editorjs";
4
- import { Tune } from "./types";
1
+ import type { API } from "@editorjs/editorjs";
2
+ import type { Tune } from "./types";
5
3
  interface File {
6
4
  src: string;
7
5
  }
@@ -1,39 +1,44 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
- var _ui = _interopRequireDefault(require("./ui"));
12
- var _tunes = _interopRequireDefault(require("./tunes"));
13
- var _svgs = _interopRequireDefault(require("./svgs"));
14
- var defaultGetFileSrc = function defaultGetFileSrc(file) {
1
+ import Ui from "./ui";
2
+ import Tunes from "./tunes";
3
+ import svgs from "./svgs";
4
+ const defaultGetFileSrc = file => {
15
5
  if (typeof file === "string") {
16
6
  return file;
17
7
  }
18
8
  return file.src;
19
9
  };
20
- var defaultOnSelectFile = function defaultOnSelectFile(file) {
10
+ const defaultOnSelectFile = file => {
21
11
  return file.src;
22
12
  };
23
- var ImageTool = /*#__PURE__*/function () {
24
- function ImageTool(_ref) {
25
- var _this = this;
26
- var data = _ref.data,
27
- config = _ref.config,
28
- api = _ref.api,
29
- readOnly = _ref.readOnly;
30
- (0, _classCallCheck2.default)(this, ImageTool);
31
- (0, _defineProperty2.default)(this, "api", void 0);
32
- (0, _defineProperty2.default)(this, "readOnly", void 0);
33
- (0, _defineProperty2.default)(this, "config", void 0);
34
- (0, _defineProperty2.default)(this, "tunes", void 0);
35
- (0, _defineProperty2.default)(this, "ui", void 0);
36
- (0, _defineProperty2.default)(this, "_data", void 0);
13
+ export default class ImageTool {
14
+ /**
15
+ * Notify core that read-only mode is supported
16
+ *
17
+ * @returns {boolean}
18
+ */
19
+ static get isReadOnlySupported() {
20
+ return true;
21
+ }
22
+
23
+ /**
24
+ * Get Tool toolbox settings
25
+ * icon - Tool icon's SVG
26
+ * title - title to show in toolbox
27
+ *
28
+ * @returns {{icon: string, title: string}}
29
+ */
30
+ static get toolbox() {
31
+ return {
32
+ icon: svgs.toolbox,
33
+ title: "Image"
34
+ };
35
+ }
36
+ constructor({
37
+ data,
38
+ config,
39
+ api,
40
+ readOnly
41
+ }) {
37
42
  this.api = api;
38
43
  this.readOnly = readOnly;
39
44
  this.config = {
@@ -46,26 +51,24 @@ var ImageTool = /*#__PURE__*/function () {
46
51
  /**
47
52
  * Module for working with UI
48
53
  */
49
- this.ui = new _ui.default({
50
- api: api,
54
+ this.ui = new Ui({
55
+ api,
51
56
  config: this.config,
52
- onSelectFile: function onSelectFile() {
53
- _this.config.context.showFileManager(function (file) {
54
- _this.image = _this.config.onSelectFile(file);
57
+ onSelectFile: () => {
58
+ this.config.context.showFileManager(file => {
59
+ this.image = this.config.onSelectFile(file);
55
60
  });
56
61
  },
57
- readOnly: readOnly
62
+ readOnly
58
63
  });
59
64
 
60
65
  /**
61
66
  * Module for working with tunes
62
67
  */
63
- this.tunes = new _tunes.default({
64
- api: api,
68
+ this.tunes = new Tunes({
69
+ api,
65
70
  actions: this.config.actions,
66
- onChange: function onChange(tuneName) {
67
- return _this.tuneToggled(tuneName);
68
- }
71
+ onChange: tuneName => this.tuneToggled(tuneName)
69
72
  });
70
73
 
71
74
  /**
@@ -82,163 +85,118 @@ var ImageTool = /*#__PURE__*/function () {
82
85
  *
83
86
  * @returns {HTMLDivElement}
84
87
  */
85
- (0, _createClass2.default)(ImageTool, [{
86
- key: "render",
87
- value: function render() {
88
- return this.ui.render(this.data);
89
- }
88
+ render() {
89
+ return this.ui.render(this.data);
90
+ }
90
91
 
91
- /**
92
- * Return Block data
93
- *
94
- * @public
95
- *
96
- * @returns {ImageToolData}
97
- */
98
- }, {
99
- key: "save",
100
- value: function save() {
101
- var caption = this.ui.nodes.caption;
102
- this._data.caption = caption.innerHTML;
103
- return this.data;
104
- }
92
+ /**
93
+ * Return Block data
94
+ *
95
+ * @public
96
+ *
97
+ * @returns {ImageToolData}
98
+ */
99
+ save() {
100
+ const caption = this.ui.nodes.caption;
101
+ this._data.caption = caption.innerHTML;
102
+ return this.data;
103
+ }
105
104
 
106
- /**
107
- * Makes buttons with tunes: stretch image
108
- *
109
- * @public
110
- *
111
- * @returns {Element}
112
- */
113
- }, {
114
- key: "renderSettings",
115
- value: function renderSettings() {
116
- return this.tunes.render(this.data);
117
- }
105
+ /**
106
+ * Makes buttons with tunes: stretch image
107
+ *
108
+ * @public
109
+ *
110
+ * @returns {Element}
111
+ */
112
+ renderSettings() {
113
+ return this.tunes.render(this.data);
114
+ }
118
115
 
119
- /**
120
- * Stores all Tool's data
121
- *
122
- * @private
123
- *
124
- * @param {ImageToolData} data - data in Image Tool format
125
- */
126
- }, {
127
- key: "data",
128
- get:
129
- /**
130
- * Return Tool data
131
- *
132
- * @private
133
- *
134
- * @returns {ImageToolData}
135
- */
136
- function get() {
137
- return this._data;
138
- }
116
+ /**
117
+ * Stores all Tool's data
118
+ *
119
+ * @private
120
+ *
121
+ * @param {ImageToolData} data - data in Image Tool format
122
+ */
123
+ set data(data) {
124
+ this.image = data.file;
125
+ this._data.caption = data.caption || "";
126
+ this.ui.fillCaption(this._data.caption);
127
+ Tunes.tunes.forEach(({
128
+ name
129
+ }) => {
130
+ const tune = name;
131
+ const initialValue = data[tune];
132
+ const value = initialValue === true || initialValue === "true";
133
+ this.setTune(tune, value);
134
+ });
135
+ }
139
136
 
140
- /**
141
- * Set new image file
142
- *
143
- * @private
144
- *
145
- * @param {object} file - uploaded file data
146
- */,
147
- set: function set(data) {
148
- var _this2 = this;
149
- this.image = data.file;
150
- this._data.caption = data.caption || "";
151
- this.ui.fillCaption(this._data.caption);
152
- _tunes.default.tunes.forEach(function (_ref2) {
153
- var name = _ref2.name;
154
- var tune = name;
155
- var initialValue = data[tune];
156
- var value = initialValue === true || initialValue === "true";
157
- _this2.setTune(tune, value);
158
- });
159
- }
160
- }, {
161
- key: "image",
162
- set: function set(file) {
163
- this._data.file = file || {};
164
- if (file) {
165
- this.ui.fillImage(this.config.getFileSrc(file));
166
- }
167
- }
137
+ /**
138
+ * Return Tool data
139
+ *
140
+ * @private
141
+ *
142
+ * @returns {ImageToolData}
143
+ */
144
+ get data() {
145
+ return this._data;
146
+ }
168
147
 
169
- /**
170
- * Callback fired when Block Tune is activated
171
- *
172
- * @private
173
- *
174
- * @param {string} tuneName - tune that has been clicked
175
- * @returns {void}
176
- */
177
- }, {
178
- key: "tuneToggled",
179
- value: function tuneToggled(tuneName) {
180
- // inverse tune state
181
- this.setTune(tuneName, !this._data[tuneName]);
148
+ /**
149
+ * Set new image file
150
+ *
151
+ * @private
152
+ *
153
+ * @param {object} file - uploaded file data
154
+ */
155
+ set image(file) {
156
+ this._data.file = file || {};
157
+ if (file) {
158
+ this.ui.fillImage(this.config.getFileSrc(file));
182
159
  }
160
+ }
183
161
 
184
- /**
185
- * Set one tune
186
- *
187
- * @param {string} tuneName - {@link Tunes.tunes}
188
- * @param {boolean} value - tune state
189
- * @returns {void}
190
- */
191
- }, {
192
- key: "setTune",
193
- value: function setTune(tuneName, value) {
194
- var _this3 = this;
195
- this._data[tuneName] = value;
196
- this.ui.applyTune(tuneName, value);
197
- if (tuneName === "stretched") {
198
- /**
199
- * Wait until the API is ready
200
- */
201
- Promise.resolve().then(function () {
202
- var blockId = _this3.api.blocks.getCurrentBlockIndex();
203
- _this3.api.blocks.stretchBlock(blockId, value);
204
- }).catch(function (err) {
205
- console.error(err);
206
- });
207
- }
208
- }
209
- }, {
210
- key: "isReadOnly",
211
- value: function isReadOnly() {
212
- return this.readOnly;
213
- }
214
- }], [{
215
- key: "isReadOnlySupported",
216
- get:
217
- /**
218
- * Notify core that read-only mode is supported
219
- *
220
- * @returns {boolean}
221
- */
222
- function get() {
223
- return true;
224
- }
162
+ /**
163
+ * Callback fired when Block Tune is activated
164
+ *
165
+ * @private
166
+ *
167
+ * @param {string} tuneName - tune that has been clicked
168
+ * @returns {void}
169
+ */
170
+ tuneToggled(tuneName) {
171
+ // inverse tune state
172
+ this.setTune(tuneName, !this._data[tuneName]);
173
+ }
225
174
 
226
- /**
227
- * Get Tool toolbox settings
228
- * icon - Tool icon's SVG
229
- * title - title to show in toolbox
230
- *
231
- * @returns {{icon: string, title: string}}
232
- */
233
- }, {
234
- key: "toolbox",
235
- get: function get() {
236
- return {
237
- icon: _svgs.default.toolbox,
238
- title: "Image"
239
- };
175
+ /**
176
+ * Set one tune
177
+ *
178
+ * @param {string} tuneName - {@link Tunes.tunes}
179
+ * @param {boolean} value - tune state
180
+ * @returns {void}
181
+ */
182
+ setTune(tuneName, value) {
183
+ this._data[tuneName] = value;
184
+ this.ui.applyTune(tuneName, value);
185
+ if (tuneName === "stretched") {
186
+ /**
187
+ * Wait until the API is ready
188
+ */
189
+ Promise.resolve().then(() => {
190
+ const blockId = this.api.blocks.getCurrentBlockIndex();
191
+ this.api.blocks.stretchBlock(blockId, value);
192
+ }).catch(err => {
193
+ console.error(err);
194
+ });
240
195
  }
241
- }]);
242
- return ImageTool;
243
- }();
244
- exports.default = ImageTool;
196
+ }
197
+ isReadOnly() {
198
+ return this.readOnly;
199
+ }
200
+ }
201
+
202
+ //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["defaultGetFileSrc","file","src","defaultOnSelectFile","ImageTool","data","config","api","readOnly","getFileSrc","onSelectFile","actions","context","ui","Ui","showFileManager","image","tunes","Tunes","onChange","tuneName","tuneToggled","_data","render","caption","nodes","innerHTML","fillCaption","forEach","name","tune","initialValue","value","setTune","fillImage","applyTune","Promise","resolve","then","blockId","blocks","getCurrentBlockIndex","stretchBlock","catch","err","console","error","icon","svgs","toolbox","title"],"sources":["index.ts"],"sourcesContent":["import { API } from \"@editorjs/editorjs\";\nimport Ui from \"./ui\";\nimport Tunes from \"./tunes\";\nimport svgs from \"./svgs\";\nimport { Tune } from \"./types\";\n\ninterface File {\n src: string;\n}\ninterface GetFileSourceCallable {\n (file: File | string): string;\n}\nconst defaultGetFileSrc: GetFileSourceCallable = file => {\n if (typeof file === \"string\") {\n return file;\n }\n\n return file.src;\n};\ninterface OnSelectFileCallable {\n (file: File): string;\n}\nconst defaultOnSelectFile: OnSelectFileCallable = file => {\n return file.src;\n};\n\ninterface ImageToolData {\n caption: string;\n file: string;\n}\ninterface ImageToolParams {\n data: ImageToolData;\n config: Config;\n api: API;\n readOnly: boolean;\n}\ninterface Config {\n getFileSrc: GetFileSourceCallable;\n onSelectFile: OnSelectFileCallable;\n actions: Tune[];\n context: {\n showFileManager: (cb: (file: File) => void) => void;\n };\n}\nexport default class ImageTool {\n private readonly api: API;\n private readonly readOnly: boolean;\n private readonly config: Config;\n private readonly tunes: Tunes;\n private readonly ui: Ui;\n private readonly _data: any;\n\n /**\n * Notify core that read-only mode is supported\n *\n * @returns {boolean}\n */\n static get isReadOnlySupported() {\n return true;\n }\n\n /**\n * Get Tool toolbox settings\n * icon - Tool icon's SVG\n * title - title to show in toolbox\n *\n * @returns {{icon: string, title: string}}\n */\n static get toolbox() {\n return {\n icon: svgs.toolbox,\n title: \"Image\"\n };\n }\n\n constructor({ data, config, api, readOnly }: ImageToolParams) {\n this.api = api;\n this.readOnly = readOnly;\n\n this.config = {\n getFileSrc: config.getFileSrc || defaultGetFileSrc,\n onSelectFile: config.onSelectFile || defaultOnSelectFile,\n actions: config.actions || [],\n context: config.context\n };\n\n /**\n * Module for working with UI\n */\n this.ui = new Ui({\n api,\n config: this.config,\n onSelectFile: () => {\n this.config.context.showFileManager((file: File) => {\n this.image = this.config.onSelectFile(file);\n });\n },\n readOnly\n });\n\n /**\n * Module for working with tunes\n */\n this.tunes = new Tunes({\n api,\n actions: this.config.actions,\n onChange: (tuneName: string) => this.tuneToggled(tuneName)\n });\n\n /**\n * Set saved state\n */\n this._data = {};\n this.data = data;\n }\n\n /**\n * Renders Block content\n *\n * @public\n *\n * @returns {HTMLDivElement}\n */\n render() {\n return this.ui.render(this.data);\n }\n\n /**\n * Return Block data\n *\n * @public\n *\n * @returns {ImageToolData}\n */\n save() {\n const caption = this.ui.nodes.caption;\n\n this._data.caption = caption.innerHTML;\n\n return this.data;\n }\n\n /**\n * Makes buttons with tunes: stretch image\n *\n * @public\n *\n * @returns {Element}\n */\n renderSettings() {\n return this.tunes.render(this.data);\n }\n\n /**\n * Stores all Tool's data\n *\n * @private\n *\n * @param {ImageToolData} data - data in Image Tool format\n */\n set data(data) {\n this.image = data.file;\n\n this._data.caption = data.caption || \"\";\n this.ui.fillCaption(this._data.caption);\n\n Tunes.tunes.forEach(({ name }) => {\n const tune = name as keyof ImageToolData;\n\n const initialValue = data[tune] as unknown as string | boolean;\n\n const value = initialValue === true || initialValue === \"true\";\n\n this.setTune(tune, value);\n });\n }\n\n /**\n * Return Tool data\n *\n * @private\n *\n * @returns {ImageToolData}\n */\n get data(): ImageToolData {\n return this._data;\n }\n\n /**\n * Set new image file\n *\n * @private\n *\n * @param {object} file - uploaded file data\n */\n set image(file: File | string) {\n this._data.file = file || {};\n\n if (file) {\n this.ui.fillImage(this.config.getFileSrc(file));\n }\n }\n\n /**\n * Callback fired when Block Tune is activated\n *\n * @private\n *\n * @param {string} tuneName - tune that has been clicked\n * @returns {void}\n */\n public tuneToggled(tuneName: string): void {\n // inverse tune state\n this.setTune(tuneName, !this._data[tuneName]);\n }\n\n /**\n * Set one tune\n *\n * @param {string} tuneName - {@link Tunes.tunes}\n * @param {boolean} value - tune state\n * @returns {void}\n */\n public setTune(tuneName: string, value: boolean): void {\n this._data[tuneName] = value;\n\n this.ui.applyTune(tuneName, value);\n\n if (tuneName === \"stretched\") {\n /**\n * Wait until the API is ready\n */\n Promise.resolve()\n .then(() => {\n const blockId = this.api.blocks.getCurrentBlockIndex();\n\n this.api.blocks.stretchBlock(blockId, value);\n })\n .catch(err => {\n console.error(err);\n });\n }\n }\n\n public isReadOnly(): boolean {\n return this.readOnly;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["Ui","Tunes","svgs","defaultGetFileSrc","file","src","defaultOnSelectFile","ImageTool","isReadOnlySupported","toolbox","icon","title","constructor","data","config","api","readOnly","getFileSrc","onSelectFile","actions","context","ui","showFileManager","image","tunes","onChange","tuneName","tuneToggled","_data","render","save","caption","nodes","innerHTML","renderSettings","fillCaption","forEach","name","tune","initialValue","value","setTune","fillImage","applyTune","Promise","resolve","then","blockId","blocks","getCurrentBlockIndex","stretchBlock","catch","err","console","error","isReadOnly"],"sources":["index.ts"],"sourcesContent":["import type { API } from \"@editorjs/editorjs\";\nimport Ui from \"./ui\";\nimport Tunes from \"./tunes\";\nimport svgs from \"./svgs\";\nimport type { Tune } from \"./types\";\n\ninterface File {\n src: string;\n}\ninterface GetFileSourceCallable {\n (file: File | string): string;\n}\nconst defaultGetFileSrc: GetFileSourceCallable = file => {\n if (typeof file === \"string\") {\n return file;\n }\n\n return file.src;\n};\ninterface OnSelectFileCallable {\n (file: File): string;\n}\nconst defaultOnSelectFile: OnSelectFileCallable = file => {\n return file.src;\n};\n\ninterface ImageToolData {\n caption: string;\n file: string;\n}\ninterface ImageToolParams {\n data: ImageToolData;\n config: Config;\n api: API;\n readOnly: boolean;\n}\ninterface Config {\n getFileSrc: GetFileSourceCallable;\n onSelectFile: OnSelectFileCallable;\n actions: Tune[];\n context: {\n showFileManager: (cb: (file: File) => void) => void;\n };\n}\nexport default class ImageTool {\n private readonly api: API;\n private readonly readOnly: boolean;\n private readonly config: Config;\n private readonly tunes: Tunes;\n private readonly ui: Ui;\n private readonly _data: any;\n\n /**\n * Notify core that read-only mode is supported\n *\n * @returns {boolean}\n */\n static get isReadOnlySupported() {\n return true;\n }\n\n /**\n * Get Tool toolbox settings\n * icon - Tool icon's SVG\n * title - title to show in toolbox\n *\n * @returns {{icon: string, title: string}}\n */\n static get toolbox() {\n return {\n icon: svgs.toolbox,\n title: \"Image\"\n };\n }\n\n constructor({ data, config, api, readOnly }: ImageToolParams) {\n this.api = api;\n this.readOnly = readOnly;\n\n this.config = {\n getFileSrc: config.getFileSrc || defaultGetFileSrc,\n onSelectFile: config.onSelectFile || defaultOnSelectFile,\n actions: config.actions || [],\n context: config.context\n };\n\n /**\n * Module for working with UI\n */\n this.ui = new Ui({\n api,\n config: this.config,\n onSelectFile: () => {\n this.config.context.showFileManager((file: File) => {\n this.image = this.config.onSelectFile(file);\n });\n },\n readOnly\n });\n\n /**\n * Module for working with tunes\n */\n this.tunes = new Tunes({\n api,\n actions: this.config.actions,\n onChange: (tuneName: string) => this.tuneToggled(tuneName)\n });\n\n /**\n * Set saved state\n */\n this._data = {};\n this.data = data;\n }\n\n /**\n * Renders Block content\n *\n * @public\n *\n * @returns {HTMLDivElement}\n */\n render() {\n return this.ui.render(this.data);\n }\n\n /**\n * Return Block data\n *\n * @public\n *\n * @returns {ImageToolData}\n */\n save() {\n const caption = this.ui.nodes.caption;\n\n this._data.caption = caption.innerHTML;\n\n return this.data;\n }\n\n /**\n * Makes buttons with tunes: stretch image\n *\n * @public\n *\n * @returns {Element}\n */\n renderSettings() {\n return this.tunes.render(this.data);\n }\n\n /**\n * Stores all Tool's data\n *\n * @private\n *\n * @param {ImageToolData} data - data in Image Tool format\n */\n set data(data) {\n this.image = data.file;\n\n this._data.caption = data.caption || \"\";\n this.ui.fillCaption(this._data.caption);\n\n Tunes.tunes.forEach(({ name }) => {\n const tune = name as keyof ImageToolData;\n\n const initialValue = data[tune] as unknown as string | boolean;\n\n const value = initialValue === true || initialValue === \"true\";\n\n this.setTune(tune, value);\n });\n }\n\n /**\n * Return Tool data\n *\n * @private\n *\n * @returns {ImageToolData}\n */\n get data(): ImageToolData {\n return this._data;\n }\n\n /**\n * Set new image file\n *\n * @private\n *\n * @param {object} file - uploaded file data\n */\n set image(file: File | string) {\n this._data.file = file || {};\n\n if (file) {\n this.ui.fillImage(this.config.getFileSrc(file));\n }\n }\n\n /**\n * Callback fired when Block Tune is activated\n *\n * @private\n *\n * @param {string} tuneName - tune that has been clicked\n * @returns {void}\n */\n public tuneToggled(tuneName: string): void {\n // inverse tune state\n this.setTune(tuneName, !this._data[tuneName]);\n }\n\n /**\n * Set one tune\n *\n * @param {string} tuneName - {@link Tunes.tunes}\n * @param {boolean} value - tune state\n * @returns {void}\n */\n public setTune(tuneName: string, value: boolean): void {\n this._data[tuneName] = value;\n\n this.ui.applyTune(tuneName, value);\n\n if (tuneName === \"stretched\") {\n /**\n * Wait until the API is ready\n */\n Promise.resolve()\n .then(() => {\n const blockId = this.api.blocks.getCurrentBlockIndex();\n\n this.api.blocks.stretchBlock(blockId, value);\n })\n .catch(err => {\n console.error(err);\n });\n }\n }\n\n public isReadOnly(): boolean {\n return this.readOnly;\n }\n}\n"],"mappings":"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","ignoreList":[]}