@backstage/plugin-home 0.6.3-next.1 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +47 -0
- package/alpha/package.json +1 -1
- package/dist/alpha.esm.js +1 -1
- package/dist/esm/{Content-cd749ae7.esm.js → Content-f3dcf261.esm.js} +23 -22
- package/dist/esm/Content-f3dcf261.esm.js.map +1 -0
- package/dist/esm/{RecentlyVisited-c0ca7307.esm.js → RecentlyVisited-399210d7.esm.js} +15 -7
- package/dist/esm/{RecentlyVisited-c0ca7307.esm.js.map → RecentlyVisited-399210d7.esm.js.map} +1 -1
- package/dist/esm/{TopVisited-d22fb15d.esm.js → TopVisited-93920c20.esm.js} +15 -7
- package/dist/esm/{TopVisited-d22fb15d.esm.js.map → TopVisited-93920c20.esm.js.map} +1 -1
- package/dist/esm/{VisitListener-7a513ef0.esm.js → VisitListener-601cb70c.esm.js} +8 -2
- package/dist/esm/VisitListener-601cb70c.esm.js.map +1 -0
- package/dist/esm/{index-c91caa6e.esm.js → index-3ec8912b.esm.js} +3 -2
- package/dist/esm/{index-c91caa6e.esm.js.map → index-3ec8912b.esm.js.map} +1 -1
- package/dist/esm/{index-abfba912.esm.js → index-5967d606.esm.js} +9 -3
- package/dist/esm/{index-abfba912.esm.js.map → index-5967d606.esm.js.map} +1 -1
- package/dist/esm/{index-21ffb782.esm.js → index-60f5dc58.esm.js} +3 -2
- package/dist/esm/index-60f5dc58.esm.js.map +1 -0
- package/dist/esm/{index-3155d776.esm.js → index-6c4cdf60.esm.js} +8 -2
- package/dist/esm/index-6c4cdf60.esm.js.map +1 -0
- package/dist/esm/{index-476343c1.esm.js → index-81188117.esm.js} +2 -2
- package/dist/esm/index-81188117.esm.js.map +1 -0
- package/dist/esm/{index-6d94aeff.esm.js → index-978cfdc4.esm.js} +10 -2
- package/dist/esm/index-978cfdc4.esm.js.map +1 -0
- package/dist/esm/{index-4517c5bc.esm.js → index-a6e42355.esm.js} +7 -2
- package/dist/esm/index-a6e42355.esm.js.map +1 -0
- package/dist/esm/{index-40d9ffac.esm.js → index-f4fbaf5f.esm.js} +5 -2
- package/dist/esm/index-f4fbaf5f.esm.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.esm.js +23 -15
- package/dist/index.esm.js.map +1 -1
- package/package.json +15 -15
- package/dist/esm/Content-cd749ae7.esm.js.map +0 -1
- package/dist/esm/VisitListener-7a513ef0.esm.js.map +0 -1
- package/dist/esm/index-21ffb782.esm.js.map +0 -1
- package/dist/esm/index-3155d776.esm.js.map +0 -1
- package/dist/esm/index-40d9ffac.esm.js.map +0 -1
- package/dist/esm/index-4517c5bc.esm.js.map +0 -1
- package/dist/esm/index-476343c1.esm.js.map +0 -1
- package/dist/esm/index-6d94aeff.esm.js.map +0 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { useApi, identityApiRef, alertApiRef } from '@backstage/core-plugin-api';
|
|
2
|
-
import
|
|
2
|
+
import Tooltip from '@material-ui/core/Tooltip';
|
|
3
|
+
import Typography from '@material-ui/core/Typography';
|
|
3
4
|
import React, { useMemo, useEffect } from 'react';
|
|
4
5
|
import useAsync from 'react-use/lib/useAsync';
|
|
5
6
|
|
|
@@ -634,4 +635,4 @@ const WelcomeTitle = ({ language }) => {
|
|
|
634
635
|
};
|
|
635
636
|
|
|
636
637
|
export { WelcomeTitle };
|
|
637
|
-
//# sourceMappingURL=index-
|
|
638
|
+
//# sourceMappingURL=index-3ec8912b.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-3ec8912b.esm.js","sources":["../../src/homePageComponents/WelcomeTitle/timeUtil.ts","../../src/homePageComponents/WelcomeTitle/WelcomeTitle.tsx"],"sourcesContent":["/*\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 goodMorning from './locales/goodMorning.locales.json';\nimport goodAfternoon from './locales/goodAfternoon.locales.json';\nimport goodEvening from './locales/goodEvening.locales.json';\n\n// Select a large random integer at startup, to prevent the greetings to change\n// every time the user navigates.\nconst greetingRandomSeed = Math.floor(Math.random() * 1000000);\n\nexport function getTimeBasedGreeting(language?: string[]): {\n language: string;\n greeting: string;\n} {\n const random = (array: string[]) => array[greetingRandomSeed % array.length];\n\n const currentHour = new Date(Date.now()).getHours();\n if (currentHour >= 23) {\n return {\n language: 'Seriously',\n greeting: 'Get some rest',\n };\n }\n\n const timeOfDay = (hour: number): { [language: string]: string } => {\n if (hour < 12) return goodMorning;\n if (hour < 17) return goodAfternoon;\n return goodEvening;\n };\n\n const greetings = timeOfDay(currentHour);\n\n if (Array.isArray(language) && language.length > 0) {\n const validLanguages = language.filter(lang => lang && greetings[lang]);\n if (validLanguages.length > 0) {\n const greetingsKey = random(validLanguages);\n return {\n language: greetingsKey,\n greeting: greetings[greetingsKey],\n };\n }\n }\n\n const greetingsKey = random(Object.keys(greetings));\n return {\n language: greetingsKey,\n greeting: greetings[greetingsKey],\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 {\n alertApiRef,\n identityApiRef,\n useApi,\n} from '@backstage/core-plugin-api';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport Typography from '@material-ui/core/Typography';\nimport React, { useEffect, useMemo } from 'react';\nimport useAsync from 'react-use/lib/useAsync';\nimport { getTimeBasedGreeting } from './timeUtil';\n\n/** @public */\nexport type WelcomeTitleLanguageProps = {\n language?: string[];\n};\n\nexport const WelcomeTitle = ({ language }: WelcomeTitleLanguageProps) => {\n const identityApi = useApi(identityApiRef);\n const alertApi = useApi(alertApiRef);\n const greeting = useMemo(() => getTimeBasedGreeting(language), [language]);\n\n const { value: profile, error } = useAsync(() =>\n identityApi.getProfileInfo(),\n );\n\n useEffect(() => {\n if (error) {\n alertApi.post({\n message: `Failed to load user identity: ${error}`,\n severity: 'error',\n });\n }\n }, [error, alertApi]);\n\n return (\n <Tooltip title={greeting.language}>\n <Typography component=\"span\" variant=\"inherit\">{`${greeting.greeting}${\n profile?.displayName ? `, ${profile?.displayName}` : ''\n }!`}</Typography>\n </Tooltip>\n );\n};\n"],"names":["greetingsKey"],"mappings":"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"}
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { useOutlet } from 'react-router-dom';
|
|
3
|
-
export { C as CustomHomepageGrid, V as VisitListener } from './VisitListener-
|
|
3
|
+
export { C as CustomHomepageGrid, V as VisitListener } from './VisitListener-601cb70c.esm.js';
|
|
4
4
|
import 'react-grid-layout';
|
|
5
5
|
import '@backstage/core-plugin-api';
|
|
6
6
|
import 'react-grid-layout/css/styles.css';
|
|
7
7
|
import 'react-resizable/css/styles.css';
|
|
8
|
-
import '@material-ui/core';
|
|
8
|
+
import '@material-ui/core/Dialog';
|
|
9
|
+
import '@material-ui/core/styles';
|
|
9
10
|
import 'lodash';
|
|
10
11
|
import 'react-use/lib/useObservable';
|
|
11
12
|
import '@backstage/core-components';
|
|
12
13
|
import '@material-ui/core/Typography';
|
|
14
|
+
import '@material-ui/core/DialogContent';
|
|
15
|
+
import '@material-ui/core/Grid';
|
|
16
|
+
import '@material-ui/core/Tooltip';
|
|
13
17
|
import '@material-ui/core/IconButton';
|
|
14
18
|
import '@material-ui/icons/Settings';
|
|
15
19
|
import '@material-ui/icons/Delete';
|
|
@@ -18,6 +22,8 @@ import '@rjsf/material-ui';
|
|
|
18
22
|
import '@rjsf/validator-ajv8';
|
|
19
23
|
import '@material-ui/core/List';
|
|
20
24
|
import '@material-ui/core/ListItem';
|
|
25
|
+
import '@material-ui/core/DialogTitle';
|
|
26
|
+
import '@material-ui/core/ListItemAvatar';
|
|
21
27
|
import '@material-ui/icons/Add';
|
|
22
28
|
import '@material-ui/core/ListItemText';
|
|
23
29
|
import '@material-ui/core/Button';
|
|
@@ -36,4 +42,4 @@ const HomepageCompositionRoot = (props) => {
|
|
|
36
42
|
};
|
|
37
43
|
|
|
38
44
|
export { HomepageCompositionRoot };
|
|
39
|
-
//# sourceMappingURL=index-
|
|
45
|
+
//# sourceMappingURL=index-5967d606.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-5967d606.esm.js","sources":["../../src/components/HomepageCompositionRoot.tsx"],"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, { ReactNode } from 'react';\nimport { useOutlet } from 'react-router-dom';\n\nexport const HomepageCompositionRoot = (props: {\n title?: string;\n children?: ReactNode;\n}) => {\n const outlet = useOutlet();\n const children = props.children ?? outlet;\n return <>{children}</>;\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBa,MAAA,uBAAA,GAA0B,CAAC,KAGlC,KAAA;AAtBN,EAAA,IAAA,EAAA,CAAA;AAuBE,EAAA,MAAM,SAAS,SAAU,EAAA,CAAA;AACzB,EAAM,MAAA,QAAA,GAAA,CAAW,EAAM,GAAA,KAAA,CAAA,QAAA,KAAN,IAAkB,GAAA,EAAA,GAAA,MAAA,CAAA;AACnC,EAAA,iEAAU,QAAS,CAAA,CAAA;AACrB;;;;"}
|
|
@@ -3,7 +3,8 @@ import useAsync from 'react-use/lib/useAsync';
|
|
|
3
3
|
import { Progress, ErrorPanel, Link, EmptyState, LinkButton } from '@backstage/core-components';
|
|
4
4
|
import { catalogApiRef, EntityDisplayName } from '@backstage/plugin-catalog-react';
|
|
5
5
|
import { useApi } from '@backstage/core-plugin-api';
|
|
6
|
-
import
|
|
6
|
+
import Typography from '@material-ui/core/Typography';
|
|
7
|
+
import { makeStyles } from '@material-ui/core/styles';
|
|
7
8
|
import { stringifyEntityRef } from '@backstage/catalog-model';
|
|
8
9
|
|
|
9
10
|
const useStyles = makeStyles(
|
|
@@ -93,4 +94,4 @@ const Content = (props) => {
|
|
|
93
94
|
};
|
|
94
95
|
|
|
95
96
|
export { Content };
|
|
96
|
-
//# sourceMappingURL=index-
|
|
97
|
+
//# sourceMappingURL=index-60f5dc58.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-60f5dc58.esm.js","sources":["../../src/homePageComponents/FeaturedDocsCard/Content.tsx"],"sourcesContent":["/*\n * Copyright 2022 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 useAsync from 'react-use/lib/useAsync';\nimport {\n LinkButton,\n EmptyState,\n Link,\n Progress,\n ErrorPanel,\n} from '@backstage/core-components';\nimport {\n catalogApiRef,\n CatalogApi,\n EntityDisplayName,\n} from '@backstage/plugin-catalog-react';\nimport { useApi } from '@backstage/core-plugin-api';\nimport { EntityFilterQuery } from '@backstage/catalog-client';\n\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { stringifyEntityRef } from '@backstage/catalog-model';\n\n/**\n * Props customizing the <FeaturedDocsCard/> component.\n *\n * @public\n */\nexport type FeaturedDocsCardProps = {\n /** The entity filter used to display only the intended item/s */\n filter: EntityFilterQuery;\n /** An optional ReactNode for empty states */\n emptyState?: React.JSX.Element;\n /** An optional linkDestination to set for the Featured Doc */\n linkDestination?: string;\n /** An optional limit to set for link destination */\n responseLimit?: number;\n /** An optional string to customize sublink text */\n subLinkText?: string;\n};\n\nconst useStyles = makeStyles(\n theme => ({\n docDescription: {\n fontSize: theme.typography.body1.fontSize,\n fontWeight: theme.typography.body1.fontWeight,\n marginBottom: theme.spacing(2),\n marginTop: theme.spacing(2),\n },\n docSubLink: {\n fontSize: theme.typography.subtitle1.fontSize,\n fontWeight: theme.typography.subtitle1.fontWeight,\n lineHeight: theme.typography.subtitle1.lineHeight,\n },\n docsTitleLink: {\n fontSize: theme.typography.h6.fontSize,\n fontWeight: theme.typography.h6.fontWeight,\n lineHeight: theme.typography.h6.lineHeight,\n },\n }),\n { name: 'HomeFeaturedDocsCard' },\n);\n\n/**\n * A component to display specific Featured Docs.\n *\n * @public\n */\nexport const Content = (props: FeaturedDocsCardProps): JSX.Element => {\n const { emptyState, filter, linkDestination, responseLimit, subLinkText } =\n props;\n const linkText = subLinkText || 'LEARN MORE';\n const styles = useStyles();\n const catalogApi: CatalogApi = useApi(catalogApiRef);\n const {\n value: entities,\n loading,\n error,\n } = useAsync(async () => {\n const response = await catalogApi.getEntities({\n filter: filter,\n limit: responseLimit || 10,\n });\n return response.items;\n });\n\n if (loading) {\n return <Progress />;\n }\n if (error) {\n return <ErrorPanel error={error} />;\n }\n\n return entities?.length ? (\n <>\n {entities.map(d => (\n <div\n key={`${d.metadata.name}-${d.kind}-${d.metadata.namespace}`}\n data-testid=\"docs-card-content\"\n >\n <Link\n className={styles.docsTitleLink}\n data-testid=\"docs-card-title\"\n to={\n linkDestination ||\n `/docs/${d.metadata.namespace || 'default'}/${d.kind}/${\n d.metadata.name\n }/`\n }\n >\n <EntityDisplayName entityRef={stringifyEntityRef(d)} />\n </Link>\n {d.metadata.description && (\n <Typography className={styles.docDescription}>\n {d.metadata.description}\n </Typography>\n )}\n <Link\n className={styles.docSubLink}\n data-testid=\"docs-card-sub-link\"\n to={\n linkDestination ||\n `/docs/${d.metadata.namespace || 'default'}/${d.kind}/${\n d.metadata.name\n }/`\n }\n >\n {linkText}\n </Link>\n </div>\n ))}\n </>\n ) : (\n emptyState || (\n <EmptyState\n missing=\"data\"\n title=\"No documents to show\"\n description=\"Create your own document. Check out our Getting Started Information\"\n action={\n <LinkButton\n to=\"https://backstage.io/docs/features/techdocs/getting-started\"\n variant=\"contained\"\n >\n DOCS\n </LinkButton>\n }\n />\n )\n );\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { SettingsModal } from '@backstage/plugin-home-react';
|
|
3
|
-
import
|
|
3
|
+
import Accordion from '@material-ui/core/Accordion';
|
|
4
|
+
import AccordionDetails from '@material-ui/core/AccordionDetails';
|
|
5
|
+
import AccordionSummary from '@material-ui/core/AccordionSummary';
|
|
6
|
+
import Typography from '@material-ui/core/Typography';
|
|
7
|
+
import IconButton from '@material-ui/core/IconButton';
|
|
4
8
|
import { makeStyles } from '@material-ui/core/styles';
|
|
5
9
|
import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
|
|
6
10
|
import SettingsIcon from '@material-ui/icons/Settings';
|
|
11
|
+
import Tabs from '@material-ui/core/Tabs';
|
|
12
|
+
import Tab from '@material-ui/core/Tab';
|
|
7
13
|
import { InfoCard } from '@backstage/core-components';
|
|
8
14
|
|
|
9
15
|
const useStyles = makeStyles((theme) => ({
|
|
@@ -80,4 +86,4 @@ const ComponentTab = (props) => {
|
|
|
80
86
|
};
|
|
81
87
|
|
|
82
88
|
export { ComponentAccordion, ComponentTab, ComponentTabs };
|
|
83
|
-
//# sourceMappingURL=index-
|
|
89
|
+
//# sourceMappingURL=index-6c4cdf60.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-6c4cdf60.esm.js","sources":["../../src/componentRenderers/ComponentAccordion.tsx","../../src/componentRenderers/ComponentTabs/ComponentTabs.tsx","../../src/componentRenderers/ComponentTabs/ComponentTab.tsx"],"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 { SettingsModal } from '@backstage/plugin-home-react';\nimport Accordion from '@material-ui/core/Accordion';\nimport AccordionDetails from '@material-ui/core/AccordionDetails';\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\nimport Typography from '@material-ui/core/Typography';\nimport IconButton from '@material-ui/core/IconButton';\nimport { Theme } from '@material-ui/core/styles';\nimport { makeStyles } from '@material-ui/core/styles';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport SettingsIcon from '@material-ui/icons/Settings';\n\nconst useStyles = makeStyles((theme: Theme) => ({\n settingsIconButton: {\n padding: theme.spacing(0, 1, 0, 0),\n },\n contentContainer: {\n width: '100%',\n },\n}));\n\nexport const ComponentAccordion = (props: {\n title?: string;\n expanded?: boolean;\n Content: () => JSX.Element;\n Actions?: () => JSX.Element;\n Settings?: () => JSX.Element;\n ContextProvider?: (props: any) => JSX.Element;\n}) => {\n const {\n title,\n expanded = false,\n Content,\n Actions,\n Settings,\n ContextProvider,\n ...childProps\n } = props;\n\n const classes = useStyles();\n const [settingsIsExpanded, setSettingsIsExpanded] = React.useState(false);\n const [isExpanded, setIsExpanded] = React.useState(expanded);\n\n const handleOpenSettings = (e: any) => {\n e.stopPropagation();\n setSettingsIsExpanded(prevState => !prevState);\n };\n\n const innerContent = (\n <>\n {Settings && (\n <SettingsModal\n open={settingsIsExpanded}\n close={() => setSettingsIsExpanded(false)}\n componentName={title}\n >\n <Settings />\n </SettingsModal>\n )}\n <Accordion\n expanded={isExpanded}\n onChange={(_e: any, expandedValue: boolean) =>\n setIsExpanded(expandedValue)\n }\n >\n <AccordionSummary expandIcon={<ExpandMoreIcon />}>\n {Settings && (\n <IconButton\n onClick={handleOpenSettings}\n className={classes.settingsIconButton}\n >\n <SettingsIcon />\n </IconButton>\n )}\n <Typography>{title}</Typography>\n </AccordionSummary>\n <AccordionDetails>\n <div className={classes.contentContainer}>\n <Content />\n {Actions && <Actions />}\n </div>\n </AccordionDetails>\n </Accordion>\n </>\n );\n\n return ContextProvider ? (\n <ContextProvider {...childProps}>{innerContent}</ContextProvider>\n ) : (\n innerContent\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 */\n\nimport React from 'react';\nimport Tabs from '@material-ui/core/Tabs';\nimport Tab from '@material-ui/core/Tab';\nimport { InfoCard } from '@backstage/core-components';\n\ntype TabType = {\n label: string;\n Component: () => JSX.Element;\n};\n\nexport const ComponentTabs = (props: { title: string; tabs: TabType[] }) => {\n const { title, tabs } = props;\n\n const [value, setValue] = React.useState(0);\n\n const handleChange = (_event: any, newValue: number) => {\n setValue(newValue);\n };\n\n return (\n <InfoCard title={title}>\n <Tabs value={value} onChange={handleChange}>\n {tabs.map(t => (\n <Tab key={t.label} label={t.label} />\n ))}\n </Tabs>\n {tabs.map(({ Component }, idx) => (\n <div\n key={idx}\n {...(idx !== value ? { style: { display: 'none' } } : {})}\n >\n <Component />\n </div>\n ))}\n </InfoCard>\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 */\n\nimport React from 'react';\n\nexport const ComponentTab = (props: {\n title: string;\n Content: () => JSX.Element;\n ContextProvider?: (props: any) => JSX.Element;\n}) => {\n const { title, Content, ContextProvider, ...childProps } = props;\n\n return ContextProvider ? (\n <ContextProvider {...childProps}>\n <Content />\n </ContextProvider>\n ) : (\n <Content />\n );\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import Typography from '@material-ui/core/Typography';
|
|
2
2
|
import { useApi, configApiRef } from '@backstage/core-plugin-api';
|
|
3
3
|
import React from 'react';
|
|
4
4
|
|
|
@@ -9,4 +9,4 @@ const CompanyLogo = (props) => {
|
|
|
9
9
|
};
|
|
10
10
|
|
|
11
11
|
export { CompanyLogo };
|
|
12
|
-
//# sourceMappingURL=index-
|
|
12
|
+
//# sourceMappingURL=index-81188117.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-81188117.esm.js","sources":["../../src/homePageComponents/CompanyLogo/CompanyLogo.tsx"],"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 */\nimport Typography from '@material-ui/core/Typography';\nimport { configApiRef, useApi } from '@backstage/core-plugin-api';\nimport React from 'react';\n\ntype CompanyLogoProps = {\n logo?: React.ReactNode;\n className?: string;\n};\n\n/**\n * A component to display a company logo for the user.\n *\n * @public\n */\nexport const CompanyLogo = (props: CompanyLogoProps) => {\n const { logo, className } = props;\n const configApi = useApi(configApiRef);\n\n return (\n <div className={className}>\n {logo ? (\n <>{logo}</>\n ) : (\n <Typography variant=\"h1\">{configApi.getString('app.title')}</Typography>\n )}\n </div>\n );\n};\n"],"names":[],"mappings":";;;;AA6Ba,MAAA,WAAA,GAAc,CAAC,KAA4B,KAAA;AACtD,EAAM,MAAA,EAAE,IAAM,EAAA,SAAA,EAAc,GAAA,KAAA,CAAA;AAC5B,EAAM,MAAA,SAAA,GAAY,OAAO,YAAY,CAAA,CAAA;AAErC,EAAA,uBACG,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAI,SACF,EAAA,EAAA,IAAA,6DACI,IAAK,CAAA,mBAEP,KAAA,CAAA,aAAA,CAAA,UAAA,EAAA,EAAW,SAAQ,IAAM,EAAA,EAAA,SAAA,CAAU,SAAU,CAAA,WAAW,CAAE,CAE/D,CAAA,CAAA;AAEJ;;;;"}
|
|
@@ -2,9 +2,17 @@ import { entityRouteRef, entityRouteParams, catalogApiRef, useStarredEntities }
|
|
|
2
2
|
import { stringifyEntityRef } from '@backstage/catalog-model';
|
|
3
3
|
import { useRouteRef, useApi } from '@backstage/core-plugin-api';
|
|
4
4
|
import { Progress, ResponseErrorPanel } from '@backstage/core-components';
|
|
5
|
-
import
|
|
5
|
+
import List from '@material-ui/core/List';
|
|
6
|
+
import Typography from '@material-ui/core/Typography';
|
|
7
|
+
import Tabs from '@material-ui/core/Tabs';
|
|
8
|
+
import Tab from '@material-ui/core/Tab';
|
|
6
9
|
import React from 'react';
|
|
7
10
|
import useAsync from 'react-use/lib/useAsync';
|
|
11
|
+
import ListItem from '@material-ui/core/ListItem';
|
|
12
|
+
import ListItemIcon from '@material-ui/core/ListItemIcon';
|
|
13
|
+
import Tooltip from '@material-ui/core/Tooltip';
|
|
14
|
+
import IconButton from '@material-ui/core/IconButton';
|
|
15
|
+
import ListItemText from '@material-ui/core/ListItemText';
|
|
8
16
|
import { Link } from 'react-router-dom';
|
|
9
17
|
import StarIcon from '@material-ui/icons/Star';
|
|
10
18
|
|
|
@@ -103,4 +111,4 @@ const Content = ({
|
|
|
103
111
|
};
|
|
104
112
|
|
|
105
113
|
export { Content };
|
|
106
|
-
//# sourceMappingURL=index-
|
|
114
|
+
//# sourceMappingURL=index-978cfdc4.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-978cfdc4.esm.js","sources":["../../src/components/StarredEntityListItem/StarredEntityListItem.tsx","../../src/homePageComponents/StarredEntities/Content.tsx"],"sourcesContent":["/*\n * Copyright 2023 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 { Entity, stringifyEntityRef } from '@backstage/catalog-model';\nimport { entityRouteParams } from '@backstage/plugin-catalog-react';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport IconButton from '@material-ui/core/IconButton';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport React from 'react';\nimport { Link } from 'react-router-dom';\nimport { entityRouteRef } from '@backstage/plugin-catalog-react';\nimport { useRouteRef } from '@backstage/core-plugin-api';\nimport StarIcon from '@material-ui/icons/Star';\n\ntype EntityListItemProps = {\n entity: Entity;\n onToggleStarredEntity: (entity: Entity) => void;\n};\n\nexport const StarredEntityListItem = ({\n entity,\n onToggleStarredEntity,\n}: EntityListItemProps) => {\n const catalogEntityRoute = useRouteRef(entityRouteRef);\n\n return (\n <ListItem key={stringifyEntityRef(entity)}>\n <ListItemIcon>\n <Tooltip title=\"Remove from starred\">\n <IconButton\n edge=\"end\"\n aria-label=\"unstar\"\n onClick={() => onToggleStarredEntity(entity)}\n >\n <StarIcon style={{ color: '#f3ba37' }} />\n </IconButton>\n </Tooltip>\n </ListItemIcon>\n <Link to={catalogEntityRoute(entityRouteParams(entity))}>\n <ListItemText primary={entity.metadata.title ?? entity.metadata.name} />\n </Link>\n </ListItem>\n );\n};\n","/*\n * Copyright 2022 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 {\n catalogApiRef,\n useStarredEntities,\n} from '@backstage/plugin-catalog-react';\nimport { Entity, stringifyEntityRef } from '@backstage/catalog-model';\nimport { useApi } from '@backstage/core-plugin-api';\nimport { Progress, ResponseErrorPanel } from '@backstage/core-components';\nimport List from '@material-ui/core/List';\nimport Typography from '@material-ui/core/Typography';\nimport Tabs from '@material-ui/core/Tabs';\nimport Tab from '@material-ui/core/Tab';\nimport React from 'react';\nimport useAsync from 'react-use/lib/useAsync';\nimport { StarredEntityListItem } from '../../components/StarredEntityListItem/StarredEntityListItem';\n\n/**\n * A component to display a list of starred entities for the user.\n *\n * @public\n */\n\nexport type StarredEntitiesProps = {\n noStarredEntitiesMessage?: React.ReactNode | undefined;\n groupByKind?: boolean;\n};\n\nexport const Content = ({\n noStarredEntitiesMessage,\n groupByKind,\n}: StarredEntitiesProps) => {\n const catalogApi = useApi(catalogApiRef);\n const { starredEntities, toggleStarredEntity } = useStarredEntities();\n const [activeTab, setActiveTab] = React.useState(0);\n\n // Grab starred entities from catalog to ensure they still exist and also retrieve display titles\n const entities = useAsync(async () => {\n if (!starredEntities.size) {\n return [];\n }\n\n return (\n await catalogApi.getEntitiesByRefs({\n entityRefs: [...starredEntities],\n fields: [\n 'kind',\n 'metadata.namespace',\n 'metadata.name',\n 'metadata.title',\n ],\n })\n ).items.filter((e): e is Entity => !!e);\n }, [catalogApi, starredEntities]);\n\n if (starredEntities.size === 0)\n return (\n <Typography variant=\"body1\">\n {noStarredEntitiesMessage ||\n 'Click the star beside an entity name to add it to this list!'}\n </Typography>\n );\n\n if (entities.loading) {\n return <Progress />;\n }\n\n const groupedEntities: { [kind: string]: Entity[] } = {};\n entities.value?.forEach(entity => {\n const kind = entity.kind;\n if (!groupedEntities[kind]) {\n groupedEntities[kind] = [];\n }\n groupedEntities[kind].push(entity);\n });\n\n const groupByKindEntries = Object.entries(groupedEntities);\n\n return entities.error ? (\n <ResponseErrorPanel error={entities.error} />\n ) : (\n <div>\n {!groupByKind && (\n <List>\n {entities.value\n ?.sort((a, b) =>\n (a.metadata.title ?? a.metadata.name).localeCompare(\n b.metadata.title ?? b.metadata.name,\n ),\n )\n .map(entity => (\n <StarredEntityListItem\n key={stringifyEntityRef(entity)}\n entity={entity}\n onToggleStarredEntity={toggleStarredEntity}\n />\n ))}\n </List>\n )}\n\n {groupByKind && (\n <Tabs\n value={activeTab}\n onChange={(_, newValue) => setActiveTab(newValue)}\n variant=\"scrollable\"\n scrollButtons=\"auto\"\n aria-label=\"entity-tabs\"\n >\n {groupByKindEntries.map(([kind]) => (\n <Tab key={kind} label={kind} />\n ))}\n </Tabs>\n )}\n\n {groupByKind &&\n groupByKindEntries.map(([kind, entitiesByKind], index) => (\n <div key={kind} hidden={groupByKind && activeTab !== index}>\n <List>\n {entitiesByKind\n ?.sort((a, b) =>\n (a.metadata.title ?? a.metadata.name).localeCompare(\n b.metadata.title ?? b.metadata.name,\n ),\n )\n .map(entity => (\n <StarredEntityListItem\n key={stringifyEntityRef(entity)}\n entity={entity}\n onToggleStarredEntity={toggleStarredEntity}\n />\n ))}\n </List>\n </div>\n ))}\n </div>\n );\n};\n"],"names":["_a","_b"],"mappings":"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"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import React, { createContext } from 'react';
|
|
2
|
-
import
|
|
2
|
+
import Button from '@material-ui/core/Button';
|
|
3
3
|
import Typography from '@material-ui/core/Typography';
|
|
4
|
+
import FormControl from '@material-ui/core/FormControl';
|
|
5
|
+
import FormLabel from '@material-ui/core/FormLabel';
|
|
6
|
+
import RadioGroup from '@material-ui/core/RadioGroup';
|
|
7
|
+
import FormControlLabel from '@material-ui/core/FormControlLabel';
|
|
8
|
+
import Radio from '@material-ui/core/Radio';
|
|
4
9
|
import upperFirst from 'lodash/upperFirst';
|
|
5
10
|
|
|
6
11
|
const Context = createContext(void 0);
|
|
@@ -82,4 +87,4 @@ const Settings = () => {
|
|
|
82
87
|
};
|
|
83
88
|
|
|
84
89
|
export { Actions, Content, ContextProvider, Settings };
|
|
85
|
-
//# sourceMappingURL=index-
|
|
90
|
+
//# sourceMappingURL=index-a6e42355.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-a6e42355.esm.js","sources":["../../src/homePageComponents/RandomJoke/Context.tsx","../../src/homePageComponents/RandomJoke/Actions.tsx","../../src/homePageComponents/RandomJoke/Content.tsx","../../src/homePageComponents/RandomJoke/Settings.tsx"],"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, { createContext } from 'react';\n\nexport type JokeType = 'any' | 'programming';\n\ntype Joke = {\n setup: string;\n punchline: string;\n};\n\ntype RandomJokeContextValue = {\n loading: boolean;\n joke: Joke;\n type: JokeType;\n rerollJoke: Function;\n handleChangeType: Function;\n};\n\nconst Context = createContext<RandomJokeContextValue | undefined>(undefined);\n\nconst getNewJoke = (type: string): Promise<Joke> =>\n fetch(\n `https://official-joke-api.appspot.com/jokes${\n type !== 'any' ? `/${type}` : ''\n }/random`,\n )\n .then(res => res.json())\n .then(data => (Array.isArray(data) ? data[0] : data));\n\nexport const ContextProvider = (props: {\n children: JSX.Element;\n defaultCategory?: JokeType;\n}) => {\n const { children, defaultCategory } = props;\n\n const [loading, setLoading] = React.useState(true);\n const [joke, setJoke] = React.useState<Joke>({\n setup: '',\n punchline: '',\n });\n const [type, setType] = React.useState<JokeType>(\n defaultCategory || ('programming' as JokeType),\n );\n\n const rerollJoke = React.useCallback(() => {\n setLoading(true);\n getNewJoke(type).then(newJoke => setJoke(newJoke));\n }, [type]);\n\n const handleChangeType = (newType: JokeType) => {\n setType(newType);\n };\n\n React.useEffect(() => {\n setLoading(false);\n }, [joke]);\n\n React.useEffect(() => {\n rerollJoke();\n }, [rerollJoke]);\n\n const value: RandomJokeContextValue = {\n loading,\n joke,\n type,\n rerollJoke,\n handleChangeType,\n };\n\n return <Context.Provider value={value}>{children}</Context.Provider>;\n};\n\nexport const useRandomJoke = () => {\n const value = React.useContext(Context);\n\n if (value === undefined) {\n throw new Error('useRandomJoke must be used within a RandomJokeProvider');\n }\n\n return value;\n};\n\nexport default Context;\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 from 'react';\n\nimport Button from '@material-ui/core/Button';\nimport { useRandomJoke } from './Context';\n\nexport const Actions = () => {\n const { rerollJoke } = useRandomJoke();\n return (\n <Button variant=\"contained\" color=\"primary\" onClick={() => rerollJoke()}>\n Reroll\n </Button>\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 */\n\nimport Typography from '@material-ui/core/Typography';\nimport React from 'react';\nimport { useRandomJoke } from './Context';\n\nexport const Content = () => {\n const { joke, loading } = useRandomJoke();\n\n if (loading) return <Typography paragraph>Loading...</Typography>;\n\n return (\n <div>\n <Typography paragraph>{joke.setup}</Typography>\n <Typography paragraph>{joke.punchline}</Typography>\n </div>\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 FormControl from '@material-ui/core/FormControl';\nimport FormLabel from '@material-ui/core/FormLabel';\nimport RadioGroup from '@material-ui/core/RadioGroup';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Radio from '@material-ui/core/Radio';\nimport React from 'react';\nimport { useRandomJoke, JokeType } from './Context';\nimport upperFirst from 'lodash/upperFirst';\n\nexport const Settings = () => {\n const { type, handleChangeType } = useRandomJoke();\n const JOKE_TYPES: JokeType[] = ['any' as JokeType, 'programming' as JokeType];\n return (\n <FormControl component=\"fieldset\">\n <FormLabel component=\"legend\">Joke Type</FormLabel>\n <RadioGroup\n aria-label=\"joke type\"\n value={type}\n onChange={e => handleChangeType(e.target.value)}\n >\n {JOKE_TYPES.map(t => (\n <FormControlLabel\n key={t}\n value={t}\n control={<Radio />}\n label={upperFirst(t)}\n />\n ))}\n </RadioGroup>\n </FormControl>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { Link } from '@backstage/core-components';
|
|
2
|
-
import
|
|
2
|
+
import List from '@material-ui/core/List';
|
|
3
|
+
import ListItemIcon from '@material-ui/core/ListItemIcon';
|
|
4
|
+
import ListItemText from '@material-ui/core/ListItemText';
|
|
5
|
+
import { makeStyles } from '@material-ui/core/styles';
|
|
3
6
|
import React, { createContext } from 'react';
|
|
4
7
|
|
|
5
8
|
const Context = createContext(void 0);
|
|
@@ -58,4 +61,4 @@ const Content = (props) => {
|
|
|
58
61
|
};
|
|
59
62
|
|
|
60
63
|
export { Content, ContextProvider };
|
|
61
|
-
//# sourceMappingURL=index-
|
|
64
|
+
//# sourceMappingURL=index-f4fbaf5f.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-f4fbaf5f.esm.js","sources":["../../src/homePageComponents/Toolkit/Context.tsx","../../src/homePageComponents/Toolkit/Content.tsx"],"sourcesContent":["/*\n * Copyright 2022 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, { createContext } from 'react';\n\n/** @public */\nexport type Tool = {\n label: string;\n url: string;\n icon: React.ReactNode;\n};\n\ntype ToolkitContextValue = {\n tools: Tool[];\n};\n\nconst Context = createContext<ToolkitContextValue | undefined>(undefined);\n\nexport const ContextProvider = (props: {\n children: JSX.Element;\n tools: Tool[];\n}) => {\n const { children, tools } = props;\n\n const [toolsValue, _setTools] = React.useState(tools);\n\n const value: ToolkitContextValue = {\n tools: toolsValue,\n };\n\n return <Context.Provider value={value}>{children}</Context.Provider>;\n};\n\nexport const useToolkit = () => {\n const value = React.useContext(Context);\n return value;\n};\n\nexport default Context;\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 { Link } from '@backstage/core-components';\nimport List from '@material-ui/core/List';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport { makeStyles } from '@material-ui/core/styles';\nimport React from 'react';\nimport { useToolkit, Tool } from './Context';\n\nconst useStyles = makeStyles(theme => ({\n toolkit: {\n display: 'flex',\n flexWrap: 'wrap',\n textAlign: 'center',\n },\n tool: {\n margin: theme.spacing(0.5, 1),\n },\n label: {\n marginTop: theme.spacing(1),\n width: '72px',\n fontSize: '0.9em',\n lineHeight: '1.25',\n overflowWrap: 'break-word',\n color: theme.palette.text.secondary,\n },\n icon: {\n width: '64px',\n height: '64px',\n borderRadius: '50px',\n justifyContent: 'center',\n alignItems: 'center',\n boxShadow: theme.shadows[1],\n backgroundColor: theme.palette.background.default,\n },\n}));\n\n/**\n * A component to display a list of tools for the user.\n *\n * @public\n */\nexport const Content = (props: ToolkitContentProps) => {\n const classes = useStyles();\n const toolkit = useToolkit();\n const tools = toolkit?.tools ?? props.tools;\n\n return (\n <List className={classes.toolkit}>\n {tools.map((tool: Tool) => (\n <Link key={tool.url} to={tool.url} className={classes.tool}>\n <ListItemIcon className={classes.icon}>{tool.icon}</ListItemIcon>\n <ListItemText\n secondaryTypographyProps={{ className: classes.label }}\n secondary={tool.label}\n />\n </Link>\n ))}\n </List>\n );\n};\n\n/**\n * Props for Toolkit Content component.\n *\n * @public\n */\nexport type ToolkitContentProps = {\n tools: Tool[];\n};\n"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -242,6 +242,7 @@ declare const ComponentAccordion: (props: {
|
|
|
242
242
|
expanded?: boolean | undefined;
|
|
243
243
|
Content: () => JSX.Element;
|
|
244
244
|
Actions?: (() => JSX.Element) | undefined;
|
|
245
|
+
/** @public */
|
|
245
246
|
Settings?: (() => JSX.Element) | undefined;
|
|
246
247
|
ContextProvider?: ((props: any) => JSX.Element) | undefined;
|
|
247
248
|
}) => React.JSX.Element;
|
package/dist/index.esm.js
CHANGED
|
@@ -1,18 +1,22 @@
|
|
|
1
1
|
import { createRouteRef, createPlugin, createApiFactory, storageApiRef, identityApiRef, createRoutableExtension, createComponentExtension } from '@backstage/core-plugin-api';
|
|
2
2
|
import { createCardExtension as createCardExtension$1, SettingsModal as SettingsModal$1 } from '@backstage/plugin-home-react';
|
|
3
3
|
import { WebStorage } from '@backstage/core-app-api';
|
|
4
|
-
import { v as visitsApiRef } from './esm/VisitListener-
|
|
5
|
-
export { C as CustomHomepageGrid, V as VisitListener, i as isOperator, v as visitsApiRef } from './esm/VisitListener-
|
|
4
|
+
import { v as visitsApiRef } from './esm/VisitListener-601cb70c.esm.js';
|
|
5
|
+
export { C as CustomHomepageGrid, V as VisitListener, i as isOperator, v as visitsApiRef } from './esm/VisitListener-601cb70c.esm.js';
|
|
6
6
|
import React from 'react';
|
|
7
7
|
import 'react-router-dom';
|
|
8
|
-
import { makeStyles } from '@material-ui/core';
|
|
8
|
+
import { makeStyles } from '@material-ui/core/styles';
|
|
9
9
|
import 'react-grid-layout';
|
|
10
10
|
import 'react-grid-layout/css/styles.css';
|
|
11
11
|
import 'react-resizable/css/styles.css';
|
|
12
|
+
import '@material-ui/core/Dialog';
|
|
12
13
|
import 'lodash';
|
|
13
14
|
import 'react-use/lib/useObservable';
|
|
14
15
|
import '@backstage/core-components';
|
|
15
16
|
import '@material-ui/core/Typography';
|
|
17
|
+
import '@material-ui/core/DialogContent';
|
|
18
|
+
import '@material-ui/core/Grid';
|
|
19
|
+
import '@material-ui/core/Tooltip';
|
|
16
20
|
import '@material-ui/core/IconButton';
|
|
17
21
|
import '@material-ui/icons/Settings';
|
|
18
22
|
import '@material-ui/icons/Delete';
|
|
@@ -21,6 +25,8 @@ import '@rjsf/material-ui';
|
|
|
21
25
|
import '@rjsf/validator-ajv8';
|
|
22
26
|
import '@material-ui/core/List';
|
|
23
27
|
import '@material-ui/core/ListItem';
|
|
28
|
+
import '@material-ui/core/DialogTitle';
|
|
29
|
+
import '@material-ui/core/ListItemAvatar';
|
|
24
30
|
import '@material-ui/icons/Add';
|
|
25
31
|
import '@material-ui/core/ListItemText';
|
|
26
32
|
import '@material-ui/core/Button';
|
|
@@ -179,7 +185,7 @@ const homePlugin = createPlugin({
|
|
|
179
185
|
const HomepageCompositionRoot = homePlugin.provide(
|
|
180
186
|
createRoutableExtension({
|
|
181
187
|
name: "HomepageCompositionRoot",
|
|
182
|
-
component: () => import('./esm/index-
|
|
188
|
+
component: () => import('./esm/index-5967d606.esm.js').then((m) => m.HomepageCompositionRoot),
|
|
183
189
|
mountPoint: rootRouteRef
|
|
184
190
|
})
|
|
185
191
|
);
|
|
@@ -187,7 +193,7 @@ const ComponentAccordion = homePlugin.provide(
|
|
|
187
193
|
createComponentExtension({
|
|
188
194
|
name: "ComponentAccordion",
|
|
189
195
|
component: {
|
|
190
|
-
lazy: () => import('./esm/index-
|
|
196
|
+
lazy: () => import('./esm/index-6c4cdf60.esm.js').then((m) => m.ComponentAccordion)
|
|
191
197
|
}
|
|
192
198
|
})
|
|
193
199
|
);
|
|
@@ -195,7 +201,7 @@ const ComponentTabs = homePlugin.provide(
|
|
|
195
201
|
createComponentExtension({
|
|
196
202
|
name: "ComponentTabs",
|
|
197
203
|
component: {
|
|
198
|
-
lazy: () => import('./esm/index-
|
|
204
|
+
lazy: () => import('./esm/index-6c4cdf60.esm.js').then((m) => m.ComponentTabs)
|
|
199
205
|
}
|
|
200
206
|
})
|
|
201
207
|
);
|
|
@@ -203,7 +209,7 @@ const ComponentTab = homePlugin.provide(
|
|
|
203
209
|
createComponentExtension({
|
|
204
210
|
name: "ComponentTab",
|
|
205
211
|
component: {
|
|
206
|
-
lazy: () => import('./esm/index-
|
|
212
|
+
lazy: () => import('./esm/index-6c4cdf60.esm.js').then((m) => m.ComponentTab)
|
|
207
213
|
}
|
|
208
214
|
})
|
|
209
215
|
);
|
|
@@ -211,7 +217,7 @@ const WelcomeTitle = homePlugin.provide(
|
|
|
211
217
|
createComponentExtension({
|
|
212
218
|
name: "WelcomeTitle",
|
|
213
219
|
component: {
|
|
214
|
-
lazy: () => import('./esm/index-
|
|
220
|
+
lazy: () => import('./esm/index-3ec8912b.esm.js').then((m) => m.WelcomeTitle)
|
|
215
221
|
}
|
|
216
222
|
})
|
|
217
223
|
);
|
|
@@ -219,7 +225,7 @@ const HomePageCompanyLogo = homePlugin.provide(
|
|
|
219
225
|
createComponentExtension({
|
|
220
226
|
name: "CompanyLogo",
|
|
221
227
|
component: {
|
|
222
|
-
lazy: () => import('./esm/index-
|
|
228
|
+
lazy: () => import('./esm/index-81188117.esm.js').then((m) => m.CompanyLogo)
|
|
223
229
|
}
|
|
224
230
|
})
|
|
225
231
|
);
|
|
@@ -227,7 +233,7 @@ const HomePageRandomJoke = homePlugin.provide(
|
|
|
227
233
|
createCardExtension$1({
|
|
228
234
|
name: "HomePageRandomJoke",
|
|
229
235
|
title: "Random Joke",
|
|
230
|
-
components: () => import('./esm/index-
|
|
236
|
+
components: () => import('./esm/index-a6e42355.esm.js'),
|
|
231
237
|
description: "Shows a random joke about optional category",
|
|
232
238
|
layout: {
|
|
233
239
|
height: { minRows: 4 },
|
|
@@ -253,14 +259,14 @@ const HomePageToolkit = homePlugin.provide(
|
|
|
253
259
|
createCardExtension$1({
|
|
254
260
|
name: "HomePageToolkit",
|
|
255
261
|
title: "Toolkit",
|
|
256
|
-
components: () => import('./esm/index-
|
|
262
|
+
components: () => import('./esm/index-f4fbaf5f.esm.js')
|
|
257
263
|
})
|
|
258
264
|
);
|
|
259
265
|
const HomePageStarredEntities = homePlugin.provide(
|
|
260
266
|
createCardExtension$1({
|
|
261
267
|
name: "HomePageStarredEntities",
|
|
262
268
|
title: "Your Starred Entities",
|
|
263
|
-
components: () => import('./esm/index-
|
|
269
|
+
components: () => import('./esm/index-978cfdc4.esm.js')
|
|
264
270
|
})
|
|
265
271
|
);
|
|
266
272
|
const HeaderWorldClock = homePlugin.provide(
|
|
@@ -276,20 +282,22 @@ const HeaderWorldClock = homePlugin.provide(
|
|
|
276
282
|
const HomePageTopVisited = homePlugin.provide(
|
|
277
283
|
createCardExtension$1({
|
|
278
284
|
name: "HomePageTopVisited",
|
|
279
|
-
|
|
285
|
+
title: "Top Visited",
|
|
286
|
+
components: () => import('./esm/TopVisited-93920c20.esm.js')
|
|
280
287
|
})
|
|
281
288
|
);
|
|
282
289
|
const HomePageRecentlyVisited = homePlugin.provide(
|
|
283
290
|
createCardExtension$1({
|
|
284
291
|
name: "HomePageRecentlyVisited",
|
|
285
|
-
|
|
292
|
+
title: "Recently Visited",
|
|
293
|
+
components: () => import('./esm/RecentlyVisited-399210d7.esm.js')
|
|
286
294
|
})
|
|
287
295
|
);
|
|
288
296
|
const FeaturedDocsCard = homePlugin.provide(
|
|
289
297
|
createCardExtension$1({
|
|
290
298
|
name: "FeaturedDocsCard",
|
|
291
299
|
title: "Featured Docs",
|
|
292
|
-
components: () => import('./esm/index-
|
|
300
|
+
components: () => import('./esm/index-60f5dc58.esm.js')
|
|
293
301
|
})
|
|
294
302
|
);
|
|
295
303
|
|