@webiny/app-admin 5.23.1 → 5.25.0-beta.0

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 (306) hide show
  1. package/base/Admin.d.ts +3 -10
  2. package/base/Admin.js +4 -0
  3. package/base/Admin.js.map +1 -0
  4. package/base/Base.d.ts +1 -1
  5. package/base/Base.js.map +1 -0
  6. package/base/plugins/AddGraphQLQuerySelection.d.ts +2 -2
  7. package/base/plugins/AddGraphQLQuerySelection.js +3 -2
  8. package/base/plugins/AddGraphQLQuerySelection.js.map +1 -0
  9. package/base/providers/ApolloProvider.d.ts +9 -3
  10. package/base/providers/ApolloProvider.js +2 -1
  11. package/base/providers/ApolloProvider.js.map +1 -0
  12. package/base/providers/TelemetryProvider.d.ts +2 -4
  13. package/base/providers/TelemetryProvider.js +5 -0
  14. package/base/providers/TelemetryProvider.js.map +1 -0
  15. package/base/providers/UiStateProvider.d.ts +1 -3
  16. package/base/providers/UiStateProvider.js.map +1 -0
  17. package/base/providers/ViewCompositionProvider.d.ts +4 -5
  18. package/base/providers/ViewCompositionProvider.js +8 -1
  19. package/base/providers/ViewCompositionProvider.js.map +1 -0
  20. package/base/ui/Brand.d.ts +2 -9
  21. package/base/ui/Brand.js.map +1 -0
  22. package/base/ui/CenteredView.d.ts +1 -5
  23. package/base/ui/CenteredView.js.map +1 -0
  24. package/base/ui/Dashboard.d.ts +2 -9
  25. package/base/ui/Dashboard.js.map +1 -0
  26. package/base/ui/Layout.d.ts +2 -8
  27. package/base/ui/Layout.js.map +1 -0
  28. package/base/ui/LocaleSelector.d.ts +2 -9
  29. package/base/ui/LocaleSelector.js.map +1 -0
  30. package/base/ui/LoginScreen.d.ts +2 -5
  31. package/base/ui/LoginScreen.js.map +1 -0
  32. package/base/ui/Logo.d.ts +3 -9
  33. package/base/ui/Logo.js.map +1 -0
  34. package/base/ui/Menu.d.ts +8 -12
  35. package/base/ui/Menu.js +96 -30
  36. package/base/ui/Menu.js.map +1 -0
  37. package/base/ui/Navigation.d.ts +9 -20
  38. package/base/ui/Navigation.js +29 -29
  39. package/base/ui/Navigation.js.map +1 -0
  40. package/base/ui/NotFound.d.ts +2 -9
  41. package/base/ui/NotFound.js.map +1 -0
  42. package/base/ui/Search.d.ts +4 -13
  43. package/base/ui/Search.js +6 -1
  44. package/base/ui/Search.js.map +1 -0
  45. package/base/ui/Tags.d.ts +4 -2
  46. package/base/ui/Tags.js.map +1 -0
  47. package/base/ui/UserMenu.d.ts +9 -33
  48. package/base/ui/UserMenu.js +15 -2
  49. package/base/ui/UserMenu.js.map +1 -0
  50. package/components/AdminLayout.d.ts +1 -2
  51. package/components/AdminLayout.js.map +1 -0
  52. package/components/AppInstaller/AppInstaller.d.ts +2 -4
  53. package/components/AppInstaller/AppInstaller.js.map +1 -0
  54. package/components/AppInstaller/Sidebar.d.ts +8 -6
  55. package/components/AppInstaller/Sidebar.js +11 -10
  56. package/components/AppInstaller/Sidebar.js.map +1 -0
  57. package/components/AppInstaller/index.js.map +1 -0
  58. package/components/AppInstaller/styled.d.ts +4 -4
  59. package/components/AppInstaller/styled.js.map +1 -0
  60. package/components/AppInstaller/useInstaller.d.ts +28 -9
  61. package/components/AppInstaller/useInstaller.js +44 -36
  62. package/components/AppInstaller/useInstaller.js.map +1 -0
  63. package/components/EmptyView.d.ts +5 -5
  64. package/components/EmptyView.js.map +1 -0
  65. package/components/FileManager/BottomInfoBar/SupportedFileTypes.d.ts +5 -4
  66. package/components/FileManager/BottomInfoBar/SupportedFileTypes.js +7 -1
  67. package/components/FileManager/BottomInfoBar/SupportedFileTypes.js.map +1 -0
  68. package/components/FileManager/BottomInfoBar/UploadStatus.d.ts +5 -4
  69. package/components/FileManager/BottomInfoBar/UploadStatus.js.map +1 -0
  70. package/components/FileManager/BottomInfoBar.d.ts +4 -2
  71. package/components/FileManager/BottomInfoBar.js.map +1 -0
  72. package/components/FileManager/DropFilesHere.d.ts +4 -3
  73. package/components/FileManager/DropFilesHere.js +5 -2
  74. package/components/FileManager/DropFilesHere.js.map +1 -0
  75. package/components/FileManager/File.d.ts +7 -8
  76. package/components/FileManager/File.js +11 -5
  77. package/components/FileManager/File.js.map +1 -0
  78. package/components/FileManager/FileDetails/Name.d.ts +7 -5
  79. package/components/FileManager/FileDetails/Name.js +10 -7
  80. package/components/FileManager/FileDetails/Name.js.map +1 -0
  81. package/components/FileManager/FileDetails/Tags.d.ts +7 -5
  82. package/components/FileManager/FileDetails/Tags.js +22 -9
  83. package/components/FileManager/FileDetails/Tags.js.map +1 -0
  84. package/components/FileManager/FileDetails.d.ts +9 -8
  85. package/components/FileManager/FileDetails.js +80 -41
  86. package/components/FileManager/FileDetails.js.map +1 -0
  87. package/components/FileManager/FileManagerContext.d.ts +12 -9
  88. package/components/FileManager/FileManagerContext.js +14 -7
  89. package/components/FileManager/FileManagerContext.js.map +1 -0
  90. package/components/FileManager/FileManagerView.d.ts +3 -11
  91. package/components/FileManager/FileManagerView.js +79 -51
  92. package/components/FileManager/FileManagerView.js.map +1 -0
  93. package/components/FileManager/LeftSidebar.d.ts +6 -5
  94. package/components/FileManager/LeftSidebar.js +6 -5
  95. package/components/FileManager/LeftSidebar.js.map +1 -0
  96. package/components/FileManager/NoPermissionView.d.ts +2 -2
  97. package/components/FileManager/NoPermissionView.js.map +1 -0
  98. package/components/FileManager/NoResults.d.ts +3 -2
  99. package/components/FileManager/NoResults.js +5 -2
  100. package/components/FileManager/NoResults.js.map +1 -0
  101. package/components/FileManager/getFileTypePlugin.d.ts +4 -1
  102. package/components/FileManager/getFileTypePlugin.js +9 -0
  103. package/components/FileManager/getFileTypePlugin.js.map +1 -0
  104. package/components/FileManager/getFileUploader.d.ts +2 -1
  105. package/components/FileManager/getFileUploader.js.map +1 -0
  106. package/components/FileManager/graphql.d.ts +90 -0
  107. package/components/FileManager/graphql.js +25 -0
  108. package/components/FileManager/graphql.js.map +1 -0
  109. package/components/FileManager/outputFileSelectionError.d.ts +6 -1
  110. package/components/FileManager/outputFileSelectionError.js +3 -2
  111. package/components/FileManager/outputFileSelectionError.js.map +1 -0
  112. package/components/FileManager/types.d.ts +19 -0
  113. package/components/FileManager/types.js +1 -0
  114. package/components/FileManager/types.js.map +1 -0
  115. package/components/FileManager.d.ts +15 -10
  116. package/components/FileManager.js +27 -16
  117. package/components/FileManager.js.map +1 -0
  118. package/components/FloatingActionButton.d.ts +2 -2
  119. package/components/FloatingActionButton.js.map +1 -0
  120. package/components/MultiImageUpload.d.ts +13 -4
  121. package/components/MultiImageUpload.js +15 -4
  122. package/components/MultiImageUpload.js.map +1 -0
  123. package/components/OverlayLayout/OverlayLayout.d.ts +10 -13
  124. package/components/OverlayLayout/OverlayLayout.js.map +1 -0
  125. package/components/OverlayLayout/index.js.map +1 -0
  126. package/components/Permissions/Permissions.d.ts +4 -4
  127. package/components/Permissions/Permissions.js.map +1 -0
  128. package/components/Permissions/StyledComponents.d.ts +6 -4
  129. package/components/Permissions/StyledComponents.js.map +1 -0
  130. package/components/Permissions/index.js.map +1 -0
  131. package/components/RichTextEditor/RichTextEditor.d.ts +2 -2
  132. package/components/RichTextEditor/RichTextEditor.js.map +1 -0
  133. package/components/RichTextEditor/index.js.map +1 -0
  134. package/components/RichTextEditor/tools/header/index.d.ts +33 -34
  135. package/components/RichTextEditor/tools/header/index.js +5 -6
  136. package/components/RichTextEditor/tools/header/index.js.map +1 -0
  137. package/components/RichTextEditor/tools/image/index.d.ts +38 -13
  138. package/components/RichTextEditor/tools/image/index.js +4 -2
  139. package/components/RichTextEditor/tools/image/index.js.map +1 -0
  140. package/components/RichTextEditor/tools/image/svgs.js.map +1 -0
  141. package/components/RichTextEditor/tools/image/tunes.d.ts +12 -15
  142. package/components/RichTextEditor/tools/image/tunes.js +9 -4
  143. package/components/RichTextEditor/tools/image/tunes.js.map +1 -0
  144. package/components/RichTextEditor/tools/image/types.d.ts +29 -0
  145. package/components/RichTextEditor/tools/image/types.js +1 -0
  146. package/components/RichTextEditor/tools/image/types.js.map +1 -0
  147. package/components/RichTextEditor/tools/image/ui.d.ts +36 -27
  148. package/components/RichTextEditor/tools/image/ui.js +25 -12
  149. package/components/RichTextEditor/tools/image/ui.js.map +1 -0
  150. package/components/RichTextEditor/tools/paragraph/index.d.ts +32 -36
  151. package/components/RichTextEditor/tools/paragraph/index.js +17 -25
  152. package/components/RichTextEditor/tools/paragraph/index.js.map +1 -0
  153. package/components/RichTextEditor/tools/textColor/index.d.ts +30 -22
  154. package/components/RichTextEditor/tools/textColor/index.js +46 -10
  155. package/components/RichTextEditor/tools/textColor/index.js.map +1 -0
  156. package/components/RichTextEditor/tools/utils.js.map +1 -0
  157. package/components/Routes.d.ts +2 -2
  158. package/components/Routes.js.map +1 -0
  159. package/components/SearchUI.d.ts +4 -4
  160. package/components/SearchUI.js.map +1 -0
  161. package/components/SimpleForm/SimpleForm.d.ts +10 -11
  162. package/components/SimpleForm/SimpleForm.js.map +1 -0
  163. package/components/SimpleForm/index.js.map +1 -0
  164. package/components/SimpleUI/InputField.d.ts +4 -3
  165. package/components/SimpleUI/InputField.js +22 -20
  166. package/components/SimpleUI/InputField.js.map +1 -0
  167. package/components/SingleImageUpload.d.ts +3 -9
  168. package/components/SingleImageUpload.js +9 -11
  169. package/components/SingleImageUpload.js.map +1 -0
  170. package/components/SplitView/SplitView.d.ts +5 -5
  171. package/components/SplitView/SplitView.js.map +1 -0
  172. package/components/SplitView/index.js.map +1 -0
  173. package/components/index.js.map +1 -0
  174. package/hooks/useConfirmationDialog.d.ts +6 -5
  175. package/hooks/useConfirmationDialog.js +1 -2
  176. package/hooks/useConfirmationDialog.js.map +1 -0
  177. package/hooks/useDialog.d.ts +8 -3
  178. package/hooks/useDialog.js +1 -1
  179. package/hooks/useDialog.js.map +1 -0
  180. package/hooks/useSnackbar.d.ts +6 -3
  181. package/hooks/useSnackbar.js.map +1 -0
  182. package/index.js.map +1 -0
  183. package/package.json +24 -20
  184. package/plugins/FileManagerFileTypePlugin.d.ts +3 -3
  185. package/plugins/FileManagerFileTypePlugin.js +4 -0
  186. package/plugins/FileManagerFileTypePlugin.js.map +1 -0
  187. package/plugins/MenuPlugin.d.ts +6 -6
  188. package/plugins/MenuPlugin.js +4 -0
  189. package/plugins/MenuPlugin.js.map +1 -0
  190. package/plugins/PermissionRendererPlugin.d.ts +4 -4
  191. package/plugins/PermissionRendererPlugin.js +4 -0
  192. package/plugins/PermissionRendererPlugin.js.map +1 -0
  193. package/plugins/fileManager/fileDefault.js.map +1 -0
  194. package/plugins/fileManager/fileImage/DeleteAction.d.ts +6 -2
  195. package/plugins/fileManager/fileImage/DeleteAction.js.map +1 -0
  196. package/plugins/fileManager/fileImage/EditAction.d.ts +7 -6
  197. package/plugins/fileManager/fileImage/EditAction.js +24 -11
  198. package/plugins/fileManager/fileImage/EditAction.js.map +1 -0
  199. package/plugins/fileManager/fileImage/index.js.map +1 -0
  200. package/plugins/fileManager/index.js.map +1 -0
  201. package/plugins/globalSearch/SearchBar.d.ts +14 -5
  202. package/plugins/globalSearch/SearchBar.js +9 -0
  203. package/plugins/globalSearch/SearchBar.js.map +1 -0
  204. package/plugins/globalSearch/SearchBarDropdown.d.ts +19 -1
  205. package/plugins/globalSearch/SearchBarDropdown.js.map +1 -0
  206. package/plugins/globalSearch/index.d.ts +2 -1
  207. package/plugins/globalSearch/index.js.map +1 -0
  208. package/plugins/globalSearch/styled.d.ts +3 -3
  209. package/plugins/globalSearch/styled.js.map +1 -0
  210. package/plugins/index.d.ts +2 -1
  211. package/plugins/index.js.map +1 -0
  212. package/plugins/uiLayoutRenderer/index.js.map +1 -0
  213. package/types.d.ts +10 -8
  214. package/types.js.map +1 -0
  215. package/ui/UIElement.d.ts +1 -1
  216. package/ui/UIElement.js.map +1 -0
  217. package/ui/UILayout.js.map +1 -0
  218. package/ui/UIRenderer.js.map +1 -0
  219. package/ui/UIView.d.ts +1 -1
  220. package/ui/UIView.js.map +1 -0
  221. package/ui/elements/AccordionElement.d.ts +5 -5
  222. package/ui/elements/AccordionElement.js +4 -0
  223. package/ui/elements/AccordionElement.js.map +1 -0
  224. package/ui/elements/ButtonElement.d.ts +3 -3
  225. package/ui/elements/ButtonElement.js +7 -0
  226. package/ui/elements/ButtonElement.js.map +1 -0
  227. package/ui/elements/ButtonGroupElement.d.ts +2 -2
  228. package/ui/elements/ButtonGroupElement.js.map +1 -0
  229. package/ui/elements/GenericElement.js.map +1 -0
  230. package/ui/elements/LabelElement.js.map +1 -0
  231. package/ui/elements/NavigationMenuElement.d.ts +2 -1
  232. package/ui/elements/NavigationMenuElement.js +3 -2
  233. package/ui/elements/NavigationMenuElement.js.map +1 -0
  234. package/ui/elements/PanelElement.js.map +1 -0
  235. package/ui/elements/PlaceholderElement.d.ts +2 -1
  236. package/ui/elements/PlaceholderElement.js.map +1 -0
  237. package/ui/elements/SmallButtonElement.d.ts +1 -1
  238. package/ui/elements/SmallButtonElement.js.map +1 -0
  239. package/ui/elements/TypographyElement.d.ts +1 -1
  240. package/ui/elements/TypographyElement.js.map +1 -0
  241. package/ui/elements/ViewElement.js.map +1 -0
  242. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.d.ts +2 -2
  243. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js +10 -10
  244. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js.map +1 -0
  245. package/ui/elements/form/DynamicFieldsetElement.d.ts +19 -18
  246. package/ui/elements/form/DynamicFieldsetElement.js +13 -0
  247. package/ui/elements/form/DynamicFieldsetElement.js.map +1 -0
  248. package/ui/elements/form/FileManagerElement/EmptyStateElement.js.map +1 -0
  249. package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js.map +1 -0
  250. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js.map +1 -0
  251. package/ui/elements/form/FileManagerElement/styled.d.ts +17 -13
  252. package/ui/elements/form/FileManagerElement/styled.js.map +1 -0
  253. package/ui/elements/form/FileManagerElement.d.ts +6 -6
  254. package/ui/elements/form/FileManagerElement.js.map +1 -0
  255. package/ui/elements/form/FormElement.d.ts +5 -5
  256. package/ui/elements/form/FormElement.js.map +1 -0
  257. package/ui/elements/form/FormFieldElement.d.ts +9 -8
  258. package/ui/elements/form/FormFieldElement.js +15 -7
  259. package/ui/elements/form/FormFieldElement.js.map +1 -0
  260. package/ui/elements/form/HiddenElement.js.map +1 -0
  261. package/ui/elements/form/InputElement.d.ts +1 -0
  262. package/ui/elements/form/InputElement.js.map +1 -0
  263. package/ui/elements/form/PasswordElement.js.map +1 -0
  264. package/ui/elements/form/SelectElement.d.ts +1 -1
  265. package/ui/elements/form/SelectElement.js +1 -1
  266. package/ui/elements/form/SelectElement.js.map +1 -0
  267. package/ui/elements/form/TextareaElement.js.map +1 -0
  268. package/ui/views/AdminView/ContentElement.js.map +1 -0
  269. package/ui/views/AdminView/HeaderElement.js +14 -2
  270. package/ui/views/AdminView/HeaderElement.js.map +1 -0
  271. package/ui/views/AdminView/HeaderSectionCenterElement.d.ts +2 -2
  272. package/ui/views/AdminView/HeaderSectionCenterElement.js.map +1 -0
  273. package/ui/views/AdminView/HeaderSectionLeftElement.d.ts +2 -2
  274. package/ui/views/AdminView/HeaderSectionLeftElement.js.map +1 -0
  275. package/ui/views/AdminView/HeaderSectionRightElement.d.ts +2 -2
  276. package/ui/views/AdminView/HeaderSectionRightElement.js.map +1 -0
  277. package/ui/views/AdminView/components/Dialog.js.map +1 -0
  278. package/ui/views/AdminView/components/Hamburger.d.ts +2 -2
  279. package/ui/views/AdminView/components/Hamburger.js.map +1 -0
  280. package/ui/views/AdminView/components/Snackbar.d.ts +2 -2
  281. package/ui/views/AdminView/components/Snackbar.js.map +1 -0
  282. package/ui/views/FormView/FormContainerElement.d.ts +2 -2
  283. package/ui/views/FormView/FormContainerElement.js.map +1 -0
  284. package/ui/views/FormView/FormContentElement.js.map +1 -0
  285. package/ui/views/FormView/FormFooterElement.d.ts +3 -3
  286. package/ui/views/FormView/FormFooterElement.js.map +1 -0
  287. package/ui/views/FormView/FormHeaderElement.d.ts +2 -2
  288. package/ui/views/FormView/FormHeaderElement.js.map +1 -0
  289. package/ui/views/FormView.d.ts +1 -1
  290. package/ui/views/FormView.js +25 -3
  291. package/ui/views/FormView.js.map +1 -0
  292. package/ui/views/OverlayView/ContentElement.d.ts +2 -2
  293. package/ui/views/OverlayView/ContentElement.js.map +1 -0
  294. package/ui/views/OverlayView/HeaderElement.d.ts +5 -5
  295. package/ui/views/OverlayView/HeaderElement.js.map +1 -0
  296. package/ui/views/OverlayView/HeaderTitleElement.d.ts +1 -1
  297. package/ui/views/OverlayView/HeaderTitleElement.js.map +1 -0
  298. package/ui/views/OverlayView/useOverlayView.d.ts +4 -5
  299. package/ui/views/OverlayView/useOverlayView.js +2 -2
  300. package/ui/views/OverlayView/useOverlayView.js.map +1 -0
  301. package/ui/views/OverlayView.d.ts +4 -6
  302. package/ui/views/OverlayView.js.map +1 -0
  303. package/ui/views/SplitView/SplitViewPanelElement.d.ts +3 -3
  304. package/ui/views/SplitView/SplitViewPanelElement.js.map +1 -0
  305. package/ui/views/SplitView.d.ts +3 -3
  306. package/ui/views/SplitView.js.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["styled.ts"],"names":["styled","AddImageIconWrapper","color","width","height","maxWidth","maxHeight","display","opacity","margin","AddImageWrapper","minHeight","minWidth","textAlign","backgroundColor","borderRadius","borderBottom","alignItems","justifyContent","flexDirection","transition","cursor","padding","boxSizing","AddImageWrapperRound","RemoveImage","position","top","right","FilePreviewWrapper","zIndex","left","transform"],"mappings":";;;;AAAA;AACA,OAAOA,MAAP,MAAmB,iBAAnB;AAEA,OAAO,IAAMC,mBAAmB,gBAAGD,MAAH,CAAU,KAAV;AAAA;AAAA;AAAA,GAAiB;AAC7CE,EAAAA,KAAK,EAAE,+CADsC;AAE7C,UAAQ;AACJC,IAAAA,KAAK,EAAE,MADH;AAEJC,IAAAA,MAAM,EAAE,MAFJ;AAGJC,IAAAA,QAAQ,EAAE,EAHN;AAIJC,IAAAA,SAAS,EAAE,EAJP;AAKJC,IAAAA,OAAO,EAAE,OALL;AAMJC,IAAAA,OAAO,EAAE,GANL;AAOJC,IAAAA,MAAM,EAAE;AAPJ;AAFqC,CAAjB,CAAzB;AAaP,OAAO,IAAMC,eAAe,gBAAGV,MAAH,CAAU,KAAV;AAAA;AAAA;AAAA,GAAiB;AACzCG,EAAAA,KAAK,EAAE,MADkC;AAEzCC,EAAAA,MAAM,EAAE,MAFiC;AAGzCO,EAAAA,SAAS,EAAE,EAH8B;AAIzCC,EAAAA,QAAQ,EAAE,EAJ+B;AAKzCC,EAAAA,SAAS,EAAE,QAL8B;AAMzCC,EAAAA,eAAe,EAAE,gCANwB;AAOzCC,EAAAA,YAAY,EAAE,CAP2B;AAQzCC,EAAAA,YAAY,EAAE,oDAR2B;AASzCT,EAAAA,OAAO,EAAE,MATgC;AAUzCU,EAAAA,UAAU,EAAE,QAV6B;AAWzCC,EAAAA,cAAc,EAAE,cAXyB;AAYzCC,EAAAA,aAAa,EAAE,QAZ0B;AAazCC,EAAAA,UAAU,EAAE,YAb6B;AAczCC,EAAAA,MAAM,EAAE,SAdiC;AAezCC,EAAAA,OAAO,EAAE,EAfgC;AAgBzCC,EAAAA,SAAS,EAAE,YAhB8B;AAiBzC,aAAW;AACPT,IAAAA,eAAe,EAAE,kBADV;AAEPE,IAAAA,YAAY,EAAE;AAFP;AAjB8B,CAAjB,CAArB;AAuBP,OAAO,IAAMQ,oBAAoB,gBAAGxB,MAAH,CAAUU,eAAV;AAAA;AAAA;AAAA,GAA2B;AACxDD,EAAAA,MAAM,EAAE,MADgD;AAExDN,EAAAA,KAAK,EAAE,OAFiD;AAGxDC,EAAAA,MAAM,EAAE,OAHgD;AAIxDW,EAAAA,YAAY,EAAE;AAJ0C,CAA3B,CAA1B;AAOP,OAAO,IAAMU,WAAW,gBAAGzB,MAAH,CAAU,KAAV;AAAA;AAAA;AAAA,GAAiB;AACrC0B,EAAAA,QAAQ,EAAE,UAD2B;AAErCL,EAAAA,MAAM,EAAE,SAF6B;AAGrCM,EAAAA,GAAG,EAAE,EAHgC;AAIrCC,EAAAA,KAAK,EAAE,EAJ8B;AAKrCrB,EAAAA,OAAO,EAAE,MAL4B;AAMrCL,EAAAA,KAAK,EAAE,OAN8B;AAOrCM,EAAAA,OAAO,EAAE,GAP4B;AAQrC,aAAW;AACPA,IAAAA,OAAO,EAAE;AADF;AAR0B,CAAjB,CAAjB;AAaP,OAAO,IAAMqB,kBAAkB,gBAAG7B,MAAH,CAAU,KAAV;AAAA;AAAA;AAAA;AAC3BG,EAAAA,KAAK,EAAE,MADoB;AAE3BC,EAAAA,MAAM,EAAE,MAFmB;AAG3BO,EAAAA,SAAS,EAAE,EAHgB;AAI3BC,EAAAA,QAAQ,EAAE,EAJiB;AAK3BL,EAAAA,OAAO,EAAE,MALkB;AAM3BU,EAAAA,UAAU,EAAE,QANe;AAO3BC,EAAAA,cAAc,EAAE,cAPW;AAQ3BC,EAAAA,aAAa,EAAE,QARY;AAS3BI,EAAAA,SAAS,EAAE,YATgB;AAU3BG,EAAAA,QAAQ,EAAE,UAViB;AAW3BZ,EAAAA,eAAe,EAAE,gCAXU;AAY3BC,EAAAA,YAAY,EAAE,CAZa;AAa3BC,EAAAA,YAAY,EAAE;AAba,4BAc1BN,eAd0B;AAevBgB,EAAAA,QAAQ,EAAE,UAfa;AAgBvBnB,EAAAA,OAAO,EAAE,MAhBc;AAiBvBoB,EAAAA,GAAG,EAAE,CAjBkB;AAkBvBvB,EAAAA,MAAM,EAAE,MAlBe;AAmBvB0B,EAAAA,MAAM,EAAE,CAnBe;AAoBvBhB,EAAAA,eAAe,EAAE;AApBM,GAqBtBb,mBArBsB,EAqBA;AACnB0B,EAAAA,GAAG,EAAE,KADc;AAEnBI,EAAAA,IAAI,EAAE,KAFa;AAGnBC,EAAAA,SAAS,EAAE,mCAHQ;AAInBN,EAAAA,QAAQ,EAAE,UAJS;AAKnBxB,EAAAA,KAAK,EAAE;AALY,CArBA,6BA6B3B,SA7B2B,wCA8BtBQ,eA9BsB,EA8BJ;AACfH,EAAAA,OAAO,EAAE;AADM,CA9BI,2BAiCtBkB,WAjCsB,EAiCR;AACXlB,EAAAA,OAAO,EAAE,OADE;AAEXuB,EAAAA,MAAM,EAAE;AAFG,CAjCQ,sBAAxB","sourcesContent":["// @ts-nocheck\nimport styled from \"@emotion/styled\";\n\nexport const AddImageIconWrapper = styled(\"div\")({\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n \">svg\": {\n width: \"100%\",\n height: \"100%\",\n maxWidth: 50,\n maxHeight: 50,\n display: \"block\",\n opacity: 0.5,\n margin: \"0 auto\"\n }\n});\n\nexport const AddImageWrapper = styled(\"div\")({\n width: \"100%\",\n height: \"100%\",\n minHeight: 50,\n minWidth: 50,\n textAlign: \"center\",\n backgroundColor: \"var(--mdc-theme-on-background)\",\n borderRadius: 0,\n borderBottom: \"1px solid var(--mdc-theme-text-hint-on-background)\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-around\",\n flexDirection: \"column\",\n transition: \"color 0.2s\",\n cursor: \"pointer\",\n padding: 10,\n boxSizing: \"border-box\",\n \"&:hover\": {\n backgroundColor: \"rgba(0,0,0, 0.5)\",\n borderBottom: \"1px solid var(--mdc-theme-on-surface)\"\n }\n});\n\nexport const AddImageWrapperRound = styled(AddImageWrapper)({\n margin: \"auto\",\n width: \"150px\",\n height: \"150px\",\n borderRadius: \"50%\"\n});\n\nexport const RemoveImage = styled(\"div\")({\n position: \"absolute\",\n cursor: \"pointer\",\n top: 10,\n right: 10,\n display: \"none\",\n color: \"white\",\n opacity: 0.5,\n \"&:hover\": {\n opacity: 0.75\n }\n});\n\nexport const FilePreviewWrapper = styled(\"div\")({\n width: \"100%\",\n height: \"100%\",\n minHeight: 90,\n minWidth: 50,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-around\",\n flexDirection: \"column\",\n boxSizing: \"border-box\",\n position: \"relative\",\n backgroundColor: \"var(--mdc-theme-on-background)\",\n borderRadius: 0,\n borderBottom: \"1px solid var(--mdc-theme-text-hint-on-background)\",\n [AddImageWrapper]: {\n position: \"absolute\",\n display: \"none\",\n top: 0,\n height: \"100%\",\n zIndex: 1,\n backgroundColor: \"rgba(0,0,0, 0.75)\",\n [AddImageIconWrapper]: {\n top: \"50%\",\n left: \"50%\",\n transform: \"translateY(-50%) translateX(-50%)\",\n position: \"absolute\",\n color: \"white\"\n }\n },\n \"&:hover\": {\n [AddImageWrapper]: {\n display: \"block\"\n },\n [RemoveImage]: {\n display: \"block\",\n zIndex: 2\n }\n }\n});\n"]}
