@webiny/app-admin 0.0.0-mt-1

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 (357) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +21 -0
  3. package/assets/icons/add-18px.svg +3 -0
  4. package/assets/icons/arrow_drop_down-24px.svg +4 -0
  5. package/assets/icons/attach_file_black_24dp.svg +1 -0
  6. package/assets/icons/baseline-menu-24px.svg +4 -0
  7. package/assets/icons/baseline-notification_important-24px.svg +4 -0
  8. package/assets/icons/baseline-security-24px.svg +4 -0
  9. package/assets/icons/filter-24px.svg +8 -0
  10. package/assets/icons/github-brands.svg +1 -0
  11. package/assets/icons/highlight-24px.svg +1 -0
  12. package/assets/icons/icon-community.svg +16 -0
  13. package/assets/icons/icon-documentation.svg +16 -0
  14. package/assets/icons/info.svg +1 -0
  15. package/assets/icons/insert_drive_file-24px.svg +1 -0
  16. package/assets/icons/insert_photo-24px.svg +1 -0
  17. package/assets/icons/label-24px.svg +1 -0
  18. package/assets/icons/round-account_circle-24px.svg +1 -0
  19. package/assets/icons/round-add-24px.svg +16 -0
  20. package/assets/icons/round-arrow_drop_down-24px.svg +1 -0
  21. package/assets/icons/round-chevron_right-24px.svg +12 -0
  22. package/assets/icons/round-feedback-24px.svg +54 -0
  23. package/assets/icons/round-help-24px.svg +1 -0
  24. package/assets/icons/round-invert_colors-24px.svg +52 -0
  25. package/assets/icons/round-keyboard_arrow_down-24px.svg +16 -0
  26. package/assets/icons/round-keyboard_arrow_up-24px.svg +16 -0
  27. package/assets/icons/round-lock_open-24px.svg +60 -0
  28. package/assets/icons/round-more_vert-24px.svg +12 -0
  29. package/assets/icons/round-open_in_new-24px.svg +44 -0
  30. package/assets/icons/round-settings-24px.svg +4 -0
  31. package/assets/icons/search-24px.svg +20 -0
  32. package/assets/icons/slack-logo.svg +1 -0
  33. package/assets/icons/today-24px.svg +1 -0
  34. package/assets/icons/touch_app.svg +1 -0
  35. package/assets/images/arr.png +0 -0
  36. package/assets/images/arr_2.png +0 -0
  37. package/assets/images/header_bg.jpg +0 -0
  38. package/assets/images/icons.png +0 -0
  39. package/assets/images/icons_retina.png +0 -0
  40. package/assets/images/logo.png +0 -0
  41. package/assets/images/logo_orange.png +0 -0
  42. package/assets/images/public/bg-login.png +0 -0
  43. package/assets/images/public/favicon.ico +0 -0
  44. package/assets/images/public/logo_orange.png +0 -0
  45. package/assets/images/public/preloader_2.png +0 -0
  46. package/assets/images/swich.png +0 -0
  47. package/assets/images/table_img.jpg +0 -0
  48. package/assets/images/webiny-logo.svg +20 -0
  49. package/assets/images/webiny-orange-logo.svg +20 -0
  50. package/components/AdminLayout.d.ts +7 -0
  51. package/components/AdminLayout.js +35 -0
  52. package/components/AppInstaller/Sidebar.d.ts +7 -0
  53. package/components/AppInstaller/Sidebar.js +158 -0
  54. package/components/AppInstaller/assets/sign-in-divider.svg +19 -0
  55. package/components/AppInstaller/index.d.ts +5 -0
  56. package/components/AppInstaller/index.js +134 -0
  57. package/components/AppInstaller/styled.d.ts +7 -0
  58. package/components/AppInstaller/styled.js +73 -0
  59. package/components/AppInstaller/useInstaller.d.ts +11 -0
  60. package/components/AppInstaller/useInstaller.js +279 -0
  61. package/components/EmptyView.d.ts +8 -0
  62. package/components/EmptyView.js +56 -0
  63. package/components/FileManager/BottomInfoBar/SupportedFileTypes.d.ts +5 -0
  64. package/components/FileManager/BottomInfoBar/SupportedFileTypes.js +35 -0
  65. package/components/FileManager/BottomInfoBar/UploadStatus.d.ts +5 -0
  66. package/components/FileManager/BottomInfoBar/UploadStatus.js +47 -0
  67. package/components/FileManager/BottomInfoBar.d.ts +3 -0
  68. package/components/FileManager/BottomInfoBar.js +42 -0
  69. package/components/FileManager/DropFilesHere.d.ts +8 -0
  70. package/components/FileManager/DropFilesHere.js +58 -0
  71. package/components/FileManager/File.d.ts +18 -0
  72. package/components/FileManager/File.js +129 -0
  73. package/components/FileManager/FileDetails/Name.d.ts +6 -0
  74. package/components/FileManager/FileDetails/Name.js +113 -0
  75. package/components/FileManager/FileDetails/Tags.d.ts +6 -0
  76. package/components/FileManager/FileDetails/Tags.js +241 -0
  77. package/components/FileManager/FileDetails.d.ts +23 -0
  78. package/components/FileManager/FileDetails.js +392 -0
  79. package/components/FileManager/FileManagerContext.d.ts +23 -0
  80. package/components/FileManager/FileManagerContext.js +174 -0
  81. package/components/FileManager/FileManagerView.d.ts +23 -0
  82. package/components/FileManager/FileManagerView.js +632 -0
  83. package/components/FileManager/LeftSidebar.d.ts +8 -0
  84. package/components/FileManager/LeftSidebar.js +95 -0
  85. package/components/FileManager/NoPermissionView.d.ts +3 -0
  86. package/components/FileManager/NoPermissionView.js +70 -0
  87. package/components/FileManager/NoResults.d.ts +2 -0
  88. package/components/FileManager/NoResults.js +13 -0
  89. package/components/FileManager/getFileTypePlugin.d.ts +1 -0
  90. package/components/FileManager/getFileTypePlugin.js +27 -0
  91. package/components/FileManager/getFileUploader.d.ts +2 -0
  92. package/components/FileManager/getFileUploader.js +10 -0
  93. package/components/FileManager/graphql.d.ts +6 -0
  94. package/components/FileManager/graphql.js +17 -0
  95. package/components/FileManager/icons/content_copy-black-24px.svg +1 -0
  96. package/components/FileManager/icons/delete.svg +12 -0
  97. package/components/FileManager/icons/privacy_tip-24px.svg +10 -0
  98. package/components/FileManager/icons/round-check_box-24px.svg +4 -0
  99. package/components/FileManager/icons/round-check_box_outline_blank-24px.svg +4 -0
  100. package/components/FileManager/icons/round-cloud_download-24px.svg +4 -0
  101. package/components/FileManager/icons/round-cloud_upload-24px.svg +4 -0
  102. package/components/FileManager/icons/round-description-24px.svg +4 -0
  103. package/components/FileManager/icons/round-edit-24px.svg +4 -0
  104. package/components/FileManager/icons/round-info-24px.svg +4 -0
  105. package/components/FileManager/icons/round-label-24px.svg +4 -0
  106. package/components/FileManager/icons/round-more_vert-24px.svg +4 -0
  107. package/components/FileManager/icons/round-search-24px.svg +20 -0
  108. package/components/FileManager/outputFileSelectionError.d.ts +2 -0
  109. package/components/FileManager/outputFileSelectionError.js +39 -0
  110. package/components/FileManager.d.ts +18 -0
  111. package/components/FileManager.js +133 -0
  112. package/components/FloatingActionButton.d.ts +3 -0
  113. package/components/FloatingActionButton.js +17 -0
  114. package/components/MultiImageUpload.d.ts +4 -0
  115. package/components/MultiImageUpload.js +20 -0
  116. package/components/OverlayLayout/OverlayLayout.d.ts +25 -0
  117. package/components/OverlayLayout/OverlayLayout.js +159 -0
  118. package/components/OverlayLayout/icons/close.svg +13 -0
  119. package/components/OverlayLayout/icons/navigate_before.svg +16 -0
  120. package/components/OverlayLayout/index.d.ts +1 -0
  121. package/components/OverlayLayout/index.js +1 -0
  122. package/components/Permissions/Permissions.d.ts +7 -0
  123. package/components/Permissions/Permissions.js +37 -0
  124. package/components/Permissions/StyledComponents.d.ts +6 -0
  125. package/components/Permissions/StyledComponents.js +19 -0
  126. package/components/Permissions/index.d.ts +2 -0
  127. package/components/Permissions/index.js +2 -0
  128. package/components/RichTextEditor/RichTextEditor.d.ts +3 -0
  129. package/components/RichTextEditor/RichTextEditor.js +15 -0
  130. package/components/RichTextEditor/index.d.ts +2 -0
  131. package/components/RichTextEditor/index.js +2 -0
  132. package/components/RichTextEditor/styles.scss +64 -0
  133. package/components/RichTextEditor/tools/header/index.d.ts +228 -0
  134. package/components/RichTextEditor/tools/header/index.js +731 -0
  135. package/components/RichTextEditor/tools/header/styles.scss +48 -0
  136. package/components/RichTextEditor/tools/image/index.d.ts +97 -0
  137. package/components/RichTextEditor/tools/image/index.js +257 -0
  138. package/components/RichTextEditor/tools/image/styles.scss +90 -0
  139. package/components/RichTextEditor/tools/image/svgs.d.ts +6 -0
  140. package/components/RichTextEditor/tools/image/svgs.js +5 -0
  141. package/components/RichTextEditor/tools/image/tunes.d.ts +58 -0
  142. package/components/RichTextEditor/tools/image/tunes.js +134 -0
  143. package/components/RichTextEditor/tools/image/ui.d.ts +111 -0
  144. package/components/RichTextEditor/tools/image/ui.js +281 -0
  145. package/components/RichTextEditor/tools/paragraph/index.d.ts +211 -0
  146. package/components/RichTextEditor/tools/paragraph/index.js +520 -0
  147. package/components/RichTextEditor/tools/paragraph/styles.scss +29 -0
  148. package/components/RichTextEditor/tools/textColor/index.d.ts +58 -0
  149. package/components/RichTextEditor/tools/textColor/index.js +232 -0
  150. package/components/RichTextEditor/tools/textColor/styles.scss +21 -0
  151. package/components/RichTextEditor/tools/utils.d.ts +19 -0
  152. package/components/RichTextEditor/tools/utils.js +24 -0
  153. package/components/SearchUI.d.ts +8 -0
  154. package/components/SearchUI.js +59 -0
  155. package/components/SimpleForm/SimpleForm.d.ts +21 -0
  156. package/components/SimpleForm/SimpleForm.js +75 -0
  157. package/components/SimpleForm/index.d.ts +1 -0
  158. package/components/SimpleForm/index.js +1 -0
  159. package/components/SimpleUI/InputField.d.ts +9 -0
  160. package/components/SimpleUI/InputField.js +97 -0
  161. package/components/SingleImageUpload.d.ts +25 -0
  162. package/components/SingleImageUpload.js +102 -0
  163. package/components/SplitView/SplitView.d.ts +10 -0
  164. package/components/SplitView/SplitView.js +76 -0
  165. package/components/SplitView/index.d.ts +1 -0
  166. package/components/SplitView/index.js +1 -0
  167. package/components/index.d.ts +1 -0
  168. package/components/index.js +1 -0
  169. package/hooks/useConfirmationDialog.d.ts +10 -0
  170. package/hooks/useConfirmationDialog.js +47 -0
  171. package/hooks/useDialog.d.ts +5 -0
  172. package/hooks/useDialog.js +27 -0
  173. package/hooks/useSnackbar.d.ts +4 -0
  174. package/hooks/useSnackbar.js +25 -0
  175. package/package.json +101 -0
  176. package/plugins/FileManagerFileTypePlugin.d.ts +33 -0
  177. package/plugins/FileManagerFileTypePlugin.js +46 -0
  178. package/plugins/MenuPlugin.d.ts +20 -0
  179. package/plugins/MenuPlugin.js +41 -0
  180. package/plugins/PermissionRendererPlugin.d.ts +22 -0
  181. package/plugins/PermissionRendererPlugin.js +41 -0
  182. package/plugins/fileManager/fileDefault.d.ts +3 -0
  183. package/plugins/fileManager/fileDefault.js +20 -0
  184. package/plugins/fileManager/fileImage/DeleteAction.d.ts +3 -0
  185. package/plugins/fileManager/fileImage/DeleteAction.js +62 -0
  186. package/plugins/fileManager/fileImage/EditAction.d.ts +9 -0
  187. package/plugins/fileManager/fileImage/EditAction.js +143 -0
  188. package/plugins/fileManager/fileImage/index.d.ts +3 -0
  189. package/plugins/fileManager/fileImage/index.js +29 -0
  190. package/plugins/fileManager/icons/edit.svg +17 -0
  191. package/plugins/fileManager/icons/round-description-24px.svg +1 -0
  192. package/plugins/fileManager/index.d.ts +2 -0
  193. package/plugins/fileManager/index.js +3 -0
  194. package/plugins/globalSearch/SearchBar.d.ts +3 -0
  195. package/plugins/globalSearch/SearchBar.js +241 -0
  196. package/plugins/globalSearch/SearchBarDropdown.d.ts +5 -0
  197. package/plugins/globalSearch/SearchBarDropdown.js +82 -0
  198. package/plugins/globalSearch/icons/round-search-24px.svg +20 -0
  199. package/plugins/globalSearch/index.d.ts +8 -0
  200. package/plugins/globalSearch/index.js +30 -0
  201. package/plugins/globalSearch/styled.d.ts +9 -0
  202. package/plugins/globalSearch/styled.js +115 -0
  203. package/plugins/index.d.ts +6 -0
  204. package/plugins/index.js +8 -0
  205. package/plugins/logo/Logo.d.ts +22 -0
  206. package/plugins/logo/Logo.js +108 -0
  207. package/plugins/logo/index.d.ts +5 -0
  208. package/plugins/logo/index.js +32 -0
  209. package/plugins/menu/documentation.d.ts +4 -0
  210. package/plugins/menu/documentation.js +16 -0
  211. package/plugins/menu/fileManager.d.ts +4 -0
  212. package/plugins/menu/fileManager.js +64 -0
  213. package/plugins/menu/index.d.ts +6 -0
  214. package/plugins/menu/index.js +24 -0
  215. package/plugins/menu/renderers/MenuGroupRenderer.d.ts +7 -0
  216. package/plugins/menu/renderers/MenuGroupRenderer.js +126 -0
  217. package/plugins/menu/renderers/MenuLinkRenderer.d.ts +7 -0
  218. package/plugins/menu/renderers/MenuLinkRenderer.js +52 -0
  219. package/plugins/menu/renderers/MenuSectionItemRenderer.d.ts +7 -0
  220. package/plugins/menu/renderers/MenuSectionItemRenderer.js +77 -0
  221. package/plugins/menu/renderers/MenuSectionRenderer.d.ts +7 -0
  222. package/plugins/menu/renderers/MenuSectionRenderer.js +51 -0
  223. package/plugins/menu/slack.d.ts +4 -0
  224. package/plugins/menu/slack.js +16 -0
  225. package/plugins/menu/source.d.ts +4 -0
  226. package/plugins/menu/source.js +16 -0
  227. package/plugins/uiLayoutRenderer/index.d.ts +3 -0
  228. package/plugins/uiLayoutRenderer/index.js +63 -0
  229. package/plugins/userMenu/UserMenuElement.d.ts +7 -0
  230. package/plugins/userMenu/UserMenuElement.js +43 -0
  231. package/plugins/userMenu/UserMenuRenderer.d.ts +6 -0
  232. package/plugins/userMenu/UserMenuRenderer.js +47 -0
  233. package/plugins/userMenu/index.d.ts +4 -0
  234. package/plugins/userMenu/index.js +16 -0
  235. package/styles/material-theme-assignments.scss +333 -0
  236. package/styles/material.scss +74 -0
  237. package/styles/theme.scss +43 -0
  238. package/styles.scss +2 -0
  239. package/types.d.ts +100 -0
  240. package/types.js +1 -0
  241. package/ui/UIElement.d.ts +2 -0
  242. package/ui/UIElement.js +1 -0
  243. package/ui/UILayout.d.ts +1 -0
  244. package/ui/UILayout.js +1 -0
  245. package/ui/UIRenderer.d.ts +2 -0
  246. package/ui/UIRenderer.js +1 -0
  247. package/ui/UIView.d.ts +2 -0
  248. package/ui/UIView.js +1 -0
  249. package/ui/elements/AccordionElement.d.ts +27 -0
  250. package/ui/elements/AccordionElement.js +86 -0
  251. package/ui/elements/ButtonElement.d.ts +24 -0
  252. package/ui/elements/ButtonElement.js +78 -0
  253. package/ui/elements/ButtonGroupElement.d.ts +6 -0
  254. package/ui/elements/ButtonGroupElement.js +48 -0
  255. package/ui/elements/GenericElement.d.ts +1 -0
  256. package/ui/elements/GenericElement.js +1 -0
  257. package/ui/elements/LabelElement.d.ts +16 -0
  258. package/ui/elements/LabelElement.js +47 -0
  259. package/ui/elements/NavigationMenuElement.d.ts +32 -0
  260. package/ui/elements/NavigationMenuElement.js +158 -0
  261. package/ui/elements/PanelElement.d.ts +3 -0
  262. package/ui/elements/PanelElement.js +17 -0
  263. package/ui/elements/PlaceholderElement.d.ts +5 -0
  264. package/ui/elements/PlaceholderElement.js +30 -0
  265. package/ui/elements/SmallButtonElement.d.ts +6 -0
  266. package/ui/elements/SmallButtonElement.js +47 -0
  267. package/ui/elements/TypographyElement.d.ts +13 -0
  268. package/ui/elements/TypographyElement.js +49 -0
  269. package/ui/elements/ViewElement.d.ts +1 -0
  270. package/ui/elements/ViewElement.js +1 -0
  271. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.d.ts +6 -0
  272. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js +44 -0
  273. package/ui/elements/form/DynamicFieldsetElement.d.ts +42 -0
  274. package/ui/elements/form/DynamicFieldsetElement.js +127 -0
  275. package/ui/elements/form/FileManagerElement/EmptyStateElement.d.ts +4 -0
  276. package/ui/elements/form/FileManagerElement/EmptyStateElement.js +24 -0
  277. package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.d.ts +7 -0
  278. package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js +72 -0
  279. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.d.ts +13 -0
  280. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js +95 -0
  281. package/ui/elements/form/FileManagerElement/styled.d.ts +14 -0
  282. package/ui/elements/form/FileManagerElement/styled.js +106 -0
  283. package/ui/elements/form/FileManagerElement.d.ts +24 -0
  284. package/ui/elements/form/FileManagerElement.js +91 -0
  285. package/ui/elements/form/FormElement.d.ts +21 -0
  286. package/ui/elements/form/FormElement.js +45 -0
  287. package/ui/elements/form/FormFieldElement.d.ts +55 -0
  288. package/ui/elements/form/FormFieldElement.js +183 -0
  289. package/ui/elements/form/HiddenElement.d.ts +6 -0
  290. package/ui/elements/form/HiddenElement.js +49 -0
  291. package/ui/elements/form/InputElement.d.ts +6 -0
  292. package/ui/elements/form/InputElement.js +55 -0
  293. package/ui/elements/form/PasswordElement.d.ts +6 -0
  294. package/ui/elements/form/PasswordElement.js +50 -0
  295. package/ui/elements/form/README.md +2 -0
  296. package/ui/elements/form/SelectElement.d.ts +15 -0
  297. package/ui/elements/form/SelectElement.js +71 -0
  298. package/ui/elements/form/TextareaElement.d.ts +15 -0
  299. package/ui/elements/form/TextareaElement.js +56 -0
  300. package/ui/views/AdminView/ContentElement.d.ts +4 -0
  301. package/ui/views/AdminView/ContentElement.js +62 -0
  302. package/ui/views/AdminView/HeaderElement.d.ts +13 -0
  303. package/ui/views/AdminView/HeaderElement.js +111 -0
  304. package/ui/views/AdminView/HeaderSectionCenterElement.d.ts +6 -0
  305. package/ui/views/AdminView/HeaderSectionCenterElement.js +42 -0
  306. package/ui/views/AdminView/HeaderSectionLeftElement.d.ts +6 -0
  307. package/ui/views/AdminView/HeaderSectionLeftElement.js +42 -0
  308. package/ui/views/AdminView/HeaderSectionRightElement.d.ts +6 -0
  309. package/ui/views/AdminView/HeaderSectionRightElement.js +42 -0
  310. package/ui/views/AdminView/components/Dialog.d.ts +2 -0
  311. package/ui/views/AdminView/components/Dialog.js +40 -0
  312. package/ui/views/AdminView/components/Hamburger.d.ts +3 -0
  313. package/ui/views/AdminView/components/Hamburger.js +25 -0
  314. package/ui/views/AdminView/components/Snackbar.d.ts +3 -0
  315. package/ui/views/AdminView/components/Snackbar.js +28 -0
  316. package/ui/views/AdminView.d.ts +12 -0
  317. package/ui/views/AdminView.js +90 -0
  318. package/ui/views/FormView/FormContainerElement.d.ts +12 -0
  319. package/ui/views/FormView/FormContainerElement.js +51 -0
  320. package/ui/views/FormView/FormContentElement.d.ts +3 -0
  321. package/ui/views/FormView/FormContentElement.js +17 -0
  322. package/ui/views/FormView/FormFooterElement.d.ts +6 -0
  323. package/ui/views/FormView/FormFooterElement.js +49 -0
  324. package/ui/views/FormView/FormHeaderElement.d.ts +14 -0
  325. package/ui/views/FormView/FormHeaderElement.js +81 -0
  326. package/ui/views/FormView.d.ts +40 -0
  327. package/ui/views/FormView.js +160 -0
  328. package/ui/views/NavigationView/ContentElement.d.ts +10 -0
  329. package/ui/views/NavigationView/ContentElement.js +86 -0
  330. package/ui/views/NavigationView/FooterElement.d.ts +13 -0
  331. package/ui/views/NavigationView/FooterElement.js +57 -0
  332. package/ui/views/NavigationView/HeaderElement.d.ts +16 -0
  333. package/ui/views/NavigationView/HeaderElement.js +66 -0
  334. package/ui/views/NavigationView/NavigationViewRenderer.d.ts +6 -0
  335. package/ui/views/NavigationView/NavigationViewRenderer.js +38 -0
  336. package/ui/views/NavigationView/Styled.d.ts +7 -0
  337. package/ui/views/NavigationView/Styled.js +47 -0
  338. package/ui/views/NavigationView/legacyMenu.d.ts +22 -0
  339. package/ui/views/NavigationView/legacyMenu.js +1 -0
  340. package/ui/views/NavigationView/useNavigation.d.ts +6 -0
  341. package/ui/views/NavigationView/useNavigation.js +22 -0
  342. package/ui/views/NavigationView.d.ts +26 -0
  343. package/ui/views/NavigationView.js +204 -0
  344. package/ui/views/OverlayView/ContentElement.d.ts +6 -0
  345. package/ui/views/OverlayView/ContentElement.js +42 -0
  346. package/ui/views/OverlayView/HeaderElement.d.ts +24 -0
  347. package/ui/views/OverlayView/HeaderElement.js +115 -0
  348. package/ui/views/OverlayView/HeaderTitleElement.d.ts +13 -0
  349. package/ui/views/OverlayView/HeaderTitleElement.js +54 -0
  350. package/ui/views/OverlayView/useOverlayView.d.ts +6 -0
  351. package/ui/views/OverlayView/useOverlayView.js +38 -0
  352. package/ui/views/OverlayView.d.ts +31 -0
  353. package/ui/views/OverlayView.js +176 -0
  354. package/ui/views/SplitView/SplitViewPanelElement.d.ts +11 -0
  355. package/ui/views/SplitView/SplitViewPanelElement.js +72 -0
  356. package/ui/views/SplitView.d.ts +21 -0
  357. package/ui/views/SplitView.js +142 -0
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Class for working with UI:
3
+ * - rendering base structure
4
+ * - show/hide preview
5
+ * - apply tune view
6
+ */
7
+ export default class Ui {
8
+ private api;
9
+ private config;
10
+ private readOnly;
11
+ private onSelectFile;
12
+ nodes: {
13
+ wrapper: HTMLElement;
14
+ imageContainer: HTMLElement;
15
+ fileButton: HTMLElement;
16
+ imageEl: HTMLElement;
17
+ caption: HTMLElement;
18
+ };
19
+ /**
20
+ * @param {object} ui - image tool Ui module
21
+ * @param {object} ui.api - Editor.js API
22
+ * @param {ImageConfig} ui.config - user config
23
+ * @param {Function} ui.onSelectFile - callback for clicks on Select file button
24
+ * @param {boolean} ui.readOnly - read-only mode flag
25
+ */
26
+ constructor({ api, config, onSelectFile, readOnly }: {
27
+ api: any;
28
+ config: any;
29
+ onSelectFile: any;
30
+ readOnly: any;
31
+ });
32
+ /**
33
+ * CSS classes
34
+ *
35
+ * @returns {object}
36
+ */
37
+ get CSS(): {
38
+ baseClass: string;
39
+ input: string;
40
+ button: string;
41
+ /**
42
+ * Tool's classes
43
+ */
44
+ wrapper: string;
45
+ imageContainer: string;
46
+ imageEl: string;
47
+ caption: string;
48
+ };
49
+ /**
50
+ * Ui statuses:
51
+ * - empty
52
+ * - filled
53
+ *
54
+ * @returns {{EMPTY: string, UPLOADING: string, FILLED: string}}
55
+ */
56
+ static get status(): {
57
+ EMPTY: string;
58
+ FILLED: string;
59
+ };
60
+ /**
61
+ * Renders tool UI
62
+ *
63
+ * @param {ImageToolData} toolData - saved tool data
64
+ * @returns {Element}
65
+ */
66
+ render(toolData: any): HTMLElement;
67
+ /**
68
+ * Creates upload-file button
69
+ *
70
+ * @returns {Element}
71
+ */
72
+ createFileButton(): any;
73
+ /**
74
+ * Shows an image
75
+ *
76
+ * @param {string} url - image source
77
+ * @returns {void}
78
+ */
79
+ fillImage(url: any): void;
80
+ /**
81
+ * Shows caption input
82
+ *
83
+ * @param {string} text - caption text
84
+ * @returns {void}
85
+ */
86
+ fillCaption(text: any): void;
87
+ /**
88
+ * Changes UI status
89
+ *
90
+ * @param {string} status - see {@link Ui.status} constants
91
+ * @returns {void}
92
+ */
93
+ toggleStatus(status: any): void;
94
+ /**
95
+ * Apply visual representation of activated tune
96
+ *
97
+ * @param {string} tuneName - one of available tunes {@link Tunes.tunes}
98
+ * @param {boolean} status - true for enable, false for disable
99
+ * @returns {void}
100
+ */
101
+ applyTune(tuneName: any, status: any): void;
102
+ }
103
+ /**
104
+ * Helper for making Elements with attributes
105
+ *
106
+ * @param {string} tagName - new Element tag name
107
+ * @param {Array|string} classNames - list or name of CSS class
108
+ * @param {object} attributes - any attributes
109
+ * @returns {Element}
110
+ */
111
+ export declare const make: (tagName: any, classNames?: any, attributes?: {}) => any;
@@ -0,0 +1,281 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
3
+ import _createClass from "@babel/runtime/helpers/createClass";
4
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
5
+
6
+ /**
7
+ * Class for working with UI:
8
+ * - rendering base structure
9
+ * - show/hide preview
10
+ * - apply tune view
11
+ */
12
+ var Ui = /*#__PURE__*/function () {
13
+ /**
14
+ * @param {object} ui - image tool Ui module
15
+ * @param {object} ui.api - Editor.js API
16
+ * @param {ImageConfig} ui.config - user config
17
+ * @param {Function} ui.onSelectFile - callback for clicks on Select file button
18
+ * @param {boolean} ui.readOnly - read-only mode flag
19
+ */
20
+ function Ui(_ref) {
21
+ var api = _ref.api,
22
+ config = _ref.config,
23
+ onSelectFile = _ref.onSelectFile,
24
+ readOnly = _ref.readOnly;
25
+
26
+ _classCallCheck(this, Ui);
27
+
28
+ _defineProperty(this, "api", void 0);
29
+
30
+ _defineProperty(this, "config", void 0);
31
+
32
+ _defineProperty(this, "readOnly", void 0);
33
+
34
+ _defineProperty(this, "onSelectFile", void 0);
35
+
36
+ _defineProperty(this, "nodes", void 0);
37
+
38
+ this.api = api;
39
+ this.config = config;
40
+ this.onSelectFile = onSelectFile;
41
+ this.readOnly = readOnly;
42
+ this.nodes = {
43
+ wrapper: make("div", [this.CSS.baseClass, this.CSS.wrapper]),
44
+ imageContainer: make("div", [this.CSS.imageContainer]),
45
+ fileButton: this.createFileButton(),
46
+ imageEl: undefined,
47
+ caption: make("div", [this.CSS.input, this.CSS.caption], {
48
+ contentEditable: !this.readOnly
49
+ })
50
+ };
51
+ /**
52
+ * Create base structure
53
+ * <wrapper>
54
+ * <image-container/>
55
+ * <caption />
56
+ * </wrapper>
57
+ */
58
+
59
+ this.nodes.caption.dataset.placeholder = this.config.captionPlaceholder;
60
+ this.nodes.wrapper.appendChild(this.nodes.imageContainer);
61
+ this.nodes.wrapper.appendChild(this.nodes.caption);
62
+ this.nodes.wrapper.appendChild(this.nodes.fileButton);
63
+ }
64
+ /**
65
+ * CSS classes
66
+ *
67
+ * @returns {object}
68
+ */
69
+
70
+
71
+ _createClass(Ui, [{
72
+ key: "CSS",
73
+ get: function get() {
74
+ return {
75
+ baseClass: this.api.styles.block,
76
+ input: this.api.styles.input,
77
+ button: this.api.styles.button,
78
+
79
+ /**
80
+ * Tool's classes
81
+ */
82
+ wrapper: "image-tool",
83
+ imageContainer: "image-tool__image",
84
+ imageEl: "image-tool__image-picture",
85
+ caption: "image-tool__caption"
86
+ };
87
+ }
88
+ /**
89
+ * Ui statuses:
90
+ * - empty
91
+ * - filled
92
+ *
93
+ * @returns {{EMPTY: string, UPLOADING: string, FILLED: string}}
94
+ */
95
+
96
+ }, {
97
+ key: "render",
98
+ value:
99
+ /**
100
+ * Renders tool UI
101
+ *
102
+ * @param {ImageToolData} toolData - saved tool data
103
+ * @returns {Element}
104
+ */
105
+ function render(toolData) {
106
+ if (!toolData.file || Object.keys(toolData.file).length === 0) {
107
+ this.toggleStatus(Ui.status.EMPTY);
108
+ }
109
+
110
+ return this.nodes.wrapper;
111
+ }
112
+ /**
113
+ * Creates upload-file button
114
+ *
115
+ * @returns {Element}
116
+ */
117
+
118
+ }, {
119
+ key: "createFileButton",
120
+ value: function createFileButton() {
121
+ var _this = this;
122
+
123
+ var button = make("div", [this.CSS.button]);
124
+ button.innerHTML = this.api.i18n.t("Select an Image");
125
+ button.addEventListener("click", function () {
126
+ _this.onSelectFile();
127
+ });
128
+ return button;
129
+ }
130
+ /**
131
+ * Shows an image
132
+ *
133
+ * @param {string} url - image source
134
+ * @returns {void}
135
+ */
136
+
137
+ }, {
138
+ key: "fillImage",
139
+ value: function fillImage(url) {
140
+ var _this2 = this;
141
+
142
+ /**
143
+ * Check for a source extension to compose element correctly: video tag for mp4, img — for others
144
+ */
145
+ var tag = /\.mp4$/.test(url) ? "VIDEO" : "IMG";
146
+ var attributes = {
147
+ src: url
148
+ };
149
+ /**
150
+ * We use eventName variable because IMG and VIDEO tags have different event to be called on source load
151
+ * - IMG: load
152
+ * - VIDEO: loadeddata
153
+ *
154
+ * @type {string}
155
+ */
156
+
157
+ var eventName = "load";
158
+ /**
159
+ * Update attributes and eventName if source is a mp4 video
160
+ */
161
+
162
+ if (tag === "VIDEO") {
163
+ /**
164
+ * Add attributes for playing muted mp4 as a gif
165
+ *
166
+ * @type {boolean}
167
+ */
168
+ attributes.autoplay = true;
169
+ attributes.loop = true;
170
+ attributes.muted = true;
171
+ attributes.playsinline = true;
172
+ /**
173
+ * Change event to be listened
174
+ *
175
+ * @type {string}
176
+ */
177
+
178
+ eventName = "loadeddata";
179
+ }
180
+ /**
181
+ * Compose tag with defined attributes
182
+ *
183
+ * @type {Element}
184
+ */
185
+
186
+
187
+ this.nodes.imageEl = make(tag, this.CSS.imageEl, attributes);
188
+ /**
189
+ * Add load event listener
190
+ */
191
+
192
+ this.nodes.imageEl.addEventListener(eventName, function () {
193
+ _this2.toggleStatus(Ui.status.FILLED);
194
+ });
195
+ this.nodes.imageContainer.appendChild(this.nodes.imageEl);
196
+ }
197
+ /**
198
+ * Shows caption input
199
+ *
200
+ * @param {string} text - caption text
201
+ * @returns {void}
202
+ */
203
+
204
+ }, {
205
+ key: "fillCaption",
206
+ value: function fillCaption(text) {
207
+ if (this.nodes.caption) {
208
+ this.nodes.caption.innerHTML = text;
209
+ }
210
+ }
211
+ /**
212
+ * Changes UI status
213
+ *
214
+ * @param {string} status - see {@link Ui.status} constants
215
+ * @returns {void}
216
+ */
217
+
218
+ }, {
219
+ key: "toggleStatus",
220
+ value: function toggleStatus(status) {
221
+ for (var statusType in Ui.status) {
222
+ if (Object.prototype.hasOwnProperty.call(Ui.status, statusType)) {
223
+ this.nodes.wrapper.classList.toggle("".concat(this.CSS.wrapper, "--").concat(Ui.status[statusType]), status === Ui.status[statusType]);
224
+ }
225
+ }
226
+ }
227
+ /**
228
+ * Apply visual representation of activated tune
229
+ *
230
+ * @param {string} tuneName - one of available tunes {@link Tunes.tunes}
231
+ * @param {boolean} status - true for enable, false for disable
232
+ * @returns {void}
233
+ */
234
+
235
+ }, {
236
+ key: "applyTune",
237
+ value: function applyTune(tuneName, status) {
238
+ this.nodes.wrapper.classList.toggle("".concat(this.CSS.wrapper, "--").concat(tuneName), status);
239
+ }
240
+ }], [{
241
+ key: "status",
242
+ get: function get() {
243
+ return {
244
+ EMPTY: "empty",
245
+ FILLED: "filled"
246
+ };
247
+ }
248
+ }]);
249
+
250
+ return Ui;
251
+ }();
252
+ /**
253
+ * Helper for making Elements with attributes
254
+ *
255
+ * @param {string} tagName - new Element tag name
256
+ * @param {Array|string} classNames - list or name of CSS class
257
+ * @param {object} attributes - any attributes
258
+ * @returns {Element}
259
+ */
260
+
261
+
262
+ export { Ui as default };
263
+ export var make = function make(tagName) {
264
+ var classNames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
265
+ var attributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
266
+ var el = document.createElement(tagName);
267
+
268
+ if (Array.isArray(classNames)) {
269
+ var _el$classList;
270
+
271
+ (_el$classList = el.classList).add.apply(_el$classList, _toConsumableArray(classNames));
272
+ } else if (classNames) {
273
+ el.classList.add(classNames);
274
+ }
275
+
276
+ for (var attrName in attributes) {
277
+ el[attrName] = attributes[attrName];
278
+ }
279
+
280
+ return el;
281
+ };
@@ -0,0 +1,211 @@
1
+ import { API } from "@editorjs/editorjs";
2
+ import { Alignment, TextAlign } from "../utils";
3
+ /**
4
+ * @typedef {object} ParagraphConfig
5
+ * @property {string} placeholder - placeholder for the empty paragraph
6
+ * @property {boolean} preserveBlank - Whether or not to keep blank paragraphs when saving editor data`
7
+ */
8
+ declare type ParagraphConfig = {
9
+ placeholder: string;
10
+ preserveBlank: boolean;
11
+ typography?: Typography;
12
+ };
13
+ /**
14
+ * @typedef {Object} ParagraphData
15
+ * @description Tool's input and output data format
16
+ * @property {String} text — Paragraph's content. Can include HTML tags: <a><b><i>
17
+ */
18
+ declare type ParagraphData = {
19
+ text: string;
20
+ textAlign: TextAlign;
21
+ };
22
+ declare type Typography = {
23
+ [key: string]: {
24
+ label: string;
25
+ component: string;
26
+ className: string;
27
+ };
28
+ };
29
+ interface ParagraphArgs {
30
+ data: ParagraphData;
31
+ config: ParagraphConfig;
32
+ api: any;
33
+ readOnly: boolean;
34
+ }
35
+ declare class Paragraph {
36
+ api: API;
37
+ readOnly: boolean;
38
+ _CSS: any;
39
+ _settings: any;
40
+ _data: any;
41
+ _element: any;
42
+ _placeholder: string;
43
+ _preserveBlank: boolean;
44
+ alignments: Alignment[];
45
+ settingsButtons: HTMLElement[];
46
+ typography: Typography;
47
+ /**
48
+ * Render plugin`s main Element and fill it with saved data
49
+ *
50
+ * @param {object} params - constructor params
51
+ * @param {ParagraphData} params.data - previously saved data
52
+ * @param {ParagraphConfig} params.config - user config for Tool
53
+ * @param {object} params.api - editor.js api
54
+ * @param {boolean} readOnly - read only mode flag
55
+ */
56
+ constructor({ data, config, api, readOnly }: ParagraphArgs);
57
+ /**
58
+ * Default placeholder for Paragraph Tool
59
+ *
60
+ * @return {string}
61
+ * @constructor
62
+ */
63
+ static get DEFAULT_PLACEHOLDER(): string;
64
+ /**
65
+ * Enable Conversion Toolbar. Paragraph can be converted to/from other tools
66
+ */
67
+ static get conversionConfig(): {
68
+ export: string;
69
+ import: string;
70
+ };
71
+ /**
72
+ * Sanitizer rules
73
+ */
74
+ static get sanitize(): {
75
+ text: {
76
+ br: boolean;
77
+ };
78
+ };
79
+ /**
80
+ * Returns true to notify the core that read-only mode is supported
81
+ *
82
+ * @return {boolean}
83
+ */
84
+ static get isReadOnlySupported(): boolean;
85
+ /**
86
+ * Get current Tools`s data
87
+ * @returns {ParagraphData} Current data
88
+ * @private
89
+ */
90
+ get data(): any;
91
+ /**
92
+ * Store data in plugin:
93
+ * - at the this._data property
94
+ * - at the HTML
95
+ *
96
+ * @param {ParagraphData} data — data to set
97
+ * @private
98
+ */
99
+ set data(data: any);
100
+ /**
101
+ * Used by Editor paste handling API.
102
+ * Provides configuration to handle P tags.
103
+ *
104
+ * @returns {{tags: string[]}}
105
+ */
106
+ static get pasteConfig(): {
107
+ tags: string[];
108
+ };
109
+ /**
110
+ * Icon and title for displaying at the Toolbox
111
+ *
112
+ * @return {{icon: string, title: string}}
113
+ */
114
+ static get toolbox(): {
115
+ icon: string;
116
+ title: string;
117
+ };
118
+ /**
119
+ * Get current alignment
120
+ *
121
+ * @returns {alignment}
122
+ */
123
+ get currentAlignment(): Alignment;
124
+ /**
125
+ * Check if text content is empty and set empty string to inner html.
126
+ * We need this because some browsers (e.g. Safari) insert <br> into empty contentEditable elements
127
+ *
128
+ * @param {KeyboardEvent} e - key up event
129
+ */
130
+ onKeyUp(e: any): void;
131
+ /**
132
+ * Create Tool's view
133
+ * @return {HTMLElement}
134
+ * @private
135
+ */
136
+ drawView(): HTMLElement;
137
+ /**
138
+ * Return Tool's view
139
+ *
140
+ * @returns {HTMLDivElement}
141
+ */
142
+ render(): any;
143
+ /**
144
+ * Create Block's settings block
145
+ *
146
+ * @returns {HTMLElement}
147
+ */
148
+ renderSettings(): HTMLElement;
149
+ /**
150
+ * Method that specified how to merge two Text blocks.
151
+ * Called by Editor.js by backspace at the beginning of the Block
152
+ * @param {ParagraphData} data
153
+ * @public
154
+ */
155
+ merge(data: any): void;
156
+ /**
157
+ * Validate Paragraph block data:
158
+ * - check for emptiness
159
+ *
160
+ * @param {ParagraphData} savedData — data received after saving
161
+ * @returns {boolean} false if saved data is not correct, otherwise true
162
+ * @public
163
+ */
164
+ validate(savedData: any): boolean;
165
+ /**
166
+ * Extract Tool's data from the view
167
+ * @param {HTMLDivElement} toolsContent - Paragraph tools rendered view
168
+ * @returns {ParagraphData} - saved data
169
+ * @public
170
+ */
171
+ save(toolsContent: any): {
172
+ text: any;
173
+ textAlign: TextAlign.START;
174
+ className: any;
175
+ };
176
+ /**
177
+ * Extract textAlign from className
178
+ *
179
+ * @param {string} className - heading element className
180
+ * @returns {TextAlign} textAlign
181
+ */
182
+ getTextAlign(className: any): TextAlign.START;
183
+ /**
184
+ * On paste callback fired from Editor.
185
+ *
186
+ * @param {PasteEvent} event - event with pasted data
187
+ */
188
+ onPaste(event: any): void;
189
+ /**
190
+ * Callback for Block's settings buttons
191
+ *
192
+ * @param {number} alignment - level to set
193
+ */
194
+ setAlignment(alignment: any): void;
195
+ /**
196
+ * Callback for Block's settings buttons
197
+ *
198
+ * @param {string} className - name of typography class
199
+ */
200
+ setTypographyClass(className: string): void;
201
+ /**
202
+ * Normalize input data
203
+ *
204
+ * @param {HeaderData} data - saved data to process
205
+ *
206
+ * @returns {HeaderData}
207
+ * @private
208
+ */
209
+ normalizeData(data: any): any;
210
+ }
211
+ export default Paragraph;