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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (306) hide show
  1. package/base/Admin.d.ts +3 -10
  2. package/base/Admin.js +4 -0
  3. package/base/Admin.js.map +1 -0
  4. package/base/Base.d.ts +1 -1
  5. package/base/Base.js.map +1 -0
  6. package/base/plugins/AddGraphQLQuerySelection.d.ts +2 -2
  7. package/base/plugins/AddGraphQLQuerySelection.js +3 -2
  8. package/base/plugins/AddGraphQLQuerySelection.js.map +1 -0
  9. package/base/providers/ApolloProvider.d.ts +9 -3
  10. package/base/providers/ApolloProvider.js +2 -1
  11. package/base/providers/ApolloProvider.js.map +1 -0
  12. package/base/providers/TelemetryProvider.d.ts +2 -4
  13. package/base/providers/TelemetryProvider.js +5 -0
  14. package/base/providers/TelemetryProvider.js.map +1 -0
  15. package/base/providers/UiStateProvider.d.ts +1 -3
  16. package/base/providers/UiStateProvider.js.map +1 -0
  17. package/base/providers/ViewCompositionProvider.d.ts +4 -5
  18. package/base/providers/ViewCompositionProvider.js +8 -1
  19. package/base/providers/ViewCompositionProvider.js.map +1 -0
  20. package/base/ui/Brand.d.ts +2 -9
  21. package/base/ui/Brand.js.map +1 -0
  22. package/base/ui/CenteredView.d.ts +1 -5
  23. package/base/ui/CenteredView.js.map +1 -0
  24. package/base/ui/Dashboard.d.ts +2 -9
  25. package/base/ui/Dashboard.js.map +1 -0
  26. package/base/ui/Layout.d.ts +2 -8
  27. package/base/ui/Layout.js.map +1 -0
  28. package/base/ui/LocaleSelector.d.ts +2 -9
  29. package/base/ui/LocaleSelector.js.map +1 -0
  30. package/base/ui/LoginScreen.d.ts +2 -5
  31. package/base/ui/LoginScreen.js.map +1 -0
  32. package/base/ui/Logo.d.ts +3 -9
  33. package/base/ui/Logo.js.map +1 -0
  34. package/base/ui/Menu.d.ts +8 -12
  35. package/base/ui/Menu.js +96 -30
  36. package/base/ui/Menu.js.map +1 -0
  37. package/base/ui/Navigation.d.ts +9 -20
  38. package/base/ui/Navigation.js +29 -29
  39. package/base/ui/Navigation.js.map +1 -0
  40. package/base/ui/NotFound.d.ts +2 -9
  41. package/base/ui/NotFound.js.map +1 -0
  42. package/base/ui/Search.d.ts +4 -13
  43. package/base/ui/Search.js +6 -1
  44. package/base/ui/Search.js.map +1 -0
  45. package/base/ui/Tags.d.ts +4 -2
  46. package/base/ui/Tags.js.map +1 -0
  47. package/base/ui/UserMenu.d.ts +9 -33
  48. package/base/ui/UserMenu.js +15 -2
  49. package/base/ui/UserMenu.js.map +1 -0
  50. package/components/AdminLayout.d.ts +1 -2
  51. package/components/AdminLayout.js.map +1 -0
  52. package/components/AppInstaller/AppInstaller.d.ts +2 -4
  53. package/components/AppInstaller/AppInstaller.js.map +1 -0
  54. package/components/AppInstaller/Sidebar.d.ts +8 -6
  55. package/components/AppInstaller/Sidebar.js +11 -10
  56. package/components/AppInstaller/Sidebar.js.map +1 -0
  57. package/components/AppInstaller/index.js.map +1 -0
  58. package/components/AppInstaller/styled.d.ts +4 -4
  59. package/components/AppInstaller/styled.js.map +1 -0
  60. package/components/AppInstaller/useInstaller.d.ts +28 -9
  61. package/components/AppInstaller/useInstaller.js +44 -36
  62. package/components/AppInstaller/useInstaller.js.map +1 -0
  63. package/components/EmptyView.d.ts +5 -5
  64. package/components/EmptyView.js.map +1 -0
  65. package/components/FileManager/BottomInfoBar/SupportedFileTypes.d.ts +5 -4
  66. package/components/FileManager/BottomInfoBar/SupportedFileTypes.js +7 -1
  67. package/components/FileManager/BottomInfoBar/SupportedFileTypes.js.map +1 -0
  68. package/components/FileManager/BottomInfoBar/UploadStatus.d.ts +5 -4
  69. package/components/FileManager/BottomInfoBar/UploadStatus.js.map +1 -0
  70. package/components/FileManager/BottomInfoBar.d.ts +4 -2
  71. package/components/FileManager/BottomInfoBar.js.map +1 -0
  72. package/components/FileManager/DropFilesHere.d.ts +4 -3
  73. package/components/FileManager/DropFilesHere.js +5 -2
  74. package/components/FileManager/DropFilesHere.js.map +1 -0
  75. package/components/FileManager/File.d.ts +7 -8
  76. package/components/FileManager/File.js +11 -5
  77. package/components/FileManager/File.js.map +1 -0
  78. package/components/FileManager/FileDetails/Name.d.ts +7 -5
  79. package/components/FileManager/FileDetails/Name.js +10 -7
  80. package/components/FileManager/FileDetails/Name.js.map +1 -0
  81. package/components/FileManager/FileDetails/Tags.d.ts +7 -5
  82. package/components/FileManager/FileDetails/Tags.js +22 -9
  83. package/components/FileManager/FileDetails/Tags.js.map +1 -0
  84. package/components/FileManager/FileDetails.d.ts +9 -8
  85. package/components/FileManager/FileDetails.js +80 -41
  86. package/components/FileManager/FileDetails.js.map +1 -0
  87. package/components/FileManager/FileManagerContext.d.ts +12 -9
  88. package/components/FileManager/FileManagerContext.js +14 -7
  89. package/components/FileManager/FileManagerContext.js.map +1 -0
  90. package/components/FileManager/FileManagerView.d.ts +3 -11
  91. package/components/FileManager/FileManagerView.js +79 -51
  92. package/components/FileManager/FileManagerView.js.map +1 -0
  93. package/components/FileManager/LeftSidebar.d.ts +6 -5
  94. package/components/FileManager/LeftSidebar.js +6 -5
  95. package/components/FileManager/LeftSidebar.js.map +1 -0
  96. package/components/FileManager/NoPermissionView.d.ts +2 -2
  97. package/components/FileManager/NoPermissionView.js.map +1 -0
  98. package/components/FileManager/NoResults.d.ts +3 -2
  99. package/components/FileManager/NoResults.js +5 -2
  100. package/components/FileManager/NoResults.js.map +1 -0
  101. package/components/FileManager/getFileTypePlugin.d.ts +4 -1
  102. package/components/FileManager/getFileTypePlugin.js +9 -0
  103. package/components/FileManager/getFileTypePlugin.js.map +1 -0
  104. package/components/FileManager/getFileUploader.d.ts +2 -1
  105. package/components/FileManager/getFileUploader.js.map +1 -0
  106. package/components/FileManager/graphql.d.ts +90 -0
  107. package/components/FileManager/graphql.js +25 -0
  108. package/components/FileManager/graphql.js.map +1 -0
  109. package/components/FileManager/outputFileSelectionError.d.ts +6 -1
  110. package/components/FileManager/outputFileSelectionError.js +3 -2
  111. package/components/FileManager/outputFileSelectionError.js.map +1 -0
  112. package/components/FileManager/types.d.ts +19 -0
  113. package/components/FileManager/types.js +1 -0
  114. package/components/FileManager/types.js.map +1 -0
  115. package/components/FileManager.d.ts +15 -10
  116. package/components/FileManager.js +27 -16
  117. package/components/FileManager.js.map +1 -0
  118. package/components/FloatingActionButton.d.ts +2 -2
  119. package/components/FloatingActionButton.js.map +1 -0
  120. package/components/MultiImageUpload.d.ts +13 -4
  121. package/components/MultiImageUpload.js +15 -4
  122. package/components/MultiImageUpload.js.map +1 -0
  123. package/components/OverlayLayout/OverlayLayout.d.ts +10 -13
  124. package/components/OverlayLayout/OverlayLayout.js.map +1 -0
  125. package/components/OverlayLayout/index.js.map +1 -0
  126. package/components/Permissions/Permissions.d.ts +4 -4
  127. package/components/Permissions/Permissions.js.map +1 -0
  128. package/components/Permissions/StyledComponents.d.ts +6 -4
  129. package/components/Permissions/StyledComponents.js.map +1 -0
  130. package/components/Permissions/index.js.map +1 -0
  131. package/components/RichTextEditor/RichTextEditor.d.ts +2 -2
  132. package/components/RichTextEditor/RichTextEditor.js.map +1 -0
  133. package/components/RichTextEditor/index.js.map +1 -0
  134. package/components/RichTextEditor/tools/header/index.d.ts +33 -34
  135. package/components/RichTextEditor/tools/header/index.js +5 -6
  136. package/components/RichTextEditor/tools/header/index.js.map +1 -0
  137. package/components/RichTextEditor/tools/image/index.d.ts +38 -13
  138. package/components/RichTextEditor/tools/image/index.js +4 -2
  139. package/components/RichTextEditor/tools/image/index.js.map +1 -0
  140. package/components/RichTextEditor/tools/image/svgs.js.map +1 -0
  141. package/components/RichTextEditor/tools/image/tunes.d.ts +12 -15
  142. package/components/RichTextEditor/tools/image/tunes.js +9 -4
  143. package/components/RichTextEditor/tools/image/tunes.js.map +1 -0
  144. package/components/RichTextEditor/tools/image/types.d.ts +29 -0
  145. package/components/RichTextEditor/tools/image/types.js +1 -0
  146. package/components/RichTextEditor/tools/image/types.js.map +1 -0
  147. package/components/RichTextEditor/tools/image/ui.d.ts +36 -27
  148. package/components/RichTextEditor/tools/image/ui.js +25 -12
  149. package/components/RichTextEditor/tools/image/ui.js.map +1 -0
  150. package/components/RichTextEditor/tools/paragraph/index.d.ts +32 -36
  151. package/components/RichTextEditor/tools/paragraph/index.js +17 -25
  152. package/components/RichTextEditor/tools/paragraph/index.js.map +1 -0
  153. package/components/RichTextEditor/tools/textColor/index.d.ts +30 -22
  154. package/components/RichTextEditor/tools/textColor/index.js +46 -10
  155. package/components/RichTextEditor/tools/textColor/index.js.map +1 -0
  156. package/components/RichTextEditor/tools/utils.js.map +1 -0
  157. package/components/Routes.d.ts +2 -2
  158. package/components/Routes.js.map +1 -0
  159. package/components/SearchUI.d.ts +4 -4
  160. package/components/SearchUI.js.map +1 -0
  161. package/components/SimpleForm/SimpleForm.d.ts +10 -11
  162. package/components/SimpleForm/SimpleForm.js.map +1 -0
  163. package/components/SimpleForm/index.js.map +1 -0
  164. package/components/SimpleUI/InputField.d.ts +4 -3
  165. package/components/SimpleUI/InputField.js +22 -20
  166. package/components/SimpleUI/InputField.js.map +1 -0
  167. package/components/SingleImageUpload.d.ts +3 -9
  168. package/components/SingleImageUpload.js +9 -11
  169. package/components/SingleImageUpload.js.map +1 -0
  170. package/components/SplitView/SplitView.d.ts +5 -5
  171. package/components/SplitView/SplitView.js.map +1 -0
  172. package/components/SplitView/index.js.map +1 -0
  173. package/components/index.js.map +1 -0
  174. package/hooks/useConfirmationDialog.d.ts +6 -5
  175. package/hooks/useConfirmationDialog.js +1 -2
  176. package/hooks/useConfirmationDialog.js.map +1 -0
  177. package/hooks/useDialog.d.ts +8 -3
  178. package/hooks/useDialog.js +1 -1
  179. package/hooks/useDialog.js.map +1 -0
  180. package/hooks/useSnackbar.d.ts +6 -3
  181. package/hooks/useSnackbar.js.map +1 -0
  182. package/index.js.map +1 -0
  183. package/package.json +24 -20
  184. package/plugins/FileManagerFileTypePlugin.d.ts +3 -3
  185. package/plugins/FileManagerFileTypePlugin.js +4 -0
  186. package/plugins/FileManagerFileTypePlugin.js.map +1 -0
  187. package/plugins/MenuPlugin.d.ts +6 -6
  188. package/plugins/MenuPlugin.js +4 -0
  189. package/plugins/MenuPlugin.js.map +1 -0
  190. package/plugins/PermissionRendererPlugin.d.ts +4 -4
  191. package/plugins/PermissionRendererPlugin.js +4 -0
  192. package/plugins/PermissionRendererPlugin.js.map +1 -0
  193. package/plugins/fileManager/fileDefault.js.map +1 -0
  194. package/plugins/fileManager/fileImage/DeleteAction.d.ts +6 -2
  195. package/plugins/fileManager/fileImage/DeleteAction.js.map +1 -0
  196. package/plugins/fileManager/fileImage/EditAction.d.ts +7 -6
  197. package/plugins/fileManager/fileImage/EditAction.js +24 -11
  198. package/plugins/fileManager/fileImage/EditAction.js.map +1 -0
  199. package/plugins/fileManager/fileImage/index.js.map +1 -0
  200. package/plugins/fileManager/index.js.map +1 -0
  201. package/plugins/globalSearch/SearchBar.d.ts +14 -5
  202. package/plugins/globalSearch/SearchBar.js +9 -0
  203. package/plugins/globalSearch/SearchBar.js.map +1 -0
  204. package/plugins/globalSearch/SearchBarDropdown.d.ts +19 -1
  205. package/plugins/globalSearch/SearchBarDropdown.js.map +1 -0
  206. package/plugins/globalSearch/index.d.ts +2 -1
  207. package/plugins/globalSearch/index.js.map +1 -0
  208. package/plugins/globalSearch/styled.d.ts +3 -3
  209. package/plugins/globalSearch/styled.js.map +1 -0
  210. package/plugins/index.d.ts +2 -1
  211. package/plugins/index.js.map +1 -0
  212. package/plugins/uiLayoutRenderer/index.js.map +1 -0
  213. package/types.d.ts +10 -8
  214. package/types.js.map +1 -0
  215. package/ui/UIElement.d.ts +1 -1
  216. package/ui/UIElement.js.map +1 -0
  217. package/ui/UILayout.js.map +1 -0
  218. package/ui/UIRenderer.js.map +1 -0
  219. package/ui/UIView.d.ts +1 -1
  220. package/ui/UIView.js.map +1 -0
  221. package/ui/elements/AccordionElement.d.ts +5 -5
  222. package/ui/elements/AccordionElement.js +4 -0
  223. package/ui/elements/AccordionElement.js.map +1 -0
  224. package/ui/elements/ButtonElement.d.ts +3 -3
  225. package/ui/elements/ButtonElement.js +7 -0
  226. package/ui/elements/ButtonElement.js.map +1 -0
  227. package/ui/elements/ButtonGroupElement.d.ts +2 -2
  228. package/ui/elements/ButtonGroupElement.js.map +1 -0
  229. package/ui/elements/GenericElement.js.map +1 -0
  230. package/ui/elements/LabelElement.js.map +1 -0
  231. package/ui/elements/NavigationMenuElement.d.ts +2 -1
  232. package/ui/elements/NavigationMenuElement.js +3 -2
  233. package/ui/elements/NavigationMenuElement.js.map +1 -0
  234. package/ui/elements/PanelElement.js.map +1 -0
  235. package/ui/elements/PlaceholderElement.d.ts +2 -1
  236. package/ui/elements/PlaceholderElement.js.map +1 -0
  237. package/ui/elements/SmallButtonElement.d.ts +1 -1
  238. package/ui/elements/SmallButtonElement.js.map +1 -0
  239. package/ui/elements/TypographyElement.d.ts +1 -1
  240. package/ui/elements/TypographyElement.js.map +1 -0
  241. package/ui/elements/ViewElement.js.map +1 -0
  242. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.d.ts +2 -2
  243. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js +10 -10
  244. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js.map +1 -0
  245. package/ui/elements/form/DynamicFieldsetElement.d.ts +19 -18
  246. package/ui/elements/form/DynamicFieldsetElement.js +13 -0
  247. package/ui/elements/form/DynamicFieldsetElement.js.map +1 -0
  248. package/ui/elements/form/FileManagerElement/EmptyStateElement.js.map +1 -0
  249. package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js.map +1 -0
  250. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js.map +1 -0
  251. package/ui/elements/form/FileManagerElement/styled.d.ts +17 -13
  252. package/ui/elements/form/FileManagerElement/styled.js.map +1 -0
  253. package/ui/elements/form/FileManagerElement.d.ts +6 -6
  254. package/ui/elements/form/FileManagerElement.js.map +1 -0
  255. package/ui/elements/form/FormElement.d.ts +5 -5
  256. package/ui/elements/form/FormElement.js.map +1 -0
  257. package/ui/elements/form/FormFieldElement.d.ts +9 -8
  258. package/ui/elements/form/FormFieldElement.js +15 -7
  259. package/ui/elements/form/FormFieldElement.js.map +1 -0
  260. package/ui/elements/form/HiddenElement.js.map +1 -0
  261. package/ui/elements/form/InputElement.d.ts +1 -0
  262. package/ui/elements/form/InputElement.js.map +1 -0
  263. package/ui/elements/form/PasswordElement.js.map +1 -0
  264. package/ui/elements/form/SelectElement.d.ts +1 -1
  265. package/ui/elements/form/SelectElement.js +1 -1
  266. package/ui/elements/form/SelectElement.js.map +1 -0
  267. package/ui/elements/form/TextareaElement.js.map +1 -0
  268. package/ui/views/AdminView/ContentElement.js.map +1 -0
  269. package/ui/views/AdminView/HeaderElement.js +14 -2
  270. package/ui/views/AdminView/HeaderElement.js.map +1 -0
  271. package/ui/views/AdminView/HeaderSectionCenterElement.d.ts +2 -2
  272. package/ui/views/AdminView/HeaderSectionCenterElement.js.map +1 -0
  273. package/ui/views/AdminView/HeaderSectionLeftElement.d.ts +2 -2
  274. package/ui/views/AdminView/HeaderSectionLeftElement.js.map +1 -0
  275. package/ui/views/AdminView/HeaderSectionRightElement.d.ts +2 -2
  276. package/ui/views/AdminView/HeaderSectionRightElement.js.map +1 -0
  277. package/ui/views/AdminView/components/Dialog.js.map +1 -0
  278. package/ui/views/AdminView/components/Hamburger.d.ts +2 -2
  279. package/ui/views/AdminView/components/Hamburger.js.map +1 -0
  280. package/ui/views/AdminView/components/Snackbar.d.ts +2 -2
  281. package/ui/views/AdminView/components/Snackbar.js.map +1 -0
  282. package/ui/views/FormView/FormContainerElement.d.ts +2 -2
  283. package/ui/views/FormView/FormContainerElement.js.map +1 -0
  284. package/ui/views/FormView/FormContentElement.js.map +1 -0
  285. package/ui/views/FormView/FormFooterElement.d.ts +3 -3
  286. package/ui/views/FormView/FormFooterElement.js.map +1 -0
  287. package/ui/views/FormView/FormHeaderElement.d.ts +2 -2
  288. package/ui/views/FormView/FormHeaderElement.js.map +1 -0
  289. package/ui/views/FormView.d.ts +1 -1
  290. package/ui/views/FormView.js +25 -3
  291. package/ui/views/FormView.js.map +1 -0
  292. package/ui/views/OverlayView/ContentElement.d.ts +2 -2
  293. package/ui/views/OverlayView/ContentElement.js.map +1 -0
  294. package/ui/views/OverlayView/HeaderElement.d.ts +5 -5
  295. package/ui/views/OverlayView/HeaderElement.js.map +1 -0
  296. package/ui/views/OverlayView/HeaderTitleElement.d.ts +1 -1
  297. package/ui/views/OverlayView/HeaderTitleElement.js.map +1 -0
  298. package/ui/views/OverlayView/useOverlayView.d.ts +4 -5
  299. package/ui/views/OverlayView/useOverlayView.js +2 -2
  300. package/ui/views/OverlayView/useOverlayView.js.map +1 -0
  301. package/ui/views/OverlayView.d.ts +4 -6
  302. package/ui/views/OverlayView.js.map +1 -0
  303. package/ui/views/SplitView/SplitViewPanelElement.d.ts +3 -3
  304. package/ui/views/SplitView/SplitViewPanelElement.js.map +1 -0
  305. package/ui/views/SplitView.d.ts +3 -3
  306. package/ui/views/SplitView.js.map +1 -0
