@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
package/base/Admin.d.ts CHANGED
@@ -1,14 +1,7 @@
1
1
  import React from "react";
2
- import ApolloClient from "apollo-client";
3
- interface Options {
4
- uri: string;
5
- }
6
- interface ApolloClientFactory {
7
- (options: Options): ApolloClient<any>;
8
- }
2
+ import { ApolloClientFactory } from "./providers/ApolloProvider";
9
3
  export interface AdminProps {
10
- createApolloClient?: ApolloClientFactory;
4
+ createApolloClient: ApolloClientFactory;
11
5
  children?: React.ReactNode;
12
6
  }
13
- export declare const Admin: ({ children, createApolloClient }: AdminProps) => JSX.Element;
14
- export {};
7
+ export declare const Admin: React.FC<AdminProps>;
package/base/Admin.js CHANGED
@@ -13,6 +13,10 @@ export var Admin = function Admin(_ref) {
13
13
  var ApolloProvider = createApolloProvider(createApolloClient);
14
14
  var TelemetryProvider = createTelemetryProvider();
15
15
  var UiStateProvider = createUiStateProvider();
16
+ /**
17
+ * TODO @ts-refactor
18
+ */
19
+
16
20
  return /*#__PURE__*/React.createElement(BaseAdmin, null, /*#__PURE__*/React.createElement(Provider, {
17
21
  hoc: ApolloProvider
18
22
  }), /*#__PURE__*/React.createElement(Provider, {
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["Admin.tsx"],"names":["React","Admin","BaseAdmin","Provider","createApolloProvider","Base","createTelemetryProvider","createUiStateProvider","SearchProvider","UserMenuProvider","NavigationProvider","children","createApolloClient","ApolloProvider","TelemetryProvider","UiStateProvider"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,KAAK,IAAIC,SAAlB,EAA6BC,QAA7B,QAA6C,wBAA7C;AACA,SAA8BC,oBAA9B;AACA,SAASC,IAAT;AACA,SAASC,uBAAT;AACA,SAASC,qBAAT;AACA,SAASC,cAAT;AACA,SAASC,gBAAT;AACA,SAASC,kBAAT;AAOA,OAAO,IAAMT,KAA2B,GAAG,SAA9BA,KAA8B,OAAsC;AAAA,MAAnCU,QAAmC,QAAnCA,QAAmC;AAAA,MAAzBC,kBAAyB,QAAzBA,kBAAyB;AAC7E,MAAMC,cAAc,GAAGT,oBAAoB,CAACQ,kBAAD,CAA3C;AACA,MAAME,iBAAiB,GAAGR,uBAAuB,EAAjD;AACA,MAAMS,eAAe,GAAGR,qBAAqB,EAA7C;AACA;AACJ;AACA;;AACI,sBACI,oBAAC,SAAD,qBACI,oBAAC,QAAD;AAAU,IAAA,GAAG,EAAEM;AAAf,IADJ,eAEI,oBAAC,QAAD;AAAU,IAAA,GAAG,EAAEC;AAAf,IAFJ,eAGI,oBAAC,QAAD;AAAU,IAAA,GAAG,EAAEC;AAAf,IAHJ,eAII,oBAAC,QAAD;AAAU,IAAA,GAAG,EAAEP;AAAf,IAJJ,eAKI,oBAAC,QAAD;AAAU,IAAA,GAAG,EAAEC;AAAf,IALJ,eAMI,oBAAC,QAAD;AAAU,IAAA,GAAG,EAAEC;AAAf,IANJ,eAOI,oBAAC,IAAD,OAPJ,EAQKC,QARL,CADJ;AAYH,CAnBM","sourcesContent":["import React from \"react\";\nimport { Admin as BaseAdmin, Provider } from \"@webiny/app-admin-core\";\nimport { ApolloClientFactory, createApolloProvider } from \"./providers/ApolloProvider\";\nimport { Base } from \"./Base\";\nimport { createTelemetryProvider } from \"./providers/TelemetryProvider\";\nimport { createUiStateProvider } from \"./providers/UiStateProvider\";\nimport { SearchProvider } from \"./ui/Search\";\nimport { UserMenuProvider } from \"./ui/UserMenu\";\nimport { NavigationProvider } from \"./ui/Navigation\";\n\nexport interface AdminProps {\n createApolloClient: ApolloClientFactory;\n children?: React.ReactNode;\n}\n\nexport const Admin: React.FC<AdminProps> = ({ children, createApolloClient }) => {\n const ApolloProvider = createApolloProvider(createApolloClient);\n const TelemetryProvider = createTelemetryProvider();\n const UiStateProvider = createUiStateProvider();\n /**\n * TODO @ts-refactor\n */\n return (\n <BaseAdmin>\n <Provider hoc={ApolloProvider} />\n <Provider hoc={TelemetryProvider} />\n <Provider hoc={UiStateProvider} />\n <Provider hoc={SearchProvider} />\n <Provider hoc={UserMenuProvider} />\n <Provider hoc={NavigationProvider} />\n <Base />\n {children}\n </BaseAdmin>\n );\n};\n"]}
package/base/Base.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  import React from "react";
2
- export declare const Base: React.MemoExoticComponent<() => JSX.Element>;
2
+ export declare const Base: React.NamedExoticComponent<{}>;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["Base.tsx"],"names":["React","memo","Plugins","AddMenu","AddRoute","Dashboard","Layout","NotFound","plugins","ReactComponent","DocsIcon","SlackIcon","GithubIcon","FileIcon","SettingsIcon","FileManager","adminPlugins","BaseExtension","register","showFileManager","Base"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,IAAhB,QAA4B,OAA5B;AACA,SAASC,OAAT,QAAwB,wBAAxB;AACA,SAASC,OAAT,EAAkBC,QAAlB,EAA4BC,SAA5B,EAAuCC,MAAvC,EAA+CC,QAA/C;AACA,SAASC,OAAT,QAAwB,iBAAxB;AACA,SAASC,cAAc,IAAIC,QAA3B;AACA,SAASD,cAAc,IAAIE,SAA3B;AACA,SAASF,cAAc,IAAIG,UAA3B;AACA,SAASH,cAAc,IAAII,QAA3B;AACA,SAASJ,cAAc,IAAIK,YAA3B;AACA,SAASC,WAAT;AAEA,OAAOC,YAAP;;AAEA,IAAMC,aAAuB,GAAG,SAA1BA,aAA0B,GAAM;AAClCT,EAAAA,OAAO,CAACU,QAAR,CAAiBF,YAAY,EAA7B;AAEA,sBACI,oBAAC,OAAD,qBACI,oBAAC,OAAD;AAAS,IAAA,IAAI,EAAE,UAAf;AAA2B,IAAA,KAAK,EAAE,UAAlC;AAA8C,IAAA,IAAI,eAAE,oBAAC,YAAD,OAApD;AAAsE,IAAA,GAAG,EAAE;AAA3E,IADJ,eAEI,oBAAC,WAAD,QACK;AAAA,QAAGG,eAAH,QAAGA,eAAH;AAAA,wBACG,oBAAC,OAAD;AACI,MAAA,IAAI,EAAE,aADV;AAEI,MAAA,KAAK,EAAE,cAFX;AAGI,MAAA,IAAI,eAAE,oBAAC,QAAD,OAHV;AAII,MAAA,IAAI,EAAE,CAAC,QAAD,CAJV;AAKI,MAAA,OAAO,EAAEA,eALb;AAMI,MAAA,MAAM,EAAE;AANZ,MADH;AAAA,GADL,CAFJ,eAcI,oBAAC,OAAD;AACI,IAAA,IAAI,EAAE,eADV;AAEI,IAAA,KAAK,EAAE,eAFX;AAGI,IAAA,IAAI,eAAE,oBAAC,QAAD,OAHV;AAII,IAAA,IAAI,EAAE,0BAJV;AAKI,IAAA,GAAG,EAAE,qBALT;AAMI,IAAA,MAAM,EAAE,QANZ;AAOI,IAAA,IAAI,EAAE,CAAC,QAAD;AAPV,IAdJ,eAuBI,oBAAC,OAAD;AACI,IAAA,IAAI,EAAE,OADV;AAEI,IAAA,KAAK,EAAE,OAFX;AAGI,IAAA,IAAI,eAAE,oBAAC,SAAD,OAHV;AAII,IAAA,IAAI,EAAE,+BAJV;AAKI,IAAA,GAAG,EAAE,qBALT;AAMI,IAAA,MAAM,EAAE,QANZ;AAOI,IAAA,IAAI,EAAE,CAAC,QAAD;AAPV,IAvBJ,eAgCI,oBAAC,OAAD;AACI,IAAA,IAAI,EAAE,QADV;AAEI,IAAA,KAAK,EAAE,QAFX;AAGI,IAAA,IAAI,eAAE,oBAAC,UAAD,OAHV;AAII,IAAA,IAAI,EAAE,qCAJV;AAKI,IAAA,GAAG,EAAE,qBALT;AAMI,IAAA,MAAM,EAAE,QANZ;AAOI,IAAA,IAAI,EAAE,CAAC,QAAD;AAPV,IAhCJ,eAyCI,oBAAC,QAAD;AAAU,IAAA,IAAI,EAAE;AAAhB,kBACI,oBAAC,MAAD;AAAQ,IAAA,KAAK,EAAE;AAAf,kBACI,oBAAC,SAAD,OADJ,CADJ,CAzCJ,eA8CI,oBAAC,QAAD;AAAU,IAAA,IAAI,EAAE;AAAhB,kBACI,oBAAC,MAAD;AAAQ,IAAA,KAAK,EAAE;AAAf,kBACI,oBAAC,QAAD,OADJ,CADJ,CA9CJ,CADJ;AAsDH,CAzDD;;AA2DA,OAAO,IAAMC,IAAI,gBAAGnB,IAAI,CAACgB,aAAD,CAAjB","sourcesContent":["import React, { memo } from \"react\";\nimport { Plugins } from \"@webiny/app-admin-core\";\nimport { AddMenu, AddRoute, Dashboard, Layout, NotFound } from \"~/index\";\nimport { plugins } from \"@webiny/plugins\";\nimport { ReactComponent as DocsIcon } from \"~/assets/icons/icon-documentation.svg\";\nimport { ReactComponent as SlackIcon } from \"~/assets/icons/slack-logo.svg\";\nimport { ReactComponent as GithubIcon } from \"~/assets/icons/github-brands.svg\";\nimport { ReactComponent as FileIcon } from \"~/assets/icons/insert_drive_file-24px.svg\";\nimport { ReactComponent as SettingsIcon } from \"~/assets/icons/round-settings-24px.svg\";\nimport { FileManager } from \"~/components\";\n\nimport adminPlugins from \"../plugins\";\n\nconst BaseExtension: React.FC = () => {\n plugins.register(adminPlugins());\n\n return (\n <Plugins>\n <AddMenu name={\"settings\"} label={\"Settings\"} icon={<SettingsIcon />} pin={\"last\"} />\n <FileManager>\n {({ showFileManager }) => (\n <AddMenu\n name={\"fileManager\"}\n label={\"File Manager\"}\n icon={<FileIcon />}\n tags={[\"footer\"]}\n onClick={showFileManager}\n testId={\"admin-drawer-footer-menu-file-manager\"}\n />\n )}\n </FileManager>\n <AddMenu\n name={\"documentation\"}\n label={\"Documentation\"}\n icon={<DocsIcon />}\n path={\"https://docs.webiny.com/\"}\n rel={\"noopener noreferrer\"}\n target={\"_blank\"}\n tags={[\"footer\"]}\n />\n <AddMenu\n name={\"slack\"}\n label={\"Slack\"}\n icon={<SlackIcon />}\n path={\"https://www.webiny.com/slack/\"}\n rel={\"noopener noreferrer\"}\n target={\"_blank\"}\n tags={[\"footer\"]}\n />\n <AddMenu\n name={\"github\"}\n label={\"Github\"}\n icon={<GithubIcon />}\n path={\"https://github.com/webiny/webiny-js\"}\n rel={\"noopener noreferrer\"}\n target={\"_blank\"}\n tags={[\"footer\"]}\n />\n <AddRoute path={\"/\"}>\n <Layout title={\"Welcome!\"}>\n <Dashboard />\n </Layout>\n </AddRoute>\n <AddRoute path={\"*\"}>\n <Layout title={\"Not Accessible\"}>\n <NotFound />\n </Layout>\n </AddRoute>\n </Plugins>\n );\n};\n\nexport const Base = memo(BaseExtension);\n"]}
@@ -1,9 +1,9 @@
1
- import { FC } from "react";
1
+ import React from "react";
2
2
  import { DocumentNode } from "graphql";
3
3
  interface Props {
4
4
  operationName: string;
5
5
  selectionPath: string;
6
6
  addSelection: DocumentNode;
7
7
  }
8
- export declare const AddGraphQLQuerySelection: FC<Props>;
8
+ export declare const AddGraphQLQuerySelection: React.FC<Props>;
9
9
  export {};
@@ -5,10 +5,11 @@ import { AddQuerySelectionPlugin } from "@webiny/app/plugins/AddQuerySelectionPl
5
5
  export var AddGraphQLQuerySelection = function AddGraphQLQuerySelection(props) {
6
6
  useEffect(function () {
7
7
  var plugin = new AddQuerySelectionPlugin(props);
8
- plugin.name = nanoid();
8
+ var name = nanoid();
9
+ plugin.name = name;
9
10
  plugins.register(plugin);
10
11
  return function () {
11
- plugins.unregister(plugin.name);
12
+ plugins.unregister(name);
12
13
  };
13
14
  }, []);
14
15
  return null;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["AddGraphQLQuerySelection.tsx"],"names":["useEffect","plugins","nanoid","AddQuerySelectionPlugin","AddGraphQLQuerySelection","props","plugin","name","register","unregister"],"mappings":"AAAA,SAAgBA,SAAhB,QAAiC,OAAjC;AACA,SAASC,OAAT,QAAwB,iBAAxB;AACA,SAASC,MAAT,QAAuB,QAAvB;AACA,SAASC,uBAAT,QAAwC,6CAAxC;AASA,OAAO,IAAMC,wBAAyC,GAAG,SAA5CA,wBAA4C,CAAAC,KAAK,EAAI;AAC9DL,EAAAA,SAAS,CAAC,YAAM;AACZ,QAAMM,MAAM,GAAG,IAAIH,uBAAJ,CAA4BE,KAA5B,CAAf;AAEA,QAAME,IAAI,GAAGL,MAAM,EAAnB;AACAI,IAAAA,MAAM,CAACC,IAAP,GAAcA,IAAd;AACAN,IAAAA,OAAO,CAACO,QAAR,CAAiBF,MAAjB;AAEA,WAAO,YAAM;AACTL,MAAAA,OAAO,CAACQ,UAAR,CAAmBF,IAAnB;AACH,KAFD;AAGH,GAVQ,EAUN,EAVM,CAAT;AAYA,SAAO,IAAP;AACH,CAdM","sourcesContent":["import React, { useEffect } from \"react\";\nimport { plugins } from \"@webiny/plugins\";\nimport { nanoid } from \"nanoid\";\nimport { AddQuerySelectionPlugin } from \"@webiny/app/plugins/AddQuerySelectionPlugin\";\nimport { DocumentNode } from \"graphql\";\n\ninterface Props {\n operationName: string;\n selectionPath: string;\n addSelection: DocumentNode;\n}\n\nexport const AddGraphQLQuerySelection: React.FC<Props> = props => {\n useEffect(() => {\n const plugin = new AddQuerySelectionPlugin(props);\n\n const name = nanoid();\n plugin.name = name;\n plugins.register(plugin);\n\n return () => {\n plugins.unregister(name);\n };\n }, []);\n\n return null;\n};\n"]}
@@ -1,4 +1,10 @@
1
1
  import React from "react";
2
- export declare const createApolloProvider: (clientFactory: any) => (Component: React.ComponentType<unknown>) => ({ children }: {
3
- children: any;
4
- }) => JSX.Element;
2
+ import ApolloClient from "apollo-client";
3
+ interface Options {
4
+ uri: string;
5
+ }
6
+ export interface ApolloClientFactory {
7
+ (options: Options): ApolloClient<any>;
8
+ }
9
+ export declare const createApolloProvider: (clientFactory: ApolloClientFactory) => (Component: React.ComponentType<unknown>) => React.FC;
10
+ export {};
@@ -4,9 +4,10 @@ export var createApolloProvider = function createApolloProvider(clientFactory) {
4
4
  return function (Component) {
5
5
  return function ApolloProvider(_ref) {
6
6
  var children = _ref.children;
7
+ var uri = process.env.REACT_APP_GRAPHQL_API_URL;
7
8
  return /*#__PURE__*/React.createElement(Apollo, {
8
9
  client: clientFactory({
9
- uri: process.env.REACT_APP_GRAPHQL_API_URL
10
+ uri: uri
10
11
  })
11
12
  }, /*#__PURE__*/React.createElement(Component, null, children));
12
13
  };
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["ApolloProvider.tsx"],"names":["React","ApolloProvider","Apollo","createApolloProvider","clientFactory","Component","children","uri","process","env","REACT_APP_GRAPHQL_API_URL"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,cAAc,IAAIC,MAA3B,QAAyC,0BAAzC;AAWA,OAAO,IAAMC,oBAAoB,GAC7B,SADSA,oBACT,CAACC,aAAD;AAAA,SACA,UAACC,SAAD,EAAuD;AACnD,WAAO,SAASJ,cAAT,OAAsC;AAAA,UAAZK,QAAY,QAAZA,QAAY;AACzC,UAAMC,GAAG,GAAGC,OAAO,CAACC,GAAR,CAAYC,yBAAxB;AACA,0BACI,oBAAC,MAAD;AAAQ,QAAA,MAAM,EAAEN,aAAa,CAAC;AAAEG,UAAAA,GAAG,EAAHA;AAAF,SAAD;AAA7B,sBACI,oBAAC,SAAD,QAAYD,QAAZ,CADJ,CADJ;AAKH,KAPD;AAQH,GAVD;AAAA,CADG","sourcesContent":["import React from \"react\";\nimport { ApolloProvider as Apollo } from \"@apollo/react-components\";\nimport ApolloClient from \"apollo-client\";\n\ninterface Options {\n uri: string;\n}\n\nexport interface ApolloClientFactory {\n (options: Options): ApolloClient<any>;\n}\n\nexport const createApolloProvider =\n (clientFactory: ApolloClientFactory) =>\n (Component: React.ComponentType<unknown>): React.FC => {\n return function ApolloProvider({ children }) {\n const uri = process.env.REACT_APP_GRAPHQL_API_URL as string;\n return (\n <Apollo client={clientFactory({ uri })}>\n <Component>{children}</Component>\n </Apollo>\n );\n };\n };\n"]}
@@ -1,4 +1,2 @@
1
- /// <reference types="react" />
2
- export declare const createTelemetryProvider: () => (Component: any) => ({ children }: {
3
- children: any;
4
- }) => JSX.Element;
1
+ import React from "react";
2
+ export declare const createTelemetryProvider: () => (Component: React.FC) => React.FC;
@@ -1,4 +1,9 @@
1
1
  import React, { useEffect } from "react";
2
+ /**
3
+ * Package @webiny/telemetry is not a typescript project.
4
+ */
5
+ // @ts-ignore
6
+
2
7
  import { sendEvent } from "@webiny/telemetry/react";
3
8
  var eventSent = false;
4
9
  export var createTelemetryProvider = function createTelemetryProvider() {
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["TelemetryProvider.tsx"],"names":["React","useEffect","sendEvent","eventSent","createTelemetryProvider","Component","TelemetryProvider","children"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,SAAhB,QAAiC,OAAjC;AACA;AACA;AACA;AACA;;AACA,SAASC,SAAT,QAA0B,yBAA1B;AAEA,IAAIC,SAAS,GAAG,KAAhB;AAEA,OAAO,IAAMC,uBAAuB,GAChC,SADSA,uBACT;AAAA,SACA,UAACC,SAAD,EAAmC;AAC/B,WAAO,SAASC,iBAAT,OAAyC;AAAA,UAAZC,QAAY,QAAZA,QAAY;AAC5CN,MAAAA,SAAS,CAAC,YAAM;AACZ,YAAIE,SAAJ,EAAe;AACX;AACH;;AAEDA,QAAAA,SAAS,GAAG,IAAZ;AACAD,QAAAA,SAAS,CAAC,WAAD,CAAT;AACH,OAPQ,EAON,EAPM,CAAT;AASA,0BAAO,oBAAC,SAAD,QAAYK,QAAZ,CAAP;AACH,KAXD;AAYH,GAdD;AAAA,CADG","sourcesContent":["import React, { useEffect } from \"react\";\n/**\n * Package @webiny/telemetry is not a typescript project.\n */\n// @ts-ignore\nimport { sendEvent } from \"@webiny/telemetry/react\";\n\nlet eventSent = false;\n\nexport const createTelemetryProvider =\n () =>\n (Component: React.FC): React.FC => {\n return function TelemetryProvider({ children }) {\n useEffect(() => {\n if (eventSent) {\n return;\n }\n\n eventSent = true;\n sendEvent(\"app-start\");\n }, []);\n\n return <Component>{children}</Component>;\n };\n };\n"]}
@@ -1,4 +1,2 @@
1
1
  import React from "react";
2
- export declare const createUiStateProvider: () => (Component: React.ComponentType<unknown>) => ({ children }: {
3
- children: any;
4
- }) => JSX.Element;
2
+ export declare const createUiStateProvider: () => (Component: React.ComponentType<unknown>) => React.FC;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["UiStateProvider.tsx"],"names":["React","UiProvider","createUiStateProvider","Component","UiStateProvider","children"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,UAAT,QAA2B,yBAA3B;AAEA,OAAO,IAAMC,qBAAqB,GAC9B,SADSA,qBACT;AAAA,SACA,UAACC,SAAD,EAAuD;AACnD,WAAO,SAASC,eAAT,OAAuC;AAAA,UAAZC,QAAY,QAAZA,QAAY;AAC1C,0BACI,oBAAC,UAAD,qBACI,oBAAC,SAAD,QAAYA,QAAZ,CADJ,CADJ;AAKH,KAND;AAOH,GATD;AAAA,CADG","sourcesContent":["import React from \"react\";\nimport { UiProvider } from \"@webiny/app/contexts/Ui\";\n\nexport const createUiStateProvider =\n () =>\n (Component: React.ComponentType<unknown>): React.FC => {\n return function UiStateProvider({ children }) {\n return (\n <UiProvider>\n <Component>{children}</Component>\n </UiProvider>\n );\n };\n };\n"]}
@@ -2,17 +2,16 @@ import React from "react";
2
2
  export interface ViewElement {
3
3
  name: string;
4
4
  elements: JSX.Element[];
5
+ label?: string;
5
6
  [key: string]: any;
6
7
  }
7
8
  interface ElementSetter {
8
9
  (element: ViewElement): ViewElement;
9
10
  }
10
11
  export interface ViewCompositionContext {
11
- getViewElement(view: string, name: string): ViewElement;
12
- setViewElement(view: string, name: string, setter: ElementSetter): any;
12
+ getViewElement(view: string, name: string): ViewElement | null;
13
+ setViewElement(view: string, name: string, setter: ElementSetter): void;
13
14
  }
14
15
  export declare function useViewComposition(): ViewCompositionContext;
15
- export declare const createViewCompositionProvider: () => (Component: React.ComponentType<unknown>) => ({ children }: {
16
- children: any;
17
- }) => JSX.Element;
16
+ export declare const createViewCompositionProvider: () => (Component: React.ComponentType<unknown>) => React.FC;
18
17
  export {};
@@ -2,7 +2,14 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import _objectSpread from "@babel/runtime/helpers/objectSpread2";
3
3
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
4
  import React, { createContext, useContext, useMemo, useState } from "react";
5
- var ViewCompositionContext = /*#__PURE__*/createContext(null);
5
+ var ViewCompositionContext = /*#__PURE__*/createContext({
6
+ getViewElement: function getViewElement() {
7
+ return null;
8
+ },
9
+ setViewElement: function setViewElement() {
10
+ return void 0;
11
+ }
12
+ });
6
13
  ViewCompositionContext.displayName = "ViewCompositionContext";
7
14
 
8
15
  var ViewCompositionProvider = function ViewCompositionProvider(_ref) {
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["ViewCompositionProvider.tsx"],"names":["React","createContext","useContext","useMemo","useState","ViewCompositionContext","getViewElement","setViewElement","displayName","ViewCompositionProvider","children","state","setState","context","view","name","setter","existing","useViewComposition","createViewCompositionProvider","Component","ViewCompositionProviderHOC"],"mappings":";;;AAAA,OAAOA,KAAP,IAAgBC,aAAhB,EAA+BC,UAA/B,EAA2CC,OAA3C,EAAoDC,QAApD,QAAoE,OAApE;AAkBA,IAAMC,sBAAsB,gBAAGJ,aAAa,CAAyB;AACjEK,EAAAA,cAAc,EAAE,0BAAM;AAClB,WAAO,IAAP;AACH,GAHgE;AAIjEC,EAAAA,cAAc,EAAE,0BAAM;AAClB,WAAO,KAAK,CAAZ;AACH;AANgE,CAAzB,CAA5C;AAQAF,sBAAsB,CAACG,WAAvB,GAAqC,wBAArC;;AAKA,IAAMC,uBAAiC,GAAG,SAApCA,uBAAoC,OAAkB;AAAA,MAAfC,QAAe,QAAfA,QAAe;;AACxD,kBAA0BN,QAAQ,CAA+B,EAA/B,CAAlC;AAAA;AAAA,MAAOO,KAAP;AAAA,MAAcC,QAAd;;AAEA,MAAMC,OAAO,GAAGV,OAAO,CACnB;AAAA,WAAO;AACHG,MAAAA,cADG,0BACYQ,IADZ,EAC0BC,IAD1B,EACqD;AACpD,eAAOJ,KAAK,CAACG,IAAD,CAAL,IAAeH,KAAK,CAACG,IAAD,CAAL,CAAYC,IAAZ,CAAtB;AACH,OAHE;AAIHR,MAAAA,cAJG,0BAIYO,IAJZ,EAI0BC,IAJ1B,EAIwCC,MAJxC,EAI+D;AAC9DJ,QAAAA,QAAQ,CAAC,UAAAD,KAAK,EAAI;AACd,cAAMM,QAAQ,GAAGN,KAAK,CAACG,IAAD,CAAL,IAAeH,KAAK,CAACG,IAAD,CAAL,CAAYC,IAAZ,CAAhC;AACA,iDACOJ,KADP,2BAEKG,IAFL,kCAGWH,KAAK,CAACG,IAAD,CAHhB,2BAISC,IAJT,EAIgBC,MAAM,CAACC,QAAD,CAJtB;AAOH,SATO,CAAR;AAUH;AAfE,KAAP;AAAA,GADmB,EAkBnB,CAACN,KAAD,CAlBmB,CAAvB;AAqBA,sBACI,oBAAC,sBAAD,CAAwB,QAAxB;AAAiC,IAAA,KAAK,EAAEE;AAAxC,KACKH,QADL,CADJ;AAKH,CA7BD;;AA+BA,OAAO,SAASQ,kBAAT,GAA8B;AACjC,SAAOhB,UAAU,CAACG,sBAAD,CAAjB;AACH;AAED,OAAO,IAAMc,6BAA6B,GACtC,SADSA,6BACT;AAAA,SACA,UAACC,SAAD,EAAuD;AACnD,WAAO,SAASC,0BAAT,QAAkD;AAAA,UAAZX,QAAY,SAAZA,QAAY;AACrD,0BACI,oBAAC,uBAAD,qBACI,oBAAC,SAAD,QAAYA,QAAZ,CADJ,CADJ;AAKH,KAND;AAOH,GATD;AAAA,CADG","sourcesContent":["import React, { createContext, useContext, useMemo, useState } from \"react\";\n\nexport interface ViewElement {\n name: string;\n elements: JSX.Element[];\n label?: string;\n [key: string]: any;\n}\n\ninterface ElementSetter {\n (element: ViewElement): ViewElement;\n}\n\nexport interface ViewCompositionContext {\n getViewElement(view: string, name: string): ViewElement | null;\n setViewElement(view: string, name: string, setter: ElementSetter): void;\n}\n\nconst ViewCompositionContext = createContext<ViewCompositionContext>({\n getViewElement: () => {\n return null;\n },\n setViewElement: () => {\n return void 0;\n }\n});\nViewCompositionContext.displayName = \"ViewCompositionContext\";\n\ninterface ViewCompositionProviderState {\n [key: string]: Record<string, any>;\n}\nconst ViewCompositionProvider: React.FC = ({ children }) => {\n const [state, setState] = useState<ViewCompositionProviderState>({});\n\n const context = useMemo(\n () => ({\n getViewElement(view: string, name: string): ViewElement {\n return state[view] && state[view][name];\n },\n setViewElement(view: string, name: string, setter: ElementSetter) {\n setState(state => {\n const existing = state[view] && state[view][name];\n return {\n ...state,\n [view]: {\n ...state[view],\n [name]: setter(existing)\n }\n };\n });\n }\n }),\n [state]\n );\n\n return (\n <ViewCompositionContext.Provider value={context}>\n {children}\n </ViewCompositionContext.Provider>\n );\n};\n\nexport function useViewComposition() {\n return useContext(ViewCompositionContext);\n}\n\nexport const createViewCompositionProvider =\n () =>\n (Component: React.ComponentType<unknown>): React.FC => {\n return function ViewCompositionProviderHOC({ children }) {\n return (\n <ViewCompositionProvider>\n <Component>{children}</Component>\n </ViewCompositionProvider>\n );\n };\n };\n"]}
@@ -1,9 +1,2 @@
1
- import React from "react";
2
- export declare const Brand: React.FC<unknown> & {
3
- original: React.ComponentType<unknown>;
4
- originalName: string;
5
- };
6
- export declare const BrandRenderer: React.FC<unknown> & {
7
- original: React.ComponentType<unknown>;
8
- originalName: string;
9
- };
1
+ export declare const Brand: import("@webiny/app-admin-core").ComposableFC<unknown>;
2
+ export declare const BrandRenderer: import("@webiny/app-admin-core").ComposableFC<unknown>;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["Brand.tsx"],"names":["React","makeComposable","Brand","BrandRenderer"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,cAAT,QAA+B,wBAA/B;AAEA,OAAO,IAAMC,KAAK,GAAGD,cAAc,CAAC,OAAD,EAAU,YAAM;AAC/C,sBAAO,oBAAC,aAAD,OAAP;AACH,CAFkC,CAA5B;AAIP,OAAO,IAAME,aAAa,GAAGF,cAAc,CAAC,eAAD,CAApC","sourcesContent":["import React from \"react\";\nimport { makeComposable } from \"@webiny/app-admin-core\";\n\nexport const Brand = makeComposable(\"Brand\", () => {\n return <BrandRenderer />;\n});\n\nexport const BrandRenderer = makeComposable(\"BrandRenderer\");\n"]}
@@ -1,8 +1,4 @@
1
- import React from "react";
2
1
  export interface CenteredViewProps {
3
2
  maxWidth?: number | string;
4
3
  }
5
- export declare const CenteredView: React.FC<CenteredViewProps> & {
6
- original: React.ComponentType<CenteredViewProps>;
7
- originalName: string;
8
- };
4
+ export declare const CenteredView: import("../../index").ComposableFC<CenteredViewProps>;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["CenteredView.tsx"],"names":["React","styled","makeComposable","Container","display","justifyContent","Width","props","maxWidth","width","CenteredView","children"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,MAAP,MAAmB,iBAAnB;AACA,SAASC,cAAT;AAMA,IAAMC,SAAS,gBAAGF,MAAH;AAAA;AAAA;AAAA,GAAc;AACzBG,EAAAA,OAAO,EAAE,MADgB;AAEzBC,EAAAA,cAAc,EAAE;AAFS,CAAd,CAAf;AASA,IAAMC,KAAK,gBAAGL,MAAH;AAAA;AAAA;AAAA,GAAc,UAACM,KAAD;AAAA,SAAmB;AACxCC,IAAAA,QAAQ,EAAED,KAAK,CAACC,QADwB;AAExCC,IAAAA,KAAK,EAAE;AAFiC,GAAnB;AAAA,CAAd,CAAX;AAKA,OAAO,IAAMC,YAAY,GAAGR,cAAc,CACtC,cADsC,EAEtC,gBAAkC;AAAA,2BAA/BM,QAA+B;AAAA,MAA/BA,QAA+B,8BAApB,GAAoB;AAAA,MAAfG,QAAe,QAAfA,QAAe;AAC9B,sBACI,oBAAC,SAAD,qBACI,oBAAC,KAAD;AAAO,IAAA,QAAQ,EAAEH;AAAjB,KAA4BG,QAA5B,CADJ,CADJ;AAKH,CARqC,CAAnC","sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { makeComposable } from \"~/index\";\n\nexport interface CenteredViewProps {\n maxWidth?: number | string;\n}\n\nconst Container = styled.div({\n display: \"flex\",\n justifyContent: \"center\"\n});\n\ninterface Props {\n maxWidth: string | number;\n}\n\nconst Width = styled.div((props: Props) => ({\n maxWidth: props.maxWidth,\n width: \"100%\"\n}));\n\nexport const CenteredView = makeComposable<CenteredViewProps>(\n \"CenteredView\",\n ({ maxWidth = 700, children }) => {\n return (\n <Container>\n <Width maxWidth={maxWidth}>{children}</Width>\n </Container>\n );\n }\n);\n"]}
@@ -1,9 +1,2 @@
1
- import React from "react";
2
- export declare const Dashboard: React.FC<unknown> & {
3
- original: React.ComponentType<unknown>;
4
- originalName: string;
5
- };
6
- export declare const DashboardRenderer: React.FC<unknown> & {
7
- original: React.ComponentType<unknown>;
8
- originalName: string;
9
- };
1
+ export declare const Dashboard: import("@webiny/app-admin-core").ComposableFC<unknown>;
2
+ export declare const DashboardRenderer: import("@webiny/app-admin-core").ComposableFC<unknown>;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["Dashboard.tsx"],"names":["React","makeComposable","Dashboard","DashboardRenderer"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,cAAT,QAA+B,wBAA/B;AAEA,OAAO,IAAMC,SAAS,GAAGD,cAAc,CAAC,WAAD,EAAc,YAAM;AACvD,sBAAO,oBAAC,iBAAD,OAAP;AACH,CAFsC,CAAhC;AAIP,OAAO,IAAME,iBAAiB,GAAGF,cAAc,CAAC,mBAAD,CAAxC","sourcesContent":["import React from \"react\";\nimport { makeComposable } from \"@webiny/app-admin-core\";\n\nexport const Dashboard = makeComposable(\"Dashboard\", () => {\n return <DashboardRenderer />;\n});\n\nexport const DashboardRenderer = makeComposable(\"DashboardRenderer\");\n"]}
@@ -3,11 +3,5 @@ export interface LayoutProps {
3
3
  title?: string;
4
4
  children: React.ReactNode;
5
5
  }