@@ -8,17 +8,17 @@ export interface FileManagerElementConfig extends FormFieldElementConfig {
8
8
  onChangePickAttributes?: string[];
9
9
  }
10
10
  export declare class FileManagerElement extends FormFieldElement<FileManagerElementConfig> {
11
- private _emptyStateElement;
11
+ private readonly _emptyStateElement;
12
12
  constructor(id: string, config: FileManagerElementConfig);
13
13
  getEmptyStateElement(): UIElement<import("@webiny/ui-composer/UIElement").UIElementConfig<any>>;
14
- getAccept(): string[];
14
+ getAccept(): string[] | undefined;
15
15
  setAccept(accept: string[]): void;
16
- getMaxSize(): string | number;
16
+ getMaxSize(): string | number | undefined;
17
17
  setMaxSize(maxSize: number | string): void;
18
- getMultipleMaxCount(): number;
18
+ getMultipleMaxCount(): number | undefined;
19
19
  setMultipleMaxCount(multipleMaxCount: number): void;
20
- getMultipleMaxSize(): string | number;
20
+ getMultipleMaxSize(): string | number | undefined;
21
21
  setMultipleMaxSize(multipleMaxSize: number | string): void;
22
- getOnChangePickAttributes(): string[];
22
+ getOnChangePickAttributes(): string[] | undefined;
23
23
  setOnChangePickAttributes(attributes: string[]): void;
24
24
  }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["FileManagerElement.tsx"],"names":["FormFieldElement","FileManagerElementRenderer","EmptyStateElement","FileManagerElement","id","config","addRenderer","_emptyStateElement","applyPlugins","accept","maxSize","multipleMaxCount","multipleMaxSize","onChangePickAttributes","attributes"],"mappings":";;;;;;AACA,SAASA,gBAAT;AACA,SAASC,0BAAT;AACA,SAASC,iBAAT;AAwBA,WAAaC,kBAAb;AAAA;;AAAA;;AAGI,8BAAmBC,EAAnB,EAA+BC,MAA/B,EAAiE;AAAA;;AAAA;;AAC7D,8BAAMD,EAAN,EAAUC,MAAV;;AAD6D;;AAG7D,UAAKC,WAAL,CAAiB,IAAIL,0BAAJ,EAAjB;;AAEA,UAAKM,kBAAL,GAA0B,IAAIL,iBAAJ,CAAsB,YAAtB,CAA1B;;AAEA,UAAKM,YAAL,CAAkBL,kBAAlB;;AAP6D;AAQhE;;AAXL;AAAA;AAAA,WAaI,gCAA8B;AAC1B,aAAO,KAAKI,kBAAZ;AACH;AAfL;AAAA;AAAA,WAiBI,qBAAmB;AACf,aAAO,KAAKF,MAAL,CAAYI,MAAnB;AACH;AAnBL;AAAA;AAAA,WAqBI,mBAAiBA,MAAjB,EAAmC;AAC/B,WAAKJ,MAAL,CAAYI,MAAZ,GAAqBA,MAArB;AACH;AAvBL;AAAA;AAAA,WAyBI,sBAAoB;AAChB,aAAO,KAAKJ,MAAL,CAAYK,OAAnB;AACH;AA3BL;AAAA;AAAA,WA6BI,oBAAkBA,OAAlB,EAA4C;AACxC,WAAKL,MAAL,CAAYK,OAAZ,GAAsBA,OAAtB;AACH;AA/BL;AAAA;AAAA,WAiCI,+BAA6B;AACzB,aAAO,KAAKL,MAAL,CAAYM,gBAAnB;AACH;AAnCL;AAAA;AAAA,WAqCI,6BAA2BA,gBAA3B,EAAqD;AACjD,WAAKN,MAAL,CAAYM,gBAAZ,GAA+BA,gBAA/B;AACH;AAvCL;AAAA;AAAA,WAyCI,8BAA4B;AACxB,aAAO,KAAKN,MAAL,CAAYO,eAAnB;AACH;AA3CL;AAAA;AAAA,WA6CI,4BAA0BA,eAA1B,EAA4D;AACxD,WAAKP,MAAL,CAAYO,eAAZ,GAA8BA,eAA9B;AACH;AA/CL;AAAA;AAAA,WAiDI,qCAAmC;AAC/B,aAAO,KAAKP,MAAL,CAAYQ,sBAAnB;AACH;AAnDL;AAAA;AAAA,WAqDI,mCAAiCC,UAAjC,EAAuD;AACnD,WAAKT,MAAL,CAAYQ,sBAAZ,GAAqCC,UAArC;AACH;AAvDL;;AAAA;AAAA,EAAwCd,gBAAxC","sourcesContent":["import { UIElement } from \"~/ui/UIElement\";\nimport { FormFieldElement, FormFieldElementConfig } from \"./FormFieldElement\";\nimport { FileManagerElementRenderer } from \"./FileManagerElement/FileManagerElementRenderer\";\nimport { EmptyStateElement } from \"./FileManagerElement/EmptyStateElement\";\n\nexport interface FileManagerElementConfig extends FormFieldElementConfig {\n // Define mime types that will be shown and accepted by FileManager\n accept?: string[];\n\n // Define file's max allowed size (default is \"10mb\").\n // Uses \"bytes\" (https://www.npmjs.com/package/bytes) library to convert string notation to actual number.\n maxSize?: number | string;\n\n // Max number of files in a single batch.\n multipleMaxCount?: number;\n\n // Max size of files in a single batch.\n multipleMaxSize?: number | string;\n\n // Define properties that are returned on file(s) selection.\n onChangePickAttributes?: string[];\n\n // Define whether multiple files can be selected1.\n // TODO: multiple?: boolean; - create a new renderer for \"multiple=true\" to render multiple files\n // It should work as in Headless CMS content entry form, see that for an example.\n}\n\nexport class FileManagerElement extends FormFieldElement<FileManagerElementConfig> {\n private readonly _emptyStateElement: UIElement;\n\n public constructor(id: string, config: FileManagerElementConfig) {\n super(id, config);\n\n this.addRenderer(new FileManagerElementRenderer());\n\n this._emptyStateElement = new EmptyStateElement(\"emptyState\");\n\n this.applyPlugins(FileManagerElement);\n }\n\n public getEmptyStateElement() {\n return this._emptyStateElement;\n }\n\n public getAccept() {\n return this.config.accept;\n }\n\n public setAccept(accept: string[]) {\n this.config.accept = accept;\n }\n\n public getMaxSize() {\n return this.config.maxSize;\n }\n\n public setMaxSize(maxSize: number | string) {\n this.config.maxSize = maxSize;\n }\n\n public getMultipleMaxCount() {\n return this.config.multipleMaxCount;\n }\n\n public setMultipleMaxCount(multipleMaxCount: number) {\n this.config.multipleMaxCount = multipleMaxCount;\n }\n\n public getMultipleMaxSize() {\n return this.config.multipleMaxSize;\n }\n\n public setMultipleMaxSize(multipleMaxSize: number | string) {\n this.config.multipleMaxSize = multipleMaxSize;\n }\n\n public getOnChangePickAttributes() {\n return this.config.onChangePickAttributes;\n }\n\n public setOnChangePickAttributes(attributes: string[]) {\n this.config.onChangePickAttributes = attributes;\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
- /// <reference types="react" />
1
+ import React from "react";
2
2
  import { FormOnSubmit, FormRenderPropParams } from "@webiny/form";
3
- import { UIElement, UIElementConfig } from "../../UIElement";
3
+ import { UIElement, UIElementConfig, UiElementRenderProps } from "../../UIElement";
4
4
  interface FormElementConfig extends UIElementConfig {
5
5
  onSubmit: FormOnSubmit;
6
6
  getData(): Record<string, any>;
@@ -11,11 +11,11 @@ interface FormElementConfig extends UIElementConfig {
11
11
  submitOnEnter?: boolean;
12
12
  validateOnFirstSubmit?: boolean;
13
13
  }
14
- export interface FormElementRenderProps {
14
+ export interface FormElementRenderProps extends UiElementRenderProps {
15
15
  formProps: FormRenderPropParams;
16
16
  }
17
17
  export declare class FormElement extends UIElement<FormElementConfig> {
18
- constructor(id: any, config: any);
19
- render(props: any): JSX.Element;
18
+ constructor(id: string, config: FormElementConfig);
19
+ render(props: FormElementRenderProps): React.ReactNode;
20
20
  }
21
21
  export {};
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["FormElement.tsx"],"names":["React","Fragment","Form","UIElement","FormElement","id","config","useGrid","props","onSubmit","getData","formProps"],"mappings":";;;;;;;AAAA,OAAOA,KAAP,IAAgBC,QAAhB,QAAgC,OAAhC;AACA,SAASC,IAAT,QAAyD,cAAzD;AACA,SAASC,SAAT;AAiBA,WAAaC,WAAb;AAAA;;AAAA;;AACI,uBAAmBC,EAAnB,EAA+BC,MAA/B,EAA0D;AAAA;;AAAA;;AACtD,8BAAMD,EAAN,EAAUC,MAAV;;AAEA,UAAKC,OAAL,CAAa,KAAb;;AAHsD;AAIzD;;AALL;AAAA;AAAA,WAOI,gBAAuBC,KAAvB,EAAuE;AAAA;;AACnE,0BACI,oBAAC,IAAD;AAAM,QAAA,QAAQ,EAAE,KAAKF,MAAL,CAAYG,QAA5B;AAAsC,QAAA,IAAI,EAAE,KAAKH,MAAL,CAAYI,OAAZ;AAA5C,SACK,UAAAC,SAAS;AAAA,4BAAI,oBAAC,QAAD,oHAA6BH,KAA7B;AAAoCG,UAAAA,SAAS,EAATA;AAApC,YAAJ;AAAA,OADd,CADJ;AAKH;AAbL;;AAAA;AAAA,EAAiCR,SAAjC","sourcesContent":["import React, { Fragment } from \"react\";\nimport { Form, FormOnSubmit, FormRenderPropParams } from \"@webiny/form\";\nimport { UIElement, UIElementConfig, UiElementRenderProps } from \"~/ui/UIElement\";\n\ninterface FormElementConfig extends UIElementConfig {\n onSubmit: FormOnSubmit;\n getData(): Record<string, any>;\n getInvalidFields?(): Record<string, any>;\n isDisabled?(): boolean;\n onChange?: FormOnSubmit;\n onInvalid?: () => void;\n submitOnEnter?: boolean;\n validateOnFirstSubmit?: boolean;\n}\n\nexport interface FormElementRenderProps extends UiElementRenderProps {\n formProps: FormRenderPropParams;\n}\n\nexport class FormElement extends UIElement<FormElementConfig> {\n public constructor(id: string, config: FormElementConfig) {\n super(id, config);\n\n this.useGrid(false);\n }\n\n public override render(props: FormElementRenderProps): React.ReactNode {\n return (\n <Form onSubmit={this.config.onSubmit} data={this.config.getData()}>\n {formProps => <Fragment>{super.render({ ...props, formProps })}</Fragment>}\n </Form>\n );\n }\n}\n"]}
@@ -2,9 +2,10 @@ import React from "react";
2
2
  import { FormRenderPropParams, FormAPI } from "@webiny/form";
3
3
  import { UIElement, UIElementConfig } from "../../UIElement";
4
4
  import { FormElementRenderProps } from "./FormElement";
5
+ import { Validator } from "@webiny/validation/types";
5
6
  export interface FormFieldElementConfig<TRenderProps = FormRenderPropParams> extends UIElementConfig<TRenderProps> {
6
7
  name: string;
7
- validators?: GetterWithProps<Function | Function[]>;
8
+ validators?: GetterWithProps<Validator | Validator[]>;
8
9
  beforeChange?: BeforeChange;
9
10
  afterChange?: AfterChange;
10
11
  defaultValue?: any | GetterWithProps<any>;
@@ -22,8 +23,8 @@ interface BeforeChange {
22
23
  interface BeforeChangeCallback {
23
24
  (value: any): void;
24
25
  }
25
- interface AfterChange {
26
- (value: any, form: FormAPI): void;
26
+ interface AfterChange<T = any, D extends Record<string, any> = Record<string, any>> {
27
+ (value: T, form: FormAPI<D>): void;
27
28
  }
28
29
  interface GetterWithProps<T> {
29
30
  (props: FormElementRenderProps): T;
@@ -33,7 +34,7 @@ export declare class FormFieldElement<TConfig extends FormFieldElementConfig = F
33
34
  private _afterChange;
34
35
  constructor(id: string, config: TConfig);
35
36
  getName(): string;
36
- getValidators(props?: FormFieldElementRenderProps): Function | Function[];
37
+ getValidators(props?: FormFieldElementRenderProps): Validator | Validator[];
37
38
  getDefaultValue(props?: FormFieldElementRenderProps): any;
38
39
  getLabel(props?: FormFieldElementRenderProps): string;
39
40
  getDescription(props?: FormFieldElementRenderProps): string | React.ReactElement;
@@ -44,11 +45,11 @@ export declare class FormFieldElement<TConfig extends FormFieldElementConfig = F
44
45
  setDefaultValue(value: any | GetterWithProps<any>): void;
45
46
  getIsDisabled(props?: FormFieldElementRenderProps): boolean;
46
47
  setIsDisabled(isDisabled: boolean | GetterWithProps<boolean>): void;
47
- setValidators(validators: GetterWithProps<Function>): void;
48
- onBeforeChange(value: any, cb: any): void;
49
- onAfterChange(value: any, form: any): void;
48
+ setValidators(validators: GetterWithProps<Validator>): void;
49
+ onBeforeChange(value: string, cb: (value: string) => void): void;
50
+ onAfterChange(value: string, form: FormAPI): void;
50
51
  addBeforeChange(cb: BeforeChange): void;
51
- addAfterChange(cb: AfterChange): void;
52
+ addAfterChange<T = any, D extends Record<string, any> = Record<string, any>>(cb: AfterChange<T, D>): void;
52
53
  setBeforeChange(cb: BeforeChange): void;
53
54
  setAfterChange(cb: AfterChange): void;
54
55
  }
@@ -131,13 +131,15 @@ export var FormFieldElement = /*#__PURE__*/function (_UIElement) {
131
131
  value: function onBeforeChange(value, cb) {
132
132
  var callbacks = _toConsumableArray(this._beforeChange);
133
133
 
134
- var next = function next(value) {
135
- if (!callbacks.length) {
136
- cb(value);
134
+ var next = function next(val) {
135
+ var callbackCallable = callbacks.pop();
136
+
137
+ if (!callbackCallable) {
138
+ cb(val);
137
139
  return;
138
140
  }
139
141
 
140
- callbacks.pop()(value, next);
142
+ callbackCallable(val, next);
141
143
  };
142
144
 
143
145
  next(value);
@@ -147,12 +149,14 @@ export var FormFieldElement = /*#__PURE__*/function (_UIElement) {
147
149
  value: function onAfterChange(value, form) {
148
150
  var callbacks = _toConsumableArray(this._afterChange);
149
151
 
150
- var next = function next(value) {
151
- if (!callbacks.length) {
152
+ var next = function next(val) {
153
+ var callbackCallable = callbacks.pop();
154
+
155
+ if (!callbackCallable) {
152
156
  return;
153
157
  }
154
158
 
155
- callbacks.pop()(value, form);
159
+ callbackCallable(val, form);
156
160
  };
157
161
 
158
162
  next(value);
@@ -165,6 +169,10 @@ export var FormFieldElement = /*#__PURE__*/function (_UIElement) {
165
169
  }, {
166
170
  key: "addAfterChange",
167
171
  value: function addAfterChange(cb) {
172
+ /**
173
+ * TODO @ts-refactor possibly different subtype. Or so TS complains.
174
+ */
175
+ // @ts-ignore
168
176
  this._afterChange.push(cb);
169
177
  }
170
178
  }, {
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["FormFieldElement.tsx"],"names":["UIElement","FormFieldElement","id","config","beforeChange","_beforeChange","push","afterChange","_afterChange","applyPlugins","name","props","validators","defaultValue","label","description","placeholder","value","isDisabled","cb","callbacks","next","val","callbackCallable","pop","form"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { FormRenderPropParams, FormAPI } from \"@webiny/form\";\nimport { UIElement, UIElementConfig } from \"~/ui/UIElement\";\nimport { FormElementRenderProps } from \"~/ui/elements/form/FormElement\";\nimport { Validator } from \"@webiny/validation/types\";\n\nexport interface FormFieldElementConfig<TRenderProps = FormRenderPropParams>\n extends UIElementConfig<TRenderProps> {\n name: string;\n validators?: GetterWithProps<Validator | Validator[]>;\n beforeChange?: BeforeChange;\n afterChange?: AfterChange;\n defaultValue?: any | GetterWithProps<any>;\n isDisabled?: boolean | GetterWithProps<boolean>;\n label?: string | GetterWithProps<string>;\n description?: string | React.ReactElement | GetterWithProps<string | React.ReactElement>;\n placeholder?: string | GetterWithProps<string>;\n}\n\nexport interface FormFieldElementRenderProps {\n formProps: FormRenderPropParams;\n}\n\ninterface BeforeChange {\n (value: any, callback: BeforeChangeCallback): void;\n}\n\ninterface BeforeChangeCallback {\n (value: any): void;\n}\n\ninterface AfterChange<T = any, D extends Record<string, any> = Record<string, any>> {\n (value: T, form: FormAPI<D>): void;\n}\n\ninterface GetterWithProps<T> {\n (props: FormElementRenderProps): T;\n}\n\nexport class FormFieldElement<\n TConfig extends FormFieldElementConfig = FormFieldElementConfig\n> extends UIElement<TConfig> {\n private _beforeChange: BeforeChange[] = [];\n private _afterChange: AfterChange[] = [];\n\n public constructor(id: string, config: TConfig) {\n super(id, config);\n\n if (config.beforeChange) {\n this._beforeChange.push(config.beforeChange);\n }\n\n if (config.afterChange) {\n this._afterChange.push(config.afterChange);\n }\n\n this.applyPlugins(FormFieldElement);\n }\n\n public getName(): string {\n return this.config.name;\n }\n\n public getValidators(props?: FormFieldElementRenderProps): Validator | Validator[] {\n if (!this.config.validators || typeof this.config.validators !== \"function\") {\n return () => true;\n }\n\n return this.config.validators(props as FormFieldElementRenderProps);\n }\n\n public getDefaultValue(props?: FormFieldElementRenderProps): any {\n if (typeof this.config.defaultValue === \"function\") {\n return this.config.defaultValue(props);\n }\n\n return this.config.defaultValue;\n }\n\n public getLabel(props?: FormFieldElementRenderProps): string {\n if (typeof this.config.label === \"function\") {\n return this.config.label(props as FormFieldElementRenderProps);\n }\n\n return this.config.label as string;\n }\n\n public getDescription(props?: FormFieldElementRenderProps): string | React.ReactElement {\n if (typeof this.config.description === \"function\") {\n return this.config.description(props as FormFieldElementRenderProps);\n }\n\n return this.config.description as string;\n }\n\n public getPlaceholder(props?: FormFieldElementRenderProps): string {\n if (typeof this.config.placeholder === \"function\") {\n return this.config.placeholder(props as FormFieldElementRenderProps);\n }\n\n return this.config.placeholder as string;\n }\n\n public setLabel(label: string | GetterWithProps<string>): void {\n this.config.label = label;\n }\n\n public setDescription(\n description: string | React.ReactElement | GetterWithProps<string | React.ReactElement>\n ): void {\n this.config.description = description;\n }\n\n public setPlaceholder(placeholder: string | GetterWithProps<string>): void {\n this.config.placeholder = placeholder;\n }\n\n public setDefaultValue(value: any | GetterWithProps<any>): void {\n this.config.defaultValue = value;\n }\n\n public getIsDisabled(props?: FormFieldElementRenderProps): boolean {\n if (typeof this.config.isDisabled === \"function\") {\n return this.config.isDisabled(props as FormFieldElementRenderProps);\n }\n return this.config.isDisabled as boolean;\n }\n\n public setIsDisabled(isDisabled: boolean | GetterWithProps<boolean>): void {\n this.config.isDisabled = isDisabled;\n }\n\n public setValidators(validators: GetterWithProps<Validator>): void {\n this.config.validators = validators;\n }\n\n public onBeforeChange(value: string, cb: (value: string) => void): void {\n const callbacks = [...this._beforeChange];\n const next = (val: string) => {\n const callbackCallable = callbacks.pop();\n if (!callbackCallable) {\n cb(val);\n return;\n }\n callbackCallable(val, next);\n };\n\n next(value);\n }\n\n public onAfterChange(value: string, form: FormAPI): void {\n const callbacks = [...this._afterChange];\n const next = (val: string) => {\n const callbackCallable = callbacks.pop();\n if (!callbackCallable) {\n return;\n }\n callbackCallable(val, form);\n };\n\n next(value);\n }\n\n public addBeforeChange(cb: BeforeChange): void {\n this._beforeChange.push(cb);\n }\n\n public addAfterChange<T = any, D extends Record<string, any> = Record<string, any>>(\n cb: AfterChange<T, D>\n ): void {\n /**\n * TODO @ts-refactor possibly different subtype. Or so TS complains.\n */\n // @ts-ignore\n this._afterChange.push(cb);\n }\n\n public setBeforeChange(cb: BeforeChange): void {\n this._beforeChange = [cb];\n }\n\n public setAfterChange(cb: AfterChange): void {\n this._afterChange = [cb];\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["HiddenElement.tsx"],"names":["React","FormFieldElement","HiddenElement","id","config","applyPlugins","props","formProps","Error","Bind","getName","getValidators","getDefaultValue","value","cb","onBeforeChange","form","onAfterChange"],"mappings":";;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SACIC,gBADJ;AAMA,WAAaC,aAAb;AAAA;;AAAA;;AACI,yBAAmBC,EAAnB,EAA+BC,MAA/B,EAA+D;AAAA;;AAAA;;AAC3D,8BAAMD,EAAN,EAAUC,MAAV;;AAEA,UAAKC,YAAL,CAAkBH,aAAlB;;AAH2D;AAI9D;;AALL;AAAA;AAAA,WAOI,gBAAuBI,KAAvB,EAA4E;AAAA;;AACxE,UAAI,CAACA,KAAK,CAACC,SAAX,EAAsB;AAClB,cAAMC,KAAK,yDAAX;AACH;;AAED,UAAQC,IAAR,GAAiBH,KAAK,CAACC,SAAvB,CAAQE,IAAR;AAEA,0BACI,oBAAC,IAAD;AACI,QAAA,IAAI,EAAE,KAAKC,OAAL,EADV;AAEI,QAAA,UAAU,EAAE,KAAKC,aAAL,CAAmBL,KAAnB,CAFhB;AAGI,QAAA,YAAY,EAAE,KAAKM,eAAL,CAAqBN,KAArB,CAHlB;AAII,QAAA,YAAY,EAAE,sBAACO,KAAD,EAAgBC,EAAhB;AAAA,iBAAuB,MAAI,CAACC,cAAL,CAAoBF,KAApB,EAA2BC,EAA3B,CAAvB;AAAA,SAJlB;AAKI,QAAA,WAAW,EAAE,qBAACD,KAAD,EAAgBG,IAAhB;AAAA,iBAAyB,MAAI,CAACC,aAAL,CAAmBJ,KAAnB,EAA0BG,IAA1B,CAAzB;AAAA;AALjB,QADJ;AASH;AAvBL;;AAAA;AAAA,EAAmCf,gBAAnC","sourcesContent":["import React from \"react\";\nimport {\n FormFieldElement,\n FormFieldElementConfig,\n FormFieldElementRenderProps\n} from \"~/ui/elements/form/FormFieldElement\";\n\nexport class HiddenElement extends FormFieldElement {\n public constructor(id: string, config: FormFieldElementConfig) {\n super(id, config);\n\n this.applyPlugins(HiddenElement);\n }\n\n public override render(props: FormFieldElementRenderProps): React.ReactNode {\n if (!props.formProps) {\n throw Error(`HiddenElement must be placed inside of a FormElement.`);\n }\n\n const { Bind } = props.formProps;\n\n return (\n <Bind\n name={this.getName()}\n validators={this.getValidators(props)}\n defaultValue={this.getDefaultValue(props)}\n beforeChange={(value: string, cb) => this.onBeforeChange(value, cb)}\n afterChange={(value: string, form) => this.onAfterChange(value, form)}\n />\n );\n }\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  import React from "react";
2
2
  import { FormFieldElement, FormFieldElementConfig, FormFieldElementRenderProps } from "./FormFieldElement";
3
+ export declare type InputElementRenderProps = FormFieldElementRenderProps;
3
4
  export declare class InputElement extends FormFieldElement {
4
5
  constructor(id: string, config: FormFieldElementConfig);
5
6
  render(props: FormFieldElementRenderProps): React.ReactNode;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["InputElement.tsx"],"names":["React","Input","FormFieldElement","InputElement","id","config","applyPlugins","props","formProps","Error","Bind","getName","getValidators","getDefaultValue","value","cb","onBeforeChange","form","onAfterChange","getLabel","getPlaceholder","getIsDisabled","getDescription"],"mappings":";;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,KAAT,QAAsB,kBAAtB;AACA,SACIC,gBADJ;AAOA,WAAaC,YAAb;AAAA;;AAAA;;AACI,wBAAmBC,EAAnB,EAA+BC,MAA/B,EAA+D;AAAA;;AAAA;;AAC3D,8BAAMD,EAAN,EAAUC,MAAV;;AAEA,UAAKC,YAAL,CAAkBH,YAAlB;;AAH2D;AAI9D;;AALL;AAAA;AAAA,WAOI,gBAAuBI,KAAvB,EAA4E;AAAA;;AACxE,UAAI,CAACA,KAAK,CAACC,SAAX,EAAsB;AAClB,cAAMC,KAAK,wDAAX;AACH;;AAED,UAAQC,IAAR,GAAiBH,KAAK,CAACC,SAAvB,CAAQE,IAAR;AAEA,0BACI,oBAAC,IAAD;AACI,QAAA,IAAI,EAAE,KAAKC,OAAL,EADV;AAEI,QAAA,UAAU,EAAE,KAAKC,aAAL,CAAmBL,KAAnB,CAFhB;AAGI,QAAA,YAAY,EAAE,KAAKM,eAAL,CAAqBN,KAArB,CAHlB;AAII,QAAA,YAAY,EAAE,sBAACO,KAAD,EAAgBC,EAAhB;AAAA,iBAAuB,MAAI,CAACC,cAAL,CAAoBF,KAApB,EAA2BC,EAA3B,CAAvB;AAAA,SAJlB;AAKI,QAAA,WAAW,EAAE,qBAACD,KAAD,EAAgBG,IAAhB;AAAA,iBAAyB,MAAI,CAACC,aAAL,CAAmBJ,KAAnB,EAA0BG,IAA1B,CAAzB;AAAA;AALjB,sBAOI,oBAAC,KAAD;AACI,QAAA,KAAK,EAAE,KAAKE,QAAL,CAAcZ,KAAd,CADX;AAEI,QAAA,WAAW,EAAE,KAAKa,cAAL,CAAoBb,KAApB,CAFjB;AAGI,QAAA,QAAQ,EAAE,KAAKc,aAAL,CAAmBd,KAAnB,CAHd;AAII,QAAA,WAAW,EAAE,KAAKe,cAAL,CAAoBf,KAApB;AAJjB,QAPJ,CADJ;AAgBH;AA9BL;;AAAA;AAAA,EAAkCL,gBAAlC","sourcesContent":["import React from \"react\";\nimport { Input } from \"@webiny/ui/Input\";\nimport {\n FormFieldElement,\n FormFieldElementConfig,\n FormFieldElementRenderProps\n} from \"~/ui/elements/form/FormFieldElement\";\n\nexport type InputElementRenderProps = FormFieldElementRenderProps;\nexport class InputElement extends FormFieldElement {\n public constructor(id: string, config: FormFieldElementConfig) {\n super(id, config);\n\n this.applyPlugins(InputElement);\n }\n\n public override render(props: FormFieldElementRenderProps): React.ReactNode {\n if (!props.formProps) {\n throw Error(`InputElement must be placed inside of a FormElement.`);\n }\n\n const { Bind } = props.formProps;\n\n return (\n <Bind\n name={this.getName()}\n validators={this.getValidators(props)}\n defaultValue={this.getDefaultValue(props)}\n beforeChange={(value: string, cb) => this.onBeforeChange(value, cb)}\n afterChange={(value: string, form) => this.onAfterChange(value, form)}\n >\n <Input\n label={this.getLabel(props)}\n placeholder={this.getPlaceholder(props)}\n disabled={this.getIsDisabled(props)}\n description={this.getDescription(props)}\n />\n </Bind>\n );\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["PasswordElement.tsx"],"names":["React","InputElement","Input","PasswordElement","props","formProps","Error","Bind","getName","getValidators","getDefaultValue","value","cb","onBeforeChange","form","onAfterChange","getLabel","getPlaceholder","getIsDisabled","getDescription"],"mappings":";;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,YAAT;AAEA,SAASC,KAAT,QAAsB,kBAAtB;AAEA,WAAaC,eAAb;AAAA;;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA,WACI,gBAAuBC,KAAvB,EAA+E;AAAA;;AAC3E,UAAI,CAACA,KAAK,CAACC,SAAX,EAAsB;AAClB,cAAMC,KAAK,2DAAX;AACH;;AAED,UAAQC,IAAR,GAAiBH,KAAK,CAACC,SAAvB,CAAQE,IAAR;AAEA,0BACI,oBAAC,IAAD;AACI,QAAA,IAAI,EAAE,KAAKC,OAAL,EADV;AAEI,QAAA,UAAU,EAAE,KAAKC,aAAL,CAAmBL,KAAnB,CAFhB;AAGI,QAAA,YAAY,EAAE,KAAKM,eAAL,CAAqBN,KAArB,CAHlB;AAII,QAAA,YAAY,EAAE,sBAACO,KAAD,EAAgBC,EAAhB;AAAA,iBAAuB,KAAI,CAACC,cAAL,CAAoBF,KAApB,EAA2BC,EAA3B,CAAvB;AAAA,SAJlB;AAKI,QAAA,WAAW,EAAE,qBAACD,KAAD,EAAgBG,IAAhB;AAAA,iBAAyB,KAAI,CAACC,aAAL,CAAmBJ,KAAnB,EAA0BG,IAA1B,CAAzB;AAAA;AALjB,sBAOI,oBAAC,KAAD;AACI,QAAA,IAAI,EAAE,UADV;AAEI,QAAA,KAAK,EAAE,KAAKE,QAAL,CAAcZ,KAAd,CAFX;AAGI,QAAA,WAAW,EAAE,KAAKa,cAAL,CAAoBb,KAApB,CAHjB;AAII,QAAA,QAAQ,EAAE,KAAKc,aAAL,CAAmBd,KAAnB,CAJd;AAKI,QAAA,WAAW,EAAE,KAAKe,cAAL,CAAoBf,KAApB;AALjB,QAPJ,CADJ;AAiBH;AAzBL;;AAAA;AAAA,EAAqCH,YAArC","sourcesContent":["import React from \"react\";\nimport { InputElement } from \"./InputElement\";\nimport { FormFieldElementRenderProps } from \"~/ui/elements/form/FormFieldElement\";\nimport { Input } from \"@webiny/ui/Input\";\n\nexport class PasswordElement extends InputElement {\n public override render(props: FormFieldElementRenderProps): React.ReactElement {\n if (!props.formProps) {\n throw Error(`PasswordElement must be placed inside of a FormElement.`);\n }\n\n const { Bind } = props.formProps;\n\n return (\n <Bind\n name={this.getName()}\n validators={this.getValidators(props)}\n defaultValue={this.getDefaultValue(props)}\n beforeChange={(value: string, cb) => this.onBeforeChange(value, cb)}\n afterChange={(value: string, form) => this.onAfterChange(value, form)}\n >\n <Input\n type={\"password\"}\n label={this.getLabel(props)}\n placeholder={this.getPlaceholder(props)}\n disabled={this.getIsDisabled(props)}\n description={this.getDescription(props)}\n />\n </Bind>\n );\n }\n}\n"]}
@@ -10,6 +10,6 @@ export interface SelectElementConfig extends FormFieldElementConfig {
10
10
  export declare class SelectElement extends FormFieldElement<SelectElementConfig> {
11
11
  constructor(id: string, config: SelectElementConfig);
12
12
  setOptions(options: SelectElementOption[]): void;
13
- getOptions(): SelectElementOption[];
13
+ getOptions(): SelectElementOption[] | undefined;
14
14
  render(props: FormFieldElementRenderProps): React.ReactNode;
15
15
  }
@@ -56,7 +56,7 @@ export var SelectElement = /*#__PURE__*/function (_FormFieldElement) {
56
56
  label: this.getLabel(props),
57
57
  disabled: this.getIsDisabled(props),
58
58
  description: this.getDefaultValue(props)
59
- }, this.getOptions().map(function (_ref) {
59
+ }, (this.getOptions() || []).map(function (_ref) {
60
60
  var value = _ref.value,
61
61
  label = _ref.label;
62
62
  return /*#__PURE__*/React.createElement("option", {
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["SelectElement.tsx"],"names":["React","Select","FormFieldElement","SelectElement","id","config","applyPlugins","options","props","formProps","Error","Bind","getName","getValidators","getDefaultValue","value","cb","onBeforeChange","form","onAfterChange","getLabel","getIsDisabled","getOptions","map","label"],"mappings":";;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,MAAT,QAAuB,mBAAvB;AACA,SACIC,gBADJ;AAeA,WAAaC,aAAb;AAAA;;AAAA;;AACI,yBAAmBC,EAAnB,EAA+BC,MAA/B,EAA4D;AAAA;;AAAA;;AACxD,8BAAMD,EAAN,EAAUC,MAAV;;AAEA,UAAKC,YAAL,CAAkBH,aAAlB;;AAHwD;AAI3D;;AALL;AAAA;AAAA,WAOI,oBAAkBI,OAAlB,EAAwD;AACpD,WAAKF,MAAL,CAAYE,OAAZ,GAAsBA,OAAtB;AACH;AATL;AAAA;AAAA,WAWI,sBAAuD;AACnD,aAAO,KAAKF,MAAL,CAAYE,OAAnB;AACH;AAbL;AAAA;AAAA,WAeI,gBAAuBC,KAAvB,EAA4E;AAAA;;AACxE,UAAI,CAACA,KAAK,CAACC,SAAX,EAAsB;AAClB,cAAMC,KAAK,yDAAX;AACH;;AAED,UAAQC,IAAR,GAAiBH,KAAK,CAACC,SAAvB,CAAQE,IAAR;AAEA,0BACI,oBAAC,IAAD;AACI,QAAA,IAAI,EAAE,KAAKC,OAAL,EADV;AAEI,QAAA,UAAU,EAAE,KAAKC,aAAL,CAAmBL,KAAnB,CAFhB;AAGI,QAAA,YAAY,EAAE,KAAKM,eAAL,CAAqBN,KAArB,CAHlB;AAII,QAAA,YAAY,EAAE,sBAACO,KAAD,EAAgBC,EAAhB;AAAA,iBAAuB,MAAI,CAACC,cAAL,CAAoBF,KAApB,EAA2BC,EAA3B,CAAvB;AAAA,SAJlB;AAKI,QAAA,WAAW,EAAE,qBAACD,KAAD,EAAgBG,IAAhB;AAAA,iBAAyB,MAAI,CAACC,aAAL,CAAmBJ,KAAnB,EAA0BG,IAA1B,CAAzB;AAAA;AALjB,sBAOI,oBAAC,MAAD;AACI,QAAA,KAAK,EAAE,KAAKE,QAAL,CAAcZ,KAAd,CADX;AAEI,QAAA,QAAQ,EAAE,KAAKa,aAAL,CAAmBb,KAAnB,CAFd;AAGI,QAAA,WAAW,EAAE,KAAKM,eAAL,CAAqBN,KAArB;AAHjB,SAKK,CAAC,KAAKc,UAAL,MAAqB,EAAtB,EAA0BC,GAA1B,CAA8B;AAAA,YAAGR,KAAH,QAAGA,KAAH;AAAA,YAAUS,KAAV,QAAUA,KAAV;AAAA,4BAC3B;AAAQ,UAAA,GAAG,EAAET,KAAb;AAAoB,UAAA,KAAK,EAAEA;AAA3B,WACKS,KADL,CAD2B;AAAA,OAA9B,CALL,CAPJ,CADJ;AAqBH;AA3CL;;AAAA;AAAA,EAAmCtB,gBAAnC","sourcesContent":["import React from \"react\";\nimport { Select } from \"@webiny/ui/Select\";\nimport {\n FormFieldElement,\n FormFieldElementConfig,\n FormFieldElementRenderProps\n} from \"~/ui/elements/form/FormFieldElement\";\n\nexport interface SelectElementOption {\n value: string;\n label: string;\n}\n\nexport interface SelectElementConfig extends FormFieldElementConfig {\n options?: SelectElementOption[];\n}\n\nexport class SelectElement extends FormFieldElement<SelectElementConfig> {\n public constructor(id: string, config: SelectElementConfig) {\n super(id, config);\n\n this.applyPlugins(SelectElement);\n }\n\n public setOptions(options: SelectElementOption[]): void {\n this.config.options = options;\n }\n\n public getOptions(): SelectElementOption[] | undefined {\n return this.config.options;\n }\n\n public override render(props: FormFieldElementRenderProps): React.ReactNode {\n if (!props.formProps) {\n throw Error(`SelectElement must be placed inside of a FormElement.`);\n }\n\n const { Bind } = props.formProps;\n\n return (\n <Bind\n name={this.getName()}\n validators={this.getValidators(props)}\n defaultValue={this.getDefaultValue(props)}\n beforeChange={(value: string, cb) => this.onBeforeChange(value, cb)}\n afterChange={(value: string, form) => this.onAfterChange(value, form)}\n >\n <Select\n label={this.getLabel(props)}\n disabled={this.getIsDisabled(props)}\n description={this.getDefaultValue(props)}\n >\n {(this.getOptions() || []).map(({ value, label }) => (\n <option key={value} value={value}>\n {label}\n </option>\n ))}\n </Select>\n </Bind>\n );\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["TextareaElement.tsx"],"names":["React","Input","FormFieldElement","TextareaElement","id","config","applyPlugins","rows","props","formProps","Error","Bind","getName","getValidators","getLabel","getIsDisabled","getRows","getDescription"],"mappings":";;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,KAAT,QAAsB,kBAAtB;AAEA,SAASC,gBAAT;AAUA,WAAaC,eAAb;AAAA;;AAAA;;AACI,2BAAYC,EAAZ,EAAwBC,MAAxB,EAAuD;AAAA;;AAAA;;AACnD,8BAAMD,EAAN,EAAUC,MAAV;;AAEA,UAAKC,YAAL,CAAkBH,eAAlB;;AAHmD;AAItD;;AALL;AAAA;AAAA,WAOI,iBAAeI,IAAf,EAAmC;AAC/B,WAAKF,MAAL,CAAYE,IAAZ,GAAmBA,IAAnB;AACH;AATL;AAAA;AAAA,WAWI,mBAAyB;AACrB,aAAO,KAAKF,MAAL,CAAYE,IAAnB;AACH;AAbL;AAAA;AAAA,WAeI,gBAAuBC,KAAvB,EAA2E;AACvE,UAAI,CAACA,KAAK,CAACC,SAAX,EAAsB;AAClB,cAAMC,KAAK,2DAAX;AACH;;AAED,UAAQC,IAAR,GAAiBH,KAAK,CAACC,SAAvB,CAAQE,IAAR;AAEA,0BACI,oBAAC,IAAD;AAAM,QAAA,IAAI,EAAE,KAAKC,OAAL,EAAZ;AAA4B,QAAA,UAAU,EAAE,KAAKC,aAAL,CAAmBL,KAAnB;AAAxC,sBACI,oBAAC,KAAD;AACI,QAAA,KAAK,EAAE,KAAKM,QAAL,CAAcN,KAAd,CADX;AAEI,QAAA,QAAQ,EAAE,KAAKO,aAAL,CAAmBP,KAAnB,CAFd;AAGI,QAAA,IAAI,EAAE,KAAKQ,OAAL,EAHV;AAII,QAAA,WAAW,EAAE,KAAKC,cAAL,CAAoBT,KAApB;AAJjB,QADJ,CADJ;AAUH;AAhCL;;AAAA;AAAA,EAAqCN,gBAArC","sourcesContent":["import React from \"react\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { FormRenderPropParams } from \"@webiny/form\";\nimport { FormFieldElement, FormFieldElementConfig } from \"~/ui/elements/form/FormFieldElement\";\n\nexport interface TextareaElementRenderProps {\n formProps: FormRenderPropParams;\n}\n\nexport interface TextareaElementConfig extends FormFieldElementConfig {\n rows: number;\n}\n\nexport class TextareaElement extends FormFieldElement<TextareaElementConfig> {\n constructor(id: string, config: TextareaElementConfig) {\n super(id, config);\n\n this.applyPlugins(TextareaElement);\n }\n\n public setRows(rows: number): void {\n this.config.rows = rows;\n }\n\n public getRows(): number {\n return this.config.rows;\n }\n\n public override render(props: TextareaElementRenderProps): React.ReactNode {\n if (!props.formProps) {\n throw Error(`TextareaElement must be placed inside of a FormElement.`);\n }\n\n const { Bind } = props.formProps;\n\n return (\n <Bind name={this.getName()} validators={this.getValidators(props)}>\n <Input\n label={this.getLabel(props)}\n disabled={this.getIsDisabled(props)}\n rows={this.getRows()}\n description={this.getDescription(props)}\n />\n </Bind>\n );\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["ContentElement.tsx"],"names":["React","styled","UIElement","UIRenderer","ContentWrapper","width","paddingTop","ContentElementRenderer","next","props","children","ContentElement","id","useGrid","addRenderer","applyPlugins"],"mappings":";;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,MAAP,MAAmB,iBAAnB;AACA,SAASC,SAAT;AACA,SAASC,UAAT;AAEA,IAAMC,cAAc,gBAAGH,MAAH,CAAU,KAAV;AAAA;AAAA;AAAA,GAAiB;AACjCI,EAAAA,KAAK,EAAE,MAD0B;AAEjCC,EAAAA,UAAU,EAAE;AAFqB,CAAjB,CAApB;;IAKMC,sB;;;;;;;;;;;;;WACF,sBAAyF;AAAA,UAAhEC,IAAgE,QAAhEA,IAAgE;AAAA,UAA1DC,KAA0D,QAA1DA,KAA0D;AACrF,0BAAO,oBAAC,cAAD,QAAiBA,KAAK,CAACC,QAAN,GAAiBD,KAAK,CAACC,QAAvB,GAAkCF,IAAI,EAAvD,CAAP;AACH;;;;EAHgCL,U;;AAMrC,WAAaQ,cAAb;AAAA;;AAAA;;AACI,0BAAmBC,EAAnB,EAA+B;AAAA;;AAAA;;AAC3B,+BAAMA,EAAN;;AACA,UAAKC,OAAL,CAAa,KAAb;;AACA,UAAKC,WAAL,CAAiB,IAAIP,sBAAJ,EAAjB;;AACA,UAAKQ,YAAL,CAAkBJ,cAAlB;;AAJ2B;AAK9B;;AANL;AAAA,EAAoCT,SAApC","sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { UIElement } from \"~/ui/UIElement\";\nimport { UIRenderer, UIRenderParams } from \"~/ui/UIRenderer\";\n\nconst ContentWrapper = styled(\"div\")({\n width: \"100%\",\n paddingTop: 67\n});\n\nclass ContentElementRenderer extends UIRenderer<ContentElement> {\n public override render({ next, props }: UIRenderParams<ContentElement>): React.ReactNode {\n return <ContentWrapper>{props.children ? props.children : next()}</ContentWrapper>;\n }\n}\n\nexport class ContentElement extends UIElement {\n public constructor(id: string) {\n super(id);\n this.useGrid(false);\n this.addRenderer(new ContentElementRenderer());\n this.applyPlugins(ContentElement);\n }\n}\n"]}
@@ -94,14 +94,26 @@ export var HeaderElement = /*#__PURE__*/function (_UIElement) {
94
94
  key: "setLogo",
95
95
  value: function setLogo(logo) {
96
96
  // TODO: extract into a `LogoElement` class
97
- this.getElement(ElementID.Logo).replaceWith(new GenericElement(ElementID.Logo, function () {
97
+ var element = this.getElement(ElementID.Logo);
98
+
99
+ if (!element) {
100
+ return;
101
+ }
102
+
103
+ element.replaceWith(new GenericElement(ElementID.Logo, function () {
98
104
  return /*#__PURE__*/React.createElement(TopAppBarTitle, null, logo);
99
105
  }));
100
106
  }
101
107
  }, {
102
108
  key: "setMenuButton",
103
109
  value: function setMenuButton(menuButton) {
104
- this.getElement(ElementID.MenuButton).replaceWith(new GenericElement(ElementID.MenuButton, function () {
110
+ var button = this.getElement(ElementID.MenuButton);
111
+
112
+ if (!button) {
113
+ return;
114
+ }
115
+
116
+ button.replaceWith(new GenericElement(ElementID.MenuButton, function () {
105
117
  return menuButton;
106
118
  }));
107
119
  }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["HeaderElement.tsx"],"names":["React","UIElement","TopAppBarPrimary","TopAppBarTitle","GenericElement","PlaceholderElement","HeaderSectionLeftElement","HeaderSectionCenterElement","HeaderSectionRightElement","Hamburger","UIRenderer","ElementID","HeaderElementRenderer","next","HeaderElement","id","useGrid","leftSection","addElement","MenuButton","Logo","addRenderer","setMenuButton","applyPlugins","getElement","logo","element","replaceWith","menuButton","button"],"mappings":";;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,SAAT;AACA,SAASC,gBAAT,EAA2BC,cAA3B,QAAiD,sBAAjD;AACA,SAASC,cAAT;AACA,SAASC,kBAAT;AACA,SAASC,wBAAT;AACA,SAASC,0BAAT;AACA,SAASC,yBAAT;AACA,OAAOC,SAAP;AACA,SAASC,UAAT;IAEKC,S;;WAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;GAAAA,S,KAAAA,S;;IAKCC,qB;;;;;;;;;;;;;WACF,sBAAiF;AAAA,UAAxDC,IAAwD,QAAxDA,IAAwD;AAC7E,0BAAO,oBAAC,gBAAD;AAAkB,QAAA,KAAK;AAAvB,SAAyBA,IAAI,EAA7B,CAAP;AACH;;;;EAH+BH,U;;AAMpC,WAAaI,aAAb;AAAA;;AAAA;;AACI,yBAAmBC,EAAnB,EAA+B;AAAA;;AAAA;;AAC3B,+BAAMA,EAAN;;AAEA,UAAKC,OAAL,CAAa,KAAb;;AAEA,QAAMC,WAAW,GAAG,MAAKC,UAAL,CAAgB,IAAIZ,wBAAJ,CAA6B,YAA7B,CAAhB,CAApB;;AACAW,IAAAA,WAAW,CAACC,UAAZ,CAAuB,IAAIb,kBAAJ,CAAuBM,SAAS,CAACQ,UAAjC,CAAvB;AACAF,IAAAA,WAAW,CAACC,UAAZ,CAAuB,IAAIb,kBAAJ,CAAuBM,SAAS,CAACS,IAAjC,CAAvB;;AAEA,UAAKF,UAAL,CAAgB,IAAIX,0BAAJ,CAA+B,cAA/B,CAAhB;;AACA,UAAKW,UAAL,CAAgB,IAAIV,yBAAJ,CAA8B,aAA9B,CAAhB;;AAEA,UAAKa,WAAL,CAAiB,IAAIT,qBAAJ,EAAjB;;AAEA,UAAKU,aAAL,eAAmB,oBAAC,SAAD,OAAnB;;AACA,UAAKC,YAAL,CAAkBT,aAAlB;;AAf2B;AAgB9B;;AAjBL;AAAA;AAAA,WAmBI,0BAAkD;AAC9C,aAAO,KAAKU,UAAL,CAAgB,YAAhB,CAAP;AACH;AArBL;AAAA;AAAA,WAuBI,4BAAsD;AAClD,aAAO,KAAKA,UAAL,CAAgB,cAAhB,CAAP;AACH;AAzBL;AAAA;AAAA,WA2BI,2BAAoD;AAChD,aAAO,KAAKA,UAAL,CAAgB,aAAhB,CAAP;AACH;AA7BL;AAAA;AAAA,WA+BI,iBAAeC,IAAf,EAA+C;AAC3C;AACA,UAAMC,OAAO,GAAG,KAAKF,UAAL,CAAgBb,SAAS,CAACS,IAA1B,CAAhB;;AACA,UAAI,CAACM,OAAL,EAAc;AACV;AACH;;AACDA,MAAAA,OAAO,CAACC,WAAR,CACI,IAAIvB,cAAJ,CAAmBO,SAAS,CAACS,IAA7B,EAAmC,YAAM;AACrC,4BAAO,oBAAC,cAAD,QAAiBK,IAAjB,CAAP;AACH,OAFD,CADJ;AAKH;AA1CL;AAAA;AAAA,WA4CI,uBAAqBG,UAArB,EAA2D;AACvD,UAAMC,MAAM,GAAG,KAAKL,UAAL,CAAgBb,SAAS,CAACQ,UAA1B,CAAf;;AACA,UAAI,CAACU,MAAL,EAAa;AACT;AACH;;AACDA,MAAAA,MAAM,CAACF,WAAP,CACI,IAAIvB,cAAJ,CAAmBO,SAAS,CAACQ,UAA7B,EAAyC,YAAM;AAC3C,eAAOS,UAAP;AACH,OAFD,CADJ;AAKH;AAtDL;;AAAA;AAAA,EAAmC3B,SAAnC","sourcesContent":["import React from \"react\";\nimport { UIElement } from \"~/ui/UIElement\";\nimport { TopAppBarPrimary, TopAppBarTitle } from \"@webiny/ui/TopAppBar\";\nimport { GenericElement } from \"~/ui/elements/GenericElement\";\nimport { PlaceholderElement } from \"~/ui/elements/PlaceholderElement\";\nimport { HeaderSectionLeftElement } from \"./HeaderSectionLeftElement\";\nimport { HeaderSectionCenterElement } from \"./HeaderSectionCenterElement\";\nimport { HeaderSectionRightElement } from \"./HeaderSectionRightElement\";\nimport Hamburger from \"./components/Hamburger\";\nimport { UIRenderer, UIRenderParams } from \"~/ui/UIRenderer\";\n\nenum ElementID {\n MenuButton = \"headerMenuButton\",\n Logo = \"headerLogo\"\n}\n\nclass HeaderElementRenderer extends UIRenderer<HeaderElement> {\n public override render({ next }: UIRenderParams<HeaderElement>): React.ReactNode {\n return <TopAppBarPrimary fixed>{next()}</TopAppBarPrimary>;\n }\n}\n\nexport class HeaderElement extends UIElement {\n public constructor(id: string) {\n super(id);\n\n this.useGrid(false);\n\n const leftSection = this.addElement(new HeaderSectionLeftElement(\"headerLeft\"));\n leftSection.addElement(new PlaceholderElement(ElementID.MenuButton));\n leftSection.addElement(new PlaceholderElement(ElementID.Logo));\n\n this.addElement(new HeaderSectionCenterElement(\"headerCenter\"));\n this.addElement(new HeaderSectionRightElement(\"headerRight\"));\n\n this.addRenderer(new HeaderElementRenderer());\n\n this.setMenuButton(<Hamburger />);\n this.applyPlugins(HeaderElement);\n }\n\n public getLeftSection(): HeaderSectionLeftElement {\n return this.getElement(\"headerLeft\") as HeaderSectionLeftElement;\n }\n\n public getCenterSection(): HeaderSectionCenterElement {\n return this.getElement(\"headerCenter\") as HeaderSectionCenterElement;\n }\n\n public getRightSection(): HeaderSectionRightElement {\n return this.getElement(\"headerRight\") as HeaderSectionRightElement;\n }\n\n public setLogo(logo: React.ReactElement): void {\n // TODO: extract into a `LogoElement` class\n const element = this.getElement(ElementID.Logo);\n if (!element) {\n return;\n }\n element.replaceWith(\n new GenericElement(ElementID.Logo, () => {\n return <TopAppBarTitle>{logo}</TopAppBarTitle>;\n })\n );\n }\n\n public setMenuButton(menuButton: React.ReactElement): void {\n const button = this.getElement(ElementID.MenuButton);\n if (!button) {\n return;\n }\n button.replaceWith(\n new GenericElement(ElementID.MenuButton, () => {\n return menuButton;\n })\n );\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
- import { UIElement } from "../../UIElement";
2
+ import { UIElement, UiElementRenderProps } from "../../UIElement";
3
3
  export declare class HeaderSectionCenterElement extends UIElement {
4
4
  constructor(id: string);
5
- render(props: any): React.ReactNode;
5
+ render(props: UiElementRenderProps): React.ReactNode;
6
6
  }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["HeaderSectionCenterElement.tsx"],"names":["React","css","UIElement","TopAppBarSection","middleBar","width","HeaderSectionCenterElement","id","useGrid","props"],"mappings":";;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,GAAT,QAAoB,SAApB;AACA,SAASC,SAAT;AACA,SAASC,gBAAT,QAAiC,sBAAjC;AAEA,IAAMC,SAAS,gBAAGH,GAAG,CAAC;AAClBI,EAAAA,KAAK,EAAE;AADW,CAAD,qBAArB;AAIA,WAAaC,0BAAb;AAAA;;AAAA;;AACI,sCAAmBC,EAAnB,EAA+B;AAAA;;AAAA;;AAC3B,8BAAMA,EAAN;;AAEA,UAAKC,OAAL,CAAa,KAAb;;AAH2B;AAI9B;;AALL;AAAA;AAAA,WAOI,gBAAuBC,KAAvB,EAAqE;AACjE,0BACI,oBAAC,gBAAD;AAAkB,QAAA,SAAS,EAAEL,SAA7B;AAAwC,QAAA,QAAQ;AAAhD,gGACkBK,KADlB,EADJ;AAKH;AAbL;;AAAA;AAAA,EAAgDP,SAAhD","sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\nimport { UIElement, UiElementRenderProps } from \"~/ui/UIElement\";\nimport { TopAppBarSection } from \"@webiny/ui/TopAppBar\";\n\nconst middleBar = css({\n width: \"50%\"\n});\n\nexport class HeaderSectionCenterElement extends UIElement {\n public constructor(id: string) {\n super(id);\n\n this.useGrid(false);\n }\n\n public override render(props: UiElementRenderProps): React.ReactNode {\n return (\n <TopAppBarSection className={middleBar} alignEnd>\n {super.render(props)}\n </TopAppBarSection>\n );\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
- import { UIElement } from "../../UIElement";
2
+ import { UIElement, UiElementRenderProps } from "../../UIElement";
3
3
  export declare class HeaderSectionLeftElement extends UIElement {
4
4
  constructor(id: string);
5
- render(props: any): React.ReactNode;
5
+ render(props: UiElementRenderProps): React.ReactNode;
6
6
  }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["HeaderSectionLeftElement.tsx"],"names":["React","css","UIElement","TopAppBarSection","edgeBars","width","HeaderSectionLeftElement","id","useGrid","props"],"mappings":";;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,GAAT,QAAoB,SAApB;AACA,SAASC,SAAT;AACA,SAASC,gBAAT,QAAiC,sBAAjC;AAEA,IAAMC,QAAQ,gBAAGH,GAAG,CAAC;AACjBI,EAAAA,KAAK,EAAE;AADU,CAAD,oBAApB;AAIA,WAAaC,wBAAb;AAAA;;AAAA;;AACI,oCAAmBC,EAAnB,EAA+B;AAAA;;AAAA;;AAC3B,8BAAMA,EAAN;;AAEA,UAAKC,OAAL,CAAa,KAAb;;AAH2B;AAI9B;;AALL;AAAA;AAAA,WAOI,gBAAuBC,KAAvB,EAAqE;AACjE,0BACI,oBAAC,gBAAD;AAAkB,QAAA,SAAS,EAAEL,QAA7B;AAAuC,QAAA,UAAU;AAAjD,8FACkBK,KADlB,EADJ;AAKH;AAbL;;AAAA;AAAA,EAA8CP,SAA9C","sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\nimport { UIElement, UiElementRenderProps } from \"~/ui/UIElement\";\nimport { TopAppBarSection } from \"@webiny/ui/TopAppBar\";\n\nconst edgeBars = css({\n width: \"25%\"\n});\n\nexport class HeaderSectionLeftElement extends UIElement {\n public constructor(id: string) {\n super(id);\n\n this.useGrid(false);\n }\n\n public override render(props: UiElementRenderProps): React.ReactNode {\n return (\n <TopAppBarSection className={edgeBars} alignStart>\n {super.render(props)}\n </TopAppBarSection>\n );\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
- import { UIElement } from "../../UIElement";
2
+ import { UIElement, UiElementRenderProps } from "../../UIElement";
3
3
  export declare class HeaderSectionRightElement extends UIElement {
4
4
  constructor(id: string);
5
- render(props: any): React.ReactNode;
5
+ render(props: UiElementRenderProps): React.ReactNode;
6
6
  }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["HeaderSectionRightElement.tsx"],"names":["React","css","UIElement","TopAppBarSection","edgeBars","width","HeaderSectionRightElement","id","useGrid","props"],"mappings":";;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,GAAT,QAAoB,SAApB;AACA,SAASC,SAAT;AACA,SAASC,gBAAT,QAAiC,sBAAjC;AAEA,IAAMC,QAAQ,gBAAGH,GAAG,CAAC;AACjBI,EAAAA,KAAK,EAAE;AADU,CAAD,oBAApB;AAIA,WAAaC,yBAAb;AAAA;;AAAA;;AACI,qCAAmBC,EAAnB,EAA+B;AAAA;;AAAA;;AAC3B,8BAAMA,EAAN;;AAEA,UAAKC,OAAL,CAAa,KAAb;;AAH2B;AAI9B;;AALL;AAAA;AAAA,WAOI,gBAAuBC,KAAvB,EAAqE;AACjE,0BACI,oBAAC,gBAAD;AAAkB,QAAA,SAAS,EAAEL,QAA7B;AAAuC,QAAA,QAAQ;AAA/C,+FACkBK,KADlB,EADJ;AAKH;AAbL;;AAAA;AAAA,EAA+CP,SAA/C","sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\nimport { UIElement, UiElementRenderProps } from \"~/ui/UIElement\";\nimport { TopAppBarSection } from \"@webiny/ui/TopAppBar\";\n\nconst edgeBars = css({\n width: \"25%\"\n});\n\nexport class HeaderSectionRightElement extends UIElement {\n public constructor(id: string) {\n super(id);\n\n this.useGrid(false);\n }\n\n public override render(props: UiElementRenderProps): React.ReactNode {\n return (\n <TopAppBarSection className={edgeBars} alignEnd>\n {super.render(props)}\n </TopAppBarSection>\n );\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["Dialog.tsx"],"names":["React","useCallback","useUi","Dialog","DialogAccept","DialogTitle","DialogActions","DialogContent","DialogContainer","ui","message","dataTestId","title","actions","cancel","accept","label","style","hideDialog","setState","dialog","onClick"],"mappings":";;AAAA,OAAOA,KAAP,IAAgBC,WAAhB,QAAmC,OAAnC;AAEA,SAASC,KAAT,QAAsB,yBAAtB;AACA,SAASC,MAAT,EAAiBC,YAAjB,EAA+BC,WAA/B,EAA4CC,aAA5C,EAA2DC,aAA3D,QAAgF,mBAAhF;AAEA,OAAO,IAAMC,eAAyB,GAAG,SAA5BA,eAA4B,GAAM;AAC3C,MAAMC,EAAE,GAAGP,KAAK,EAAhB;;AACA,MAAMQ,OAAO,GAAG,KAAID,EAAJ,EAAQ,gBAAR,CAAhB;;AACA,cAKI,KAAIA,EAAJ,EAAQ,gBAAR,EAA0B,EAA1B,CALJ;AAAA,MACIE,UADJ,SACIA,UADJ;AAAA,MAEIC,KAFJ,SAEIA,KAFJ;AAAA,4BAGIC,OAHJ;AAAA,MAGIA,OAHJ,8BAGc;AAAEC,IAAAA,MAAM,EAAE,IAAV;AAAgBC,IAAAA,MAAM,EAAE;AAAEC,MAAAA,KAAK,EAAE;AAAT;AAAxB,GAHd;AAAA,MAIIC,KAJJ,SAIIA,KAJJ;;AAOA,MAAMC,UAAU,GAAGjB,WAAW,CAAC,YAAM;AACjCQ,IAAAA,EAAE,CAACU,QAAH,CAAY,UAAAV,EAAE;AAAA,6CAAUA,EAAV;AAAcW,QAAAA,MAAM,EAAE;AAAtB;AAAA,KAAd;AACH,GAF6B,EAE3B,CAACX,EAAD,CAF2B,CAA9B;AAIA,sBACI,oBAAC,MAAD;AAAQ,IAAA,IAAI,EAAE,CAAC,CAACC,OAAhB;AAAyB,IAAA,OAAO,EAAEQ,UAAlC;AAA8C,mBAAaP,UAA3D;AAAuE,IAAA,KAAK,EAAEM;AAA9E,KACKL,KAAK,iBAAI,oBAAC,WAAD,QAAcA,KAAd,CADd,eAEI,oBAAC,aAAD,QAAgBF,OAAhB,CAFJ,eAGI,oBAAC,aAAD,QACKG,OAAO,CAACC,MAAR,iBACG,oBAAC,YAAD;AAAc,IAAA,OAAO,EAAED,OAAO,CAACC,MAAR,CAAeO;AAAtC,KACKR,OAAO,CAACC,MAAR,CAAeE,KADpB,CAFR,EAMKH,OAAO,CAACE,MAAR,iBACG,oBAAC,YAAD;AAAc,IAAA,OAAO,EAAEF,OAAO,CAACE,MAAR,CAAeM;AAAtC,KACKR,OAAO,CAACE,MAAR,CAAeC,KADpB,CAPR,CAHJ,CADJ;AAkBH,CAhCM","sourcesContent":["import React, { useCallback } from \"react\";\nimport { get } from \"lodash\";\nimport { useUi } from \"@webiny/app/hooks/useUi\";\nimport { Dialog, DialogAccept, DialogTitle, DialogActions, DialogContent } from \"@webiny/ui/Dialog\";\n\nexport const DialogContainer: React.FC = () => {\n const ui = useUi();\n const message = get(ui, \"dialog.message\");\n const {\n dataTestId,\n title,\n actions = { cancel: null, accept: { label: \"OK\" } },\n style\n } = get(ui, \"dialog.options\", {});\n\n const hideDialog = useCallback(() => {\n ui.setState(ui => ({ ...ui, dialog: null }));\n }, [ui]);\n\n return (\n <Dialog open={!!message} onClose={hideDialog} data-testid={dataTestId} style={style}>\n {title && <DialogTitle>{title}</DialogTitle>}\n <DialogContent>{message}</DialogContent>\n <DialogActions>\n {actions.cancel && (\n <DialogAccept onClick={actions.cancel.onClick}>\n {actions.cancel.label}\n </DialogAccept>\n )}\n {actions.accept && (\n <DialogAccept onClick={actions.accept.onClick}>\n {actions.accept.label}\n </DialogAccept>\n )}\n </DialogActions>\n </Dialog>\n );\n};\n"]}
@@ -1,3 +1,3 @@
1
- /// <reference types="react" />
2
- declare const Hamburger: () => JSX.Element;
1
+ import React from "react";
2
+ declare const Hamburger: React.FC;
3
3
  export default Hamburger;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["Hamburger.tsx"],"names":["React","useCallback","get","set","useUi","IconButton","ReactComponent","MenuIcon","Hamburger","ui","toggleMenu","setState","color"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,WAAhB,QAAmC,OAAnC;AACA,SAASC,GAAT,EAAcC,GAAd,QAAyB,oBAAzB;AACA,SAASC,KAAT,QAAsB,yBAAtB;AACA,SAASC,UAAT,QAA2B,mBAA3B;AACA,SAASC,cAAc,IAAIC,QAA3B;;AAEA,IAAMC,SAAmB,GAAG,SAAtBA,SAAsB,GAAM;AAC9B,MAAMC,EAAE,GAAGL,KAAK,EAAhB;AAEA,MAAMM,UAAU,GAAGT,WAAW,CAAC,YAAM;AACjCQ,IAAAA,EAAE,CAACE,QAAH,CAAY,UAAAF,EAAE;AAAA,aAAIN,GAAG,CAACM,EAAD,EAAK,eAAL,EAAsB,EAAEP,GAAG,CAACO,EAAD,EAAK,eAAL,CAAH,IAA4B,KAA9B,CAAtB,CAAP;AAAA,KAAd;AACH,GAF6B,EAE3B,CAACA,EAAD,CAF2B,CAA9B;AAIA,sBACI,oBAAC,UAAD;AACI,IAAA,IAAI,eAAE,oBAAC,QAAD;AAAU,MAAA,KAAK,EAAE;AAAEG,QAAAA,KAAK,EAAE;AAAT;AAAjB,MADV;AAEI,IAAA,OAAO,EAAEF,UAFb;AAGI,mBAAa;AAHjB,IADJ;AAOH,CAdD;;AAgBA,eAAeF,SAAf","sourcesContent":["import React, { useCallback } from \"react\";\nimport { get, set } from \"dot-prop-immutable\";\nimport { useUi } from \"@webiny/app/hooks/useUi\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { ReactComponent as MenuIcon } from \"~/assets/icons/baseline-menu-24px.svg\";\n\nconst Hamburger: React.FC = () => {\n const ui = useUi();\n\n const toggleMenu = useCallback(() => {\n ui.setState(ui => set(ui, \"appsMenu.show\", !(get(ui, \"appsMenu.show\") || false)));\n }, [ui]);\n\n return (\n <IconButton\n icon={<MenuIcon style={{ color: \"white\" }} />}\n onClick={toggleMenu}\n data-testid={\"apps-menu\"}\n />\n );\n};\n\nexport default Hamburger;\n"]}
@@ -1,3 +1,3 @@
1
- /// <reference types="react" />
2
- declare const SnackbarMain: () => JSX.Element;
1
+ import React from "react";
2
+ declare const SnackbarMain: React.FC;
3
3
  export default SnackbarMain;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["Snackbar.tsx"],"names":["React","useCallback","Snackbar","useUi","SnackbarMain","ui","message","options","hideSnackbar","setState","snackbar"],"mappings":";;AAAA,OAAOA,KAAP,IAAgBC,WAAhB,QAAmC,OAAnC;AACA,SAASC,QAAT,QAAyB,qBAAzB;AAEA,SAASC,KAAT,QAAsB,yBAAtB;;AAEA,IAAMC,YAAsB,GAAG,SAAzBA,YAAyB,GAAM;AACjC,MAAMC,EAAE,GAAGF,KAAK,EAAhB;;AACA,MAAMG,OAAO,GAAG,KAAID,EAAJ,EAAQ,kBAAR,CAAhB;;AACA,MAAME,OAAO,GAAG,KAAIF,EAAJ,EAAQ,kBAAR,EAA4B,EAA5B,CAAhB;;AAEA,MAAMG,YAAY,GAAGP,WAAW,CAAC,YAAM;AACnCI,IAAAA,EAAE,CAACI,QAAH,CAAY,UAAAJ,EAAE;AAAA,6CAAUA,EAAV;AAAcK,QAAAA,QAAQ,EAAE;AAAxB;AAAA,KAAd;AACH,GAF+B,EAE7B,CAACL,EAAD,CAF6B,CAAhC;AAIA,sBAAO,oBAAC,QAAD;AAAU,IAAA,IAAI,EAAE,CAAC,CAACC,OAAlB;AAA2B,IAAA,OAAO,EAAEE,YAApC;AAAkD,IAAA,OAAO,EAAEF;AAA3D,KAAwEC,OAAxE,EAAP;AACH,CAVD;;AAYA,eAAeH,YAAf","sourcesContent":["import React, { useCallback } from \"react\";\nimport { Snackbar } from \"@webiny/ui/Snackbar\";\nimport { get } from \"lodash\";\nimport { useUi } from \"@webiny/app/hooks/useUi\";\n\nconst SnackbarMain: React.FC = () => {\n const ui = useUi();\n const message = get(ui, \"snackbar.message\");\n const options = get(ui, \"snackbar.options\", {});\n\n const hideSnackbar = useCallback(() => {\n ui.setState(ui => ({ ...ui, snackbar: null }));\n }, [ui]);\n\n return <Snackbar open={!!message} onClose={hideSnackbar} message={message} {...options} />;\n};\n\nexport default SnackbarMain;\n"]}
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { UIElement, UIElementConfig } from "../../UIElement";
2
+ import { UIElement, UIElementConfig, UiElementRenderProps } from "../../UIElement";
3
3
  interface FormContainerConfig extends UIElementConfig {
4
4
  testId?: string;
5
5
  noElevation?: boolean;
@@ -7,6 +7,6 @@ interface FormContainerConfig extends UIElementConfig {
7
7
  }
8
8
  export declare class FormContainerElement extends UIElement<FormContainerConfig> {
9
9
  constructor(id: string, config: FormContainerConfig);
10
- render(props: any): JSX.Element;
10
+ render(props: UiElementRenderProps): JSX.Element;
11
11
  }
12
12
  export {};
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["FormContainerElement.tsx"],"names":["React","classNames","styled","Elevation","UIElement","FormContainerWrapper","position","margin","FormContainerElement","id","config","useGrid","props","children","className","testId","noElevation"],"mappings":";;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,OAAOC,MAAP,MAAmB,iBAAnB;AACA,SAASC,SAAT,QAA0B,sBAA1B;AACA,SAASC,SAAT;AAEA,IAAMC,oBAAoB,gBAAGH,MAAH,CAAU,KAAV;AAAA;AAAA;AAAA,GAAiB;AACvCI,EAAAA,QAAQ,EAAE,UAD6B;AAEvCC,EAAAA,MAAM,EAAE;AAF+B,CAAjB,CAA1B;AAWA,WAAaC,oBAAb;AAAA;;AAAA;;AACI,gCAAmBC,EAAnB,EAA+BC,MAA/B,EAA4D;AAAA;;AAAA;;AACxD,8BAAMD,EAAN,EAAUC,MAAV;;AACA,UAAKC,OAAL,CAAa,KAAb;;AAFwD;AAG3D;;AAJL;AAAA;AAAA,WAMI,gBAAuBC,KAAvB,EAAoD;AAChD,UAAMC,QAAQ,oFAAgBD,KAAhB,CAAd;;AAEA,0BACI,oBAAC,oBAAD;AACI,QAAA,SAAS,EAAEX,UAAU,CAAC,kBAAD,EAAqB,KAAKS,MAAL,CAAYI,SAAjC,CADzB;AAEI,uBAAa,KAAKJ,MAAL,CAAYK;AAF7B,SAIK,KAAKL,MAAL,CAAYM,WAAZ,GAA0BH,QAA1B,gBAAqC,oBAAC,SAAD;AAAW,QAAA,CAAC,EAAE;AAAd,SAAkBA,QAAlB,CAJ1C,CADJ;AAQH;AAjBL;;AAAA;AAAA,EAA0CT,SAA1C","sourcesContent":["import React from \"react\";\nimport classNames from \"classnames\";\nimport styled from \"@emotion/styled\";\nimport { Elevation } from \"@webiny/ui/Elevation\";\nimport { UIElement, UIElementConfig, UiElementRenderProps } from \"~/ui/UIElement\";\n\nconst FormContainerWrapper = styled(\"div\")({\n position: \"relative\",\n margin: \"17px 50px\"\n});\n\ninterface FormContainerConfig extends UIElementConfig {\n testId?: string;\n noElevation?: boolean;\n className?: string;\n}\n\nexport class FormContainerElement extends UIElement<FormContainerConfig> {\n public constructor(id: string, config: FormContainerConfig) {\n super(id, config);\n this.useGrid(false);\n }\n\n public override render(props: UiElementRenderProps) {\n const children = super.render(props);\n\n return (\n <FormContainerWrapper\n className={classNames(\"webiny-data-list\", this.config.className)}\n data-testid={this.config.testId}\n >\n {this.config.noElevation ? children : <Elevation z={1}>{children}</Elevation>}\n </FormContainerWrapper>\n );\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["FormContentElement.tsx"],"names":["UIElement","FormContentElement"],"mappings":";;;;AAAA,SAASA,SAAT;AAEA,WAAaC,kBAAb;AAAA;;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA,EAAwCD,SAAxC","sourcesContent":["import { UIElement } from \"~/ui/UIElement\";\n\nexport class FormContentElement extends UIElement {}\n"]}
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
- import { UIElement } from "../../UIElement";
2
+ import { UIElement, UiElementRenderProps } from "../../UIElement";
3
3
  export declare class FormFooterElement extends UIElement {
4
- constructor(id: any);
5
- render(props: any): JSX.Element;
4
+ constructor(id: string);
5
+ render(props: UiElementRenderProps): JSX.Element;
6
6
  }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["FormFooterElement.tsx"],"names":["React","styled","UIElement","ButtonWrapper","display","justifyContent","borderTop","color","textAlign","padding","marginLeft","FormFooterElement","id","useGrid","props"],"mappings":";;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,MAAP,MAAmB,iBAAnB;AACA,SAASC,SAAT;AAEA,IAAMC,aAAa,gBAAGF,MAAH,CAAU,KAAV;AAAA;AAAA;AAAA,GAAiB;AAChCG,EAAAA,OAAO,EAAE,MADuB;AAEhCC,EAAAA,cAAc,EAAE,eAFgB;AAGhCC,EAAAA,SAAS,EAAE,0CAHqB;AAIhCC,EAAAA,KAAK,EAAE,6CAJyB;AAKhCC,EAAAA,SAAS,EAAE,OALqB;AAMhCC,EAAAA,OAAO,EAAE,EANuB;AAOhC,kBAAgB;AACZC,IAAAA,UAAU,EAAE;AADA;AAPgB,CAAjB,CAAnB;AAYA,WAAaC,iBAAb;AAAA;;AAAA;;AACI,6BAAmBC,EAAnB,EAA+B;AAAA;;AAAA;;AAC3B,8BAAMA,EAAN;;AAEA,UAAKC,OAAL,CAAa,KAAb;;AAH2B;AAI9B;;AALL;AAAA;AAAA,WAOI,gBAAuBC,KAAvB,EAAoD;AAChD,0BAAO,oBAAC,aAAD,sFAA6BA,KAA7B,EAAP;AACH;AATL;;AAAA;AAAA,EAAuCZ,SAAvC","sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { UIElement, UiElementRenderProps } from \"~/ui/UIElement\";\n\nconst ButtonWrapper = styled(\"div\")({\n display: \"flex\",\n justifyContent: \"space-between\",\n borderTop: \"1px solid var(--mdc-theme-on-background)\",\n color: \"var(--mdc-theme-text-primary-on-background)\",\n textAlign: \"right\",\n padding: 25,\n \">:last-child\": {\n marginLeft: \"auto\"\n }\n});\n\nexport class FormFooterElement extends UIElement {\n public constructor(id: string) {\n super(id);\n\n this.useGrid(false);\n }\n\n public override render(props: UiElementRenderProps) {\n return <ButtonWrapper>{super.render(props)}</ButtonWrapper>;\n }\n}\n"]}
@@ -6,9 +6,9 @@ interface FormHeaderConfig extends UIElementConfig {
6
6
  icon?: React.ReactElement;
7
7
  }
8
8
  export declare class FormHeaderElement extends UIElement<FormHeaderConfig> {
9
- constructor(id: any, config: FormHeaderConfig);
9
+ constructor(id: string, config: FormHeaderConfig);
10
10
  setIcon(icon: React.ReactElement): void;
11
11
  addAction(element: UIElement): void;
12
- render(props: any): any;
12
+ render(props: FormElementRenderProps): React.ReactNode;
13
13
  }
14
14
  export {};
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["FormHeaderElement.tsx"],"names":["React","css","Cell","Grid","Typography","UIElement","Icon","iconClass","marginRight","color","headerClass","borderBottom","titleClass","display","alignItems","actionsClass","justifyContent","FormHeaderElement","id","config","useGrid","icon","element","addElement","props","getTitle"],"mappings":";;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,GAAT,QAAoB,SAApB;AACA,SAASC,IAAT,EAAeC,IAAf,QAA2B,iBAA3B;AACA,SAASC,UAAT,QAA2B,uBAA3B;AACA,SAASC,SAAT;AACA,SAASC,IAAT,QAAqB,iBAArB;AAGA,IAAMC,SAAS,gBAAGN,GAAG,CAAC;AAClBO,EAAAA,WAAW,EAAE,EADK;AAElBC,EAAAA,KAAK,EAAE;AAFW,CAAD,qBAArB;AAKA,IAAMC,WAAW,gBAAGT,GAAG,CAAC;AACpBU,EAAAA,YAAY,EAAE,0CADM;AAEpBF,EAAAA,KAAK,EAAE;AAFa,CAAD,uBAAvB;AAKA,IAAMG,UAAU,gBAAGX,GAAG,CAAC;AACnBY,EAAAA,OAAO,EAAE,MADU;AAEnBC,EAAAA,UAAU,EAAE;AAFO,CAAD,sBAAtB;AAKA,IAAMC,YAAY,gBAAGd,GAAG,CAAC;AACrBY,EAAAA,OAAO,EAAE,MADY;AAErBG,EAAAA,cAAc,EAAE,UAFK;AAGrBF,EAAAA,UAAU,EAAE;AAHS,CAAD,wBAAxB;AAWA,WAAaG,iBAAb;AAAA;;AAAA;;AACI,6BAAmBC,EAAnB,EAA+BC,MAA/B,EAAyD;AAAA;;AAAA;;AACrD,8BAAMD,EAAN,EAAUC,MAAV;;AAEA,UAAKC,OAAL,CAAa,KAAb;;AAHqD;AAIxD;;AALL;AAAA;AAAA,WAOI,iBAAeC,IAAf,EAAyC;AACrC,WAAKF,MAAL,CAAYE,IAAZ,GAAmBA,IAAnB;AACH;AATL;AAAA;AAAA,WAWI,mBAAiBC,OAAjB,EAAqC;AACjC,WAAKC,UAAL,CAAgBD,OAAhB;AACH;AAbL;AAAA;AAAA,WAeI,gBAAuBE,KAAvB,EAAuE;AACnE,yBAA2B,KAAKL,MAAhC;AAAA,UAAQE,IAAR,gBAAQA,IAAR;AAAA,UAAcI,QAAd,gBAAcA,QAAd;AAEA,0BACI,oBAAC,IAAD;AAAM,QAAA,SAAS,EAAEf;AAAjB,sBACI,oBAAC,IAAD;AAAM,QAAA,IAAI,EAAE,CAAZ;AAAe,QAAA,SAAS,EAAEE;AAA1B,sBACI,oBAAC,KAAD,CAAO,QAAP,QACKS,IAAI,iBAAI,oBAAC,IAAD;AAAM,QAAA,SAAS,EAAEd,SAAjB;AAA4B,QAAA,IAAI,EAAEc;AAAlC,QADb,eAEI,oBAAC,UAAD;AAAY,QAAA,GAAG,EAAC;AAAhB,SAA6BI,QAAQ,CAACD,KAAD,CAArC,CAFJ,CADJ,CADJ,eAOI,oBAAC,IAAD;AAAM,QAAA,IAAI,EAAE,CAAZ;AAAe,QAAA,SAAS,EAAET;AAA1B,uFACkBS,KADlB,EAPJ,CADJ;AAaH;AA/BL;;AAAA;AAAA,EAAuCnB,SAAvC","sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\nimport { Cell, Grid } from \"@webiny/ui/Grid\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { UIElement, UIElementConfig } from \"~/ui/UIElement\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { FormElementRenderProps } from \"~/ui/elements/form/FormElement\";\n\nconst iconClass = css({\n marginRight: 15,\n color: \"var(--mdc-theme-text-primary-on-background)\"\n});\n\nconst headerClass = css({\n borderBottom: \"1px solid var(--mdc-theme-on-background)\",\n color: \"var(--mdc-theme-text-primary-on-background)\"\n});\n\nconst titleClass = css({\n display: \"flex\",\n alignItems: \"center\"\n});\n\nconst actionsClass = css({\n display: \"flex\",\n justifyContent: \"flex-end\",\n alignItems: \"center\"\n});\n\ninterface FormHeaderConfig extends UIElementConfig {\n getTitle(props: FormElementRenderProps): string;\n icon?: React.ReactElement;\n}\n\nexport class FormHeaderElement extends UIElement<FormHeaderConfig> {\n public constructor(id: string, config: FormHeaderConfig) {\n super(id, config);\n\n this.useGrid(false);\n }\n\n public setIcon(icon: React.ReactElement) {\n this.config.icon = icon;\n }\n\n public addAction(element: UIElement) {\n this.addElement(element);\n }\n\n public override render(props: FormElementRenderProps): React.ReactNode {\n const { icon, getTitle } = this.config;\n\n return (\n <Grid className={headerClass}>\n <Cell span={6} className={titleClass}>\n <React.Fragment>\n {icon && <Icon className={iconClass} icon={icon} />}\n <Typography use=\"headline5\">{getTitle(props)}</Typography>\n </React.Fragment>\n </Cell>\n <Cell span={6} className={actionsClass}>\n {super.render(props)}\n </Cell>\n </Grid>\n );\n }\n}\n"]}
@@ -25,7 +25,7 @@ interface GetterWithoutProps<T> {
25
25
  (): T;
26
26
  }
27
27
  export declare class FormView extends UIView<FormViewConfig> {
28
- constructor(id: any, config?: FormViewConfig);
28
+ constructor(id: string, config?: FormViewConfig);
29
29
  addElement<TElement extends UIElement = UIElement>(element: TElement): TElement;
30
30
  setTitle(title: string | GetterWithProps<string>): void;
31
31
  setOnSubmit(onSubmit: FormOnSubmit): void;
@@ -24,6 +24,10 @@ export var FormView = /*#__PURE__*/function (_UIView) {
24
24
 
25
25
  _classCallCheck(this, FormView);
26
26
 
27
+ if (!config) {
28
+ config = {};
29
+ }
30
+
27
31
  if (!("setupForm" in config)) {
28
32
  config.setupForm = true;
29
33
  }
@@ -55,9 +59,11 @@ export var FormView = /*#__PURE__*/function (_UIView) {
55
59
  this.config.getTitle = function () {
56
60
  return title;
57
61
  };
58
- } else {
59
- this.config.getTitle = title;
62
+
63
+ return;
60
64
  }
65
+
66
+ this.config.getTitle = title;
61
67
  }
62
68
  }, {
63
69
  key: "setOnSubmit",
@@ -108,9 +114,17 @@ export var FormView = /*#__PURE__*/function (_UIView) {
108
114
  if (this.config.setupForm) {
109
115
  var form = this.addElement(new FormElement("form", {
110
116
  onSubmit: function onSubmit(data, form) {
117
+ if (!_this2.config.onSubmit) {
118
+ return;
119
+ }
120
+
111
121
  return _this2.config.onSubmit(data, form);
112
122
  },
113
123
  getData: function getData() {
124
+ if (!_this2.config.getFormData) {
125
+ return {};
126
+ }
127
+
114
128
  return _this2.config.getFormData();
115
129
  }
116
130
  }));
@@ -128,6 +142,10 @@ export var FormView = /*#__PURE__*/function (_UIView) {
128
142
  }));
129
143
  this.addElement(new FormHeaderElement("formHeader", {
130
144
  getTitle: function getTitle(props) {
145
+ if (!_this2.config.getTitle) {
146
+ return "";
147
+ }
148
+
131
149
  return _this2.config.getTitle(props);
132
150
  }
133
151
  }));
@@ -146,7 +164,11 @@ export var FormView = /*#__PURE__*/function (_UIView) {
146
164
  type: "default",
147
165
  label: "Cancel",
148
166
  onClick: function onClick() {
149
- return _this2.config.onCancel();
167
+ if (!_this2.config.onCancel) {
168
+ return;
169
+ }
170
+
171
+ _this2.config.onCancel();
150
172
  },
151
173
  shouldRender: function shouldRender() {
152
174
  return typeof _this2.config.onCancel === "function";
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["FormView.tsx"],"names":["React","CircularProgress","FormElement","ButtonElement","GenericElement","FormContentElement","FormHeaderElement","FormFooterElement","FormContainerElement","UIView","FormView","id","config","setupForm","addElements","useGrid","applyPlugins","element","getFormContainer","addElement","title","getTitle","onSubmit","getter","getFormData","getElement","getFormFooterElement","formContainer","testId","className","noElevation","form","data","getData","isLoading","props","footer","submitButton","type","label","onClick","formProps","submit","moveToTheEndOf","cancelButton","onCancel","shouldRender","moveToTheBeginningOf"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { FormOnSubmit } from \"@webiny/form\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { UIElement, UIElementConfig } from \"~/ui/UIElement\";\nimport { FormElement, FormElementRenderProps } from \"~/ui/elements/form/FormElement\";\nimport { ButtonElement } from \"~/ui/elements/ButtonElement\";\nimport { GenericElement } from \"~/ui/elements/GenericElement\";\nimport { FormContentElement } from \"./FormView/FormContentElement\";\nimport { FormHeaderElement } from \"./FormView/FormHeaderElement\";\nimport { FormFooterElement } from \"./FormView/FormFooterElement\";\nimport { FormContainerElement } from \"./FormView/FormContainerElement\";\nimport { UIView } from \"~/ui/UIView\";\n\nexport interface FormViewConfig extends UIElementConfig {\n setupForm?: boolean;\n onSubmit?: FormOnSubmit;\n getTitle?: (props: FormElementRenderProps) => string;\n getFormData?: () => Record<string, any>;\n isLoading?: () => boolean;\n onCancel?: () => void;\n testId?: string;\n noElevation?: boolean;\n className?: string;\n}\n\ninterface GetterWithProps<T> {\n (props: FormElementRenderProps): T;\n}\n\ninterface GetterWithoutProps<T> {\n (): T;\n}\n\nexport class FormView extends UIView<FormViewConfig> {\n public constructor(id: string, config?: FormViewConfig) {\n if (!config) {\n config = {};\n }\n if (!(\"setupForm\" in config)) {\n config.setupForm = true;\n }\n\n super(id, config);\n\n this.addElements();\n this.useGrid(false);\n\n this.applyPlugins(FormView);\n }\n\n public override addElement<TElement extends UIElement = UIElement>(\n element: TElement\n ): TElement {\n if (element.id === \"form\" || element.id === \"formContainer\") {\n return super.addElement(element);\n }\n\n return this.getFormContainer().addElement(element);\n }\n\n public setTitle(title: string | GetterWithProps<string>): void {\n if (typeof title === \"string\") {\n this.config.getTitle = () => title;\n return;\n }\n this.config.getTitle = title;\n }\n\n public setOnSubmit(onSubmit: FormOnSubmit): void {\n this.config.onSubmit = onSubmit;\n }\n\n public setFormData(getter: GetterWithoutProps<Record<string, any>>): void {\n this.config.getFormData = getter;\n }\n\n public getFormContainer(): FormContainerElement {\n return this.getElement(\"formContainer\") as FormContainerElement;\n }\n\n public getFormContentElement(): FormContentElement {\n return this.getElement(\"formContent\") as FormContentElement;\n }\n\n public getFormHeaderElement(): FormHeaderElement {\n return this.getElement(\"formHeader\") as FormHeaderElement;\n }\n\n public getFormFooterElement(): FormFooterElement {\n return this.getElement(\"formFooter\") as FormFooterElement;\n }\n\n public getSubmitButtonElement(): ButtonElement {\n return this.getFormFooterElement().getElement(\"submit\") as ButtonElement;\n }\n\n private addElements(): void {\n const formContainer = new FormContainerElement(\"formContainer\", {\n testId: this.config.testId,\n className: this.config.className,\n noElevation: this.config.noElevation\n });\n\n if (this.config.setupForm) {\n const form = this.addElement(\n new FormElement(\"form\", {\n onSubmit: (data, form) => {\n if (!this.config.onSubmit) {\n return;\n }\n return this.config.onSubmit(data, form);\n },\n getData: () => {\n if (!this.config.getFormData) {\n return {};\n }\n return this.config.getFormData();\n }\n })\n ) as FormElement;\n\n form.addElement(formContainer);\n } else {\n this.addElement(formContainer);\n }\n\n this.addElement(\n new GenericElement(\"loading\", () => {\n if (typeof this.config.isLoading !== \"function\") {\n return null;\n }\n\n return this.config.isLoading() ? <CircularProgress /> : null;\n })\n );\n\n this.addElement(\n new FormHeaderElement(\"formHeader\", {\n getTitle: props => {\n if (!this.config.getTitle) {\n return \"\";\n }\n return this.config.getTitle(props);\n }\n })\n );\n\n this.addElement(new FormContentElement(\"formContent\"));\n\n const footer = new FormFooterElement(\"formFooter\");\n this.addElement(footer);\n\n const submitButton = new ButtonElement<FormElementRenderProps>(\"submit\", {\n type: \"primary\",\n label: \"Save\",\n onClick: props => props.formProps.submit()\n });\n\n submitButton.moveToTheEndOf(footer);\n\n const cancelButton = footer.addElement(\n new ButtonElement(\"cancel\", {\n type: \"default\",\n label: \"Cancel\",\n onClick: () => {\n if (!this.config.onCancel) {\n return;\n }\n this.config.onCancel();\n },\n shouldRender: () => typeof this.config.onCancel === \"function\"\n })\n );\n\n cancelButton.moveToTheBeginningOf(footer);\n }\n}\n"]}