@@ -1,4 +1,4 @@
1
- import * as React from "react";
1
+ import React from "react";
2
2
  import { Plugin } from "@webiny/plugins";
3
3
  interface Permission {
4
4
  name: string;
@@ -13,10 +13,10 @@ interface Config {
13
13
  system?: boolean;
14
14
  }
15
15
  export declare class PermissionRendererPlugin extends Plugin {
16
- static readonly type = "admin-app-permissions-renderer";
17
- private _config;
16
+ static readonly type: string;
17
+ private readonly _config;
18
18
  constructor(config?: Config);
19
19
  get system(): boolean;
20
- render(props: RenderParams): React.ReactElement;
20
+ render(props: RenderParams): React.ReactElement | null;
21
21
  }
22
22
  export {};
@@ -31,6 +31,10 @@ export var PermissionRendererPlugin = /*#__PURE__*/function (_Plugin) {
31
31
  }, {
32
32
  key: "render",
33
33
  value: function render(props) {
34
+ if (!this._config.render) {
35
+ return null;
36
+ }
37
+
34
38
  return this._config.render(props);
35
39
  }
36
40
  }]);
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["PermissionRendererPlugin.ts"],"names":["Plugin","PermissionRendererPlugin","config","_config","Boolean","system","props","render"],"mappings":";;;;;;AACA,SAASA,MAAT,QAAuB,iBAAvB;AAiBA,WAAaC,wBAAb;AAAA;;AAAA;;AAII,oCAAmBC,MAAnB,EAAoC;AAAA;;AAAA;;AAChC;;AADgC;;AAEhC,UAAKC,OAAL,GAAeD,MAAM,IAAI,EAAzB;AAFgC;AAGnC;;AAPL;AAAA;AAAA,SASI,eAAsB;AAClB,aAAOE,OAAO,CAAC,KAAKD,OAAL,CAAaE,MAAd,CAAd;AACH;AAXL;AAAA;AAAA,WAaI,gBAAcC,KAAd,EAA8D;AAC1D,UAAI,CAAC,KAAKH,OAAL,CAAaI,MAAlB,EAA0B;AACtB,eAAO,IAAP;AACH;;AACD,aAAO,KAAKJ,OAAL,CAAaI,MAAb,CAAoBD,KAApB,CAAP;AACH;AAlBL;;AAAA;AAAA,EAA8CN,MAA9C;;gBAAaC,wB,UACsC,gC","sourcesContent":["import React from \"react\";\nimport { Plugin } from \"@webiny/plugins\";\n\ninterface Permission {\n name: string;\n [key: string]: any;\n}\n\ninterface RenderParams {\n value: Permission[];\n onChange: (value: Permission[]) => void;\n}\n\ninterface Config {\n render(props: RenderParams): React.ReactElement;\n system?: boolean;\n}\n\nexport class PermissionRendererPlugin extends Plugin {\n public static override readonly type: string = \"admin-app-permissions-renderer\";\n private readonly _config: Partial<Config>;\n\n public constructor(config?: Config) {\n super();\n this._config = config || {};\n }\n\n get system(): boolean {\n return Boolean(this._config.system);\n }\n\n public render(props: RenderParams): React.ReactElement | null {\n if (!this._config.render) {\n return null;\n }\n return this._config.render(props);\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["fileDefault.tsx"],"names":["React","ReactComponent","FileIcon","css","FileManagerFileTypePlugin","style","centering","display","justifyContent","alignItems","height","types","render"],"mappings":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,cAAc,IAAIC,QAA3B;AACA,SAASC,GAAT,QAAoB,SAApB;AACA,SAASC,yBAAT;AAEA,IAAMC,KAAK,GAAG;AACVC,EAAAA,SAAS,eAAEH,GAAG,CAAC;AACXI,IAAAA,OAAO,EAAE,MADE;AAEXC,IAAAA,cAAc,EAAE,QAFL;AAGXC,IAAAA,UAAU,EAAE,QAHD;AAIXC,IAAAA,MAAM,EAAE;AAJG,GAAD;AADJ,CAAd;AASA,eAAe,IAAIN,yBAAJ,CAA8B;AACzCO,EAAAA,KAAK,EAAE,CAAC,KAAD,CADkC;AAEzCC,EAAAA,MAFyC,oBAEf;AACtB,wBACI;AAAK,MAAA,SAAS,EAAEP,KAAK,CAACC;AAAtB,oBACI,oBAAC,QAAD,OADJ,CADJ;AAKH;AARwC,CAA9B,CAAf","sourcesContent":["import * as React from \"react\";\nimport { ReactComponent as FileIcon } from \"./icons/round-description-24px.svg\";\nimport { css } from \"emotion\";\nimport { FileManagerFileTypePlugin } from \"~/plugins/FileManagerFileTypePlugin\";\n\nconst style = {\n centering: css({\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n height: 200\n })\n};\n\nexport default new FileManagerFileTypePlugin({\n types: [\"*/*\"],\n render(): React.ReactNode {\n return (\n <div className={style.centering}>\n <FileIcon />\n </div>\n );\n }\n});\n"]}
@@ -1,3 +1,7 @@
1
- /// <reference types="react" />
2
- declare const DeleteAction: (props: any) => JSX.Element;
1
+ import React from "react";
2
+ import { FileItem } from "../../../components/FileManager/types";
3
+ interface DeleteActionProps {
4
+ file: FileItem;
5
+ }
6
+ declare const DeleteAction: React.FC<DeleteActionProps>;
3
7
  export default DeleteAction;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["DeleteAction.tsx"],"names":["React","Tooltip","IconButton","useSnackbar","useMutation","i18n","t","ns","ReactComponent","DeleteIcon","DELETE_FILE","DeleteAction","props","file","showSnackbar","variables","id","deleteFile","margin"],"mappings":";;;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,OAAT,QAAwB,oBAAxB;AACA,SAASC,UAAT,QAA2B,mBAA3B;AACA,SAASC,WAAT;AACA,SAASC,WAAT,QAA4B,qBAA5B;AACA,SAASC,IAAT,QAAqB,kBAArB;AAEA,IAAMC,CAAC,GAAGD,IAAI,CAACE,EAAL,CAAQ,4CAAR,CAAV;AAEA,SAASC,cAAc,IAAIC,UAA3B;AACA,SAASC,WAAT;;AAKA,IAAMC,YAAyC,GAAG,SAA5CA,YAA4C,CAAAC,KAAK,EAAI;AACvD,MAAQC,IAAR,GAAiBD,KAAjB,CAAQC,IAAR;;AACA,qBAAyBV,WAAW,EAApC;AAAA,MAAQW,YAAR,gBAAQA,YAAR;;AACA,qBAAqBV,WAAW,CAACM,WAAD,EAAc;AAC1CK,IAAAA,SAAS,EAAE;AACPC,MAAAA,EAAE,EAAEH,IAAI,CAACG;AADF;AAD+B,GAAd,CAAhC;AAAA;AAAA,MAAOC,UAAP;;AAMA,sBACI,uDACI,oBAAC,OAAD;AAAS,IAAA,OAAO,eAAE,+CAAlB;AAA2C,IAAA,SAAS,EAAE;AAAtD,kBACI,oBAAC,UAAD;AACI,IAAA,IAAI,eAAE,oBAAC,UAAD;AAAY,MAAA,KAAK,EAAE;AAAEC,QAAAA,MAAM,EAAE;AAAV;AAAnB,MADV;AAEI,IAAA,OAAO,wEAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBACCD,UAAU,EADX;;AAAA;AAELH,cAAAA,YAAY,CAACR,CAAD,mFAAZ;;AAFK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAF;AAFX,IADJ,CADJ,CADJ;AAaH,CAtBD;;AAwBA,eAAeK,YAAf","sourcesContent":["import React from \"react\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { useSnackbar } from \"~/hooks/useSnackbar\";\nimport { useMutation } from \"@apollo/react-hooks\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { FileItem } from \"~/components/FileManager/types\";\nconst t = i18n.ns(\"app-admin/file-manager/files/delete-action\");\n\nimport { ReactComponent as DeleteIcon } from \"../../../components/FileManager/icons/delete.svg\";\nimport { DELETE_FILE } from \"~/components/FileManager/graphql\";\n\ninterface DeleteActionProps {\n file: FileItem;\n}\nconst DeleteAction: React.FC<DeleteActionProps> = props => {\n const { file } = props;\n const { showSnackbar } = useSnackbar();\n const [deleteFile] = useMutation(DELETE_FILE, {\n variables: {\n id: file.id\n }\n });\n\n return (\n <>\n <Tooltip content={<span>Edit image</span>} placement={\"bottom\"}>\n <IconButton\n icon={<DeleteIcon style={{ margin: \"0 8px 0 0\" }} />}\n onClick={async () => {\n await deleteFile();\n showSnackbar(t`File deleted.`);\n }}\n />\n </Tooltip>\n </>\n );\n};\n\nexport default DeleteAction;\n"]}
