@backstage/plugin-catalog 1.31.2-next.0 → 1.31.2-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +51 -0
- package/dist/alpha/DefaultEntityContentLayout.esm.js +40 -11
- package/dist/alpha/DefaultEntityContentLayout.esm.js.map +1 -1
- package/dist/alpha/apis.esm.js +19 -25
- package/dist/alpha/apis.esm.js.map +1 -1
- package/dist/alpha/entityContents.esm.js +3 -3
- package/dist/alpha/entityContents.esm.js.map +1 -1
- package/dist/alpha/pages.esm.js +2 -2
- package/dist/alpha/pages.esm.js.map +1 -1
- package/dist/alpha.d.ts +71 -72
- package/dist/package.json.esm.js +1 -1
- package/package.json +13 -13
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,56 @@
|
|
|
1
1
|
# @backstage/plugin-catalog
|
|
2
2
|
|
|
3
|
+
## 1.31.2-next.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- e4ddf22: Internal update to align with new blueprint parameter naming in the new frontend system.
|
|
8
|
+
- Updated dependencies
|
|
9
|
+
- @backstage/frontend-plugin-api@0.11.0-next.1
|
|
10
|
+
- @backstage/core-compat-api@0.5.0-next.2
|
|
11
|
+
- @backstage/plugin-search-react@1.9.3-next.1
|
|
12
|
+
- @backstage/plugin-catalog-react@1.20.0-next.2
|
|
13
|
+
- @backstage/core-components@0.17.5-next.1
|
|
14
|
+
- @backstage/catalog-client@1.11.0-next.0
|
|
15
|
+
- @backstage/catalog-model@1.7.5
|
|
16
|
+
- @backstage/core-plugin-api@1.10.9
|
|
17
|
+
- @backstage/errors@1.2.7
|
|
18
|
+
- @backstage/integration-react@1.2.9
|
|
19
|
+
- @backstage/types@1.2.1
|
|
20
|
+
- @backstage/version-bridge@1.0.11
|
|
21
|
+
- @backstage/plugin-catalog-common@1.1.5
|
|
22
|
+
- @backstage/plugin-permission-react@0.4.36
|
|
23
|
+
- @backstage/plugin-scaffolder-common@1.7.0-next.0
|
|
24
|
+
- @backstage/plugin-search-common@1.2.19
|
|
25
|
+
- @backstage/plugin-techdocs-common@0.1.1
|
|
26
|
+
- @backstage/plugin-techdocs-react@1.3.2-next.0
|
|
27
|
+
|
|
28
|
+
## 1.31.2-next.1
|
|
29
|
+
|
|
30
|
+
### Patch Changes
|
|
31
|
+
|
|
32
|
+
- c0ea01b: Fix card scrolling behaviour
|
|
33
|
+
- f2f133c: Internal update to use the new variant of `ApiBlueprint`.
|
|
34
|
+
- Updated dependencies
|
|
35
|
+
- @backstage/plugin-scaffolder-common@1.7.0-next.0
|
|
36
|
+
- @backstage/core-compat-api@0.4.5-next.1
|
|
37
|
+
- @backstage/plugin-catalog-react@1.20.0-next.1
|
|
38
|
+
- @backstage/frontend-plugin-api@0.11.0-next.0
|
|
39
|
+
- @backstage/catalog-client@1.11.0-next.0
|
|
40
|
+
- @backstage/plugin-search-react@1.9.3-next.0
|
|
41
|
+
- @backstage/plugin-techdocs-react@1.3.2-next.0
|
|
42
|
+
- @backstage/core-components@0.17.5-next.0
|
|
43
|
+
- @backstage/catalog-model@1.7.5
|
|
44
|
+
- @backstage/core-plugin-api@1.10.9
|
|
45
|
+
- @backstage/errors@1.2.7
|
|
46
|
+
- @backstage/integration-react@1.2.9
|
|
47
|
+
- @backstage/types@1.2.1
|
|
48
|
+
- @backstage/version-bridge@1.0.11
|
|
49
|
+
- @backstage/plugin-catalog-common@1.1.5
|
|
50
|
+
- @backstage/plugin-permission-react@0.4.36
|
|
51
|
+
- @backstage/plugin-search-common@1.2.19
|
|
52
|
+
- @backstage/plugin-techdocs-common@0.1.1
|
|
53
|
+
|
|
3
54
|
## 1.31.2-next.0
|
|
4
55
|
|
|
5
56
|
### Patch Changes
|
|
@@ -13,7 +13,7 @@ const useStyles = makeStyles((theme) => ({
|
|
|
13
13
|
flexFlow: "column nowrap",
|
|
14
14
|
gap: theme.spacing(3)
|
|
15
15
|
},
|
|
16
|
-
|
|
16
|
+
mainContent: {
|
|
17
17
|
display: "flex",
|
|
18
18
|
flexFlow: "column",
|
|
19
19
|
gap: theme.spacing(3),
|
|
@@ -23,9 +23,13 @@ const useStyles = makeStyles((theme) => ({
|
|
|
23
23
|
infoArea: {
|
|
24
24
|
display: "flex",
|
|
25
25
|
flexFlow: "column nowrap",
|
|
26
|
-
alignItems: "
|
|
26
|
+
alignItems: "flex-start",
|
|
27
27
|
gap: theme.spacing(3),
|
|
28
|
-
minWidth: 0
|
|
28
|
+
minWidth: 0,
|
|
29
|
+
"& > *": {
|
|
30
|
+
flexShrink: 0,
|
|
31
|
+
flexGrow: 0
|
|
32
|
+
}
|
|
29
33
|
},
|
|
30
34
|
summaryArea: {
|
|
31
35
|
minWidth: 0,
|
|
@@ -38,10 +42,17 @@ const useStyles = makeStyles((theme) => ({
|
|
|
38
42
|
marginLeft: theme.spacing(3)
|
|
39
43
|
}
|
|
40
44
|
},
|
|
45
|
+
contentArea: {
|
|
46
|
+
display: "flex",
|
|
47
|
+
flexFlow: "column",
|
|
48
|
+
gap: theme.spacing(3),
|
|
49
|
+
alignItems: "stretch",
|
|
50
|
+
minWidth: 0
|
|
51
|
+
},
|
|
41
52
|
[theme.breakpoints.up("md")]: {
|
|
42
53
|
root: {
|
|
43
54
|
display: "grid",
|
|
44
|
-
gap:
|
|
55
|
+
gap: theme.spacing(3),
|
|
45
56
|
gridTemplateAreas: ({ summaryCards }) => `
|
|
46
57
|
"${summaryCards ? "summary" : "content"} info"
|
|
47
58
|
"content info"
|
|
@@ -49,11 +60,8 @@ const useStyles = makeStyles((theme) => ({
|
|
|
49
60
|
gridTemplateColumns: ({ infoCards }) => infoCards ? "2fr 1fr" : "1fr",
|
|
50
61
|
alignItems: "start"
|
|
51
62
|
},
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
position: "sticky",
|
|
55
|
-
top: theme.spacing(3),
|
|
56
|
-
marginLeft: theme.spacing(3)
|
|
63
|
+
mainContent: {
|
|
64
|
+
display: "contents"
|
|
57
65
|
},
|
|
58
66
|
contentArea: {
|
|
59
67
|
gridArea: "content"
|
|
@@ -61,6 +69,25 @@ const useStyles = makeStyles((theme) => ({
|
|
|
61
69
|
summaryArea: {
|
|
62
70
|
gridArea: "summary",
|
|
63
71
|
marginBottom: theme.spacing(3)
|
|
72
|
+
},
|
|
73
|
+
infoArea: {
|
|
74
|
+
gridArea: "info",
|
|
75
|
+
position: "sticky",
|
|
76
|
+
top: theme.spacing(3),
|
|
77
|
+
// this is a little unfortunate, but it's required to make the info cards scrollable
|
|
78
|
+
// in a fixed container of the full height when it's stuck.
|
|
79
|
+
// 100% doesn't work as that's the height of the entire layout, which is what powers the card scrolling.
|
|
80
|
+
maxHeight: "100vh",
|
|
81
|
+
overflowY: "auto",
|
|
82
|
+
alignSelf: "start",
|
|
83
|
+
alignItems: "stretch",
|
|
84
|
+
// Hide the scrollbar for the inner info cards
|
|
85
|
+
// kind of an accessibility nightmare, but we see.
|
|
86
|
+
scrollbarWidth: "none",
|
|
87
|
+
msOverflowStyle: "none",
|
|
88
|
+
"&::-webkit-scrollbar": {
|
|
89
|
+
display: "none"
|
|
90
|
+
}
|
|
64
91
|
}
|
|
65
92
|
}
|
|
66
93
|
}));
|
|
@@ -85,8 +112,10 @@ function DefaultEntityContentLayout(props) {
|
|
|
85
112
|
entityWarningContent,
|
|
86
113
|
/* @__PURE__ */ jsxs("div", { className: classes.root, children: [
|
|
87
114
|
infoCards.length > 0 ? /* @__PURE__ */ jsx("div", { className: classes.infoArea, children: infoCards.map((card) => card.element) }) : null,
|
|
88
|
-
|
|
89
|
-
|
|
115
|
+
/* @__PURE__ */ jsxs("div", { className: classes.mainContent, children: [
|
|
116
|
+
summaryCards.length > 0 ? /* @__PURE__ */ jsx("div", { className: classes.summaryArea, children: /* @__PURE__ */ jsx(HorizontalScrollGrid, { scrollStep: 400, scrollSpeed: 100, children: summaryCards.map((card) => /* @__PURE__ */ jsx("div", { className: classes.summaryCard, children: card.element })) }) }) : null,
|
|
117
|
+
contentCards.length > 0 ? /* @__PURE__ */ jsx("div", { className: classes.contentArea, children: contentCards.map((card) => card.element) }) : null
|
|
118
|
+
] })
|
|
90
119
|
] })
|
|
91
120
|
] });
|
|
92
121
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultEntityContentLayout.esm.js","sources":["../../src/alpha/DefaultEntityContentLayout.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 */\n\nimport Grid from '@material-ui/core/Grid';\nimport { makeStyles, Theme } from '@material-ui/core/styles';\nimport { EntityContentLayoutProps } from '@backstage/plugin-catalog-react/alpha';\nimport { EntitySwitch } from '../components/EntitySwitch';\nimport {\n EntityOrphanWarning,\n isOrphan,\n} from '../components/EntityOrphanWarning';\nimport {\n EntityRelationWarning,\n hasRelationWarnings,\n} from '../components/EntityRelationWarning';\nimport {\n EntityProcessingErrorsPanel,\n hasCatalogProcessingErrors,\n} from '../components/EntityProcessingErrorsPanel';\nimport { HorizontalScrollGrid } from '@backstage/core-components';\n\nconst useStyles = makeStyles<\n Theme,\n { infoCards: boolean; summaryCards: boolean; contentCards: boolean }\n>(theme => ({\n root: {\n display: 'flex',\n flexFlow: 'column nowrap',\n gap: theme.spacing(3),\n },\n
|
|
1
|
+
{"version":3,"file":"DefaultEntityContentLayout.esm.js","sources":["../../src/alpha/DefaultEntityContentLayout.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 */\n\nimport Grid from '@material-ui/core/Grid';\nimport { makeStyles, Theme } from '@material-ui/core/styles';\nimport { EntityContentLayoutProps } from '@backstage/plugin-catalog-react/alpha';\nimport { EntitySwitch } from '../components/EntitySwitch';\nimport {\n EntityOrphanWarning,\n isOrphan,\n} from '../components/EntityOrphanWarning';\nimport {\n EntityRelationWarning,\n hasRelationWarnings,\n} from '../components/EntityRelationWarning';\nimport {\n EntityProcessingErrorsPanel,\n hasCatalogProcessingErrors,\n} from '../components/EntityProcessingErrorsPanel';\nimport { HorizontalScrollGrid } from '@backstage/core-components';\n\nconst useStyles = makeStyles<\n Theme,\n { infoCards: boolean; summaryCards: boolean; contentCards: boolean }\n>(theme => ({\n root: {\n display: 'flex',\n flexFlow: 'column nowrap',\n gap: theme.spacing(3),\n },\n mainContent: {\n display: 'flex',\n flexFlow: 'column',\n gap: theme.spacing(3),\n alignItems: 'stretch',\n minWidth: 0,\n },\n infoArea: {\n display: 'flex',\n flexFlow: 'column nowrap',\n alignItems: 'flex-start',\n gap: theme.spacing(3),\n minWidth: 0,\n '& > *': {\n flexShrink: 0,\n flexGrow: 0,\n },\n },\n summaryArea: {\n minWidth: 0,\n margin: theme.spacing(1.5), // To counteract MUI negative grid margin\n },\n summaryCard: {\n flex: '0 0 auto',\n '& + &': {\n marginLeft: theme.spacing(3),\n },\n },\n contentArea: {\n display: 'flex',\n flexFlow: 'column',\n gap: theme.spacing(3),\n alignItems: 'stretch',\n minWidth: 0,\n },\n [theme.breakpoints.up('md')]: {\n root: {\n display: 'grid',\n gap: theme.spacing(3),\n gridTemplateAreas: ({ summaryCards }) => `\n \"${summaryCards ? 'summary' : 'content'} info\"\n \"content info\"\n `,\n gridTemplateColumns: ({ infoCards }) => (infoCards ? '2fr 1fr' : '1fr'),\n alignItems: 'start',\n },\n mainContent: {\n display: 'contents',\n },\n contentArea: {\n gridArea: 'content',\n },\n summaryArea: {\n gridArea: 'summary',\n marginBottom: theme.spacing(3),\n },\n infoArea: {\n gridArea: 'info',\n position: 'sticky',\n top: theme.spacing(3),\n // this is a little unfortunate, but it's required to make the info cards scrollable\n // in a fixed container of the full height when it's stuck.\n // 100% doesn't work as that's the height of the entire layout, which is what powers the card scrolling.\n maxHeight: '100vh',\n overflowY: 'auto',\n alignSelf: 'start',\n alignItems: 'stretch',\n // Hide the scrollbar for the inner info cards\n // kind of an accessibility nightmare, but we see.\n scrollbarWidth: 'none',\n msOverflowStyle: 'none',\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n },\n },\n}));\n\nconst entityWarningContent = (\n <>\n <EntitySwitch>\n <EntitySwitch.Case if={isOrphan}>\n <Grid item xs={12}>\n <EntityOrphanWarning />\n </Grid>\n </EntitySwitch.Case>\n </EntitySwitch>\n\n <EntitySwitch>\n <EntitySwitch.Case if={hasRelationWarnings}>\n <Grid item xs={12}>\n <EntityRelationWarning />\n </Grid>\n </EntitySwitch.Case>\n </EntitySwitch>\n\n <EntitySwitch>\n <EntitySwitch.Case if={hasCatalogProcessingErrors}>\n <Grid item xs={12}>\n <EntityProcessingErrorsPanel />\n </Grid>\n </EntitySwitch.Case>\n </EntitySwitch>\n </>\n);\n\nexport function DefaultEntityContentLayout(props: EntityContentLayoutProps) {\n const { cards } = props;\n\n const infoCards = cards.filter(card => card.type === 'info');\n const summaryCards = cards.filter(card => card.type === 'summary');\n const contentCards = cards.filter(\n card => !card.type || card.type === 'content',\n );\n\n const classes = useStyles({\n infoCards: !!infoCards.length,\n summaryCards: !!summaryCards.length,\n contentCards: !!contentCards.length,\n });\n\n return (\n <>\n {entityWarningContent}\n <div className={classes.root}>\n {infoCards.length > 0 ? (\n <div className={classes.infoArea}>\n {infoCards.map(card => card.element)}\n </div>\n ) : null}\n <div className={classes.mainContent}>\n {summaryCards.length > 0 ? (\n <div className={classes.summaryArea}>\n <HorizontalScrollGrid scrollStep={400} scrollSpeed={100}>\n {summaryCards.map(card => (\n <div className={classes.summaryCard}>{card.element}</div>\n ))}\n </HorizontalScrollGrid>\n </div>\n ) : null}\n {contentCards.length > 0 ? (\n <div className={classes.contentArea}>\n {contentCards.map(card => card.element)}\n </div>\n ) : null}\n </div>\n </div>\n </>\n );\n}\n"],"names":[],"mappings":"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"}
|
package/dist/alpha/apis.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { discoveryApiRef, fetchApiRef, storageApiRef } from '@backstage/core-plugin-api';
|
|
2
2
|
import { CatalogClient } from '@backstage/catalog-client';
|
|
3
3
|
import { ApiBlueprint } from '@backstage/frontend-plugin-api';
|
|
4
4
|
import { catalogApiRef, starredEntitiesApiRef, entityPresentationApiRef } from '@backstage/plugin-catalog-react';
|
|
@@ -6,36 +6,30 @@ import { DefaultEntityPresentationApi } from '../apis/EntityPresentationApi/Defa
|
|
|
6
6
|
import { DefaultStarredEntitiesApi } from '../apis/StarredEntitiesApi/DefaultStarredEntitiesApi.esm.js';
|
|
7
7
|
|
|
8
8
|
const catalogApi = ApiBlueprint.make({
|
|
9
|
-
params: {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
})
|
|
18
|
-
}
|
|
9
|
+
params: (defineParams) => defineParams({
|
|
10
|
+
api: catalogApiRef,
|
|
11
|
+
deps: {
|
|
12
|
+
discoveryApi: discoveryApiRef,
|
|
13
|
+
fetchApi: fetchApiRef
|
|
14
|
+
},
|
|
15
|
+
factory: ({ discoveryApi, fetchApi }) => new CatalogClient({ discoveryApi, fetchApi })
|
|
16
|
+
})
|
|
19
17
|
});
|
|
20
18
|
const catalogStarredEntitiesApi = ApiBlueprint.make({
|
|
21
19
|
name: "starred-entities",
|
|
22
|
-
params: {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
})
|
|
28
|
-
}
|
|
20
|
+
params: (defineParams) => defineParams({
|
|
21
|
+
api: starredEntitiesApiRef,
|
|
22
|
+
deps: { storageApi: storageApiRef },
|
|
23
|
+
factory: ({ storageApi }) => new DefaultStarredEntitiesApi({ storageApi })
|
|
24
|
+
})
|
|
29
25
|
});
|
|
30
26
|
const entityPresentationApi = ApiBlueprint.make({
|
|
31
27
|
name: "entity-presentation",
|
|
32
|
-
params: {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
})
|
|
38
|
-
}
|
|
28
|
+
params: (defineParams) => defineParams({
|
|
29
|
+
api: entityPresentationApiRef,
|
|
30
|
+
deps: { catalogApiImp: catalogApiRef },
|
|
31
|
+
factory: ({ catalogApiImp }) => DefaultEntityPresentationApi.create({ catalogApi: catalogApiImp })
|
|
32
|
+
})
|
|
39
33
|
});
|
|
40
34
|
var apis = [catalogApi, catalogStarredEntitiesApi, entityPresentationApi];
|
|
41
35
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apis.esm.js","sources":["../../src/alpha/apis.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 */\n\nimport {\n
|
|
1
|
+
{"version":3,"file":"apis.esm.js","sources":["../../src/alpha/apis.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 */\n\nimport {\n discoveryApiRef,\n fetchApiRef,\n storageApiRef,\n} from '@backstage/core-plugin-api';\nimport { CatalogClient } from '@backstage/catalog-client';\nimport { ApiBlueprint } from '@backstage/frontend-plugin-api';\nimport {\n catalogApiRef,\n entityPresentationApiRef,\n starredEntitiesApiRef,\n} from '@backstage/plugin-catalog-react';\nimport {\n DefaultEntityPresentationApi,\n DefaultStarredEntitiesApi,\n} from '../apis';\n\nexport const catalogApi = ApiBlueprint.make({\n params: defineParams =>\n defineParams({\n api: catalogApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n fetchApi: fetchApiRef,\n },\n factory: ({ discoveryApi, fetchApi }) =>\n new CatalogClient({ discoveryApi, fetchApi }),\n }),\n});\n\nexport const catalogStarredEntitiesApi = ApiBlueprint.make({\n name: 'starred-entities',\n params: defineParams =>\n defineParams({\n api: starredEntitiesApiRef,\n deps: { storageApi: storageApiRef },\n factory: ({ storageApi }) =>\n new DefaultStarredEntitiesApi({ storageApi }),\n }),\n});\n\nexport const entityPresentationApi = ApiBlueprint.make({\n name: 'entity-presentation',\n params: defineParams =>\n defineParams({\n api: entityPresentationApiRef,\n deps: { catalogApiImp: catalogApiRef },\n factory: ({ catalogApiImp }) =>\n DefaultEntityPresentationApi.create({ catalogApi: catalogApiImp }),\n }),\n});\n\nexport default [catalogApi, catalogStarredEntitiesApi, entityPresentationApi];\n"],"names":[],"mappings":";;;;;;;AAiCa,MAAA,UAAA,GAAa,aAAa,IAAK,CAAA;AAAA,EAC1C,MAAA,EAAQ,kBACN,YAAa,CAAA;AAAA,IACX,GAAK,EAAA,aAAA;AAAA,IACL,IAAM,EAAA;AAAA,MACJ,YAAc,EAAA,eAAA;AAAA,MACd,QAAU,EAAA;AAAA,KACZ;AAAA,IACA,OAAA,EAAS,CAAC,EAAE,YAAc,EAAA,QAAA,EACxB,KAAA,IAAI,aAAc,CAAA,EAAE,YAAc,EAAA,QAAA,EAAU;AAAA,GAC/C;AACL,CAAC;AAEY,MAAA,yBAAA,GAA4B,aAAa,IAAK,CAAA;AAAA,EACzD,IAAM,EAAA,kBAAA;AAAA,EACN,MAAA,EAAQ,kBACN,YAAa,CAAA;AAAA,IACX,GAAK,EAAA,qBAAA;AAAA,IACL,IAAA,EAAM,EAAE,UAAA,EAAY,aAAc,EAAA;AAAA,IAClC,OAAA,EAAS,CAAC,EAAE,UAAA,OACV,IAAI,yBAAA,CAA0B,EAAE,UAAA,EAAY;AAAA,GAC/C;AACL,CAAC;AAEY,MAAA,qBAAA,GAAwB,aAAa,IAAK,CAAA;AAAA,EACrD,IAAM,EAAA,qBAAA;AAAA,EACN,MAAA,EAAQ,kBACN,YAAa,CAAA;AAAA,IACX,GAAK,EAAA,wBAAA;AAAA,IACL,IAAA,EAAM,EAAE,aAAA,EAAe,aAAc,EAAA;AAAA,IACrC,OAAA,EAAS,CAAC,EAAE,aAAc,EAAA,KACxB,6BAA6B,MAAO,CAAA,EAAE,UAAY,EAAA,aAAA,EAAe;AAAA,GACpE;AACL,CAAC;AAED,WAAe,CAAC,UAAY,EAAA,yBAAA,EAA2B,qBAAqB,CAAA;;;;"}
|
|
@@ -22,9 +22,9 @@ const catalogOverviewEntityContent = EntityContentBlueprint.makeWithOverrides({
|
|
|
22
22
|
},
|
|
23
23
|
factory: (originalFactory, { node, inputs }) => {
|
|
24
24
|
return originalFactory({
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
path: "/",
|
|
26
|
+
title: "Overview",
|
|
27
|
+
group: "overview",
|
|
28
28
|
loader: async () => {
|
|
29
29
|
const LazyDefaultLayoutComponent = lazy(
|
|
30
30
|
() => import('./DefaultEntityContentLayout.esm.js').then((m) => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entityContents.esm.js","sources":["../../src/alpha/entityContents.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 */\n\nimport { lazy as reactLazy } from 'react';\nimport {\n coreExtensionData,\n createExtensionInput,\n ExtensionBoundary,\n} from '@backstage/frontend-plugin-api';\nimport {\n EntityCardBlueprint,\n EntityContentBlueprint,\n EntityContentLayoutBlueprint,\n EntityContentLayoutProps,\n} from '@backstage/plugin-catalog-react/alpha';\nimport { buildFilterFn } from './filter/FilterWrapper';\nimport { useEntity } from '@backstage/plugin-catalog-react';\n\nexport const catalogOverviewEntityContent =\n EntityContentBlueprint.makeWithOverrides({\n name: 'overview',\n inputs: {\n layouts: createExtensionInput([\n EntityContentLayoutBlueprint.dataRefs.filterFunction.optional(),\n EntityContentLayoutBlueprint.dataRefs.filterExpression.optional(),\n EntityContentLayoutBlueprint.dataRefs.component,\n ]),\n cards: createExtensionInput([\n coreExtensionData.reactElement,\n EntityContentBlueprint.dataRefs.filterFunction.optional(),\n EntityContentBlueprint.dataRefs.filterExpression.optional(),\n EntityCardBlueprint.dataRefs.type.optional(),\n ]),\n },\n factory: (originalFactory, { node, inputs }) => {\n return originalFactory({\n
|
|
1
|
+
{"version":3,"file":"entityContents.esm.js","sources":["../../src/alpha/entityContents.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 */\n\nimport { lazy as reactLazy } from 'react';\nimport {\n coreExtensionData,\n createExtensionInput,\n ExtensionBoundary,\n} from '@backstage/frontend-plugin-api';\nimport {\n EntityCardBlueprint,\n EntityContentBlueprint,\n EntityContentLayoutBlueprint,\n EntityContentLayoutProps,\n} from '@backstage/plugin-catalog-react/alpha';\nimport { buildFilterFn } from './filter/FilterWrapper';\nimport { useEntity } from '@backstage/plugin-catalog-react';\n\nexport const catalogOverviewEntityContent =\n EntityContentBlueprint.makeWithOverrides({\n name: 'overview',\n inputs: {\n layouts: createExtensionInput([\n EntityContentLayoutBlueprint.dataRefs.filterFunction.optional(),\n EntityContentLayoutBlueprint.dataRefs.filterExpression.optional(),\n EntityContentLayoutBlueprint.dataRefs.component,\n ]),\n cards: createExtensionInput([\n coreExtensionData.reactElement,\n EntityContentBlueprint.dataRefs.filterFunction.optional(),\n EntityContentBlueprint.dataRefs.filterExpression.optional(),\n EntityCardBlueprint.dataRefs.type.optional(),\n ]),\n },\n factory: (originalFactory, { node, inputs }) => {\n return originalFactory({\n path: '/',\n title: 'Overview',\n group: 'overview',\n loader: async () => {\n const LazyDefaultLayoutComponent = reactLazy(() =>\n import('./DefaultEntityContentLayout').then(m => ({\n default: m.DefaultEntityContentLayout,\n })),\n );\n\n const DefaultLayoutComponent = (props: EntityContentLayoutProps) => {\n return (\n <ExtensionBoundary node={node}>\n <LazyDefaultLayoutComponent {...props} />\n </ExtensionBoundary>\n );\n };\n\n const layouts = [\n ...inputs.layouts.map(layout => ({\n filter: buildFilterFn(\n layout.get(\n EntityContentLayoutBlueprint.dataRefs.filterFunction,\n ),\n layout.get(\n EntityContentLayoutBlueprint.dataRefs.filterExpression,\n ),\n ),\n Component: layout.get(\n EntityContentLayoutBlueprint.dataRefs.component,\n ),\n })),\n {\n filter: buildFilterFn(),\n Component: DefaultLayoutComponent,\n },\n ];\n\n const cards = inputs.cards.map(card => ({\n element: card.get(coreExtensionData.reactElement),\n type: card.get(EntityCardBlueprint.dataRefs.type),\n filter: buildFilterFn(\n card.get(EntityContentBlueprint.dataRefs.filterFunction),\n card.get(EntityContentBlueprint.dataRefs.filterExpression),\n ),\n }));\n\n const Component = () => {\n const { entity } = useEntity();\n\n // Use the first layout that matches the entity filter\n const layout = layouts.find(l => l.filter(entity));\n if (!layout) {\n throw new Error('No layout found for entity'); // Shouldn't be able to happen\n }\n\n return (\n <layout.Component\n cards={cards.filter(card => card.filter(entity))}\n />\n );\n };\n\n return <Component />;\n },\n });\n },\n });\n\nexport default [catalogOverviewEntityContent];\n"],"names":["reactLazy"],"mappings":"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"}
|
package/dist/alpha/pages.esm.js
CHANGED
|
@@ -25,7 +25,7 @@ const catalogPage = PageBlueprint.makeWithOverrides({
|
|
|
25
25
|
},
|
|
26
26
|
factory(originalFactory, { inputs, config }) {
|
|
27
27
|
return originalFactory({
|
|
28
|
-
|
|
28
|
+
path: "/catalog",
|
|
29
29
|
routeRef: convertLegacyRouteRef(rootRouteRef),
|
|
30
30
|
loader: async () => {
|
|
31
31
|
const { BaseCatalogPage } = await import('../components/CatalogPage/index.esm.js');
|
|
@@ -73,7 +73,7 @@ const catalogEntityPage = PageBlueprint.makeWithOverrides({
|
|
|
73
73
|
},
|
|
74
74
|
factory(originalFactory, { config, inputs }) {
|
|
75
75
|
return originalFactory({
|
|
76
|
-
|
|
76
|
+
path: "/catalog/:namespace/:kind/:name",
|
|
77
77
|
routeRef: convertLegacyRouteRef(entityRouteRef),
|
|
78
78
|
loader: async () => {
|
|
79
79
|
const { EntityLayout } = await import('./components/EntityLayout/index.esm.js');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages.esm.js","sources":["../../src/alpha/pages.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 */\n\nimport {\n compatWrapper,\n convertLegacyRouteRef,\n} from '@backstage/core-compat-api';\nimport {\n coreExtensionData,\n createExtensionInput,\n PageBlueprint,\n} from '@backstage/frontend-plugin-api';\nimport {\n AsyncEntityProvider,\n entityRouteRef,\n} from '@backstage/plugin-catalog-react';\nimport {\n EntityHeaderBlueprint,\n EntityContentBlueprint,\n defaultEntityContentGroups,\n EntityContextMenuItemBlueprint,\n} from '@backstage/plugin-catalog-react/alpha';\nimport { rootRouteRef } from '../routes';\nimport { useEntityFromUrl } from '../components/CatalogEntityPage/useEntityFromUrl';\nimport { buildFilterFn } from './filter/FilterWrapper';\n\nexport const catalogPage = PageBlueprint.makeWithOverrides({\n inputs: {\n filters: createExtensionInput([coreExtensionData.reactElement]),\n },\n config: {\n schema: {\n pagination: z =>\n z\n .union([\n z.boolean(),\n z.object({\n mode: z.enum(['cursor', 'offset']),\n limit: z.number().optional(),\n offset: z.number().optional(),\n }),\n ])\n .default(true),\n },\n },\n factory(originalFactory, { inputs, config }) {\n return originalFactory({\n defaultPath: '/catalog',\n routeRef: convertLegacyRouteRef(rootRouteRef),\n loader: async () => {\n const { BaseCatalogPage } = await import('../components/CatalogPage');\n const filters = inputs.filters.map(filter =>\n filter.get(coreExtensionData.reactElement),\n );\n return compatWrapper(\n <BaseCatalogPage\n filters={<>{filters}</>}\n pagination={config.pagination}\n />,\n );\n },\n });\n },\n});\n\nexport const catalogEntityPage = PageBlueprint.makeWithOverrides({\n name: 'entity',\n inputs: {\n headers: createExtensionInput([\n EntityHeaderBlueprint.dataRefs.element.optional(),\n EntityHeaderBlueprint.dataRefs.filterFunction.optional(),\n ]),\n contents: createExtensionInput([\n coreExtensionData.reactElement,\n coreExtensionData.routePath,\n coreExtensionData.routeRef.optional(),\n EntityContentBlueprint.dataRefs.title,\n EntityContentBlueprint.dataRefs.filterFunction.optional(),\n EntityContentBlueprint.dataRefs.filterExpression.optional(),\n EntityContentBlueprint.dataRefs.group.optional(),\n ]),\n contextMenuItems: createExtensionInput([\n coreExtensionData.reactElement,\n EntityContextMenuItemBlueprint.dataRefs.filterFunction.optional(),\n ]),\n },\n config: {\n schema: {\n groups: z =>\n z\n .array(z.record(z.string(), z.object({ title: z.string() })))\n .optional(),\n },\n },\n factory(originalFactory, { config, inputs }) {\n return originalFactory({\n defaultPath: '/catalog/:namespace/:kind/:name',\n routeRef: convertLegacyRouteRef(entityRouteRef),\n loader: async () => {\n const { EntityLayout } = await import('./components/EntityLayout');\n\n const menuItems = inputs.contextMenuItems.map(item => ({\n element: item.get(coreExtensionData.reactElement),\n filter:\n item.get(EntityContextMenuItemBlueprint.dataRefs.filterFunction) ??\n (() => true),\n }));\n\n type Groups = Record<\n string,\n { title: string; items: Array<(typeof inputs.contents)[0]> }\n >;\n\n // Get available headers, sorted by if they have a filter function or not.\n // TODO(blam): we should really have priority or some specificity here which can be used to sort the headers.\n // That can be done with embedding the priority in the dataRef alongside the filter function.\n const headers = inputs.headers\n .map(header => ({\n element: header.get(EntityHeaderBlueprint.dataRefs.element),\n filter: header.get(EntityHeaderBlueprint.dataRefs.filterFunction),\n }))\n .sort((a, b) => {\n if (a.filter && !b.filter) return -1;\n if (!a.filter && b.filter) return 1;\n return 0;\n });\n\n let groups = Object.entries(defaultEntityContentGroups).reduce<Groups>(\n (rest, group) => {\n const [groupId, groupValue] = group;\n return {\n ...rest,\n [groupId]: { title: groupValue, items: [] },\n };\n },\n {},\n );\n\n // config groups override default groups\n if (config.groups) {\n groups = config.groups.reduce<Groups>((rest, group) => {\n const [groupId, groupValue] = Object.entries(group)[0];\n return {\n ...rest,\n [groupId]: { title: groupValue.title, items: [] },\n };\n }, {});\n }\n\n for (const output of inputs.contents) {\n const itemId = output.node.spec.id;\n const itemTitle = output.get(EntityContentBlueprint.dataRefs.title);\n const itemGroup = output.get(EntityContentBlueprint.dataRefs.group);\n const group = itemGroup && groups[itemGroup];\n if (!group) {\n groups[itemId] = { title: itemTitle, items: [output] };\n continue;\n }\n group.items.push(output);\n }\n\n const Component = () => {\n const entityFromUrl = useEntityFromUrl();\n const { entity } = entityFromUrl;\n const filteredMenuItems = entity\n ? menuItems.filter(i => i.filter(entity)).map(i => i.element)\n : [];\n\n const header = headers.find(\n h => !h.filter || h.filter(entity!),\n )?.element;\n\n return (\n <AsyncEntityProvider {...entityFromUrl}>\n <EntityLayout\n header={header}\n contextMenuItems={filteredMenuItems}\n >\n {Object.values(groups).flatMap(({ title, items }) =>\n items.map(output => (\n <EntityLayout.Route\n group={title}\n key={output.get(coreExtensionData.routePath)}\n path={output.get(coreExtensionData.routePath)}\n title={output.get(EntityContentBlueprint.dataRefs.title)}\n if={buildFilterFn(\n output.get(\n EntityContentBlueprint.dataRefs.filterFunction,\n ),\n output.get(\n EntityContentBlueprint.dataRefs.filterExpression,\n ),\n )}\n >\n {output.get(coreExtensionData.reactElement)}\n </EntityLayout.Route>\n )),\n )}\n </EntityLayout>\n </AsyncEntityProvider>\n );\n };\n\n return compatWrapper(<Component />);\n },\n });\n },\n});\n\nexport default [catalogPage, catalogEntityPage];\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pages.esm.js","sources":["../../src/alpha/pages.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 */\n\nimport {\n compatWrapper,\n convertLegacyRouteRef,\n} from '@backstage/core-compat-api';\nimport {\n coreExtensionData,\n createExtensionInput,\n PageBlueprint,\n} from '@backstage/frontend-plugin-api';\nimport {\n AsyncEntityProvider,\n entityRouteRef,\n} from '@backstage/plugin-catalog-react';\nimport {\n EntityHeaderBlueprint,\n EntityContentBlueprint,\n defaultEntityContentGroups,\n EntityContextMenuItemBlueprint,\n} from '@backstage/plugin-catalog-react/alpha';\nimport { rootRouteRef } from '../routes';\nimport { useEntityFromUrl } from '../components/CatalogEntityPage/useEntityFromUrl';\nimport { buildFilterFn } from './filter/FilterWrapper';\n\nexport const catalogPage = PageBlueprint.makeWithOverrides({\n inputs: {\n filters: createExtensionInput([coreExtensionData.reactElement]),\n },\n config: {\n schema: {\n pagination: z =>\n z\n .union([\n z.boolean(),\n z.object({\n mode: z.enum(['cursor', 'offset']),\n limit: z.number().optional(),\n offset: z.number().optional(),\n }),\n ])\n .default(true),\n },\n },\n factory(originalFactory, { inputs, config }) {\n return originalFactory({\n path: '/catalog',\n routeRef: convertLegacyRouteRef(rootRouteRef),\n loader: async () => {\n const { BaseCatalogPage } = await import('../components/CatalogPage');\n const filters = inputs.filters.map(filter =>\n filter.get(coreExtensionData.reactElement),\n );\n return compatWrapper(\n <BaseCatalogPage\n filters={<>{filters}</>}\n pagination={config.pagination}\n />,\n );\n },\n });\n },\n});\n\nexport const catalogEntityPage = PageBlueprint.makeWithOverrides({\n name: 'entity',\n inputs: {\n headers: createExtensionInput([\n EntityHeaderBlueprint.dataRefs.element.optional(),\n EntityHeaderBlueprint.dataRefs.filterFunction.optional(),\n ]),\n contents: createExtensionInput([\n coreExtensionData.reactElement,\n coreExtensionData.routePath,\n coreExtensionData.routeRef.optional(),\n EntityContentBlueprint.dataRefs.title,\n EntityContentBlueprint.dataRefs.filterFunction.optional(),\n EntityContentBlueprint.dataRefs.filterExpression.optional(),\n EntityContentBlueprint.dataRefs.group.optional(),\n ]),\n contextMenuItems: createExtensionInput([\n coreExtensionData.reactElement,\n EntityContextMenuItemBlueprint.dataRefs.filterFunction.optional(),\n ]),\n },\n config: {\n schema: {\n groups: z =>\n z\n .array(z.record(z.string(), z.object({ title: z.string() })))\n .optional(),\n },\n },\n factory(originalFactory, { config, inputs }) {\n return originalFactory({\n path: '/catalog/:namespace/:kind/:name',\n routeRef: convertLegacyRouteRef(entityRouteRef),\n loader: async () => {\n const { EntityLayout } = await import('./components/EntityLayout');\n\n const menuItems = inputs.contextMenuItems.map(item => ({\n element: item.get(coreExtensionData.reactElement),\n filter:\n item.get(EntityContextMenuItemBlueprint.dataRefs.filterFunction) ??\n (() => true),\n }));\n\n type Groups = Record<\n string,\n { title: string; items: Array<(typeof inputs.contents)[0]> }\n >;\n\n // Get available headers, sorted by if they have a filter function or not.\n // TODO(blam): we should really have priority or some specificity here which can be used to sort the headers.\n // That can be done with embedding the priority in the dataRef alongside the filter function.\n const headers = inputs.headers\n .map(header => ({\n element: header.get(EntityHeaderBlueprint.dataRefs.element),\n filter: header.get(EntityHeaderBlueprint.dataRefs.filterFunction),\n }))\n .sort((a, b) => {\n if (a.filter && !b.filter) return -1;\n if (!a.filter && b.filter) return 1;\n return 0;\n });\n\n let groups = Object.entries(defaultEntityContentGroups).reduce<Groups>(\n (rest, group) => {\n const [groupId, groupValue] = group;\n return {\n ...rest,\n [groupId]: { title: groupValue, items: [] },\n };\n },\n {},\n );\n\n // config groups override default groups\n if (config.groups) {\n groups = config.groups.reduce<Groups>((rest, group) => {\n const [groupId, groupValue] = Object.entries(group)[0];\n return {\n ...rest,\n [groupId]: { title: groupValue.title, items: [] },\n };\n }, {});\n }\n\n for (const output of inputs.contents) {\n const itemId = output.node.spec.id;\n const itemTitle = output.get(EntityContentBlueprint.dataRefs.title);\n const itemGroup = output.get(EntityContentBlueprint.dataRefs.group);\n const group = itemGroup && groups[itemGroup];\n if (!group) {\n groups[itemId] = { title: itemTitle, items: [output] };\n continue;\n }\n group.items.push(output);\n }\n\n const Component = () => {\n const entityFromUrl = useEntityFromUrl();\n const { entity } = entityFromUrl;\n const filteredMenuItems = entity\n ? menuItems.filter(i => i.filter(entity)).map(i => i.element)\n : [];\n\n const header = headers.find(\n h => !h.filter || h.filter(entity!),\n )?.element;\n\n return (\n <AsyncEntityProvider {...entityFromUrl}>\n <EntityLayout\n header={header}\n contextMenuItems={filteredMenuItems}\n >\n {Object.values(groups).flatMap(({ title, items }) =>\n items.map(output => (\n <EntityLayout.Route\n group={title}\n key={output.get(coreExtensionData.routePath)}\n path={output.get(coreExtensionData.routePath)}\n title={output.get(EntityContentBlueprint.dataRefs.title)}\n if={buildFilterFn(\n output.get(\n EntityContentBlueprint.dataRefs.filterFunction,\n ),\n output.get(\n EntityContentBlueprint.dataRefs.filterExpression,\n ),\n )}\n >\n {output.get(coreExtensionData.reactElement)}\n </EntityLayout.Route>\n )),\n )}\n </EntityLayout>\n </AsyncEntityProvider>\n );\n };\n\n return compatWrapper(<Component />);\n },\n });\n },\n});\n\nexport default [catalogPage, catalogEntityPage];\n"],"names":[],"mappings":"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"}
|
package/dist/alpha.d.ts
CHANGED
|
@@ -33,33 +33,27 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
|
|
|
33
33
|
name: undefined;
|
|
34
34
|
config: {};
|
|
35
35
|
configInput: {};
|
|
36
|
-
output: _backstage_frontend_plugin_api.
|
|
36
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.AnyApiFactory, "core.api.factory", {}>;
|
|
37
37
|
inputs: {};
|
|
38
|
-
params: {
|
|
39
|
-
factory: _backstage_frontend_plugin_api.AnyApiFactory;
|
|
40
|
-
};
|
|
38
|
+
params: <TApi, TImpl extends TApi, TDeps extends { [name in string]: unknown; }>(params: _backstage_frontend_plugin_api.ApiFactory<TApi, TImpl, TDeps>) => _backstage_frontend_plugin_api.ExtensionBlueprintParams<_backstage_frontend_plugin_api.AnyApiFactory>;
|
|
41
39
|
}>;
|
|
42
40
|
"api:catalog/entity-presentation": _backstage_frontend_plugin_api.ExtensionDefinition<{
|
|
43
41
|
kind: "api";
|
|
44
42
|
name: "entity-presentation";
|
|
45
43
|
config: {};
|
|
46
44
|
configInput: {};
|
|
47
|
-
output: _backstage_frontend_plugin_api.
|
|
45
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.AnyApiFactory, "core.api.factory", {}>;
|
|
48
46
|
inputs: {};
|
|
49
|
-
params: {
|
|
50
|
-
factory: _backstage_frontend_plugin_api.AnyApiFactory;
|
|
51
|
-
};
|
|
47
|
+
params: <TApi, TImpl extends TApi, TDeps extends { [name in string]: unknown; }>(params: _backstage_frontend_plugin_api.ApiFactory<TApi, TImpl, TDeps>) => _backstage_frontend_plugin_api.ExtensionBlueprintParams<_backstage_frontend_plugin_api.AnyApiFactory>;
|
|
52
48
|
}>;
|
|
53
49
|
"api:catalog/starred-entities": _backstage_frontend_plugin_api.ExtensionDefinition<{
|
|
54
50
|
kind: "api";
|
|
55
51
|
name: "starred-entities";
|
|
56
52
|
config: {};
|
|
57
53
|
configInput: {};
|
|
58
|
-
output: _backstage_frontend_plugin_api.
|
|
54
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.AnyApiFactory, "core.api.factory", {}>;
|
|
59
55
|
inputs: {};
|
|
60
|
-
params: {
|
|
61
|
-
factory: _backstage_frontend_plugin_api.AnyApiFactory;
|
|
62
|
-
};
|
|
56
|
+
params: <TApi, TImpl extends TApi, TDeps extends { [name in string]: unknown; }>(params: _backstage_frontend_plugin_api.ApiFactory<TApi, TImpl, TDeps>) => _backstage_frontend_plugin_api.ExtensionBlueprintParams<_backstage_frontend_plugin_api.AnyApiFactory>;
|
|
63
57
|
}>;
|
|
64
58
|
"catalog-filter:catalog/kind": _backstage_frontend_plugin_api.ExtensionDefinition<{
|
|
65
59
|
config: {
|
|
@@ -68,9 +62,9 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
|
|
|
68
62
|
configInput: {
|
|
69
63
|
initialFilter?: string | undefined;
|
|
70
64
|
};
|
|
71
|
-
output: _backstage_frontend_plugin_api.
|
|
65
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}>;
|
|
72
66
|
inputs: {
|
|
73
|
-
[x: string]: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.
|
|
67
|
+
[x: string]: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.ExtensionDataRef, {
|
|
74
68
|
optional: boolean;
|
|
75
69
|
singleton: boolean;
|
|
76
70
|
}>;
|
|
@@ -86,7 +80,7 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
|
|
|
86
80
|
name: "lifecycle";
|
|
87
81
|
config: {};
|
|
88
82
|
configInput: {};
|
|
89
|
-
output: _backstage_frontend_plugin_api.
|
|
83
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}>;
|
|
90
84
|
inputs: {};
|
|
91
85
|
params: {
|
|
92
86
|
loader: () => Promise<JSX.Element>;
|
|
@@ -99,9 +93,9 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
|
|
|
99
93
|
configInput: {
|
|
100
94
|
initialFilter?: "all" | "owned" | "starred" | undefined;
|
|
101
95
|
};
|
|
102
|
-
output: _backstage_frontend_plugin_api.
|
|
96
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}>;
|
|
103
97
|
inputs: {
|
|
104
|
-
[x: string]: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.
|
|
98
|
+
[x: string]: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.ExtensionDataRef, {
|
|
105
99
|
optional: boolean;
|
|
106
100
|
singleton: boolean;
|
|
107
101
|
}>;
|
|
@@ -119,9 +113,9 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
|
|
|
119
113
|
configInput: {
|
|
120
114
|
mode?: "all" | "owners-only" | undefined;
|
|
121
115
|
};
|
|
122
|
-
output: _backstage_frontend_plugin_api.
|
|
116
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}>;
|
|
123
117
|
inputs: {
|
|
124
|
-
[x: string]: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.
|
|
118
|
+
[x: string]: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.ExtensionDataRef, {
|
|
125
119
|
optional: boolean;
|
|
126
120
|
singleton: boolean;
|
|
127
121
|
}>;
|
|
@@ -137,7 +131,7 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
|
|
|
137
131
|
name: "namespace";
|
|
138
132
|
config: {};
|
|
139
133
|
configInput: {};
|
|
140
|
-
output: _backstage_frontend_plugin_api.
|
|
134
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}>;
|
|
141
135
|
inputs: {};
|
|
142
136
|
params: {
|
|
143
137
|
loader: () => Promise<JSX.Element>;
|
|
@@ -148,7 +142,7 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
|
|
|
148
142
|
name: "processing-status";
|
|
149
143
|
config: {};
|
|
150
144
|
configInput: {};
|
|
151
|
-
output: _backstage_frontend_plugin_api.
|
|
145
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}>;
|
|
152
146
|
inputs: {};
|
|
153
147
|
params: {
|
|
154
148
|
loader: () => Promise<JSX.Element>;
|
|
@@ -159,7 +153,7 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
|
|
|
159
153
|
name: "tag";
|
|
160
154
|
config: {};
|
|
161
155
|
configInput: {};
|
|
162
|
-
output: _backstage_frontend_plugin_api.
|
|
156
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}>;
|
|
163
157
|
inputs: {};
|
|
164
158
|
params: {
|
|
165
159
|
loader: () => Promise<JSX.Element>;
|
|
@@ -170,7 +164,7 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
|
|
|
170
164
|
name: "type";
|
|
171
165
|
config: {};
|
|
172
166
|
configInput: {};
|
|
173
|
-
output: _backstage_frontend_plugin_api.
|
|
167
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}>;
|
|
174
168
|
inputs: {};
|
|
175
169
|
params: {
|
|
176
170
|
loader: () => Promise<JSX.Element>;
|
|
@@ -185,11 +179,11 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
|
|
|
185
179
|
filter?: _backstage_plugin_catalog_react_alpha.EntityPredicate | undefined;
|
|
186
180
|
type?: "content" | "summary" | "info" | undefined;
|
|
187
181
|
};
|
|
188
|
-
output: _backstage_frontend_plugin_api.
|
|
182
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
|
|
189
183
|
optional: true;
|
|
190
|
-
}> | _backstage_frontend_plugin_api.
|
|
184
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "catalog.entity-filter-expression", {
|
|
191
185
|
optional: true;
|
|
192
|
-
}> | _backstage_frontend_plugin_api.
|
|
186
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_plugin_catalog_react_alpha.EntityCardType, "catalog.entity-card-type", {
|
|
193
187
|
optional: true;
|
|
194
188
|
}>;
|
|
195
189
|
inputs: {
|
|
@@ -221,11 +215,11 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
|
|
|
221
215
|
filter?: _backstage_plugin_catalog_react_alpha.EntityPredicate | undefined;
|
|
222
216
|
type?: "content" | "summary" | "info" | undefined;
|
|
223
217
|
};
|
|
224
|
-
output: _backstage_frontend_plugin_api.
|
|
218
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
|
|
225
219
|
optional: true;
|
|
226
|
-
}> | _backstage_frontend_plugin_api.
|
|
220
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "catalog.entity-filter-expression", {
|
|
227
221
|
optional: true;
|
|
228
|
-
}> | _backstage_frontend_plugin_api.
|
|
222
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_plugin_catalog_react_alpha.EntityCardType, "catalog.entity-card-type", {
|
|
229
223
|
optional: true;
|
|
230
224
|
}>;
|
|
231
225
|
inputs: {};
|
|
@@ -246,11 +240,11 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
|
|
|
246
240
|
filter?: _backstage_plugin_catalog_react_alpha.EntityPredicate | undefined;
|
|
247
241
|
type?: "content" | "summary" | "info" | undefined;
|
|
248
242
|
};
|
|
249
|
-
output: _backstage_frontend_plugin_api.
|
|
243
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
|
|
250
244
|
optional: true;
|
|
251
|
-
}> | _backstage_frontend_plugin_api.
|
|
245
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "catalog.entity-filter-expression", {
|
|
252
246
|
optional: true;
|
|
253
|
-
}> | _backstage_frontend_plugin_api.
|
|
247
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_plugin_catalog_react_alpha.EntityCardType, "catalog.entity-card-type", {
|
|
254
248
|
optional: true;
|
|
255
249
|
}>;
|
|
256
250
|
inputs: {};
|
|
@@ -271,11 +265,11 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
|
|
|
271
265
|
filter?: _backstage_plugin_catalog_react_alpha.EntityPredicate | undefined;
|
|
272
266
|
type?: "content" | "summary" | "info" | undefined;
|
|
273
267
|
};
|
|
274
|
-
output: _backstage_frontend_plugin_api.
|
|
268
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
|
|
275
269
|
optional: true;
|
|
276
|
-
}> | _backstage_frontend_plugin_api.
|
|
270
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "catalog.entity-filter-expression", {
|
|
277
271
|
optional: true;
|
|
278
|
-
}> | _backstage_frontend_plugin_api.
|
|
272
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_plugin_catalog_react_alpha.EntityCardType, "catalog.entity-card-type", {
|
|
279
273
|
optional: true;
|
|
280
274
|
}>;
|
|
281
275
|
inputs: {};
|
|
@@ -296,11 +290,11 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
|
|
|
296
290
|
filter?: _backstage_plugin_catalog_react_alpha.EntityPredicate | undefined;
|
|
297
291
|
type?: "content" | "summary" | "info" | undefined;
|
|
298
292
|
};
|
|
299
|
-
output: _backstage_frontend_plugin_api.
|
|
293
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
|
|
300
294
|
optional: true;
|
|
301
|
-
}> | _backstage_frontend_plugin_api.
|
|
295
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "catalog.entity-filter-expression", {
|
|
302
296
|
optional: true;
|
|
303
|
-
}> | _backstage_frontend_plugin_api.
|
|
297
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_plugin_catalog_react_alpha.EntityCardType, "catalog.entity-card-type", {
|
|
304
298
|
optional: true;
|
|
305
299
|
}>;
|
|
306
300
|
inputs: {};
|
|
@@ -321,11 +315,11 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
|
|
|
321
315
|
filter?: _backstage_plugin_catalog_react_alpha.EntityPredicate | undefined;
|
|
322
316
|
type?: "content" | "summary" | "info" | undefined;
|
|
323
317
|
};
|
|
324
|
-
output: _backstage_frontend_plugin_api.
|
|
318
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
|
|
325
319
|
optional: true;
|
|
326
|
-
}> | _backstage_frontend_plugin_api.
|
|
320
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "catalog.entity-filter-expression", {
|
|
327
321
|
optional: true;
|
|
328
|
-
}> | _backstage_frontend_plugin_api.
|
|
322
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_plugin_catalog_react_alpha.EntityCardType, "catalog.entity-card-type", {
|
|
329
323
|
optional: true;
|
|
330
324
|
}>;
|
|
331
325
|
inputs: {};
|
|
@@ -346,11 +340,11 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
|
|
|
346
340
|
filter?: _backstage_plugin_catalog_react_alpha.EntityPredicate | undefined;
|
|
347
341
|
type?: "content" | "summary" | "info" | undefined;
|
|
348
342
|
};
|
|
349
|
-
output: _backstage_frontend_plugin_api.
|
|
343
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
|
|
350
344
|
optional: true;
|
|
351
|
-
}> | _backstage_frontend_plugin_api.
|
|
345
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "catalog.entity-filter-expression", {
|
|
352
346
|
optional: true;
|
|
353
|
-
}> | _backstage_frontend_plugin_api.
|
|
347
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_plugin_catalog_react_alpha.EntityCardType, "catalog.entity-card-type", {
|
|
354
348
|
optional: true;
|
|
355
349
|
}>;
|
|
356
350
|
inputs: {};
|
|
@@ -371,11 +365,11 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
|
|
|
371
365
|
filter?: _backstage_plugin_catalog_react_alpha.EntityPredicate | undefined;
|
|
372
366
|
type?: "content" | "summary" | "info" | undefined;
|
|
373
367
|
};
|
|
374
|
-
output: _backstage_frontend_plugin_api.
|
|
368
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
|
|
375
369
|
optional: true;
|
|
376
|
-
}> | _backstage_frontend_plugin_api.
|
|
370
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "catalog.entity-filter-expression", {
|
|
377
371
|
optional: true;
|
|
378
|
-
}> | _backstage_frontend_plugin_api.
|
|
372
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_plugin_catalog_react_alpha.EntityCardType, "catalog.entity-card-type", {
|
|
379
373
|
optional: true;
|
|
380
374
|
}>;
|
|
381
375
|
inputs: {};
|
|
@@ -396,11 +390,11 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
|
|
|
396
390
|
filter?: _backstage_plugin_catalog_react_alpha.EntityPredicate | undefined;
|
|
397
391
|
type?: "content" | "summary" | "info" | undefined;
|
|
398
392
|
};
|
|
399
|
-
output: _backstage_frontend_plugin_api.
|
|
393
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
|
|
400
394
|
optional: true;
|
|
401
|
-
}> | _backstage_frontend_plugin_api.
|
|
395
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "catalog.entity-filter-expression", {
|
|
402
396
|
optional: true;
|
|
403
|
-
}> | _backstage_frontend_plugin_api.
|
|
397
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_plugin_catalog_react_alpha.EntityCardType, "catalog.entity-card-type", {
|
|
404
398
|
optional: true;
|
|
405
399
|
}>;
|
|
406
400
|
inputs: {};
|
|
@@ -421,11 +415,11 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
|
|
|
421
415
|
filter?: _backstage_plugin_catalog_react_alpha.EntityPredicate | undefined;
|
|
422
416
|
type?: "content" | "summary" | "info" | undefined;
|
|
423
417
|
};
|
|
424
|
-
output: _backstage_frontend_plugin_api.
|
|
418
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
|
|
425
419
|
optional: true;
|
|
426
|
-
}> | _backstage_frontend_plugin_api.
|
|
420
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "catalog.entity-filter-expression", {
|
|
427
421
|
optional: true;
|
|
428
|
-
}> | _backstage_frontend_plugin_api.
|
|
422
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_plugin_catalog_react_alpha.EntityCardType, "catalog.entity-card-type", {
|
|
429
423
|
optional: true;
|
|
430
424
|
}>;
|
|
431
425
|
inputs: {};
|
|
@@ -448,13 +442,13 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
|
|
|
448
442
|
path?: string | undefined;
|
|
449
443
|
group?: string | false | undefined;
|
|
450
444
|
};
|
|
451
|
-
output: _backstage_frontend_plugin_api.
|
|
445
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
|
|
452
446
|
optional: true;
|
|
453
|
-
}> | _backstage_frontend_plugin_api.
|
|
447
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
|
|
454
448
|
optional: true;
|
|
455
|
-
}> | _backstage_frontend_plugin_api.
|
|
449
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "catalog.entity-filter-expression", {
|
|
456
450
|
optional: true;
|
|
457
|
-
}> | _backstage_frontend_plugin_api.
|
|
451
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "catalog.entity-content-title", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "catalog.entity-content-group", {
|
|
458
452
|
optional: true;
|
|
459
453
|
}>;
|
|
460
454
|
inputs: {
|
|
@@ -480,10 +474,13 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
|
|
|
480
474
|
kind: "entity-content";
|
|
481
475
|
name: "overview";
|
|
482
476
|
params: {
|
|
477
|
+
defaultPath?: [Error: `Use the 'path' param instead`];
|
|
478
|
+
path: string;
|
|
479
|
+
defaultTitle?: [Error: `Use the 'title' param instead`];
|
|
480
|
+
title: string;
|
|
481
|
+
defaultGroup?: [Error: `Use the 'group' param instead`];
|
|
482
|
+
group?: keyof typeof _backstage_plugin_catalog_react_alpha.defaultEntityContentGroups | (string & {});
|
|
483
483
|
loader: () => Promise<JSX.Element>;
|
|
484
|
-
defaultPath: string;
|
|
485
|
-
defaultTitle: string;
|
|
486
|
-
defaultGroup?: keyof typeof _backstage_plugin_catalog_react_alpha.defaultEntityContentGroups | (string & {});
|
|
487
484
|
routeRef?: _backstage_frontend_plugin_api.RouteRef;
|
|
488
485
|
filter?: string | _backstage_plugin_catalog_react_alpha.EntityPredicate | ((entity: _backstage_catalog_model.Entity) => boolean);
|
|
489
486
|
};
|
|
@@ -497,7 +494,7 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
|
|
|
497
494
|
configInput: {
|
|
498
495
|
filter?: _backstage_plugin_catalog_react_alpha.EntityPredicate | undefined;
|
|
499
496
|
};
|
|
500
|
-
output: _backstage_frontend_plugin_api.
|
|
497
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
|
|
501
498
|
optional: true;
|
|
502
499
|
}>;
|
|
503
500
|
inputs: {};
|
|
@@ -512,7 +509,7 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
|
|
|
512
509
|
configInput: {
|
|
513
510
|
filter?: _backstage_plugin_catalog_react_alpha.EntityPredicate | undefined;
|
|
514
511
|
};
|
|
515
|
-
output: _backstage_frontend_plugin_api.
|
|
512
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
|
|
516
513
|
optional: true;
|
|
517
514
|
}>;
|
|
518
515
|
inputs: {};
|
|
@@ -527,7 +524,7 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
|
|
|
527
524
|
configInput: {
|
|
528
525
|
filter?: _backstage_plugin_catalog_react_alpha.EntityPredicate | undefined;
|
|
529
526
|
};
|
|
530
|
-
output: _backstage_frontend_plugin_api.
|
|
527
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
|
|
531
528
|
optional: true;
|
|
532
529
|
}>;
|
|
533
530
|
inputs: {};
|
|
@@ -546,11 +543,11 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
|
|
|
546
543
|
label?: string | undefined;
|
|
547
544
|
title?: string | undefined;
|
|
548
545
|
};
|
|
549
|
-
output: _backstage_frontend_plugin_api.
|
|
546
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
|
|
550
547
|
optional: true;
|
|
551
|
-
}> | _backstage_frontend_plugin_api.
|
|
548
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "catalog.entity-filter-expression", {
|
|
552
549
|
optional: true;
|
|
553
|
-
}> | _backstage_frontend_plugin_api.
|
|
550
|
+
}> | _backstage_frontend_plugin_api.ExtensionDataRef<() => _backstage_core_components.IconLinkVerticalProps, "entity-icon-link-props", {}>;
|
|
554
551
|
inputs: {};
|
|
555
552
|
params: {
|
|
556
553
|
useProps: () => Omit<_backstage_core_components.IconLinkVerticalProps, "color">;
|
|
@@ -562,7 +559,7 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
|
|
|
562
559
|
name: undefined;
|
|
563
560
|
config: {};
|
|
564
561
|
configInput: {};
|
|
565
|
-
output: _backstage_frontend_plugin_api.
|
|
562
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<{
|
|
566
563
|
title: string;
|
|
567
564
|
icon: _backstage_core_plugin_api.IconComponent;
|
|
568
565
|
routeRef: _backstage_frontend_plugin_api.RouteRef<undefined>;
|
|
@@ -593,7 +590,7 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
|
|
|
593
590
|
} & {
|
|
594
591
|
path?: string | undefined;
|
|
595
592
|
};
|
|
596
|
-
output: _backstage_frontend_plugin_api.
|
|
593
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
|
|
597
594
|
optional: true;
|
|
598
595
|
}>;
|
|
599
596
|
inputs: {
|
|
@@ -605,7 +602,8 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
|
|
|
605
602
|
kind: "page";
|
|
606
603
|
name: undefined;
|
|
607
604
|
params: {
|
|
608
|
-
defaultPath:
|
|
605
|
+
defaultPath?: [Error: `Use the 'path' param instead`];
|
|
606
|
+
path: string;
|
|
609
607
|
loader: () => Promise<JSX.Element>;
|
|
610
608
|
routeRef?: _backstage_frontend_plugin_api.RouteRef;
|
|
611
609
|
};
|
|
@@ -625,7 +623,7 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
|
|
|
625
623
|
} & {
|
|
626
624
|
path?: string | undefined;
|
|
627
625
|
};
|
|
628
|
-
output: _backstage_frontend_plugin_api.
|
|
626
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
|
|
629
627
|
optional: true;
|
|
630
628
|
}>;
|
|
631
629
|
inputs: {
|
|
@@ -659,7 +657,8 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
|
|
|
659
657
|
kind: "page";
|
|
660
658
|
name: "entity";
|
|
661
659
|
params: {
|
|
662
|
-
defaultPath:
|
|
660
|
+
defaultPath?: [Error: `Use the 'path' param instead`];
|
|
661
|
+
path: string;
|
|
663
662
|
loader: () => Promise<JSX.Element>;
|
|
664
663
|
routeRef?: _backstage_frontend_plugin_api.RouteRef;
|
|
665
664
|
};
|
|
@@ -673,7 +672,7 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
|
|
|
673
672
|
configInput: {
|
|
674
673
|
noTrack?: boolean | undefined;
|
|
675
674
|
};
|
|
676
|
-
output: _backstage_frontend_plugin_api.
|
|
675
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<{
|
|
677
676
|
predicate?: _backstage_plugin_search_react_alpha.SearchResultItemExtensionPredicate;
|
|
678
677
|
component: _backstage_plugin_search_react_alpha.SearchResultItemExtensionComponent;
|
|
679
678
|
}, "search.search-result-list-item.item", {}>;
|
package/dist/package.json.esm.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@backstage/plugin-catalog",
|
|
3
|
-
"version": "1.31.2-next.
|
|
3
|
+
"version": "1.31.2-next.2",
|
|
4
4
|
"description": "The Backstage plugin for browsing the Backstage catalog",
|
|
5
5
|
"backstage": {
|
|
6
6
|
"role": "frontend-plugin",
|
|
@@ -70,22 +70,22 @@
|
|
|
70
70
|
"test": "backstage-cli package test"
|
|
71
71
|
},
|
|
72
72
|
"dependencies": {
|
|
73
|
-
"@backstage/catalog-client": "1.
|
|
73
|
+
"@backstage/catalog-client": "1.11.0-next.0",
|
|
74
74
|
"@backstage/catalog-model": "1.7.5",
|
|
75
|
-
"@backstage/core-compat-api": "0.
|
|
76
|
-
"@backstage/core-components": "0.17.
|
|
75
|
+
"@backstage/core-compat-api": "0.5.0-next.2",
|
|
76
|
+
"@backstage/core-components": "0.17.5-next.1",
|
|
77
77
|
"@backstage/core-plugin-api": "1.10.9",
|
|
78
78
|
"@backstage/errors": "1.2.7",
|
|
79
|
-
"@backstage/frontend-plugin-api": "0.
|
|
79
|
+
"@backstage/frontend-plugin-api": "0.11.0-next.1",
|
|
80
80
|
"@backstage/integration-react": "1.2.9",
|
|
81
81
|
"@backstage/plugin-catalog-common": "1.1.5",
|
|
82
|
-
"@backstage/plugin-catalog-react": "1.
|
|
82
|
+
"@backstage/plugin-catalog-react": "1.20.0-next.2",
|
|
83
83
|
"@backstage/plugin-permission-react": "0.4.36",
|
|
84
|
-
"@backstage/plugin-scaffolder-common": "1.
|
|
84
|
+
"@backstage/plugin-scaffolder-common": "1.7.0-next.0",
|
|
85
85
|
"@backstage/plugin-search-common": "1.2.19",
|
|
86
|
-
"@backstage/plugin-search-react": "1.9.
|
|
86
|
+
"@backstage/plugin-search-react": "1.9.3-next.1",
|
|
87
87
|
"@backstage/plugin-techdocs-common": "0.1.1",
|
|
88
|
-
"@backstage/plugin-techdocs-react": "1.3.
|
|
88
|
+
"@backstage/plugin-techdocs-react": "1.3.2-next.0",
|
|
89
89
|
"@backstage/types": "1.2.1",
|
|
90
90
|
"@backstage/version-bridge": "1.0.11",
|
|
91
91
|
"@material-ui/core": "^4.12.2",
|
|
@@ -102,12 +102,12 @@
|
|
|
102
102
|
"zen-observable": "^0.10.0"
|
|
103
103
|
},
|
|
104
104
|
"devDependencies": {
|
|
105
|
-
"@backstage/cli": "0.
|
|
105
|
+
"@backstage/cli": "0.34.0-next.1",
|
|
106
106
|
"@backstage/core-app-api": "1.18.0",
|
|
107
|
-
"@backstage/dev-utils": "1.1.13-next.
|
|
108
|
-
"@backstage/frontend-test-utils": "0.3.5-next.
|
|
107
|
+
"@backstage/dev-utils": "1.1.13-next.1",
|
|
108
|
+
"@backstage/frontend-test-utils": "0.3.5-next.2",
|
|
109
109
|
"@backstage/plugin-permission-common": "0.9.1",
|
|
110
|
-
"@backstage/test-utils": "1.7.
|
|
110
|
+
"@backstage/test-utils": "1.7.11-next.0",
|
|
111
111
|
"@testing-library/dom": "^10.0.0",
|
|
112
112
|
"@testing-library/jest-dom": "^6.0.0",
|
|
113
113
|
"@testing-library/react": "^16.0.0",
|