@webiny/app-admin 5.24.0 → 5.25.0-beta.2

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 (239) hide show
  1. package/base/Admin.d.ts +2 -2
  2. package/base/Admin.js +4 -0
  3. package/base/Admin.js.map +1 -0
  4. package/base/Base.js.map +1 -0
  5. package/base/plugins/AddGraphQLQuerySelection.js +3 -2
  6. package/base/plugins/AddGraphQLQuerySelection.js.map +1 -0
  7. package/base/providers/ApolloProvider.js +2 -1
  8. package/base/providers/ApolloProvider.js.map +1 -0
  9. package/base/providers/TelemetryProvider.js.map +1 -0
  10. package/base/providers/UiStateProvider.js.map +1 -0
  11. package/base/providers/ViewCompositionProvider.d.ts +2 -1
  12. package/base/providers/ViewCompositionProvider.js +8 -1
  13. package/base/providers/ViewCompositionProvider.js.map +1 -0
  14. package/base/ui/Brand.d.ts +2 -9
  15. package/base/ui/Brand.js.map +1 -0
  16. package/base/ui/CenteredView.d.ts +1 -5
  17. package/base/ui/CenteredView.js.map +1 -0
  18. package/base/ui/Dashboard.d.ts +2 -9
  19. package/base/ui/Dashboard.js.map +1 -0
  20. package/base/ui/Layout.d.ts +2 -8
  21. package/base/ui/Layout.js.map +1 -0
  22. package/base/ui/LocaleSelector.d.ts +2 -9
  23. package/base/ui/LocaleSelector.js.map +1 -0
  24. package/base/ui/LoginScreen.d.ts +2 -5
  25. package/base/ui/LoginScreen.js.map +1 -0
  26. package/base/ui/Logo.d.ts +3 -9
  27. package/base/ui/Logo.js.map +1 -0
  28. package/base/ui/Menu.d.ts +3 -12
  29. package/base/ui/Menu.js +9 -5
  30. package/base/ui/Menu.js.map +1 -0
  31. package/base/ui/Navigation.d.ts +6 -15
  32. package/base/ui/Navigation.js +20 -3
  33. package/base/ui/Navigation.js.map +1 -0
  34. package/base/ui/NotFound.d.ts +2 -9
  35. package/base/ui/NotFound.js.map +1 -0
  36. package/base/ui/Search.d.ts +3 -9
  37. package/base/ui/Search.js +6 -1
  38. package/base/ui/Search.js.map +1 -0
  39. package/base/ui/Tags.d.ts +3 -1
  40. package/base/ui/Tags.js.map +1 -0
  41. package/base/ui/UserMenu.d.ts +7 -28
  42. package/base/ui/UserMenu.js +15 -2
  43. package/base/ui/UserMenu.js.map +1 -0
  44. package/components/AdminLayout.js.map +1 -0
  45. package/components/AppInstaller/AppInstaller.js.map +1 -0
  46. package/components/AppInstaller/Sidebar.js +2 -1
  47. package/components/AppInstaller/Sidebar.js.map +1 -0
  48. package/components/AppInstaller/index.d.ts +0 -1
  49. package/components/AppInstaller/index.js.map +1 -0
  50. package/components/AppInstaller/styled.d.ts +4 -5
  51. package/components/AppInstaller/styled.js.map +1 -0
  52. package/components/AppInstaller/useInstaller.d.ts +6 -4
  53. package/components/AppInstaller/useInstaller.js +2 -2
  54. package/components/AppInstaller/useInstaller.js.map +1 -0
  55. package/components/EmptyView.d.ts +1 -1
  56. package/components/EmptyView.js.map +1 -0
  57. package/components/FileManager/BottomInfoBar/SupportedFileTypes.js +5 -0
  58. package/components/FileManager/BottomInfoBar/SupportedFileTypes.js.map +1 -0
  59. package/components/FileManager/BottomInfoBar/UploadStatus.js.map +1 -0
  60. package/components/FileManager/BottomInfoBar.js.map +1 -0
  61. package/components/FileManager/DropFilesHere.js.map +1 -0
  62. package/components/FileManager/File.js.map +1 -0
  63. package/components/FileManager/FileDetails/Name.js +8 -5
  64. package/components/FileManager/FileDetails/Name.js.map +1 -0
  65. package/components/FileManager/FileDetails/Tags.js +18 -7
  66. package/components/FileManager/FileDetails/Tags.js.map +1 -0
  67. package/components/FileManager/FileDetails.d.ts +3 -0
  68. package/components/FileManager/FileDetails.js +66 -39
  69. package/components/FileManager/FileDetails.js.map +1 -0
  70. package/components/FileManager/FileManagerContext.js +5 -0
  71. package/components/FileManager/FileManagerContext.js.map +1 -0
  72. package/components/FileManager/FileManagerView.d.ts +2 -2
  73. package/components/FileManager/FileManagerView.js +60 -43
  74. package/components/FileManager/FileManagerView.js.map +1 -0
  75. package/components/FileManager/LeftSidebar.js +2 -1
  76. package/components/FileManager/LeftSidebar.js.map +1 -0
  77. package/components/FileManager/NoPermissionView.js.map +1 -0
  78. package/components/FileManager/NoResults.js.map +1 -0
  79. package/components/FileManager/getFileTypePlugin.d.ts +1 -1
  80. package/components/FileManager/getFileTypePlugin.js +4 -0
  81. package/components/FileManager/getFileTypePlugin.js.map +1 -0
  82. package/components/FileManager/getFileUploader.js.map +1 -0
  83. package/components/FileManager/graphql.d.ts +90 -0
  84. package/components/FileManager/graphql.js +25 -0
  85. package/components/FileManager/graphql.js.map +1 -0
  86. package/components/FileManager/outputFileSelectionError.d.ts +6 -4
  87. package/components/FileManager/outputFileSelectionError.js +3 -7
  88. package/components/FileManager/outputFileSelectionError.js.map +1 -0
  89. package/components/FileManager/types.d.ts +4 -34
  90. package/components/FileManager/types.js.map +1 -0
  91. package/components/FileManager.js +12 -4
  92. package/components/FileManager.js.map +1 -0
  93. package/components/FloatingActionButton.js.map +1 -0
  94. package/components/MultiImageUpload.d.ts +2 -2
  95. package/components/MultiImageUpload.js.map +1 -0
  96. package/components/OverlayLayout/OverlayLayout.d.ts +3 -3
  97. package/components/OverlayLayout/OverlayLayout.js.map +1 -0
  98. package/components/OverlayLayout/index.js.map +1 -0
  99. package/components/Permissions/Permissions.d.ts +4 -4
  100. package/components/Permissions/Permissions.js.map +1 -0
  101. package/components/Permissions/StyledComponents.d.ts +2 -2
  102. package/components/Permissions/StyledComponents.js.map +1 -0
  103. package/components/Permissions/index.js.map +1 -0
  104. package/components/RichTextEditor/RichTextEditor.js.map +1 -0
  105. package/components/RichTextEditor/index.js.map +1 -0
  106. package/components/RichTextEditor/tools/header/index.js +3 -3
  107. package/components/RichTextEditor/tools/header/index.js.map +1 -0
  108. package/components/RichTextEditor/tools/image/index.d.ts +3 -1
  109. package/components/RichTextEditor/tools/image/index.js.map +1 -0
  110. package/components/RichTextEditor/tools/image/svgs.js.map +1 -0
  111. package/components/RichTextEditor/tools/image/tunes.js +7 -3
  112. package/components/RichTextEditor/tools/image/tunes.js.map +1 -0
  113. package/components/RichTextEditor/tools/image/types.js.map +1 -0
  114. package/components/RichTextEditor/tools/image/ui.d.ts +4 -2
  115. package/components/RichTextEditor/tools/image/ui.js +1 -1
  116. package/components/RichTextEditor/tools/image/ui.js.map +1 -0
  117. package/components/RichTextEditor/tools/paragraph/index.d.ts +3 -7
  118. package/components/RichTextEditor/tools/paragraph/index.js +6 -10
  119. package/components/RichTextEditor/tools/paragraph/index.js.map +1 -0
  120. package/components/RichTextEditor/tools/textColor/index.d.ts +9 -1
  121. package/components/RichTextEditor/tools/textColor/index.js +43 -9
  122. package/components/RichTextEditor/tools/textColor/index.js.map +1 -0
  123. package/components/RichTextEditor/tools/utils.js.map +1 -0
  124. package/components/Routes.js +2 -2
  125. package/components/Routes.js.map +1 -0
  126. package/components/SearchUI.js.map +1 -0
  127. package/components/SimpleForm/SimpleForm.d.ts +3 -2
  128. package/components/SimpleForm/SimpleForm.js.map +1 -0
  129. package/components/SimpleForm/index.js.map +1 -0
  130. package/components/SimpleUI/InputField.d.ts +1 -0
  131. package/components/SimpleUI/InputField.js +6 -4
  132. package/components/SimpleUI/InputField.js.map +1 -0
  133. package/components/SingleImageUpload.d.ts +0 -1
  134. package/components/SingleImageUpload.js +9 -12
  135. package/components/SingleImageUpload.js.map +1 -0
  136. package/components/SplitView/SplitView.js.map +1 -0
  137. package/components/SplitView/index.js.map +1 -0
  138. package/components/index.js.map +1 -0
  139. package/hooks/useConfirmationDialog.js.map +1 -0
  140. package/hooks/useDialog.js.map +1 -0
  141. package/hooks/useSnackbar.js.map +1 -0
  142. package/index.js.map +1 -0
  143. package/package.json +21 -20
  144. package/plugins/FileManagerFileTypePlugin.d.ts +2 -2
  145. package/plugins/FileManagerFileTypePlugin.js +4 -0
  146. package/plugins/FileManagerFileTypePlugin.js.map +1 -0
  147. package/plugins/MenuPlugin.d.ts +3 -3
  148. package/plugins/MenuPlugin.js +4 -0
  149. package/plugins/MenuPlugin.js.map +1 -0
  150. package/plugins/PermissionRendererPlugin.d.ts +4 -4
  151. package/plugins/PermissionRendererPlugin.js +4 -0
  152. package/plugins/PermissionRendererPlugin.js.map +1 -0
  153. package/plugins/fileManager/fileDefault.js.map +1 -0
  154. package/plugins/fileManager/fileImage/DeleteAction.js.map +1 -0
  155. package/plugins/fileManager/fileImage/EditAction.js +6 -2
  156. package/plugins/fileManager/fileImage/EditAction.js.map +1 -0
  157. package/plugins/fileManager/fileImage/index.js.map +1 -0
  158. package/plugins/fileManager/index.js.map +1 -0
  159. package/plugins/globalSearch/SearchBar.d.ts +1 -5
  160. package/plugins/globalSearch/SearchBar.js +4 -0
  161. package/plugins/globalSearch/SearchBar.js.map +1 -0
  162. package/plugins/globalSearch/SearchBarDropdown.d.ts +12 -9
  163. package/plugins/globalSearch/SearchBarDropdown.js.map +1 -0
  164. package/plugins/globalSearch/index.js.map +1 -0
  165. package/plugins/globalSearch/styled.d.ts +3 -4
  166. package/plugins/globalSearch/styled.js.map +1 -0
  167. package/plugins/index.d.ts +0 -1
  168. package/plugins/index.js.map +1 -0
  169. package/plugins/uiLayoutRenderer/index.js.map +1 -0
  170. package/types.d.ts +2 -2
  171. package/types.js.map +1 -0
  172. package/ui/UIElement.js.map +1 -0
  173. package/ui/UILayout.js.map +1 -0
  174. package/ui/UIRenderer.js.map +1 -0
  175. package/ui/UIView.js.map +1 -0
  176. package/ui/elements/AccordionElement.js.map +1 -0
  177. package/ui/elements/ButtonElement.js +7 -0
  178. package/ui/elements/ButtonElement.js.map +1 -0
  179. package/ui/elements/ButtonGroupElement.js.map +1 -0
  180. package/ui/elements/GenericElement.js.map +1 -0
  181. package/ui/elements/LabelElement.js.map +1 -0
  182. package/ui/elements/NavigationMenuElement.d.ts +2 -5
  183. package/ui/elements/NavigationMenuElement.js.map +1 -0
  184. package/ui/elements/PanelElement.js.map +1 -0
  185. package/ui/elements/PlaceholderElement.d.ts +0 -1
  186. package/ui/elements/PlaceholderElement.js.map +1 -0
  187. package/ui/elements/SmallButtonElement.js.map +1 -0
  188. package/ui/elements/TypographyElement.js.map +1 -0
  189. package/ui/elements/ViewElement.js.map +1 -0
  190. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.d.ts +2 -2
  191. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js +10 -10
  192. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js.map +1 -0
  193. package/ui/elements/form/DynamicFieldsetElement.d.ts +19 -18
  194. package/ui/elements/form/DynamicFieldsetElement.js +13 -0
  195. package/ui/elements/form/DynamicFieldsetElement.js.map +1 -0
  196. package/ui/elements/form/FileManagerElement/EmptyStateElement.js.map +1 -0
  197. package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js.map +1 -0
  198. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js.map +1 -0
  199. package/ui/elements/form/FileManagerElement/styled.d.ts +17 -14
  200. package/ui/elements/form/FileManagerElement/styled.js.map +1 -0
  201. package/ui/elements/form/FileManagerElement.d.ts +5 -5
  202. package/ui/elements/form/FileManagerElement.js.map +1 -0
  203. package/ui/elements/form/FormElement.js.map +1 -0
  204. package/ui/elements/form/FormFieldElement.d.ts +5 -5
  205. package/ui/elements/form/FormFieldElement.js +12 -4
  206. package/ui/elements/form/FormFieldElement.js.map +1 -0
  207. package/ui/elements/form/HiddenElement.js.map +1 -0
  208. package/ui/elements/form/InputElement.js.map +1 -0
  209. package/ui/elements/form/PasswordElement.js.map +1 -0
  210. package/ui/elements/form/SelectElement.d.ts +1 -1
  211. package/ui/elements/form/SelectElement.js +1 -1
  212. package/ui/elements/form/SelectElement.js.map +1 -0
  213. package/ui/elements/form/TextareaElement.js.map +1 -0
  214. package/ui/views/AdminView/ContentElement.js.map +1 -0
  215. package/ui/views/AdminView/HeaderElement.js +14 -2
  216. package/ui/views/AdminView/HeaderElement.js.map +1 -0
  217. package/ui/views/AdminView/HeaderSectionCenterElement.js.map +1 -0
  218. package/ui/views/AdminView/HeaderSectionLeftElement.js.map +1 -0
  219. package/ui/views/AdminView/HeaderSectionRightElement.js.map +1 -0
  220. package/ui/views/AdminView/components/Dialog.js.map +1 -0
  221. package/ui/views/AdminView/components/Hamburger.js.map +1 -0
  222. package/ui/views/AdminView/components/Snackbar.js.map +1 -0
  223. package/ui/views/FormView/FormContainerElement.d.ts +0 -1
  224. package/ui/views/FormView/FormContainerElement.js.map +1 -0
  225. package/ui/views/FormView/FormContentElement.js.map +1 -0
  226. package/ui/views/FormView/FormFooterElement.d.ts +0 -1
  227. package/ui/views/FormView/FormFooterElement.js.map +1 -0
  228. package/ui/views/FormView/FormHeaderElement.js.map +1 -0
  229. package/ui/views/FormView.js +21 -1
  230. package/ui/views/FormView.js.map +1 -0
  231. package/ui/views/OverlayView/ContentElement.js.map +1 -0
  232. package/ui/views/OverlayView/HeaderElement.js.map +1 -0
  233. package/ui/views/OverlayView/HeaderTitleElement.d.ts +1 -1
  234. package/ui/views/OverlayView/HeaderTitleElement.js.map +1 -0
  235. package/ui/views/OverlayView/useOverlayView.js.map +1 -0
  236. package/ui/views/OverlayView.js.map +1 -0
  237. package/ui/views/SplitView/SplitViewPanelElement.js.map +1 -0
  238. package/ui/views/SplitView.d.ts +2 -2
  239. package/ui/views/SplitView.js.map +1 -0