@@ -1,9 +1,10 @@
1
1
  import * as React from "react";
2
- declare type EditActionProps = {
3
- file: any;
4
- uploadFile: any;
5
- validateFiles: any;
6
- canEdit: (file: any) => boolean;
7
- };
2
+ import { FileItem } from "../../../components/FileManager/types";
3
+ interface EditActionProps {
4
+ file: FileItem;
5
+ uploadFile: (file: FileItem) => void;
6
+ validateFiles: (blobs: any[]) => Error[];
7
+ canEdit: (file: FileItem) => boolean;
8
+ }
8
9
  declare const EditAction: React.FC<EditActionProps>;
9
10
  export default EditAction;
@@ -3,7 +3,17 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
3
  import _objectSpread from "@babel/runtime/helpers/objectSpread2";
4
4
  import _regeneratorRuntime from "@babel/runtime/regenerator";
5
5
  import * as React from "react";
6
+ /**
7
+ * Package react-hotkeyz has no types.
8
+ */
9
+ // @ts-ignore
10
+
6
11
  import { Hotkeys } from "react-hotkeyz";
12
+ /**
13
+ * Package dataurl-to-blob has no types.
14
+ */
15
+ // @ts-ignore
16
+
7
17
  import dataURLtoBlob from "dataurl-to-blob";
8
18
  import { ImageEditorDialog } from "@webiny/ui/ImageUpload";
9
19
  import { Tooltip } from "@webiny/ui/Tooltip";
@@ -53,8 +63,7 @@ var reducer = function reducer(state, action) {
53
63
  }
54
64
 
55
65
  return next;
56
- }; // TODO: @adrian
57
-
66
+ };
58
67
 
59
68
  var EditAction = function EditAction(props) {
60
69
  var file = props.file,
@@ -86,23 +95,22 @@ var EditAction = function EditAction(props) {
86
95
  }
87
96
  }),
88
97
  onClick: /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
