@webiny/app-admin 5.41.4 → 5.42.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/base/Admin.js +4 -13
  2. package/base/Admin.js.map +1 -1
  3. package/base/providers/TelemetryProvider.d.ts +1 -7
  4. package/base/providers/TelemetryProvider.js +3 -2
  5. package/base/providers/TelemetryProvider.js.map +1 -1
  6. package/base/providers/UiStateProvider.d.ts +1 -7
  7. package/base/providers/UiStateProvider.js +3 -2
  8. package/base/providers/UiStateProvider.js.map +1 -1
  9. package/base/providers/ViewCompositionProvider.js.map +1 -1
  10. package/base/ui/FileManager.js.map +1 -1
  11. package/base/ui/Menu.js +4 -4
  12. package/base/ui/Menu.js.map +1 -1
  13. package/base/ui/Navigation.d.ts +1 -5
  14. package/base/ui/Navigation.js +2 -2
  15. package/base/ui/Navigation.js.map +1 -1
  16. package/base/ui/Search.d.ts +1 -7
  17. package/base/ui/Search.js +2 -2
  18. package/base/ui/Search.js.map +1 -1
  19. package/base/ui/UserMenu.d.ts +1 -7
  20. package/base/ui/UserMenu.js +2 -2
  21. package/base/ui/UserMenu.js.map +1 -1
  22. package/components/AppInstaller/AppInstaller.js +1 -1
  23. package/components/AppInstaller/AppInstaller.js.map +1 -1
  24. package/components/AppInstaller/Sidebar.js +1 -1
  25. package/components/AppInstaller/Sidebar.js.map +1 -1
  26. package/components/BulkActions/Worker.js.map +1 -1
  27. package/components/BulkActions/useDialogWithReport/useDialogWithReport.js.map +1 -1
  28. package/components/Dialogs/DialogsContext.d.ts +4 -13
  29. package/components/Dialogs/DialogsContext.js +83 -61
  30. package/components/Dialogs/DialogsContext.js.map +1 -1
  31. package/components/IconPicker/IconPicker.d.ts +13 -0
  32. package/components/IconPicker/IconPicker.js +46 -0
  33. package/components/IconPicker/IconPicker.js.map +1 -0
  34. package/components/IconPicker/IconPicker.styles.d.ts +63 -0
  35. package/components/IconPicker/IconPicker.styles.js +187 -0
  36. package/components/IconPicker/IconPicker.styles.js.map +1 -0
  37. package/components/IconPicker/IconPickerComponent.d.ts +16 -0
  38. package/components/IconPicker/IconPickerComponent.js +101 -0
  39. package/components/IconPicker/IconPickerComponent.js.map +1 -0
  40. package/components/IconPicker/IconPickerPresenter.d.ts +52 -0
  41. package/components/IconPicker/IconPickerPresenter.js +118 -0
  42. package/components/IconPicker/IconPickerPresenter.js.map +1 -0
  43. package/components/IconPicker/IconPickerPresenter.test.d.ts +1 -0
  44. package/components/IconPicker/IconPickerPresenter.test.js +111 -0
  45. package/components/IconPicker/IconPickerPresenter.test.js.map +1 -0
  46. package/components/IconPicker/IconPickerPresenterProvider.d.ts +9 -0
  47. package/components/IconPicker/IconPickerPresenterProvider.js +26 -0
  48. package/components/IconPicker/IconPickerPresenterProvider.js.map +1 -0
  49. package/components/IconPicker/IconPickerTab.d.ts +32 -0
  50. package/components/IconPicker/IconPickerTab.js +169 -0
  51. package/components/IconPicker/IconPickerTab.js.map +1 -0
  52. package/components/IconPicker/IconRenderer.d.ts +34 -0
  53. package/components/IconPicker/IconRenderer.js +35 -0
  54. package/components/IconPicker/IconRenderer.js.map +1 -0
  55. package/components/IconPicker/IconRepository.d.ts +19 -0
  56. package/components/IconPicker/IconRepository.js +79 -0
  57. package/components/IconPicker/IconRepository.js.map +1 -0
  58. package/components/IconPicker/IconRepository.test.d.ts +1 -0
  59. package/components/IconPicker/IconRepository.test.js +68 -0
  60. package/components/IconPicker/IconRepository.test.js.map +1 -0
  61. package/components/IconPicker/IconRepositoryFactory.d.ts +9 -0
  62. package/components/IconPicker/IconRepositoryFactory.js +40 -0
  63. package/components/IconPicker/IconRepositoryFactory.js.map +1 -0
  64. package/components/IconPicker/Loading.d.ts +14 -0
  65. package/components/IconPicker/Loading.js +76 -0
  66. package/components/IconPicker/Loading.js.map +1 -0
  67. package/components/IconPicker/config/Emojis.d.ts +2 -0
  68. package/components/IconPicker/config/Emojis.js +31 -0
  69. package/components/IconPicker/config/Emojis.js.map +1 -0
  70. package/components/IconPicker/config/FontAwesomeIcons.d.ts +2 -0
  71. package/components/IconPicker/config/FontAwesomeIcons.js +74 -0
  72. package/components/IconPicker/config/FontAwesomeIcons.js.map +1 -0
  73. package/components/IconPicker/config/IconPackProvider.d.ts +7 -0
  74. package/components/IconPicker/config/IconPackProvider.js +29 -0
  75. package/components/IconPicker/config/IconPackProvider.js.map +1 -0
  76. package/components/IconPicker/config/IconType.d.ts +32 -0
  77. package/components/IconPicker/config/IconType.js +92 -0
  78. package/components/IconPicker/config/IconType.js.map +1 -0
  79. package/components/IconPicker/config/index.d.ts +31 -0
  80. package/components/IconPicker/config/index.js +63 -0
  81. package/components/IconPicker/config/index.js.map +1 -0
  82. package/components/IconPicker/defaultIcon.d.ts +6 -0
  83. package/components/IconPicker/defaultIcon.js +14 -0
  84. package/components/IconPicker/defaultIcon.js.map +1 -0
  85. package/components/IconPicker/index.d.ts +7 -0
  86. package/components/IconPicker/index.js +49 -0
  87. package/components/IconPicker/index.js.map +1 -0
  88. package/components/IconPicker/plugins/customPlugin.d.ts +2 -0
  89. package/components/IconPicker/plugins/customPlugin.js +157 -0
  90. package/components/IconPicker/plugins/customPlugin.js.map +1 -0
  91. package/components/IconPicker/plugins/emojisPlugin.d.ts +2 -0
  92. package/components/IconPicker/plugins/emojisPlugin.js +164 -0
  93. package/components/IconPicker/plugins/emojisPlugin.js.map +1 -0
  94. package/components/IconPicker/plugins/graphql.d.ts +20 -0
  95. package/components/IconPicker/plugins/graphql.js +18 -0
  96. package/components/IconPicker/plugins/graphql.js.map +1 -0
  97. package/components/IconPicker/plugins/iconsPlugin.d.ts +2 -0
  98. package/components/IconPicker/plugins/iconsPlugin.js +146 -0
  99. package/components/IconPicker/plugins/iconsPlugin.js.map +1 -0
  100. package/components/IconPicker/types.d.ts +22 -0
  101. package/components/IconPicker/types.js +15 -0
  102. package/components/IconPicker/types.js.map +1 -0
  103. package/components/MultiImageUpload.js.map +1 -1
  104. package/components/OverlayLayout/OverlayLayout.js.map +1 -1
  105. package/components/RichTextEditor/tools/header/index.js.map +1 -1
  106. package/components/RichTextEditor/tools/image/index.js.map +1 -1
  107. package/components/RichTextEditor/tools/image/tunes.js.map +1 -1
  108. package/components/RichTextEditor/tools/image/ui.js.map +1 -1
  109. package/components/RichTextEditor/tools/paragraph/index.js.map +1 -1
  110. package/components/RichTextEditor/tools/textColor/index.js.map +1 -1
  111. package/components/SimpleUI/InputField.js.map +1 -1
  112. package/components/SingleImageUpload.js.map +1 -1
  113. package/hooks/useConfirmationDialog.js.map +1 -1
  114. package/hooks/useDialog.js.map +1 -1
  115. package/hooks/useIsMounted.js.map +1 -1
  116. package/hooks/useKeyHandler.js.map +1 -1
  117. package/hooks/useSnackbar.js.map +1 -1
  118. package/index.d.ts +1 -0
  119. package/index.js +12 -0
  120. package/index.js.map +1 -1
  121. package/package.json +35 -34
  122. package/plugins/MenuPlugin.js.map +1 -1
  123. package/plugins/PermissionRendererPlugin.js.map +1 -1
  124. package/plugins/globalSearch/SearchBar.js.map +1 -1
  125. package/plugins/globalSearch/SearchBarDropdown.js.map +1 -1
  126. package/plugins/globalSearch/index.js.map +1 -1
  127. package/types.d.ts +1 -0
  128. package/types.js +7 -0
  129. package/types.js.map +1 -1
  130. package/ui/elements/AccordionElement.js +3 -4
  131. package/ui/elements/AccordionElement.js.map +1 -1
  132. package/ui/elements/ButtonElement.js.map +1 -1
  133. package/ui/elements/ButtonGroupElement.js +2 -3
  134. package/ui/elements/ButtonGroupElement.js.map +1 -1
  135. package/ui/elements/LabelElement.js.map +1 -1
  136. package/ui/elements/NavigationMenuElement.js +2 -3
  137. package/ui/elements/NavigationMenuElement.js.map +1 -1
  138. package/ui/elements/PlaceholderElement.js.map +1 -1
  139. package/ui/elements/SmallButtonElement.js.map +1 -1
  140. package/ui/elements/TypographyElement.js +2 -3
  141. package/ui/elements/TypographyElement.js.map +1 -1
  142. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js +2 -3
  143. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js.map +1 -1
  144. package/ui/elements/form/DynamicFieldsetElement.js.map +1 -1
  145. package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js.map +1 -1
  146. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js.map +1 -1
  147. package/ui/elements/form/FileManagerElement.js.map +1 -1
  148. package/ui/elements/form/FormElement.js +3 -4
  149. package/ui/elements/form/FormElement.js.map +1 -1
  150. package/ui/elements/form/FormFieldElement.js +3 -3
  151. package/ui/elements/form/FormFieldElement.js.map +1 -1
  152. package/ui/elements/form/HiddenElement.js.map +1 -1
  153. package/ui/elements/form/InputElement.js.map +1 -1
  154. package/ui/elements/form/PasswordElement.js.map +1 -1
  155. package/ui/elements/form/SelectElement.js.map +1 -1
  156. package/ui/elements/form/TextareaElement.js.map +1 -1
  157. package/ui/views/AdminView/ContentElement.js.map +1 -1
  158. package/ui/views/AdminView/HeaderElement.js +1 -1
  159. package/ui/views/AdminView/HeaderElement.js.map +1 -1
  160. package/ui/views/AdminView/HeaderSectionCenterElement.js +2 -3
  161. package/ui/views/AdminView/HeaderSectionCenterElement.js.map +1 -1
  162. package/ui/views/AdminView/HeaderSectionLeftElement.js +2 -3
  163. package/ui/views/AdminView/HeaderSectionLeftElement.js.map +1 -1
  164. package/ui/views/AdminView/HeaderSectionRightElement.js +2 -3
  165. package/ui/views/AdminView/HeaderSectionRightElement.js.map +1 -1
  166. package/ui/views/FormView/FormContainerElement.js +2 -3
  167. package/ui/views/FormView/FormContainerElement.js.map +1 -1
  168. package/ui/views/FormView/FormFooterElement.js +2 -3
  169. package/ui/views/FormView/FormFooterElement.js.map +1 -1
  170. package/ui/views/FormView/FormHeaderElement.js +2 -3
  171. package/ui/views/FormView/FormHeaderElement.js.map +1 -1
  172. package/ui/views/FormView.js +2 -3
  173. package/ui/views/FormView.js.map +1 -1
  174. package/ui/views/OverlayView/ContentElement.js +2 -3
  175. package/ui/views/OverlayView/ContentElement.js.map +1 -1
  176. package/ui/views/OverlayView/HeaderElement.js.map +1 -1
  177. package/ui/views/OverlayView/HeaderTitleElement.js.map +1 -1
  178. package/ui/views/OverlayView.js +2 -3
  179. package/ui/views/OverlayView.js.map +1 -1
  180. package/ui/views/SplitView/SplitViewPanelElement.js +2 -3
  181. package/ui/views/SplitView/SplitViewPanelElement.js.map +1 -1
  182. package/ui/views/SplitView.js +2 -3
  183. package/ui/views/SplitView.js.map +1 -1
package/base/Admin.js CHANGED
@@ -18,6 +18,7 @@ var _Search = require("./ui/Search");
18
18
  var _UserMenu = require("./ui/UserMenu");
19
19
  var _Navigation = require("./ui/Navigation");
20
20
  var _DialogsContext = require("../components/Dialogs/DialogsContext");
