@backstage/plugin-home 0.4.20-next.0 → 0.4.20-next.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/CHANGELOG.md +12 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.esm.js.map +1 -1
- package/package.json +7 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @backstage/plugin-home
|
|
2
2
|
|
|
3
|
+
## 0.4.20-next.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- ac323de4ad: - Adds new `HomePageStackOverflowQuestions` component which renders a list of stack overflow questions on your homepage.
|
|
8
|
+
|
|
9
|
+
- Exports `ComponentRenderer` type.
|
|
10
|
+
|
|
11
|
+
- Updated dependencies
|
|
12
|
+
- @backstage/plugin-catalog-react@1.0.1-next.1
|
|
13
|
+
- @backstage/plugin-stack-overflow@0.1.0-next.0
|
|
14
|
+
|
|
3
15
|
## 0.4.20-next.0
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,9 @@ import * as _backstage_core_plugin_api from '@backstage/core-plugin-api';
|
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import React__default from 'react';
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
6
9
|
declare type ComponentRenderer = {
|
|
7
10
|
Renderer?: (props: RendererProps) => JSX.Element;
|
|
8
11
|
};
|
|
@@ -123,4 +126,4 @@ declare const HeaderWorldClock: ({ clockConfigs, }: {
|
|
|
123
126
|
clockConfigs: ClockConfig[];
|
|
124
127
|
}) => JSX.Element | null;
|
|
125
128
|
|
|
126
|
-
export { ClockConfig, ComponentAccordion, ComponentTab, ComponentTabs, HeaderWorldClock, HomePageCompanyLogo, HomePageRandomJoke, HomePageStarredEntities, HomePageToolkit, HomepageCompositionRoot, SettingsModal, WelcomeTitle, createCardExtension, homePlugin };
|
|
129
|
+
export { ClockConfig, ComponentAccordion, ComponentRenderer, ComponentTab, ComponentTabs, HeaderWorldClock, HomePageCompanyLogo, HomePageRandomJoke, HomePageStarredEntities, HomePageToolkit, HomepageCompositionRoot, SettingsModal, WelcomeTitle, createCardExtension, homePlugin };
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../src/components/SettingsModal.tsx","../src/components/HeaderWorldClock/HeaderWorldClock.tsx","../src/extensions.tsx","../src/routes.ts","../src/plugin.ts"],"sourcesContent":["/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from 'react';\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n} from '@material-ui/core';\n\nexport const SettingsModal = ({\n open,\n close,\n componentName,\n children,\n}: {\n open: boolean;\n close: Function;\n componentName: string;\n children: JSX.Element;\n}) => {\n return (\n <Dialog open={open} onClose={() => close()}>\n <DialogTitle>Settings - {componentName}</DialogTitle>\n <DialogContent>{children}</DialogContent>\n <DialogActions>\n <Button onClick={() => close()} color=\"primary\" variant=\"contained\">\n Close\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n","/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from 'react';\nimport { HeaderLabel } from '@backstage/core-components';\n\nconst timeFormat: Intl.DateTimeFormatOptions = {\n hour: '2-digit',\n minute: '2-digit',\n};\n\ntype TimeObj = {\n time: string;\n label: string;\n};\n\nexport type ClockConfig = {\n label: string;\n timeZone: string;\n};\n\nfunction getTimes(clockConfigs: ClockConfig[]) {\n const d = new Date();\n const lang = window.navigator.language;\n\n const clocks: TimeObj[] = [];\n\n if (!clockConfigs) {\n return clocks;\n }\n\n for (const clockConfig of clockConfigs) {\n let label = clockConfig.label;\n\n const options: Intl.DateTimeFormatOptions = {\n timeZone: clockConfig.timeZone,\n ...timeFormat,\n };\n\n try {\n new Date().toLocaleString(lang, options);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.warn(\n `The timezone ${options.timeZone} is invalid. Defaulting to GMT`,\n );\n options.timeZone = 'GMT';\n label = 'GMT';\n }\n\n const time = d.toLocaleTimeString(lang, options);\n clocks.push({ time, label });\n }\n\n return clocks;\n}\n\nexport const HeaderWorldClock = ({\n clockConfigs,\n}: {\n clockConfigs: ClockConfig[];\n}) => {\n const defaultTimes: TimeObj[] = [];\n const [clocks, setTimes] = React.useState(defaultTimes);\n\n React.useEffect(() => {\n setTimes(getTimes(clockConfigs));\n\n const intervalId = setInterval(() => {\n setTimes(getTimes(clockConfigs));\n }, 1000);\n\n return () => {\n clearInterval(intervalId);\n };\n }, [clockConfigs]);\n\n if (clocks.length !== 0) {\n return (\n <>\n {clocks.map(clock => (\n <HeaderLabel\n label={clock.label}\n value={clock.time}\n key={clock.label}\n />\n ))}\n </>\n );\n }\n return null;\n};\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { Suspense } from 'react';\nimport { IconButton } from '@material-ui/core';\nimport SettingsIcon from '@material-ui/icons/Settings';\nimport { InfoCard } from '@backstage/core-components';\nimport { SettingsModal } from './components';\nimport { createReactExtension, useApp } from '@backstage/core-plugin-api';\n\nexport type ComponentRenderer = {\n Renderer?: (props: RendererProps) => JSX.Element;\n};\n\ntype ComponentParts = {\n Content: (props?: any) => JSX.Element;\n Actions?: () => JSX.Element;\n Settings?: () => JSX.Element;\n ContextProvider?: (props: any) => JSX.Element;\n};\n\ntype RendererProps = { title: string } & ComponentParts;\n\ntype CardExtensionProps<T> = ComponentRenderer & { title?: string } & T;\n\n/**\n * An extension creator to create card based components for the homepage\n *\n * @public\n */\nexport function createCardExtension<T>({\n title,\n components,\n name,\n}: {\n title: string;\n components: () => Promise<ComponentParts>;\n name?: string;\n}) {\n return createReactExtension({\n name,\n component: {\n lazy: () =>\n components().then(({ Content, Actions, Settings, ContextProvider }) => {\n const CardExtension = (props: CardExtensionProps<T>) => {\n const { Renderer, title: overrideTitle, ...childProps } = props;\n const app = useApp();\n const { Progress } = app.getComponents();\n const [settingsOpen, setSettingsOpen] = React.useState(false);\n\n if (Renderer) {\n return (\n <Suspense fallback={<Progress />}>\n <Renderer\n title={overrideTitle || title}\n {...{\n Content,\n ...(Actions ? { Actions } : {}),\n ...(Settings ? { Settings } : {}),\n ...(ContextProvider ? { ContextProvider } : {}),\n ...childProps,\n }}\n />\n </Suspense>\n );\n }\n\n const cardProps = {\n title: overrideTitle ?? title,\n ...(Settings\n ? {\n action: (\n <IconButton onClick={() => setSettingsOpen(true)}>\n <SettingsIcon>Settings</SettingsIcon>\n </IconButton>\n ),\n }\n : {}),\n ...(Actions\n ? {\n actions: <Actions />,\n }\n : {}),\n };\n\n const innerContent = (\n <InfoCard {...cardProps}>\n {Settings && (\n <SettingsModal\n open={settingsOpen}\n componentName={title}\n close={() => setSettingsOpen(false)}\n >\n <Settings />\n </SettingsModal>\n )}\n <Content {...childProps} />\n </InfoCard>\n );\n\n return (\n <Suspense fallback={<Progress />}>\n {ContextProvider ? (\n <ContextProvider {...childProps}>\n {innerContent}\n </ContextProvider>\n ) : (\n innerContent\n )}\n </Suspense>\n );\n };\n return CardExtension;\n }),\n },\n });\n}\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { createRouteRef } from '@backstage/core-plugin-api';\n\nexport const rootRouteRef = createRouteRef({\n id: 'home',\n});\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n createComponentExtension,\n createPlugin,\n createRoutableExtension,\n} from '@backstage/core-plugin-api';\nimport { createCardExtension } from './extensions';\nimport { ToolkitContentProps } from './homePageComponents';\n\nimport { rootRouteRef } from './routes';\n\nexport const homePlugin = createPlugin({\n id: 'home',\n routes: {\n root: rootRouteRef,\n },\n});\n\nexport const HomepageCompositionRoot = homePlugin.provide(\n createRoutableExtension({\n name: 'HomepageCompositionRoot',\n component: () =>\n import('./components').then(m => m.HomepageCompositionRoot),\n mountPoint: rootRouteRef,\n }),\n);\n\nexport const ComponentAccordion = homePlugin.provide(\n createComponentExtension({\n name: 'ComponentAccordion',\n component: {\n lazy: () =>\n import('./componentRenderers').then(m => m.ComponentAccordion),\n },\n }),\n);\nexport const ComponentTabs = homePlugin.provide(\n createComponentExtension({\n name: 'ComponentTabs',\n component: {\n lazy: () => import('./componentRenderers').then(m => m.ComponentTabs),\n },\n }),\n);\nexport const ComponentTab = homePlugin.provide(\n createComponentExtension({\n name: 'ComponentTab',\n component: {\n lazy: () => import('./componentRenderers').then(m => m.ComponentTab),\n },\n }),\n);\n\n/**\n * A component to display a playful greeting for the user.\n *\n * @public\n */\nexport const WelcomeTitle = homePlugin.provide(\n createComponentExtension({\n name: 'WelcomeTitle',\n component: {\n lazy: () =>\n import('./homePageComponents/WelcomeTitle').then(m => m.WelcomeTitle),\n },\n }),\n);\n\n/**\n * A component to display a company logo for the user.\n *\n * @public\n */\nexport const HomePageCompanyLogo = homePlugin.provide(\n createComponentExtension({\n name: 'CompanyLogo',\n component: {\n lazy: () =>\n import('./homePageComponents/CompanyLogo').then(m => m.CompanyLogo),\n },\n }),\n);\n\nexport const HomePageRandomJoke = homePlugin.provide(\n createCardExtension<{ defaultCategory?: 'any' | 'programming' }>({\n name: 'HomePageRandomJoke',\n title: 'Random Joke',\n components: () => import('./homePageComponents/RandomJoke'),\n }),\n);\n\n/**\n * A component to display a list of tools for the user.\n *\n * @public\n */\nexport const HomePageToolkit = homePlugin.provide(\n createCardExtension<ToolkitContentProps>({\n name: 'HomePageToolkit',\n title: 'Toolkit',\n components: () => import('./homePageComponents/Toolkit'),\n }),\n);\n\n/**\n * A component to display a list of starred entities for the user.\n *\n * @public\n */\nexport const HomePageStarredEntities = homePlugin.provide(\n createCardExtension({\n name: 'HomePageStarredEntities',\n title: 'Your Starred Entities',\n components: () => import('./homePageComponents/StarredEntities'),\n }),\n);\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/components/SettingsModal.tsx","../src/components/HeaderWorldClock/HeaderWorldClock.tsx","../src/extensions.tsx","../src/routes.ts","../src/plugin.ts"],"sourcesContent":["/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from 'react';\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n} from '@material-ui/core';\n\nexport const SettingsModal = ({\n open,\n close,\n componentName,\n children,\n}: {\n open: boolean;\n close: Function;\n componentName: string;\n children: JSX.Element;\n}) => {\n return (\n <Dialog open={open} onClose={() => close()}>\n <DialogTitle>Settings - {componentName}</DialogTitle>\n <DialogContent>{children}</DialogContent>\n <DialogActions>\n <Button onClick={() => close()} color=\"primary\" variant=\"contained\">\n Close\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n","/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from 'react';\nimport { HeaderLabel } from '@backstage/core-components';\n\nconst timeFormat: Intl.DateTimeFormatOptions = {\n hour: '2-digit',\n minute: '2-digit',\n};\n\ntype TimeObj = {\n time: string;\n label: string;\n};\n\nexport type ClockConfig = {\n label: string;\n timeZone: string;\n};\n\nfunction getTimes(clockConfigs: ClockConfig[]) {\n const d = new Date();\n const lang = window.navigator.language;\n\n const clocks: TimeObj[] = [];\n\n if (!clockConfigs) {\n return clocks;\n }\n\n for (const clockConfig of clockConfigs) {\n let label = clockConfig.label;\n\n const options: Intl.DateTimeFormatOptions = {\n timeZone: clockConfig.timeZone,\n ...timeFormat,\n };\n\n try {\n new Date().toLocaleString(lang, options);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.warn(\n `The timezone ${options.timeZone} is invalid. Defaulting to GMT`,\n );\n options.timeZone = 'GMT';\n label = 'GMT';\n }\n\n const time = d.toLocaleTimeString(lang, options);\n clocks.push({ time, label });\n }\n\n return clocks;\n}\n\nexport const HeaderWorldClock = ({\n clockConfigs,\n}: {\n clockConfigs: ClockConfig[];\n}) => {\n const defaultTimes: TimeObj[] = [];\n const [clocks, setTimes] = React.useState(defaultTimes);\n\n React.useEffect(() => {\n setTimes(getTimes(clockConfigs));\n\n const intervalId = setInterval(() => {\n setTimes(getTimes(clockConfigs));\n }, 1000);\n\n return () => {\n clearInterval(intervalId);\n };\n }, [clockConfigs]);\n\n if (clocks.length !== 0) {\n return (\n <>\n {clocks.map(clock => (\n <HeaderLabel\n label={clock.label}\n value={clock.time}\n key={clock.label}\n />\n ))}\n </>\n );\n }\n return null;\n};\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { Suspense } from 'react';\nimport { IconButton } from '@material-ui/core';\nimport SettingsIcon from '@material-ui/icons/Settings';\nimport { InfoCard } from '@backstage/core-components';\nimport { SettingsModal } from './components';\nimport { createReactExtension, useApp } from '@backstage/core-plugin-api';\n\n/**\n * @public\n */\nexport type ComponentRenderer = {\n Renderer?: (props: RendererProps) => JSX.Element;\n};\n\ntype ComponentParts = {\n Content: (props?: any) => JSX.Element;\n Actions?: () => JSX.Element;\n Settings?: () => JSX.Element;\n ContextProvider?: (props: any) => JSX.Element;\n};\n\ntype RendererProps = { title: string } & ComponentParts;\n\ntype CardExtensionProps<T> = ComponentRenderer & { title?: string } & T;\n\n/**\n * An extension creator to create card based components for the homepage\n *\n * @public\n */\nexport function createCardExtension<T>({\n title,\n components,\n name,\n}: {\n title: string;\n components: () => Promise<ComponentParts>;\n name?: string;\n}) {\n return createReactExtension({\n name,\n component: {\n lazy: () =>\n components().then(({ Content, Actions, Settings, ContextProvider }) => {\n const CardExtension = (props: CardExtensionProps<T>) => {\n const { Renderer, title: overrideTitle, ...childProps } = props;\n const app = useApp();\n const { Progress } = app.getComponents();\n const [settingsOpen, setSettingsOpen] = React.useState(false);\n\n if (Renderer) {\n return (\n <Suspense fallback={<Progress />}>\n <Renderer\n title={overrideTitle || title}\n {...{\n Content,\n ...(Actions ? { Actions } : {}),\n ...(Settings ? { Settings } : {}),\n ...(ContextProvider ? { ContextProvider } : {}),\n ...childProps,\n }}\n />\n </Suspense>\n );\n }\n\n const cardProps = {\n title: overrideTitle ?? title,\n ...(Settings\n ? {\n action: (\n <IconButton onClick={() => setSettingsOpen(true)}>\n <SettingsIcon>Settings</SettingsIcon>\n </IconButton>\n ),\n }\n : {}),\n ...(Actions\n ? {\n actions: <Actions />,\n }\n : {}),\n };\n\n const innerContent = (\n <InfoCard {...cardProps}>\n {Settings && (\n <SettingsModal\n open={settingsOpen}\n componentName={title}\n close={() => setSettingsOpen(false)}\n >\n <Settings />\n </SettingsModal>\n )}\n <Content {...childProps} />\n </InfoCard>\n );\n\n return (\n <Suspense fallback={<Progress />}>\n {ContextProvider ? (\n <ContextProvider {...childProps}>\n {innerContent}\n </ContextProvider>\n ) : (\n innerContent\n )}\n </Suspense>\n );\n };\n return CardExtension;\n }),\n },\n });\n}\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { createRouteRef } from '@backstage/core-plugin-api';\n\nexport const rootRouteRef = createRouteRef({\n id: 'home',\n});\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n createComponentExtension,\n createPlugin,\n createRoutableExtension,\n} from '@backstage/core-plugin-api';\nimport { createCardExtension } from './extensions';\nimport { ToolkitContentProps } from './homePageComponents';\n\nimport { rootRouteRef } from './routes';\n\nexport const homePlugin = createPlugin({\n id: 'home',\n routes: {\n root: rootRouteRef,\n },\n});\n\nexport const HomepageCompositionRoot = homePlugin.provide(\n createRoutableExtension({\n name: 'HomepageCompositionRoot',\n component: () =>\n import('./components').then(m => m.HomepageCompositionRoot),\n mountPoint: rootRouteRef,\n }),\n);\n\nexport const ComponentAccordion = homePlugin.provide(\n createComponentExtension({\n name: 'ComponentAccordion',\n component: {\n lazy: () =>\n import('./componentRenderers').then(m => m.ComponentAccordion),\n },\n }),\n);\nexport const ComponentTabs = homePlugin.provide(\n createComponentExtension({\n name: 'ComponentTabs',\n component: {\n lazy: () => import('./componentRenderers').then(m => m.ComponentTabs),\n },\n }),\n);\nexport const ComponentTab = homePlugin.provide(\n createComponentExtension({\n name: 'ComponentTab',\n component: {\n lazy: () => import('./componentRenderers').then(m => m.ComponentTab),\n },\n }),\n);\n\n/**\n * A component to display a playful greeting for the user.\n *\n * @public\n */\nexport const WelcomeTitle = homePlugin.provide(\n createComponentExtension({\n name: 'WelcomeTitle',\n component: {\n lazy: () =>\n import('./homePageComponents/WelcomeTitle').then(m => m.WelcomeTitle),\n },\n }),\n);\n\n/**\n * A component to display a company logo for the user.\n *\n * @public\n */\nexport const HomePageCompanyLogo = homePlugin.provide(\n createComponentExtension({\n name: 'CompanyLogo',\n component: {\n lazy: () =>\n import('./homePageComponents/CompanyLogo').then(m => m.CompanyLogo),\n },\n }),\n);\n\nexport const HomePageRandomJoke = homePlugin.provide(\n createCardExtension<{ defaultCategory?: 'any' | 'programming' }>({\n name: 'HomePageRandomJoke',\n title: 'Random Joke',\n components: () => import('./homePageComponents/RandomJoke'),\n }),\n);\n\n/**\n * A component to display a list of tools for the user.\n *\n * @public\n */\nexport const HomePageToolkit = homePlugin.provide(\n createCardExtension<ToolkitContentProps>({\n name: 'HomePageToolkit',\n title: 'Toolkit',\n components: () => import('./homePageComponents/Toolkit'),\n }),\n);\n\n/**\n * A component to display a list of starred entities for the user.\n *\n * @public\n */\nexport const HomePageStarredEntities = homePlugin.provide(\n createCardExtension({\n name: 'HomePageStarredEntities',\n title: 'Your Starred Entities',\n components: () => import('./homePageComponents/StarredEntities'),\n }),\n);\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@backstage/plugin-home",
|
|
3
3
|
"description": "A Backstage plugin that helps you build a home page",
|
|
4
|
-
"version": "0.4.20-next.
|
|
4
|
+
"version": "0.4.20-next.1",
|
|
5
5
|
"main": "dist/index.esm.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"license": "Apache-2.0",
|
|
@@ -35,10 +35,12 @@
|
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"@backstage/catalog-model": "^1.0.1-next.0",
|
|
38
|
+
"@backstage/config": "^0.1.15",
|
|
38
39
|
"@backstage/core-components": "^0.9.3-next.0",
|
|
39
40
|
"@backstage/core-plugin-api": "^1.0.0",
|
|
40
|
-
"@backstage/plugin-catalog-react": "^1.0.1-next.
|
|
41
|
+
"@backstage/plugin-catalog-react": "^1.0.1-next.1",
|
|
41
42
|
"@backstage/plugin-search": "^0.7.5-next.0",
|
|
43
|
+
"@backstage/plugin-stack-overflow": "^0.1.0-next.0",
|
|
42
44
|
"@backstage/theme": "^0.2.15",
|
|
43
45
|
"@material-ui/core": "^4.12.2",
|
|
44
46
|
"@material-ui/icons": "^4.9.1",
|
|
@@ -52,10 +54,10 @@
|
|
|
52
54
|
"react": "^16.13.1 || ^17.0.0"
|
|
53
55
|
},
|
|
54
56
|
"devDependencies": {
|
|
55
|
-
"@backstage/cli": "^0.
|
|
57
|
+
"@backstage/cli": "^0.17.0-next.1",
|
|
56
58
|
"@backstage/core-app-api": "^1.0.1-next.0",
|
|
57
59
|
"@backstage/dev-utils": "^1.0.1-next.0",
|
|
58
|
-
"@backstage/test-utils": "^1.0.1-next.
|
|
60
|
+
"@backstage/test-utils": "^1.0.1-next.1",
|
|
59
61
|
"@testing-library/jest-dom": "^5.10.1",
|
|
60
62
|
"@testing-library/react": "^12.1.3",
|
|
61
63
|
"@testing-library/user-event": "^13.1.8",
|
|
@@ -67,5 +69,5 @@
|
|
|
67
69
|
"files": [
|
|
68
70
|
"dist"
|
|
69
71
|
],
|
|
70
|
-
"gitHead": "
|
|
72
|
+
"gitHead": "57d12dcc35aeb6c33b09e51d1efc3408c574f109"
|
|
71
73
|
}
|