98
+ var dataUrl;
89
99
  return _regeneratorRuntime.wrap(function _callee$(_context) {
90
100
  while (1) {
91
101
  switch (_context.prev = _context.next) {
92
102
  case 0:
93
- _context.t0 = dispatch;
94
- _context.next = 3;
103
+ _context.next = 2;
95
104
  return toDataUrl(file.src);
96
105
 
97
- case 3:
98
- _context.t1 = _context.sent;
99
- _context.t2 = {
106
+ case 2:
107
+ dataUrl = _context.sent;
108
+ dispatch({
100
109
  type: "setDataUrl",
101
- dataUrl: _context.t1
102
- };
103
- (0, _context.t0)(_context.t2);
110
+ dataUrl: dataUrl
111
+ });
104
112
 
105
- case 6:
113
+ case 4:
106
114
  case "end":
107
115
  return _context.stop();
108
116
  }
@@ -127,6 +135,11 @@ var EditAction = function EditAction(props) {
127
135
  var errors = validateFiles([blob]);
128
136
 
129
137
  if (errors.length) {
138
+ /**
139
+ * TODO @ts-refactor
140
+ * Figure out if incoming errors var is wrong or the one in the outputFileSelectionError
141
+ */
142
+ // @ts-ignore
130
143
  showSnackbar(outputFileSelectionError(errors));
131
144
  } else {
132
145
  blob.name = file.name;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["EditAction.tsx"],"names":["React","Hotkeys","dataURLtoBlob","ImageEditorDialog","Tooltip","IconButton","outputFileSelectionError","useSnackbar","ReactComponent","EditIcon","toDataUrl","url","Promise","resolve","xhr","window","XMLHttpRequest","onload","reader","FileReader","onloadend","result","readAsDataURL","response","open","responseType","send","initialState","showImageEditor","dataUrl","reducer","state","action","next","type","EditAction","props","file","uploadFile","validateFiles","canEdit","useReducer","dispatch","showSnackbar","margin","src","blob","errors","length","name"],"mappings":"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","sourcesContent":["import * as React from \"react\";\n/**\n * Package react-hotkeyz has no types.\n */\n// @ts-ignore\nimport { Hotkeys } from \"react-hotkeyz\";\n/**\n * Package dataurl-to-blob has no types.\n */\n// @ts-ignore\nimport dataURLtoBlob from \"dataurl-to-blob\";\nimport { ImageEditorDialog } from \"@webiny/ui/ImageUpload\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport outputFileSelectionError from \"../../../components/FileManager/outputFileSelectionError\";\nimport { useSnackbar } from \"~/hooks/useSnackbar\";\nimport { ReactComponent as EditIcon } from \"../icons/edit.svg\";\nimport { FileItem } from \"~/components/FileManager/types\";\n\nfunction toDataUrl(url: string): Promise<string> {\n return new Promise((resolve: (value: string) => void) => {\n const xhr = new window.XMLHttpRequest();\n xhr.onload = function () {\n const reader = new window.FileReader();\n reader.onloadend = function () {\n resolve(reader.result as string);\n };\n reader.readAsDataURL(xhr.response);\n };\n xhr.open(\"GET\", url);\n xhr.responseType = \"blob\";\n xhr.send();\n });\n}\ninterface State {\n showImageEditor: boolean;\n dataUrl: string | null;\n}\ninterface Action {\n type: \"setDataUrl\" | \"hideImageEditor\";\n dataUrl?: string | null;\n}\nconst initialState: State = {\n showImageEditor: false,\n dataUrl: null\n};\nconst reducer = (state: State, action: Action): State => {\n const next: State = { ...state };\n\n switch (action.type) {\n case \"setDataUrl\":\n next.dataUrl = action.dataUrl as string;\n next.showImageEditor = true;\n break;\n case \"hideImageEditor\":\n next.dataUrl = null;\n next.showImageEditor = false;\n break;\n }\n\n return next;\n};\n\ninterface EditActionProps {\n file: FileItem;\n uploadFile: (file: FileItem) => void;\n validateFiles: (blobs: any[]) => Error[];\n canEdit: (file: FileItem) => boolean;\n}\n\nconst EditAction: React.FC<EditActionProps> = props => {\n const { file, uploadFile, validateFiles, canEdit } = props;\n const [state, dispatch] = React.useReducer(reducer, initialState);\n const { showSnackbar } = useSnackbar();\n // Render nothing if the user don't have required permission for \"edit\".\n if (!canEdit(file)) {\n return null;\n }\n\n return (\n <>\n <Tooltip content={<span>Edit image</span>} placement={\"bottom\"}>\n <IconButton\n data-testid={\"fm-edit-image-button\"}\n icon={<EditIcon style={{ margin: \"0 8px 0 0\" }} />}\n onClick={async () => {\n const dataUrl = await toDataUrl(file.src);\n dispatch({ type: \"setDataUrl\", dataUrl });\n }}\n />\n </Tooltip>\n <Hotkeys zIndex={60} disabled={!state.dataUrl}>\n <ImageEditorDialog\n data-testid={\"fm-image-editor-dialog\"}\n dialogZIndex={100}\n open={state.showImageEditor}\n src={state.dataUrl as string}\n onClose={() => dispatch({ type: \"hideImageEditor\" })}\n onAccept={src => {\n const blob = dataURLtoBlob(src);\n const errors = validateFiles([blob]);\n\n if (errors.length) {\n /**\n * TODO @ts-refactor\n * Figure out if incoming errors var is wrong or the one in the outputFileSelectionError\n */\n // @ts-ignore\n showSnackbar(outputFileSelectionError(errors));\n } else {\n blob.name = file.name;\n uploadFile(blob);\n }\n\n dispatch({ type: \"hideImageEditor\" });\n }}\n />\n </Hotkeys>\n </>\n );\n};\n\nexport default EditAction;\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["index.tsx"],"names":["React","css","Image","EditAction","FileManagerFileTypePlugin","styles","maxHeight","maxWidth","width","position","top","left","transform","types","actions","render","file","src","name"],"mappings":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,GAAT,QAAoB,SAApB;AACA,SAASC,KAAT,QAAsB,wBAAtB;AAEA,OAAOC,UAAP;AACA,SAASC,yBAAT;AAEA,IAAMC,MAAM,gBAAGJ,GAAG,CAAC;AACfK,EAAAA,SAAS,EAAE,GADI;AAEfC,EAAAA,QAAQ,EAAE,GAFK;AAGfC,EAAAA,KAAK,EAAE,MAHQ;AAIfC,EAAAA,QAAQ,EAAE,UAJK;AAKfC,EAAAA,GAAG,EAAE,KALU;AAMfC,EAAAA,IAAI,EAAE,KANS;AAOfC,EAAAA,SAAS,EAAE;AAPI,CAAD,kBAAlB;AAUA,eAAe,IAAIR,yBAAJ,CAA8B;AACzCS,EAAAA,KAAK,EAAE,CAAC,SAAD,CADkC;AAEzCC,EAAAA,OAAO,EAAE,CAACX,UAAD,CAFgC;AAGzCY,EAAAA,MAHyC,wBAGxB;AAAA,QAARC,IAAQ,QAARA,IAAQ;AACb,wBACI,oBAAC,KAAD;AAAO,MAAA,SAAS,EAAEX,MAAlB;AAA0B,MAAA,GAAG,EAAEW,IAAI,CAACC,GAApC;AAAyC,MAAA,GAAG,EAAED,IAAI,CAACE,IAAnD;AAAyD,MAAA,SAAS,EAAE;AAAEV,QAAAA,KAAK,EAAE;AAAT;AAApE,MADJ;AAGH;AAPwC,CAA9B,CAAf","sourcesContent":["import * as React from \"react\";\nimport { css } from \"emotion\";\nimport { Image } from \"@webiny/app/components\";\n\nimport EditAction from \"./EditAction\";\nimport { FileManagerFileTypePlugin } from \"~/plugins/FileManagerFileTypePlugin\";\n\nconst styles = css({\n maxHeight: 200,\n maxWidth: 200,\n width: \"auto\",\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n transform: \"translateX(-50%) translateY(-50%)\"\n});\n\nexport default new FileManagerFileTypePlugin({\n types: [\"image/*\"],\n actions: [EditAction],\n render({ file }) {\n return (\n <Image className={styles} src={file.src} alt={file.name} transform={{ width: 300 }} />\n );\n }\n});\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["index.ts"],"names":["fileDefault","fileImage"],"mappings":"AAAA,OAAOA,WAAP;AACA,OAAOC,SAAP;AAEA,eAAe,CAACD,WAAD,EAAcC,SAAd,CAAf","sourcesContent":["import fileDefault from \"./fileDefault\";\nimport fileImage from \"./fileImage\";\n\nexport default [fileDefault, fileImage];\n"]}
@@ -1,6 +1,15 @@
1
- import * as React from "react";
2
- declare const _default: React.FC<unknown> & {
3
- original: React.ComponentType<unknown>;
4
- originalName: string;
5
- };
1
+ import { AdminGlobalSearchPlugin, AdminGlobalSearchPreventHotkeyPlugin } from "../../types";
2
+ export interface SearchBarState {
3
+ active: boolean;
4
+ searchTerm: {
5
+ previous: string;
6
+ current: string;
7
+ };
8
+ plugins: {
9
+ list: ReadonlyArray<AdminGlobalSearchPlugin>;
10
+ hotKeys: ReadonlyArray<AdminGlobalSearchPreventHotkeyPlugin>;
11
+ current?: AdminGlobalSearchPlugin;
12
+ };
13
+ }
14
+ declare const _default: import("../../index").ComposableFC<{}>;
6
15
  export default _default;
@@ -11,6 +11,11 @@ import { useRouter } from "@webiny/react-router";
11
11
  import Downshift from "downshift";
12
12
  import { plugins } from "@webiny/plugins";
13
13
  import classnames from "classnames";
14
+ /**
15
+ * Package react-hotkeyz does not have types.
16
+ */
17
+ // @ts-ignore
18
+
14
19
  import { Hotkeys } from "react-hotkeyz"; // UI components
15
20
 
16
21
  import { Icon } from "@webiny/ui/Icon";
@@ -80,6 +85,10 @@ var SearchBar = /*#__PURE__*/function (_React$Component) {
80
85
 
81
86
  e.preventDefault();
82
87
 
88
+ if (!_this.input.current) {
89
+ return;
90
+ }
91
+
83
92
  _this.input.current.focus();
84
93
  });
85
94
 
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["SearchBar.tsx"],"names":["React","set","useRouter","Downshift","plugins","classnames","Hotkeys","Icon","Elevation","SearchBarDropdown","ReactComponent","SearchIcon","SearchBarWrapper","SearchBarInputWrapper","SearchShortcut","searchBarInput","icon","searchWrapper","makeComposable","SearchBar","props","active","searchTerm","previous","current","list","byType","hotKeys","undefined","createRef","e","i","state","length","hotKey","preventOpen","preventDefault","input","focus","plugin","setState","newState","query","URLSearchParams","search","JSON","stringify","history","push","pathname","route","toString","find","p","location","parse","get","downshift","item","label","downshiftProps","isOpen","openMenu","closeMenu","getInputProps","width","esc","document","activeElement","blur","handleOpenHotkey","cancelSearchTerm","enter","setTimeout","selectedItem","submitSearchTerm","placeholder","className","ref","value","onClick","onBlur","onFocus","onChange","target","Component","SearchBarContainer","routerProps"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { set } from \"dot-prop-immutable\";\nimport { useRouter, UseRouter } from \"@webiny/react-router\";\nimport Downshift from \"downshift\";\nimport { plugins } from \"@webiny/plugins\";\nimport { AdminGlobalSearchPlugin, AdminGlobalSearchPreventHotkeyPlugin } from \"~/types\";\nimport classnames from \"classnames\";\n/**\n * Package react-hotkeyz does not have types.\n */\n// @ts-ignore\nimport { Hotkeys } from \"react-hotkeyz\";\n\n// UI components\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { Elevation } from \"@webiny/ui/Elevation\";\nimport SearchBarDropdown from \"./SearchBarDropdown\";\n\n// Icons\nimport { ReactComponent as SearchIcon } from \"./icons/round-search-24px.svg\";\n\n// Local components\nimport {\n SearchBarWrapper,\n SearchBarInputWrapper,\n SearchShortcut,\n searchBarInput,\n icon,\n searchWrapper\n} from \"./styled\";\nimport { makeComposable } from \"~/index\";\n\ntype SearchBarProps = UseRouter;\n\nexport interface SearchBarState {\n active: boolean;\n searchTerm: { previous: string; current: string };\n plugins: {\n list: ReadonlyArray<AdminGlobalSearchPlugin>;\n hotKeys: ReadonlyArray<AdminGlobalSearchPreventHotkeyPlugin>;\n current?: AdminGlobalSearchPlugin;\n };\n}\n\nclass SearchBar extends React.Component<SearchBarProps, SearchBarState> {\n public override state: SearchBarState = {\n active: false,\n searchTerm: {\n previous: \"\",\n current: \"\"\n },\n plugins: {\n // List of all registered \"admin-global-search\" plugins.\n get list() {\n return plugins.byType<AdminGlobalSearchPlugin>(\"admin-global-search\");\n },\n hotKeys: plugins.byType<AdminGlobalSearchPreventHotkeyPlugin>(\n \"admin-global-search-prevent-hotkey\"\n ),\n // Current plugin - set by examining current route and its query params (on construct).\n current: undefined\n }\n };\n\n /**\n * Helps us trigger some of the downshift's methods (eg. clearSelection) and helps us to avoid adding state.\n */\n public readonly downshift: any = React.createRef();\n\n /**\n * At some point we must programmatically focus the input.\n */\n private readonly input = React.createRef<HTMLInputElement>();\n\n /**\n * Let's check if current route is defined in one of the registered plugins.\n * If so, then check current route query for search term and set it as default value of search input.\n * @param props\n */\n constructor(props: SearchBarProps) {\n super(props);\n this.state.plugins.current = this.state.plugins.list.find(\n p => p.route === props.location.pathname\n );\n\n if (this.state.plugins.current) {\n let search;\n const query = new URLSearchParams(props.location.search);\n try {\n search = JSON.parse(query.get(\"search\") || \"\").query;\n } catch (e) {\n search = query.get(\"search\");\n }\n\n this.state.searchTerm.current = search || \"\";\n this.state.searchTerm.previous = this.state.searchTerm.current;\n }\n }\n\n private readonly handleOpenHotkey = (e: React.KeyboardEvent): void => {\n for (let i = 0; i < this.state.plugins.hotKeys.length; i++) {\n const hotKey = this.state.plugins.hotKeys[i];\n if (hotKey.preventOpen(e)) {\n return;\n }\n }\n\n e.preventDefault();\n if (!this.input.current) {\n return;\n }\n this.input.current.focus();\n };\n\n /**\n * Re-routes to given route (provided by the plugin) with needed search query params.\n * It also manages previous and current search terms and automatically highlighted item in dropdown.\n * @param plugin\n */\n public readonly submitSearchTerm = (plugin: AdminGlobalSearchPlugin): void => {\n this.setState(\n state => {\n const newState = set(state, \"searchTerm.previous\", state.searchTerm.current);\n return set(newState, \"plugins.current\", plugin) as any;\n },\n () => {\n const query = new URLSearchParams();\n\n if (this.state.searchTerm.current) {\n // If \"search\" key in the plugin was defined, it means SearchInput values were set. Otherwise,\n // we need to send the plain string into the \"search\" query param. This behavior was needed\n // eg. for pages, since Page entity doesn't use regular SearchInput type, but plain string.\n if (plugin.search) {\n query.set(\n \"search\",\n JSON.stringify({\n query: this.state.searchTerm.current,\n ...plugin.search\n })\n );\n } else {\n query.set(\"search\", this.state.searchTerm.current);\n }\n }\n\n this.props.history.push({\n pathname: plugin.route,\n search: query.toString()\n });\n }\n );\n };\n\n private readonly cancelSearchTerm = (): void => {\n this.setState(state => {\n state.searchTerm.current = state.searchTerm.previous;\n return state;\n });\n };\n\n public override render() {\n return (\n <Downshift ref={this.downshift} itemToString={item => item && item.label}>\n {downshiftProps => {\n const { isOpen, openMenu, closeMenu, getInputProps } = downshiftProps;\n\n return (\n <div style={{ width: \"100%\" }}>\n <Hotkeys\n zIndex={10}\n keys={{\n // @ts-ignore\n esc: () => document.activeElement.blur(),\n \"/\": this.handleOpenHotkey\n }}\n />\n\n <Hotkeys\n zIndex={11}\n disabled={!isOpen}\n keys={{\n esc: () => {\n this.cancelSearchTerm();\n closeMenu();\n },\n enter: () =>\n setTimeout(() => {\n const { selectedItem } = this.downshift.current.state;\n if (selectedItem) {\n closeMenu();\n this.submitSearchTerm(selectedItem);\n }\n })\n }}\n />\n\n <Elevation\n className={classnames(searchWrapper, { active: this.state.active })}\n z={0}\n >\n <SearchBarWrapper>\n <SearchBarInputWrapper>\n <Icon className={icon} icon={<SearchIcon />} />\n\n <React.Fragment>\n <input\n {...getInputProps({\n placeholder: \"Search...\",\n className: classnames(\n \"mdc-text-field__input\",\n searchBarInput\n ),\n ref: this.input,\n value: this.state.searchTerm.current,\n // @ts-ignore\n onClick: openMenu,\n onBlur: () => {\n this.cancelSearchTerm();\n this.setState({ active: false });\n },\n onFocus: () => {\n this.setState({ active: true });\n openMenu();\n },\n onChange: (\n e: React.ChangeEvent<HTMLInputElement>\n ) => {\n const value = e.target.value || \"\";\n this.setState(state => {\n state.searchTerm.current = value;\n return state;\n });\n }\n })}\n />\n </React.Fragment>\n\n <SearchShortcut>/</SearchShortcut>\n </SearchBarInputWrapper>\n </SearchBarWrapper>\n {isOpen && <SearchBarDropdown context={this} />}\n </Elevation>\n </div>\n );\n }}\n </Downshift>\n );\n }\n}\n\nconst SearchBarContainer: React.FC = () => {\n const routerProps = useRouter();\n\n return <SearchBar {...routerProps} />;\n};\n\nexport default makeComposable(\"SearchBarContainer\", SearchBarContainer);\n"]}
@@ -1,5 +1,23 @@
1
1
  import * as React from "react";
2
- export default class SearchBarDropdown extends React.Component<any> {
2
+ import { AdminGlobalSearchPlugin } from "../../types";
3
+ import { Actions as DownshiftActions, DownshiftState, PropGetters } from "downshift";
4
+ import { SearchBarState } from "./SearchBar";
5
+ interface SearchBarDropdownPropsContextDownshiftCurrent extends DownshiftActions<any>, PropGetters<any> {
6
+ state: DownshiftState<any>;
7
+ }
8
+ interface SearchBarDropdownPropsContextDownshift {
9
+ current: SearchBarDropdownPropsContextDownshiftCurrent;
10
+ }
11
+ interface SearchBarDropdownPropsContext {
12
+ downshift: SearchBarDropdownPropsContextDownshift;
13
+ submitSearchTerm: (item: AdminGlobalSearchPlugin) => void;
14
+ state: SearchBarState;
15
+ }
16
+ interface SearchBarDropdownProps {
17
+ context: SearchBarDropdownPropsContext;
18
+ }
19
+ export default class SearchBarDropdown extends React.Component<SearchBarDropdownProps> {
3
20
  componentDidMount(): void;
4
21
  render(): JSX.Element;
5
22
  }
23
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["SearchBarDropdown.tsx"],"names":["React","classnames","List","ListItem","ListItemGraphic","ListItemText","ListItemMeta","searchBarDropdown","iconSearchType","Elevation","Icon","ReactComponent","SearchIcon","SearchBarDropdown","props","context","downshift","current","plugins","state","selectItem","setHighlightedIndex","list","indexOf","openMenu","submitSearchTerm","searchTerm","getMenuProps","getItemProps","selectedItem","highlightedIndex","map","item","index","itemClassNames","highlighted","selected","route","className","onClick","label","Component"],"mappings":";;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AAEA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAASC,IAAT,EAAeC,QAAf,EAAyBC,eAAzB,EAA0CC,YAA1C,EAAwDC,YAAxD,QAA4E,iBAA5E;AACA,SAASC,iBAAT,EAA4BC,cAA5B;AACA,SAASC,SAAT,QAA0B,sBAA1B;AACA,SAASC,IAAT,QAAqB,iBAArB;AAEA,SAASC,cAAc,IAAIC,UAA3B;;IAmBqBC,iB;;;;;;;;;;;;;WACjB,6BAAoC;AAChC,gCAKI,KAAKC,KALT,CACIC,OADJ;AAAA,UAE8BC,SAF9B,uBAEQA,SAFR,CAEqBC,OAFrB;AAAA,UAGiBC,OAHjB,uBAGQC,KAHR,CAGiBD,OAHjB;AAOAF,MAAAA,SAAS,CAACI,UAAV,CAAqBF,OAAO,CAACD,OAA7B;AACAD,MAAAA,SAAS,CAACK,mBAAV,CACIH,OAAO,CAACI,IAAR,CAAaC,OAAb,CAAqBL,OAAO,CAACD,OAA7B,CADJ;AAGAD,MAAAA,SAAS,CAACQ,QAAV;AACH;;;WAED,kBAAyB;AACrB,iCAMI,KAAKV,KANT,CACIC,OADJ;AAAA,UAE8BC,SAF9B,wBAEQA,SAFR,CAEqBC,OAFrB;AAAA,UAGQQ,gBAHR,wBAGQA,gBAHR;AAAA,uDAIQN,KAJR;AAAA,UAIiBD,OAJjB,yBAIiBA,OAJjB;AAAA,UAI0BQ,UAJ1B,yBAI0BA,UAJ1B;AAQA,UACIC,YADJ,GAIIX,SAJJ,CACIW,YADJ;AAAA,UAEIC,YAFJ,GAIIZ,SAJJ,CAEIY,YAFJ;AAAA,6BAIIZ,SAJJ,CAGIG,KAHJ;AAAA,UAGaU,YAHb,oBAGaA,YAHb;AAAA,UAG2BC,gBAH3B,oBAG2BA,gBAH3B;AAMA,0BACI,oBAAC,SAAD;AAAW,QAAA,CAAC,EAAE,CAAd;AAAiB,QAAA,SAAS,EAAEvB;AAA5B,sBACI,oBAAC,IAAD,EAAUoB,YAAY,EAAtB,EACKT,OAAO,CAACI,IAAR,CAAaS,GAAb,CAAiB,UAACC,IAAD,EAAgCC,KAAhC,EAA0C;AACxD;AACA,YAAMC,cAAc,GAAG;AACnBC,UAAAA,WAAW,EAAEL,gBAAgB,KAAKG,KADf;AAEnBG,UAAAA,QAAQ,EAAE;AAFS,SAAvB,CAFwD,CAOxD;;AACA,YAAIP,YAAY,IAAIA,YAAY,KAAKG,IAArC,EAA2C;AACvCE,UAAAA,cAAc,CAACE,QAAf,GAA0B,IAA1B;AACH;;AAED,4BACI,oBAAC,QAAD;AACI,UAAA,GAAG,EAAEJ,IAAI,CAACK;AADd,WAEQT,YAAY,CAAC;AACbK,UAAAA,KAAK,EAALA,KADa;AAEbD,UAAAA,IAAI,EAAJA,IAFa;AAGbM,UAAAA,SAAS,EAAErC,UAAU,CAACiC,cAAD,CAHR;AAIbK,UAAAA,OAAO,EAAE;AAAA,mBAAMd,gBAAgB,CAACO,IAAD,CAAtB;AAAA;AAJI,SAAD,CAFpB,gBASI,oBAAC,eAAD,qBACI,oBAAC,IAAD;AAAM,UAAA,SAAS,EAAExB,cAAjB;AAAiC,UAAA,IAAI,eAAE,oBAAC,UAAD;AAAvC,UADJ,CATJ,eAYI,oBAAC,YAAD,QACKkB,UAAU,CAACT,OAAX,IAAsB,mBAD3B,CAZJ,eAeI,oBAAC,YAAD,eAAkBe,IAAI,CAACQ,KAAvB,CAfJ,CADJ;AAmBH,OA/BA,CADL,CADJ,CADJ;AAsCH;;;;EArE0CxC,KAAK,CAACyC,S;;SAAhC5B,iB","sourcesContent":["import * as React from \"react\";\nimport { AdminGlobalSearchPlugin } from \"~/types\";\nimport classnames from \"classnames\";\nimport { List, ListItem, ListItemGraphic, ListItemText, ListItemMeta } from \"@webiny/ui/List\";\nimport { searchBarDropdown, iconSearchType } from \"./styled\";\nimport { Elevation } from \"@webiny/ui/Elevation\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { Actions as DownshiftActions, DownshiftState, PropGetters } from \"downshift\";\nimport { ReactComponent as SearchIcon } from \"./icons/round-search-24px.svg\";\nimport { SearchBarState } from \"~/plugins/globalSearch/SearchBar\";\n\ninterface SearchBarDropdownPropsContextDownshiftCurrent\n extends DownshiftActions<any>,\n PropGetters<any> {\n state: DownshiftState<any>;\n}\ninterface SearchBarDropdownPropsContextDownshift {\n current: SearchBarDropdownPropsContextDownshiftCurrent;\n}\ninterface SearchBarDropdownPropsContext {\n downshift: SearchBarDropdownPropsContextDownshift;\n submitSearchTerm: (item: AdminGlobalSearchPlugin) => void;\n state: SearchBarState;\n}\ninterface SearchBarDropdownProps {\n context: SearchBarDropdownPropsContext;\n}\nexport default class SearchBarDropdown extends React.Component<SearchBarDropdownProps> {\n public override componentDidMount() {\n const {\n context: {\n downshift: { current: downshift },\n state: { plugins }\n }\n } = this.props;\n\n downshift.selectItem(plugins.current);\n downshift.setHighlightedIndex(\n plugins.list.indexOf(plugins.current as AdminGlobalSearchPlugin)\n );\n downshift.openMenu();\n }\n\n public override render() {\n const {\n context: {\n downshift: { current: downshift },\n submitSearchTerm,\n state: { plugins, searchTerm }\n }\n } = this.props;\n\n const {\n getMenuProps,\n getItemProps,\n state: { selectedItem, highlightedIndex }\n } = downshift;\n\n return (\n <Elevation z={2} className={searchBarDropdown}>\n <List {...getMenuProps()}>\n {plugins.list.map((item: AdminGlobalSearchPlugin, index) => {\n // Base classes.\n const itemClassNames = {\n highlighted: highlightedIndex === index,\n selected: false\n };\n\n // Add \"selected\" class if the item is selected.\n if (selectedItem && selectedItem === item) {\n itemClassNames.selected = true;\n }\n\n return (\n <ListItem\n key={item.route}\n {...getItemProps({\n index,\n item,\n className: classnames(itemClassNames),\n onClick: () => submitSearchTerm(item)\n })}\n >\n <ListItemGraphic>\n <Icon className={iconSearchType} icon={<SearchIcon />} />\n </ListItemGraphic>\n <ListItemText>\n {searchTerm.current || \"Search for all...\"}\n </ListItemText>\n <ListItemMeta>in {item.label}</ListItemMeta>\n </ListItem>\n );\n })}\n </List>\n </Elevation>\n );\n }\n}\n"]}
@@ -1,5 +1,6 @@
1
+ import React from "react";
1
2
  export declare const globalSearchHotkey: {
2
3
  type: string;
3
4
  name: string;
4
- preventOpen(e: any): boolean;
5
+ preventOpen(e: React.ChangeEvent<HTMLInputElement>): boolean;
5
6
  };
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["index.tsx"],"names":["globalSearchHotkey","type","name","preventOpen","e","ignoreNodes","includes","target","nodeName"],"mappings":"AAEA,OAAO,IAAMA,kBAAkB,GAAG;AAC9BC,EAAAA,IAAI,EAAE,oCADwB;AAE9BC,EAAAA,IAAI,EAAE,0CAFwB;AAG9BC,EAAAA,WAH8B,uBAGlBC,CAHkB,EAG+B;AACzD;AACA,QAAMC,WAAW,GAAG,CAAC,OAAD,EAAU,UAAV,CAApB;AAEA,WAAOA,WAAW,CAACC,QAAZ,CAAqBF,CAAC,CAACG,MAAF,CAASC,QAA9B,CAAP;AACH;AAR6B,CAA3B","sourcesContent":["import React from \"react\";\n\nexport const globalSearchHotkey = {\n type: \"admin-global-search-prevent-hotkey\",\n name: \"admin-global-search-prevent-hotkey-input\",\n preventOpen(e: React.ChangeEvent<HTMLInputElement>): boolean {\n // Define a list of all node types we want to prevent the event from.\n const ignoreNodes = [\"INPUT\", \"TEXTAREA\"];\n\n return ignoreNodes.includes(e.target.nodeName);\n }\n};\n"]}
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
- export declare const SearchShortcut: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "hidden" | "dir" | "slot" | "style" | "title" | "color" | "translate" | "children" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "draggable" | "id" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture">, object>;
3
- export declare const SearchBarWrapper: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "hidden" | "dir" | "slot" | "style" | "title" | "color" | "translate" | "children" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "draggable" | "id" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture">, object>;
4
- export declare const SearchBarInputWrapper: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "hidden" | "dir" | "slot" | "style" | "title" | "color" | "translate" | "children" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "draggable" | "id" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture">, object>;
2
+ export declare const SearchShortcut: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement>>, object>;
3
+ export declare const SearchBarWrapper: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement>>, object>;
4
+ export declare const SearchBarInputWrapper: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement>>, object>;
5
5
  export declare const searchBarInput: string;
6
6
  export declare const searchBarDropdown: string;
7
7
  export declare const icon: string;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["styled.ts"],"names":["css","styled","SearchShortcut","border","color","borderRadius","width","height","marginTop","textAlign","fontSize","paddingTop","boxSizing","cursor","opacity","SearchBarWrapper","display","SearchBarInputWrapper","position","searchBarInput","lineHeight","outline","backgroundColor","paddingLeft","borderBottom","searchBarDropdown","background","left","top","zIndex","padding","fontWeight","icon","paddingRight","iconSearchType","searchWrapper","transition","boxShadow","input"],"mappings":"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","sourcesContent":["// TODO remove\n// @ts-nocheck\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\n\nexport const SearchShortcut = styled(\"div\")({\n border: \"1px solid var(--mdc-theme-surface)\",\n color: \"var(--mdc-theme-surface)\",\n borderRadius: 5,\n width: 20,\n height: 24,\n marginTop: 1,\n textAlign: \"center\",\n fontSize: \"12px\",\n paddingTop: \"3px\",\n boxSizing: \"border-box\",\n cursor: \"default\",\n opacity: \"0.8\"\n});\n\nexport const SearchBarWrapper = styled(\"div\")({\n display: \"flex\",\n width: \"100%\"\n});\n\nexport const SearchBarInputWrapper = styled(\"div\")({\n display: \"flex\",\n width: \"100%\",\n position: \"relative\"\n});\n\nexport const searchBarInput = css({\n width: \"100%\",\n lineHeight: 1,\n border: \"none\",\n outline: \"none\",\n backgroundColor: \"transparent\",\n \"&.mdc-text-field__input\": {\n paddingTop: \"5px !important\",\n paddingLeft: \"10px !important\",\n borderBottom: \"none !important\",\n height: \"25px !important\",\n color: \"var(--mdc-theme-surface)\",\n \"&::placeholder\": {\n color: \"var(--mdc-theme-surface) !important\",\n opacity: \"1 !important\"\n },\n \"&:focus::placeholder\": {\n color: \"var(--mdc-theme-text-secondary-on-background) !important\"\n }\n }\n});\n\nexport const searchBarDropdown = css({\n position: \"absolute\",\n background: \"white\",\n left: -1,\n width: \"calc(100% + 2px)\",\n top: 45,\n zIndex: 2,\n color: \"var(--mdc-theme-on-surface)\",\n borderRadius: \"0 0 5px 5px\",\n \".mdc-list\": {\n padding: 0,\n \".mdc-list-item\": {\n \"&.selected\": {\n fontWeight: \"bold\"\n },\n \"&.highlighted\": {\n backgroundColor: \"var(--mdc-theme-on-background)\"\n }\n }\n }\n});\n\nexport const icon = css({\n \"&.mdc-button__icon\": {\n width: \"auto !important\",\n paddingRight: 5,\n opacity: 0.75,\n marginTop: 2\n }\n});\n\nexport const iconSearchType = css({\n cursor: \"pointer\",\n paddingLeft: 5\n});\n\nexport const searchWrapper = css({\n backgroundColor: \"rgba(0, 0, 0, 0.1)\",\n display: \"flex\",\n padding: \"10px 20px\",\n position: \"relative\",\n borderRadius: 4,\n transition: \"background 100ms ease-in,width 100ms ease-out\",\n color: \"var(--mdc-theme-surface)\",\n border: \"1px solid transparent\",\n \"&.active\": {\n color: \"var(--mdc-theme-on-surface)\",\n border: \"1px solid var(--mdc-theme-text-hint-on-dark)\",\n background: \"var(--mdc-theme-surface)\",\n boxShadow: \"0 1px 1px var(--mdc-theme-text-hint-on-dark)\",\n input: {\n color: \"var(--mdc-theme-on-surface)\"\n },\n [SearchShortcut]: {\n display: \"none\"\n }\n },\n input: {\n color: \"var(--mdc-theme-surface)\"\n }\n});\n"]}
@@ -1,6 +1,7 @@
1
+ /// <reference types="react" />
1
2
  declare const _default: () => (import("./FileManagerFileTypePlugin").FileManagerFileTypePlugin[] | import("@webiny/ui-composer/UILayout").UILayoutPlugin<import("@webiny/ui-composer/UILayout").UILayout> | {
2
3
  type: string;
3
4
  name: string;
4
- preventOpen(e: any): boolean;
5
+ preventOpen(e: import("react").ChangeEvent<HTMLInputElement>): boolean;
5
6
  })[];
6
7
  export default _default;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["index.ts"],"names":["fileManager","uiLayoutRenderer","globalSearchHotkey"],"mappings":"AAAA,OAAOA,WAAP;AACA,OAAOC,gBAAP;AACA,SAASC,kBAAT;AAEA,gBAAe;AAAA,SAAM,CAACF,WAAD,EAAcE,kBAAd,EAAkCD,gBAAlC,CAAN;AAAA,CAAf","sourcesContent":["import fileManager from \"./fileManager\";\nimport uiLayoutRenderer from \"./uiLayoutRenderer\";\nimport { globalSearchHotkey } from \"./globalSearch\";\n\nexport default () => [fileManager, globalSearchHotkey, uiLayoutRenderer];\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["index.tsx"],"names":["React","Fragment","Cell","Grid","GridInner","UILayoutPlugin","getElementKey","element","constructor","name","id","ElementID","children","layout","setRenderer","props","hasParentGrid","getGrid","getLayout","map","row","index","item","getElement","console","warn","shouldRender","render","GridComponent","width"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,QAAhB,QAAgC,OAAhC;AACA,SAASC,IAAT,EAAeC,IAAf,EAAqBC,SAArB,QAAsC,iBAAtC;AACA,SAASC,cAAT;;AAGA,SAASC,aAAT,CAAuBC,OAAvB,EAA2C;AACvC,mBAAUA,OAAO,CAACC,WAAR,CAAoBC,IAA9B,cAAsCF,OAAO,CAACG,EAA9C;AACH;;AAED,IAAMC,SAAmB,GAAG,SAAtBA,SAAsB,OAAkB;AAAA,MAAfC,QAAe,QAAfA,QAAe;AAC1C,SAAOA,QAAP;AACH,CAFD;;AAIA,eAAe,IAAIP,cAAJ,CAAmB,UAAAQ,MAAM,EAAI;AACxCA,EAAAA,MAAM,CAACC,WAAP,CAAmB,iBAAsC;AAAA,QAAnCD,MAAmC,SAAnCA,MAAmC;AAAA,QAA3BE,KAA2B,SAA3BA,KAA2B;AAAA,QAApBC,aAAoB,SAApBA,aAAoB;;AACrD,QAAI,CAACH,MAAM,CAACI,OAAP,EAAL,EAAuB;AACnB,0BACI,oBAAC,QAAD,QACKJ,MAAM,CAACK,SAAP,GAAmBC,GAAnB,CAAuB,UAACC,GAAD,EAAMC,KAAN;AAAA,4BACpB,oBAAC,QAAD;AAAU,UAAA,GAAG,EAAEA;AAAf,WACKD,GAAG,CAACD,GAAJ,CAAQ,UAAAG,IAAI,EAAI;AACb,cAAMf,OAAO,GAAGM,MAAM,CAACU,UAAP,CAAkBD,IAAI,CAACf,OAAvB,CAAhB;;AAEA,cAAI,CAACA,OAAL,EAAc;AACViB,YAAAA,OAAO,CAACC,IAAR,qBAAyBH,IAAI,CAACf,OAA9B;AACA,mBAAO,IAAP;AACH;;AAED,cAAI,CAACA,OAAO,CAACmB,YAAR,CAAqBX,KAArB,CAAL,EAAkC;AAC9B,mBAAO,IAAP;AACH;;AAED,8BACI,oBAAC,SAAD;AAAW,YAAA,GAAG,EAAET,aAAa,CAACC,OAAD;AAA7B,aACKA,OAAO,CAACoB,MAAR,CAAeZ,KAAf,CADL,CADJ;AAKH,SAjBA,CADL,CADoB;AAAA,OAAvB,CADL,CADJ;AA0BH;;AAED,QAAMa,aAAa,GAAGZ,aAAa,GAAGZ,SAAH,GAAeD,IAAlD;AAEA,wBACI,oBAAC,aAAD,QACKU,MAAM,CAACK,SAAP,GAAmBC,GAAnB,CAAuB,UAACC,GAAD,EAAMC,KAAN;AAAA,0BACpB,oBAAC,QAAD;AAAU,QAAA,GAAG,EAAEA;AAAf,SACKD,GAAG,CAACD,GAAJ,CAAQ,UAAAG,IAAI,EAAI;AACb,YAAMf,OAAO,GAAGM,MAAM,CAACU,UAAP,CAAkBD,IAAI,CAACf,OAAvB,CAAhB;;AACA,YAAI,CAACA,OAAO,CAACmB,YAAR,CAAqBX,KAArB,CAAL,EAAkC;AAC9B,iBAAO,IAAP;AACH;;AACD,4BACI,oBAAC,IAAD;AAAM,UAAA,GAAG,EAAEO,IAAI,CAACf,OAAhB;AAAyB,UAAA,IAAI,EAAEe,IAAI,CAACO;AAApC,wBACI,oBAAC,SAAD;AAAW,UAAA,GAAG,EAAEvB,aAAa,CAACC,OAAD;AAA7B,WACKA,OAAO,CAACoB,MAAR,CAAeZ,KAAf,CADL,CADJ,CADJ;AAOH,OAZA,CADL,CADoB;AAAA,KAAvB,CADL,CADJ;AAqBH,GArDD;AAsDH,CAvDc,CAAf","sourcesContent":["import React, { Fragment } from \"react\";\nimport { Cell, Grid, GridInner } from \"@webiny/ui/Grid\";\nimport { UILayoutPlugin } from \"~/ui/UILayout\";\nimport { UIElement } from \"~/ui/UIElement\";\n\nfunction getElementKey(element: UIElement) {\n return `${element.constructor.name}:${element.id}`;\n}\n\nconst ElementID: React.FC = ({ children }) => {\n return children as unknown as React.ReactElement;\n};\n\nexport default new UILayoutPlugin(layout => {\n layout.setRenderer(({ layout, props, hasParentGrid }) => {\n if (!layout.getGrid()) {\n return (\n <Fragment>\n {layout.getLayout().map((row, index) => (\n <Fragment key={index}>\n {row.map(item => {\n const element = layout.getElement(item.element);\n\n if (!element) {\n console.warn(`Element \"${item.element}\" was not found!`);\n return null;\n }\n\n if (!element.shouldRender(props)) {\n return null;\n }\n\n return (\n <ElementID key={getElementKey(element)}>\n {element.render(props)}\n </ElementID>\n );\n })}\n </Fragment>\n ))}\n </Fragment>\n );\n }\n\n const GridComponent = hasParentGrid ? GridInner : Grid;\n\n return (\n <GridComponent>\n {layout.getLayout().map((row, index) => (\n <Fragment key={index}>\n {row.map(item => {\n const element = layout.getElement(item.element);\n if (!element.shouldRender(props)) {\n return null;\n }\n return (\n <Cell key={item.element} span={item.width}>\n <ElementID key={getElementKey(element)}>\n {element.render(props)}\n </ElementID>\n </Cell>\n );\n })}\n </Fragment>\n ))}\n </GridComponent>\n );\n });\n});\n"]}
package/types.d.ts CHANGED
@@ -55,27 +55,29 @@ export declare type AdminHeaderRightPlugin = Plugin & {
55
55
  type: "admin-header-right";
56
56
  render(params: RenderParams): React.ReactNode;
57
57
  };
58
+ export interface AdminFileManagerFileTypePluginRenderParams {
59
+ file: string;
60
+ }
58
61
  export declare type AdminFileManagerFileTypePlugin = Plugin & {
59
62
  type: "admin-file-manager-file-type";
60
63
  types?: string[];
61
- render({ file }: {
62
- file: any;
63
- }): React.ReactNode;
64
+ render(params: AdminFileManagerFileTypePluginRenderParams): React.ReactNode;
64
65
  fileDetails?: {
65
- actions: Array<React.FunctionComponent | React.Component>;
66
+ actions: Array<React.FC | React.Component>;
66
67
  };
67
68
  };
69
+ export interface AdminInstallationPluginRenderParams {
70
+ onInstalled: () => Promise<void>;
71
+ }
68
72
  export declare type AdminInstallationPlugin = Plugin & {
69
73
  type: "admin-installation";
70
74
  getInstalledVersion(params: {
71
75
  client: ApolloClient<object>;
72
- }): Promise<string>;
76
+ }): Promise<string | null>;
73
77
  title: string;