21
+ var _config = require("../components/IconPicker/config");
21
22
  var Admin = exports.Admin = function Admin(_ref) {
22
23
  var children = _ref.children,
23
24
  createApolloClient = _ref.createApolloClient;
@@ -29,19 +30,9 @@ var Admin = exports.Admin = function Admin(_ref) {
29
30
  loader: /*#__PURE__*/_react.default.createElement(_Progress.CircularProgress, {
30
31
  label: "Loading..."
31
32
  })
32
- }, /*#__PURE__*/_react.default.createElement(_app.App, null, /*#__PURE__*/_react.default.createElement(_app.Provider, {
33
- hoc: TelemetryProvider
34
- }), /*#__PURE__*/_react.default.createElement(_app.Provider, {
35
- hoc: UiStateProvider
36
- }), /*#__PURE__*/_react.default.createElement(_app.Provider, {
37
- hoc: _Search.SearchProvider
38
- }), /*#__PURE__*/_react.default.createElement(_app.Provider, {
39
- hoc: _UserMenu.UserMenuProvider
40
- }), /*#__PURE__*/_react.default.createElement(_app.Provider, {
41
- hoc: _Navigation.NavigationProvider
42
- }), /*#__PURE__*/_react.default.createElement(_app.Provider, {
43
- hoc: DialogsProvider
44
- }), /*#__PURE__*/_react.default.createElement(_Base.Base, null), children))));
33
+ }, /*#__PURE__*/_react.default.createElement(_app.App, {
34
+ providers: [TelemetryProvider, UiStateProvider, _Search.SearchProvider, _UserMenu.UserMenuProvider, _Navigation.NavigationProvider, DialogsProvider, _config.IconPickerConfigProvider]
35
+ }, /*#__PURE__*/_react.default.createElement(_Base.Base, null), /*#__PURE__*/_react.default.createElement(_config.DefaultIcons, null), children))));
45
36
  };
46
37
 
47
38
  //# sourceMappingURL=Admin.js.map
package/base/Admin.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_app","_appTheme","_appWcp","_Progress","_ApolloProvider","_Base","_TelemetryProvider","_UiStateProvider","_Search","_UserMenu","_Navigation","_DialogsContext","Admin","exports","_ref","children","createApolloClient","ApolloProvider","createApolloProvider","TelemetryProvider","createTelemetryProvider","UiStateProvider","createUiStateProvider","DialogsProvider","createDialogsProvider","default","createElement","ThemeProvider","WcpProvider","loader","CircularProgress","label","App","Provider","hoc","SearchProvider","UserMenuProvider","NavigationProvider","Base"],"sources":["Admin.tsx"],"sourcesContent":["import React from \"react\";\nimport { App, Provider } from \"@webiny/app\";\nimport { ThemeProvider } from \"@webiny/app-theme\";\nimport { WcpProvider } from \"@webiny/app-wcp\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\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\";\nimport { createDialogsProvider } from \"~/components/Dialogs/DialogsContext\";\n\nexport interface AdminProps {\n createApolloClient: ApolloClientFactory;\n children?: React.ReactNode;\n}\n\nexport const Admin = ({ children, createApolloClient }: AdminProps) => {\n const ApolloProvider = createApolloProvider(createApolloClient);\n const TelemetryProvider = createTelemetryProvider();\n const UiStateProvider = createUiStateProvider();\n const DialogsProvider = createDialogsProvider();\n\n return (\n <ApolloProvider>\n <ThemeProvider>\n <WcpProvider loader={<CircularProgress label={\"Loading...\"} />}>\n <App>\n <Provider hoc={TelemetryProvider} />\n <Provider hoc={UiStateProvider} />\n <Provider hoc={SearchProvider} />\n <Provider hoc={UserMenuProvider} />\n <Provider hoc={NavigationProvider} />\n <Provider hoc={DialogsProvider} />\n <Base />\n {children}\n </App>\n </WcpProvider>\n </ThemeProvider>\n </ApolloProvider>\n );\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,IAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AACA,IAAAK,eAAA,GAAAL,OAAA;AACA,IAAAM,KAAA,GAAAN,OAAA;AACA,IAAAO,kBAAA,GAAAP,OAAA;AACA,IAAAQ,gBAAA,GAAAR,OAAA;AACA,IAAAS,OAAA,GAAAT,OAAA;AACA,IAAAU,SAAA,GAAAV,OAAA;AACA,IAAAW,WAAA,GAAAX,OAAA;AACA,IAAAY,eAAA,GAAAZ,OAAA;AAOO,IAAMa,KAAK,GAAAC,OAAA,CAAAD,KAAA,GAAG,SAARA,KAAKA,CAAAE,IAAA,EAAqD;EAAA,IAA/CC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAEC,kBAAkB,GAAAF,IAAA,CAAlBE,kBAAkB;EAChD,IAAMC,cAAc,GAAG,IAAAC,oCAAoB,EAACF,kBAAkB,CAAC;EAC/D,IAAMG,iBAAiB,GAAG,IAAAC,0CAAuB,EAAC,CAAC;EACnD,IAAMC,eAAe,GAAG,IAAAC,sCAAqB,EAAC,CAAC;EAC/C,IAAMC,eAAe,GAAG,IAAAC,qCAAqB,EAAC,CAAC;EAE/C,oBACI3B,MAAA,CAAA4B,OAAA,CAAAC,aAAA,CAACT,cAAc,qBACXpB,MAAA,CAAA4B,OAAA,CAAAC,aAAA,CAACzB,SAAA,CAAA0B,aAAa,qBACV9B,MAAA,CAAA4B,OAAA,CAAAC,aAAA,CAACxB,OAAA,CAAA0B,WAAW;IAACC,MAAM,eAAEhC,MAAA,CAAA4B,OAAA,CAAAC,aAAA,CAACvB,SAAA,CAAA2B,gBAAgB;MAACC,KAAK,EAAE;IAAa,CAAE;EAAE,gBAC3DlC,MAAA,CAAA4B,OAAA,CAAAC,aAAA,CAAC1B,IAAA,CAAAgC,GAAG,qBACAnC,MAAA,CAAA4B,OAAA,CAAAC,aAAA,CAAC1B,IAAA,CAAAiC,QAAQ;IAACC,GAAG,EAAEf;EAAkB,CAAE,CAAC,eACpCtB,MAAA,CAAA4B,OAAA,CAAAC,aAAA,CAAC1B,IAAA,CAAAiC,QAAQ;IAACC,GAAG,EAAEb;EAAgB,CAAE,CAAC,eAClCxB,MAAA,CAAA4B,OAAA,CAAAC,aAAA,CAAC1B,IAAA,CAAAiC,QAAQ;IAACC,GAAG,EAAEC;EAAe,CAAE,CAAC,eACjCtC,MAAA,CAAA4B,OAAA,CAAAC,aAAA,CAAC1B,IAAA,CAAAiC,QAAQ;IAACC,GAAG,EAAEE;EAAiB,CAAE,CAAC,eACnCvC,MAAA,CAAA4B,OAAA,CAAAC,aAAA,CAAC1B,IAAA,CAAAiC,QAAQ;IAACC,GAAG,EAAEG;EAAmB,CAAE,CAAC,eACrCxC,MAAA,CAAA4B,OAAA,CAAAC,aAAA,CAAC1B,IAAA,CAAAiC,QAAQ;IAACC,GAAG,EAAEX;EAAgB,CAAE,CAAC,eAClC1B,MAAA,CAAA4B,OAAA,CAAAC,aAAA,CAACrB,KAAA,CAAAiC,IAAI,MAAE,CAAC,EACPvB,QACA,CACI,CACF,CACH,CAAC;AAEzB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_app","_appTheme","_appWcp","_Progress","_ApolloProvider","_Base","_TelemetryProvider","_UiStateProvider","_Search","_UserMenu","_Navigation","_DialogsContext","_config","Admin","exports","_ref","children","createApolloClient","ApolloProvider","createApolloProvider","TelemetryProvider","createTelemetryProvider","UiStateProvider","createUiStateProvider","DialogsProvider","createDialogsProvider","default","createElement","ThemeProvider","WcpProvider","loader","CircularProgress","label","App","providers","SearchProvider","UserMenuProvider","NavigationProvider","IconPickerConfigProvider","Base","DefaultIcons"],"sources":["Admin.tsx"],"sourcesContent":["import React from \"react\";\nimport { App } from \"@webiny/app\";\nimport { ThemeProvider } from \"@webiny/app-theme\";\nimport { WcpProvider } from \"@webiny/app-wcp\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\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\";\nimport { createDialogsProvider } from \"~/components/Dialogs/DialogsContext\";\nimport { DefaultIcons, IconPickerConfigProvider } from \"~/components/IconPicker/config\";\n\nexport interface AdminProps {\n createApolloClient: ApolloClientFactory;\n children?: React.ReactNode;\n}\n\nexport const Admin = ({ children, createApolloClient }: AdminProps) => {\n const ApolloProvider = createApolloProvider(createApolloClient);\n const TelemetryProvider = createTelemetryProvider();\n const UiStateProvider = createUiStateProvider();\n const DialogsProvider = createDialogsProvider();\n\n return (\n <ApolloProvider>\n <ThemeProvider>\n <WcpProvider loader={<CircularProgress label={\"Loading...\"} />}>\n <App\n providers={[\n TelemetryProvider,\n UiStateProvider,\n SearchProvider,\n UserMenuProvider,\n NavigationProvider,\n DialogsProvider,\n IconPickerConfigProvider\n ]}\n >\n <Base />\n <DefaultIcons />\n {children}\n </App>\n </WcpProvider>\n </ThemeProvider>\n </ApolloProvider>\n );\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,IAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AACA,IAAAK,eAAA,GAAAL,OAAA;AACA,IAAAM,KAAA,GAAAN,OAAA;AACA,IAAAO,kBAAA,GAAAP,OAAA;AACA,IAAAQ,gBAAA,GAAAR,OAAA;AACA,IAAAS,OAAA,GAAAT,OAAA;AACA,IAAAU,SAAA,GAAAV,OAAA;AACA,IAAAW,WAAA,GAAAX,OAAA;AACA,IAAAY,eAAA,GAAAZ,OAAA;AACA,IAAAa,OAAA,GAAAb,OAAA;AAOO,IAAMc,KAAK,GAAAC,OAAA,CAAAD,KAAA,GAAG,SAARA,KAAKA,CAAAE,IAAA,EAAqD;EAAA,IAA/CC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAEC,kBAAkB,GAAAF,IAAA,CAAlBE,kBAAkB;EAChD,IAAMC,cAAc,GAAG,IAAAC,oCAAoB,EAACF,kBAAkB,CAAC;EAC/D,IAAMG,iBAAiB,GAAG,IAAAC,0CAAuB,EAAC,CAAC;EACnD,IAAMC,eAAe,GAAG,IAAAC,sCAAqB,EAAC,CAAC;EAC/C,IAAMC,eAAe,GAAG,IAAAC,qCAAqB,EAAC,CAAC;EAE/C,oBACI5B,MAAA,CAAA6B,OAAA,CAAAC,aAAA,CAACT,cAAc,qBACXrB,MAAA,CAAA6B,OAAA,CAAAC,aAAA,CAAC1B,SAAA,CAAA2B,aAAa,qBACV/B,MAAA,CAAA6B,OAAA,CAAAC,aAAA,CAACzB,OAAA,CAAA2B,WAAW;IAACC,MAAM,eAAEjC,MAAA,CAAA6B,OAAA,CAAAC,aAAA,CAACxB,SAAA,CAAA4B,gBAAgB;MAACC,KAAK,EAAE;IAAa,CAAE;EAAE,gBAC3DnC,MAAA,CAAA6B,OAAA,CAAAC,aAAA,CAAC3B,IAAA,CAAAiC,GAAG;IACAC,SAAS,EAAE,CACPd,iBAAiB,EACjBE,eAAe,EACfa,sBAAc,EACdC,0BAAgB,EAChBC,8BAAkB,EAClBb,eAAe,EACfc,gCAAwB;EAC1B,gBAEFzC,MAAA,CAAA6B,OAAA,CAAAC,aAAA,CAACtB,KAAA,CAAAkC,IAAI,MAAE,CAAC,eACR1C,MAAA,CAAA6B,OAAA,CAAAC,aAAA,CAACf,OAAA,CAAA4B,YAAY,MAAE,CAAC,EACfxB,QACA,CACI,CACF,CACH,CAAC;AAEzB,CAAC","ignoreList":[]}
@@ -1,7 +1 @@
1
- import React from "react";
2
- import { ComponentWithChildren } from "../../types";
3
- interface TelemetryProviderProps {
4
- children: React.ReactNode;
5
- }
6
- export declare const createTelemetryProvider: () => (Component: ComponentWithChildren) => ({ children }: TelemetryProviderProps) => React.JSX.Element;
7
- export {};
1
+ export declare const createTelemetryProvider: () => import("@webiny/app").Decorator<import("@webiny/app").GenericComponent<import("@webiny/app").ChildrenProps>>;
@@ -7,9 +7,10 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.createTelemetryProvider = void 0;
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
  var _react2 = require("@webiny/telemetry/react");
10
+ var _app = require("@webiny/app");
10
11
  var eventSent = false;
11
12
  var createTelemetryProvider = exports.createTelemetryProvider = function createTelemetryProvider() {
12
- return function (Component) {
13
+ return (0, _app.createProvider)(function (Component) {
13
14
  return function TelemetryProvider(_ref) {
14
15
  var children = _ref.children;
15
16
  (0, _react.useEffect)(function () {
@@ -21,7 +22,7 @@ var createTelemetryProvider = exports.createTelemetryProvider = function createT
21
22
  }, []);
22
23
  return /*#__PURE__*/_react.default.createElement(Component, null, children);
23
24
  };
24
- };
25
+ });
25
26
  };
26
27
 