@@ -12,40 +12,19 @@ export interface UserMenuContext {
12
12
  }
13
13
  export declare function useUserMenu(): UserMenuContext;
14
14
  export declare const UserMenuProvider: (Component: React.FC) => React.FC;
15
- export declare const UserMenu: React.FC<unknown> & {
16
- original: React.ComponentType<unknown>;
17
- originalName: string;
18
- };
19
- export declare const UserMenuRenderer: React.FC<unknown> & {
20
- original: React.ComponentType<unknown>;
21
- originalName: string;
22
- };
23
- export declare const UserMenuHandle: React.FC<unknown> & {
24
- original: React.ComponentType<unknown>;
25
- originalName: string;
26
- };
27
- export declare const UserMenuHandleRenderer: React.FC<unknown> & {
28
- original: React.ComponentType<unknown>;
29
- originalName: string;
30
- };
15
+ export declare const UserMenu: import("@webiny/app-admin-core").ComposableFC<unknown>;
16
+ export declare const UserMenuRenderer: import("@webiny/app-admin-core").ComposableFC<unknown>;
17
+ export declare const UserMenuHandle: import("@webiny/app-admin-core").ComposableFC<unknown>;
18
+ export declare const UserMenuHandleRenderer: import("@webiny/app-admin-core").ComposableFC<unknown>;
31
19
  export interface UserMenuItemProps {
32
20
  menuItem: UserMenuItemData;
33
21
  }
34
- export declare const UserMenuItem: React.FC<UserMenuItemProps> & {
35
- original: React.ComponentType<UserMenuItemProps>;
36
- originalName: string;
37
- };
38
- export declare const UserMenuItemRenderer: React.FC<unknown> & {
39
- original: React.ComponentType<unknown>;
40
- originalName: string;
41
- };
22
+ export declare const UserMenuItem: import("@webiny/app-admin-core").ComposableFC<UserMenuItemProps>;
23
+ export declare const UserMenuItemRenderer: import("@webiny/app-admin-core").ComposableFC<unknown>;
42
24
  export declare const AddUserMenuItem: React.FC<UserMenuItemProps["menuItem"]>;
43
25
  export declare type UserMenuItemContext = UserMenuItemData;
44
26
  export declare function useUserMenuItem(): UserMenuItemData;
45
27
  export interface UserMenuItemsProps {
46
28
  menuItems: UserMenuItemData[];
47
29
  }
48
- export declare const UserMenuItems: React.FC<UserMenuItemsProps> & {
49
- original: React.ComponentType<UserMenuItemsProps>;
50
- originalName: string;
51
- };
30
+ export declare const UserMenuItems: import("@webiny/app-admin-core").ComposableFC<UserMenuItemsProps>;
@@ -4,7 +4,12 @@ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProper
4
4
  var _excluded = ["children"];
5
5
  import React, { Fragment, useCallback, useEffect, useState } from "react";
6
6
  import { makeComposable } from "@webiny/app-admin-core";
7
- var UserMenuContext = /*#__PURE__*/React.createContext(null);
7
+ var UserMenuContext = /*#__PURE__*/React.createContext({
8
+ addMenuItem: function addMenuItem() {
9
+ return void 0;
10
+ },
11
+ menuItems: []
12
+ });
8
13
  UserMenuContext.displayName = "UserMenuContext";
9
14
  export function useUserMenu() {
10
15
  return React.useContext(UserMenuContext);
@@ -70,7 +75,15 @@ export var AddUserMenuItem = function AddUserMenuItem(props) {
70
75
  }, []);
71
76
  return null;
72
77
  };
73
- var UserMenuItemContext = /*#__PURE__*/React.createContext(null);
78
+ var UserMenuItemContext = /*#__PURE__*/React.createContext({
79
+ element: undefined,
80
+ icon: undefined,
81
+ label: undefined,
82
+ onClick: function onClick() {
83
+ return void 0;
84
+ },
85
+ path: undefined
86
+ });
74
87
  UserMenuItemContext.displayName = "UserMenuItemContext";