6
- export declare const Layout: React.FC<LayoutProps> & {
7
- original: React.ComponentType<LayoutProps>;
8
- originalName: string;
9
- };
10
- export declare const LayoutRenderer: React.FC<LayoutProps> & {
11
- original: React.ComponentType<LayoutProps>;
12
- originalName: string;
13
- };
6
+ export declare const Layout: import("@webiny/app-admin-core").ComposableFC<LayoutProps>;
7
+ export declare const LayoutRenderer: import("@webiny/app-admin-core").ComposableFC<LayoutProps>;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["Layout.tsx"],"names":["React","makeComposable","Layout","children","props","LayoutRenderer"],"mappings":";;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,cAAT,QAA+B,wBAA/B;AAOA,OAAO,IAAMC,MAAM,GAAGD,cAAc,CAAc,QAAd,EAAwB,gBAA4B;AAAA,MAAzBE,QAAyB,QAAzBA,QAAyB;AAAA,MAAZC,KAAY;;AACpF,sBAAO,oBAAC,cAAD,EAAoBA,KAApB,EAA4BD,QAA5B,CAAP;AACH,CAFmC,CAA7B;AAIP,OAAO,IAAME,cAAc,GAAGJ,cAAc,CAAc,gBAAd,CAArC","sourcesContent":["import React from \"react\";\nimport { makeComposable } from \"@webiny/app-admin-core\";\n\nexport interface LayoutProps {\n title?: string;\n children: React.ReactNode;\n}\n\nexport const Layout = makeComposable<LayoutProps>(\"Layout\", ({ children, ...props }) => {\n return <LayoutRenderer {...props}>{children}</LayoutRenderer>;\n});\n\nexport const LayoutRenderer = makeComposable<LayoutProps>(\"LayoutRenderer\");\n"]}
@@ -1,9 +1,2 @@
1
- import React from "react";
2
- export declare const LocaleSelector: React.FC<unknown> & {
3
- original: React.ComponentType<unknown>;
4
- originalName: string;
5
- };
6
- export declare const LocaleSelectorRenderer: React.FC<unknown> & {
7
- original: React.ComponentType<unknown>;
8
- originalName: string;
9
- };
1
+ export declare const LocaleSelector: import("@webiny/app-admin-core").ComposableFC<unknown>;
2
+ export declare const LocaleSelectorRenderer: import("@webiny/app-admin-core").ComposableFC<unknown>;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["LocaleSelector.tsx"],"names":["React","makeComposable","LocaleSelector","LocaleSelectorRenderer"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,cAAT,QAA+B,wBAA/B;AAEA,OAAO,IAAMC,cAAc,GAAGD,cAAc,CAAC,gBAAD,EAAmB,YAAM;AACjE,sBAAO,oBAAC,sBAAD,OAAP;AACH,CAF2C,CAArC;AAIP,OAAO,IAAME,sBAAsB,GAAGF,cAAc,CAAC,wBAAD,CAA7C","sourcesContent":["import React from \"react\";\nimport { makeComposable } from \"@webiny/app-admin-core\";\n\nexport const LocaleSelector = makeComposable(\"LocaleSelector\", () => {\n return <LocaleSelectorRenderer />;\n});\n\nexport const LocaleSelectorRenderer = makeComposable(\"LocaleSelectorRenderer\");\n"]}
@@ -2,8 +2,5 @@ import React from "react";
2
2
  export interface LoginScreenProps {
3
3
  children: React.ReactNode;
4
4
  }