27
28
  //# sourceMappingURL=TelemetryProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_react2","eventSent","createTelemetryProvider","exports","Component","TelemetryProvider","_ref","children","useEffect","sendEvent","default","createElement"],"sources":["TelemetryProvider.tsx"],"sourcesContent":["import React, { useEffect } from \"react\";\nimport { sendEvent } from \"@webiny/telemetry/react\";\nimport { ComponentWithChildren } from \"~/types\";\n\nlet eventSent = false;\n\ninterface TelemetryProviderProps {\n children: React.ReactNode;\n}\n\nexport const createTelemetryProvider = () => (Component: ComponentWithChildren) => {\n return function TelemetryProvider({ children }: TelemetryProviderProps) {\n useEffect(() => {\n if (eventSent) {\n return;\n }\n\n eventSent = true;\n\n sendEvent(\"admin-app-start\");\n }, []);\n\n return <Component>{children}</Component>;\n };\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAGA,IAAIE,SAAS,GAAG,KAAK;AAMd,IAAMC,uBAAuB,GAAAC,OAAA,CAAAD,uBAAA,GAAG,SAA1BA,uBAAuBA,CAAA;EAAA,OAAS,UAACE,SAAgC,EAAK;IAC/E,OAAO,SAASC,iBAAiBA,CAAAC,IAAA,EAAuC;MAAA,IAApCC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;MACxC,IAAAC,gBAAS,EAAC,YAAM;QACZ,IAAIP,SAAS,EAAE;UACX;QACJ;QAEAA,SAAS,GAAG,IAAI;QAEhB,IAAAQ,iBAAS,EAAC,iBAAiB,CAAC;MAChC,CAAC,EAAE,EAAE,CAAC;MAEN,oBAAOZ,MAAA,CAAAa,OAAA,CAAAC,aAAA,CAACP,SAAS,QAAEG,QAAoB,CAAC;IAC5C,CAAC;EACL,CAAC;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_react2","_app","eventSent","createTelemetryProvider","exports","createProvider","Component","TelemetryProvider","_ref","children","useEffect","sendEvent","default","createElement"],"sources":["TelemetryProvider.tsx"],"sourcesContent":["import React, { useEffect } from \"react\";\nimport { sendEvent } from \"@webiny/telemetry/react\";\nimport { createProvider } from \"@webiny/app\";\n\nlet eventSent = false;\n\ninterface TelemetryProviderProps {\n children: React.ReactNode;\n}\n\nexport const createTelemetryProvider = () => {\n return createProvider(Component => {\n return function TelemetryProvider({ children }: TelemetryProviderProps) {\n useEffect(() => {\n if (eventSent) {\n return;\n }\n\n eventSent = true;\n\n sendEvent(\"admin-app-start\");\n }, []);\n\n return <Component>{children}</Component>;\n };\n });\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,IAAA,GAAAF,OAAA;AAEA,IAAIG,SAAS,GAAG,KAAK;AAMd,IAAMC,uBAAuB,GAAAC,OAAA,CAAAD,uBAAA,GAAG,SAA1BA,uBAAuBA,CAAA,EAAS;EACzC,OAAO,IAAAE,mBAAc,EAAC,UAAAC,SAAS,EAAI;IAC/B,OAAO,SAASC,iBAAiBA,CAAAC,IAAA,EAAuC;MAAA,IAApCC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;MACxC,IAAAC,gBAAS,EAAC,YAAM;QACZ,IAAIR,SAAS,EAAE;UACX;QACJ;QAEAA,SAAS,GAAG,IAAI;QAEhB,IAAAS,iBAAS,EAAC,iBAAiB,CAAC;MAChC,CAAC,EAAE,EAAE,CAAC;MAEN,oBAAOd,MAAA,CAAAe,OAAA,CAAAC,aAAA,CAACP,SAAS,QAAEG,QAAoB,CAAC;IAC5C,CAAC;EACL,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
@@ -1,7 +1 @@
1
- import React from "react";
2
- import { ComponentWithChildren } from "../../types";
3
- interface UiStateProviderProps {
4
- children: React.ReactNode;
5
- }
6
- export declare const createUiStateProvider: () => (Component: ComponentWithChildren) => ({ children }: UiStateProviderProps) => React.JSX.Element;
7
- export {};
1
+ export declare const createUiStateProvider: () => import("@webiny/app").Decorator<import("@webiny/app").GenericComponent<import("@webiny/app").ChildrenProps>>;
@@ -7,13 +7,14 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.createUiStateProvider = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _Ui = require("@webiny/app/contexts/Ui");
10
+ var _app = require("@webiny/app");
10
11
  var createUiStateProvider = exports.createUiStateProvider = function createUiStateProvider() {
11
- return function (Component) {
12
+ return (0, _app.createProvider)(function (Component) {
12
13
  return function UiStateProvider(_ref) {
13
14
  var children = _ref.children;
14
15
  return /*#__PURE__*/_react.default.createElement(_Ui.UiProvider, null, /*#__PURE__*/_react.default.createElement(Component, null, children));
15
16
  };
16
- };
17
+ });
17
18
  };
18
19
 
