@backstage/plugin-catalog 1.31.1-next.1 → 1.31.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +34 -0
- package/dist/alpha/entityCards.esm.js +14 -9
- package/dist/alpha/entityCards.esm.js.map +1 -1
- package/dist/alpha/pages.esm.js +22 -2
- package/dist/alpha/pages.esm.js.map +1 -1
- package/dist/alpha.d.ts +12 -0
- package/dist/package.json.esm.js +1 -1
- package/package.json +25 -25
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,39 @@
|
|
|
1
1
|
# @backstage/plugin-catalog
|
|
2
2
|
|
|
3
|
+
## 1.31.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 6991dab: Turn on `pagination` by default in new frontend system, and also make configurable
|
|
8
|
+
- 3ab9b96: Updated card extensions for the new frontend system to use the new entity predicates, and to not show the about card on User and Group pages.
|
|
9
|
+
- Updated dependencies
|
|
10
|
+
- @backstage/plugin-catalog-react@1.19.1
|
|
11
|
+
- @backstage/catalog-model@1.7.5
|
|
12
|
+
- @backstage/catalog-client@1.10.2
|
|
13
|
+
- @backstage/core-components@0.17.4
|
|
14
|
+
- @backstage/core-plugin-api@1.10.9
|
|
15
|
+
- @backstage/integration-react@1.2.9
|
|
16
|
+
- @backstage/plugin-scaffolder-common@1.6.0
|
|
17
|
+
- @backstage/core-compat-api@0.4.4
|
|
18
|
+
- @backstage/frontend-plugin-api@0.10.4
|
|
19
|
+
- @backstage/plugin-catalog-common@1.1.5
|
|
20
|
+
- @backstage/plugin-permission-react@0.4.36
|
|
21
|
+
- @backstage/plugin-search-common@1.2.19
|
|
22
|
+
- @backstage/plugin-search-react@1.9.2
|
|
23
|
+
- @backstage/plugin-techdocs-react@1.3.1
|
|
24
|
+
|
|
25
|
+
## 1.31.1-next.2
|
|
26
|
+
|
|
27
|
+
### Patch Changes
|
|
28
|
+
|
|
29
|
+
- Updated dependencies
|
|
30
|
+
- @backstage/core-components@0.17.4-next.2
|
|
31
|
+
- @backstage/plugin-scaffolder-common@1.6.0-next.1
|
|
32
|
+
- @backstage/core-compat-api@0.4.4-next.1
|
|
33
|
+
- @backstage/core-plugin-api@1.10.9-next.0
|
|
34
|
+
- @backstage/plugin-catalog-react@1.19.1-next.1
|
|
35
|
+
- @backstage/plugin-search-react@1.9.2-next.1
|
|
36
|
+
|
|
3
37
|
## 1.31.1-next.1
|
|
4
38
|
|
|
5
39
|
### Patch Changes
|
|
@@ -33,6 +33,11 @@ const catalogAboutEntityCard = EntityCardBlueprint.makeWithOverrides({
|
|
|
33
33
|
}
|
|
34
34
|
return originalFactory({
|
|
35
35
|
type: "info",
|
|
36
|
+
filter: {
|
|
37
|
+
$not: {
|
|
38
|
+
kind: { $in: ["user", "group"] }
|
|
39
|
+
}
|
|
40
|
+
},
|
|
36
41
|
async loader() {
|
|
37
42
|
const { InternalAboutCard } = await import('../components/AboutCard/AboutCard.esm.js');
|
|
38
43
|
return compatWrapper(
|
|
@@ -46,7 +51,7 @@ const catalogLinksEntityCard = EntityCardBlueprint.make({
|
|
|
46
51
|
name: "links",
|
|
47
52
|
params: {
|
|
48
53
|
type: "info",
|
|
49
|
-
filter: "
|
|
54
|
+
filter: { "metadata.links": { $exists: true } },
|
|
50
55
|
loader: async () => import('../components/EntityLinksCard/index.esm.js').then(
|
|
51
56
|
(m) => compatWrapper(/* @__PURE__ */ jsx(m.EntityLinksCard, { variant: "gridItem" }))
|
|
52
57
|
)
|
|
@@ -56,7 +61,7 @@ const catalogLabelsEntityCard = EntityCardBlueprint.make({
|
|
|
56
61
|
name: "labels",
|
|
57
62
|
params: {
|
|
58
63
|
type: "info",
|
|
59
|
-
filter: "
|
|
64
|
+
filter: { "metadata.labels": { $exists: true } },
|
|
60
65
|
loader: async () => import('../components/EntityLabelsCard/index.esm.js').then(
|
|
61
66
|
(m) => compatWrapper(/* @__PURE__ */ jsx(m.EntityLabelsCard, { variant: "gridItem" }))
|
|
62
67
|
)
|
|
@@ -65,7 +70,7 @@ const catalogLabelsEntityCard = EntityCardBlueprint.make({
|
|
|
65
70
|
const catalogDependsOnComponentsEntityCard = EntityCardBlueprint.make({
|
|
66
71
|
name: "depends-on-components",
|
|
67
72
|
params: {
|
|
68
|
-
filter:
|
|
73
|
+
filter: { kind: "component" },
|
|
69
74
|
loader: async () => import('../components/DependsOnComponentsCard/index.esm.js').then(
|
|
70
75
|
(m) => compatWrapper(/* @__PURE__ */ jsx(m.DependsOnComponentsCard, { variant: "gridItem" }))
|
|
71
76
|
)
|
|
@@ -74,7 +79,7 @@ const catalogDependsOnComponentsEntityCard = EntityCardBlueprint.make({
|
|
|
74
79
|
const catalogDependsOnResourcesEntityCard = EntityCardBlueprint.make({
|
|
75
80
|
name: "depends-on-resources",
|
|
76
81
|
params: {
|
|
77
|
-
filter:
|
|
82
|
+
filter: { kind: "component" },
|
|
78
83
|
loader: async () => import('../components/DependsOnResourcesCard/index.esm.js').then(
|
|
79
84
|
(m) => compatWrapper(/* @__PURE__ */ jsx(m.DependsOnResourcesCard, { variant: "gridItem" }))
|
|
80
85
|
)
|
|
@@ -83,7 +88,7 @@ const catalogDependsOnResourcesEntityCard = EntityCardBlueprint.make({
|
|
|
83
88
|
const catalogHasComponentsEntityCard = EntityCardBlueprint.make({
|
|
84
89
|
name: "has-components",
|
|
85
90
|
params: {
|
|
86
|
-
filter:
|
|
91
|
+
filter: { kind: "system" },
|
|
87
92
|
loader: async () => import('../components/HasComponentsCard/index.esm.js').then(
|
|
88
93
|
(m) => compatWrapper(/* @__PURE__ */ jsx(m.HasComponentsCard, { variant: "gridItem" }))
|
|
89
94
|
)
|
|
@@ -92,7 +97,7 @@ const catalogHasComponentsEntityCard = EntityCardBlueprint.make({
|
|
|
92
97
|
const catalogHasResourcesEntityCard = EntityCardBlueprint.make({
|
|
93
98
|
name: "has-resources",
|
|
94
99
|
params: {
|
|
95
|
-
filter:
|
|
100
|
+
filter: { kind: "system" },
|
|
96
101
|
loader: async () => import('../components/HasResourcesCard/index.esm.js').then(
|
|
97
102
|
(m) => compatWrapper(/* @__PURE__ */ jsx(m.HasResourcesCard, { variant: "gridItem" }))
|
|
98
103
|
)
|
|
@@ -101,7 +106,7 @@ const catalogHasResourcesEntityCard = EntityCardBlueprint.make({
|
|
|
101
106
|
const catalogHasSubcomponentsEntityCard = EntityCardBlueprint.make({
|
|
102
107
|
name: "has-subcomponents",
|
|
103
108
|
params: {
|
|
104
|
-
filter:
|
|
109
|
+
filter: { kind: "component" },
|
|
105
110
|
loader: async () => import('../components/HasSubcomponentsCard/index.esm.js').then(
|
|
106
111
|
(m) => compatWrapper(/* @__PURE__ */ jsx(m.HasSubcomponentsCard, { variant: "gridItem" }))
|
|
107
112
|
)
|
|
@@ -110,7 +115,7 @@ const catalogHasSubcomponentsEntityCard = EntityCardBlueprint.make({
|
|
|
110
115
|
const catalogHasSubdomainsEntityCard = EntityCardBlueprint.make({
|
|
111
116
|
name: "has-subdomains",
|
|
112
117
|
params: {
|
|
113
|
-
filter:
|
|
118
|
+
filter: { kind: "domain" },
|
|
114
119
|
loader: async () => import('../components/HasSubdomainsCard/index.esm.js').then(
|
|
115
120
|
(m) => compatWrapper(/* @__PURE__ */ jsx(m.HasSubdomainsCard, { variant: "gridItem" }))
|
|
116
121
|
)
|
|
@@ -119,7 +124,7 @@ const catalogHasSubdomainsEntityCard = EntityCardBlueprint.make({
|
|
|
119
124
|
const catalogHasSystemsEntityCard = EntityCardBlueprint.make({
|
|
120
125
|
name: "has-systems",
|
|
121
126
|
params: {
|
|
122
|
-
filter:
|
|
127
|
+
filter: { kind: "domain" },
|
|
123
128
|
loader: async () => import('../components/HasSystemsCard/index.esm.js').then(
|
|
124
129
|
(m) => compatWrapper(/* @__PURE__ */ jsx(m.HasSystemsCard, { variant: "gridItem" }))
|
|
125
130
|
)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entityCards.esm.js","sources":["../../src/alpha/entityCards.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 EntityIconLinkBlueprint,\n EntityCardBlueprint,\n} from '@backstage/plugin-catalog-react/alpha';\nimport { compatWrapper } from '@backstage/core-compat-api';\nimport { createExtensionInput } from '@backstage/frontend-plugin-api';\nimport {\n HeaderIconLinkRow,\n IconLinkVerticalProps,\n} from '@backstage/core-components';\nimport { useEntity } from '@backstage/plugin-catalog-react';\nimport { buildFilterFn } from './filter/FilterWrapper';\n\nexport const catalogAboutEntityCard = EntityCardBlueprint.makeWithOverrides({\n name: 'about',\n inputs: {\n iconLinks: createExtensionInput([\n EntityIconLinkBlueprint.dataRefs.filterFunction.optional(),\n EntityIconLinkBlueprint.dataRefs.filterExpression.optional(),\n EntityIconLinkBlueprint.dataRefs.useProps,\n ]),\n },\n factory(originalFactory, { inputs }) {\n function Subheader() {\n const { entity } = useEntity();\n // The \"useProps\" functions may be calling other hooks, so we need to\n // call them in a component function to avoid breaking the rules of hooks.\n const links = inputs.iconLinks.reduce((rest, iconLink) => {\n const props = iconLink.get(EntityIconLinkBlueprint.dataRefs.useProps)();\n const filter = buildFilterFn(\n iconLink.get(EntityIconLinkBlueprint.dataRefs.filterFunction),\n iconLink.get(EntityIconLinkBlueprint.dataRefs.filterExpression),\n );\n if (filter(entity)) {\n return [...rest, props];\n }\n return rest;\n }, new Array<IconLinkVerticalProps>());\n return links.length ? <HeaderIconLinkRow links={links} /> : null;\n }\n return originalFactory({\n type: 'info',\n async loader() {\n const { InternalAboutCard } = await import(\n '../components/AboutCard/AboutCard'\n );\n return compatWrapper(\n <InternalAboutCard variant=\"gridItem\" subheader={<Subheader />} />,\n );\n },\n });\n },\n});\n\nexport const catalogLinksEntityCard = EntityCardBlueprint.make({\n name: 'links',\n params: {\n type: 'info',\n filter: 'has:links',\n loader: async () =>\n import('../components/EntityLinksCard').then(m =>\n compatWrapper(<m.EntityLinksCard variant=\"gridItem\" />),\n ),\n },\n});\n\nexport const catalogLabelsEntityCard = EntityCardBlueprint.make({\n name: 'labels',\n params: {\n type: 'info',\n filter: 'has:labels',\n loader: async () =>\n import('../components/EntityLabelsCard').then(m =>\n compatWrapper(<m.EntityLabelsCard variant=\"gridItem\" />),\n ),\n },\n});\n\nexport const catalogDependsOnComponentsEntityCard = EntityCardBlueprint.make({\n name: 'depends-on-components',\n params: {\n filter: 'kind:component',\n loader: async () =>\n import('../components/DependsOnComponentsCard').then(m =>\n compatWrapper(<m.DependsOnComponentsCard variant=\"gridItem\" />),\n ),\n },\n});\n\nexport const catalogDependsOnResourcesEntityCard = EntityCardBlueprint.make({\n name: 'depends-on-resources',\n params: {\n filter: 'kind:component',\n loader: async () =>\n import('../components/DependsOnResourcesCard').then(m =>\n compatWrapper(<m.DependsOnResourcesCard variant=\"gridItem\" />),\n ),\n },\n});\n\nexport const catalogHasComponentsEntityCard = EntityCardBlueprint.make({\n name: 'has-components',\n params: {\n filter: 'kind:system',\n loader: async () =>\n import('../components/HasComponentsCard').then(m =>\n compatWrapper(<m.HasComponentsCard variant=\"gridItem\" />),\n ),\n },\n});\n\nexport const catalogHasResourcesEntityCard = EntityCardBlueprint.make({\n name: 'has-resources',\n params: {\n filter: 'kind:system',\n loader: async () =>\n import('../components/HasResourcesCard').then(m =>\n compatWrapper(<m.HasResourcesCard variant=\"gridItem\" />),\n ),\n },\n});\n\nexport const catalogHasSubcomponentsEntityCard = EntityCardBlueprint.make({\n name: 'has-subcomponents',\n params: {\n filter: 'kind:component',\n loader: async () =>\n import('../components/HasSubcomponentsCard').then(m =>\n compatWrapper(<m.HasSubcomponentsCard variant=\"gridItem\" />),\n ),\n },\n});\n\nexport const catalogHasSubdomainsEntityCard = EntityCardBlueprint.make({\n name: 'has-subdomains',\n params: {\n filter: 'kind:domain',\n loader: async () =>\n import('../components/HasSubdomainsCard').then(m =>\n compatWrapper(<m.HasSubdomainsCard variant=\"gridItem\" />),\n ),\n },\n});\n\nexport const catalogHasSystemsEntityCard = EntityCardBlueprint.make({\n name: 'has-systems',\n params: {\n filter: 'kind:domain',\n loader: async () =>\n import('../components/HasSystemsCard').then(m =>\n compatWrapper(<m.HasSystemsCard variant=\"gridItem\" />),\n ),\n },\n});\n\nexport default [\n catalogAboutEntityCard,\n catalogLinksEntityCard,\n catalogLabelsEntityCard,\n catalogDependsOnComponentsEntityCard,\n catalogDependsOnResourcesEntityCard,\n catalogHasComponentsEntityCard,\n catalogHasResourcesEntityCard,\n catalogHasSubcomponentsEntityCard,\n catalogHasSubdomainsEntityCard,\n catalogHasSystemsEntityCard,\n];\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"entityCards.esm.js","sources":["../../src/alpha/entityCards.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 EntityIconLinkBlueprint,\n EntityCardBlueprint,\n} from '@backstage/plugin-catalog-react/alpha';\nimport { compatWrapper } from '@backstage/core-compat-api';\nimport { createExtensionInput } from '@backstage/frontend-plugin-api';\nimport {\n HeaderIconLinkRow,\n IconLinkVerticalProps,\n} from '@backstage/core-components';\nimport { useEntity } from '@backstage/plugin-catalog-react';\nimport { buildFilterFn } from './filter/FilterWrapper';\n\nexport const catalogAboutEntityCard = EntityCardBlueprint.makeWithOverrides({\n name: 'about',\n inputs: {\n iconLinks: createExtensionInput([\n EntityIconLinkBlueprint.dataRefs.filterFunction.optional(),\n EntityIconLinkBlueprint.dataRefs.filterExpression.optional(),\n EntityIconLinkBlueprint.dataRefs.useProps,\n ]),\n },\n factory(originalFactory, { inputs }) {\n function Subheader() {\n const { entity } = useEntity();\n // The \"useProps\" functions may be calling other hooks, so we need to\n // call them in a component function to avoid breaking the rules of hooks.\n const links = inputs.iconLinks.reduce((rest, iconLink) => {\n const props = iconLink.get(EntityIconLinkBlueprint.dataRefs.useProps)();\n const filter = buildFilterFn(\n iconLink.get(EntityIconLinkBlueprint.dataRefs.filterFunction),\n iconLink.get(EntityIconLinkBlueprint.dataRefs.filterExpression),\n );\n if (filter(entity)) {\n return [...rest, props];\n }\n return rest;\n }, new Array<IconLinkVerticalProps>());\n return links.length ? <HeaderIconLinkRow links={links} /> : null;\n }\n return originalFactory({\n type: 'info',\n filter: {\n $not: {\n kind: { $in: ['user', 'group'] },\n },\n },\n async loader() {\n const { InternalAboutCard } = await import(\n '../components/AboutCard/AboutCard'\n );\n return compatWrapper(\n <InternalAboutCard variant=\"gridItem\" subheader={<Subheader />} />,\n );\n },\n });\n },\n});\n\nexport const catalogLinksEntityCard = EntityCardBlueprint.make({\n name: 'links',\n params: {\n type: 'info',\n filter: { 'metadata.links': { $exists: true } },\n loader: async () =>\n import('../components/EntityLinksCard').then(m =>\n compatWrapper(<m.EntityLinksCard variant=\"gridItem\" />),\n ),\n },\n});\n\nexport const catalogLabelsEntityCard = EntityCardBlueprint.make({\n name: 'labels',\n params: {\n type: 'info',\n filter: { 'metadata.labels': { $exists: true } },\n loader: async () =>\n import('../components/EntityLabelsCard').then(m =>\n compatWrapper(<m.EntityLabelsCard variant=\"gridItem\" />),\n ),\n },\n});\n\nexport const catalogDependsOnComponentsEntityCard = EntityCardBlueprint.make({\n name: 'depends-on-components',\n params: {\n filter: { kind: 'component' },\n loader: async () =>\n import('../components/DependsOnComponentsCard').then(m =>\n compatWrapper(<m.DependsOnComponentsCard variant=\"gridItem\" />),\n ),\n },\n});\n\nexport const catalogDependsOnResourcesEntityCard = EntityCardBlueprint.make({\n name: 'depends-on-resources',\n params: {\n filter: { kind: 'component' },\n loader: async () =>\n import('../components/DependsOnResourcesCard').then(m =>\n compatWrapper(<m.DependsOnResourcesCard variant=\"gridItem\" />),\n ),\n },\n});\n\nexport const catalogHasComponentsEntityCard = EntityCardBlueprint.make({\n name: 'has-components',\n params: {\n filter: { kind: 'system' },\n loader: async () =>\n import('../components/HasComponentsCard').then(m =>\n compatWrapper(<m.HasComponentsCard variant=\"gridItem\" />),\n ),\n },\n});\n\nexport const catalogHasResourcesEntityCard = EntityCardBlueprint.make({\n name: 'has-resources',\n params: {\n filter: { kind: 'system' },\n loader: async () =>\n import('../components/HasResourcesCard').then(m =>\n compatWrapper(<m.HasResourcesCard variant=\"gridItem\" />),\n ),\n },\n});\n\nexport const catalogHasSubcomponentsEntityCard = EntityCardBlueprint.make({\n name: 'has-subcomponents',\n params: {\n filter: { kind: 'component' },\n loader: async () =>\n import('../components/HasSubcomponentsCard').then(m =>\n compatWrapper(<m.HasSubcomponentsCard variant=\"gridItem\" />),\n ),\n },\n});\n\nexport const catalogHasSubdomainsEntityCard = EntityCardBlueprint.make({\n name: 'has-subdomains',\n params: {\n filter: { kind: 'domain' },\n loader: async () =>\n import('../components/HasSubdomainsCard').then(m =>\n compatWrapper(<m.HasSubdomainsCard variant=\"gridItem\" />),\n ),\n },\n});\n\nexport const catalogHasSystemsEntityCard = EntityCardBlueprint.make({\n name: 'has-systems',\n params: {\n filter: { kind: 'domain' },\n loader: async () =>\n import('../components/HasSystemsCard').then(m =>\n compatWrapper(<m.HasSystemsCard variant=\"gridItem\" />),\n ),\n },\n});\n\nexport default [\n catalogAboutEntityCard,\n catalogLinksEntityCard,\n catalogLabelsEntityCard,\n catalogDependsOnComponentsEntityCard,\n catalogDependsOnResourcesEntityCard,\n catalogHasComponentsEntityCard,\n catalogHasResourcesEntityCard,\n catalogHasSubcomponentsEntityCard,\n catalogHasSubdomainsEntityCard,\n catalogHasSystemsEntityCard,\n];\n"],"names":[],"mappings":"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"}
|
package/dist/alpha/pages.esm.js
CHANGED
|
@@ -11,7 +11,19 @@ const catalogPage = PageBlueprint.makeWithOverrides({
|
|
|
11
11
|
inputs: {
|
|
12
12
|
filters: createExtensionInput([coreExtensionData.reactElement])
|
|
13
13
|
},
|
|
14
|
-
|
|
14
|
+
config: {
|
|
15
|
+
schema: {
|
|
16
|
+
pagination: (z) => z.union([
|
|
17
|
+
z.boolean(),
|
|
18
|
+
z.object({
|
|
19
|
+
mode: z.enum(["cursor", "offset"]),
|
|
20
|
+
limit: z.number().optional(),
|
|
21
|
+
offset: z.number().optional()
|
|
22
|
+
})
|
|
23
|
+
]).default(true)
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
factory(originalFactory, { inputs, config }) {
|
|
15
27
|
return originalFactory({
|
|
16
28
|
defaultPath: "/catalog",
|
|
17
29
|
routeRef: convertLegacyRouteRef(rootRouteRef),
|
|
@@ -20,7 +32,15 @@ const catalogPage = PageBlueprint.makeWithOverrides({
|
|
|
20
32
|
const filters = inputs.filters.map(
|
|
21
33
|
(filter) => filter.get(coreExtensionData.reactElement)
|
|
22
34
|
);
|
|
23
|
-
return compatWrapper(
|
|
35
|
+
return compatWrapper(
|
|
36
|
+
/* @__PURE__ */ jsx(
|
|
37
|
+
BaseCatalogPage,
|
|
38
|
+
{
|
|
39
|
+
filters: /* @__PURE__ */ jsx(Fragment, { children: filters }),
|
|
40
|
+
pagination: config.pagination
|
|
41
|
+
}
|
|
42
|
+
)
|
|
43
|
+
);
|
|
24
44
|
}
|
|
25
45
|
});
|
|
26
46
|
}
|
|
@@ -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 factory(originalFactory, { inputs }) {\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(<BaseCatalogPage filters={<>{filters}</>} />);\n },\n });\n },\n});\n\nexport const catalogEntityPage = PageBlueprint.makeWithOverrides({\n name: 'entity',\n inputs: {\n header: createExtensionInput(\n [EntityHeaderBlueprint.dataRefs.element.optional()],\n { singleton: true, optional: true },\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 const header = inputs.header?.get(\n EntityHeaderBlueprint.dataRefs.element,\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 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 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 header: createExtensionInput(\n [EntityHeaderBlueprint.dataRefs.element.optional()],\n { singleton: true, optional: true },\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 const header = inputs.header?.get(\n EntityHeaderBlueprint.dataRefs.element,\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 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
|
@@ -576,9 +576,21 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
|
|
|
576
576
|
}>;
|
|
577
577
|
"page:catalog": _backstage_frontend_plugin_api.ExtensionDefinition<{
|
|
578
578
|
config: {
|
|
579
|
+
pagination: boolean | {
|
|
580
|
+
mode: "offset" | "cursor";
|
|
581
|
+
offset?: number | undefined;
|
|
582
|
+
limit?: number | undefined;
|
|
583
|
+
};
|
|
584
|
+
} & {
|
|
579
585
|
path: string | undefined;
|
|
580
586
|
};
|
|
581
587
|
configInput: {
|
|
588
|
+
pagination?: boolean | {
|
|
589
|
+
mode: "offset" | "cursor";
|
|
590
|
+
offset?: number | undefined;
|
|
591
|
+
limit?: number | undefined;
|
|
592
|
+
} | undefined;
|
|
593
|
+
} & {
|
|
582
594
|
path?: string | undefined;
|
|
583
595
|
};
|
|
584
596
|
output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
|
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.1
|
|
3
|
+
"version": "1.31.1",
|
|
4
4
|
"description": "The Backstage plugin for browsing the Backstage catalog",
|
|
5
5
|
"backstage": {
|
|
6
6
|
"role": "frontend-plugin",
|
|
@@ -70,24 +70,24 @@
|
|
|
70
70
|
"test": "backstage-cli package test"
|
|
71
71
|
},
|
|
72
72
|
"dependencies": {
|
|
73
|
-
"@backstage/catalog-client": "1.10.2
|
|
74
|
-
"@backstage/catalog-model": "1.7.5
|
|
75
|
-
"@backstage/core-compat-api": "0.4.4
|
|
76
|
-
"@backstage/core-components": "0.17.4
|
|
77
|
-
"@backstage/core-plugin-api": "1.10.9
|
|
78
|
-
"@backstage/errors": "1.2.7",
|
|
79
|
-
"@backstage/frontend-plugin-api": "0.10.4
|
|
80
|
-
"@backstage/integration-react": "1.2.9
|
|
81
|
-
"@backstage/plugin-catalog-common": "1.1.5
|
|
82
|
-
"@backstage/plugin-catalog-react": "1.19.1
|
|
83
|
-
"@backstage/plugin-permission-react": "0.4.36
|
|
84
|
-
"@backstage/plugin-scaffolder-common": "1.
|
|
85
|
-
"@backstage/plugin-search-common": "1.2.19
|
|
86
|
-
"@backstage/plugin-search-react": "1.9.2
|
|
87
|
-
"@backstage/plugin-techdocs-common": "0.1.1",
|
|
88
|
-
"@backstage/plugin-techdocs-react": "1.3.1
|
|
89
|
-
"@backstage/types": "1.2.1",
|
|
90
|
-
"@backstage/version-bridge": "1.0.11",
|
|
73
|
+
"@backstage/catalog-client": "^1.10.2",
|
|
74
|
+
"@backstage/catalog-model": "^1.7.5",
|
|
75
|
+
"@backstage/core-compat-api": "^0.4.4",
|
|
76
|
+
"@backstage/core-components": "^0.17.4",
|
|
77
|
+
"@backstage/core-plugin-api": "^1.10.9",
|
|
78
|
+
"@backstage/errors": "^1.2.7",
|
|
79
|
+
"@backstage/frontend-plugin-api": "^0.10.4",
|
|
80
|
+
"@backstage/integration-react": "^1.2.9",
|
|
81
|
+
"@backstage/plugin-catalog-common": "^1.1.5",
|
|
82
|
+
"@backstage/plugin-catalog-react": "^1.19.1",
|
|
83
|
+
"@backstage/plugin-permission-react": "^0.4.36",
|
|
84
|
+
"@backstage/plugin-scaffolder-common": "^1.6.0",
|
|
85
|
+
"@backstage/plugin-search-common": "^1.2.19",
|
|
86
|
+
"@backstage/plugin-search-react": "^1.9.2",
|
|
87
|
+
"@backstage/plugin-techdocs-common": "^0.1.1",
|
|
88
|
+
"@backstage/plugin-techdocs-react": "^1.3.1",
|
|
89
|
+
"@backstage/types": "^1.2.1",
|
|
90
|
+
"@backstage/version-bridge": "^1.0.11",
|
|
91
91
|
"@material-ui/core": "^4.12.2",
|
|
92
92
|
"@material-ui/icons": "^4.9.1",
|
|
93
93
|
"@material-ui/lab": "4.0.0-alpha.61",
|
|
@@ -102,12 +102,12 @@
|
|
|
102
102
|
"zen-observable": "^0.10.0"
|
|
103
103
|
},
|
|
104
104
|
"devDependencies": {
|
|
105
|
-
"@backstage/cli": "0.33.1
|
|
106
|
-
"@backstage/core-app-api": "1.
|
|
107
|
-
"@backstage/dev-utils": "1.1.12
|
|
108
|
-
"@backstage/frontend-test-utils": "0.3.4
|
|
109
|
-
"@backstage/plugin-permission-common": "0.9.1
|
|
110
|
-
"@backstage/test-utils": "1.7.10
|
|
105
|
+
"@backstage/cli": "^0.33.1",
|
|
106
|
+
"@backstage/core-app-api": "^1.18.0",
|
|
107
|
+
"@backstage/dev-utils": "^1.1.12",
|
|
108
|
+
"@backstage/frontend-test-utils": "^0.3.4",
|
|
109
|
+
"@backstage/plugin-permission-common": "^0.9.1",
|
|
110
|
+
"@backstage/test-utils": "^1.7.10",
|
|
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",
|