74
78
  dependencies?: string[];
75
79
  secure: boolean;
76
- render({ onInstalled }: {
77
- onInstalled: any;
78
- }): React.ReactNode;
80
+ render(params: AdminInstallationPluginRenderParams): React.ReactNode;
79
81
  upgrades?: {
80
82
  version: string;
81
83
  getComponent(): React.ComponentType<{
package/types.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
package/ui/UIElement.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export type { UIElementConfig, ApplyFunction, ShouldRender } from "@webiny/ui-composer/UIElement";
1
+ export type { UIElementConfig, ApplyFunction, ShouldRender, UiElementRenderProps } from "@webiny/ui-composer/UIElement";
2
2
  export { UIElement, UIElementPlugin } from "@webiny/ui-composer/UIElement";
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["UIElement.tsx"],"names":["UIElement","UIElementPlugin"],"mappings":"AAOA,SAASA,SAAT,EAAoBC,eAApB,QAA2C,+BAA3C","sourcesContent":["export type {\n UIElementConfig,\n ApplyFunction,\n ShouldRender,\n UiElementRenderProps\n} from \"@webiny/ui-composer/UIElement\";\n\nexport { UIElement, UIElementPlugin } from \"@webiny/ui-composer/UIElement\";\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["UILayout.tsx"],"names":["UILayout","UILayoutPlugin"],"mappings":"AAAA,SAASA,QAAT,EAAmBC,cAAnB,QAAyC,8BAAzC","sourcesContent":["export { UILayout, UILayoutPlugin } from \"@webiny/ui-composer/UILayout\";\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["UIRenderer.tsx"],"names":["UIRenderer"],"mappings":"AAAA,SAASA,UAAT,QAA2B,gCAA3B","sourcesContent":["export { UIRenderer } from \"@webiny/ui-composer/UIRenderer\";\nexport type { UIRenderParams, RenderNext } from \"@webiny/ui-composer/UIRenderer\";\n"]}
package/ui/UIView.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export type { ApplyFunction, UIElementWrapperProps, UIElementWrapper } from "@webiny/ui-composer/UIView";
1
+ export type { ApplyFunction, UIElementWrapperProps, UIElementWrapper, UIViewProps } from "@webiny/ui-composer/UIView";
2
2
  export { UIView, UIViewComponent, UIViewPlugin } from "@webiny/ui-composer/UIView";
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["UIView.tsx"],"names":["UIView","UIViewComponent","UIViewPlugin"],"mappings":"AAMA,SAASA,MAAT,EAAiBC,eAAjB,EAAkCC,YAAlC,QAAsD,4BAAtD","sourcesContent":["export type {\n ApplyFunction,\n UIElementWrapperProps,\n UIElementWrapper,\n UIViewProps\n} from \"@webiny/ui-composer/UIView\";\nexport { UIView, UIViewComponent, UIViewPlugin } from \"@webiny/ui-composer/UIView\";\n"]}
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { UIElement, UIElementConfig } from "../UIElement";
2
+ import { UIElement, UIElementConfig, UiElementRenderProps } from "../UIElement";
3
3
  interface GetterWithProps<TProps, T> {
4
4
  (props: TProps): T;
5
5
  }