19
20
  //# sourceMappingURL=UiStateProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_Ui","createUiStateProvider","exports","Component","UiStateProvider","_ref","children","default","createElement","UiProvider"],"sources":["UiStateProvider.tsx"],"sourcesContent":["import React from \"react\";\nimport { UiProvider } from \"@webiny/app/contexts/Ui\";\nimport { ComponentWithChildren } from \"~/types\";\n\ninterface UiStateProviderProps {\n children: React.ReactNode;\n}\n\nexport const createUiStateProvider = () => (Component: ComponentWithChildren) => {\n return function UiStateProvider({ children }: UiStateProviderProps) {\n return (\n <UiProvider>\n <Component>{children}</Component>\n </UiProvider>\n );\n };\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,GAAA,GAAAD,OAAA;AAOO,IAAME,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAG,SAAxBA,qBAAqBA,CAAA;EAAA,OAAS,UAACE,SAAgC,EAAK;IAC7E,OAAO,SAASC,eAAeA,CAAAC,IAAA,EAAqC;MAAA,IAAlCC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;MACtC,oBACIT,MAAA,CAAAU,OAAA,CAAAC,aAAA,CAACR,GAAA,CAAAS,UAAU,qBACPZ,MAAA,CAAAU,OAAA,CAAAC,aAAA,CAACL,SAAS,QAAEG,QAAoB,CACxB,CAAC;IAErB,CAAC;EACL,CAAC;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_Ui","_app","createUiStateProvider","exports","createProvider","Component","UiStateProvider","_ref","children","default","createElement","UiProvider"],"sources":["UiStateProvider.tsx"],"sourcesContent":["import React from \"react\";\nimport { UiProvider } from \"@webiny/app/contexts/Ui\";\nimport { createProvider } from \"@webiny/app\";\n\ninterface UiStateProviderProps {\n children: React.ReactNode;\n}\n\nexport const createUiStateProvider = () => {\n return createProvider(Component => {\n return function UiStateProvider({ children }: UiStateProviderProps) {\n return (\n <UiProvider>\n <Component>{children}</Component>\n </UiProvider>\n );\n };\n });\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,GAAA,GAAAD,OAAA;AACA,IAAAE,IAAA,GAAAF,OAAA;AAMO,IAAMG,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAG,SAAxBA,qBAAqBA,CAAA,EAAS;EACvC,OAAO,IAAAE,mBAAc,EAAC,UAAAC,SAAS,EAAI;IAC/B,OAAO,SAASC,eAAeA,CAAAC,IAAA,EAAqC;MAAA,IAAlCC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;MACtC,oBACIX,MAAA,CAAAY,OAAA,CAAAC,aAAA,CAACV,GAAA,CAAAW,UAAU,qBACPd,MAAA,CAAAY,OAAA,CAAAC,aAAA,CAACL,SAAS,QAAEG,QAAoB,CACxB,CAAC;IAErB,CAAC;EACL,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","ViewCompositionContext","createContext","getViewElement","setViewElement","displayName","ViewCompositionProvider","_ref","children","_useState","useState","_useState2","_slicedToArray2","default","state","setState","context","useMemo","view","name","setter","existing","_objectSpread4","_defineProperty2","createElement","Provider","value","useViewComposition","useContext","createViewCompositionProvider","exports","Component","ViewCompositionProviderHOC","_ref2"],"sources":["ViewCompositionProvider.tsx"],"sourcesContent":["import React, { createContext, useContext, useMemo, useState } from \"react\";\nimport { ComponentWithChildren } from \"~/types\";\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}\ninterface ViewCompositionProviderProps {\n children: React.ReactNode;\n}\nconst ViewCompositionProvider = ({ children }: ViewCompositionProviderProps) => {\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\ninterface ViewCompositionProviderHOCProps {\n children: React.ReactNode;\n}\n\nexport const createViewCompositionProvider = () => (Component: ComponentWithChildren) => {\n return function ViewCompositionProviderHOC({ children }: ViewCompositionProviderHOCProps) {\n return (\n <ViewCompositionProvider>\n <Component>{children}</Component>\n </ViewCompositionProvider>\n );\n };\n};\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAmBA,IAAMC,sBAAsB,gBAAG,IAAAC,oBAAa,EAAyB;EACjEC,cAAc,EAAE,SAAAA,eAAA,EAAM;IAClB,OAAO,IAAI;EACf,CAAC;EACDC,cAAc,EAAE,SAAAA,eAAA,EAAM;IAClB,OAAO,KAAK,CAAC;EACjB;AACJ,CAAC,CAAC;AACFH,sBAAsB,CAACI,WAAW,GAAG,wBAAwB;AAQ7D,IAAMC,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAAC,IAAA,EAAmD;EAAA,IAA7CC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;EACvC,IAAAC,SAAA,GAA0B,IAAAC,eAAQ,EAA+B,CAAC,CAAC,CAAC;IAAAC,UAAA,OAAAC,eAAA,CAAAC,OAAA,EAAAJ,SAAA;IAA7DK,KAAK,GAAAH,UAAA;IAAEI,QAAQ,GAAAJ,UAAA;EAEtB,IAAMK,OAAO,GAAG,IAAAC,cAAO,EACnB;IAAA,OAAO;MACHd,cAAc,WAAAA,eAACe,IAAY,EAAEC,IAAY,EAAe;QACpD,OAAOL,KAAK,CAACI,IAAI,CAAC,IAAIJ,KAAK,CAACI,IAAI,CAAC,CAACC,IAAI,CAAC;MAC3C,CAAC;MACDf,cAAc,WAAAA,eAACc,IAAY,EAAEC,IAAY,EAAEC,MAAqB,EAAE;QAC9DL,QAAQ,CAAC,UAAAD,KAAK,EAAI;UACd,IAAMO,QAAQ,GAAGP,KAAK,CAACI,IAAI,CAAC,IAAIJ,KAAK,CAACI,IAAI,CAAC,CAACC,IAAI,CAAC;UACjD,WAAAG,cAAA,CAAAT,OAAA,MAAAS,cAAA,CAAAT,OAAA,MACOC,KAAK,WAAAS,gBAAA,CAAAV,OAAA,MACPK,IAAI,MAAAI,cAAA,CAAAT,OAAA,MAAAS,cAAA,CAAAT,OAAA,MACEC,KAAK,CAACI,IAAI,CAAC,WAAAK,gBAAA,CAAAV,OAAA,MACbM,IAAI,EAAGC,MAAM,CAACC,QAAQ,CAAC;QAGpC,CAAC,CAAC;MACN;IACJ,CAAC;EAAA,CAAC,EACF,CAACP,KAAK,CACV,CAAC;EAED,oBACIhB,MAAA,CAAAe,OAAA,CAAAW,aAAA,CAACvB,sBAAsB,CAACwB,QAAQ;IAACC,KAAK,EAAEV;EAAQ,GAC3CR,QAC4B,CAAC;AAE1C,CAAC;AAEM,SAASmB,kBAAkBA,CAAA,EAAG;EACjC,OAAO,IAAAC,iBAAU,EAAC3B,sBAAsB,CAAC;AAC7C;AAMO,IAAM4B,6BAA6B,GAAAC,OAAA,CAAAD,6BAAA,GAAG,SAAhCA,6BAA6BA,CAAA;EAAA,OAAS,UAACE,SAAgC,EAAK;IACrF,OAAO,SAASC,0BAA0BA,CAAAC,KAAA,EAAgD;MAAA,IAA7CzB,QAAQ,GAAAyB,KAAA,CAARzB,QAAQ;MACjD,oBACIV,MAAA,CAAAe,OAAA,CAAAW,aAAA,CAAClB,uBAAuB,qBACpBR,MAAA,CAAAe,OAAA,CAAAW,aAAA,CAACO,SAAS,QAAEvB,QAAoB,CACX,CAAC;IAElC,CAAC;EACL,CAAC;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","ViewCompositionContext","createContext","getViewElement","setViewElement","displayName","ViewCompositionProvider","_ref","children","_useState","useState","_useState2","_slicedToArray2","default","state","setState","context","useMemo","view","name","setter","existing","_objectSpread4","_defineProperty2","createElement","Provider","value","useViewComposition","useContext","createViewCompositionProvider","exports","Component","ViewCompositionProviderHOC","_ref2"],"sources":["ViewCompositionProvider.tsx"],"sourcesContent":["import React, { createContext, useContext, useMemo, useState } from \"react\";\nimport { ComponentWithChildren } from \"~/types\";\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}\ninterface ViewCompositionProviderProps {\n children: React.ReactNode;\n}\nconst ViewCompositionProvider = ({ children }: ViewCompositionProviderProps) => {\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\ninterface ViewCompositionProviderHOCProps {\n children: React.ReactNode;\n}\n\nexport const createViewCompositionProvider = () => (Component: ComponentWithChildren) => {\n return function ViewCompositionProviderHOC({ children }: ViewCompositionProviderHOCProps) {\n return (\n <ViewCompositionProvider>\n <Component>{children}</Component>\n </ViewCompositionProvider>\n );\n };\n};\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAmBA,IAAMC,sBAAsB,gBAAG,IAAAC,oBAAa,EAAyB;EACjEC,cAAc,EAAE,SAAhBA,cAAcA,CAAA,EAAQ;IAClB,OAAO,IAAI;EACf,CAAC;EACDC,cAAc,EAAE,SAAhBA,cAAcA,CAAA,EAAQ;IAClB,OAAO,KAAK,CAAC;EACjB;AACJ,CAAC,CAAC;AACFH,sBAAsB,CAACI,WAAW,GAAG,wBAAwB;AAQ7D,IAAMC,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAAC,IAAA,EAAmD;EAAA,IAA7CC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;EACvC,IAAAC,SAAA,GAA0B,IAAAC,eAAQ,EAA+B,CAAC,CAAC,CAAC;IAAAC,UAAA,OAAAC,eAAA,CAAAC,OAAA,EAAAJ,SAAA;IAA7DK,KAAK,GAAAH,UAAA;IAAEI,QAAQ,GAAAJ,UAAA;EAEtB,IAAMK,OAAO,GAAG,IAAAC,cAAO,EACnB;IAAA,OAAO;MACHd,cAAc,WAAdA,cAAcA,CAACe,IAAY,EAAEC,IAAY,EAAe;QACpD,OAAOL,KAAK,CAACI,IAAI,CAAC,IAAIJ,KAAK,CAACI,IAAI,CAAC,CAACC,IAAI,CAAC;MAC3C,CAAC;MACDf,cAAc,WAAdA,cAAcA,CAACc,IAAY,EAAEC,IAAY,EAAEC,MAAqB,EAAE;QAC9DL,QAAQ,CAAC,UAAAD,KAAK,EAAI;UACd,IAAMO,QAAQ,GAAGP,KAAK,CAACI,IAAI,CAAC,IAAIJ,KAAK,CAACI,IAAI,CAAC,CAACC,IAAI,CAAC;UACjD,WAAAG,cAAA,CAAAT,OAAA,MAAAS,cAAA,CAAAT,OAAA,MACOC,KAAK,WAAAS,gBAAA,CAAAV,OAAA,MACPK,IAAI,MAAAI,cAAA,CAAAT,OAAA,MAAAS,cAAA,CAAAT,OAAA,MACEC,KAAK,CAACI,IAAI,CAAC,WAAAK,gBAAA,CAAAV,OAAA,MACbM,IAAI,EAAGC,MAAM,CAACC,QAAQ,CAAC;QAGpC,CAAC,CAAC;MACN;IACJ,CAAC;EAAA,CAAC,EACF,CAACP,KAAK,CACV,CAAC;EAED,oBACIhB,MAAA,CAAAe,OAAA,CAAAW,aAAA,CAACvB,sBAAsB,CAACwB,QAAQ;IAACC,KAAK,EAAEV;EAAQ,GAC3CR,QAC4B,CAAC;AAE1C,CAAC;AAEM,SAASmB,kBAAkBA,CAAA,EAAG;EACjC,OAAO,IAAAC,iBAAU,EAAC3B,sBAAsB,CAAC;AAC7C;AAMO,IAAM4B,6BAA6B,GAAAC,OAAA,CAAAD,6BAAA,GAAG,SAAhCA,6BAA6BA,CAAA;EAAA,OAAS,UAACE,SAAgC,EAAK;IACrF,OAAO,SAASC,0BAA0BA,CAAAC,KAAA,EAAgD;MAAA,IAA7CzB,QAAQ,GAAAyB,KAAA,CAARzB,QAAQ;MACjD,oBACIV,MAAA,CAAAe,OAAA,CAAAW,aAAA,CAAClB,uBAAuB,qBACpBR,MAAA,CAAAe,OAAA,CAAAW,aAAA,CAACO,SAAS,QAAEvB,QAAoB,CACX,CAAC;IAElC,CAAC;EACL,CAAC;AAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactDom","_interopRequireDefault","_reactComposition","_excluded","getPortalTarget","target","window","document","getElementById","createElement","setAttribute","body","appendChild","FileManagerRenderer","exports","makeDecoratable","createVoidComponent","FileManager","_ref","children","render","onChange","rest","_objectWithoutProperties2","default","containerRef","useRef","_useState","useState","show","_useState2","_slicedToArray2","setShow","onChangeRef","useEffect","current","showFileManager","useCallback","Fragment","ReactDOM","createPortal","Object","assign","onClose"],"sources":["FileManager.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { createVoidComponent, makeDecoratable } from \"@webiny/react-composition\";\n\nexport interface FileManagerOnChange<T> {\n (value: T): void;\n}\n\n/**\n * Represents a file object managed by the File Manager.\n */\nexport interface FileManagerFileItem {\n id: string;\n src: string;\n meta?: Array<FileManagerFileItemMetaItem>;\n}\n\n/**\n * With this we allow developers to add any value to file's meta via component composition, thus the `value: any`.\n */\nexport interface FileManagerFileItemMetaItem {\n key: string;\n value: any;\n}\n\nexport type DeprecatedFileManagerRenderPropParams = {\n showFileManager: (\n onChange?: FileManagerOnChange<FileManagerFileItem | FileManagerFileItem[]>\n ) => void;\n};\n\nexport type FileManagerRenderPropParams<TValue> = {\n showFileManager: (onChange?: FileManagerOnChange<TValue>) => void;\n};\n\ninterface SingleFileRenderProp {\n (params: FileManagerRenderPropParams<FileManagerFileItem>): React.ReactNode;\n}\n\ninterface MultiFileRenderProp {\n (params: FileManagerRenderPropParams<FileManagerFileItem[]>): React.ReactNode;\n}\n\nexport type MultipleProps =\n | {\n multiple?: never;\n multipleMaxCount?: never;\n multipleMaxSize?: never;\n onChange?: FileManagerOnChange<FileManagerFileItem>;\n render?: SingleFileRenderProp;\n }\n | {\n multiple: true;\n multipleMaxCount?: number;\n multipleMaxSize?: number | string;\n onChange?: FileManagerOnChange<FileManagerFileItem[]>;\n render?: MultiFileRenderProp;\n };\n\nexport type FileManagerProps = {\n accept?: string[];\n images?: boolean;\n maxSize?: number | string;\n /**\n * @deprecated This prop is no longer used. The file structure was reduced to a bare minimum so picking is no longer necessary.\n */\n onChangePick?: string[];\n onClose?: () => void;\n onUploadCompletion?: (files: FileManagerFileItem[]) => void;\n own?: boolean;\n scope?: string;\n tags?: string[];\n show?: boolean;\n /**\n * @deprecated This prop is no longer used. Use the `render` prop to get better TS autocomplete.\n */\n children?: (params: DeprecatedFileManagerRenderPropParams) => React.ReactNode;\n} & MultipleProps;\n\nfunction getPortalTarget() {\n let target = window.document.getElementById(\"file-manager-container\");\n if (!target) {\n target = document.createElement(\"div\");\n target.setAttribute(\"id\", \"file-manager-container\");\n document.body && document.body.appendChild(target);\n }\n return target;\n}\n\n// This jewel was taken from https://davidgomes.com/pick-omit-over-union-types-in-typescript/. Massive thanks, David!\ntype DistributiveOmit<T, K extends keyof T> = T extends unknown ? Omit<T, K> : never;\n\nexport type FileManagerRendererProps = DistributiveOmit<FileManagerProps, \"render\" | \"children\">;\n\nexport const FileManagerRenderer = makeDecoratable(\n \"FileManagerRenderer\",\n createVoidComponent<FileManagerRendererProps>()\n);\n\ntype ShowFileManagerProps =\n | FileManagerOnChange<FileManagerFileItem>\n | FileManagerOnChange<FileManagerFileItem[]>\n | undefined;\n\nexport const FileManager = ({ children, render, onChange, ...rest }: FileManagerProps) => {\n const containerRef = useRef<HTMLElement>(getPortalTarget());\n const [show, setShow] = useState(rest.show ?? false);\n const onChangeRef = useRef(onChange);\n\n useEffect(() => {\n onChangeRef.current = onChange;\n }, [onChange]);\n\n const showFileManager = useCallback((onChange: ShowFileManagerProps) => {\n if (typeof onChange === \"function\") {\n onChangeRef.current = onChange;\n }\n setShow(true);\n }, []);\n\n return (\n <>\n {show &&\n ReactDOM.createPortal(\n /**\n * TODO @pavel\n */\n // @ts-expect-error\n <FileManagerRenderer\n onClose={() => setShow(false)}\n onChange={onChangeRef.current}\n {...rest}\n />,\n containerRef.current\n )}\n {children ? children({ showFileManager }) : render ? render({ showFileManager }) : null}\n </>\n );\n};\n"],"mappings":";;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AAAiF,IAAAI,SAAA;AAMjF;AACA;AACA;;AAOA;AACA;AACA;;AA4DA,SAASC,eAAeA,CAAA,EAAG;EACvB,IAAIC,MAAM,GAAGC,MAAM,CAACC,QAAQ,CAACC,cAAc,CAAC,wBAAwB,CAAC;EACrE,IAAI,CAACH,MAAM,EAAE;IACTA,MAAM,GAAGE,QAAQ,CAACE,aAAa,CAAC,KAAK,CAAC;IACtCJ,MAAM,CAACK,YAAY,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACnDH,QAAQ,CAACI,IAAI,IAAIJ,QAAQ,CAACI,IAAI,CAACC,WAAW,CAACP,MAAM,CAAC;EACtD;EACA,OAAOA,MAAM;AACjB;;AAEA;;AAKO,IAAMQ,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,GAAG,IAAAE,iCAAe,EAC9C,qBAAqB,EACrB,IAAAC,qCAAmB,EAA2B,CAClD,CAAC;AAOM,IAAMC,WAAW,GAAAH,OAAA,CAAAG,WAAA,GAAG,SAAdA,WAAWA,CAAAC,IAAA,EAAkE;EAAA,IAA5DC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAEC,MAAM,GAAAF,IAAA,CAANE,MAAM;IAAEC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IAAKC,IAAI,OAAAC,yBAAA,CAAAC,OAAA,EAAAN,IAAA,EAAAf,SAAA;EAC7D,IAAMsB,YAAY,GAAG,IAAAC,aAAM,EAActB,eAAe,CAAC,CAAC,CAAC;EAC3D,IAAAuB,SAAA,GAAwB,IAAAC,eAAQ,EAACN,IAAI,CAACO,IAAI,IAAI,KAAK,CAAC;IAAAC,UAAA,OAAAC,eAAA,CAAAP,OAAA,EAAAG,SAAA;IAA7CE,IAAI,GAAAC,UAAA;IAAEE,OAAO,GAAAF,UAAA;EACpB,IAAMG,WAAW,GAAG,IAAAP,aAAM,EAACL,QAAQ,CAAC;EAEpC,IAAAa,gBAAS,EAAC,YAAM;IACZD,WAAW,CAACE,OAAO,GAAGd,QAAQ;EAClC,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEd,IAAMe,eAAe,GAAG,IAAAC,kBAAW,EAAC,UAAChB,QAA8B,EAAK;IACpE,IAAI,OAAOA,QAAQ,KAAK,UAAU,EAAE;MAChCY,WAAW,CAACE,OAAO,GAAGd,QAAQ;IAClC;IACAW,OAAO,CAAC,IAAI,CAAC;EACjB,CAAC,EAAE,EAAE,CAAC;EAEN,oBACInC,MAAA,CAAA2B,OAAA,CAAAf,aAAA,CAAAZ,MAAA,CAAA2B,OAAA,CAAAc,QAAA,QACKT,IAAI,iBACDU,iBAAQ,CAACC,YAAY;EAAA;EACjB;AACpB;AACA;EACoB;EACA3C,MAAA,CAAA2B,OAAA,CAAAf,aAAA,CAACI,mBAAmB,EAAA4B,MAAA,CAAAC,MAAA;IAChBC,OAAO,EAAE,SAAAA,QAAA;MAAA,OAAMX,OAAO,CAAC,KAAK,CAAC;IAAA,CAAC;IAC9BX,QAAQ,EAAEY,WAAW,CAACE;EAAQ,GAC1Bb,IAAI,CACX,CAAC,EACFG,YAAY,CAACU,OACjB,CAAC,EACJhB,QAAQ,GAAGA,QAAQ,CAAC;IAAEiB,eAAe,EAAfA;EAAgB,CAAC,CAAC,GAAGhB,MAAM,GAAGA,MAAM,CAAC;IAAEgB,eAAe,EAAfA;EAAgB,CAAC,CAAC,GAAG,IACrF,CAAC;AAEX,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactDom","_interopRequireDefault","_reactComposition","_excluded","getPortalTarget","target","window","document","getElementById","createElement","setAttribute","body","appendChild","FileManagerRenderer","exports","makeDecoratable","createVoidComponent","FileManager","_ref","children","render","onChange","rest","_objectWithoutProperties2","default","containerRef","useRef","_useState","useState","show","_useState2","_slicedToArray2","setShow","onChangeRef","useEffect","current","showFileManager","useCallback","Fragment","ReactDOM","createPortal","Object","assign","onClose"],"sources":["FileManager.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { createVoidComponent, makeDecoratable } from \"@webiny/react-composition\";\n\nexport interface FileManagerOnChange<T> {\n (value: T): void;\n}\n\n/**\n * Represents a file object managed by the File Manager.\n */\nexport interface FileManagerFileItem {\n id: string;\n src: string;\n meta?: Array<FileManagerFileItemMetaItem>;\n}\n\n/**\n * With this we allow developers to add any value to file's meta via component composition, thus the `value: any`.\n */\nexport interface FileManagerFileItemMetaItem {\n key: string;\n value: any;\n}\n\nexport type DeprecatedFileManagerRenderPropParams = {\n showFileManager: (\n onChange?: FileManagerOnChange<FileManagerFileItem | FileManagerFileItem[]>\n ) => void;\n};\n\nexport type FileManagerRenderPropParams<TValue> = {\n showFileManager: (onChange?: FileManagerOnChange<TValue>) => void;\n};\n\ninterface SingleFileRenderProp {\n (params: FileManagerRenderPropParams<FileManagerFileItem>): React.ReactNode;\n}\n\ninterface MultiFileRenderProp {\n (params: FileManagerRenderPropParams<FileManagerFileItem[]>): React.ReactNode;\n}\n\nexport type MultipleProps =\n | {\n multiple?: never;\n multipleMaxCount?: never;\n multipleMaxSize?: never;\n onChange?: FileManagerOnChange<FileManagerFileItem>;\n render?: SingleFileRenderProp;\n }\n | {\n multiple: true;\n multipleMaxCount?: number;\n multipleMaxSize?: number | string;\n onChange?: FileManagerOnChange<FileManagerFileItem[]>;\n render?: MultiFileRenderProp;\n };\n\nexport type FileManagerProps = {\n accept?: string[];\n images?: boolean;\n maxSize?: number | string;\n /**\n * @deprecated This prop is no longer used. The file structure was reduced to a bare minimum so picking is no longer necessary.\n */\n onChangePick?: string[];\n onClose?: () => void;\n onUploadCompletion?: (files: FileManagerFileItem[]) => void;\n own?: boolean;\n scope?: string;\n tags?: string[];\n show?: boolean;\n /**\n * @deprecated This prop is no longer used. Use the `render` prop to get better TS autocomplete.\n */\n children?: (params: DeprecatedFileManagerRenderPropParams) => React.ReactNode;\n} & MultipleProps;\n\nfunction getPortalTarget() {\n let target = window.document.getElementById(\"file-manager-container\");\n if (!target) {\n target = document.createElement(\"div\");\n target.setAttribute(\"id\", \"file-manager-container\");\n document.body && document.body.appendChild(target);\n }\n return target;\n}\n\n// This jewel was taken from https://davidgomes.com/pick-omit-over-union-types-in-typescript/. Massive thanks, David!\ntype DistributiveOmit<T, K extends keyof T> = T extends unknown ? Omit<T, K> : never;\n\nexport type FileManagerRendererProps = DistributiveOmit<FileManagerProps, \"render\" | \"children\">;\n\nexport const FileManagerRenderer = makeDecoratable(\n \"FileManagerRenderer\",\n createVoidComponent<FileManagerRendererProps>()\n);\n\ntype ShowFileManagerProps =\n | FileManagerOnChange<FileManagerFileItem>\n | FileManagerOnChange<FileManagerFileItem[]>\n | undefined;\n\nexport const FileManager = ({ children, render, onChange, ...rest }: FileManagerProps) => {\n const containerRef = useRef<HTMLElement>(getPortalTarget());\n const [show, setShow] = useState(rest.show ?? false);\n const onChangeRef = useRef(onChange);\n\n useEffect(() => {\n onChangeRef.current = onChange;\n }, [onChange]);\n\n const showFileManager = useCallback((onChange: ShowFileManagerProps) => {\n if (typeof onChange === \"function\") {\n onChangeRef.current = onChange;\n }\n setShow(true);\n }, []);\n\n return (\n <>\n {show &&\n ReactDOM.createPortal(\n /**\n * TODO @pavel\n */\n // @ts-expect-error\n <FileManagerRenderer\n onClose={() => setShow(false)}\n onChange={onChangeRef.current}\n {...rest}\n />,\n containerRef.current\n )}\n {children ? children({ showFileManager }) : render ? render({ showFileManager }) : null}\n </>\n );\n};\n"],"mappings":";;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AAAiF,IAAAI,SAAA;AAMjF;AACA;AACA;;AAOA;AACA;AACA;;AA4DA,SAASC,eAAeA,CAAA,EAAG;EACvB,IAAIC,MAAM,GAAGC,MAAM,CAACC,QAAQ,CAACC,cAAc,CAAC,wBAAwB,CAAC;EACrE,IAAI,CAACH,MAAM,EAAE;IACTA,MAAM,GAAGE,QAAQ,CAACE,aAAa,CAAC,KAAK,CAAC;IACtCJ,MAAM,CAACK,YAAY,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACnDH,QAAQ,CAACI,IAAI,IAAIJ,QAAQ,CAACI,IAAI,CAACC,WAAW,CAACP,MAAM,CAAC;EACtD;EACA,OAAOA,MAAM;AACjB;;AAEA;;AAKO,IAAMQ,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,GAAG,IAAAE,iCAAe,EAC9C,qBAAqB,EACrB,IAAAC,qCAAmB,EAA2B,CAClD,CAAC;AAOM,IAAMC,WAAW,GAAAH,OAAA,CAAAG,WAAA,GAAG,SAAdA,WAAWA,CAAAC,IAAA,EAAkE;EAAA,IAA5DC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAEC,MAAM,GAAAF,IAAA,CAANE,MAAM;IAAEC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IAAKC,IAAI,OAAAC,yBAAA,CAAAC,OAAA,EAAAN,IAAA,EAAAf,SAAA;EAC7D,IAAMsB,YAAY,GAAG,IAAAC,aAAM,EAActB,eAAe,CAAC,CAAC,CAAC;EAC3D,IAAAuB,SAAA,GAAwB,IAAAC,eAAQ,EAACN,IAAI,CAACO,IAAI,IAAI,KAAK,CAAC;IAAAC,UAAA,OAAAC,eAAA,CAAAP,OAAA,EAAAG,SAAA;IAA7CE,IAAI,GAAAC,UAAA;IAAEE,OAAO,GAAAF,UAAA;EACpB,IAAMG,WAAW,GAAG,IAAAP,aAAM,EAACL,QAAQ,CAAC;EAEpC,IAAAa,gBAAS,EAAC,YAAM;IACZD,WAAW,CAACE,OAAO,GAAGd,QAAQ;EAClC,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEd,IAAMe,eAAe,GAAG,IAAAC,kBAAW,EAAC,UAAChB,QAA8B,EAAK;IACpE,IAAI,OAAOA,QAAQ,KAAK,UAAU,EAAE;MAChCY,WAAW,CAACE,OAAO,GAAGd,QAAQ;IAClC;IACAW,OAAO,CAAC,IAAI,CAAC;EACjB,CAAC,EAAE,EAAE,CAAC;EAEN,oBACInC,MAAA,CAAA2B,OAAA,CAAAf,aAAA,CAAAZ,MAAA,CAAA2B,OAAA,CAAAc,QAAA,QACKT,IAAI,iBACDU,iBAAQ,CAACC,YAAY;EAAA;EACjB;AACpB;AACA;EACoB;EACA3C,MAAA,CAAA2B,OAAA,CAAAf,aAAA,CAACI,mBAAmB,EAAA4B,MAAA,CAAAC,MAAA;IAChBC,OAAO,EAAE,SAATA,OAAOA,CAAA;MAAA,OAAQX,OAAO,CAAC,KAAK,CAAC;IAAA,CAAC;IAC9BX,QAAQ,EAAEY,WAAW,CAACE;EAAQ,GAC1Bb,IAAI,CACX,CAAC,EACFG,YAAY,CAACU,OACjB,CAAC,EACJhB,QAAQ,GAAGA,QAAQ,CAAC;IAAEiB,eAAe,EAAfA;EAAgB,CAAC,CAAC,GAAGhB,MAAM,GAAGA,MAAM,CAAC;IAAEgB,eAAe,EAAfA;EAAgB,CAAC,CAAC,GAAG,IACrF,CAAC;AAEX,CAAC","ignoreList":[]}