75
88
  export function useUserMenuItem() {
76
89
  return React.useContext(UserMenuItemContext);
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["UserMenu.tsx"],"names":["React","Fragment","useCallback","useEffect","useState","makeComposable","UserMenuContext","createContext","addMenuItem","menuItems","displayName","useUserMenu","useContext","UserMenuProvider","Component","children","props","setItems","item","items","index","findIndex","i","slice","context","UserMenu","UserMenuRenderer","UserMenuHandle","UserMenuHandleRenderer","UserMenuItem","menuItem","UserMenuItemRenderer","AddUserMenuItem","UserMenuItemContext","element","undefined","icon","label","onClick","path","useUserMenuItem","UserMenuItems","map"],"mappings":"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","sourcesContent":["import React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport { makeComposable } from \"@webiny/app-admin-core\";\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\nexport const UserMenuProvider = (Component: React.FC): React.FC => {\n return function UserMenuProvider({ children, ...props }) {\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 = makeComposable(\"UserMenu\", () => {\n return <UserMenuRenderer />;\n});\n\nexport const UserMenuRenderer = makeComposable(\"UserMenuRenderer\");\n\nexport const UserMenuHandle = makeComposable(\"UserMenuHandle\", () => {\n return <UserMenuHandleRenderer />;\n});\n\nexport const UserMenuHandleRenderer = makeComposable(\"UserMenuHandleRenderer\");\n\nexport interface UserMenuItemProps {\n menuItem: UserMenuItemData;\n}\n\nexport const UserMenuItem = makeComposable<UserMenuItemProps>(\"UserMenuItem\", ({ menuItem }) => {\n return (\n <UserMenuItemContext.Provider value={menuItem}>\n <UserMenuItemRenderer />\n </UserMenuItemContext.Provider>\n );\n});\n\nexport const UserMenuItemRenderer = makeComposable(\"UserMenuItemRenderer\");\n\nexport const AddUserMenuItem: React.FC<UserMenuItemProps[\"menuItem\"]> = props => {\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 = makeComposable<UserMenuItemsProps>(\n \"UserMenuItems\",\n ({ menuItems }) => {\n return (\n <Fragment>\n {menuItems.map((item, index) => (\n <UserMenuItem key={index} menuItem={item} />\n ))}\n </Fragment>\n );\n }\n);\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["AdminLayout.tsx"],"names":["React","Layout","AdminLayout","title","children"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,MAAT;AAMA,OAAO,IAAMC,WAAuC,GAAG,SAA1CA,WAA0C,OAAyB;AAAA,MAAtBC,KAAsB,QAAtBA,KAAsB;AAAA,MAAfC,QAAe,QAAfA,QAAe;AAC5E,sBAAO,oBAAC,MAAD;AAAQ,IAAA,KAAK,EAAED;AAAf,KAAuBC,QAAvB,CAAP;AACH,CAFM","sourcesContent":["import React from \"react\";\nimport { Layout } from \"~/index\";\n\ninterface AdminLayoutProps {\n title?: string;\n}\n\nexport const AdminLayout: React.FC<AdminLayoutProps> = ({ title, children }) => {\n return <Layout title={title}>{children}</Layout>;\n};\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["AppInstaller.tsx"],"names":["React","useEffect","useState","default","localStorage","LoginScreen","useSecurity","CircularProgress","ButtonPrimary","SplitView","LeftPanel","RightPanel","Grid","Cell","Typography","Elevation","useInstaller","Sidebar","Wrapper","alertClass","InnerContent","InstallContent","installerSplitView","SuccessDialog","config","appConfig","AppInstaller","children","tenantId","get","lsKey","wbyVersion","getKey","process","env","REACT_APP_WEBINY_VERSION","markInstallerAsCompleted","set","isInstallerCompleted","finished","setFinished","identity","isInstalled","loading","installers","installer","showNextInstaller","showLogin","onUser","skippingVersions","renderLayout","content","secure","renderBody","length","render","onInstalled","latest","current","availableUpgrades","filter","v","map"],"mappings":"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","sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { default as localStorage } from \"store\";\nimport { LoginScreen } from \"~/index\";\nimport { useSecurity } from \"@webiny/app-security\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { ButtonPrimary } from \"@webiny/ui/Button\";\nimport { SplitView, LeftPanel, RightPanel } from \"../SplitView\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { Elevation } from \"@webiny/ui/Elevation\";\nimport { useInstaller } from \"./useInstaller\";\nimport Sidebar from \"./Sidebar\";\nimport {\n Wrapper,\n alertClass,\n InnerContent,\n InstallContent,\n installerSplitView,\n SuccessDialog\n} from \"./styled\";\nimport { config as appConfig } from \"@webiny/app/config\";\n\nexport const AppInstaller: React.FC = ({ children }) => {\n const tenantId = localStorage.get(\"webiny_tenant\") || \"root\";\n\n const lsKey = `webiny_installation_${tenantId}`;\n const wbyVersion = appConfig.getKey(\"WEBINY_VERSION\", process.env.REACT_APP_WEBINY_VERSION);\n\n const markInstallerAsCompleted = () => {\n localStorage.set(lsKey, wbyVersion);\n };\n\n const isInstallerCompleted = () => {\n return localStorage.get(lsKey) === wbyVersion;\n };\n\n const [finished, setFinished] = useState(false);\n const { identity } = useSecurity();\n const {\n loading,\n installers,\n installer,\n showNextInstaller,\n showLogin,\n onUser,\n skippingVersions\n } = useInstaller({ isInstalled: isInstallerCompleted() });\n\n useEffect(() => {\n if (identity) {\n onUser();\n }\n }, [identity]);\n\n if (isInstallerCompleted()) {\n return <LoginScreen>{children}</LoginScreen>;\n }\n\n const renderLayout = (content: React.ReactNode, secure = false): React.ReactElement => {\n return (\n <SplitView className={installerSplitView}>\n <LeftPanel span={2}>\n <Sidebar\n allInstallers={installers}\n installer={installer}\n showLogin={showLogin}\n />\n </LeftPanel>\n <RightPanel span={10}>\n {!showLogin && !secure && content}\n {(showLogin || secure) && <LoginScreen>{content}</LoginScreen>}\n </RightPanel>\n </SplitView>\n );\n };\n\n const renderBody = (content: React.ReactNode): React.ReactElement => {\n return (\n <Wrapper>\n <InstallContent>\n <InnerContent>{content}</InnerContent>\n </InstallContent>\n </Wrapper>\n );\n };\n\n // Loading installers data\n if (loading) {\n return <CircularProgress label={\"Checking apps...\"} />;\n }\n\n // This means there are no installers to run or installation was finished\n if (!loading && (installers.length === 0 || finished)) {\n markInstallerAsCompleted();\n return <LoginScreen>{children}</LoginScreen>;\n }\n\n if (installer) {\n return renderLayout(\n renderBody(installer.render({ onInstalled: showNextInstaller })),\n installer.secure\n );\n }\n\n if (skippingVersions) {\n return renderBody(\n <Elevation z={1} className={alertClass}>\n <Grid>\n <Cell span={12}>\n <Typography use={\"headline4\"}>Important!</Typography>\n </Cell>\n <Cell span={12}>\n <Typography use={\"body1\"} tag={\"div\"}>\n We&apos;ve detected that your current application is running Webiny{\" \"}\n <strong>v{skippingVersions.latest}</strong>. However, your API is\n running <strong>v{skippingVersions.current}</strong>. Unfortunately, we\n can&apos;t upgrade your system by skipping versions in between.\n <br />\n <br />\n Here&apos;s a list of versions you skipped, that contain upgrades you\n need to install:\n <ul>\n {skippingVersions.availableUpgrades\n .filter(v => v !== skippingVersions.latest)\n .map(v => (\n <li key={v}>v{v}</li>\n ))}\n </ul>\n For instructions on how to upgrade Webiny, please consult our{\" \"}\n <a\n href={\"https://docs.webiny.com/docs/how-to-guides/upgrade-webiny\"}\n target={\"_blank\"}\n rel={\"noreferrer noopener\"}\n >\n Upgrade Webiny\n </a>{\" \"}\n guide. Note that some versions may have a dedicated article with upgrade\n instructions, so look out for those in the upgrade guide.\n <br />\n <br />\n If you run into problems, find us on our{\" \"}\n <a\n href={\"https://www.webiny.com/slack\"}\n target={\"_blank\"}\n rel={\"noreferrer noopener\"}\n >\n Slack community.\n </a>\n </Typography>\n </Cell>\n </Grid>\n </Elevation>\n );\n }\n\n return renderLayout(\n renderBody(\n <Elevation z={1}>\n <SuccessDialog>\n <p>You have successfully installed all new applications!</p>\n <ButtonPrimary\n data-testid={\"open-webiny-cms-admin-button\"}\n onClick={() => {\n markInstallerAsCompleted();\n setFinished(true);\n }}\n >\n Open Admin Area\n </ButtonPrimary>\n </SuccessDialog>\n </Elevation>\n ),\n true\n );\n};\n"]}
@@ -86,7 +86,8 @@ var Installations = function Installations(props) {
86
86
  key: "login",
87
87
  className: "sign-in"
88
88
  }, /*#__PURE__*/React.createElement("img", {
89
- src: signInDivider
89
+ src: signInDivider,
90
+ alt: ""
90
91
  }), /*#__PURE__*/React.createElement(Typography, {
91
92
  use: "overline",
92
93
  className: "note"
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["Sidebar.tsx"],"names":["React","Fragment","styled","Typography","classSet","webinyLogo","signInDivider","config","appConfig","SidebarWrapper","Logo","padding","borderBottom","img","width","height","List","li","display","alignItems","borderRadius","marginRight","textAlign","lineHeight","fontSize","paddingTop","color","backgroundColor","fontWeight","Note","Installations","props","title","allInstallers","installer","showLogin","renderList","loginItem","items","i","length","name","secure","installed","prev","push","active","pending","Sidebar","upgrades","filter","type","installations","wbyVersion","getKey","process","env","REACT_APP_WEBINY_VERSION"],"mappings":"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","sourcesContent":["import React, { Fragment } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport classSet from \"classnames\";\n\nimport webinyLogo from \"../../assets/images/webiny-orange-logo.svg\";\nimport signInDivider from \"./assets/sign-in-divider.svg\";\nimport { config as appConfig } from \"@webiny/app/config\";\nimport { Installer } from \"./useInstaller\";\n\nconst SidebarWrapper = styled(\"div\")({});\n\nconst Logo = styled(\"div\")({\n padding: 15,\n borderBottom: \"1px solid var(--mdc-theme-background)\",\n img: {\n width: \"100px\",\n height: \"auto\"\n }\n});\n\nconst List = styled(\"ul\")({\n li: {\n display: \"flex\",\n alignItems: \"center\",\n padding: \"15px 15px\",\n \".status\": {\n borderRadius: \"50%\",\n display: \"inline-block\",\n height: 20,\n width: 20,\n marginRight: 15\n },\n \"&.sign-in\": {\n display: \"block\",\n textAlign: \"center\",\n \".note\": {\n display: \"inline-block\",\n lineHeight: \"150%\",\n fontSize: 10,\n paddingTop: 10,\n color: \"var(--mdc-theme-text-icon-on-background)\"\n },\n img: {\n width: \"100%\"\n }\n },\n \"&.active\": {\n backgroundColor: \"var(--mdc-theme-background)\",\n fontWeight: 600,\n \".status\": {\n backgroundColor: \"var(--mdc-theme-primary)\"\n }\n },\n \"&.pending\": {\n \".status\": {\n backgroundColor: \"var(--mdc-theme-on-surface)\"\n }\n },\n \"&.installed\": {\n \".status\": {\n backgroundColor: \"var(--mdc-theme-secondary)\"\n }\n }\n }\n});\n\nconst Note = styled(\"div\")({\n padding: 15\n});\ninterface InstallationsProps {\n title: React.ReactNode;\n allInstallers: Installer[];\n installer: Installer;\n showLogin: boolean;\n}\nconst Installations: React.FC<InstallationsProps> = props => {\n const { title, allInstallers, installer, showLogin } = props;\n const renderList = () => {\n const loginItem = (\n <li key={\"login\"} className={\"sign-in\"}>\n <img src={signInDivider} alt={\"\"} />\n <Typography use={\"overline\"} className={\"note\"}>\n TO CONTINUE THE INSTALLATION AFTER THIS POINT YOU’LL NEED TO SIGN IN\n </Typography>\n </li>\n );\n\n const items = [];\n for (let i = 0; i < allInstallers.length; i++) {\n const { name, title, secure, installed } = allInstallers[i];\n const prev = i === 0 ? null : allInstallers[i - 1];\n if ((!prev || !prev.secure) && secure && showLogin) {\n items.push(loginItem);\n }\n\n const active = installer && !showLogin && name === installer.name;\n\n items.push(\n <li\n key={name}\n className={classSet(\n { installed: installed },\n { active: active },\n { pending: !installed && !active }\n )}\n >\n <span className={\"status\"} />\n <span className={\"title\"}>{title}</span>\n </li>\n );\n }\n return items;\n };\n\n return (\n <Fragment>\n <Note>\n <Typography use={\"body1\"}>{title}</Typography>\n </Note>\n <List>{renderList()}</List>\n </Fragment>\n );\n};\n\ninterface SidebarProps {\n allInstallers: Installer[];\n installer: Installer;\n showLogin: boolean;\n}\nconst Sidebar: React.FC<SidebarProps> = ({ allInstallers, installer, showLogin }) => {\n const upgrades = allInstallers.filter(installer => installer.type === \"upgrade\");\n const installations = allInstallers.filter(installer => installer.type === \"install\");\n\n const wbyVersion = appConfig.getKey(\"WEBINY_VERSION\", process.env.REACT_APP_WEBINY_VERSION);\n\n return (\n <SidebarWrapper>\n <Logo>\n <img src={webinyLogo} alt=\"Webiny CMS\" />\n </Logo>\n {upgrades.length > 0 ? (\n <Installations\n title={\n <span>\n The following apps will be upgraded to <strong>{wbyVersion}</strong>:\n </span>\n }\n allInstallers={upgrades}\n installer={installer}\n showLogin={showLogin}\n />\n ) : null}\n {installations.length > 0 && (\n <Installations\n title={\"The following apps will be installed and configured:\"}\n allInstallers={installations}\n installer={installer}\n showLogin={upgrades.length > 0 ? false : showLogin}\n />\n )}\n </SidebarWrapper>\n );\n};\nexport default Sidebar;\n"]}
@@ -1,2 +1 @@
1
- /// <reference types="react" />
2
1
  export declare const AppInstaller: () => JSX.Element;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["index.tsx"],"names":["Provider","React","AppInstaller","Installer","AppInstallerHOC","Component","AppInstallerProvider","children"],"mappings":"AAAA,SAASA,QAAT;AACA,OAAOC,KAAP,MAAkB,OAAlB;AAEA,SAASC,YAAY,IAAIC,SAAzB;;AAEA,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,CAACC,SAAD,EAAiD;AACrE,SAAO,SAASC,oBAAT,OAA4C;AAAA,QAAZC,QAAY,QAAZA,QAAY;AAC/C,wBACI,oBAAC,SAAD,qBACI,oBAAC,SAAD,QAAYA,QAAZ,CADJ,CADJ;AAKH,GAND;AAOH,CARD;;AAUA,OAAO,IAAML,YAAY,GAAG,SAAfA,YAAe,GAAM;AAC9B,sBAAO,oBAAC,QAAD;AAAU,IAAA,GAAG,EAAEE;AAAf,IAAP;AACH,CAFM","sourcesContent":["import { Provider } from \"~/index\";\nimport React from \"react\";\nimport { ComponentType } from \"react\";\nimport { AppInstaller as Installer } from \"./AppInstaller\";\n\nconst AppInstallerHOC = (Component: ComponentType<unknown>): React.FC => {\n return function AppInstallerProvider({ children }) {\n return (\n <Installer>\n <Component>{children}</Component>\n </Installer>\n );\n };\n};\n\nexport const AppInstaller = () => {\n return <Provider hoc={AppInstallerHOC} />;\n};\n"]}
@@ -1,7 +1,6 @@
1
- /// <reference types="react" />
2
- export declare const Wrapper: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, "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 InstallContent: 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>;
1
+ export declare const Wrapper: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, Pick<import("react").ClassAttributes<HTMLElement> & import("react").HTMLAttributes<HTMLElement>, keyof import("react").HTMLAttributes<HTMLElement>>, object>;
2
+ export declare const InstallContent: 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
3
  export declare const installerSplitView: string;
5
- export declare const SuccessDialog: 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>;
6
- export declare const InnerContent: 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 SuccessDialog: 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
+ export declare const InnerContent: 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>;
7
6
  export declare const alertClass: string;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["styled.tsx"],"names":["styled","css","Wrapper","display","flexDirection","justifyContent","minHeight","color","whiteSpace","ul","listStyle","paddingLeft","li","MozOsxFontSmoothing","WebkitFontSmoothing","fontSize","lineHeight","fontWeight","letterSpacing","textDecoration","textTransform","marginTop","marginBottom","InstallContent","maxWidth","margin","borderRadius","boxShadow","installerSplitView","height","SuccessDialog","padding","textAlign","p","paddingBottom","InnerContent","position","alertClass","borderLeft"],"mappings":"AAAA,OAAOA,MAAP,MAAmB,iBAAnB;AACA,SAASC,GAAT,QAAoB,SAApB;AAEA,OAAO,IAAMC,OAAO,gBAAGF,MAAH,CAAU,SAAV;AAAA;AAAA;AAAA,GAAqB;AACrCG,EAAAA,OAAO,EAAE,MAD4B;AAErCC,EAAAA,aAAa,EAAE,QAFsB;AAGrCC,EAAAA,cAAc,EAAE,QAHqB;AAIrCC,EAAAA,SAAS,EAAE,OAJ0B;AAKrCC,EAAAA,KAAK,EAAE,6BAL8B;AAMrC,6BAA2B;AACvBC,IAAAA,UAAU,EAAE;AADW,GANU;AASrCC,EAAAA,EAAE,EAAE;AACAC,IAAAA,SAAS,EAAE,MADX;AAEAC,IAAAA,WAAW,EAAE,6CAFb;AAGAC,IAAAA,EAAE,EAAE;AACAL,MAAAA,KAAK,EAAE,+EADP;AAEAM,MAAAA,mBAAmB,EAAE,WAFrB;AAGAC,MAAAA,mBAAmB,EAAE,aAHrB;AAIAC,MAAAA,QAAQ,EAAE,MAJV;AAKAC,MAAAA,UAAU,EAAE,QALZ;AAMAC,MAAAA,UAAU,EAAE,GANZ;AAOAC,MAAAA,aAAa,EAAE,WAPf;AAQAC,MAAAA,cAAc,EAAE,SARhB;AASAC,MAAAA,aAAa,EAAE,SATf;AAUAC,MAAAA,SAAS,EAAE,MAVX;AAWAC,MAAAA,YAAY,EAAE;AAXd;AAHJ;AATiC,CAArB,CAAb;AA4BP,OAAO,IAAMC,cAAc,gBAAGvB,MAAH,CAAU,KAAV;AAAA;AAAA;AAAA,GAAiB;AACxCwB,EAAAA,QAAQ,EAAE,GAD8B;AAExCC,EAAAA,MAAM,EAAE,kBAFgC;AAGxC,wBAAsB;AAClBC,IAAAA,YAAY,EAAE,CADI;AAElBC,IAAAA,SAAS,EAAE;AAFO;AAHkB,CAAjB,CAApB;AASP,OAAO,IAAMC,kBAAkB,gBAAG3B,GAAG,CAAC;AAClC,+BAA6B;AACzB4B,IAAAA,MAAM,EAAE,OADiB;AAEzB,+CAA2C;AACvCA,MAAAA,MAAM,EAAE;AAD+B;AAFlB;AADK,CAAD,8BAA9B;AASP,OAAO,IAAMC,aAAa,gBAAG9B,MAAH,CAAU,KAAV;AAAA;AAAA;AAAA,GAAiB;AACvC+B,EAAAA,OAAO,EAAE,EAD8B;AAEvCC,EAAAA,SAAS,EAAE,QAF4B;AAGvCC,EAAAA,CAAC,EAAE;AACCC,IAAAA,aAAa,EAAE;AADhB;AAHoC,CAAjB,CAAnB;AAQP,OAAO,IAAMC,YAAY,gBAAGnC,MAAH,CAAU,KAAV;AAAA;AAAA;AAAA,GAAiB;AACtC+B,EAAAA,OAAO,EAAE,EAD6B;AAEtCK,EAAAA,QAAQ,EAAE;AAF4B,CAAjB,CAAlB;AAKP,OAAO,IAAMC,UAAU,gBAAGpC,GAAG,CAAC;AAC1BqC,EAAAA,UAAU,EAAE,eADc;AAE1Bb,EAAAA,MAAM,EAAE,cAFkB;AAG1BM,EAAAA,OAAO,EAAE;AAHiB,CAAD,sBAAtB","sourcesContent":["import styled from \"@emotion/styled\";\nimport { css } from \"emotion\";\n\nexport const Wrapper = styled(\"section\")({\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n minHeight: \"100vh\",\n color: \"var(--mdc-theme-on-surface)\",\n \".spinner__inner-wrapper\": {\n whiteSpace: \"nowrap\"\n },\n ul: {\n listStyle: \"disc\",\n paddingLeft: \"var(--mdc-layout-grid-margin-desktop, 24px)\",\n li: {\n color: \"var(--desktop-color, var(--webiny-theme-color-text-primary, rgb(10, 10, 10)))\",\n MozOsxFontSmoothing: \"grayscale\",\n WebkitFontSmoothing: \"antialiased\",\n fontSize: \"1rem\",\n lineHeight: \"1.5rem\",\n fontWeight: 400,\n letterSpacing: \"0.03125em\",\n textDecoration: \"inherit\",\n textTransform: \"inherit\",\n marginTop: \"20px\",\n marginBottom: \"20px\"\n }\n }\n});\n\nexport const InstallContent = styled(\"div\")({\n maxWidth: 800,\n margin: \"0 auto 25px auto\",\n \".mdc-elevation--z2\": {\n borderRadius: 4,\n boxShadow: \"0 1px 3px 0 rgba(0,0,0,0.15)\"\n }\n});\n\nexport const installerSplitView = css({\n \".webiny-split-view__inner\": {\n height: \"100vh\",\n \".webiny-split-view__right-panel-wrapper\": {\n height: \"100vh\"\n }\n }\n});\n\nexport const SuccessDialog = styled(\"div\")({\n padding: 40,\n textAlign: \"center\",\n p: {\n paddingBottom: 40\n }\n});\n\nexport const InnerContent = styled(\"div\")({\n padding: 25,\n position: \"relative\"\n});\n\nexport const alertClass = css({\n borderLeft: \"3px solid red\",\n margin: \"5px 0 15px 0\",\n padding: \"2px 0 2px 10px\"\n});\n"]}