5
- export declare const LoginScreen: ({ children }: LoginScreenProps) => JSX.Element;
6
- export declare const LoginScreenRenderer: React.FC<LoginScreenProps> & {
7
- original: React.ComponentType<LoginScreenProps>;
8
- originalName: string;
9
- };
5
+ export declare const LoginScreen: React.FC<LoginScreenProps>;
6
+ export declare const LoginScreenRenderer: import("@webiny/app-admin-core").ComposableFC<LoginScreenProps>;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["LoginScreen.tsx"],"names":["React","makeComposable","Tags","LoginScreen","children","location","LoginScreenRenderer"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,cAAT,QAA+B,wBAA/B;AACA,SAASC,IAAT;AAMA,OAAO,IAAMC,WAAuC,GAAG,SAA1CA,WAA0C,OAAkB;AAAA,MAAfC,QAAe,QAAfA,QAAe;AACrE,sBACI,oBAAC,IAAD;AAAM,IAAA,IAAI,EAAE;AAAEC,MAAAA,QAAQ,EAAE;AAAZ;AAAZ,kBACI,oBAAC,mBAAD,QAAsBD,QAAtB,CADJ,CADJ;AAKH,CANM;AAQP,OAAO,IAAME,mBAAmB,GAAGL,cAAc,CAAmB,qBAAnB,CAA1C","sourcesContent":["import React from \"react\";\nimport { makeComposable } from \"@webiny/app-admin-core\";\nimport { Tags } from \"./Tags\";\n\nexport interface LoginScreenProps {\n children: React.ReactNode;\n}\n\nexport const LoginScreen: React.FC<LoginScreenProps> = ({ children }) => {\n return (\n <Tags tags={{ location: \"loginScreen\" }}>\n <LoginScreenRenderer>{children}</LoginScreenRenderer>\n </Tags>\n );\n};\n\nexport const LoginScreenRenderer = makeComposable<LoginScreenProps>(\"LoginScreenRenderer\");\n"]}
package/base/ui/Logo.d.ts CHANGED
@@ -1,14 +1,8 @@
1
1
  import React from "react";