package/base/ui/Menu.js CHANGED
@@ -26,7 +26,7 @@ var createEmptyMenu = exports.createEmptyMenu = function createEmptyMenu(name) {
26
26
  };
27
27
  };
28
28
  var keys = ["label", "path", "icon", "onClick", "testId", "tags", "target", "rel", "element", "pin"];
29
- var mergeMenuItems = function mergeMenuItems(item1, item2) {
29
+ var _mergeMenuItems = function mergeMenuItems(item1, item2) {
30
30
  return (0, _objectSpread3.default)((0, _objectSpread3.default)((0, _objectSpread3.default)({}, item1), keys.reduce(function (map, key) {
31
31
  return (0, _objectSpread3.default)((0, _objectSpread3.default)({}, map), {}, (0, _defineProperty2.default)({}, key, item2[key] ?? item1[key]));
32
32
  }, {})), {}, {
@@ -35,7 +35,7 @@ var mergeMenuItems = function mergeMenuItems(item1, item2) {
35
35
  return i.name === menu.name;
36
36
  });
37
37
  if (index > -1) {
38
- acc[index] = mergeMenuItems(acc[index], menu);
38
+ acc[index] = _mergeMenuItems(acc[index], menu);
39
39
  } else {
40
40
  acc.push(menu);
41
41
  }
@@ -60,7 +60,7 @@ var AddMenu = exports.AddMenu = (0, _.makeDecoratable)("AddMenu", function (_ref
60
60
  children: []
61
61
  });
62
62
  }
63
- return mergeMenuItems(existing, props);
63
+ return _mergeMenuItems(existing, props);
64
64
  });
65
65
  } else {
66
66
  navigation.setMenu(props.name, function (existing) {
@@ -71,7 +71,7 @@ var AddMenu = exports.AddMenu = (0, _.makeDecoratable)("AddMenu", function (_ref
71
71
  if (!existing) {
72
72
  return props;
73
73
  }
74
- return mergeMenuItems(existing, props);
74
+ return _mergeMenuItems(existing, props);
75
75
  });
76
76
  }
77
77
  return function () {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_","_excluded","MenuContext","createContext","undefined","displayName","useMenu","useContext","createEmptyMenu","exports","name","tags","children","keys","mergeMenuItems","item1","item2","_objectSpread3","default","reduce","map","key","_defineProperty2","acc","menu","index","findIndex","i","push","_toConsumableArray2","AddMenu","makeDecoratable","_ref","props","_objectWithoutProperties2","navigation","useNavigation","useEffect","setMenu","existing","removeMenu","context","menuItem","childIndex","ch","concat","slice","updater","subItems","filter","Boolean","createElement","Provider","value"],"sources":["Menu.tsx"],"sourcesContent":["import React, { createContext, useContext, useEffect } from \"react\";\nimport { makeDecoratable, 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 pin?: \"first\" | \"last\";\n}\n\nexport interface MenuData extends MenuProps {\n children: MenuData[];\n}\n\nexport interface AddMenuProps extends MenuProps {\n children?: React.ReactNode;\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 = makeDecoratable(\"AddMenu\", ({ children, ...props }: AddMenuProps) => {\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"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_","_excluded","MenuContext","createContext","undefined","displayName","useMenu","useContext","createEmptyMenu","exports","name","tags","children","keys","mergeMenuItems","item1","item2","_objectSpread3","default","reduce","map","key","_defineProperty2","acc","menu","index","findIndex","i","push","_toConsumableArray2","AddMenu","makeDecoratable","_ref","props","_objectWithoutProperties2","navigation","useNavigation","useEffect","setMenu","existing","removeMenu","context","menuItem","childIndex","ch","concat","slice","updater","subItems","filter","Boolean","createElement","Provider","value"],"sources":["Menu.tsx"],"sourcesContent":["import React, { createContext, useContext, useEffect } from \"react\";\nimport { makeDecoratable, 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 pin?: \"first\" | \"last\";\n}\n\nexport interface MenuData extends MenuProps {\n children: MenuData[];\n}\n\nexport interface AddMenuProps extends MenuProps {\n children?: React.ReactNode;\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 = makeDecoratable(\"AddMenu\", ({ children, ...props }: AddMenuProps) => {\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"],"mappings":"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","ignoreList":[]}
@@ -1,16 +1,12 @@
1
1
  import React from "react";
2
2
  import { MenuData, MenuUpdater } from "../../index";
3
- import { ComponentWithChildren } from "../../types";
4
3
  export interface NavigationContext {
5
4
  menuItems: MenuData[];
6
5
  setMenu(id: string, update: MenuUpdater): void;
7
6
  removeMenu(id: string): void;
8
7
  }
9
8
  export declare function useNavigation(): NavigationContext;
10
- interface NavigationProviderProps {
11
- children: React.ReactNode;
12
- }
13
- export declare const NavigationProvider: (Component: ComponentWithChildren) => ({ children }: NavigationProviderProps) => React.JSX.Element;
9
+ export declare const NavigationProvider: import("@webiny/app").Decorator<import("@webiny/app").GenericComponent<import("@webiny/app").ChildrenProps>>;
14
10
  export declare const Navigation: (() => React.JSX.Element) & {
15
11
  original: () => React.JSX.Element;
16
12
  originalName: string;
@@ -66,7 +66,7 @@ var LegacyMenuPlugins = function LegacyMenuPlugins() {
66
66
  }, []);
67
67
  return menus;
68
68
  };