@@ -11,17 +11,17 @@ interface Item<TProps = any> extends UIElementConfig {
11
11
  open?: boolean | GetterWithProps<TProps, boolean>;
12
12
  }
13
13
  export declare class AccordionItemElement extends UIElement<Item> {
14
- constructor(id: any, config: Item);
14
+ constructor(id: string, config: Item);
15
15
  setTitle(title: string): void;
16
16
  setDescription(description: string): void;
17
- render(props: any): JSX.Element;
17
+ render(props: UiElementRenderProps): React.ReactNode;
18
18
  }
19
19
  interface Config extends UIElementConfig {
20
20
  items: Item[];
21
21
  }
22
22
  export declare class AccordionElement extends UIElement<Config> {
23
- constructor(id: any, config: Config);
23
+ constructor(id: string, config: Config);
24
24
  getAccordionItemElement(id: string): AccordionItemElement;
25
- render(props: any): JSX.Element;
25
+ render(props: UiElementRenderProps): React.ReactNode;
26
26
  }
27
27
  export {};
@@ -75,6 +75,10 @@ export var AccordionElement = /*#__PURE__*/function (_UIElement2) {
75
75
  }, {
76
76
  key: "render",
77
77
  value: function render(props) {
78
+ /**
79
+ * Figure out correct way to have props.children typed.
80
+ * TODO @ts-refactor
81
+ */
78
82
  // @ts-ignore
79
83
  return /*#__PURE__*/React.createElement(Accordion, {
80
84
  elevation: 0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["AccordionElement.tsx"],"names":["React","UIElement","Accordion","AccordionItem","AccordionItemElement","id","config","title","description","props","open","rest","isOpened","AccordionElement","useGrid","items","forEach","item","addElement","getElement"],"mappings":";;;;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,SAAT;AACA,SAASC,SAAT,EAAoBC,aAApB,QAAyC,sBAAzC;AAcA,WAAaC,oBAAb;AAAA;;AAAA;;AACI,gCAAmBC,EAAnB,EAA+BC,MAA/B,EAA6C;AAAA;;AAAA,6BACnCD,EADmC,EAC/BC,MAD+B;AAE5C;;AAHL;AAAA;AAAA,WAKI,kBAAgBC,KAAhB,EAAqC;AACjC,WAAKD,MAAL,CAAYC,KAAZ,GAAoBA,KAApB;AACH;AAPL;AAAA;AAAA,WASI,wBAAsBC,WAAtB,EAAiD;AAC7C,WAAKF,MAAL,CAAYE,WAAZ,GAA0BA,WAA1B;AACH;AAXL;AAAA;AAAA,WAaI,gBAAuBC,KAAvB,EAAqE;AACjE,yBAA0B,KAAKH,MAA/B;AAAA,UAAQI,IAAR,gBAAQA,IAAR;AAAA,UAAiBC,IAAjB;;AACA,UAAMC,QAAQ,GAAG,OAAOF,IAAP,KAAgB,UAAhB,GAA6BA,IAAI,CAACD,KAAD,CAAjC,GAA2CC,IAA5D;AACA,0BACI,oBAAC,aAAD;AAAe,QAAA,IAAI,EAAEE;AAArB,SAAmCD,IAAnC,oFACkBF,KADlB,EADJ;AAKH;AArBL;;AAAA;AAAA,EAA0CR,SAA1C;AA4BA,WAAaY,gBAAb;AAAA;;AAAA;;AACI,4BAAmBR,EAAnB,EAA+BC,MAA/B,EAA+C;AAAA;;AAAA;;AAC3C,+BAAMD,EAAN,EAAUC,MAAV;;AAEA,UAAKQ,OAAL,CAAa,KAAb;;AAEA,UAAKR,MAAL,CAAYS,KAAZ,CAAkBC,OAAlB,CAA0B,UAAAC,IAAI,EAAI;AAC9B,YAAKC,UAAL,CAAgB,IAAId,oBAAJ,CAAyBa,IAAI,CAACZ,EAA9B,EAAkCY,IAAlC,CAAhB;AACH,KAFD;;AAL2C;AAQ9C;;AATL;AAAA;AAAA,WAWI,iCAA+BZ,EAA/B,EAAiE;AAC7D,aAAO,KAAKc,UAAL,CAAgBd,EAAhB,CAAP;AACH;AAbL;AAAA;AAAA,WAeI,gBAAuBI,KAAvB,EAAqE;AACjE;AACR;AACA;AACA;AACQ;AACA,0BAAO,oBAAC,SAAD;AAAW,QAAA,SAAS,EAAE;AAAtB,sFAAuCA,KAAvC,EAAP;AACH;AAtBL;;AAAA;AAAA,EAAsCR,SAAtC","sourcesContent":["import React from \"react\";\nimport { UIElement, UIElementConfig, UiElementRenderProps } from \"~/ui/UIElement\";\nimport { Accordion, AccordionItem } from \"@webiny/ui/Accordion\";\n\ninterface GetterWithProps<TProps, T> {\n (props: TProps): T;\n}\n\ninterface Item<TProps = any> extends UIElementConfig {\n id: string;\n title: string;\n description: string;\n icon: React.ReactElement;\n open?: boolean | GetterWithProps<TProps, boolean>;\n}\n\nexport class AccordionItemElement extends UIElement<Item> {\n public constructor(id: string, config: Item) {\n super(id, config);\n }\n\n public setTitle(title: string): void {\n this.config.title = title;\n }\n\n public setDescription(description: string): void {\n this.config.description = description;\n }\n\n public override render(props: UiElementRenderProps): React.ReactNode {\n const { open, ...rest } = this.config;\n const isOpened = typeof open === \"function\" ? open(props) : open;\n return (\n <AccordionItem open={isOpened} {...rest}>\n {super.render(props)}\n </AccordionItem>\n );\n }\n}\n\ninterface Config extends UIElementConfig {\n items: Item[];\n}\n\nexport class AccordionElement extends UIElement<Config> {\n public constructor(id: string, config: Config) {\n super(id, config);\n\n this.useGrid(false);\n\n this.config.items.forEach(item => {\n this.addElement(new AccordionItemElement(item.id, item));\n });\n }\n\n public getAccordionItemElement(id: string): AccordionItemElement {\n return this.getElement(id) as AccordionItemElement;\n }\n\n public override render(props: UiElementRenderProps): React.ReactNode {\n /**\n * Figure out correct way to have props.children typed.\n * TODO @ts-refactor\n */\n // @ts-ignore\n return <Accordion elevation={0}>{super.render(props)}</Accordion>;\n }\n}\n"]}
@@ -14,11 +14,11 @@ export interface ButtonElementConfig<TRenderProps> extends UIElementConfig {
14
14
  }
15
15
  export declare class ButtonElement<TRenderProps = any> extends UIElement<ButtonElementConfig<TRenderProps>> {
16
16
  setLabel<TProps extends TRenderProps = TRenderProps>(label: string | GetterWithProps<TProps, string>): void;
17
- getLabel(props?: any): string;
17
+ getLabel(props?: TRenderProps): string;
18
18
  setType(type: ButtonElementType): void;
19
- getType(props?: any): ButtonElementType;
19
+ getType(props?: TRenderProps): ButtonElementType;
20
20
  setOnClick(onClick: ButtonOnClick<TRenderProps>): void;
21
21
  getOnClick(): ButtonOnClick<TRenderProps>;
22
- render(props: any): React.ReactElement;
22
+ render(props: TRenderProps): React.ReactElement;
23
23
  }
24
24
  export {};