@backstage/plugin-catalog 0.6.17 → 0.7.3
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 +70 -0
- package/dist/esm/{index-6a9a7783.esm.js → index-0e602309.esm.js} +134 -43
- package/dist/esm/index-0e602309.esm.js.map +1 -0
- package/dist/esm/{index-937795b4.esm.js → index-66b84bce.esm.js} +4 -3
- package/dist/esm/index-66b84bce.esm.js.map +1 -0
- package/dist/esm/{index-bb04d347.esm.js → index-a5cb6379.esm.js} +4 -3
- package/dist/esm/index-a5cb6379.esm.js.map +1 -0
- package/dist/esm/{index-d2181250.esm.js → index-f9a9eace.esm.js} +6 -6
- package/dist/esm/index-f9a9eace.esm.js.map +1 -0
- package/dist/esm/{index-99bc5767.esm.js → index-fc057bf8.esm.js} +2 -2
- package/dist/esm/index-fc057bf8.esm.js.map +1 -0
- package/dist/index.d.ts +37 -15
- package/dist/index.esm.js +3 -2
- package/dist/index.esm.js.map +1 -1
- package/package.json +14 -13
- package/dist/esm/index-6a9a7783.esm.js.map +0 -1
- package/dist/esm/index-937795b4.esm.js.map +0 -1
- package/dist/esm/index-99bc5767.esm.js.map +0 -1
- package/dist/esm/index-bb04d347.esm.js.map +0 -1
- package/dist/esm/index-d2181250.esm.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,75 @@
|
|
|
1
1
|
# @backstage/plugin-catalog
|
|
2
2
|
|
|
3
|
+
## 0.7.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 38d6df6bb9: Remove the "View Api" icon in the AboutCard, as the information is misleading for some users and is
|
|
8
|
+
duplicated in the tabs above.
|
|
9
|
+
- a125278b81: Refactor out the deprecated path and icon from RouteRefs
|
|
10
|
+
- Updated dependencies
|
|
11
|
+
- @backstage/catalog-client@0.5.2
|
|
12
|
+
- @backstage/catalog-model@0.9.7
|
|
13
|
+
- @backstage/plugin-catalog-react@0.6.4
|
|
14
|
+
- @backstage/core-components@0.7.4
|
|
15
|
+
- @backstage/core-plugin-api@0.2.0
|
|
16
|
+
- @backstage/integration-react@0.1.14
|
|
17
|
+
|
|
18
|
+
## 0.7.2
|
|
19
|
+
|
|
20
|
+
### Patch Changes
|
|
21
|
+
|
|
22
|
+
- 36e67d2f24: Internal updates to apply more strict checks to throw errors.
|
|
23
|
+
- Updated dependencies
|
|
24
|
+
- @backstage/core-components@0.7.1
|
|
25
|
+
- @backstage/errors@0.1.3
|
|
26
|
+
- @backstage/core-plugin-api@0.1.11
|
|
27
|
+
- @backstage/plugin-catalog-react@0.6.1
|
|
28
|
+
- @backstage/catalog-model@0.9.5
|
|
29
|
+
|
|
30
|
+
## 0.7.1
|
|
31
|
+
|
|
32
|
+
### Patch Changes
|
|
33
|
+
|
|
34
|
+
- 82fbda923e: Introduce a new `StarredEntitiesApi` that is used in the `useStarredEntities` hook.
|
|
35
|
+
The `@backstage/plugin-catalog` installs a default implementation that is backed by the `StorageApi`, but one can also override the `starredEntitiesApiRef`.
|
|
36
|
+
|
|
37
|
+
This change also updates the storage format from a custom string to an entity reference and moves the location in the local storage.
|
|
38
|
+
A migration will convert the previously starred entities to the location on the first load of Backstage.
|
|
39
|
+
|
|
40
|
+
- 93a13dfb42: Support `material-ui` overrides in SystemDiagramCard and EmptityLinksEmptyState components
|
|
41
|
+
- b03b9f19e0: added sorting in entity `Name` column by `metadata.title` if present
|
|
42
|
+
- Updated dependencies
|
|
43
|
+
- @backstage/plugin-catalog-react@0.6.0
|
|
44
|
+
- @backstage/core-components@0.7.0
|
|
45
|
+
- @backstage/theme@0.2.11
|
|
46
|
+
- @backstage/integration-react@0.1.12
|
|
47
|
+
|
|
48
|
+
## 0.7.0
|
|
49
|
+
|
|
50
|
+
### Minor Changes
|
|
51
|
+
|
|
52
|
+
- bb0f6b8a0f: Updates the `<EntitySwitch if={asyncMethod}/>` to accept asynchronous `if` functions.
|
|
53
|
+
|
|
54
|
+
Adds the new `getEntityAncestors` method to `CatalogClient`.
|
|
55
|
+
|
|
56
|
+
Updates the `<EntityProcessingErrorsPanel />` to make use of the ancestry endpoint to display errors for entities further up the ancestry tree. This makes it easier to discover issues where for example the origin location has been removed or malformed.
|
|
57
|
+
|
|
58
|
+
`hasCatalogProcessingErrors()` is now changed to be asynchronous so any calls outside the already established entitySwitch need to be awaited.
|
|
59
|
+
|
|
60
|
+
### Patch Changes
|
|
61
|
+
|
|
62
|
+
- 5aae9bb61e: Name column will now render entity `metadata.title` if its present
|
|
63
|
+
- 1c5c5b23fb: Replace deprecated material UI components used by LinksCard to remove errors from console log
|
|
64
|
+
- ca0559444c: Avoid usage of `.to*Case()`, preferring `.toLocale*Case('en-US')` instead.
|
|
65
|
+
- 81a41ec249: Added a `name` key to all extensions in order to improve Analytics API metadata.
|
|
66
|
+
- Updated dependencies
|
|
67
|
+
- @backstage/core-components@0.6.1
|
|
68
|
+
- @backstage/core-plugin-api@0.1.10
|
|
69
|
+
- @backstage/plugin-catalog-react@0.5.2
|
|
70
|
+
- @backstage/catalog-model@0.9.4
|
|
71
|
+
- @backstage/catalog-client@0.5.0
|
|
72
|
+
|
|
3
73
|
## 0.6.17
|
|
4
74
|
|
|
5
75
|
### Patch Changes
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import { RELATION_PART_OF, RELATION_OWNED_BY,
|
|
1
|
+
import { RELATION_PART_OF, RELATION_OWNED_BY, ENTITY_DEFAULT_NAMESPACE, LOCATION_ANNOTATION, stringifyEntityRef, compareEntityToRef } from '@backstage/catalog-model';
|
|
2
2
|
import { Link, HeaderIconLinkRow, OverflowTooltip, WarningPanel, CodeSnippet, Table, Page, Header, Progress, RoutedTabs, Content, HeaderLabel, ResponseErrorPanel, HeaderTabs, PageWithHeader, ContentHeader, CreateButton, SupportButton } from '@backstage/core-components';
|
|
3
|
-
import { createExternalRouteRef, useElementFilter, useApi, alertApiRef, useRouteRef, attachComponentData, configApiRef, createPlugin, createApiFactory, discoveryApiRef, identityApiRef, createRoutableExtension, createComponentExtension } from '@backstage/core-plugin-api';
|
|
3
|
+
import { createExternalRouteRef, useElementFilter, useApi, alertApiRef, useRouteRef, attachComponentData, useApiHolder, configApiRef, createPlugin, createApiFactory, discoveryApiRef, identityApiRef, storageApiRef, createRoutableExtension, createComponentExtension } from '@backstage/core-plugin-api';
|
|
4
4
|
import { scmIntegrationsApiRef, ScmIntegrationIcon } from '@backstage/integration-react';
|
|
5
|
-
import { getEntityRelations, EntityRefLinks, useEntity, catalogApiRef, getEntitySourceLocation, getEntityMetadataEditUrl, useEntityKinds, useEntityListProvider, EntityKindFilter, EntityRefLink, useStarredEntities,
|
|
5
|
+
import { getEntityRelations, EntityRefLinks, useEntity, catalogApiRef, getEntitySourceLocation, getEntityMetadataEditUrl, useEntityKinds, useEntityListProvider, EntityKindFilter, formatEntityRefTitle, EntityRefLink, useStarredEntities, getEntityMetadataViewUrl, favoriteEntityIcon, favoriteEntityTooltip, useEntityCompoundName, EntityContext, UnregisterEntityDialog, FavoriteEntity, catalogRouteRef, EntityListProvider, EntityTypePicker, UserListPicker, EntityOwnerPicker, EntityLifecyclePicker, EntityTagPicker, AsyncEntityProvider, useEntityFromUrl, starredEntitiesApiRef, DefaultStarredEntitiesApi, entityRouteRef } from '@backstage/plugin-catalog-react';
|
|
6
6
|
import { makeStyles, Typography, Grid, Chip, Card, CardHeader, IconButton, Divider, CardContent, createStyles, capitalize, Select, InputBase, MenuItem, ListItem, ListItemText, Box, ListItemIcon, Popover, MenuList, Dialog, DialogTitle, DialogActions, Button, useMediaQuery, useTheme, Drawer, Link as Link$1 } from '@material-ui/core';
|
|
7
7
|
import CachedIcon from '@material-ui/icons/Cached';
|
|
8
8
|
import DocsIcon from '@material-ui/icons/Description';
|
|
9
9
|
import EditIcon from '@material-ui/icons/Edit';
|
|
10
|
-
import ExtensionIcon from '@material-ui/icons/Extension';
|
|
11
10
|
import React, { useCallback, useState, useEffect, useMemo, useContext } from 'react';
|
|
12
11
|
import OpenInNew from '@material-ui/icons/OpenInNew';
|
|
13
12
|
import { capitalize as capitalize$1 } from 'lodash';
|
|
@@ -16,7 +15,9 @@ import { useNavigate, useParams, Navigate, matchRoutes, useRoutes, Routes, Route
|
|
|
16
15
|
import { makeStyles as makeStyles$1 } from '@material-ui/core/styles';
|
|
17
16
|
import Cancel from '@material-ui/icons/Cancel';
|
|
18
17
|
import MoreVert from '@material-ui/icons/MoreVert';
|
|
18
|
+
import { assertError } from '@backstage/errors';
|
|
19
19
|
import { ENTITY_STATUS_CATALOG_PROCESSING_TYPE, CatalogClient } from '@backstage/catalog-client';
|
|
20
|
+
import { useAsync } from 'react-use';
|
|
20
21
|
import { Helmet } from 'react-helmet';
|
|
21
22
|
import FilterListIcon from '@material-ui/icons/FilterList';
|
|
22
23
|
import IlloSvgUrl from '../components/EntityNotFound/Illo/illo.svg';
|
|
@@ -80,6 +81,12 @@ class CatalogClientWrapper {
|
|
|
80
81
|
token: (_a = options == null ? void 0 : options.token) != null ? _a : await this.identityApi.getIdToken()
|
|
81
82
|
});
|
|
82
83
|
}
|
|
84
|
+
async getEntityAncestors(request, options) {
|
|
85
|
+
var _a;
|
|
86
|
+
return await this.client.getEntityAncestors(request, {
|
|
87
|
+
token: (_a = options == null ? void 0 : options.token) != null ? _a : await this.identityApi.getIdToken()
|
|
88
|
+
});
|
|
89
|
+
}
|
|
83
90
|
}
|
|
84
91
|
|
|
85
92
|
const createComponentRouteRef = createExternalRouteRef({
|
|
@@ -235,9 +242,6 @@ function AboutCard({variant}) {
|
|
|
235
242
|
const viewTechdocLink = useRouteRef(viewTechDocRouteRef);
|
|
236
243
|
const entitySourceLocation = getEntitySourceLocation(entity, scmIntegrationsApi);
|
|
237
244
|
const entityMetadataEditUrl = getEntityMetadataEditUrl(entity);
|
|
238
|
-
const providesApiRelations = getEntityRelations(entity, RELATION_PROVIDES_API);
|
|
239
|
-
const consumesApiRelations = getEntityRelations(entity, RELATION_CONSUMES_API);
|
|
240
|
-
const hasApis = providesApiRelations.length > 0 || consumesApiRelations.length > 0;
|
|
241
245
|
const viewInSource = {
|
|
242
246
|
label: "View Source",
|
|
243
247
|
disabled: !entitySourceLocation,
|
|
@@ -256,13 +260,6 @@ function AboutCard({variant}) {
|
|
|
256
260
|
name: entity.metadata.name
|
|
257
261
|
})
|
|
258
262
|
};
|
|
259
|
-
const viewApi = {
|
|
260
|
-
title: hasApis ? "" : "No APIs available",
|
|
261
|
-
label: "View API",
|
|
262
|
-
disabled: !hasApis,
|
|
263
|
-
icon: /* @__PURE__ */ React.createElement(ExtensionIcon, null),
|
|
264
|
-
href: "api"
|
|
265
|
-
};
|
|
266
263
|
let cardClass = "";
|
|
267
264
|
if (variant === "gridItem") {
|
|
268
265
|
cardClass = classes.gridItemCard;
|
|
@@ -296,7 +293,7 @@ function AboutCard({variant}) {
|
|
|
296
293
|
to: entityMetadataEditUrl != null ? entityMetadataEditUrl : "#"
|
|
297
294
|
}, /* @__PURE__ */ React.createElement(EditIcon, null))),
|
|
298
295
|
subheader: /* @__PURE__ */ React.createElement(HeaderIconLinkRow, {
|
|
299
|
-
links: [viewInSource, viewInTechDocs
|
|
296
|
+
links: [viewInSource, viewInTechDocs]
|
|
300
297
|
})
|
|
301
298
|
}), /* @__PURE__ */ React.createElement(Divider, null), /* @__PURE__ */ React.createElement(CardContent, {
|
|
302
299
|
className: cardContentClass
|
|
@@ -373,14 +370,27 @@ const CatalogResultListItem = ({result}) => {
|
|
|
373
370
|
};
|
|
374
371
|
|
|
375
372
|
function createNameColumn(props) {
|
|
373
|
+
function formatContent(entity) {
|
|
374
|
+
var _a;
|
|
375
|
+
return ((_a = entity.metadata) == null ? void 0 : _a.title) || formatEntityRefTitle(entity, {
|
|
376
|
+
defaultKind: props == null ? void 0 : props.defaultKind
|
|
377
|
+
});
|
|
378
|
+
}
|
|
376
379
|
return {
|
|
377
380
|
title: "Name",
|
|
378
381
|
field: "resolved.name",
|
|
379
382
|
highlight: true,
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
})
|
|
383
|
+
customSort({entity: entity1}, {entity: entity2}) {
|
|
384
|
+
return formatContent(entity1).localeCompare(formatContent(entity2));
|
|
385
|
+
},
|
|
386
|
+
render: ({entity}) => {
|
|
387
|
+
var _a;
|
|
388
|
+
return /* @__PURE__ */ React.createElement(EntityRefLink, {
|
|
389
|
+
entityRef: entity,
|
|
390
|
+
defaultKind: (props == null ? void 0 : props.defaultKind) || "Component",
|
|
391
|
+
title: (_a = entity.metadata) == null ? void 0 : _a.title
|
|
392
|
+
});
|
|
393
|
+
}
|
|
384
394
|
};
|
|
385
395
|
}
|
|
386
396
|
function createSystemColumn() {
|
|
@@ -765,6 +775,7 @@ const DeleteEntityDialog = ({
|
|
|
765
775
|
await catalogApi.removeEntityByUid(uid);
|
|
766
776
|
onConfirm();
|
|
767
777
|
} catch (err) {
|
|
778
|
+
assertError(err);
|
|
768
779
|
alertApi.post({message: err.message});
|
|
769
780
|
} finally {
|
|
770
781
|
setBusy(false);
|
|
@@ -810,21 +821,53 @@ const EntityOrphanWarning = () => {
|
|
|
810
821
|
}));
|
|
811
822
|
};
|
|
812
823
|
|
|
813
|
-
const
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
824
|
+
const errorFilter = (i) => i.error && i.level === "error" && i.type === ENTITY_STATUS_CATALOG_PROCESSING_TYPE;
|
|
825
|
+
async function getOwnAndAncestorsErrors(entityRef, catalogApi) {
|
|
826
|
+
const ancestors = await catalogApi.getEntityAncestors({entityRef});
|
|
827
|
+
const items = ancestors.items.map((item) => {
|
|
828
|
+
var _a, _b;
|
|
829
|
+
const statuses = (_b = (_a = item.entity.status) == null ? void 0 : _a.items) != null ? _b : [];
|
|
830
|
+
const errors = statuses.filter(errorFilter).map((e) => e.error).filter((e) => Boolean(e));
|
|
831
|
+
return {errors, entity: item.entity};
|
|
832
|
+
}).filter((item) => item.errors.length > 0);
|
|
833
|
+
return {items};
|
|
834
|
+
}
|
|
835
|
+
const hasCatalogProcessingErrors = async (entity, context) => {
|
|
836
|
+
const catalogApi = context.apis.get(catalogApiRef);
|
|
837
|
+
if (!catalogApi) {
|
|
838
|
+
throw new Error(`No implementation available for ${catalogApiRef}`);
|
|
839
|
+
}
|
|
840
|
+
const errors = await getOwnAndAncestorsErrors(stringifyEntityRef(entity), catalogApi);
|
|
841
|
+
return errors.items.length > 0;
|
|
817
842
|
};
|
|
818
843
|
const EntityProcessingErrorsPanel = () => {
|
|
819
|
-
var _a, _b;
|
|
820
844
|
const {entity} = useEntity();
|
|
821
|
-
const
|
|
822
|
-
|
|
845
|
+
const entityRef = stringifyEntityRef(entity);
|
|
846
|
+
const catalogApi = useApi(catalogApiRef);
|
|
847
|
+
const {loading, error, value} = useAsync(async () => {
|
|
848
|
+
return getOwnAndAncestorsErrors(entityRef, catalogApi);
|
|
849
|
+
}, [entityRef, catalogApi]);
|
|
850
|
+
if (error) {
|
|
851
|
+
return /* @__PURE__ */ React.createElement(Box, {
|
|
852
|
+
mb: 1
|
|
853
|
+
}, /* @__PURE__ */ React.createElement(ResponseErrorPanel, {
|
|
854
|
+
error
|
|
855
|
+
}));
|
|
856
|
+
}
|
|
857
|
+
if (loading || !value) {
|
|
858
|
+
return null;
|
|
859
|
+
}
|
|
860
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, value.items.map((ancestorError, index) => /* @__PURE__ */ React.createElement(Box, {
|
|
823
861
|
key: index,
|
|
824
862
|
mb: 1
|
|
825
|
-
}, /* @__PURE__ */ React.createElement(
|
|
826
|
-
|
|
827
|
-
}
|
|
863
|
+
}, !compareEntityToRef(entity, stringifyEntityRef(ancestorError.entity)) && /* @__PURE__ */ React.createElement(Box, {
|
|
864
|
+
p: 1
|
|
865
|
+
}, "The error below originates from", " ", /* @__PURE__ */ React.createElement(EntityRefLink, {
|
|
866
|
+
entityRef: ancestorError.entity
|
|
867
|
+
})), ancestorError.errors.map((e, i) => /* @__PURE__ */ React.createElement(ResponseErrorPanel, {
|
|
868
|
+
key: i,
|
|
869
|
+
error: e
|
|
870
|
+
})))));
|
|
828
871
|
};
|
|
829
872
|
|
|
830
873
|
const getSelectedIndexOrDefault = (matchedRoute, tabs, defaultIndex = 0) => {
|
|
@@ -971,22 +1014,53 @@ const ENTITY_SWITCH_KEY = "core.backstage.entitySwitch";
|
|
|
971
1014
|
const EntitySwitchCase = (_) => null;
|
|
972
1015
|
attachComponentData(EntitySwitchCase, ENTITY_SWITCH_KEY, true);
|
|
973
1016
|
const EntitySwitch = ({children}) => {
|
|
974
|
-
var _a;
|
|
1017
|
+
var _a, _b;
|
|
975
1018
|
const {entity} = useEntity();
|
|
976
|
-
const
|
|
1019
|
+
const apis = useApiHolder();
|
|
1020
|
+
const results = useElementFilter(children, (collection) => collection.selectByComponentData({
|
|
977
1021
|
key: ENTITY_SWITCH_KEY,
|
|
978
1022
|
withStrictError: "Child of EntitySwitch is not an EntitySwitch.Case"
|
|
979
1023
|
}).getElements().flatMap((element) => {
|
|
1024
|
+
var _a2;
|
|
980
1025
|
const {if: condition, children: elementsChildren} = element.props;
|
|
981
|
-
return [
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
1026
|
+
return [
|
|
1027
|
+
{
|
|
1028
|
+
if: (_a2 = condition == null ? void 0 : condition(entity, {apis})) != null ? _a2 : true,
|
|
1029
|
+
children: elementsChildren
|
|
1030
|
+
}
|
|
1031
|
+
];
|
|
1032
|
+
}), [apis, entity]);
|
|
1033
|
+
const hasAsyncCases = results.some((r) => typeof r.if === "object" && "then" in r.if);
|
|
1034
|
+
if (hasAsyncCases) {
|
|
1035
|
+
return /* @__PURE__ */ React.createElement(AsyncEntitySwitch, {
|
|
1036
|
+
results
|
|
1037
|
+
});
|
|
1038
|
+
}
|
|
1039
|
+
return (_b = (_a = results.find((r) => r.if)) == null ? void 0 : _a.children) != null ? _b : null;
|
|
985
1040
|
};
|
|
1041
|
+
function AsyncEntitySwitch({results}) {
|
|
1042
|
+
const {loading, value} = useAsync(async () => {
|
|
1043
|
+
var _a;
|
|
1044
|
+
const promises = results.map(async ({if: condition, children: output}) => {
|
|
1045
|
+
try {
|
|
1046
|
+
if (await condition) {
|
|
1047
|
+
return output;
|
|
1048
|
+
}
|
|
1049
|
+
} catch {
|
|
1050
|
+
}
|
|
1051
|
+
return null;
|
|
1052
|
+
});
|
|
1053
|
+
return (_a = (await Promise.all(promises)).find(Boolean)) != null ? _a : null;
|
|
1054
|
+
}, [results]);
|
|
1055
|
+
if (loading || !value) {
|
|
1056
|
+
return null;
|
|
1057
|
+
}
|
|
1058
|
+
return value;
|
|
1059
|
+
}
|
|
986
1060
|
EntitySwitch.Case = EntitySwitchCase;
|
|
987
1061
|
|
|
988
1062
|
function strCmp(a, b) {
|
|
989
|
-
return Boolean(a && (a == null ? void 0 : a.
|
|
1063
|
+
return Boolean(a && (a == null ? void 0 : a.toLocaleLowerCase("en-US")) === (b == null ? void 0 : b.toLocaleLowerCase("en-US")));
|
|
990
1064
|
}
|
|
991
1065
|
function isKind(kind) {
|
|
992
1066
|
return (entity) => strCmp(entity == null ? void 0 : entity.kind, kind);
|
|
@@ -1174,10 +1248,10 @@ const EntityLoader = (props) => /* @__PURE__ */ React.createElement(AsyncEntityP
|
|
|
1174
1248
|
const Router = ({
|
|
1175
1249
|
EntityPage = DefaultEntityPage
|
|
1176
1250
|
}) => /* @__PURE__ */ React.createElement(Routes, null, /* @__PURE__ */ React.createElement(Route$1, {
|
|
1177
|
-
path:
|
|
1251
|
+
path: "/",
|
|
1178
1252
|
element: /* @__PURE__ */ React.createElement(CatalogPage, null)
|
|
1179
1253
|
}), /* @__PURE__ */ React.createElement(Route$1, {
|
|
1180
|
-
path:
|
|
1254
|
+
path: "/:namespace/:kind/:name",
|
|
1181
1255
|
element: /* @__PURE__ */ React.createElement(EntityLoader, null, /* @__PURE__ */ React.createElement(EntityPageSwitch, {
|
|
1182
1256
|
EntityPage
|
|
1183
1257
|
}))
|
|
@@ -1196,6 +1270,11 @@ const catalogPlugin = createPlugin({
|
|
|
1196
1270
|
client: new CatalogClient({discoveryApi}),
|
|
1197
1271
|
identityApi
|
|
1198
1272
|
})
|
|
1273
|
+
}),
|
|
1274
|
+
createApiFactory({
|
|
1275
|
+
api: starredEntitiesApiRef,
|
|
1276
|
+
deps: {storageApi: storageApiRef},
|
|
1277
|
+
factory: ({storageApi}) => new DefaultStarredEntitiesApi({storageApi})
|
|
1199
1278
|
})
|
|
1200
1279
|
],
|
|
1201
1280
|
routes: {
|
|
@@ -1208,63 +1287,75 @@ const catalogPlugin = createPlugin({
|
|
|
1208
1287
|
}
|
|
1209
1288
|
});
|
|
1210
1289
|
const CatalogIndexPage = catalogPlugin.provide(createRoutableExtension({
|
|
1211
|
-
|
|
1290
|
+
name: "CatalogIndexPage",
|
|
1291
|
+
component: () => import('./index-a5cb6379.esm.js').then((m) => m.CatalogPage),
|
|
1212
1292
|
mountPoint: catalogRouteRef
|
|
1213
1293
|
}));
|
|
1214
1294
|
const CatalogEntityPage = catalogPlugin.provide(createRoutableExtension({
|
|
1295
|
+
name: "CatalogEntityPage",
|
|
1215
1296
|
component: () => import('./index-7b0e3438.esm.js').then((m) => m.CatalogEntityPage),
|
|
1216
1297
|
mountPoint: entityRouteRef
|
|
1217
1298
|
}));
|
|
1218
1299
|
const EntityAboutCard = catalogPlugin.provide(createComponentExtension({
|
|
1300
|
+
name: "EntityAboutCard",
|
|
1219
1301
|
component: {
|
|
1220
|
-
lazy: () => import('./index-
|
|
1302
|
+
lazy: () => import('./index-66b84bce.esm.js').then((m) => m.AboutCard)
|
|
1221
1303
|
}
|
|
1222
1304
|
}));
|
|
1223
1305
|
const EntityLinksCard = catalogPlugin.provide(createComponentExtension({
|
|
1306
|
+
name: "EntityLinksCard",
|
|
1224
1307
|
component: {
|
|
1225
|
-
lazy: () => import('./index-
|
|
1308
|
+
lazy: () => import('./index-f9a9eace.esm.js').then((m) => m.EntityLinksCard)
|
|
1226
1309
|
}
|
|
1227
1310
|
}));
|
|
1228
1311
|
const EntityHasSystemsCard = catalogPlugin.provide(createComponentExtension({
|
|
1312
|
+
name: "EntityHasSystemsCard",
|
|
1229
1313
|
component: {
|
|
1230
1314
|
lazy: () => import('./index-55d1a69b.esm.js').then((m) => m.HasSystemsCard)
|
|
1231
1315
|
}
|
|
1232
1316
|
}));
|
|
1233
1317
|
const EntityHasComponentsCard = catalogPlugin.provide(createComponentExtension({
|
|
1318
|
+
name: "EntityHasComponentsCard",
|
|
1234
1319
|
component: {
|
|
1235
1320
|
lazy: () => import('./index-e3a14e6d.esm.js').then((m) => m.HasComponentsCard)
|
|
1236
1321
|
}
|
|
1237
1322
|
}));
|
|
1238
1323
|
const EntityHasSubcomponentsCard = catalogPlugin.provide(createComponentExtension({
|
|
1324
|
+
name: "EntityHasSubcomponentsCard",
|
|
1239
1325
|
component: {
|
|
1240
1326
|
lazy: () => import('./index-ef2084a6.esm.js').then((m) => m.HasSubcomponentsCard)
|
|
1241
1327
|
}
|
|
1242
1328
|
}));
|
|
1243
1329
|
const EntityHasResourcesCard = catalogPlugin.provide(createComponentExtension({
|
|
1330
|
+
name: "EntityHasResourcesCard",
|
|
1244
1331
|
component: {
|
|
1245
1332
|
lazy: () => import('./index-f2f98d41.esm.js').then((m) => m.HasResourcesCard)
|
|
1246
1333
|
}
|
|
1247
1334
|
}));
|
|
1248
1335
|
const EntityDependsOnComponentsCard = catalogPlugin.provide(createComponentExtension({
|
|
1336
|
+
name: "EntityDependsOnComponentsCard",
|
|
1249
1337
|
component: {
|
|
1250
1338
|
lazy: () => import('./index-99e3a23f.esm.js').then((m) => m.DependsOnComponentsCard)
|
|
1251
1339
|
}
|
|
1252
1340
|
}));
|
|
1253
1341
|
const EntityDependencyOfComponentsCard = catalogPlugin.provide(createComponentExtension({
|
|
1342
|
+
name: "EntityDependencyOfComponentsCard",
|
|
1254
1343
|
component: {
|
|
1255
1344
|
lazy: () => import('./index-112e4b31.esm.js').then((m) => m.DependencyOfComponentsCard)
|
|
1256
1345
|
}
|
|
1257
1346
|
}));
|
|
1258
1347
|
const EntityDependsOnResourcesCard = catalogPlugin.provide(createComponentExtension({
|
|
1348
|
+
name: "EntityDependsOnResourcesCard",
|
|
1259
1349
|
component: {
|
|
1260
1350
|
lazy: () => import('./index-8f587acc.esm.js').then((m) => m.DependsOnResourcesCard)
|
|
1261
1351
|
}
|
|
1262
1352
|
}));
|
|
1263
1353
|
const EntitySystemDiagramCard = catalogPlugin.provide(createComponentExtension({
|
|
1354
|
+
name: "EntitySystemDiagramCard",
|
|
1264
1355
|
component: {
|
|
1265
|
-
lazy: () => import('./index-
|
|
1356
|
+
lazy: () => import('./index-fc057bf8.esm.js').then((m) => m.SystemDiagramCard)
|
|
1266
1357
|
}
|
|
1267
1358
|
}));
|
|
1268
1359
|
|
|
1269
1360
|
export { AboutCard as A, EntityOrphanWarning as B, CatalogPage as C, isOrphan as D, EntityAboutCard as E, EntityProcessingErrorsPanel as F, hasCatalogProcessingErrors as G, EntityPageLayout as H, EntitySwitch as I, isKind as J, isNamespace as K, isComponentType as L, FilteredEntityLayout as M, FilterContainer as N, EntityListContainer as O, Router as R, AboutContent as a, AboutField as b, CatalogClientWrapper as c, CatalogTable as d, CatalogEntityPage as e, CatalogIndexPage as f, catalogPlugin as g, EntityDependencyOfComponentsCard as h, EntityDependsOnComponentsCard as i, EntityDependsOnResourcesCard as j, EntityHasComponentsCard as k, EntityHasResourcesCard as l, EntityHasSubcomponentsCard as m, EntityHasSystemsCard as n, EntityLinksCard as o, EntitySystemDiagramCard as p, CatalogKindHeader as q, CatalogResultListItem as r, createNameColumn as s, createSystemColumn as t, createOwnerColumn as u, createSpecTypeColumn as v, createSpecLifecycleColumn as w, createMetadataDescriptionColumn as x, createTagsColumn as y, EntityLayout as z };
|
|
1270
|
-
//# sourceMappingURL=index-
|
|
1361
|
+
//# sourceMappingURL=index-0e602309.esm.js.map
|