@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.
- package/base/Admin.js +3 -2
- package/base/Admin.js.map +1 -1
- package/base/Base.js +9 -6
- package/base/Base.js.map +1 -1
- package/base/plugins/AddGraphQLQuerySelection.js.map +1 -1
- package/base/providers/ApolloProvider.js.map +1 -1
- package/base/providers/TelemetryProvider.js +1 -3
- package/base/providers/TelemetryProvider.js.map +1 -1
- package/base/providers/UiStateProvider.js.map +1 -1
- package/base/providers/ViewCompositionProvider.js.map +1 -1
- package/base/ui/Brand.js.map +1 -1
- package/base/ui/CenteredView.js.map +1 -1
- package/base/ui/Dashboard.js.map +1 -1
- package/base/ui/FileManager.d.ts +1 -0
- package/base/ui/FileManager.js +10 -1
- package/base/ui/FileManager.js.map +1 -1
- package/base/ui/Layout.js.map +1 -1
- package/base/ui/LocaleSelector.js.map +1 -1
- package/base/ui/LoginScreen.js.map +1 -1
- package/base/ui/Logo.js.map +1 -1
- package/base/ui/Menu.js.map +1 -1
- package/base/ui/Navigation.js.map +1 -1
- package/base/ui/NotFound.js.map +1 -1
- package/base/ui/Search.js.map +1 -1
- package/base/ui/Tags.js.map +1 -1
- package/base/ui/UserMenu.js.map +1 -1
- package/components/AdminLayout.js.map +1 -1
- package/components/AppInstaller/AppInstaller.js.map +1 -1
- package/components/AppInstaller/Sidebar.js.map +1 -1
- package/components/AppInstaller/index.js.map +1 -1
- package/components/AppInstaller/styled.js.map +1 -1
- package/components/AppInstaller/useInstaller.js.map +1 -1
- package/components/Buttons/Buttons.d.ts +20 -0
- package/components/Buttons/Buttons.js +59 -0
- package/components/Buttons/Buttons.js.map +1 -0
- package/components/Buttons/Buttons.styles.d.ts +7 -0
- package/components/Buttons/Buttons.styles.js +13 -0
- package/components/Buttons/Buttons.styles.js.map +1 -0
- package/components/Buttons/index.d.ts +2 -0
- package/components/Buttons/index.js +19 -0
- package/components/Buttons/index.js.map +1 -0
- package/components/Buttons/useButtons.d.ts +14 -0
- package/components/Buttons/useButtons.js +30 -0
- package/components/Buttons/useButtons.js.map +1 -0
- package/components/EmptyView.js.map +1 -1
- package/components/Filters/Filters.d.ts +15 -0
- package/components/Filters/Filters.js +28 -0
- package/components/Filters/Filters.js.map +1 -0
- package/components/Filters/Filters.styles.d.ts +15 -0
- package/components/Filters/Filters.styles.js +23 -0
- package/components/Filters/Filters.styles.js.map +1 -0
- package/components/Filters/index.d.ts +1 -0
- package/components/Filters/index.js +16 -0
- package/components/Filters/index.js.map +1 -0
- package/components/FloatingActionButton.js.map +1 -1
- package/components/LexicalEditor/LexicalEditor.d.ts +8 -0
- package/components/LexicalEditor/LexicalEditor.js +28 -0
- package/components/LexicalEditor/LexicalEditor.js.map +1 -0
- package/components/LexicalEditor/index.d.ts +1 -0
- package/components/LexicalEditor/index.js +12 -0
- package/components/LexicalEditor/index.js.map +1 -0
- package/components/MultiImageUpload.js +4 -0
- package/components/MultiImageUpload.js.map +1 -1
- package/components/OptionsMenu/OptionsMenu.d.ts +9 -0
- package/components/OptionsMenu/OptionsMenu.js +28 -0
- package/components/OptionsMenu/OptionsMenu.js.map +1 -0
- package/components/OptionsMenu/OptionsMenu.styles.d.ts +31 -0
- package/components/OptionsMenu/OptionsMenu.styles.js +14 -0
- package/components/OptionsMenu/OptionsMenu.styles.js.map +1 -0
- package/components/OptionsMenu/OptionsMenuItem.d.ts +10 -0
- package/components/OptionsMenu/OptionsMenuItem.js +22 -0
- package/components/OptionsMenu/OptionsMenuItem.js.map +1 -0
- package/components/OptionsMenu/index.d.ts +3 -0
- package/components/OptionsMenu/index.js +39 -0
- package/components/OptionsMenu/index.js.map +1 -0
- package/components/OptionsMenu/useOptionsMenuItem.d.ts +11 -0
- package/components/OptionsMenu/useOptionsMenuItem.js +27 -0
- package/components/OptionsMenu/useOptionsMenuItem.js.map +1 -0
- package/components/OverlayLayout/OverlayLayout.js.map +1 -1
- package/components/OverlayLayout/index.js.map +1 -1
- package/components/Permissions/CannotUseAaclAlert.d.ts +2 -0
- package/components/Permissions/CannotUseAaclAlert.js +20 -0
- package/components/Permissions/CannotUseAaclAlert.js.map +1 -0
- package/components/Permissions/Permissions.js.map +1 -1
- package/components/Permissions/StyledComponents.js.map +1 -1
- package/components/Permissions/index.d.ts +1 -0
- package/components/Permissions/index.js +10 -2
- package/components/Permissions/index.js.map +1 -1
- package/components/RichTextEditor/RichTextEditor.js.map +1 -1
- package/components/RichTextEditor/index.js.map +1 -1
- package/components/RichTextEditor/tools/header/index.js +0 -10
- package/components/RichTextEditor/tools/header/index.js.map +1 -1
- package/components/RichTextEditor/tools/image/index.js +0 -7
- package/components/RichTextEditor/tools/image/index.js.map +1 -1
- package/components/RichTextEditor/tools/image/svgs.js.map +1 -1
- package/components/RichTextEditor/tools/image/tunes.js +0 -5
- package/components/RichTextEditor/tools/image/tunes.js.map +1 -1
- package/components/RichTextEditor/tools/image/ui.js +0 -6
- package/components/RichTextEditor/tools/image/ui.js.map +1 -1
- package/components/RichTextEditor/tools/paragraph/index.js +10 -11
- package/components/RichTextEditor/tools/paragraph/index.js.map +1 -1
- package/components/RichTextEditor/tools/textColor/index.js +0 -10
- package/components/RichTextEditor/tools/textColor/index.js.map +1 -1
- package/components/RichTextEditor/tools/utils.js +4 -4
- package/components/RichTextEditor/tools/utils.js.map +1 -1
- package/components/Routes.js.map +1 -1
- package/components/SearchUI.js.map +1 -1
- package/components/SimpleForm/SimpleForm.js.map +1 -1
- package/components/SimpleForm/index.js.map +1 -1
- package/components/SimpleUI/InputField.js.map +1 -1
- package/components/SingleImageUpload.js.map +1 -1
- package/components/SplitView/SplitView.js +4 -4
- package/components/SplitView/SplitView.js.map +1 -1
- package/components/SplitView/index.js.map +1 -1
- package/components/index.js.map +1 -1
- package/hooks/useConfirmationDialog.d.ts +5 -3
- package/hooks/useConfirmationDialog.js +12 -6
- package/hooks/useConfirmationDialog.js.map +1 -1
- package/hooks/useDialog.js +2 -0
- package/hooks/useDialog.js.map +1 -1
- package/hooks/useSnackbar.js.map +1 -1
- package/index.d.ts +6 -0
- package/index.js +69 -2
- package/index.js.map +1 -1
- package/package.json +23 -22
- package/plugins/MenuPlugin.js +0 -2
- package/plugins/MenuPlugin.js.map +1 -1
- package/plugins/PermissionRendererPlugin.js +0 -2
- package/plugins/PermissionRendererPlugin.js.map +1 -1
- package/plugins/globalSearch/SearchBar.js +11 -8
- package/plugins/globalSearch/SearchBar.js.map +1 -1
- package/plugins/globalSearch/SearchBarDropdown.js.map +1 -1
- package/plugins/globalSearch/index.js.map +1 -1
- package/plugins/globalSearch/styled.js.map +1 -1
- package/plugins/uiLayoutRenderer/index.js.map +1 -1
- package/types.d.ts +10 -1
- package/types.js.map +1 -1
- package/ui/UIElement.js.map +1 -1
- package/ui/UILayout.js.map +1 -1
- package/ui/UIRenderer.js.map +1 -1
- package/ui/UIView.js.map +1 -1
- package/ui/elements/AccordionElement.js.map +1 -1
- package/ui/elements/ButtonElement.js +2 -2
- package/ui/elements/ButtonElement.js.map +1 -1
- package/ui/elements/ButtonGroupElement.js.map +1 -1
- package/ui/elements/GenericElement.js.map +1 -1
- package/ui/elements/LabelElement.js.map +1 -1
- package/ui/elements/NavigationMenuElement.js +4 -4
- package/ui/elements/NavigationMenuElement.js.map +1 -1
- package/ui/elements/PanelElement.js.map +1 -1
- package/ui/elements/PlaceholderElement.js.map +1 -1
- package/ui/elements/SmallButtonElement.js.map +1 -1
- package/ui/elements/TypographyElement.js.map +1 -1
- package/ui/elements/ViewElement.js.map +1 -1
- package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js.map +1 -1
- package/ui/elements/form/DynamicFieldsetElement.js.map +1 -1
- package/ui/elements/form/FileManagerElement/EmptyStateElement.js.map +1 -1
- package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js.map +1 -1
- package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js.map +1 -1
- package/ui/elements/form/FileManagerElement/styled.js +1 -1
- package/ui/elements/form/FileManagerElement/styled.js.map +1 -1
- package/ui/elements/form/FileManagerElement.js +0 -3
- package/ui/elements/form/FileManagerElement.js.map +1 -1
- package/ui/elements/form/FormElement.js.map +1 -1
- package/ui/elements/form/FormFieldElement.js.map +1 -1
- package/ui/elements/form/HiddenElement.js.map +1 -1
- package/ui/elements/form/InputElement.js.map +1 -1
- package/ui/elements/form/PasswordElement.js.map +1 -1
- package/ui/elements/form/SelectElement.js.map +1 -1
- package/ui/elements/form/TextareaElement.js.map +1 -1
- package/ui/views/AdminView/ContentElement.js.map +1 -1
- package/ui/views/AdminView/HeaderElement.js +3 -3
- package/ui/views/AdminView/HeaderElement.js.map +1 -1
- package/ui/views/AdminView/HeaderSectionCenterElement.js.map +1 -1
- package/ui/views/AdminView/HeaderSectionLeftElement.js.map +1 -1
- package/ui/views/AdminView/HeaderSectionRightElement.js.map +1 -1
- package/ui/views/AdminView/components/Dialog.js +9 -9
- package/ui/views/AdminView/components/Dialog.js.map +1 -1
- package/ui/views/AdminView/components/Hamburger.js.map +1 -1
- package/ui/views/AdminView/components/Snackbar.js +3 -3
- package/ui/views/AdminView/components/Snackbar.js.map +1 -1
- package/ui/views/FormView/FormContainerElement.js.map +1 -1
- package/ui/views/FormView/FormContentElement.js.map +1 -1
- package/ui/views/FormView/FormFooterElement.js.map +1 -1
- package/ui/views/FormView/FormHeaderElement.js.map +1 -1
- package/ui/views/FormView.js.map +1 -1
- package/ui/views/OverlayView/ContentElement.js.map +1 -1
- package/ui/views/OverlayView/HeaderElement.js +0 -1
- package/ui/views/OverlayView/HeaderElement.js.map +1 -1
- package/ui/views/OverlayView/HeaderTitleElement.js.map +1 -1
- package/ui/views/OverlayView/useOverlayView.js.map +1 -1
- package/ui/views/OverlayView.js +4 -6
- package/ui/views/OverlayView.js.map +1 -1
- package/ui/views/SplitView/SplitViewPanelElement.js.map +1 -1
- package/ui/views/SplitView.js +0 -2
- 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,
|
|
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","
|
|
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":";;;;;;;;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA,
|
|
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,
|
|
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,
|
|
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,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,
|
|
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,
|
|
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"}
|