@webiny/app-admin 5.36.2 → 5.37.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/base/Admin.js +3 -2
  2. package/base/Admin.js.map +1 -1
  3. package/base/Base.js +9 -6
  4. package/base/Base.js.map +1 -1
  5. package/base/plugins/AddGraphQLQuerySelection.js.map +1 -1
  6. package/base/providers/ApolloProvider.js.map +1 -1
  7. package/base/providers/TelemetryProvider.js +1 -3
  8. package/base/providers/TelemetryProvider.js.map +1 -1
  9. package/base/providers/UiStateProvider.js.map +1 -1
  10. package/base/providers/ViewCompositionProvider.js.map +1 -1
  11. package/base/ui/Brand.js.map +1 -1
  12. package/base/ui/CenteredView.js.map +1 -1
  13. package/base/ui/Dashboard.js.map +1 -1
  14. package/base/ui/FileManager.d.ts +1 -0
  15. package/base/ui/FileManager.js +10 -1
  16. package/base/ui/FileManager.js.map +1 -1
  17. package/base/ui/Layout.js.map +1 -1
  18. package/base/ui/LocaleSelector.js.map +1 -1
  19. package/base/ui/LoginScreen.js.map +1 -1
  20. package/base/ui/Logo.js.map +1 -1
  21. package/base/ui/Menu.js.map +1 -1
  22. package/base/ui/Navigation.js.map +1 -1
  23. package/base/ui/NotFound.js.map +1 -1
  24. package/base/ui/Search.js.map +1 -1
  25. package/base/ui/Tags.js.map +1 -1
  26. package/base/ui/UserMenu.js.map +1 -1
  27. package/components/AdminLayout.js.map +1 -1
  28. package/components/AppInstaller/AppInstaller.js.map +1 -1
  29. package/components/AppInstaller/Sidebar.js.map +1 -1
  30. package/components/AppInstaller/index.js.map +1 -1
  31. package/components/AppInstaller/styled.js.map +1 -1
  32. package/components/AppInstaller/useInstaller.js.map +1 -1
  33. package/components/Buttons/Buttons.d.ts +20 -0
  34. package/components/Buttons/Buttons.js +59 -0
  35. package/components/Buttons/Buttons.js.map +1 -0
  36. package/components/Buttons/Buttons.styles.d.ts +7 -0
  37. package/components/Buttons/Buttons.styles.js +13 -0
  38. package/components/Buttons/Buttons.styles.js.map +1 -0
  39. package/components/Buttons/index.d.ts +2 -0
  40. package/components/Buttons/index.js +19 -0
  41. package/components/Buttons/index.js.map +1 -0
  42. package/components/Buttons/useButtons.d.ts +14 -0
  43. package/components/Buttons/useButtons.js +30 -0
  44. package/components/Buttons/useButtons.js.map +1 -0
  45. package/components/EmptyView.js.map +1 -1
  46. package/components/Filters/Filters.d.ts +15 -0
  47. package/components/Filters/Filters.js +28 -0
  48. package/components/Filters/Filters.js.map +1 -0
  49. package/components/Filters/Filters.styles.d.ts +15 -0
  50. package/components/Filters/Filters.styles.js +23 -0
  51. package/components/Filters/Filters.styles.js.map +1 -0
  52. package/components/Filters/index.d.ts +1 -0
  53. package/components/Filters/index.js +16 -0
  54. package/components/Filters/index.js.map +1 -0
  55. package/components/FloatingActionButton.js.map +1 -1
  56. package/components/LexicalEditor/LexicalEditor.d.ts +8 -0
  57. package/components/LexicalEditor/LexicalEditor.js +28 -0
  58. package/components/LexicalEditor/LexicalEditor.js.map +1 -0
  59. package/components/LexicalEditor/index.d.ts +1 -0
  60. package/components/LexicalEditor/index.js +12 -0
  61. package/components/LexicalEditor/index.js.map +1 -0
  62. package/components/MultiImageUpload.js +4 -0
  63. package/components/MultiImageUpload.js.map +1 -1
  64. package/components/OptionsMenu/OptionsMenu.d.ts +9 -0
  65. package/components/OptionsMenu/OptionsMenu.js +28 -0
  66. package/components/OptionsMenu/OptionsMenu.js.map +1 -0
  67. package/components/OptionsMenu/OptionsMenu.styles.d.ts +31 -0
  68. package/components/OptionsMenu/OptionsMenu.styles.js +14 -0
  69. package/components/OptionsMenu/OptionsMenu.styles.js.map +1 -0
  70. package/components/OptionsMenu/OptionsMenuItem.d.ts +10 -0
  71. package/components/OptionsMenu/OptionsMenuItem.js +22 -0
  72. package/components/OptionsMenu/OptionsMenuItem.js.map +1 -0
  73. package/components/OptionsMenu/index.d.ts +3 -0
  74. package/components/OptionsMenu/index.js +39 -0
  75. package/components/OptionsMenu/index.js.map +1 -0
  76. package/components/OptionsMenu/useOptionsMenuItem.d.ts +11 -0
  77. package/components/OptionsMenu/useOptionsMenuItem.js +27 -0
  78. package/components/OptionsMenu/useOptionsMenuItem.js.map +1 -0
  79. package/components/OverlayLayout/OverlayLayout.js.map +1 -1
  80. package/components/OverlayLayout/index.js.map +1 -1
  81. package/components/Permissions/CannotUseAaclAlert.d.ts +2 -0
  82. package/components/Permissions/CannotUseAaclAlert.js +20 -0
  83. package/components/Permissions/CannotUseAaclAlert.js.map +1 -0
  84. package/components/Permissions/Permissions.js.map +1 -1
  85. package/components/Permissions/StyledComponents.js.map +1 -1
  86. package/components/Permissions/index.d.ts +1 -0
  87. package/components/Permissions/index.js +10 -2
  88. package/components/Permissions/index.js.map +1 -1
  89. package/components/RichTextEditor/RichTextEditor.js.map +1 -1
  90. package/components/RichTextEditor/index.js.map +1 -1
  91. package/components/RichTextEditor/tools/header/index.js +0 -10
  92. package/components/RichTextEditor/tools/header/index.js.map +1 -1
  93. package/components/RichTextEditor/tools/image/index.js +0 -7
  94. package/components/RichTextEditor/tools/image/index.js.map +1 -1
  95. package/components/RichTextEditor/tools/image/svgs.js.map +1 -1
  96. package/components/RichTextEditor/tools/image/tunes.js +0 -5
  97. package/components/RichTextEditor/tools/image/tunes.js.map +1 -1
  98. package/components/RichTextEditor/tools/image/ui.js +0 -6
  99. package/components/RichTextEditor/tools/image/ui.js.map +1 -1
  100. package/components/RichTextEditor/tools/paragraph/index.js +10 -11
  101. package/components/RichTextEditor/tools/paragraph/index.js.map +1 -1
  102. package/components/RichTextEditor/tools/textColor/index.js +0 -10
  103. package/components/RichTextEditor/tools/textColor/index.js.map +1 -1
  104. package/components/RichTextEditor/tools/utils.js +4 -4
  105. package/components/RichTextEditor/tools/utils.js.map +1 -1
  106. package/components/Routes.js.map +1 -1
  107. package/components/SearchUI.js.map +1 -1
  108. package/components/SimpleForm/SimpleForm.js.map +1 -1
  109. package/components/SimpleForm/index.js.map +1 -1
  110. package/components/SimpleUI/InputField.js.map +1 -1
  111. package/components/SingleImageUpload.js.map +1 -1
  112. package/components/SplitView/SplitView.js +4 -4
  113. package/components/SplitView/SplitView.js.map +1 -1
  114. package/components/SplitView/index.js.map +1 -1
  115. package/components/index.js.map +1 -1
  116. package/hooks/useConfirmationDialog.d.ts +5 -3
  117. package/hooks/useConfirmationDialog.js +12 -6
  118. package/hooks/useConfirmationDialog.js.map +1 -1
  119. package/hooks/useDialog.js +2 -0
  120. package/hooks/useDialog.js.map +1 -1
  121. package/hooks/useSnackbar.js.map +1 -1
  122. package/index.d.ts +6 -0
  123. package/index.js +69 -2
  124. package/index.js.map +1 -1
  125. package/package.json +23 -22
  126. package/plugins/MenuPlugin.js +0 -2
  127. package/plugins/MenuPlugin.js.map +1 -1
  128. package/plugins/PermissionRendererPlugin.js +0 -2
  129. package/plugins/PermissionRendererPlugin.js.map +1 -1
  130. package/plugins/globalSearch/SearchBar.js +11 -8
  131. package/plugins/globalSearch/SearchBar.js.map +1 -1
  132. package/plugins/globalSearch/SearchBarDropdown.js.map +1 -1
  133. package/plugins/globalSearch/index.js.map +1 -1
  134. package/plugins/globalSearch/styled.js.map +1 -1
  135. package/plugins/uiLayoutRenderer/index.js.map +1 -1
  136. package/types.d.ts +10 -1
  137. package/types.js.map +1 -1
  138. package/ui/UIElement.js.map +1 -1
  139. package/ui/UILayout.js.map +1 -1
  140. package/ui/UIRenderer.js.map +1 -1
  141. package/ui/UIView.js.map +1 -1
  142. package/ui/elements/AccordionElement.js.map +1 -1
  143. package/ui/elements/ButtonElement.js +2 -2
  144. package/ui/elements/ButtonElement.js.map +1 -1
  145. package/ui/elements/ButtonGroupElement.js.map +1 -1
  146. package/ui/elements/GenericElement.js.map +1 -1
  147. package/ui/elements/LabelElement.js.map +1 -1
  148. package/ui/elements/NavigationMenuElement.js +4 -4
  149. package/ui/elements/NavigationMenuElement.js.map +1 -1
  150. package/ui/elements/PanelElement.js.map +1 -1
  151. package/ui/elements/PlaceholderElement.js.map +1 -1
  152. package/ui/elements/SmallButtonElement.js.map +1 -1
  153. package/ui/elements/TypographyElement.js.map +1 -1
  154. package/ui/elements/ViewElement.js.map +1 -1
  155. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js.map +1 -1
  156. package/ui/elements/form/DynamicFieldsetElement.js.map +1 -1
  157. package/ui/elements/form/FileManagerElement/EmptyStateElement.js.map +1 -1
  158. package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js.map +1 -1
  159. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js.map +1 -1
  160. package/ui/elements/form/FileManagerElement/styled.js +1 -1
  161. package/ui/elements/form/FileManagerElement/styled.js.map +1 -1
  162. package/ui/elements/form/FileManagerElement.js +0 -3
  163. package/ui/elements/form/FileManagerElement.js.map +1 -1
  164. package/ui/elements/form/FormElement.js.map +1 -1
  165. package/ui/elements/form/FormFieldElement.js.map +1 -1
  166. package/ui/elements/form/HiddenElement.js.map +1 -1
  167. package/ui/elements/form/InputElement.js.map +1 -1
  168. package/ui/elements/form/PasswordElement.js.map +1 -1
  169. package/ui/elements/form/SelectElement.js.map +1 -1
  170. package/ui/elements/form/TextareaElement.js.map +1 -1
  171. package/ui/views/AdminView/ContentElement.js.map +1 -1
  172. package/ui/views/AdminView/HeaderElement.js +3 -3
  173. package/ui/views/AdminView/HeaderElement.js.map +1 -1
  174. package/ui/views/AdminView/HeaderSectionCenterElement.js.map +1 -1
  175. package/ui/views/AdminView/HeaderSectionLeftElement.js.map +1 -1
  176. package/ui/views/AdminView/HeaderSectionRightElement.js.map +1 -1
  177. package/ui/views/AdminView/components/Dialog.js +9 -9
  178. package/ui/views/AdminView/components/Dialog.js.map +1 -1
  179. package/ui/views/AdminView/components/Hamburger.js.map +1 -1
  180. package/ui/views/AdminView/components/Snackbar.js +3 -3
  181. package/ui/views/AdminView/components/Snackbar.js.map +1 -1
  182. package/ui/views/FormView/FormContainerElement.js.map +1 -1
  183. package/ui/views/FormView/FormContentElement.js.map +1 -1
  184. package/ui/views/FormView/FormFooterElement.js.map +1 -1
  185. package/ui/views/FormView/FormHeaderElement.js.map +1 -1
  186. package/ui/views/FormView.js.map +1 -1
  187. package/ui/views/OverlayView/ContentElement.js.map +1 -1
  188. package/ui/views/OverlayView/HeaderElement.js +0 -1
  189. package/ui/views/OverlayView/HeaderElement.js.map +1 -1
  190. package/ui/views/OverlayView/HeaderTitleElement.js.map +1 -1
  191. package/ui/views/OverlayView/useOverlayView.js.map +1 -1
  192. package/ui/views/OverlayView.js +4 -6
  193. package/ui/views/OverlayView.js.map +1 -1
  194. package/ui/views/SplitView/SplitViewPanelElement.js.map +1 -1
  195. package/ui/views/SplitView.js +0 -2
  196. package/ui/views/SplitView.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["AdminLayout","title","children"],"sources":["AdminLayout.tsx"],"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"],"mappings":";;;;;;;AAAA;AACA;AAMO,IAAMA,WAAuC,GAAG,SAA1CA,WAAuC,OAA4B;EAAA,IAAtBC,KAAK,QAALA,KAAK;IAAEC,QAAQ,QAARA,QAAQ;EACrE,oBAAO,6BAAC,QAAM;IAAC,KAAK,EAAED;EAAM,GAAEC,QAAQ,CAAU;AACpD,CAAC;AAAC"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_","AdminLayout","_ref","title","children","default","createElement","Layout","exports"],"sources":["AdminLayout.tsx"],"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"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,CAAA,GAAAD,OAAA;AAMO,IAAME,WAAuC,GAAG,SAA1CA,WAAuCA,CAAAC,IAAA,EAA4B;EAAA,IAAtBC,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAEC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;EACrE,oBAAOP,MAAA,CAAAQ,OAAA,CAAAC,aAAA,CAACN,CAAA,CAAAO,MAAM;IAACJ,KAAK,EAAEA;EAAM,GAAEC,QAAiB,CAAC;AACpD,CAAC;AAACI,OAAA,CAAAP,WAAA,GAAAA,WAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["AppInstaller","children","tenantId","localStorage","get","lsKey","wbyVersion","appConfig","getKey","process","env","REACT_APP_WEBINY_VERSION","isRootTenant","isCypressTest","window","Cypress","markInstallerAsCompleted","set","isInstallerCompleted","useState","finished","setFinished","useSecurity","identity","useInstaller","isInstalled","loading","installers","installer","isFirstInstall","showNextInstaller","showLogin","onUser","useEffect","renderLayout","content","secure","installerSplitView","renderBody","length","render","onInstalled","opacity"],"sources":["AppInstaller.tsx"],"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 { Elevation } from \"@webiny/ui/Elevation\";\nimport { useInstaller } from \"./useInstaller\";\nimport Sidebar from \"./Sidebar\";\n\ndeclare global {\n interface Window {\n Cypress: any;\n }\n}\n\nimport { Wrapper, InnerContent, InstallContent, installerSplitView, SuccessDialog } 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 const lsKey = `webiny_installation_${tenantId}`;\n const wbyVersion = appConfig.getKey(\"WEBINY_VERSION\", process.env.REACT_APP_WEBINY_VERSION);\n const isRootTenant = tenantId === \"root\";\n /*\n * This flag allows us to avoid rendering the <iframe> when the app is tested with Cypress\n * (Cypress doesn't work with cross domains because of security-related implications).\n * @see https://docs.cypress.io/guides/guides/web-security#Insecure-Content\n */\n const isCypressTest = window && window.Cypress;\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 { loading, installers, installer, isFirstInstall, showNextInstaller, showLogin, onUser } =\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 return renderLayout(\n renderBody(\n <Elevation z={1}>\n <SuccessDialog>\n <p>You have successfully installed all new applications!</p>\n {!isCypressTest && isRootTenant && isFirstInstall ? (\n <iframe\n height=\"0\"\n width=\"0\"\n frameBorder=\"0\"\n style={{ opacity: \"0\" }}\n src=\"https://www.webiny.com/thank-you/new-install\"\n ></iframe>\n ) : null}\n <ButtonPrimary\n data-testid={\"open-webiny-cms-admin-button\"}\n onClick={() => {\n markInstallerAsCompleted();\n setFinished(true);\n }}\n >\n Finish install\n </ButtonPrimary>\n </SuccessDialog>\n </Elevation>\n ),\n true\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_store","_interopRequireDefault","_","_appSecurity","_Progress","_Button","_SplitView","_Elevation","_useInstaller2","_Sidebar","_styled","_config","AppInstaller","_ref","children","tenantId","localStorage","get","lsKey","concat","wbyVersion","appConfig","getKey","process","env","REACT_APP_WEBINY_VERSION","isRootTenant","isCypressTest","window","Cypress","markInstallerAsCompleted","set","isInstallerCompleted","_useState","useState","_useState2","_slicedToArray2","default","finished","setFinished","_useSecurity","useSecurity","identity","_useInstaller","useInstaller","isInstalled","loading","installers","installer","isFirstInstall","showNextInstaller","showLogin","onUser","useEffect","createElement","LoginScreen","renderLayout","content","secure","arguments","length","undefined","SplitView","className","installerSplitView","LeftPanel","span","allInstallers","RightPanel","renderBody","Wrapper","InstallContent","InnerContent","CircularProgress","label","render","onInstalled","Elevation","z","SuccessDialog","height","width","frameBorder","style","opacity","src","ButtonPrimary","onClick","exports"],"sources":["AppInstaller.tsx"],"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 { Elevation } from \"@webiny/ui/Elevation\";\nimport { useInstaller } from \"./useInstaller\";\nimport Sidebar from \"./Sidebar\";\n\ndeclare global {\n interface Window {\n Cypress: any;\n }\n}\n\nimport { Wrapper, InnerContent, InstallContent, installerSplitView, SuccessDialog } 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 const lsKey = `webiny_installation_${tenantId}`;\n const wbyVersion = appConfig.getKey(\"WEBINY_VERSION\", process.env.REACT_APP_WEBINY_VERSION);\n const isRootTenant = tenantId === \"root\";\n /*\n * This flag allows us to avoid rendering the <iframe> when the app is tested with Cypress\n * (Cypress doesn't work with cross domains because of security-related implications).\n * @see https://docs.cypress.io/guides/guides/web-security#Insecure-Content\n */\n const isCypressTest = window && window.Cypress;\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 { loading, installers, installer, isFirstInstall, showNextInstaller, showLogin, onUser } =\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 return renderLayout(\n renderBody(\n <Elevation z={1}>\n <SuccessDialog>\n <p>You have successfully installed all new applications!</p>\n {!isCypressTest && isRootTenant && isFirstInstall ? (\n <iframe\n height=\"0\"\n width=\"0\"\n frameBorder=\"0\"\n style={{ opacity: \"0\" }}\n src=\"https://www.webiny.com/thank-you/new-install\"\n ></iframe>\n ) : null}\n <ButtonPrimary\n data-testid={\"open-webiny-cms-admin-button\"}\n onClick={() => {\n markInstallerAsCompleted();\n setFinished(true);\n }}\n >\n Finish install\n </ButtonPrimary>\n </SuccessDialog>\n </Elevation>\n ),\n true\n );\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["Logo","styled","padding","borderBottom","List","li","display","alignItems","borderRadius","height","width","marginRight","textAlign","lineHeight","fontSize","paddingTop","color","img","backgroundColor","fontWeight","Note","Installations","props","title","allInstallers","installer","showLogin","renderList","loginItem","signInDivider","items","i","length","name","secure","installed","prev","push","active","classSet","pending","Sidebar","installations","filter","type","location"],"sources":["Sidebar.tsx"],"sourcesContent":["import React, { Fragment } from \"react\";\nimport classSet from \"classnames\";\nimport styled from \"@emotion/styled\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport signInDivider from \"./assets/sign-in-divider.svg\";\nimport { Installer } from \"./useInstaller\";\nimport { Brand } from \"~/base/ui/Brand\";\nimport { Tags } from \"~/base/ui/Tags\";\n\nconst Logo = styled(\"div\")({\n padding: 15,\n borderBottom: \"1px solid var(--mdc-theme-background)\"\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}\n\nconst Sidebar: React.FC<SidebarProps> = ({ allInstallers, installer, showLogin }) => {\n const installations = allInstallers.filter(installer => installer.type === \"install\");\n\n return (\n <Tags tags={{ location: \"installer\" }}>\n <Logo>\n <Brand />\n </Logo>\n {installations.length > 0 && (\n <Installations\n title={\"The following apps will be installed and configured:\"}\n allInstallers={installations}\n installer={installer}\n showLogin={showLogin}\n />\n )}\n </Tags>\n );\n};\nexport default Sidebar;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_styled","_Typography","_signInDivider","_Brand","_Tags","Logo","styled","target","label","padding","borderBottom","List","li","display","alignItems","borderRadius","height","width","marginRight","textAlign","lineHeight","fontSize","paddingTop","color","img","backgroundColor","fontWeight","Note","Installations","props","title","allInstallers","installer","showLogin","renderList","loginItem","default","createElement","key","className","src","signInDivider","alt","Typography","use","items","i","length","_allInstallers$i","name","secure","installed","prev","push","active","classSet","pending","Fragment","Sidebar","_ref","installations","filter","type","Tags","tags","location","Brand","_default","exports"],"sources":["Sidebar.tsx"],"sourcesContent":["import React, { Fragment } from \"react\";\nimport classSet from \"classnames\";\nimport styled from \"@emotion/styled\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport signInDivider from \"./assets/sign-in-divider.svg\";\nimport { Installer } from \"./useInstaller\";\nimport { Brand } from \"~/base/ui/Brand\";\nimport { Tags } from \"~/base/ui/Tags\";\n\nconst Logo = styled(\"div\")({\n padding: 15,\n borderBottom: \"1px solid var(--mdc-theme-background)\"\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}\n\nconst Sidebar: React.FC<SidebarProps> = ({ allInstallers, installer, showLogin }) => {\n const installations = allInstallers.filter(installer => installer.type === \"install\");\n\n return (\n <Tags tags={{ location: \"installer\" }}>\n <Logo>\n <Brand />\n </Logo>\n {installations.length > 0 && (\n <Installations\n title={\"The following apps will be installed and configured:\"}\n allInstallers={installations}\n installer={installer}\n showLogin={showLogin}\n />\n )}\n </Tags>\n );\n};\nexport default Sidebar;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["AppInstallerHOC","Component","AppInstallerProvider","children","AppInstaller"],"sources":["index.tsx"],"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"],"mappings":";;;;;;;AAAA;AACA;AAEA;AAEA,IAAMA,eAAe,GAAG,SAAlBA,eAAe,CAAIC,SAAiC,EAAe;EACrE,OAAO,SAASC,oBAAoB,OAAe;IAAA,IAAZC,QAAQ,QAARA,QAAQ;IAC3C,oBACI,6BAAC,0BAAS,qBACN,6BAAC,SAAS,QAAEA,QAAQ,CAAa,CACzB;EAEpB,CAAC;AACL,CAAC;AAEM,IAAMC,YAAY,GAAG,SAAfA,YAAY,GAAS;EAC9B,oBAAO,6BAAC,UAAQ;IAAC,GAAG,EAAEJ;EAAgB,EAAG;AAC7C,CAAC;AAAC"}
1
+ {"version":3,"names":["_","require","_react","_interopRequireDefault","_AppInstaller","AppInstallerHOC","Component","AppInstallerProvider","_ref","children","default","createElement","AppInstaller","Provider","hoc","exports"],"sources":["index.tsx"],"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"],"mappings":";;;;;;;AAAA,IAAAA,CAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,aAAA,GAAAH,OAAA;AAEA,IAAMI,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,SAAiC,EAAe;EACrE,OAAO,SAASC,oBAAoBA,CAAAC,IAAA,EAAe;IAAA,IAAZC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAC3C,oBACIP,MAAA,CAAAQ,OAAA,CAAAC,aAAA,CAACP,aAAA,CAAAQ,YAAS,qBACNV,MAAA,CAAAQ,OAAA,CAAAC,aAAA,CAACL,SAAS,QAAEG,QAAoB,CACzB,CAAC;EAEpB,CAAC;AACL,CAAC;AAEM,IAAMG,YAAY,GAAG,SAAfA,YAAYA,CAAA,EAAS;EAC9B,oBAAOV,MAAA,CAAAQ,OAAA,CAAAC,aAAA,CAACX,CAAA,CAAAa,QAAQ;IAACC,GAAG,EAAET;EAAgB,CAAE,CAAC;AAC7C,CAAC;AAACU,OAAA,CAAAH,YAAA,GAAAA,YAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["Wrapper","styled","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","css","height","SuccessDialog","padding","textAlign","p","paddingBottom","InnerContent","position","alertClass","borderLeft"],"sources":["styled.tsx"],"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 // height: \"100vh\",\n \".webiny-split-view__inner\": {\n height: \"100vh\"\n },\n \".webiny-split-view__right-panel-wrapper\": {\n height: \"100vh\"\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"],"mappings":";;;;;;;AAAA;AACA;AAEO,IAAMA,OAAO,oBAAGC,eAAM,EAAC,SAAS;EAAA;EAAA;AAAA,GAAE;EACrCC,OAAO,EAAE,MAAM;EACfC,aAAa,EAAE,QAAQ;EACvBC,cAAc,EAAE,QAAQ;EACxBC,SAAS,EAAE,OAAO;EAClBC,KAAK,EAAE,6BAA6B;EACpC,yBAAyB,EAAE;IACvBC,UAAU,EAAE;EAChB,CAAC;EACDC,EAAE,EAAE;IACAC,SAAS,EAAE,MAAM;IACjBC,WAAW,EAAE,6CAA6C;IAC1DC,EAAE,EAAE;MACAL,KAAK,EAAE,+EAA+E;MACtFM,mBAAmB,EAAE,WAAW;MAChCC,mBAAmB,EAAE,aAAa;MAClCC,QAAQ,EAAE,MAAM;MAChBC,UAAU,EAAE,QAAQ;MACpBC,UAAU,EAAE,GAAG;MACfC,aAAa,EAAE,WAAW;MAC1BC,cAAc,EAAE,SAAS;MACzBC,aAAa,EAAE,SAAS;MACxBC,SAAS,EAAE,MAAM;MACjBC,YAAY,EAAE;IAClB;EACJ;AACJ,CAAC,CAAC;AAAC;AAEI,IAAMC,cAAc,oBAAGrB,eAAM,EAAC,KAAK;EAAA;EAAA;AAAA,GAAE;EACxCsB,QAAQ,EAAE,GAAG;EACbC,MAAM,EAAE,kBAAkB;EAC1B,oBAAoB,EAAE;IAClBC,YAAY,EAAE,CAAC;IACfC,SAAS,EAAE;EACf;AACJ,CAAC,CAAC;AAAC;AAEI,IAAMC,kBAAkB,gBAAG,IAAAC,YAAG,EAAC;EAClC;EACA,2BAA2B,EAAE;IACzBC,MAAM,EAAE;EACZ,CAAC;EACD,yCAAyC,EAAE;IACvCA,MAAM,EAAE;EACZ;AACJ,CAAC,8BAAC;AAAC;AAEI,IAAMC,aAAa,oBAAG7B,eAAM,EAAC,KAAK;EAAA;EAAA;AAAA,GAAE;EACvC8B,OAAO,EAAE,EAAE;EACXC,SAAS,EAAE,QAAQ;EACnBC,CAAC,EAAE;IACCC,aAAa,EAAE;EACnB;AACJ,CAAC,CAAC;AAAC;AAEI,IAAMC,YAAY,oBAAGlC,eAAM,EAAC,KAAK;EAAA;EAAA;AAAA,GAAE;EACtC8B,OAAO,EAAE,EAAE;EACXK,QAAQ,EAAE;AACd,CAAC,CAAC;AAAC;AAEI,IAAMC,UAAU,gBAAG,IAAAT,YAAG,EAAC;EAC1BU,UAAU,EAAE,eAAe;EAC3Bd,MAAM,EAAE,cAAc;EACtBO,OAAO,EAAE;AACb,CAAC,sBAAC;AAAC"}
1
+ {"version":3,"names":["_styled","_interopRequireDefault","require","_emotion","Wrapper","styled","target","label","display","flexDirection","justifyContent","minHeight","color","whiteSpace","ul","listStyle","paddingLeft","li","MozOsxFontSmoothing","WebkitFontSmoothing","fontSize","lineHeight","fontWeight","letterSpacing","textDecoration","textTransform","marginTop","marginBottom","exports","InstallContent","maxWidth","margin","borderRadius","boxShadow","installerSplitView","css","height","SuccessDialog","padding","textAlign","p","paddingBottom","InnerContent","position","alertClass","borderLeft"],"sources":["styled.tsx"],"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 // height: \"100vh\",\n \".webiny-split-view__inner\": {\n height: \"100vh\"\n },\n \".webiny-split-view__right-panel-wrapper\": {\n height: \"100vh\"\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"],"mappings":";;;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAEO,IAAME,OAAO,oBAAGC,eAAM,EAAC,SAAS;EAAAC,MAAA;EAAAC,KAAA;AAAA,GAAE;EACrCC,OAAO,EAAE,MAAM;EACfC,aAAa,EAAE,QAAQ;EACvBC,cAAc,EAAE,QAAQ;EACxBC,SAAS,EAAE,OAAO;EAClBC,KAAK,EAAE,6BAA6B;EACpC,yBAAyB,EAAE;IACvBC,UAAU,EAAE;EAChB,CAAC;EACDC,EAAE,EAAE;IACAC,SAAS,EAAE,MAAM;IACjBC,WAAW,EAAE,6CAA6C;IAC1DC,EAAE,EAAE;MACAL,KAAK,EAAE,+EAA+E;MACtFM,mBAAmB,EAAE,WAAW;MAChCC,mBAAmB,EAAE,aAAa;MAClCC,QAAQ,EAAE,MAAM;MAChBC,UAAU,EAAE,QAAQ;MACpBC,UAAU,EAAE,GAAG;MACfC,aAAa,EAAE,WAAW;MAC1BC,cAAc,EAAE,SAAS;MACzBC,aAAa,EAAE,SAAS;MACxBC,SAAS,EAAE,MAAM;MACjBC,YAAY,EAAE;IAClB;EACJ;AACJ,CAAC,CAAC;AAACC,OAAA,CAAAxB,OAAA,GAAAA,OAAA;AAEI,IAAMyB,cAAc,oBAAGxB,eAAM,EAAC,KAAK;EAAAC,MAAA;EAAAC,KAAA;AAAA,GAAE;EACxCuB,QAAQ,EAAE,GAAG;EACbC,MAAM,EAAE,kBAAkB;EAC1B,oBAAoB,EAAE;IAClBC,YAAY,EAAE,CAAC;IACfC,SAAS,EAAE;EACf;AACJ,CAAC,CAAC;AAACL,OAAA,CAAAC,cAAA,GAAAA,cAAA;AAEI,IAAMK,kBAAkB,gBAAG,IAAAC,YAAG,EAAC;EAClC;EACA,2BAA2B,EAAE;IACzBC,MAAM,EAAE;EACZ,CAAC;EACD,yCAAyC,EAAE;IACvCA,MAAM,EAAE;EACZ;AACJ,CAAC,8BAAC;AAACR,OAAA,CAAAM,kBAAA,GAAAA,kBAAA;AAEI,IAAMG,aAAa,oBAAGhC,eAAM,EAAC,KAAK;EAAAC,MAAA;EAAAC,KAAA;AAAA,GAAE;EACvC+B,OAAO,EAAE,EAAE;EACXC,SAAS,EAAE,QAAQ;EACnBC,CAAC,EAAE;IACCC,aAAa,EAAE;EACnB;AACJ,CAAC,CAAC;AAACb,OAAA,CAAAS,aAAA,GAAAA,aAAA;AAEI,IAAMK,YAAY,oBAAGrC,eAAM,EAAC,KAAK;EAAAC,MAAA;EAAAC,KAAA;AAAA,GAAE;EACtC+B,OAAO,EAAE,EAAE;EACXK,QAAQ,EAAE;AACd,CAAC,CAAC;AAACf,OAAA,CAAAc,YAAA,GAAAA,YAAA;AAEI,IAAME,UAAU,gBAAG,IAAAT,YAAG,EAAC;EAC1BU,UAAU,EAAE,eAAe;EAC3Bd,MAAM,EAAE,cAAc;EACtBO,OAAO,EAAE;AACb,CAAC,sBAAC;AAACV,OAAA,CAAAgB,UAAA,GAAAA,UAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["useInstaller","params","isInstalled","useReducer","prev","next","loading","installers","installerIndex","showLogin","state","setState","client","useApolloClient","validateGraph","graph","isAcyclic","alg","cycles","findCycles","msg","forEach","cycle","index","fromAToB","join","fromBToA","reverse","padLength","length","push","padStart","Error","createGraph","Graph","plugin","setNode","name","pl","Array","isArray","dependencies","dep","setEdge","getInstallers","useCallback","toInstall","leaf","sinks","installer","find","inst","removeNode","installed","type","title","render","secure","sort","a","b","onUser","showNextInstaller","prevInstaller","appConfig","getKey","process","env","REACT_APP_WEBINY_VERSION","undefined","nextIndex","nextInstaller","prevSecure","nextSecure","useEffect","allInstallers","Promise","all","plugins","byType","map","getInstalledVersion","isFirstInstall","some"],"sources":["useInstaller.tsx"],"sourcesContent":["import { useCallback, useReducer, useEffect } from \"react\";\nimport { Graph, alg } from \"graphlib\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { plugins } from \"@webiny/plugins\";\nimport { AdminInstallationPlugin } from \"~/types\";\nimport { config as appConfig } from \"@webiny/app/config\";\n\ninterface GetInstallersResult {\n toInstall: Installer[];\n}\n\ninterface UseInstallerParams {\n isInstalled: boolean;\n}\n\ninterface BaseInstaller {\n installed: string | null;\n plugin: AdminInstallationPlugin;\n}\n\nexport interface Installer extends BaseInstaller {\n type: \"install\";\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}\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 });\n const { loading, installers, installerIndex, showLogin } = 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 ): 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 }\n\n return getInstallers(installers, graph, toInstall);\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 };\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 } = getInstallers(allInstallers, graph);\n const installers = [...toInstall];\n setState({\n installers,\n installerIndex: 0,\n loading: false,\n showLogin: toInstall.length > 0 && toInstall[0].secure\n });\n })();\n }, []);\n\n const isFirstInstall = installers.some(installer => installer.installed);\n\n return {\n loading,\n installers,\n isFirstInstall,\n installer: installers[installerIndex],\n showNextInstaller,\n showLogin,\n onUser\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","require","_graphlib","_reactHooks","_plugins","_config","useInstaller","params","isInstalled","_useReducer","useReducer","prev","next","_objectSpread2","default","loading","installers","installerIndex","showLogin","_useReducer2","_slicedToArray2","state","setState","client","useApolloClient","validateGraph","graph","isAcyclic","alg","cycles","findCycles","msg","forEach","cycle","index","fromAToB","join","concat","fromBToA","reverse","padLength","length","push","padStart","Error","createGraph","Graph","_ref","plugin","setNode","name","_ref2","pl","Array","isArray","dependencies","dep","setEdge","getInstallers","useCallback","toInstall","arguments","undefined","leaf","sinks","installer","find","inst","removeNode","installed","type","title","render","secure","sort","a","b","onUser","showNextInstaller","prevInstaller","appConfig","getKey","process","env","REACT_APP_WEBINY_VERSION","nextIndex","nextInstaller","prevSecure","nextSecure","useEffect","_asyncToGenerator2","_regeneratorRuntime2","mark","_callee2","allInstallers","_getInstallers","wrap","_callee2$","_context2","abrupt","Promise","all","plugins","byType","map","_ref4","_callee","_callee$","_context","getInstalledVersion","sent","stop","_x","apply","_toConsumableArray2","isFirstInstall","some","exports"],"sources":["useInstaller.tsx"],"sourcesContent":["import { useCallback, useReducer, useEffect } from \"react\";\nimport { Graph, alg } from \"graphlib\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { plugins } from \"@webiny/plugins\";\nimport { AdminInstallationPlugin } from \"~/types\";\nimport { config as appConfig } from \"@webiny/app/config\";\n\ninterface GetInstallersResult {\n toInstall: Installer[];\n}\n\ninterface UseInstallerParams {\n isInstalled: boolean;\n}\n\ninterface BaseInstaller {\n installed: string | null;\n plugin: AdminInstallationPlugin;\n}\n\nexport interface Installer extends BaseInstaller {\n type: \"install\";\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}\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 });\n const { loading, installers, installerIndex, showLogin } = 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 ): 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 }\n\n return getInstallers(installers, graph, toInstall);\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 };\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 } = getInstallers(allInstallers, graph);\n const installers = [...toInstall];\n setState({\n installers,\n installerIndex: 0,\n loading: false,\n showLogin: toInstall.length > 0 && toInstall[0].secure\n });\n })();\n }, []);\n\n const isFirstInstall = installers.some(installer => installer.installed);\n\n return {\n loading,\n installers,\n isFirstInstall,\n installer: installers[installerIndex],\n showNextInstaller,\n showLogin,\n onUser\n };\n};\n"],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import React from "react";
2
+ import { ButtonProps as BaseButtonProps, IconButtonProps as BaseIconButtonProps } from "@webiny/ui/Button";
3
+ interface ButtonProps extends Omit<BaseButtonProps, "onClick"> {
4
+ onAction: (ev?: any) => void;
5
+ }
6
+ interface IconButtonProps extends Omit<BaseIconButtonProps, "onClick"> {
7
+ onAction: (ev?: any) => void;
8
+ }
9
+ export interface ButtonsProps {
10
+ actions: {
11
+ name: string;
12
+ element: React.ReactElement;
13
+ }[];
14
+ }
15
+ export declare const Buttons: React.VFC<ButtonsProps>;
16
+ export declare const ButtonDefault: React.VFC<ButtonProps>;
17
+ export declare const ButtonPrimary: React.VFC<ButtonProps>;
18
+ export declare const ButtonSecondary: React.VFC<ButtonProps>;
19
+ export declare const IconButton: React.VFC<IconButtonProps>;
20
+ export {};
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.IconButton = exports.Buttons = exports.ButtonSecondary = exports.ButtonPrimary = exports.ButtonDefault = void 0;
8
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _Button = require("@webiny/ui/Button");
11
+ var _useButtons = require("./useButtons");
12
+ var _Buttons = require("./Buttons.styles");
13
+ var _excluded = ["onAction"],
14
+ _excluded2 = ["onAction"],
15
+ _excluded3 = ["onAction"],
16
+ _excluded4 = ["onAction"];
17
+ var Buttons = function Buttons(props) {
18
+ if (!props.actions.length) {
19
+ return null;
20
+ }
21
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, props.actions.map(function (action) {
22
+ return /*#__PURE__*/_react.default.createElement(_Buttons.ButtonContainer, {
23
+ key: action.name
24
+ }, /*#__PURE__*/_react.default.createElement(_useButtons.ButtonsProvider, null, action.element));
25
+ }));
26
+ };
27
+ exports.Buttons = Buttons;
28
+ var ButtonDefault = function ButtonDefault(_ref) {
29
+ var onAction = _ref.onAction,
30
+ other = (0, _objectWithoutProperties2.default)(_ref, _excluded);
31
+ return /*#__PURE__*/_react.default.createElement(_Button.ButtonDefault, Object.assign({}, other, {
32
+ onClick: onAction
33
+ }));
34
+ };
35
+ exports.ButtonDefault = ButtonDefault;
36
+ var ButtonPrimary = function ButtonPrimary(_ref2) {
37
+ var onAction = _ref2.onAction,
38
+ other = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
39
+ return /*#__PURE__*/_react.default.createElement(_Button.ButtonPrimary, Object.assign({}, other, {
40
+ onClick: onAction
41
+ }));
42
+ };
43
+ exports.ButtonPrimary = ButtonPrimary;
44
+ var ButtonSecondary = function ButtonSecondary(_ref3) {
45
+ var onAction = _ref3.onAction,
46
+ other = (0, _objectWithoutProperties2.default)(_ref3, _excluded3);
47
+ return /*#__PURE__*/_react.default.createElement(_Button.ButtonSecondary, Object.assign({}, other, {
48
+ onClick: onAction
49
+ }));
50
+ };
51
+ exports.ButtonSecondary = ButtonSecondary;
52
+ var IconButton = function IconButton(_ref4) {
53
+ var onAction = _ref4.onAction,
54
+ other = (0, _objectWithoutProperties2.default)(_ref4, _excluded4);
55
+ return /*#__PURE__*/_react.default.createElement(_Button.IconButton, Object.assign({}, other, {
56
+ onClick: onAction
57
+ }));
58
+ };
59
+ exports.IconButton = IconButton;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_Button","_useButtons","_Buttons","_excluded","_excluded2","_excluded3","_excluded4","Buttons","props","actions","length","default","createElement","Fragment","map","action","ButtonContainer","key","name","ButtonsProvider","element","exports","ButtonDefault","_ref","onAction","other","_objectWithoutProperties2","Object","assign","onClick","ButtonPrimary","_ref2","ButtonSecondary","_ref3","IconButton","_ref4"],"sources":["Buttons.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n ButtonDefault as BaseButtonDefault,\n ButtonPrimary as BaseButtonPrimary,\n ButtonSecondary as BaseButtonSecondary,\n IconButton as BaseIconButton,\n ButtonProps as BaseButtonProps,\n IconButtonProps as BaseIconButtonProps\n} from \"@webiny/ui/Button\";\n\nimport { ButtonsProvider } from \"./useButtons\";\nimport { ButtonContainer } from \"./Buttons.styles\";\n\ninterface ButtonProps extends Omit<BaseButtonProps, \"onClick\"> {\n onAction: (ev?: any) => void;\n}\n\ninterface IconButtonProps extends Omit<BaseIconButtonProps, \"onClick\"> {\n onAction: (ev?: any) => void;\n}\n\nexport interface ButtonsProps {\n actions: {\n name: string;\n element: React.ReactElement;\n }[];\n}\n\nexport const Buttons: React.VFC<ButtonsProps> = props => {\n if (!props.actions.length) {\n return null;\n }\n\n return (\n <>\n {props.actions.map(action => (\n <ButtonContainer key={action.name}>\n <ButtonsProvider>{action.element}</ButtonsProvider>\n </ButtonContainer>\n ))}\n </>\n );\n};\n\nexport const ButtonDefault: React.VFC<ButtonProps> = ({ onAction, ...other }) => {\n return <BaseButtonDefault {...other} onClick={onAction} />;\n};\n\nexport const ButtonPrimary: React.VFC<ButtonProps> = ({ onAction, ...other }) => {\n return <BaseButtonPrimary {...other} onClick={onAction} />;\n};\n\nexport const ButtonSecondary: React.VFC<ButtonProps> = ({ onAction, ...other }) => {\n return <BaseButtonSecondary {...other} onClick={onAction} />;\n};\n\nexport const IconButton: React.VFC<IconButtonProps> = ({ onAction, ...other }) => {\n return <BaseIconButton {...other} onClick={onAction} />;\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AASA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAAmD,IAAAI,SAAA;EAAAC,UAAA;EAAAC,UAAA;EAAAC,UAAA;AAiB5C,IAAMC,OAAgC,GAAG,SAAnCA,OAAgCA,CAAGC,KAAK,EAAI;EACrD,IAAI,CAACA,KAAK,CAACC,OAAO,CAACC,MAAM,EAAE;IACvB,OAAO,IAAI;EACf;EAEA,oBACIb,MAAA,CAAAc,OAAA,CAAAC,aAAA,CAAAf,MAAA,CAAAc,OAAA,CAAAE,QAAA,QACKL,KAAK,CAACC,OAAO,CAACK,GAAG,CAAC,UAAAC,MAAM;IAAA,oBACrBlB,MAAA,CAAAc,OAAA,CAAAC,aAAA,CAACV,QAAA,CAAAc,eAAe;MAACC,GAAG,EAAEF,MAAM,CAACG;IAAK,gBAC9BrB,MAAA,CAAAc,OAAA,CAAAC,aAAA,CAACX,WAAA,CAAAkB,eAAe,QAAEJ,MAAM,CAACK,OAAyB,CACrC,CAAC;EAAA,CACrB,CACH,CAAC;AAEX,CAAC;AAACC,OAAA,CAAAd,OAAA,GAAAA,OAAA;AAEK,IAAMe,aAAqC,GAAG,SAAxCA,aAAqCA,CAAAC,IAAA,EAA+B;EAAA,IAAzBC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAKC,KAAK,OAAAC,yBAAA,CAAAf,OAAA,EAAAY,IAAA,EAAApB,SAAA;EACtE,oBAAON,MAAA,CAAAc,OAAA,CAAAC,aAAA,CAACZ,OAAA,CAAAsB,aAAiB,EAAAK,MAAA,CAAAC,MAAA,KAAKH,KAAK;IAAEI,OAAO,EAAEL;EAAS,EAAE,CAAC;AAC9D,CAAC;AAACH,OAAA,CAAAC,aAAA,GAAAA,aAAA;AAEK,IAAMQ,aAAqC,GAAG,SAAxCA,aAAqCA,CAAAC,KAAA,EAA+B;EAAA,IAAzBP,QAAQ,GAAAO,KAAA,CAARP,QAAQ;IAAKC,KAAK,OAAAC,yBAAA,CAAAf,OAAA,EAAAoB,KAAA,EAAA3B,UAAA;EACtE,oBAAOP,MAAA,CAAAc,OAAA,CAAAC,aAAA,CAACZ,OAAA,CAAA8B,aAAiB,EAAAH,MAAA,CAAAC,MAAA,KAAKH,KAAK;IAAEI,OAAO,EAAEL;EAAS,EAAE,CAAC;AAC9D,CAAC;AAACH,OAAA,CAAAS,aAAA,GAAAA,aAAA;AAEK,IAAME,eAAuC,GAAG,SAA1CA,eAAuCA,CAAAC,KAAA,EAA+B;EAAA,IAAzBT,QAAQ,GAAAS,KAAA,CAART,QAAQ;IAAKC,KAAK,OAAAC,yBAAA,CAAAf,OAAA,EAAAsB,KAAA,EAAA5B,UAAA;EACxE,oBAAOR,MAAA,CAAAc,OAAA,CAAAC,aAAA,CAACZ,OAAA,CAAAgC,eAAmB,EAAAL,MAAA,CAAAC,MAAA,KAAKH,KAAK;IAAEI,OAAO,EAAEL;EAAS,EAAE,CAAC;AAChE,CAAC;AAACH,OAAA,CAAAW,eAAA,GAAAA,eAAA;AAEK,IAAME,UAAsC,GAAG,SAAzCA,UAAsCA,CAAAC,KAAA,EAA+B;EAAA,IAAzBX,QAAQ,GAAAW,KAAA,CAARX,QAAQ;IAAKC,KAAK,OAAAC,yBAAA,CAAAf,OAAA,EAAAwB,KAAA,EAAA7B,UAAA;EACvE,oBAAOT,MAAA,CAAAc,OAAA,CAAAC,aAAA,CAACZ,OAAA,CAAAkC,UAAc,EAAAP,MAAA,CAAAC,MAAA,KAAKH,KAAK;IAAEI,OAAO,EAAEL;EAAS,EAAE,CAAC;AAC3D,CAAC;AAACH,OAAA,CAAAa,UAAA,GAAAA,UAAA"}
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ /// <reference types="react" />
3
+ /// <reference types="web" />
4
+ export declare const ButtonContainer: import("@emotion/styled").StyledComponent<{
5
+ theme?: import("@emotion/react").Theme | undefined;
6
+ as?: import("react").ElementType<any> | undefined;
7
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ButtonContainer = void 0;
8
+ var _styled = _interopRequireDefault(require("@emotion/styled"));
9
+ var ButtonContainer = /*#__PURE__*/(0, _styled.default)("div", {
10
+ label: "ButtonContainer",
11
+ target: "e1ubuzv90"
12
+ })("margin-left:16px;");
13
+ exports.ButtonContainer = ButtonContainer;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_styled","_interopRequireDefault","require","ButtonContainer","styled","label","target","exports"],"sources":["Buttons.styles.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\n\nexport const ButtonContainer = styled(\"div\")`\n margin-left: 16px;\n`;\n"],"mappings":";;;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEO,IAAMC,eAAe,oBAAGC,eAAM,EAAC,KAAK;EAAAC,KAAA;EAAAC,MAAA;AAAA,uBAE1C;AAACC,OAAA,CAAAJ,eAAA,GAAAA,eAAA"}
@@ -0,0 +1,2 @@
1
+ export { Buttons } from "./Buttons";
2
+ export { useButtons } from "./useButtons";
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "Buttons", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _Buttons.Buttons;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "useButtons", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _useButtons.useButtons;
16
+ }
17
+ });
18
+ var _Buttons = require("./Buttons");
19
+ var _useButtons = require("./useButtons");
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_Buttons","require","_useButtons"],"sources":["index.ts"],"sourcesContent":["export { Buttons } from \"./Buttons\";\nexport { useButtons } from \"./useButtons\";\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA"}
@@ -0,0 +1,14 @@
1
+ import React from "react";
2
+ import { ButtonDefault, ButtonPrimary, ButtonSecondary, IconButton } from "./Buttons";
3
+ export interface ButtonsProviderContext {
4
+ ButtonDefault: typeof ButtonDefault;
5
+ ButtonPrimary: typeof ButtonPrimary;
6
+ ButtonSecondary: typeof ButtonSecondary;
7
+ IconButton: typeof IconButton;
8
+ }
9
+ interface ButtonsProviderProps {
10
+ children: React.ReactNode;
11
+ }
12
+ export declare const ButtonsProvider: ({ children }: ButtonsProviderProps) => JSX.Element;
13
+ export declare const useButtons: () => ButtonsProviderContext;
14
+ export {};
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useButtons = exports.ButtonsProvider = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _Buttons = require("./Buttons");
10
+ var ButtonsContext = /*#__PURE__*/_react.default.createContext(undefined);
11
+ var ButtonsProvider = function ButtonsProvider(_ref) {
12
+ var children = _ref.children;
13
+ return /*#__PURE__*/_react.default.createElement(ButtonsContext.Provider, {
14
+ value: {
15
+ ButtonDefault: _Buttons.ButtonDefault,
16
+ ButtonPrimary: _Buttons.ButtonPrimary,
17
+ ButtonSecondary: _Buttons.ButtonSecondary,
18
+ IconButton: _Buttons.IconButton
19
+ }
20
+ }, children);
21
+ };
22
+ exports.ButtonsProvider = ButtonsProvider;
23
+ var useButtons = function useButtons() {
24
+ var context = _react.default.useContext(ButtonsContext);
25
+ if (!context) {
26
+ throw new Error("useButtons must be used within a ButtonsContext");
27
+ }
28
+ return context;
29
+ };
30
+ exports.useButtons = useButtons;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_Buttons","ButtonsContext","React","createContext","undefined","ButtonsProvider","_ref","children","default","createElement","Provider","value","ButtonDefault","ButtonPrimary","ButtonSecondary","IconButton","exports","useButtons","context","useContext","Error"],"sources":["useButtons.tsx"],"sourcesContent":["import React from \"react\";\nimport { ButtonDefault, ButtonPrimary, ButtonSecondary, IconButton } from \"./Buttons\";\n\nexport interface ButtonsProviderContext {\n ButtonDefault: typeof ButtonDefault;\n ButtonPrimary: typeof ButtonPrimary;\n ButtonSecondary: typeof ButtonSecondary;\n IconButton: typeof IconButton;\n}\n\nconst ButtonsContext = React.createContext<ButtonsProviderContext | undefined>(undefined);\n\ninterface ButtonsProviderProps {\n children: React.ReactNode;\n}\n\nexport const ButtonsProvider = ({ children }: ButtonsProviderProps) => {\n return (\n <ButtonsContext.Provider\n value={{ ButtonDefault, ButtonPrimary, ButtonSecondary, IconButton }}\n >\n {children}\n </ButtonsContext.Provider>\n );\n};\n\nexport const useButtons = (): ButtonsProviderContext => {\n const context = React.useContext(ButtonsContext);\n\n if (!context) {\n throw new Error(\"useButtons must be used within a ButtonsContext\");\n }\n\n return context;\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AASA,IAAME,cAAc,gBAAGC,cAAK,CAACC,aAAa,CAAqCC,SAAS,CAAC;AAMlF,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAAC,IAAA,EAA2C;EAAA,IAArCC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;EACtC,oBACIV,MAAA,CAAAW,OAAA,CAAAC,aAAA,CAACR,cAAc,CAACS,QAAQ;IACpBC,KAAK,EAAE;MAAEC,aAAa,EAAbA,sBAAa;MAAEC,aAAa,EAAbA,sBAAa;MAAEC,eAAe,EAAfA,wBAAe;MAAEC,UAAU,EAAVA;IAAW;EAAE,GAEpER,QACoB,CAAC;AAElC,CAAC;AAACS,OAAA,CAAAX,eAAA,GAAAA,eAAA;AAEK,IAAMY,UAAU,GAAG,SAAbA,UAAUA,CAAA,EAAiC;EACpD,IAAMC,OAAO,GAAGhB,cAAK,CAACiB,UAAU,CAAClB,cAAc,CAAC;EAEhD,IAAI,CAACiB,OAAO,EAAE;IACV,MAAM,IAAIE,KAAK,CAAC,iDAAiD,CAAC;EACtE;EAEA,OAAOF,OAAO;AAClB,CAAC;AAACF,OAAA,CAAAC,UAAA,GAAAA,UAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["EmptyViewWrapper","styled","width","height","display","flexDirection","alignItems","justifyContent","fill","marginBottom","maxWidth","textAlign","color","padding","backgroundColor","EmptyView","icon","title","action"],"sources":["EmptyView.tsx"],"sourcesContent":["import React, { ReactElement } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { ReactComponent as TouchIcon } from \"@material-design-icons/svg/filled/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"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AAEA,IAAMA,gBAAgB,oBAAGC,eAAM,EAAC,KAAK;EAAA;EAAA;AAAA,GAAE;EACnCC,KAAK,EAAE,MAAM;EACbC,MAAM,EAAE,KAAK;EACbC,OAAO,EAAE,MAAM;EACfC,aAAa,EAAE,QAAQ;EACvBC,UAAU,EAAE,QAAQ;EACpBC,cAAc,EAAE,QAAQ;EAExB,UAAU,EAAE;IACR,OAAO,EAAE;MACLL,KAAK,EAAE,EAAE;MACTC,MAAM,EAAE,EAAE;MACVK,IAAI,EAAE;IACV,CAAC;IACDC,YAAY,EAAE;EAClB,CAAC;EACD,qBAAqB,EAAE;IACnBC,QAAQ,EAAE,GAAG;IACbC,SAAS,EAAE,QAAQ;IACnBF,YAAY,EAAE,EAAE;IAChB,UAAU,EAAE;MACRG,KAAK,EAAE;IACX;EACJ,CAAC;EACD,sBAAsB,EAAE;IACpB,eAAe,EAAE;MACbC,OAAO,EAAE,UAAU;MACnBC,eAAe,EAAE;IACrB;EACJ;AACJ,CAAC,CAAC;AAMF,IAAMC,SAAmC,GAAG,SAAtCA,SAAmC,OAAgD;EAAA,qBAA1CC,IAAI;IAAJA,IAAI,uCAAG,6BAAC,yBAAS,OAAG;IAAEC,KAAK,QAALA,KAAK;IAAEC,MAAM,QAANA,MAAM;EAC9E,oBACI,6BAAC,gBAAgB,qBACb;IAAK,SAAS,EAAE;EAAQ,GAAEF,IAAI,CAAO,eACrC;IAAK,SAAS,EAAC;EAAkB,gBAC7B,6BAAC,sBAAU;IAAC,GAAG,EAAE,WAAY;IAAC,SAAS,EAAE;EAAQ,GAC5CC,KAAK,CACG,CACX,eACN;IAAK,SAAS,EAAC;EAAmB,GAAEC,MAAM,CAAO,CAClC;AAE3B,CAAC;AAAC,eAEaH,SAAS;AAAA"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_styled","_Typography","_touch_app","EmptyViewWrapper","styled","target","label","width","height","display","flexDirection","alignItems","justifyContent","fill","marginBottom","maxWidth","textAlign","color","padding","backgroundColor","EmptyView","_ref","_ref$icon","icon","default","createElement","ReactComponent","title","action","className","Typography","use","_default","exports"],"sources":["EmptyView.tsx"],"sourcesContent":["import React, { ReactElement } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { ReactComponent as TouchIcon } from \"@material-design-icons/svg/filled/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"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AAEA,IAAMI,gBAAgB,oBAAGC,eAAM,EAAC,KAAK;EAAAC,MAAA;EAAAC,KAAA;AAAA,GAAE;EACnCC,KAAK,EAAE,MAAM;EACbC,MAAM,EAAE,KAAK;EACbC,OAAO,EAAE,MAAM;EACfC,aAAa,EAAE,QAAQ;EACvBC,UAAU,EAAE,QAAQ;EACpBC,cAAc,EAAE,QAAQ;EAExB,UAAU,EAAE;IACR,OAAO,EAAE;MACLL,KAAK,EAAE,EAAE;MACTC,MAAM,EAAE,EAAE;MACVK,IAAI,EAAE;IACV,CAAC;IACDC,YAAY,EAAE;EAClB,CAAC;EACD,qBAAqB,EAAE;IACnBC,QAAQ,EAAE,GAAG;IACbC,SAAS,EAAE,QAAQ;IACnBF,YAAY,EAAE,EAAE;IAChB,UAAU,EAAE;MACRG,KAAK,EAAE;IACX;EACJ,CAAC;EACD,sBAAsB,EAAE;IACpB,eAAe,EAAE;MACbC,OAAO,EAAE,UAAU;MACnBC,eAAe,EAAE;IACrB;EACJ;AACJ,CAAC,CAAC;AAMF,IAAMC,SAAmC,GAAG,SAAtCA,SAAmCA,CAAAC,IAAA,EAAgD;EAAA,IAAAC,SAAA,GAAAD,IAAA,CAA1CE,IAAI;IAAJA,IAAI,GAAAD,SAAA,2BAAGzB,MAAA,CAAA2B,OAAA,CAAAC,aAAA,CAACvB,UAAA,CAAAwB,cAAS,MAAE,CAAC,GAAAJ,SAAA;IAAEK,KAAK,GAAAN,IAAA,CAALM,KAAK;IAAEC,MAAM,GAAAP,IAAA,CAANO,MAAM;EAC9E,oBACI/B,MAAA,CAAA2B,OAAA,CAAAC,aAAA,CAACtB,gBAAgB,qBACbN,MAAA,CAAA2B,OAAA,CAAAC,aAAA;IAAKI,SAAS,EAAE;EAAQ,GAAEN,IAAU,CAAC,eACrC1B,MAAA,CAAA2B,OAAA,CAAAC,aAAA;IAAKI,SAAS,EAAC;EAAkB,gBAC7BhC,MAAA,CAAA2B,OAAA,CAAAC,aAAA,CAACxB,WAAA,CAAA6B,UAAU;IAACC,GAAG,EAAE,WAAY;IAACF,SAAS,EAAE;EAAQ,GAC5CF,KACO,CACX,CAAC,eACN9B,MAAA,CAAA2B,OAAA,CAAAC,aAAA;IAAKI,SAAS,EAAC;EAAmB,GAAED,MAAY,CAClC,CAAC;AAE3B,CAAC;AAAC,IAAAI,QAAA,GAEaZ,SAAS;AAAAa,OAAA,CAAAT,OAAA,GAAAQ,QAAA"}
@@ -0,0 +1,15 @@
1
+ import React from "react";
2
+ import { FormOnSubmit, FormProps, GenericFormData } from "@webiny/form";
3
+ declare type Filter = {
4
+ name: string;
5
+ element: React.ReactElement;
6
+ };
7
+ export declare type GenericFiltersData = GenericFormData;
8
+ export declare type FiltersOnSubmit<T extends GenericFiltersData = GenericFiltersData> = FormOnSubmit<T>;
9
+ export interface FiltersProps<T> extends Pick<FormProps<T>, "data" | "onChange"> {
10
+ filters: Filter[];
11
+ show: boolean;
12
+ ["data-testid"]?: string;
13
+ }
14
+ export declare const Filters: <T extends GenericFormData = GenericFormData>(props: FiltersProps<T>) => JSX.Element | null;
15
+ export {};
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.Filters = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _form = require("@webiny/form");
10
+ var _Filters = require("./Filters.styles");
11
+ var Filters = function Filters(props) {
12
+ if (!props.show || !props.filters.length) {
13
+ return null;
14
+ }
15
+ return /*#__PURE__*/_react.default.createElement(_Filters.FiltersContainer, {
16
+ "data-testid": props["data-testid"] || "filters-container"
17
+ }, /*#__PURE__*/_react.default.createElement(_form.Form, {
18
+ data: props.data,
19
+ onChange: props.onChange
20
+ }, function () {
21
+ return /*#__PURE__*/_react.default.createElement(_Filters.FormContainer, null, props.filters.map(function (filter) {
22
+ return /*#__PURE__*/_react.default.createElement(_Filters.FilterContainer, {
23
+ key: filter.name
24
+ }, filter.element);
25
+ }));
26
+ }));
27
+ };
28
+ exports.Filters = Filters;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_form","_Filters","Filters","props","show","filters","length","default","createElement","FiltersContainer","Form","data","onChange","FormContainer","map","filter","FilterContainer","key","name","element","exports"],"sources":["Filters.tsx"],"sourcesContent":["import React from \"react\";\nimport { Form, FormOnSubmit, FormProps, GenericFormData } from \"@webiny/form\";\n\nimport { FilterContainer, FiltersContainer, FormContainer } from \"./Filters.styles\";\n\ntype Filter = {\n name: string;\n element: React.ReactElement;\n};\n\nexport type GenericFiltersData = GenericFormData;\n\nexport type FiltersOnSubmit<T extends GenericFiltersData = GenericFiltersData> = FormOnSubmit<T>;\n\nexport interface FiltersProps<T> extends Pick<FormProps<T>, \"data\" | \"onChange\"> {\n filters: Filter[];\n show: boolean;\n [\"data-testid\"]?: string;\n}\n\nexport const Filters = <T extends GenericFiltersData = GenericFiltersData>(\n props: FiltersProps<T>\n) => {\n if (!props.show || !props.filters.length) {\n return null;\n }\n\n return (\n <FiltersContainer data-testid={props[\"data-testid\"] || \"filters-container\"}>\n <Form data={props.data} onChange={props.onChange}>\n {() => (\n <FormContainer>\n {props.filters.map(filter => (\n <FilterContainer key={filter.name}>{filter.element}</FilterContainer>\n ))}\n </FormContainer>\n )}\n </Form>\n </FiltersContainer>\n );\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAEA,IAAAE,QAAA,GAAAF,OAAA;AAiBO,IAAMG,OAAO,GAAG,SAAVA,OAAOA,CAChBC,KAAsB,EACrB;EACD,IAAI,CAACA,KAAK,CAACC,IAAI,IAAI,CAACD,KAAK,CAACE,OAAO,CAACC,MAAM,EAAE;IACtC,OAAO,IAAI;EACf;EAEA,oBACIT,MAAA,CAAAU,OAAA,CAAAC,aAAA,CAACP,QAAA,CAAAQ,gBAAgB;IAAC,eAAaN,KAAK,CAAC,aAAa,CAAC,IAAI;EAAoB,gBACvEN,MAAA,CAAAU,OAAA,CAAAC,aAAA,CAACR,KAAA,CAAAU,IAAI;IAACC,IAAI,EAAER,KAAK,CAACQ,IAAK;IAACC,QAAQ,EAAET,KAAK,CAACS;EAAS,GAC5C;IAAA,oBACGf,MAAA,CAAAU,OAAA,CAAAC,aAAA,CAACP,QAAA,CAAAY,aAAa,QACTV,KAAK,CAACE,OAAO,CAACS,GAAG,CAAC,UAAAC,MAAM;MAAA,oBACrBlB,MAAA,CAAAU,OAAA,CAAAC,aAAA,CAACP,QAAA,CAAAe,eAAe;QAACC,GAAG,EAAEF,MAAM,CAACG;MAAK,GAAEH,MAAM,CAACI,OAAyB,CAAC;IAAA,CACxE,CACU,CAAC;EAAA,CAElB,CACQ,CAAC;AAE3B,CAAC;AAACC,OAAA,CAAAlB,OAAA,GAAAA,OAAA"}
@@ -0,0 +1,15 @@
1
+ /// <reference types="react" />
2
+ /// <reference types="react" />
3
+ /// <reference types="web" />
4
+ export declare const FiltersContainer: import("@emotion/styled").StyledComponent<{
5
+ theme?: import("@emotion/react").Theme | undefined;
6
+ as?: import("react").ElementType<any> | undefined;
7
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
8
+ export declare const FormContainer: import("@emotion/styled").StyledComponent<{
9
+ theme?: import("@emotion/react").Theme | undefined;
10
+ as?: import("react").ElementType<any> | undefined;
11
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
12
+ export declare const FilterContainer: import("@emotion/styled").StyledComponent<{
13
+ theme?: import("@emotion/react").Theme | undefined;
14
+ as?: import("react").ElementType<any> | undefined;
15
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.FormContainer = exports.FiltersContainer = exports.FilterContainer = void 0;
8
+ var _styled = _interopRequireDefault(require("@emotion/styled"));
9
+ var FiltersContainer = /*#__PURE__*/(0, _styled.default)("div", {
10
+ label: "FiltersContainer",
11
+ target: "e5prjwn0"
12
+ })("width:100%;height:auto;background-color:var(--mdc-theme-surface);border-bottom:1px solid rgba(0,0,0,0.12);padding:8px;");
13
+ exports.FiltersContainer = FiltersContainer;
14
+ var FormContainer = /*#__PURE__*/(0, _styled.default)("div", {
15
+ label: "FormContainer",
16
+ target: "e5prjwn1"
17
+ })("display:flex;flex-wrap:wrap;width:100%;");
18
+ exports.FormContainer = FormContainer;
19
+ var FilterContainer = /*#__PURE__*/(0, _styled.default)("div", {
20
+ label: "FilterContainer",
21
+ target: "e5prjwn2"
22
+ })("padding:8px;align-items:center;display:flex;");
23
+ exports.FilterContainer = FilterContainer;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_styled","_interopRequireDefault","require","FiltersContainer","styled","label","target","exports","FormContainer","FilterContainer"],"sources":["Filters.styles.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\n\nexport const FiltersContainer = styled.div`\n width: 100%;\n height: auto;\n background-color: var(--mdc-theme-surface);\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n padding: 8px;\n`;\n\nexport const FormContainer = styled.div`\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n`;\n\nexport const FilterContainer = styled.div`\n padding: 8px;\n align-items: center;\n display: flex;\n`;\n"],"mappings":";;;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEO,IAAMC,gBAAgB,oBAAGC,eAAM;EAAAC,KAAA;EAAAC,MAAA;AAAA,4HAMrC;AAACC,OAAA,CAAAJ,gBAAA,GAAAA,gBAAA;AAEK,IAAMK,aAAa,oBAAGJ,eAAM;EAAAC,KAAA;EAAAC,MAAA;AAAA,6CAIlC;AAACC,OAAA,CAAAC,aAAA,GAAAA,aAAA;AAEK,IAAMC,eAAe,oBAAGL,eAAM;EAAAC,KAAA;EAAAC,MAAA;AAAA,kDAIpC;AAACC,OAAA,CAAAE,eAAA,GAAAA,eAAA"}
@@ -0,0 +1 @@
1
+ export * from "./Filters";
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _Filters = require("./Filters");
7
+ Object.keys(_Filters).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _Filters[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function get() {
13
+ return _Filters[key];
14
+ }
15
+ });
16
+ });
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_Filters","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["index.ts"],"sourcesContent":["export * from \"./Filters\";\n"],"mappings":";;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,QAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,QAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAT,QAAA,CAAAK,GAAA;IAAA;EAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["FloatingActionButton","props","position","bottom","right"],"sources":["FloatingActionButton.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { ButtonFloating } from \"@webiny/ui/Button\";\nimport { ReactComponent as AddIcon } from \"@material-design-icons/svg/outlined/add.svg\";\n\n// Set \"styles\" inline, since no customizations are possible / needed here.\nconst FloatingActionButton: React.FC = props => {\n return (\n <div\n style={{\n position: \"absolute\",\n bottom: 20,\n right: 20\n }}\n >\n <ButtonFloating {...props} icon={<AddIcon />} />\n </div>\n );\n};\n\nexport { FloatingActionButton };\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AAEA;AACA,IAAMA,oBAA8B,GAAG,SAAjCA,oBAA8B,CAAGC,KAAK,EAAI;EAC5C,oBACI;IACI,KAAK,EAAE;MACHC,QAAQ,EAAE,UAAU;MACpBC,MAAM,EAAE,EAAE;MACVC,KAAK,EAAE;IACX;EAAE,gBAEF,oBAAC,sBAAc,oBAAKH,KAAK;IAAE,IAAI,eAAE,oBAAC,mBAAO;EAAI,GAAG,CAC9C;AAEd,CAAC;AAAC"}
1
+ {"version":3,"names":["React","_interopRequireWildcard","require","_Button","_add","FloatingActionButton","props","createElement","style","position","bottom","right","ButtonFloating","Object","assign","icon","ReactComponent","exports"],"sources":["FloatingActionButton.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { ButtonFloating } from \"@webiny/ui/Button\";\nimport { ReactComponent as AddIcon } from \"@material-design-icons/svg/outlined/add.svg\";\n\n// Set \"styles\" inline, since no customizations are possible / needed here.\nconst FloatingActionButton: React.FC = props => {\n return (\n <div\n style={{\n position: \"absolute\",\n bottom: 20,\n right: 20\n }}\n >\n <ButtonFloating {...props} icon={<AddIcon />} />\n </div>\n );\n};\n\nexport { FloatingActionButton };\n"],"mappings":";;;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,IAAA,GAAAF,OAAA;AAEA;AACA,IAAMG,oBAA8B,GAAG,SAAjCA,oBAA8BA,CAAGC,KAAK,EAAI;EAC5C,oBACIN,KAAA,CAAAO,aAAA;IACIC,KAAK,EAAE;MACHC,QAAQ,EAAE,UAAU;MACpBC,MAAM,EAAE,EAAE;MACVC,KAAK,EAAE;IACX;EAAE,gBAEFX,KAAA,CAAAO,aAAA,CAACJ,OAAA,CAAAS,cAAc,EAAAC,MAAA,CAAAC,MAAA,KAAKR,KAAK;IAAES,IAAI,eAAEf,KAAA,CAAAO,aAAA,CAACH,IAAA,CAAAY,cAAO,MAAE;EAAE,EAAE,CAC9C,CAAC;AAEd,CAAC;AAACC,OAAA,CAAAZ,oBAAA,GAAAA,oBAAA"}