2
- export declare const Logo: React.FC<unknown> & {
3
- original: React.ComponentType<unknown>;
4
- originalName: string;
5
- };
6
- export declare const LogoRenderer: React.FC<unknown> & {
7
- original: React.ComponentType<unknown>;
8
- originalName: string;
9
- };
2
+ export declare const Logo: import("@webiny/app-admin-core").ComposableFC<unknown>;
3
+ export declare const LogoRenderer: import("@webiny/app-admin-core").ComposableFC<unknown>;
10
4
  interface AddLogoProps {
11
5
  logo: JSX.Element;
12
6
  }
13
- export declare const AddLogo: ({ logo }: AddLogoProps) => JSX.Element;
7
+ export declare const AddLogo: React.FC<AddLogoProps>;
14
8
  export {};
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["Logo.tsx"],"names":["React","useMemo","Compose","makeComposable","Logo","LogoRenderer","AddLogo","logo","LogoHOC"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,OAAhB,QAA+B,OAA/B;AACA,SAASC,OAAT,EAAkBC,cAAlB,QAAwC,wBAAxC;AAEA,OAAO,IAAMC,IAAI,GAAGD,cAAc,CAAC,MAAD,EAAS,YAAM;AAC7C,sBAAO,oBAAC,YAAD,OAAP;AACH,CAFiC,CAA3B;AAIP,OAAO,IAAME,YAAY,GAAGF,cAAc,CAAC,cAAD,CAAnC;AAMP,OAAO,IAAMG,OAA+B,GAAG,SAAlCA,OAAkC,OAAc;AAAA,MAAXC,IAAW,QAAXA,IAAW;AACzD,MAAMC,OAAO,GAAGP,OAAO,CAAC,YAAM;AAC1B,WAAO,YAAM;AACT,aAAO,SAASG,IAAT,GAAgB;AACnB,eAAOG,IAAP;AACH,OAFD;AAGH,KAJD;AAKH,GANsB,EAMpB,EANoB,CAAvB;AAQA,sBAAO,oBAAC,OAAD;AAAS,IAAA,SAAS,EAAEF,YAApB;AAAkC,IAAA,IAAI,EAAEG;AAAxC,IAAP;AACH,CAVM","sourcesContent":["import React, { useMemo } from \"react\";\nimport { Compose, makeComposable } from \"@webiny/app-admin-core\";\n\nexport const Logo = makeComposable(\"Logo\", () => {\n return <LogoRenderer />;\n});\n\nexport const LogoRenderer = makeComposable(\"LogoRenderer\");\n\ninterface AddLogoProps {\n logo: JSX.Element;\n}\n\nexport const AddLogo: React.FC<AddLogoProps> = ({ logo }) => {\n const LogoHOC = useMemo(() => {\n return () => {\n return function Logo() {\n return logo;\n };\n };\n }, []);\n\n return <Compose component={LogoRenderer} with={LogoHOC} />;\n};\n"]}
package/base/ui/Menu.d.ts CHANGED
@@ -1,7 +1,11 @@
1
1
  import React from "react";