69
- var NavigationProvider = exports.NavigationProvider = function NavigationProvider(Component) {
69
+ var NavigationProvider = exports.NavigationProvider = (0, _app.createProvider)(function (Component) {
70
70
  return function NavigationProvider(_ref) {
71
71
  var children = _ref.children;
72
72
  var _useState3 = (0, _react.useState)([]),
@@ -110,7 +110,7 @@ var NavigationProvider = exports.NavigationProvider = function NavigationProvide
110
110
  value: context
111
111
  }, /*#__PURE__*/_react.default.createElement(LegacyMenuPlugins, null), /*#__PURE__*/_react.default.createElement(Component, null, children));
112
112
  };
113
- };
113
+ });
114
114
  var Navigation = exports.Navigation = (0, _app.makeDecoratable)("Navigation", function () {
115
115
  return /*#__PURE__*/_react.default.createElement(_.Tags, {
116
116
  tags: {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_utils","_app","_","_plugins","NavigationContext","createContext","menuItems","setMenu","removeMenu","displayName","useNavigation","useContext","LegacyMenu","props","default","createElement","AddMenu","Object","assign","name","generateId","label","children","LegacyMenuPlugins","_useState","useState","_useState2","_slicedToArray2","menus","setMenus","useEffect","menuPlugins","plugins","byType","menuElements","map","plugin","Plugins","key","render","Menu","Item","Section","NavigationProvider","exports","Component","_ref","_useState3","_useState4","setState","id","updater","state","index","findIndex","m","newMenu","createEmptyMenu","_toConsumableArray2","concat","slice","useCallback","context","useMemo","Provider","value","Navigation","makeDecoratable","Tags","tags","location","NavigationRenderer","createVoidComponent","MenuItemContext","React","menuItem","undefined","depth","useMenuItem","MenuItems","_ref2","Fragment","MenuItem","MenuItemRenderer"],"sources":["Navigation.tsx"],"sourcesContent":["import React, {\n createContext,\n Fragment,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState\n} from \"react\";\nimport { generateId } from \"@webiny/utils\";\nimport { createVoidComponent, makeDecoratable, Plugins } from \"@webiny/app\";\nimport { AddMenu as Menu, createEmptyMenu, MenuData, MenuProps, MenuUpdater, Tags } from \"~/index\";\nimport { plugins } from \"@webiny/plugins\";\nimport { AdminMenuPlugin } from \"~/types\";\nimport { ItemProps, SectionProps } from \"~/plugins/MenuPlugin\";\nimport { ComponentWithChildren } from \"~/types\";\n\nexport interface NavigationContext {\n menuItems: MenuData[];\n setMenu(id: string, update: MenuUpdater): void;\n removeMenu(id: string): void;\n}\n\nconst NavigationContext = createContext<NavigationContext>({\n menuItems: [],\n setMenu: () => {\n return void 0;\n },\n removeMenu: () => {\n return void 0;\n }\n});\nNavigationContext.displayName = \"NavigationContext\";\n\nexport function useNavigation() {\n return useContext(NavigationContext);\n}\n\ntype LegacyMenuProps = MenuProps | SectionProps | ItemProps;\n\n// IMPORTANT! The following component is for BACKWARDS COMPATIBILITY purposes only!\n// It is not a public component, and is not even exported from this file. We need it to take care of\n// scaffolded plugins in users' projects, as well as our own applications (Page Builder and Form Builder).\nconst LegacyMenu = (props: LegacyMenuProps & { children: React.ReactNode }) => {\n return (\n <Menu\n {...props}\n name={(props as MenuProps).name || generateId()}\n label={props.label as string}\n >\n {props.children}\n </Menu>\n );\n};\n\nconst LegacyMenuPlugins = () => {\n // IMPORTANT! The following piece of code is for BACKWARDS COMPATIBILITY purposes only!\n const [menus, setMenus] = useState<JSX.Element | null>(null);\n\n useEffect(() => {\n const menuPlugins = plugins.byType<AdminMenuPlugin>(\"admin-menu\");\n if (!menuPlugins) {\n return;\n }\n\n const menuElements = menuPlugins.map(plugin => {\n // TODO @ts-refactor figure out correct types or write a comment to leave as React.FC\n return (\n <Plugins key={plugin.name}>\n {plugin.render({\n Menu: LegacyMenu as React.FC,\n Item: LegacyMenu as React.FC,\n Section: LegacyMenu as React.FC\n })}\n </Plugins>\n );\n });\n /**\n * TODO Figure out correct types for the menus.\n */\n // @ts-expect-error\n setMenus(menuElements);\n }, []);\n\n return menus;\n};\n\ninterface NavigationProviderProps {\n children: React.ReactNode;\n}\n\nexport const NavigationProvider = (Component: ComponentWithChildren) => {\n return function NavigationProvider({ children }: NavigationProviderProps) {\n const [menuItems, setState] = useState<MenuData[]>([]);\n\n const setMenu = (id: string, updater: MenuUpdater): void => {\n setState(state => {\n const index = state.findIndex(m => m.name === id);\n\n const newMenu = index > -1 ? updater(state[index]) : updater(createEmptyMenu(id));\n if (!newMenu) {\n return [...state];\n }\n if (!newMenu.children) {\n newMenu.children = [];\n }\n\n return index > -1\n ? [...state.slice(0, index), newMenu, ...state.slice(index + 1)]\n : [...state, newMenu];\n });\n };\n const removeMenu = useCallback(\n (id: string) => {\n setState(state => {\n const index = state.findIndex(m => m.name === id);\n\n if (index < 0) {\n return state;\n }\n\n return [...state.slice(0, index), ...state.slice(index + 1)];\n });\n },\n [setState]\n );\n\n const context = useMemo<NavigationContext>(\n () => ({\n menuItems,\n setMenu,\n removeMenu\n }),\n [menuItems, setMenu, removeMenu]\n );\n\n return (\n <NavigationContext.Provider value={context}>\n <LegacyMenuPlugins />\n <Component>{children}</Component>\n </NavigationContext.Provider>\n );\n };\n};\n\nexport const Navigation = makeDecoratable(\"Navigation\", () => {\n return (\n <Tags tags={{ location: \"navigation\" }}>\n <NavigationRenderer />\n </Tags>\n );\n});\n\nexport const NavigationRenderer = makeDecoratable(\"NavigationRenderer\", createVoidComponent());\n\ninterface MenuItemContext {\n menuItem?: MenuData;\n depth: number;\n}\n\nconst MenuItemContext = React.createContext<MenuItemContext>({\n menuItem: undefined,\n depth: -1\n});\nMenuItemContext.displayName = \"MenuItemContext\";\n\nexport function useMenuItem() {\n return React.useContext(MenuItemContext);\n}\n\nexport interface MenuItemsProps {\n menuItems: MenuData[];\n}\n\nexport const MenuItems = makeDecoratable(\"MenuItems\", ({ menuItems }: MenuItemsProps) => {\n const menuItem = useMenuItem();\n\n const depth = menuItem ? menuItem.depth : -1;\n\n return (\n <Fragment>\n {menuItems.map(menuItem => (\n <MenuItemContext.Provider\n key={menuItem.name}\n value={{ menuItem, depth: depth + 1 }}\n >\n <MenuItem />\n </MenuItemContext.Provider>\n ))}\n </Fragment>\n );\n});\n\nexport const MenuItem = () => {\n return <MenuItemRenderer />;\n};\n\nexport const MenuItemRenderer = makeDecoratable(\"MenuItemRenderer\", createVoidComponent());\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_utils","_app","_","_plugins","NavigationContext","createContext","menuItems","setMenu","removeMenu","displayName","useNavigation","useContext","LegacyMenu","props","default","createElement","AddMenu","Object","assign","name","generateId","label","children","LegacyMenuPlugins","_useState","useState","_useState2","_slicedToArray2","menus","setMenus","useEffect","menuPlugins","plugins","byType","menuElements","map","plugin","Plugins","key","render","Menu","Item","Section","NavigationProvider","exports","createProvider","Component","_ref","_useState3","_useState4","setState","id","updater","state","index","findIndex","m","newMenu","createEmptyMenu","_toConsumableArray2","concat","slice","useCallback","context","useMemo","Provider","value","Navigation","makeDecoratable","Tags","tags","location","NavigationRenderer","createVoidComponent","MenuItemContext","React","menuItem","undefined","depth","useMenuItem","MenuItems","_ref2","Fragment","MenuItem","MenuItemRenderer"],"sources":["Navigation.tsx"],"sourcesContent":["import React, {\n createContext,\n Fragment,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState\n} from \"react\";\nimport { generateId } from \"@webiny/utils\";\nimport { createProvider, createVoidComponent, makeDecoratable, Plugins } from \"@webiny/app\";\nimport { AddMenu as Menu, createEmptyMenu, MenuData, MenuProps, MenuUpdater, Tags } from \"~/index\";\nimport { plugins } from \"@webiny/plugins\";\nimport { AdminMenuPlugin } from \"~/types\";\nimport { ItemProps, SectionProps } from \"~/plugins/MenuPlugin\";\n\nexport interface NavigationContext {\n menuItems: MenuData[];\n setMenu(id: string, update: MenuUpdater): void;\n removeMenu(id: string): void;\n}\n\nconst NavigationContext = createContext<NavigationContext>({\n menuItems: [],\n setMenu: () => {\n return void 0;\n },\n removeMenu: () => {\n return void 0;\n }\n});\nNavigationContext.displayName = \"NavigationContext\";\n\nexport function useNavigation() {\n return useContext(NavigationContext);\n}\n\ntype LegacyMenuProps = MenuProps | SectionProps | ItemProps;\n\n// IMPORTANT! The following component is for BACKWARDS COMPATIBILITY purposes only!\n// It is not a public component, and is not even exported from this file. We need it to take care of\n// scaffolded plugins in users' projects, as well as our own applications (Page Builder and Form Builder).\nconst LegacyMenu = (props: LegacyMenuProps & { children: React.ReactNode }) => {\n return (\n <Menu\n {...props}\n name={(props as MenuProps).name || generateId()}\n label={props.label as string}\n >\n {props.children}\n </Menu>\n );\n};\n\nconst LegacyMenuPlugins = () => {\n // IMPORTANT! The following piece of code is for BACKWARDS COMPATIBILITY purposes only!\n const [menus, setMenus] = useState<JSX.Element | null>(null);\n\n useEffect(() => {\n const menuPlugins = plugins.byType<AdminMenuPlugin>(\"admin-menu\");\n if (!menuPlugins) {\n return;\n }\n\n const menuElements = menuPlugins.map(plugin => {\n // TODO @ts-refactor figure out correct types or write a comment to leave as React.FC\n return (\n <Plugins key={plugin.name}>\n {plugin.render({\n Menu: LegacyMenu as React.FC,\n Item: LegacyMenu as React.FC,\n Section: LegacyMenu as React.FC\n })}\n </Plugins>\n );\n });\n /**\n * TODO Figure out correct types for the menus.\n */\n // @ts-expect-error\n setMenus(menuElements);\n }, []);\n\n return menus;\n};\n\ninterface NavigationProviderProps {\n children: React.ReactNode;\n}\n\nexport const NavigationProvider = createProvider(Component => {\n return function NavigationProvider({ children }: NavigationProviderProps) {\n const [menuItems, setState] = useState<MenuData[]>([]);\n\n const setMenu = (id: string, updater: MenuUpdater): void => {\n setState(state => {\n const index = state.findIndex(m => m.name === id);\n\n const newMenu = index > -1 ? updater(state[index]) : updater(createEmptyMenu(id));\n if (!newMenu) {\n return [...state];\n }\n if (!newMenu.children) {\n newMenu.children = [];\n }\n\n return index > -1\n ? [...state.slice(0, index), newMenu, ...state.slice(index + 1)]\n : [...state, newMenu];\n });\n };\n const removeMenu = useCallback(\n (id: string) => {\n setState(state => {\n const index = state.findIndex(m => m.name === id);\n\n if (index < 0) {\n return state;\n }\n\n return [...state.slice(0, index), ...state.slice(index + 1)];\n });\n },\n [setState]\n );\n\n const context = useMemo<NavigationContext>(\n () => ({\n menuItems,\n setMenu,\n removeMenu\n }),\n [menuItems, setMenu, removeMenu]\n );\n\n return (\n <NavigationContext.Provider value={context}>\n <LegacyMenuPlugins />\n <Component>{children}</Component>\n </NavigationContext.Provider>\n );\n };\n});\n\nexport const Navigation = makeDecoratable(\"Navigation\", () => {\n return (\n <Tags tags={{ location: \"navigation\" }}>\n <NavigationRenderer />\n </Tags>\n );\n});\n\nexport const NavigationRenderer = makeDecoratable(\"NavigationRenderer\", createVoidComponent());\n\ninterface MenuItemContext {\n menuItem?: MenuData;\n depth: number;\n}\n\nconst MenuItemContext = React.createContext<MenuItemContext>({\n menuItem: undefined,\n depth: -1\n});\nMenuItemContext.displayName = \"MenuItemContext\";\n\nexport function useMenuItem() {\n return React.useContext(MenuItemContext);\n}\n\nexport interface MenuItemsProps {\n menuItems: MenuData[];\n}\n\nexport const MenuItems = makeDecoratable(\"MenuItems\", ({ menuItems }: MenuItemsProps) => {\n const menuItem = useMenuItem();\n\n const depth = menuItem ? menuItem.depth : -1;\n\n return (\n <Fragment>\n {menuItems.map(menuItem => (\n <MenuItemContext.Provider\n key={menuItem.name}\n value={{ menuItem, depth: depth + 1 }}\n >\n <MenuItem />\n </MenuItemContext.Provider>\n ))}\n </Fragment>\n );\n});\n\nexport const MenuItem = () => {\n return <MenuItemRenderer />;\n};\n\nexport const MenuItemRenderer = makeDecoratable(\"MenuItemRenderer\", createVoidComponent());\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,4 @@
1
1
  import React from "react";
2
- import { ComponentWithChildren } from "../../types";
3
2
  export interface SearchOptionData {
4
3
  route: string;
5
4
  label: string;
@@ -13,11 +12,7 @@ export interface SearchContext {
13
12
  addOption(option: SearchOptionData): void;
14
13
  }
15
14
  export declare function useSearch(): SearchContext;
16
- interface SearchProviderProps {
17
- children: React.ReactNode;
18
- [key: string]: any;
19
- }
20
- export declare const SearchProvider: (Component: ComponentWithChildren) => ({ children, ...props }: SearchProviderProps) => React.JSX.Element;
15
+ export declare const SearchProvider: import("@webiny/app").Decorator<import("@webiny/app").GenericComponent<import("@webiny/app").ChildrenProps>>;
21
16
  export declare const Search: (() => React.JSX.Element) & {
22
17
  original: () => React.JSX.Element;
23
18
  originalName: string;
@@ -58,4 +53,3 @@ export declare const SearchRenderer: ((props: unknown) => JSX.Element | null) &
58
53
  };
59
54
  export type SearchOptionProps = SearchOptionData;
60
55
  export declare const SearchOption: (props: SearchOptionProps) => null;
61
- export {};
package/base/ui/Search.js CHANGED
@@ -23,7 +23,7 @@ SearchContext.displayName = "SearchContext";
23
23
  function useSearch() {
24
24
  return _react.default.useContext(SearchContext);
25
25
  }
26
- var SearchProvider = exports.SearchProvider = function SearchProvider(Component) {
26
+ var SearchProvider = exports.SearchProvider = (0, _app.createProvider)(function (Component) {
27
27
  return function SearchProvider(_ref) {
28
28
  var children = _ref.children,
29
29
  props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
@@ -44,7 +44,7 @@ var SearchProvider = exports.SearchProvider = function SearchProvider(Component)
44
44
  value: context
45
45
  }, /*#__PURE__*/_react.default.createElement(Component, props, children));
46
46
  };
47
- };
47
+ });
48
48
  var Search = exports.Search = (0, _app.makeDecoratable)("Search", function () {
49
49
  return /*#__PURE__*/_react.default.createElement(SearchRenderer, null);
50
50
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_app","_excluded","SearchContext","React","createContext","options","addOption","displayName","useSearch","useContext","SearchProvider","exports","Component","_ref","children","props","_objectWithoutProperties2","default","_useState","useState","_useState2","_slicedToArray2","setOptions","useCallback","option","concat","_toConsumableArray2","context","createElement","Provider","value","Search","makeDecoratable","SearchRenderer","createVoidComponent","SearchOption","_useSearch","useEffect"],"sources":["Search.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from \"react\";\nimport { createVoidComponent, makeDecoratable } from \"@webiny/app\";\nimport { ComponentWithChildren } from \"~/types\";\n\nexport interface SearchOptionData {\n route: string;\n label: string;\n search?: {\n operator?: \"and\" | \"or\";\n fields?: Array<string>;\n };\n}\n\nexport interface SearchContext {\n options: SearchOptionData[];\n addOption(option: SearchOptionData): void;\n}\n\nconst SearchContext = React.createContext<SearchContext>({\n options: [],\n addOption: () => {\n return void 0;\n }\n});\nSearchContext.displayName = \"SearchContext\";\n\nexport function useSearch() {\n return React.useContext(SearchContext);\n}\n\ninterface SearchProviderProps {\n children: React.ReactNode;\n [key: string]: any;\n}\n\nexport const SearchProvider = (Component: ComponentWithChildren) => {\n return function SearchProvider({ children, ...props }: SearchProviderProps) {\n const [options, setOptions] = useState<SearchOptionData[]>([]);\n\n const addOption = useCallback<SearchContext[\"addOption\"]>(\n option => setOptions(options => [...options, option]),\n [setOptions]\n );\n\n const context = {\n options,\n addOption\n };\n\n return (\n <SearchContext.Provider value={context}>\n <Component {...props}>{children}</Component>\n </SearchContext.Provider>\n );\n };\n};\n\nexport const Search = makeDecoratable(\"Search\", () => {\n return <SearchRenderer />;\n});\n\nexport const SearchRenderer = makeDecoratable(\"SearchRenderer\", createVoidComponent());\n\nexport type SearchOptionProps = SearchOptionData;\n\nexport const SearchOption = (props: SearchOptionProps) => {\n const { addOption } = useSearch();\n\n useEffect(() => {\n addOption(props);\n }, []);\n\n return null;\n};\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,IAAA,GAAAD,OAAA;AAAmE,IAAAE,SAAA;AAiBnE,IAAMC,aAAa,gBAAGC,cAAK,CAACC,aAAa,CAAgB;EACrDC,OAAO,EAAE,EAAE;EACXC,SAAS,EAAE,SAAAA,UAAA,EAAM;IACb,OAAO,KAAK,CAAC;EACjB;AACJ,CAAC,CAAC;AACFJ,aAAa,CAACK,WAAW,GAAG,eAAe;AAEpC,SAASC,SAASA,CAAA,EAAG;EACxB,OAAOL,cAAK,CAACM,UAAU,CAACP,aAAa,CAAC;AAC1C;AAOO,IAAMQ,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG,SAAjBA,cAAcA,CAAIE,SAAgC,EAAK;EAChE,OAAO,SAASF,cAAcA,CAAAG,IAAA,EAA8C;IAAA,IAA3CC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;MAAKC,KAAK,OAAAC,yBAAA,CAAAC,OAAA,EAAAJ,IAAA,EAAAZ,SAAA;IAC/C,IAAAiB,SAAA,GAA8B,IAAAC,eAAQ,EAAqB,EAAE,CAAC;MAAAC,UAAA,OAAAC,eAAA,CAAAJ,OAAA,EAAAC,SAAA;MAAvDb,OAAO,GAAAe,UAAA;MAAEE,UAAU,GAAAF,UAAA;IAE1B,IAAMd,SAAS,GAAG,IAAAiB,kBAAW,EACzB,UAAAC,MAAM;MAAA,OAAIF,UAAU,CAAC,UAAAjB,OAAO;QAAA,UAAAoB,MAAA,KAAAC,mBAAA,CAAAT,OAAA,EAAQZ,OAAO,IAAEmB,MAAM;MAAA,CAAC,CAAC;IAAA,GACrD,CAACF,UAAU,CACf,CAAC;IAED,IAAMK,OAAO,GAAG;MACZtB,OAAO,EAAPA,OAAO;MACPC,SAAS,EAATA;IACJ,CAAC;IAED,oBACIT,MAAA,CAAAoB,OAAA,CAAAW,aAAA,CAAC1B,aAAa,CAAC2B,QAAQ;MAACC,KAAK,EAAEH;IAAQ,gBACnC9B,MAAA,CAAAoB,OAAA,CAAAW,aAAA,CAAChB,SAAS,EAAKG,KAAK,EAAGD,QAAoB,CACvB,CAAC;EAEjC,CAAC;AACL,CAAC;AAEM,IAAMiB,MAAM,GAAApB,OAAA,CAAAoB,MAAA,GAAG,IAAAC,oBAAe,EAAC,QAAQ,EAAE,YAAM;EAClD,oBAAOnC,MAAA,CAAAoB,OAAA,CAAAW,aAAA,CAACK,cAAc,MAAE,CAAC;AAC7B,CAAC,CAAC;AAEK,IAAMA,cAAc,GAAAtB,OAAA,CAAAsB,cAAA,GAAG,IAAAD,oBAAe,EAAC,gBAAgB,EAAE,IAAAE,wBAAmB,EAAC,CAAC,CAAC;AAI/E,IAAMC,YAAY,GAAAxB,OAAA,CAAAwB,YAAA,GAAG,SAAfA,YAAYA,CAAIpB,KAAwB,EAAK;EACtD,IAAAqB,UAAA,GAAsB5B,SAAS,CAAC,CAAC;IAAzBF,SAAS,GAAA8B,UAAA,CAAT9B,SAAS;EAEjB,IAAA+B,gBAAS,EAAC,YAAM;IACZ/B,SAAS,CAACS,KAAK,CAAC;EACpB,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO,IAAI;AACf,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_app","_excluded","SearchContext","React","createContext","options","addOption","displayName","useSearch","useContext","SearchProvider","exports","createProvider","Component","_ref","children","props","_objectWithoutProperties2","default","_useState","useState","_useState2","_slicedToArray2","setOptions","useCallback","option","concat","_toConsumableArray2","context","createElement","Provider","value","Search","makeDecoratable","SearchRenderer","createVoidComponent","SearchOption","_useSearch","useEffect"],"sources":["Search.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from \"react\";\nimport { createProvider, createVoidComponent, makeDecoratable } from \"@webiny/app\";\n\nexport interface SearchOptionData {\n route: string;\n label: string;\n search?: {\n operator?: \"and\" | \"or\";\n fields?: Array<string>;\n };\n}\n\nexport interface SearchContext {\n options: SearchOptionData[];\n addOption(option: SearchOptionData): void;\n}\n\nconst SearchContext = React.createContext<SearchContext>({\n options: [],\n addOption: () => {\n return void 0;\n }\n});\nSearchContext.displayName = \"SearchContext\";\n\nexport function useSearch() {\n return React.useContext(SearchContext);\n}\n\ninterface SearchProviderProps {\n children: React.ReactNode;\n [key: string]: any;\n}\n\nexport const SearchProvider = createProvider(Component => {\n return function SearchProvider({ children, ...props }: SearchProviderProps) {\n const [options, setOptions] = useState<SearchOptionData[]>([]);\n\n const addOption = useCallback<SearchContext[\"addOption\"]>(\n option => setOptions(options => [...options, option]),\n [setOptions]\n );\n\n const context = {\n options,\n addOption\n };\n\n return (\n <SearchContext.Provider value={context}>\n <Component {...props}>{children}</Component>\n </SearchContext.Provider>\n );\n };\n});\n\nexport const Search = makeDecoratable(\"Search\", () => {\n return <SearchRenderer />;\n});\n\nexport const SearchRenderer = makeDecoratable(\"SearchRenderer\", createVoidComponent());\n\nexport type SearchOptionProps = SearchOptionData;\n\nexport const SearchOption = (props: SearchOptionProps) => {\n const { addOption } = useSearch();\n\n useEffect(() => {\n addOption(props);\n }, []);\n\n return null;\n};\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,IAAA,GAAAD,OAAA;AAAmF,IAAAE,SAAA;AAgBnF,IAAMC,aAAa,gBAAGC,cAAK,CAACC,aAAa,CAAgB;EACrDC,OAAO,EAAE,EAAE;EACXC,SAAS,EAAE,SAAXA,SAASA,CAAA,EAAQ;IACb,OAAO,KAAK,CAAC;EACjB;AACJ,CAAC,CAAC;AACFJ,aAAa,CAACK,WAAW,GAAG,eAAe;AAEpC,SAASC,SAASA,CAAA,EAAG;EACxB,OAAOL,cAAK,CAACM,UAAU,CAACP,aAAa,CAAC;AAC1C;AAOO,IAAMQ,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG,IAAAE,mBAAc,EAAC,UAAAC,SAAS,EAAI;EACtD,OAAO,SAASH,cAAcA,CAAAI,IAAA,EAA8C;IAAA,IAA3CC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;MAAKC,KAAK,OAAAC,yBAAA,CAAAC,OAAA,EAAAJ,IAAA,EAAAb,SAAA;IAC/C,IAAAkB,SAAA,GAA8B,IAAAC,eAAQ,EAAqB,EAAE,CAAC;MAAAC,UAAA,OAAAC,eAAA,CAAAJ,OAAA,EAAAC,SAAA;MAAvDd,OAAO,GAAAgB,UAAA;MAAEE,UAAU,GAAAF,UAAA;IAE1B,IAAMf,SAAS,GAAG,IAAAkB,kBAAW,EACzB,UAAAC,MAAM;MAAA,OAAIF,UAAU,CAAC,UAAAlB,OAAO;QAAA,UAAAqB,MAAA,KAAAC,mBAAA,CAAAT,OAAA,EAAQb,OAAO,IAAEoB,MAAM;MAAA,CAAC,CAAC;IAAA,GACrD,CAACF,UAAU,CACf,CAAC;IAED,IAAMK,OAAO,GAAG;MACZvB,OAAO,EAAPA,OAAO;MACPC,SAAS,EAATA;IACJ,CAAC;IAED,oBACIT,MAAA,CAAAqB,OAAA,CAAAW,aAAA,CAAC3B,aAAa,CAAC4B,QAAQ;MAACC,KAAK,EAAEH;IAAQ,gBACnC/B,MAAA,CAAAqB,OAAA,CAAAW,aAAA,CAAChB,SAAS,EAAKG,KAAK,EAAGD,QAAoB,CACvB,CAAC;EAEjC,CAAC;AACL,CAAC,CAAC;AAEK,IAAMiB,MAAM,GAAArB,OAAA,CAAAqB,MAAA,GAAG,IAAAC,oBAAe,EAAC,QAAQ,EAAE,YAAM;EAClD,oBAAOpC,MAAA,CAAAqB,OAAA,CAAAW,aAAA,CAACK,cAAc,MAAE,CAAC;AAC7B,CAAC,CAAC;AAEK,IAAMA,cAAc,GAAAvB,OAAA,CAAAuB,cAAA,GAAG,IAAAD,oBAAe,EAAC,gBAAgB,EAAE,IAAAE,wBAAmB,EAAC,CAAC,CAAC;AAI/E,IAAMC,YAAY,GAAAzB,OAAA,CAAAyB,YAAA,GAAG,SAAfA,YAAYA,CAAIpB,KAAwB,EAAK;EACtD,IAAAqB,UAAA,GAAsB7B,SAAS,CAAC,CAAC;IAAzBF,SAAS,GAAA+B,UAAA,CAAT/B,SAAS;EAEjB,IAAAgC,gBAAS,EAAC,YAAM;IACZhC,SAAS,CAACU,KAAK,CAAC;EACpB,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO,IAAI;AACf,CAAC","ignoreList":[]}
@@ -1,5 +1,4 @@
1
1
  import React from "react";
2
- import { ComponentWithChildren } from "../../types";
3
2
  export interface UserMenuItemData {
4
3
  label?: string;
5
4
  icon?: JSX.Element;
@@ -12,11 +11,7 @@ export interface UserMenuContext {
12
11
  addMenuItem(item: UserMenuItemData): void;
13
12
  }
14
13
  export declare function useUserMenu(): UserMenuContext;
15
- interface UserMenuProviderProps {
16
- children: React.ReactNode;
17
- [key: string]: any;
18
- }
19
- export declare const UserMenuProvider: (Component: ComponentWithChildren) => ({ children, ...props }: UserMenuProviderProps) => React.JSX.Element;
14
+ export declare const UserMenuProvider: import("@webiny/app").Decorator<import("@webiny/app").GenericComponent<import("@webiny/app").ChildrenProps>>;
20
15
  export declare const UserMenu: (() => React.JSX.Element) & {
21
16
  original: () => React.JSX.Element;
22
17
  originalName: string;
@@ -159,4 +154,3 @@ export declare const UserMenuItems: (({ menuItems }: UserMenuItemsProps) => Reac
159
154
  displayName: string;
160
155
  }>) => (props: unknown) => React.JSX.Element;
161
156
  };
162
- export {};
@@ -24,7 +24,7 @@ UserMenuContext.displayName = "UserMenuContext";
24
24
  function useUserMenu() {
25
25
  return _react.default.useContext(UserMenuContext);
26
26
  }
27
- var UserMenuProvider = exports.UserMenuProvider = function UserMenuProvider(Component) {
27
+ var UserMenuProvider = exports.UserMenuProvider = (0, _app.createProvider)(function (Component) {
28
28
  return function UserMenuProvider(_ref) {
29
29
  var children = _ref.children,
30
30
  props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
@@ -56,7 +56,7 @@ var UserMenuProvider = exports.UserMenuProvider = function UserMenuProvider(Comp
56
56
  value: context
57
57
  }, /*#__PURE__*/_react.default.createElement(Component, props, children));
58
58
  };
59
- };
59
+ });
60
60
  var UserMenu = exports.UserMenu = (0, _app.makeDecoratable)("UserMenu", function () {
61
61
  return /*#__PURE__*/_react.default.createElement(UserMenuRenderer, null);
62
62
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_app","_excluded","UserMenuContext","React","createContext","addMenuItem","menuItems","displayName","useUserMenu","useContext","UserMenuProvider","exports","Component","_ref","children","props","_objectWithoutProperties2","default","_useState","useState","_useState2","_slicedToArray2","setItems","useCallback","item","items","concat","_toConsumableArray2","index","findIndex","i","slice","context","createElement","Provider","value","UserMenu","makeDecoratable","UserMenuRenderer","createVoidComponent","UserMenuHandle","UserMenuHandleRenderer","UserMenuItem","_ref2","menuItem","UserMenuItemContext","UserMenuItemRenderer","AddUserMenuItem","_useUserMenu","useEffect","element","undefined","icon","label","onClick","path","useUserMenuItem","UserMenuItems","_ref3","Fragment","map","key"],"sources":["UserMenu.tsx"],"sourcesContent":["import React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport { createVoidComponent, makeDecoratable } from \"@webiny/app\";\nimport { ComponentWithChildren } from \"~/types\";\n\nexport interface UserMenuItemData {\n label?: string;\n icon?: JSX.Element;\n path?: string;\n onClick?: () => void;\n element?: JSX.Element;\n}\n\nexport interface UserMenuContext {\n menuItems: UserMenuItemData[];\n addMenuItem(item: UserMenuItemData): void;\n}\n\nconst UserMenuContext = React.createContext<UserMenuContext>({\n addMenuItem: () => {\n return void 0;\n },\n menuItems: []\n});\nUserMenuContext.displayName = \"UserMenuContext\";\n\nexport function useUserMenu() {\n return React.useContext(UserMenuContext);\n}\n\ninterface UserMenuProviderProps {\n children: React.ReactNode;\n [key: string]: any;\n}\n\nexport const UserMenuProvider = (Component: ComponentWithChildren) => {\n return function UserMenuProvider({ children, ...props }: UserMenuProviderProps) {\n const [menuItems, setItems] = useState<UserMenuItemData[]>([]);\n\n const addMenuItem = useCallback<UserMenuContext[\"addMenuItem\"]>(\n item => {\n setItems(items => [...items, item]);\n\n return () => {\n setItems(items => {\n const index = items.findIndex(i => i === item);\n if (index < 0) {\n return items;\n }\n\n return [...items.slice(0, index), ...items.slice(index + 1)];\n });\n };\n },\n [setItems]\n );\n\n const context = {\n menuItems,\n addMenuItem\n };\n\n return (\n <UserMenuContext.Provider value={context}>\n <Component {...props}>{children}</Component>\n </UserMenuContext.Provider>\n );\n };\n};\n\nexport const UserMenu = makeDecoratable(\"UserMenu\", () => {\n return <UserMenuRenderer />;\n});\n\nexport const UserMenuRenderer = makeDecoratable(\"UserMenuRenderer\", createVoidComponent());\n\nexport const UserMenuHandle = makeDecoratable(\"UserMenuHandle\", () => {\n return <UserMenuHandleRenderer />;\n});\n\nexport const UserMenuHandleRenderer = makeDecoratable(\n \"UserMenuHandleRenderer\",\n createVoidComponent()\n);\n\nexport interface UserMenuItemProps {\n menuItem: UserMenuItemData;\n}\n\nexport const UserMenuItem = makeDecoratable(\"UserMenuItem\", ({ menuItem }: UserMenuItemProps) => {\n return (\n <UserMenuItemContext.Provider value={menuItem}>\n <UserMenuItemRenderer />\n </UserMenuItemContext.Provider>\n );\n});\n\nexport const UserMenuItemRenderer = makeDecoratable(\"UserMenuItemRenderer\", createVoidComponent());\n\nexport const AddUserMenuItem = (props: UserMenuItemProps[\"menuItem\"]) => {\n const { addMenuItem } = useUserMenu();\n\n useEffect(() => {\n return addMenuItem(props);\n }, []);\n\n return null;\n};\n\nexport type UserMenuItemContext = UserMenuItemData;\n\nconst UserMenuItemContext = React.createContext<UserMenuItemContext>({\n element: undefined,\n icon: undefined,\n label: undefined,\n onClick: () => {\n return void 0;\n },\n path: undefined\n});\nUserMenuItemContext.displayName = \"UserMenuItemContext\";\n\nexport function useUserMenuItem() {\n return React.useContext(UserMenuItemContext);\n}\n\nexport interface UserMenuItemsProps {\n menuItems: UserMenuItemData[];\n}\n\nexport const UserMenuItems = makeDecoratable(\n \"UserMenuItems\",\n ({ menuItems }: UserMenuItemsProps) => {\n return (\n <Fragment>\n {menuItems.map((item, index) => (\n <UserMenuItem key={index} menuItem={item} />\n ))}\n </Fragment>\n );\n }\n);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_app","_excluded","UserMenuContext","React","createContext","addMenuItem","menuItems","displayName","useUserMenu","useContext","UserMenuProvider","exports","createProvider","Component","_ref","children","props","_objectWithoutProperties2","default","_useState","useState","_useState2","_slicedToArray2","setItems","useCallback","item","items","concat","_toConsumableArray2","index","findIndex","i","slice","context","createElement","Provider","value","UserMenu","makeDecoratable","UserMenuRenderer","createVoidComponent","UserMenuHandle","UserMenuHandleRenderer","UserMenuItem","_ref2","menuItem","UserMenuItemContext","UserMenuItemRenderer","AddUserMenuItem","_useUserMenu","useEffect","element","undefined","icon","label","onClick","path","useUserMenuItem","UserMenuItems","_ref3","Fragment","map","key"],"sources":["UserMenu.tsx"],"sourcesContent":["import React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport { createProvider, createVoidComponent, makeDecoratable } from \"@webiny/app\";\n\nexport interface UserMenuItemData {\n label?: string;\n icon?: JSX.Element;\n path?: string;\n onClick?: () => void;\n element?: JSX.Element;\n}\n\nexport interface UserMenuContext {\n menuItems: UserMenuItemData[];\n addMenuItem(item: UserMenuItemData): void;\n}\n\nconst UserMenuContext = React.createContext<UserMenuContext>({\n addMenuItem: () => {\n return void 0;\n },\n menuItems: []\n});\nUserMenuContext.displayName = \"UserMenuContext\";\n\nexport function useUserMenu() {\n return React.useContext(UserMenuContext);\n}\n\ninterface UserMenuProviderProps {\n children: React.ReactNode;\n [key: string]: any;\n}\n\nexport const UserMenuProvider = createProvider(Component => {\n return function UserMenuProvider({ children, ...props }: UserMenuProviderProps) {\n const [menuItems, setItems] = useState<UserMenuItemData[]>([]);\n\n const addMenuItem = useCallback<UserMenuContext[\"addMenuItem\"]>(\n item => {\n setItems(items => [...items, item]);\n\n return () => {\n setItems(items => {\n const index = items.findIndex(i => i === item);\n if (index < 0) {\n return items;\n }\n\n return [...items.slice(0, index), ...items.slice(index + 1)];\n });\n };\n },\n [setItems]\n );\n\n const context = {\n menuItems,\n addMenuItem\n };\n\n return (\n <UserMenuContext.Provider value={context}>\n <Component {...props}>{children}</Component>\n </UserMenuContext.Provider>\n );\n };\n});\n\nexport const UserMenu = makeDecoratable(\"UserMenu\", () => {\n return <UserMenuRenderer />;\n});\n\nexport const UserMenuRenderer = makeDecoratable(\"UserMenuRenderer\", createVoidComponent());\n\nexport const UserMenuHandle = makeDecoratable(\"UserMenuHandle\", () => {\n return <UserMenuHandleRenderer />;\n});\n\nexport const UserMenuHandleRenderer = makeDecoratable(\n \"UserMenuHandleRenderer\",\n createVoidComponent()\n);\n\nexport interface UserMenuItemProps {\n menuItem: UserMenuItemData;\n}\n\nexport const UserMenuItem = makeDecoratable(\"UserMenuItem\", ({ menuItem }: UserMenuItemProps) => {\n return (\n <UserMenuItemContext.Provider value={menuItem}>\n <UserMenuItemRenderer />\n </UserMenuItemContext.Provider>\n );\n});\n\nexport const UserMenuItemRenderer = makeDecoratable(\"UserMenuItemRenderer\", createVoidComponent());\n\nexport const AddUserMenuItem = (props: UserMenuItemProps[\"menuItem\"]) => {\n const { addMenuItem } = useUserMenu();\n\n useEffect(() => {\n return addMenuItem(props);\n }, []);\n\n return null;\n};\n\nexport type UserMenuItemContext = UserMenuItemData;\n\nconst UserMenuItemContext = React.createContext<UserMenuItemContext>({\n element: undefined,\n icon: undefined,\n label: undefined,\n onClick: () => {\n return void 0;\n },\n path: undefined\n});\nUserMenuItemContext.displayName = \"UserMenuItemContext\";\n\nexport function useUserMenuItem() {\n return React.useContext(UserMenuItemContext);\n}\n\nexport interface UserMenuItemsProps {\n menuItems: UserMenuItemData[];\n}\n\nexport const UserMenuItems = makeDecoratable(\n \"UserMenuItems\",\n ({ menuItems }: UserMenuItemsProps) => {\n return (\n <Fragment>\n {menuItems.map((item, index) => (\n <UserMenuItem key={index} menuItem={item} />\n ))}\n </Fragment>\n );\n }\n);\n"],"mappings":"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","ignoreList":[]}
@@ -99,7 +99,7 @@ var AppInstaller = exports.AppInstaller = function AppInstaller(_ref) {
99
99
  onInstalled: showNextInstaller
100
100
  })), installer.secure);
101
101
  }
102
- return renderLayout(renderBody( /*#__PURE__*/_react.default.createElement(_Elevation.Elevation, {
102
+ return renderLayout(renderBody(/*#__PURE__*/_react.default.createElement(_Elevation.Elevation, {
103
103
  z: 1
104
104
  }, /*#__PURE__*/_react.default.createElement(_styled.SuccessDialog, null, /*#__PURE__*/_react.default.createElement(_Typography.Typography, {
105
105
  use: "headline4"