@@ -7,14 +7,16 @@ interface SkippingVersionState {
7
7
  latest: string;
8
8
  availableUpgrades: string[];
9
9
  }
10
- export interface Installer {
10
+ interface BaseInstaller {
11
+ installed: string | null;
12
+ plugin: AdminInstallationPlugin;
13
+ }
14
+ export interface Installer extends BaseInstaller {
11
15
  type: "install" | "upgrade";
12
16
  name: string;
13
17
  title: string;
14
18
  render: AdminInstallationPlugin["render"];
15
- installed: string | null;
16
19
  secure?: boolean;
17
- plugin: AdminInstallationPlugin;
18
20
  }
19
21
  export declare const useInstaller: (params: UseInstallerParams) => {
20
22
  loading: boolean;
@@ -23,6 +25,6 @@ export declare const useInstaller: (params: UseInstallerParams) => {
23
25
  showNextInstaller: () => any;
24
26
  showLogin: boolean;
25
27
  onUser: () => void;
26
- skippingVersions: SkippingVersionState;
28
+ skippingVersions: SkippingVersionState | null;
27
29
  };
28
30
  export {};
@@ -117,7 +117,7 @@ export var useInstaller = function useInstaller(params) {
117
117
  var upgrades = (installer.plugin.upgrades || []).filter(function (_ref4) {
118
118
  var version = _ref4.version;
119
119
  // TODO use coerce
120
- return lte(version, wbyVersion) && gt(version, installer.installed);
120
+ return lte(version, wbyVersion) && gt(version, installer.installed || "");
121
121
  });
122
122
 
123
123
  if (upgrades.length > 1) {
@@ -188,7 +188,7 @@ export var useInstaller = function useInstaller(params) {
188
188
 
189
189
  if (installers.length < installerIndex + 1) {
190
190
  setState({
191
- installerIndex: null
191
+ installerIndex: undefined
192
192
  });
193
193
  return;
194
194
  }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["useInstaller.tsx"],"names":["React","useCallback","useReducer","useEffect","Suspense","Graph","alg","sort","gt","lte","useApolloClient","plugins","CircularProgress","config","appConfig","Loader","children","props","cloneElement","useInstaller","params","isInstalled","prev","next","loading","installers","installerIndex","showLogin","skippingVersions","state","setState","client","validateGraph","graph","isAcyclic","cycles","findCycles","msg","forEach","cycle","index","fromAToB","join","fromBToA","reverse","padLength","length","push","padStart","Error","createGraph","plugin","setNode","name","pl","Array","isArray","dependencies","dep","setEdge","getInstallers","toInstall","toUpgrade","leaf","sinks","installer","find","inst","removeNode","installed","type","title","render","secure","wbyVersion","getKey","process","env","REACT_APP_WEBINY_VERSION","upgrades","filter","version","availableUpgrades","map","u","latestUpgrade","current","latest","onInstalled","Component","getComponent","a","b","onUser","showNextInstaller","prevInstaller","undefined","nextIndex","nextInstaller","prevSecure","nextSecure","allInstallers","Promise","all","byType","getInstalledVersion"],"mappings":"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","sourcesContent":["import React, { useCallback, useReducer, useEffect, Suspense } from \"react\";\nimport { Graph, alg } from \"graphlib\";\nimport { sort, gt, lte } from \"semver\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { plugins } from \"@webiny/plugins\";\nimport { AdminInstallationPlugin } from \"~/types\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { config as appConfig } from \"@webiny/app/config\";\n\nconst Loader: React.FC<{ children: React.ReactElement }> = ({ children, ...props }) => (\n <Suspense fallback={<CircularProgress label={\"Loading...\"} />}>\n {React.cloneElement(children, props)}\n </Suspense>\n);\n\ninterface GetInstallersResult {\n toInstall: Installer[];\n toUpgrade: Installer[];\n}\n\ninterface UseInstallerParams {\n isInstalled: boolean;\n}\n\ninterface SkippingVersionState {\n current: string;\n latest: string;\n availableUpgrades: string[];\n}\n\ninterface BaseInstaller {\n installed: string | null;\n plugin: AdminInstallationPlugin;\n}\n\nexport interface Installer extends BaseInstaller {\n type: \"install\" | \"upgrade\";\n name: string;\n title: string;\n render: AdminInstallationPlugin[\"render\"];\n secure?: boolean;\n}\ninterface State {\n loading: boolean;\n installers: Installer[];\n installerIndex: number;\n showLogin: boolean;\n skippingVersions: SkippingVersionState | null;\n}\n\ninterface Reducer {\n (prev: State, next: Partial<State>): State;\n}\n\nexport const useInstaller = (params: UseInstallerParams) => {\n const { isInstalled } = params;\n const [state, setState] = useReducer<Reducer>((prev, next) => ({ ...prev, ...next }), {\n loading: true,\n installers: [],\n installerIndex: -1,\n showLogin: false,\n skippingVersions: null\n });\n const { loading, installers, installerIndex, showLogin, skippingVersions } = state;\n\n const client = useApolloClient();\n\n const validateGraph = (graph: Graph): void => {\n const isAcyclic = alg.isAcyclic(graph);\n if (isAcyclic) {\n return;\n }\n const cycles = alg.findCycles(graph);\n const msg = [\"Your installers have circular dependencies:\"];\n cycles.forEach((cycle, index) => {\n let fromAToB = cycle.join(\" --> \");\n fromAToB = `${index + 1}. ${fromAToB}`;\n const fromBToA = cycle.reverse().join(\" <-- \");\n const padLength = fromAToB.length + 4;\n msg.push(fromAToB.padStart(padLength));\n msg.push(fromBToA.padStart(padLength));\n }, cycles);\n throw new Error(msg.join(\"\\n\"));\n };\n\n const createGraph = (installers: BaseInstaller[]): Graph => {\n const graph = new Graph();\n installers.forEach(({ plugin }) => {\n graph.setNode(plugin.name as string, plugin);\n });\n\n installers.forEach(({ plugin: pl }) => {\n if (Array.isArray(pl.dependencies)) {\n pl.dependencies.forEach(dep => {\n graph.setEdge(pl.name as string, dep);\n });\n }\n });\n\n validateGraph(graph);\n\n return graph;\n };\n\n const getInstallers = useCallback(\n (\n installers: BaseInstaller[],\n graph: Graph,\n toInstall: Installer[] = [],\n toUpgrade: Installer[] = []\n ): GetInstallersResult => {\n const leaf = graph.sinks()[0];\n if (leaf) {\n const installer = installers.find(inst => inst.plugin.name === leaf);\n if (!installer) {\n throw new Error(`Missing installer plugin \"${leaf}\"!`);\n }\n\n graph.removeNode(leaf);\n if (!installer.installed) {\n toInstall.push({\n type: \"install\",\n name: `${installer.plugin.name}-install`,\n title: installer.plugin.title,\n render: installer.plugin.render,\n secure: installer.plugin.secure,\n installed: null,\n plugin: installer.plugin\n });\n } else {\n const wbyVersion = appConfig.getKey(\n \"WEBINY_VERSION\",\n process.env.REACT_APP_WEBINY_VERSION as string\n );\n\n const upgrades = (installer.plugin.upgrades || []).filter(({ version }) => {\n // TODO use coerce\n return lte(version, wbyVersion) && gt(version, installer.installed || \"\");\n });\n\n if (upgrades.length > 1) {\n const availableUpgrades = sort(upgrades.map(u => u.version));\n const latestUpgrade = availableUpgrades[availableUpgrades.length - 1];\n setState({\n skippingVersions: {\n current: installer.installed,\n latest: latestUpgrade,\n availableUpgrades\n }\n });\n } else if (upgrades.length === 1) {\n toUpgrade.push({\n type: \"upgrade\",\n name: `${installer.plugin.name}-upgrade`,\n title: installer.plugin.title,\n secure: true,\n installed: null,\n plugin: installer.plugin,\n render({ onInstalled }) {\n const Component = upgrades[0].getComponent();\n return (\n <Loader>\n <Component onInstalled={onInstalled} />\n </Loader>\n );\n }\n });\n }\n }\n return getInstallers(installers, graph, toInstall, toUpgrade);\n }\n toInstall.sort((a, b) => {\n if (a.secure && !b.secure) {\n return 1;\n } else if (!a.secure && b.secure) {\n return -1;\n }\n return 0;\n });\n return { toInstall, toUpgrade };\n },\n []\n );\n\n const onUser = () => {\n setState({ showLogin: false });\n };\n\n /**\n * If set to anything else, it breaks in AppInstaller.tsx\n */\n const showNextInstaller = (): any => {\n const prevInstaller = installers[installerIndex];\n\n installers[installerIndex].installed = appConfig.getKey(\n \"WEBINY_VERSION\",\n process.env.REACT_APP_WEBINY_VERSION as string\n );\n setState({ installers });\n\n if (installers.length < installerIndex + 1) {\n setState({ installerIndex: undefined });\n return;\n }\n\n const nextIndex = installerIndex + 1;\n\n let showLogin = false;\n const nextInstaller = installers[nextIndex];\n\n const prevSecure = prevInstaller && prevInstaller.secure;\n const nextSecure = nextInstaller && nextInstaller.secure;\n if (!prevSecure && nextSecure) {\n showLogin = true;\n }\n setState({ installerIndex: nextIndex, showLogin });\n };\n\n useEffect(() => {\n (async () => {\n if (isInstalled) {\n return;\n }\n\n const allInstallers: BaseInstaller[] = [];\n await Promise.all(\n plugins.byType<AdminInstallationPlugin>(\"admin-installation\").map(async pl => {\n const installed = await pl.getInstalledVersion({ client });\n allInstallers.push({ plugin: pl, installed });\n })\n );\n\n const graph = createGraph(allInstallers);\n const { toInstall, toUpgrade } = getInstallers(allInstallers, graph);\n const installers = [...toUpgrade, ...toInstall];\n setState({\n installers,\n installerIndex: 0,\n loading: false,\n showLogin: toUpgrade.length > 0 || (toInstall.length > 0 && toInstall[0].secure)\n });\n })();\n }, []);\n\n return {\n loading,\n installers,\n installer: installers[installerIndex],\n showNextInstaller,\n showLogin,\n onUser,\n skippingVersions\n };\n};\n"]}
@@ -2,7 +2,7 @@ import React, { ReactElement } from "react";
2
2
  export interface EmptyViewProps {
3
3
  icon?: ReactElement;
4
4
  title: string;
5
- action: ReactElement;
5
+ action: ReactElement | null;
6
6
  }
7
7
  declare const EmptyView: React.FC<EmptyViewProps>;
8
8
  export default EmptyView;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["EmptyView.tsx"],"names":["React","styled","Typography","ReactComponent","TouchIcon","EmptyViewWrapper","width","height","display","flexDirection","alignItems","justifyContent","fill","marginBottom","maxWidth","textAlign","color","padding","backgroundColor","EmptyView","icon","title","action"],"mappings":"AAAA,OAAOA,KAAP,MAAoC,OAApC;AACA,OAAOC,MAAP,MAAmB,iBAAnB;AACA,SAASC,UAAT,QAA2B,uBAA3B;AACA,SAASC,cAAc,IAAIC,SAA3B;AAEA,IAAMC,gBAAgB,gBAAGJ,MAAH,CAAU,KAAV;AAAA;AAAA;AAAA,GAAiB;AACnCK,EAAAA,KAAK,EAAE,MAD4B;AAEnCC,EAAAA,MAAM,EAAE,KAF2B;AAGnCC,EAAAA,OAAO,EAAE,MAH0B;AAInCC,EAAAA,aAAa,EAAE,QAJoB;AAKnCC,EAAAA,UAAU,EAAE,QALuB;AAMnCC,EAAAA,cAAc,EAAE,QANmB;AAQnC,cAAY;AACR,aAAS;AACLL,MAAAA,KAAK,EAAE,EADF;AAELC,MAAAA,MAAM,EAAE,EAFH;AAGLK,MAAAA,IAAI,EAAE;AAHD,KADD;AAMRC,IAAAA,YAAY,EAAE;AANN,GARuB;AAgBnC,yBAAuB;AACnBC,IAAAA,QAAQ,EAAE,GADS;AAEnBC,IAAAA,SAAS,EAAE,QAFQ;AAGnBF,IAAAA,YAAY,EAAE,EAHK;AAInB,gBAAY;AACRG,MAAAA,KAAK,EAAE;AADC;AAJO,GAhBY;AAwBnC,0BAAwB;AACpB,qBAAiB;AACbC,MAAAA,OAAO,EAAE,UADI;AAEbC,MAAAA,eAAe,EAAE;AAFJ;AADG;AAxBW,CAAjB,CAAtB;;AAoCA,IAAMC,SAAmC,GAAG,SAAtCA,SAAsC,OAA6C;AAAA,uBAA1CC,IAA0C;AAAA,MAA1CA,IAA0C,uCAAnC,oBAAC,SAAD,OAAmC;AAAA,MAApBC,KAAoB,QAApBA,KAAoB;AAAA,MAAbC,MAAa,QAAbA,MAAa;AACrF,sBACI,oBAAC,gBAAD,qBACI;AAAK,IAAA,SAAS,EAAE;AAAhB,KAA0BF,IAA1B,CADJ,eAEI;AAAK,IAAA,SAAS,EAAC;AAAf,kBACI,oBAAC,UAAD;AAAY,IAAA,GAAG,EAAE,WAAjB;AAA8B,IAAA,SAAS,EAAE;AAAzC,KACKC,KADL,CADJ,CAFJ,eAOI;AAAK,IAAA,SAAS,EAAC;AAAf,KAAoCC,MAApC,CAPJ,CADJ;AAWH,CAZD;;AAcA,eAAeH,SAAf","sourcesContent":["import React, { ReactElement } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { ReactComponent as TouchIcon } from \"../assets/icons/touch_app.svg\";\n\nconst EmptyViewWrapper = styled(\"div\")({\n width: \"100%\",\n height: \"80%\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n\n \"& .media\": {\n \"& svg\": {\n width: 75,\n height: 75,\n fill: \"var(--mdc-theme-text-icon-on-background)\"\n },\n marginBottom: 30\n },\n \"& .title__container\": {\n maxWidth: 276,\n textAlign: \"center\",\n marginBottom: 24,\n \"& .title\": {\n color: \"var(--mdc-theme-text-secondary-on-background)\"\n }\n },\n \"& .action__container\": {\n \"& .mdc-button\": {\n padding: \"0px 16px\",\n backgroundColor: \"var(--mdc-theme-surface)\"\n }\n }\n});\nexport interface EmptyViewProps {\n icon?: ReactElement;\n title: string;\n action: ReactElement | null;\n}\nconst EmptyView: React.FC<EmptyViewProps> = ({ icon = <TouchIcon />, title, action }) => {\n return (\n <EmptyViewWrapper>\n <div className={\"media\"}>{icon}</div>\n <div className=\"title__container\">\n <Typography use={\"subtitle1\"} className={\"title\"}>\n {title}\n </Typography>\n </div>\n <div className=\"action__container\">{action}</div>\n </EmptyViewWrapper>\n );\n};\n\nexport default EmptyView;\n"]}
@@ -14,6 +14,11 @@ var getUniqueFilePlugins = function getUniqueFilePlugins(accept) {
14
14
  var exts = {};
15
15
  accept.forEach(function (item) {
16
16
  var ext = mime.getExtension(item);
17
+
18
+ if (!ext) {
19
+ return;
20
+ }
21
+
17
22
  exts[ext] = true;
18
23
  });
19
24
  return Object.keys(exts);
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["SupportedFileTypes.tsx"],"names":["React","mime","define","getUniqueFilePlugins","accept","exts","forEach","item","ext","getExtension","Object","keys","SupportedFileTypes","length","join"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,IAAP,MAAiB,WAAjB;AAEAA,IAAI,CAACC,MAAL,CAAY;AAAE,kBAAgB,CAAC,KAAD;AAAlB,CAAZ,EAAyC,IAAzC;AACAD,IAAI,CAACC,MAAL,CAAY;AAAE,eAAa,CAAC,KAAD;AAAf,CAAZ,EAAsC,IAAtC;AACAD,IAAI,CAACC,MAAL,CAAY;AAAE,8BAA4B,CAAC,KAAD;AAA9B,CAAZ,EAAqD,IAArD;;AAEA,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACC,MAAD,EAAgC;AACzD,MAAMC,IAA6B,GAAG,EAAtC;AACAD,EAAAA,MAAM,CAACE,OAAP,CAAe,UAAAC,IAAI,EAAI;AACnB,QAAMC,GAAG,GAAGP,IAAI,CAACQ,YAAL,CAAkBF,IAAlB,CAAZ;;AACA,QAAI,CAACC,GAAL,EAAU;AACN;AACH;;AACDH,IAAAA,IAAI,CAACG,GAAD,CAAJ,GAAY,IAAZ;AACH,GAND;AAQA,SAAOE,MAAM,CAACC,IAAP,CAAYN,IAAZ,CAAP;AACH,CAXD;;AAiBA,IAAMO,kBAAqD,GAAG,SAAxDA,kBAAwD,OAAgB;AAAA,MAAbR,MAAa,QAAbA,MAAa;;AAC1E,MAAI,CAACA,MAAL,EAAa;AACT,WAAO,IAAP;AACH;;AAED,MAAIA,MAAM,CAACS,MAAP,KAAkB,CAAtB,EAAyB;AACrB,wBAAO,iEAAP;AACH;;AAED,sBACI,6EAC4CV,oBAAoB,CAACC,MAAD,CAApB,CAA6BU,IAA7B,CAAkC,IAAlC,CAD5C,MADJ;AAKH,CAdD;;AAgBA,eAAeF,kBAAf","sourcesContent":["import React from \"react\";\nimport mime from \"mime/lite\";\n\nmime.define({ \"image/x-icon\": [\"ico\"] }, true);\nmime.define({ \"image/jpg\": [\"jpg\"] }, true);\nmime.define({ \"image/vnd.microsoft.icon\": [\"ico\"] }, true);\n\nconst getUniqueFilePlugins = (accept: string[]): string[] => {\n const exts: Record<string, boolean> = {};\n accept.forEach(item => {\n const ext = mime.getExtension(item);\n if (!ext) {\n return;\n }\n exts[ext] = true;\n });\n\n return Object.keys(exts);\n};\n\nexport interface SupportedFileTypesProps {\n accept: string[];\n}\n\nconst SupportedFileTypes: React.FC<SupportedFileTypesProps> = ({ accept }) => {\n if (!accept) {\n return null;\n }\n\n if (accept.length === 0) {\n return <span>Showing all file extensions.</span>;\n }\n\n return (\n <span>\n Showing the following file extensions: {getUniqueFilePlugins(accept).join(\", \")}.\n </span>\n );\n};\n\nexport default SupportedFileTypes;\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["UploadStatus.tsx"],"names":["React","styled","CircularProgress","StatusWrapper","color","position","right","bottom","marginRight","display","alignItems","CircularProgressHolder","height","width","UploadingLabel","UploadStatus","uploading"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,MAAP,MAAmB,iBAAnB;AACA,SAASC,gBAAT,QAAiC,qBAAjC;AAEA,IAAMC,aAAa,gBAAGF,MAAH,CAAU,KAAV;AAAA;AAAA;AAAA,GAAiB;AAChCG,EAAAA,KAAK,EAAE,0BADyB;AAEhCC,EAAAA,QAAQ,EAAE,UAFsB;AAGhCC,EAAAA,KAAK,EAAE,CAHyB;AAIhCC,EAAAA,MAAM,EAAE,EAJwB;AAKhCC,EAAAA,WAAW,EAAE,EALmB;AAMhCC,EAAAA,OAAO,EAAE,MANuB;AAOhCC,EAAAA,UAAU,EAAE,QAPoB;AAQhC,WAAS;AACLD,IAAAA,OAAO,EAAE;AADJ;AARuB,CAAjB,CAAnB;AAaA,IAAME,sBAAsB,gBAAGV,MAAH,CAAU,KAAV;AAAA;AAAA;AAAA,GAAiB;AACzCI,EAAAA,QAAQ,EAAE,UAD+B;AAEzCO,EAAAA,MAAM,EAAE,EAFiC;AAGzCC,EAAAA,KAAK,EAAE;AAHkC,CAAjB,CAA5B;AAMA,IAAMC,cAAc,gBAAGb,MAAH,CAAU,KAAV;AAAA;AAAA;AAAA,GAAiB;AACjCO,EAAAA,WAAW,EAAE;AADoB,CAAjB,CAApB;;AAOA,IAAMO,YAAyC,GAAG,SAA5CA,YAA4C,OAAmB;AAAA,MAAhBC,SAAgB,QAAhBA,SAAgB;;AACjE,MAAI,CAACA,SAAL,EAAgB;AACZ,WAAO,IAAP;AACH;;AAED,sBACI,oBAAC,aAAD,qBACI,oBAAC,cAAD,uBADJ,eAEI,oBAAC,sBAAD,qBACI,oBAAC,gBAAD;AAAkB,IAAA,IAAI,EAAE,EAAxB;AAA4B,IAAA,YAAY,EAAE;AAA1C,IADJ,CAFJ,CADJ;AAQH,CAbD;;AAeA,eAAeD,YAAf","sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\n\nconst StatusWrapper = styled(\"div\")({\n color: \"var(--mdc-theme-primary)\",\n position: \"absolute\",\n right: 0,\n bottom: 10,\n marginRight: 10,\n display: \"flex\",\n alignItems: \"center\",\n \"> div\": {\n display: \"inline-block\"\n }\n});\n\nconst CircularProgressHolder = styled(\"div\")({\n position: \"relative\",\n height: 12,\n width: 12\n});\n\nconst UploadingLabel = styled(\"div\")({\n marginRight: 5\n});\n\nexport interface UploadStatusProps {\n uploading: boolean;\n}\nconst UploadStatus: React.FC<UploadStatusProps> = ({ uploading }) => {\n if (!uploading) {\n return null;\n }\n\n return (\n <StatusWrapper>\n <UploadingLabel>Uploading...</UploadingLabel>\n <CircularProgressHolder>\n <CircularProgress size={10} spinnerWidth={1} />\n </CircularProgressHolder>\n </StatusWrapper>\n );\n};\n\nexport default UploadStatus;\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["BottomInfoBar.tsx"],"names":["React","mime","styled","SupportedFileTypes","UploadStatus","define","BottomInfoBarWrapper","fontSize","position","bottom","height","color","borderTop","backgroundColor","width","transform","overflow","display","alignItems","zIndex","padding","BottomInfoBar","props"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,IAAP,MAAiB,WAAjB;AACA,OAAOC,MAAP,MAAmB,iBAAnB;AACA,OAAOC,kBAAP;AACA,OAAOC,YAAP;AAEAH,IAAI,CAACI,MAAL,CAAY;AAAE,kBAAgB,CAAC,KAAD;AAAlB,CAAZ,EAAyC,IAAzC;AACAJ,IAAI,CAACI,MAAL,CAAY;AAAE,eAAa,CAAC,KAAD;AAAf,CAAZ,EAAsC,IAAtC;AACAJ,IAAI,CAACI,MAAL,CAAY;AAAE,8BAA4B,CAAC,KAAD;AAA9B,CAAZ,EAAqD,IAArD;AAEA,IAAMC,oBAAoB,gBAAGJ,MAAH,CAAU,KAAV;AAAA;AAAA;AAAA,GAAiB;AACvCK,EAAAA,QAAQ,EAAE,QAD6B;AAEvCC,EAAAA,QAAQ,EAAE,QAF6B;AAGvCC,EAAAA,MAAM,EAAE,CAH+B;AAIvCC,EAAAA,MAAM,EAAE,EAJ+B;AAKvCC,EAAAA,KAAK,EAAE,+CALgC;AAMvCC,EAAAA,SAAS,EAAE,0CAN4B;AAOvCC,EAAAA,eAAe,EAAE,0BAPsB;AAQvCC,EAAAA,KAAK,EAAE,MARgC;AASvCC,EAAAA,SAAS,EAAE,eAT4B;AAUvCC,EAAAA,QAAQ,EAAE,QAV6B;AAWvCC,EAAAA,OAAO,EAAE,MAX8B;AAYvCC,EAAAA,UAAU,EAAE,QAZ2B;AAavCC,EAAAA,MAAM,EAAE,CAb+B;AAcvC,WAAS;AACLC,IAAAA,OAAO,EAAE,QADJ;AAELN,IAAAA,KAAK,EAAE;AAFF;AAd8B,CAAjB,CAA1B;;AAoBA,IAAMO,aAAoE,GAAG,SAAvEA,aAAuE,CAAAC,KAAK,EAAI;AAClF,sBACI,oBAAC,oBAAD,qBACI,8CACI,oBAAC,kBAAD,EAAwBA,KAAxB,CADJ,eAEI,oBAAC,YAAD,EAAkBA,KAAlB,CAFJ,CADJ,CADJ;AAQH,CATD;;AAWA,eAAeD,aAAf","sourcesContent":["import React from \"react\";\nimport mime from \"mime/lite\";\nimport styled from \"@emotion/styled\";\nimport SupportedFileTypes, { SupportedFileTypesProps } from \"./BottomInfoBar/SupportedFileTypes\";\nimport UploadStatus, { UploadStatusProps } from \"./BottomInfoBar/UploadStatus\";\n\nmime.define({ \"image/x-icon\": [\"ico\"] }, true);\nmime.define({ \"image/jpg\": [\"jpg\"] }, true);\nmime.define({ \"image/vnd.microsoft.icon\": [\"ico\"] }, true);\n\nconst BottomInfoBarWrapper = styled(\"div\")({\n fontSize: \"0.8rem\",\n position: \"sticky\",\n bottom: 0,\n height: 30,\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n borderTop: \"1px solid var(--mdc-theme-on-background)\",\n backgroundColor: \"var(--mdc-theme-surface)\",\n width: \"100%\",\n transform: \"translateZ(0)\",\n overflow: \"hidden\",\n display: \"flex\",\n alignItems: \"center\",\n zIndex: 1,\n \"> div\": {\n padding: \"0 10px\",\n width: \"100%\"\n }\n});\n\nconst BottomInfoBar: React.FC<SupportedFileTypesProps & UploadStatusProps> = props => {\n return (\n <BottomInfoBarWrapper>\n <div>\n <SupportedFileTypes {...props} />\n <UploadStatus {...props} />\n </div>\n </BottomInfoBarWrapper>\n );\n};\n\nexport default BottomInfoBar;\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["DropFilesHere.tsx"],"names":["React","css","classNames","Icon","ReactComponent","UploadIcon","styles","margin","paddingTop","height","zIndex","width","position","backgroundColor","textAlign","borderRadius","left","top","transform","color","display","DropFilesHere","onDrop","onDragLeave","empty","onClick"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,GAAT,QAAoB,SAApB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAASC,IAAT,QAAqB,iBAArB;AAEA,SAASC,cAAc,IAAIC,UAA3B;AAEA,IAAMC,MAAM,gBAAGL,GAAG,CAAC;AACfM,EAAAA,MAAM,EAAE,QADO;AAEfC,EAAAA,UAAU,EAAE,CAFG;AAGfC,EAAAA,MAAM,EAAE,MAHO;AAIfC,EAAAA,MAAM,EAAE,CAJO;AAKfC,EAAAA,KAAK,EAAE,MALQ;AAMfC,EAAAA,QAAQ,EAAE,UANK;AAOfC,EAAAA,eAAe,EAAE,qCAPF;AAQf,aAAW;AACPA,IAAAA,eAAe,EAAE,aADV;AAEP,aAAS;AACLA,MAAAA,eAAe,EAAE;AADZ;AAFF,GARI;AAcf,WAAS;AACLC,IAAAA,SAAS,EAAE,QADN;AAELH,IAAAA,KAAK,EAAE,GAFF;AAGLF,IAAAA,MAAM,EAAE,GAHH;AAILI,IAAAA,eAAe,EAAE,6BAJZ;AAKLE,IAAAA,YAAY,EAAE,KALT;AAMLH,IAAAA,QAAQ,EAAE,UANL;AAOLI,IAAAA,IAAI,EAAE,KAPD;AAQLC,IAAAA,GAAG,EAAE,KARA;AASLC,IAAAA,SAAS,EAAE,oCATN;AAUL,aAAS;AACLN,MAAAA,QAAQ,EAAE,UADL;AAELK,MAAAA,GAAG,EAAE,EAFA;AAGLN,MAAAA,KAAK,EAAE,GAHF;AAILQ,MAAAA,KAAK,EAAE,6BAJF;AAKL,8BAAwB;AACpBR,QAAAA,KAAK,EAAE,GADa;AAEpBS,QAAAA,OAAO,EAAE,cAFW;AAGpBD,QAAAA,KAAK,EAAE;AAHa;AALnB;AAVJ;AAdM,CAAD,kBAAlB;;AA6CA,IAAME,aAA2C,GAAG,SAA9CA,aAA8C,OAA6C;AAAA,MAA1CC,MAA0C,QAA1CA,MAA0C;AAAA,MAAlCC,WAAkC,QAAlCA,WAAkC;AAAA,MAArBC,KAAqB,QAArBA,KAAqB;AAAA,MAAdC,OAAc,QAAdA,OAAc;AAC7F,sBACI;AACI,IAAA,SAAS,EAAEvB,UAAU,CAACI,MAAD,EAAS;AAAEkB,MAAAA,KAAK,EAALA;AAAF,KAAT,CADzB;AAEI,IAAA,MAAM,EAAEF,MAFZ;AAGI,IAAA,OAAO,EAAEG,OAHb;AAII,IAAA,WAAW,EAAEF;AAJjB,kBAMI,8CACI,8CACI,oBAAC,IAAD;AAAM,IAAA,IAAI,eAAE,oBAAC,UAAD;AAAZ,IADJ,eAEI,mDAFJ,CADJ,CANJ,CADJ;AAeH,CAhBD;;AAiBA,eAAeF,aAAf","sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\nimport classNames from \"classnames\";\nimport { Icon } from \"@webiny/ui/Icon\";\n\nimport { ReactComponent as UploadIcon } from \"./icons/round-cloud_upload-24px.svg\";\n\nconst styles = css({\n margin: \"0 auto\",\n paddingTop: 0,\n height: \"100%\",\n zIndex: 2,\n width: \"100%\",\n position: \"absolute\",\n backgroundColor: \"var(--mdc-theme-text-hint-on-light)\",\n \"&.empty\": {\n backgroundColor: \"transparent\",\n \"> div\": {\n backgroundColor: \"var(--mdc-theme-surface)\"\n }\n },\n \"> div\": {\n textAlign: \"center\",\n width: 300,\n height: 300,\n backgroundColor: \"var(--mdc-theme-background)\",\n borderRadius: \"50%\",\n position: \"absolute\",\n left: \"50%\",\n top: \"50%\",\n transform: \"translateX(-50%) translateY(-100%)\",\n \"> div\": {\n position: \"absolute\",\n top: 90,\n width: 300,\n color: \"var(--mdc-theme-on-surface)\",\n \"svg.mdc-button__icon\": {\n width: 100,\n display: \"inline-block\",\n color: \"var(--mdc-theme-on-surface)\"\n }\n }\n }\n});\n\nexport interface DropFilesHereProps {\n onDragLeave?: (event?: React.DragEvent<HTMLElement>) => void;\n onDrop?: (event?: React.DragEvent<HTMLElement>) => void;\n empty?: boolean;\n onClick?: (event?: React.MouseEvent<HTMLElement>) => void;\n}\n\nconst DropFilesHere: React.FC<DropFilesHereProps> = ({ onDrop, onDragLeave, empty, onClick }) => {\n return (\n <div\n className={classNames(styles, { empty })}\n onDrop={onDrop}\n onClick={onClick}\n onDragLeave={onDragLeave}\n >\n <div>\n <div>\n <Icon icon={<UploadIcon />} />\n <div>Drop files here</div>\n </div>\n </div>\n </div>\n );\n};\nexport default DropFilesHere;\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["File.tsx"],"names":["React","LazyLoad","classNames","css","keyframes","Ripple","IconButton","ReactComponent","Checked","SettingsIcon","COMPONENT_WIDTH","COMPONENT_HEIGHT","grow","styles","display","float","position","zIndex","margin","cursor","width","maxWidth","border","borderRadius","transition","height","overflow","color","top","left","opacity","right","animationName","animationDuration","animationTimingFunction","animationDelay","textAlign","backgroundColor","padding","whiteSpace","textOverflow","fontSize","File","props","file","selected","onSelect","children","showFileDetails","name","memo","prev","next"],"mappings":"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","sourcesContent":["import React from \"react\";\n/**\n * Package react-lazy-load has no types.\n */\n// @ts-ignore\nimport LazyLoad from \"react-lazy-load\";\nimport classNames from \"classnames\";\nimport { css, keyframes } from \"emotion\";\nimport { Ripple } from \"@webiny/ui/Ripple\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { ReactComponent as Checked } from \"./icons/round-check_box-24px.svg\";\nimport { ReactComponent as SettingsIcon } from \"../../assets/icons/round-settings-24px.svg\";\n\nconst COMPONENT_WIDTH = 200;\nconst COMPONENT_HEIGHT = 200;\n\nconst grow = keyframes`\n 0% {\n transform: scale(1)\n }\n 50% {\n transform: scale(1.2)\n }\n 100% {\n transform: scale(1)\n }\n`;\nconst styles = css({\n display: \"inline-block\",\n float: \"left\",\n position: \"relative\",\n zIndex: 1,\n margin: 10,\n cursor: \"pointer\",\n width: \"100%\",\n maxWidth: COMPONENT_WIDTH,\n border: \"1px solid var(--mdc-theme-on-background)\",\n borderRadius: 2,\n \"> .body\": {\n transition: \"200ms ease-in opacity\",\n width: COMPONENT_WIDTH,\n height: COMPONENT_HEIGHT,\n overflow: \"hidden\",\n \"--icon-color\": \"var(--mdc-theme-on-background)\",\n \".checkedIcon\": {\n color: \"var(--mdc-theme-secondary)\",\n position: \"absolute\",\n top: 4,\n left: 4,\n zIndex: 11\n },\n \".infoIcon\": {\n opacity: 0,\n position: \"absolute\",\n top: 0,\n right: 0,\n zIndex: 10,\n transition: \"all 150ms ease-in\",\n \"& .mdc-icon-button svg\": {\n color: \"var(--mdc-theme-secondary)\"\n },\n \"&:hover\": {\n animationName: grow,\n animationDuration: \".4s\",\n animationTimingFunction: \"ease-in\",\n animationDelay: \".2s\"\n }\n },\n \".filePreview\": {\n textAlign: \"center\",\n position: \"relative\",\n backgroundColor: \"#fff\",\n width: \"100%\",\n height: \"100%\",\n \".clickableArea\": {\n position: \"absolute\",\n top: 30,\n left: 0,\n width: \"100%\",\n height: 170,\n zIndex: 2\n }\n },\n \"&:hover .infoIcon\": {\n opacity: 1\n }\n },\n \"> .label\": {\n padding: \"15px 10px\",\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n fontSize: \"0.8rem\",\n color: \"var(--mdc-theme-on-surface)\",\n backgroundColor: \"var(--mdc-theme-on-background)\"\n },\n \"&.disable-select\": {\n cursor: \"auto\"\n }\n});\n\nexport interface FileProps {\n file: FileItem;\n selected: boolean;\n uploadFile: (item: FileItem[] | FileItem) => Promise<number | null>;\n onSelect: (event?: React.MouseEvent) => void;\n onClick?: (event?: React.MouseEvent) => void;\n options?: Array<{ label: string; onClick: (file: Object) => void }>;\n children: React.ReactNode;\n showFileDetails: (event?: React.MouseEvent) => void;\n}\n\nconst File: React.FC<FileProps> = props => {\n const { file, selected, onSelect, children, showFileDetails } = props;\n\n return (\n <div\n className={classNames(styles, { \"disable-select\": !onSelect })}\n data-testid={\"fm-list-wrapper-file\"}\n >\n <div className={\"body\"}>\n <div className={\"checkedIcon\"} onClick={onSelect}>\n {selected ? <Checked /> : null}\n </div>\n <div className={\"infoIcon\"}>\n <IconButton\n icon={<SettingsIcon />}\n onClick={showFileDetails}\n data-testid={\"fm-file-wrapper-file-info-icon\"}\n />\n </div>\n <LazyLoad height={200} offsetVertical={300}>\n <Ripple>\n <div className={\"filePreview\"}>\n <div className=\"clickableArea\" onClick={onSelect} />\n {children}\n </div>\n </Ripple>\n </LazyLoad>\n </div>\n <div className={\"label\"} onClick={onSelect}>\n {file.name}\n </div>\n </div>\n );\n};\n\nexport default React.memo(File, (prev, next) => {\n if (prev.selected !== next.selected) {\n return false;\n } else if (prev.file.name !== next.file.name) {\n return false;\n }\n\n return true;\n});\n"]}
@@ -63,11 +63,14 @@ var Name = function Name(_ref) {
63
63
  variables: queryParams
64
64
  }));
65
65
 
66
- data.fileManager.listFiles.data.forEach(function (item) {
67
- if (item.src === newFileData.src) {
68
- item.name = newFileData.name;
69
- }
70
- });
66
+ if (data) {
67
+ data.fileManager.listFiles.data.forEach(function (item) {
68
+ if (item.src === newFileData.src) {
69
+ item.name = newFileData.name;
70
+ }
71
+ });
72
+ }
73
+
71
74
  cache.writeQuery({
72
75
  query: LIST_FILES,
73
76
  variables: queryParams,
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["Name.tsx"],"names":["React","useMemo","useApolloClient","Input","Form","validation","useSnackbar","UPDATE_FILE","LIST_FILES","useFileManager","Name","file","canEdit","name","showSnackbar","client","queryParams","editContent","mutate","mutation","variables","id","data","update","cache","updated","newFileData","readQuery","query","fileManager","listFiles","forEach","item","src","writeQuery","Bind","submit","create"],"mappings":"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","sourcesContent":["import React, { useMemo } from \"react\";\nimport { get, cloneDeep } from \"lodash\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { Form } from \"@webiny/form\";\nimport { validation } from \"@webiny/validation\";\nimport { useSnackbar } from \"~/hooks/useSnackbar\";\nimport {\n UPDATE_FILE,\n LIST_FILES,\n UpdateFileMutationResponse,\n UpdateFileMutationVariables,\n ListFilesQueryResponse\n} from \"./../graphql\";\nimport { useFileManager } from \"./../FileManagerContext\";\nimport { FileItem } from \"../types\";\n\ninterface NameProps {\n file: FileItem;\n canEdit: (file: FileItem) => boolean;\n}\nconst Name: React.FC<NameProps> = ({ file, canEdit }) => {\n const name = file.name || \"\";\n const { showSnackbar } = useSnackbar();\n const client = useApolloClient();\n\n const { queryParams } = useFileManager();\n\n const editContent = useMemo(() => {\n return (\n <Form\n data={{\n name\n }}\n onSubmit={async ({ name }) => {\n // Bail out if name is same as the current file name.\n if (name === file.name) {\n return;\n }\n // Update file.\n await client.mutate<UpdateFileMutationResponse, UpdateFileMutationVariables>({\n mutation: UPDATE_FILE,\n variables: {\n id: file.id,\n data: { name }\n },\n update: (cache, updated) => {\n const newFileData: FileItem = get(\n updated,\n \"data.fileManager.updateFile.data\"\n );\n const data = cloneDeep(\n cache.readQuery<ListFilesQueryResponse>({\n query: LIST_FILES,\n variables: queryParams\n })\n );\n\n if (data) {\n data.fileManager.listFiles.data.forEach(item => {\n if (item.src === newFileData.src) {\n item.name = newFileData.name;\n }\n });\n }\n\n cache.writeQuery({\n query: LIST_FILES,\n variables: queryParams,\n data: data\n });\n }\n });\n\n showSnackbar(\"Name successfully updated.\");\n }}\n >\n {({ Bind, submit }) => (\n <Bind name={\"name\"} validators={validation.create(\"required\")}>\n <Input\n disabled={!canEdit(file)}\n autoFocus\n placeholder={\"Enter name\"}\n fullwidth={true}\n onBlur={submit}\n description={\"A descriptive name is easier to remember.\"}\n />\n </Bind>\n )}\n </Form>\n );\n }, [name, file.name, canEdit]);\n\n return <li-content>{editContent}</li-content>;\n};\n\nexport default Name;\n"]}
@@ -142,11 +142,15 @@ var Tags = function Tags(_ref) {
142
142
  query: LIST_FILES,
143
143
  variables: queryParams
144
144
  }));
145
- data.fileManager.listFiles.data.forEach(function (item) {
146
- if (item.key === newFileData.key) {
147
- item.tags = newFileData.tags;
148
- }
149
- });
145
+
146
+ if (data) {
147
+ data.fileManager.listFiles.data.forEach(function (item) {
148
+ if (item.key === newFileData.key) {
149
+ item.tags = newFileData.tags;
150
+ }
151
+ });
152
+ }
153
+
150
154
  cache.writeQuery({
151
155
  query: LIST_FILES,
152
156
  variables: queryParams,
@@ -157,7 +161,12 @@ var Tags = function Tags(_ref) {
157
161
  // Get list tags data
158
162
  var listTagsData = cloneDeep(cache.readQuery({
159
163
  query: LIST_TAGS
160
- })); // Add new tag in list
164
+ }));
165
+
166
+ if (!listTagsData) {
167
+ return;
168
+ } // Add new tag in list
169
+
161
170
 
162
171
  var updatedTagsList = _toConsumableArray(newFileData.tags);
163
172
 
@@ -228,7 +237,9 @@ var Tags = function Tags(_ref) {
228
237
  className: actionWrapperStyle
229
238
  }, /*#__PURE__*/React.createElement(ButtonPrimary, {
230
239
  small: true,
231
- onClick: submit,
240
+ onClick: function onClick(ev) {
241
+ submit(ev);
242
+ },
232
243
  "data-testid": "fm.tags.submit"
233
244
  }, "Submit"), /*#__PURE__*/React.createElement(ButtonSecondary, {
234
245
  small: true,