2
+ export interface MenuUpdater {
3
+ (menuItem: MenuData | undefined | null): MenuData | undefined;
4
+ }
2
5
  export interface MenuContext {
3
- menuItem: MenuData;
4
- setMenu(id: string, props: MenuData): void;
6
+ menuItem: MenuData | null;
7
+ setMenu(id: string, updater: MenuUpdater): void;
8
+ removeMenu(id: string): void;
5
9
  }
6
10
  export interface MenuProps {
7
11
  name: string;
@@ -20,16 +24,8 @@ export interface MenuProps {
20
24
  export interface MenuData extends MenuProps {
21
25
  children: MenuData[];
22
26
  }
27
+ export declare const createEmptyMenu: (name: string) => MenuData;
23
28
  /**
24
29
  * Register a new menu item into the Admin app.
25
- *
26
- * @param children
27
- * @param props
28
- * @constructor
29
30
  */
30
- export declare const AddMenu: {
31
- ({ children, ...props }: MenuProps): JSX.Element;
32
- defaultProps: {
33
- tags: any[];
34
- };
35
- };
31
+ export declare const AddMenu: React.FC<MenuProps>;
package/base/ui/Menu.js CHANGED
@@ -1,67 +1,133 @@
1
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
1
2
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
3
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
4
  import _objectSpread from "@babel/runtime/helpers/objectSpread2";
3
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
- import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
5
5
  var _excluded = ["children"];
6
- import React, { createContext, useState, useContext, useEffect } from "react";
7
- import { set } from "dot-prop-immutable";
6
+ import React, { createContext, useContext, useEffect } from "react";
8
7
  import { useNavigation } from "../..";
9
- var MenuContext = /*#__PURE__*/createContext(null);
8
+ var MenuContext = /*#__PURE__*/createContext(undefined);
10
9
  MenuContext.displayName = "MenuContext";
11
10
 
12
11
  var useMenu = function useMenu() {
13
12
  return useContext(MenuContext);
14
13
  };
15
14
 
15
+ export var createEmptyMenu = function createEmptyMenu(name) {
16
+ return {
17
+ name: name,
18
+ tags: [],
19
+ children: []
20
+ };
21
+ };
22
+ var keys = ["label", "path", "icon", "onClick", "testId", "tags", "target", "rel", "element", "pin"];
23
+
24
+ var mergeMenuItems = function mergeMenuItems(item1, item2) {
25
+ return _objectSpread(_objectSpread(_objectSpread({}, item1), keys.reduce(function (map, key) {
26
+ var _item2$key;
27
+
28
+ return _objectSpread(_objectSpread({}, map), {}, _defineProperty({}, key, (_item2$key = item2[key]) !== null && _item2$key !== void 0 ? _item2$key : item1[key]));
29
+ }, {})), {}, {
30
+ children: (item2.children || []).reduce(function (acc, menu) {
31
+ var index = acc.findIndex(function (i) {
32
+ return i.name === menu.name;
33
+ });
34
+
35
+ if (index > -1) {
36
+ acc[index] = mergeMenuItems(acc[index], menu);
37
+ } else {
38
+ acc.push(menu);
39
+ }
40
+
41
+ return acc;
42
+ }, _toConsumableArray(item1.children))
43
+ });
44
+ };
16
45
  /**
17
46
  * Register a new menu item into the Admin app.
18
- *
19
- * @param children
20
- * @param props
21
- * @constructor
22
47
  */
48
+
49
+
23
50
  export var AddMenu = function AddMenu(_ref) {
24
51
  var children = _ref.children,
25
52
  props = _objectWithoutProperties(_ref, _excluded);
26
53
 
27
- var _useState = useState(_objectSpread(_objectSpread({}, props), {}, {
28
- children: []
29
- })),
30
- _useState2 = _slicedToArray(_useState, 2),
31
- state = _useState2[0],
32
- setState = _useState2[1];
33
-
34
54
  var menu = useMenu();
35
55
  var navigation = useNavigation();
36
56
  useEffect(function () {
37
57
  if (menu) {
38
- menu.setMenu(state.name, state);
58
+ menu.setMenu(props.name, function (existing) {
59
+ if (!existing) {
60
+ return _objectSpread(_objectSpread({}, props), {}, {
61
+ children: []
62
+ });
63
+ }
64
+
65
+ return mergeMenuItems(existing, props);
66
+ });
39
67
  } else {
40
- navigation.setMenu(state.name, state);
68
+ navigation.setMenu(props.name, function (existing) {
69
+ /**
70
+ * We return props because this will break otherwise.
71
+ * TODO @pavel check if this is correct
72
+ */
73
+ if (!existing) {
74
+ return props;
75
+ }
76
+
77
+ return mergeMenuItems(existing, props);
78
+ });
41
79
  }
42
- }, [state]);
43
- useEffect(function () {
80
+
44
81
  return function () {
45
- return navigation.removeMenu(state.name);
82
+ if (menu) {
83
+ menu.removeMenu(props.name);
84
+ } else {
85
+ navigation.removeMenu(props.name);
86
+ }
46
87
  };
47
88
  }, []);
48
89
  var context = {
49
- setMenu: function setMenu(name, props) {
50
- setState(function (menu) {
51
- var childIndex = menu.children.findIndex(function (ch) {
90
+ menuItem: _objectSpread(_objectSpread({}, props), {}, {
91
+ children: []
92
+ }),
93
+ removeMenu: function removeMenu(name) {
94
+ (menu || navigation).setMenu(props.name, function (existing) {
95
+ if (!existing) {
96
+ return undefined;
97
+ }
98
+
99
+ var childIndex = existing.children.findIndex(function (ch) {
100
+ return ch.name === name;
101
+ });
102
+
103
+ if (childIndex > -1) {
104
+ return _objectSpread(_objectSpread({}, existing), {}, {
105
+ children: [].concat(_toConsumableArray(existing.children.slice(0, childIndex)), _toConsumableArray(existing.children.slice(childIndex + 1)))
106
+ });
107
+ }
108
+
109
+ return existing;
110
+ });
111
+ },
112
+ setMenu: function setMenu(name, updater) {
113
+ (menu || navigation).setMenu(props.name, function (existing) {
114
+ if (!existing) {
115
+ existing = createEmptyMenu(props.name);
116
+ }
117
+
118
+ var subItems = existing.children;
119
+ var childIndex = subItems.findIndex(function (ch) {
52
120
  return ch.name === name;
53
121
  });
54
122
 
55
123
  if (childIndex === -1) {
56
- return _objectSpread(_objectSpread({}, menu), {}, {
57
- children: [].concat(_toConsumableArray(menu.children), [_objectSpread({}, props)])
124
+ return _objectSpread(_objectSpread({}, existing), {}, {
125
+ children: [].concat(_toConsumableArray(subItems), [updater(null)]).filter(Boolean)
58
126
  });
59
127
  }
60
128
 
61
- return _objectSpread(_objectSpread({}, menu), {}, {
62
- children: set(menu.children, childIndex, function (curr) {
63
- return _objectSpread(_objectSpread({}, curr), props);
64
- })
129
+ return _objectSpread(_objectSpread({}, existing), {}, {
130
+ children: [].concat(_toConsumableArray(subItems.slice(0, childIndex)), [updater(subItems[childIndex])], _toConsumableArray(subItems.slice(childIndex + 1))).filter(Boolean)
65
131
  });
66
132
  });
67
133
  }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["Menu.tsx"],"names":["React","createContext","useContext","useEffect","useNavigation","MenuContext","undefined","displayName","useMenu","createEmptyMenu","name","tags","children","keys","mergeMenuItems","item1","item2","reduce","map","key","acc","menu","index","findIndex","i","push","AddMenu","props","navigation","setMenu","existing","removeMenu","context","menuItem","childIndex","ch","slice","updater","subItems","filter","Boolean","defaultProps"],"mappings":"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","sourcesContent":["import React, { createContext, useContext, useEffect } from \"react\";\nimport { useNavigation } from \"~/index\";\n\nexport interface MenuUpdater {\n (menuItem: MenuData | undefined | null): MenuData | undefined;\n}\n\nexport interface MenuContext {\n menuItem: MenuData | null;\n setMenu(id: string, updater: MenuUpdater): void;\n removeMenu(id: string): void;\n}\n\nconst MenuContext = createContext<MenuContext | undefined>(undefined);\nMenuContext.displayName = \"MenuContext\";\n\nconst useMenu = () => {\n return useContext(MenuContext);\n};\n\nexport interface MenuProps {\n name: string;\n label?: string;\n path?: string;\n icon?: JSX.Element;\n onClick?: () => void;\n testId?: string;\n tags?: string[];\n target?: string;\n rel?: string;\n element?: JSX.Element;\n children?: React.ReactNode | React.ReactNode[];\n pin?: \"first\" | \"last\";\n}\n\nexport interface MenuData extends MenuProps {\n children: MenuData[];\n}\n\nexport const createEmptyMenu = (name: string): MenuData => {\n return {\n name,\n tags: [],\n children: []\n };\n};\n\nconst keys: (keyof MenuData)[] = [\n \"label\",\n \"path\",\n \"icon\",\n \"onClick\",\n \"testId\",\n \"tags\",\n \"target\",\n \"rel\",\n \"element\",\n \"pin\"\n];\n\nconst mergeMenuItems = (item1: MenuData, item2: MenuData): MenuData => {\n return {\n ...item1,\n ...keys.reduce((map, key) => ({ ...map, [key]: item2[key] ?? item1[key] }), {}),\n children: (item2.children || []).reduce(\n (acc, menu) => {\n const index = acc.findIndex(i => i.name === menu.name);\n if (index > -1) {\n acc[index] = mergeMenuItems(acc[index], menu);\n } else {\n acc.push(menu);\n }\n return acc;\n },\n [...item1.children]\n )\n };\n};\n\n/**\n * Register a new menu item into the Admin app.\n */\nexport const AddMenu: React.FC<MenuProps> = ({ children, ...props }) => {\n const menu = useMenu();\n const navigation = useNavigation();\n\n useEffect(() => {\n if (menu) {\n menu.setMenu(props.name, existing => {\n if (!existing) {\n return { ...props, children: [] } as MenuData;\n }\n\n return mergeMenuItems(existing, props as MenuData);\n });\n } else {\n navigation.setMenu(props.name, existing => {\n /**\n * We return props because this will break otherwise.\n * TODO @pavel check if this is correct\n */\n if (!existing) {\n return props as MenuData;\n }\n return mergeMenuItems(existing, props as MenuData);\n });\n }\n\n return () => {\n if (menu) {\n menu.removeMenu(props.name);\n } else {\n navigation.removeMenu(props.name);\n }\n };\n }, []);\n\n const context: MenuContext = {\n menuItem: { ...props, children: [] },\n removeMenu(name) {\n (menu || navigation).setMenu(props.name, existing => {\n if (!existing) {\n return undefined;\n }\n\n const childIndex = existing.children.findIndex(ch => ch.name === name);\n if (childIndex > -1) {\n return {\n ...existing,\n children: [\n ...existing.children.slice(0, childIndex),\n ...existing.children.slice(childIndex + 1)\n ]\n };\n }\n\n return existing;\n });\n },\n setMenu(name: string, updater: MenuUpdater) {\n (menu || navigation).setMenu(props.name, existing => {\n if (!existing) {\n existing = createEmptyMenu(props.name);\n }\n\n const subItems = existing.children;\n\n const childIndex = subItems.findIndex(ch => ch.name === name);\n if (childIndex === -1) {\n return {\n ...existing,\n children: [...subItems, updater(null)].filter(Boolean) as MenuData[]\n };\n }\n\n return {\n ...existing,\n children: [\n ...subItems.slice(0, childIndex),\n updater(subItems[childIndex]),\n ...subItems.slice(childIndex + 1)\n ].filter(Boolean) as MenuData[]\n };\n });\n }\n };\n\n if (!children) {\n return null;\n }\n\n return <MenuContext.Provider value={context}>{children}</MenuContext.Provider>;\n};\n\nAddMenu.defaultProps = { tags: [] };\n"]}
@@ -1,21 +1,16 @@
1
1
  import React from "react";
2
- import { MenuData, MenuProps } from "../../index";
2
+ import { MenuData, MenuUpdater } from "../../index";
3
3
  export interface NavigationContext {
4
4
  menuItems: MenuData[];
5
- setMenu(id: string, props: MenuProps): void;
5
+ setMenu(id: string, update: MenuUpdater): void;
6
6
  removeMenu(id: string): void;
7
7
  }
8
8
  export declare function useNavigation(): NavigationContext;
9
- export declare const NavigationProvider: (Component: React.ComponentType<unknown>) => ({ children }: {
10
- children: any;
11
- }) => JSX.Element;
12
- export declare const Navigation: () => JSX.Element;
13
- export declare const NavigationRenderer: React.FC<unknown> & {
14
- original: React.ComponentType<unknown>;
15
- originalName: string;
16
- };
9
+ export declare const NavigationProvider: (Component: React.ComponentType<unknown>) => React.FC;
10
+ export declare const Navigation: React.FC;
11
+ export declare const NavigationRenderer: import("@webiny/app-admin-core").ComposableFC<unknown>;
17
12
  interface MenuItemContext {
18
- menuItem: MenuData;
13
+ menuItem?: MenuData;
19
14
  depth: number;
20
15
  }
21
16
  declare const MenuItemContext: React.Context<MenuItemContext>;
@@ -23,13 +18,7 @@ export declare function useMenuItem(): MenuItemContext;
23
18
  export interface MenuItemsProps {
24
19
  menuItems: MenuData[];
25
20
  }
26
- export declare const MenuItems: React.FC<MenuItemsProps> & {
27
- original: React.ComponentType<MenuItemsProps>;
28
- originalName: string;
29
- };
30
- export declare const MenuItem: () => JSX.Element;
31
- export declare const MenuItemRenderer: React.FC<unknown> & {
32
- original: React.ComponentType<unknown>;
33
- originalName: string;
34
- };
21
+ export declare const MenuItems: import("@webiny/app-admin-core").ComposableFC<MenuItemsProps>;
22
+ export declare const MenuItem: React.FC;
23
+ export declare const MenuItemRenderer: import("@webiny/app-admin-core").ComposableFC<unknown>;
35
24
  export {};