@backstage/plugin-catalog 0.7.6 → 0.7.9

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.
Files changed (36) hide show
  1. package/CHANGELOG.md +67 -0
  2. package/dist/esm/{index-09f72bec.esm.js → index-1d9c4228.esm.js} +2 -2
  3. package/dist/esm/{index-09f72bec.esm.js.map → index-1d9c4228.esm.js.map} +1 -1
  4. package/dist/esm/{index-96cd0b79.esm.js → index-57f985a3.esm.js} +4 -3
  5. package/dist/esm/index-57f985a3.esm.js.map +1 -0
  6. package/dist/esm/index-5f548c06.esm.js +6 -0
  7. package/dist/esm/index-5f548c06.esm.js.map +1 -0
  8. package/dist/esm/{index-f4427460.esm.js → index-76b6bb58.esm.js} +2 -2
  9. package/dist/esm/{index-f4427460.esm.js.map → index-76b6bb58.esm.js.map} +1 -1
  10. package/dist/esm/{index-66d685f8.esm.js → index-9e441058.esm.js} +53 -60
  11. package/dist/esm/index-9e441058.esm.js.map +1 -0
  12. package/dist/esm/{index-00a86fa7.esm.js → index-a41d9b20.esm.js} +4 -3
  13. package/dist/esm/index-a41d9b20.esm.js.map +1 -0
  14. package/dist/esm/{index-0d1fd1c3.esm.js → index-acc2d5cf.esm.js} +2 -2
  15. package/dist/esm/{index-0d1fd1c3.esm.js.map → index-acc2d5cf.esm.js.map} +1 -1
  16. package/dist/esm/{index-a83cc17f.esm.js → index-ae83ecd3.esm.js} +2 -2
  17. package/dist/esm/{index-a83cc17f.esm.js.map → index-ae83ecd3.esm.js.map} +1 -1
  18. package/dist/esm/{index-c9b0afd8.esm.js → index-d363820f.esm.js} +2 -2
  19. package/dist/esm/index-d363820f.esm.js.map +1 -0
  20. package/dist/esm/{index-ca3eb997.esm.js → index-dd3d0aa1.esm.js} +2 -2
  21. package/dist/esm/{index-ca3eb997.esm.js.map → index-dd3d0aa1.esm.js.map} +1 -1
  22. package/dist/esm/{index-6cad9618.esm.js → index-e48f93af.esm.js} +2 -2
  23. package/dist/esm/{index-6cad9618.esm.js.map → index-e48f93af.esm.js.map} +1 -1
  24. package/dist/esm/{index-45f1acd4.esm.js → index-f38c05cb.esm.js} +2 -2
  25. package/dist/esm/{index-45f1acd4.esm.js.map → index-f38c05cb.esm.js.map} +1 -1
  26. package/dist/esm/{presets-42c2cb51.esm.js → presets-711f07f8.esm.js} +13 -12
  27. package/dist/esm/presets-711f07f8.esm.js.map +1 -0
  28. package/dist/index.d.ts +19 -3
  29. package/dist/index.esm.js +3 -2
  30. package/dist/index.esm.js.map +1 -1
  31. package/package.json +15 -13
  32. package/dist/esm/index-00a86fa7.esm.js.map +0 -1
  33. package/dist/esm/index-66d685f8.esm.js.map +0 -1
  34. package/dist/esm/index-96cd0b79.esm.js.map +0 -1
  35. package/dist/esm/index-c9b0afd8.esm.js.map +0 -1
  36. package/dist/esm/presets-42c2cb51.esm.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,72 @@
1
1
  # @backstage/plugin-catalog
2
2
 
3
+ ## 0.7.9
4
+
5
+ ### Patch Changes
6
+
7
+ - 7ba416be78: **@backstage/plugin-user-settings:** Hide Header on mobile screens to improve the UI & give more space to the content. Furthermore, the "Pin Sidebar" setting is removed on mobile screens, as the mobile sidebar is always pinned to the bottom.
8
+
9
+ **Other plugins:** Smaller style adjustments across plugins to improve the UI on mobile devices.
10
+
11
+ - 51fbedc445: Migrated usage of deprecated `IdentityApi` methods.
12
+ - c54c0d9d10: Add permission check to unregister entity button
13
+
14
+ If the permissions framework is disabled, this change should have no effect. If the permission framework is enabled, the unregister entity button will be disabled for those who do not have access to the `catalogEntityDeletePermission` as specified in your permission policy.
15
+
16
+ - 61ded2a863: Export the `RelatedEntitiesCard` component which is helpful in case you want to model custom relations between entities
17
+ - 2b27e49eb1: Internal update to match status field changes in `@backstage/catalog-model`.
18
+ - Updated dependencies
19
+ - @backstage/core-components@0.8.5
20
+ - @backstage/core-plugin-api@0.6.0
21
+ - @backstage/plugin-catalog-react@0.6.12
22
+ - @backstage/plugin-catalog-common@0.1.1
23
+ - @backstage/catalog-model@0.9.10
24
+ - @backstage/catalog-client@0.5.5
25
+ - @backstage/integration-react@0.1.19
26
+
27
+ ## 0.7.9-next.0
28
+
29
+ ### Patch Changes
30
+
31
+ - 7ba416be78: **@backstage/plugin-user-settings:** Hide Header on mobile screens to improve the UI & give more space to the content. Furthermore, the "Pin Sidebar" setting is removed on mobile screens, as the mobile sidebar is always pinned to the bottom.
32
+
33
+ **Other plugins:** Smaller style adjustments across plugins to improve the UI on mobile devices.
34
+
35
+ - 51fbedc445: Migrated usage of deprecated `IdentityApi` methods.
36
+ - 2b27e49eb1: Internal update to match status field changes in `@backstage/catalog-model`.
37
+ - Updated dependencies
38
+ - @backstage/core-components@0.8.5-next.0
39
+ - @backstage/core-plugin-api@0.6.0-next.0
40
+ - @backstage/plugin-catalog-react@0.6.12-next.0
41
+ - @backstage/catalog-model@0.9.10-next.0
42
+ - @backstage/integration-react@0.1.19-next.0
43
+ - @backstage/catalog-client@0.5.5-next.0
44
+
45
+ ## 0.7.8
46
+
47
+ ### Patch Changes
48
+
49
+ - Updated dependencies
50
+ - @backstage/core-components@0.8.4
51
+ - @backstage/core-plugin-api@0.5.0
52
+ - @backstage/plugin-catalog-react@0.6.11
53
+ - @backstage/errors@0.2.0
54
+ - @backstage/catalog-client@0.5.4
55
+ - @backstage/catalog-model@0.9.9
56
+ - @backstage/integration-react@0.1.18
57
+
58
+ ## 0.7.7
59
+
60
+ ### Patch Changes
61
+
62
+ - 4ce51ab0f1: Internal refactor of the `react-use` imports to use `react-use/lib/*` instead.
63
+ - 11b81683a9: Support customizing index page layouts via outlets
64
+ - e195390974: Allow entities from `file` locations to be manually refreshed through the UI
65
+ - Updated dependencies
66
+ - @backstage/core-plugin-api@0.4.1
67
+ - @backstage/plugin-catalog-react@0.6.10
68
+ - @backstage/core-components@0.8.3
69
+
3
70
  ## 0.7.6
4
71
 
5
72
  ### Patch Changes
@@ -1,6 +1,6 @@
1
1
  import { RELATION_DEPENDS_ON } from '@backstage/catalog-model';
2
2
  import React from 'react';
3
- import { R as RelatedEntitiesCard, r as resourceEntityColumns, d as componentEntityHelpLink, f as asResourceEntities } from './presets-42c2cb51.esm.js';
3
+ import { R as RelatedEntitiesCard, r as resourceEntityColumns, d as componentEntityHelpLink, f as asResourceEntities } from './presets-711f07f8.esm.js';
4
4
  import '@material-ui/core';
5
5
  import '@backstage/plugin-catalog-react';
6
6
  import '@backstage/core-components';
@@ -19,4 +19,4 @@ const DependsOnResourcesCard = ({ variant = "gridItem" }) => {
19
19
  };
20
20
 
21
21
  export { DependsOnResourcesCard };
22
- //# sourceMappingURL=index-09f72bec.esm.js.map
22
+ //# sourceMappingURL=index-1d9c4228.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-09f72bec.esm.js","sources":["../../src/components/DependsOnResourcesCard/DependsOnResourcesCard.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { RELATION_DEPENDS_ON } from '@backstage/catalog-model';\nimport React from 'react';\nimport {\n asResourceEntities,\n componentEntityHelpLink,\n RelatedEntitiesCard,\n resourceEntityColumns,\n} from '../RelatedEntitiesCard';\n\ntype Props = {\n variant?: 'gridItem';\n};\n\nexport const DependsOnResourcesCard = ({ variant = 'gridItem' }: Props) => {\n return (\n <RelatedEntitiesCard\n variant={variant}\n title=\"Depends on resources\"\n entityKind=\"Resource\"\n relationType={RELATION_DEPENDS_ON}\n columns={resourceEntityColumns}\n emptyMessage=\"No resource is a dependency of this component\"\n emptyHelpLink={componentEntityHelpLink}\n asRenderableEntities={asResourceEntities}\n />\n );\n};\n"],"names":[],"mappings":";;;;;;;MA6Ba,yBAAyB,CAAC,EAAE,UAAU,iBAAwB;AACzE,6CACG,qBAAD;AAAA,IACE;AAAA,IACA,OAAM;AAAA,IACN,YAAW;AAAA,IACX,cAAc;AAAA,IACd,SAAS;AAAA,IACT,cAAa;AAAA,IACb,eAAe;AAAA,IACf,sBAAsB;AAAA;AAAA;;;;"}
1
+ {"version":3,"file":"index-1d9c4228.esm.js","sources":["../../src/components/DependsOnResourcesCard/DependsOnResourcesCard.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { RELATION_DEPENDS_ON } from '@backstage/catalog-model';\nimport React from 'react';\nimport {\n asResourceEntities,\n componentEntityHelpLink,\n RelatedEntitiesCard,\n resourceEntityColumns,\n} from '../RelatedEntitiesCard';\n\ntype Props = {\n variant?: 'gridItem';\n};\n\nexport const DependsOnResourcesCard = ({ variant = 'gridItem' }: Props) => {\n return (\n <RelatedEntitiesCard\n variant={variant}\n title=\"Depends on resources\"\n entityKind=\"Resource\"\n relationType={RELATION_DEPENDS_ON}\n columns={resourceEntityColumns}\n emptyMessage=\"No resource is a dependency of this component\"\n emptyHelpLink={componentEntityHelpLink}\n asRenderableEntities={asResourceEntities}\n />\n );\n};\n"],"names":[],"mappings":";;;;;;;MA6Ba,yBAAyB,CAAC,EAAE,UAAU,iBAAwB;AACzE,6CACG,qBAAD;AAAA,IACE;AAAA,IACA,OAAM;AAAA,IACN,YAAW;AAAA,IACX,cAAc;AAAA,IACd,SAAS;AAAA,IACT,cAAa;AAAA,IACb,eAAe;AAAA,IACf,sBAAsB;AAAA;AAAA;;;;"}
@@ -1,4 +1,4 @@
1
- export { A as AboutCard, a as AboutContent, b as AboutField } from './index-66d685f8.esm.js';
1
+ export { A as AboutCard, a as AboutContent, b as AboutField } from './index-9e441058.esm.js';
2
2
  import '@backstage/catalog-model';
3
3
  import '@backstage/core-components';
4
4
  import '@backstage/core-plugin-api';
@@ -16,10 +16,11 @@ import 'react-router';
16
16
  import '@material-ui/core/styles';
17
17
  import '@material-ui/icons/Cancel';
18
18
  import '@material-ui/icons/MoreVert';
19
+ import '@backstage/plugin-catalog-common';
19
20
  import '@backstage/errors';
20
21
  import '@backstage/catalog-client';
21
- import 'react-use';
22
+ import 'react-use/lib/useAsync';
22
23
  import 'react-helmet';
23
24
  import '@material-ui/icons/FilterList';
24
25
  import '../components/EntityNotFound/Illo/illo.svg';
25
- //# sourceMappingURL=index-96cd0b79.esm.js.map
26
+ //# sourceMappingURL=index-57f985a3.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-57f985a3.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,6 @@
1
+ export { R as RelatedEntitiesCard, e as asComponentEntities, f as asResourceEntities, a as asSystemEntities, c as componentEntityColumns, d as componentEntityHelpLink, r as resourceEntityColumns, g as resourceEntityHelpLink, s as systemEntityColumns, b as systemEntityHelpLink } from './presets-711f07f8.esm.js';
2
+ import '@material-ui/core';
3
+ import '@backstage/plugin-catalog-react';
4
+ import 'react';
5
+ import '@backstage/core-components';
6
+ //# sourceMappingURL=index-5f548c06.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-5f548c06.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,6 +1,6 @@
1
1
  import { RELATION_DEPENDENCY_OF } from '@backstage/catalog-model';
2
2
  import React from 'react';
3
- import { R as RelatedEntitiesCard, c as componentEntityColumns, d as componentEntityHelpLink, e as asComponentEntities } from './presets-42c2cb51.esm.js';
3
+ import { R as RelatedEntitiesCard, c as componentEntityColumns, d as componentEntityHelpLink, e as asComponentEntities } from './presets-711f07f8.esm.js';
4
4
  import '@material-ui/core';
5
5
  import '@backstage/plugin-catalog-react';
6
6
  import '@backstage/core-components';
@@ -22,4 +22,4 @@ const DependencyOfComponentsCard = ({
22
22
  };
23
23
 
24
24
  export { DependencyOfComponentsCard };
25
- //# sourceMappingURL=index-f4427460.esm.js.map
25
+ //# sourceMappingURL=index-76b6bb58.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-f4427460.esm.js","sources":["../../src/components/DependencyOfComponentsCard/DependencyOfComponentsCard.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { RELATION_DEPENDENCY_OF } from '@backstage/catalog-model';\nimport React from 'react';\nimport {\n asComponentEntities,\n componentEntityColumns,\n componentEntityHelpLink,\n RelatedEntitiesCard,\n} from '../RelatedEntitiesCard';\n\ntype Props = {\n variant?: 'gridItem';\n title?: string;\n};\n\nexport const DependencyOfComponentsCard = ({\n variant = 'gridItem',\n title = 'Dependency of components',\n}: Props) => {\n return (\n <RelatedEntitiesCard\n variant={variant}\n title={title}\n entityKind=\"Component\"\n relationType={RELATION_DEPENDENCY_OF}\n columns={componentEntityColumns}\n emptyMessage=\"No component depends on this component\"\n emptyHelpLink={componentEntityHelpLink}\n asRenderableEntities={asComponentEntities}\n />\n );\n};\n"],"names":[],"mappings":";;;;;;;MA8Ba,6BAA6B,CAAC;AAAA,EACzC,UAAU;AAAA,EACV,QAAQ;AAAA,MACG;AACX,6CACG,qBAAD;AAAA,IACE;AAAA,IACA;AAAA,IACA,YAAW;AAAA,IACX,cAAc;AAAA,IACd,SAAS;AAAA,IACT,cAAa;AAAA,IACb,eAAe;AAAA,IACf,sBAAsB;AAAA;AAAA;;;;"}
1
+ {"version":3,"file":"index-76b6bb58.esm.js","sources":["../../src/components/DependencyOfComponentsCard/DependencyOfComponentsCard.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { RELATION_DEPENDENCY_OF } from '@backstage/catalog-model';\nimport React from 'react';\nimport {\n asComponentEntities,\n componentEntityColumns,\n componentEntityHelpLink,\n RelatedEntitiesCard,\n} from '../RelatedEntitiesCard';\n\ntype Props = {\n variant?: 'gridItem';\n title?: string;\n};\n\nexport const DependencyOfComponentsCard = ({\n variant = 'gridItem',\n title = 'Dependency of components',\n}: Props) => {\n return (\n <RelatedEntitiesCard\n variant={variant}\n title={title}\n entityKind=\"Component\"\n relationType={RELATION_DEPENDENCY_OF}\n columns={componentEntityColumns}\n emptyMessage=\"No component depends on this component\"\n emptyHelpLink={componentEntityHelpLink}\n asRenderableEntities={asComponentEntities}\n />\n );\n};\n"],"names":[],"mappings":";;;;;;;MA8Ba,6BAA6B,CAAC;AAAA,EACzC,UAAU;AAAA,EACV,QAAQ;AAAA,MACG;AACX,6CACG,qBAAD;AAAA,IACE;AAAA,IACA;AAAA,IACA,YAAW;AAAA,IACX,cAAc;AAAA,IACd,SAAS;AAAA,IACT,cAAa;AAAA,IACb,eAAe;AAAA,IACf,sBAAsB;AAAA;AAAA;;;;"}
@@ -2,7 +2,7 @@ import { RELATION_PART_OF, RELATION_OWNED_BY, ENTITY_DEFAULT_NAMESPACE, LOCATION
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
3
  import { createExternalRouteRef, useElementFilter, useApi, alertApiRef, useRouteRef, attachComponentData, useApiHolder, configApiRef, createPlugin, createApiFactory, discoveryApiRef, fetchApiRef, 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, 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';
5
+ import { getEntityRelations, EntityRefLinks, useEntity, catalogApiRef, getEntitySourceLocation, getEntityMetadataEditUrl, useEntityKinds, useEntityListProvider, EntityKindFilter, formatEntityRefTitle, EntityRefLink, useStarredEntities, getEntityMetadataViewUrl, favoriteEntityIcon, favoriteEntityTooltip, useEntityPermission, 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 } from '@material-ui/core';
7
7
  import CachedIcon from '@material-ui/icons/Cached';
8
8
  import DocsIcon from '@material-ui/icons/Description';
@@ -11,13 +11,14 @@ import React, { useCallback, useState, useEffect, useMemo, useContext } from 're
11
11
  import OpenInNew from '@material-ui/icons/OpenInNew';
12
12
  import { capitalize as capitalize$1 } from 'lodash';
13
13
  import { Alert } from '@material-ui/lab';
14
- import { useNavigate, useParams, Navigate, matchRoutes, useRoutes, Routes, Route as Route$1 } from 'react-router';
14
+ import { useNavigate, useParams, Navigate, matchRoutes, useRoutes, useOutlet, Routes, Route as Route$1 } from 'react-router';
15
15
  import { makeStyles as makeStyles$1 } from '@material-ui/core/styles';
16
16
  import Cancel from '@material-ui/icons/Cancel';
17
17
  import MoreVert from '@material-ui/icons/MoreVert';
18
+ import { catalogEntityDeletePermission } from '@backstage/plugin-catalog-common';
18
19
  import { assertError } from '@backstage/errors';
19
20
  import { ENTITY_STATUS_CATALOG_PROCESSING_TYPE, CatalogClient } from '@backstage/catalog-client';
20
- import { useAsync } from 'react-use';
21
+ import useAsync from 'react-use/lib/useAsync';
21
22
  import { Helmet } from 'react-helmet';
22
23
  import FilterListIcon from '@material-ui/icons/FilterList';
23
24
  import IlloSvgUrl from '../components/EntityNotFound/Illo/illo.svg';
@@ -28,64 +29,40 @@ class CatalogClientWrapper {
28
29
  this.identityApi = options.identityApi;
29
30
  }
30
31
  async getLocationById(id, options) {
31
- var _a;
32
- return await this.client.getLocationById(id, {
33
- token: (_a = options == null ? void 0 : options.token) != null ? _a : await this.identityApi.getIdToken()
34
- });
32
+ return await this.client.getLocationById(id, await this.getCredentials(options));
35
33
  }
36
34
  async getEntities(request, options) {
37
- var _a;
38
- return await this.client.getEntities(request, {
39
- token: (_a = options == null ? void 0 : options.token) != null ? _a : await this.identityApi.getIdToken()
40
- });
35
+ return await this.client.getEntities(request, await this.getCredentials(options));
41
36
  }
42
37
  async getEntityByName(compoundName, options) {
43
- var _a;
44
- return await this.client.getEntityByName(compoundName, {
45
- token: (_a = options == null ? void 0 : options.token) != null ? _a : await this.identityApi.getIdToken()
46
- });
38
+ return await this.client.getEntityByName(compoundName, await this.getCredentials(options));
47
39
  }
48
40
  async addLocation(request, options) {
49
- var _a;
50
- return await this.client.addLocation(request, {
51
- token: (_a = options == null ? void 0 : options.token) != null ? _a : await this.identityApi.getIdToken()
52
- });
41
+ return await this.client.addLocation(request, await this.getCredentials(options));
53
42
  }
54
43
  async getOriginLocationByEntity(entity, options) {
55
- var _a;
56
- return await this.client.getOriginLocationByEntity(entity, {
57
- token: (_a = options == null ? void 0 : options.token) != null ? _a : await this.identityApi.getIdToken()
58
- });
44
+ return await this.client.getOriginLocationByEntity(entity, await this.getCredentials(options));
59
45
  }
60
46
  async getLocationByEntity(entity, options) {
61
- var _a;
62
- return await this.client.getLocationByEntity(entity, {
63
- token: (_a = options == null ? void 0 : options.token) != null ? _a : await this.identityApi.getIdToken()
64
- });
47
+ return await this.client.getLocationByEntity(entity, await this.getCredentials(options));
65
48
  }
66
49
  async removeLocationById(id, options) {
67
- var _a;
68
- return await this.client.removeLocationById(id, {
69
- token: (_a = options == null ? void 0 : options.token) != null ? _a : await this.identityApi.getIdToken()
70
- });
50
+ return await this.client.removeLocationById(id, await this.getCredentials(options));
71
51
  }
72
52
  async removeEntityByUid(uid, options) {
73
- var _a;
74
- return await this.client.removeEntityByUid(uid, {
75
- token: (_a = options == null ? void 0 : options.token) != null ? _a : await this.identityApi.getIdToken()
76
- });
53
+ return await this.client.removeEntityByUid(uid, await this.getCredentials(options));
77
54
  }
78
55
  async refreshEntity(entityRef, options) {
79
- var _a;
80
- return await this.client.refreshEntity(entityRef, {
81
- token: (_a = options == null ? void 0 : options.token) != null ? _a : await this.identityApi.getIdToken()
82
- });
56
+ return await this.client.refreshEntity(entityRef, await this.getCredentials(options));
83
57
  }
84
58
  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
- });
59
+ return await this.client.getEntityAncestors(request, await this.getCredentials(options));
60
+ }
61
+ async getCredentials(options) {
62
+ if (options == null ? void 0 : options.token) {
63
+ return { token: options == null ? void 0 : options.token };
64
+ }
65
+ return this.identityApi.getCredentials();
89
66
  }
90
67
  }
91
68
 
@@ -233,7 +210,7 @@ const useStyles$5 = makeStyles({
233
210
  }
234
211
  });
235
212
  function AboutCard({ variant }) {
236
- var _a, _b, _c;
213
+ var _a, _b;
237
214
  const classes = useStyles$5();
238
215
  const { entity } = useEntity();
239
216
  const scmIntegrationsApi = useApi(scmIntegrationsApiRef);
@@ -272,7 +249,8 @@ function AboutCard({ variant }) {
272
249
  } else if (variant === "fullHeight") {
273
250
  cardContentClass = classes.fullHeightCardContent;
274
251
  }
275
- const isUrl = (_c = (_b = entity.metadata.annotations) == null ? void 0 : _b[LOCATION_ANNOTATION]) == null ? void 0 : _c.startsWith("url:");
252
+ const entityLocation = (_b = entity.metadata.annotations) == null ? void 0 : _b[LOCATION_ANNOTATION];
253
+ const allowRefresh = (entityLocation == null ? void 0 : entityLocation.startsWith("url:")) || (entityLocation == null ? void 0 : entityLocation.startsWith("file:"));
276
254
  const refreshEntity = useCallback(async () => {
277
255
  await catalogApi.refreshEntity(stringifyEntityRef(entity));
278
256
  alertApi.post({ message: "Refresh scheduled", severity: "info" });
@@ -281,7 +259,7 @@ function AboutCard({ variant }) {
281
259
  className: cardClass
282
260
  }, /* @__PURE__ */ React.createElement(CardHeader, {
283
261
  title: "About",
284
- action: /* @__PURE__ */ React.createElement(React.Fragment, null, isUrl && /* @__PURE__ */ React.createElement(IconButton, {
262
+ action: /* @__PURE__ */ React.createElement(React.Fragment, null, allowRefresh && /* @__PURE__ */ React.createElement(IconButton, {
285
263
  "aria-label": "Refresh",
286
264
  title: "Schedule entity refresh",
287
265
  onClick: refreshEntity
@@ -343,6 +321,7 @@ const useStyles$3 = makeStyles({
343
321
  },
344
322
  itemText: {
345
323
  width: "100%",
324
+ wordBreak: "break-all",
346
325
  marginBottom: "1rem"
347
326
  }
348
327
  });
@@ -592,6 +571,7 @@ const EntityContextMenu = ({
592
571
  var _a;
593
572
  const [anchorEl, setAnchorEl] = useState();
594
573
  const classes = useStyles$2();
574
+ const unregisterPermission = useEntityPermission(catalogEntityDeletePermission);
595
575
  const onOpen = (event) => {
596
576
  setAnchorEl(event.currentTarget);
597
577
  };
@@ -614,7 +594,7 @@ const EntityContextMenu = ({
614
594
  key: "the divider is here!"
615
595
  })
616
596
  ];
617
- const disableUnregister = (_a = UNSTABLE_contextMenuOptions == null ? void 0 : UNSTABLE_contextMenuOptions.disableUnregister) != null ? _a : false;
597
+ const disableUnregister = (_a = !unregisterPermission.allowed || (UNSTABLE_contextMenuOptions == null ? void 0 : UNSTABLE_contextMenuOptions.disableUnregister)) != null ? _a : false;
618
598
  return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(IconButton, {
619
599
  "aria-label": "more",
620
600
  "aria-controls": "long-menu",
@@ -1119,7 +1099,7 @@ const EntityListContainer = ({ children }) => /* @__PURE__ */ React.createElemen
1119
1099
  lg: 10
1120
1100
  }, children);
1121
1101
 
1122
- const CatalogPage = ({
1102
+ const DefaultCatalogPage = ({
1123
1103
  columns,
1124
1104
  actions,
1125
1105
  initiallySelectedFilter = "owned"
@@ -1143,6 +1123,13 @@ const CatalogPage = ({
1143
1123
  }))))));
1144
1124
  };
1145
1125
 
1126
+ const CatalogPage = (props) => {
1127
+ const outlet = useOutlet();
1128
+ return outlet || /* @__PURE__ */ React.createElement(DefaultCatalogPage, {
1129
+ ...props
1130
+ });
1131
+ };
1132
+
1146
1133
  const useStyles$1 = makeStyles((theme) => ({
1147
1134
  illo: {
1148
1135
  maxWidth: "60%",
@@ -1287,7 +1274,7 @@ const catalogPlugin = createPlugin({
1287
1274
  });
1288
1275
  const CatalogIndexPage = catalogPlugin.provide(createRoutableExtension({
1289
1276
  name: "CatalogIndexPage",
1290
- component: () => import('./index-00a86fa7.esm.js').then((m) => m.CatalogPage),
1277
+ component: () => import('./index-a41d9b20.esm.js').then((m) => m.CatalogPage),
1291
1278
  mountPoint: catalogRouteRef
1292
1279
  }));
1293
1280
  const CatalogEntityPage = catalogPlugin.provide(createRoutableExtension({
@@ -1298,7 +1285,7 @@ const CatalogEntityPage = catalogPlugin.provide(createRoutableExtension({
1298
1285
  const EntityAboutCard = catalogPlugin.provide(createComponentExtension({
1299
1286
  name: "EntityAboutCard",
1300
1287
  component: {
1301
- lazy: () => import('./index-96cd0b79.esm.js').then((m) => m.AboutCard)
1288
+ lazy: () => import('./index-57f985a3.esm.js').then((m) => m.AboutCard)
1302
1289
  }
1303
1290
  }));
1304
1291
  const EntityLinksCard = catalogPlugin.provide(createComponentExtension({
@@ -1310,51 +1297,57 @@ const EntityLinksCard = catalogPlugin.provide(createComponentExtension({
1310
1297
  const EntityHasSystemsCard = catalogPlugin.provide(createComponentExtension({
1311
1298
  name: "EntityHasSystemsCard",
1312
1299
  component: {
1313
- lazy: () => import('./index-0d1fd1c3.esm.js').then((m) => m.HasSystemsCard)
1300
+ lazy: () => import('./index-acc2d5cf.esm.js').then((m) => m.HasSystemsCard)
1314
1301
  }
1315
1302
  }));
1316
1303
  const EntityHasComponentsCard = catalogPlugin.provide(createComponentExtension({
1317
1304
  name: "EntityHasComponentsCard",
1318
1305
  component: {
1319
- lazy: () => import('./index-45f1acd4.esm.js').then((m) => m.HasComponentsCard)
1306
+ lazy: () => import('./index-f38c05cb.esm.js').then((m) => m.HasComponentsCard)
1320
1307
  }
1321
1308
  }));
1322
1309
  const EntityHasSubcomponentsCard = catalogPlugin.provide(createComponentExtension({
1323
1310
  name: "EntityHasSubcomponentsCard",
1324
1311
  component: {
1325
- lazy: () => import('./index-ca3eb997.esm.js').then((m) => m.HasSubcomponentsCard)
1312
+ lazy: () => import('./index-dd3d0aa1.esm.js').then((m) => m.HasSubcomponentsCard)
1326
1313
  }
1327
1314
  }));
1328
1315
  const EntityHasResourcesCard = catalogPlugin.provide(createComponentExtension({
1329
1316
  name: "EntityHasResourcesCard",
1330
1317
  component: {
1331
- lazy: () => import('./index-a83cc17f.esm.js').then((m) => m.HasResourcesCard)
1318
+ lazy: () => import('./index-ae83ecd3.esm.js').then((m) => m.HasResourcesCard)
1332
1319
  }
1333
1320
  }));
1334
1321
  const EntityDependsOnComponentsCard = catalogPlugin.provide(createComponentExtension({
1335
1322
  name: "EntityDependsOnComponentsCard",
1336
1323
  component: {
1337
- lazy: () => import('./index-6cad9618.esm.js').then((m) => m.DependsOnComponentsCard)
1324
+ lazy: () => import('./index-e48f93af.esm.js').then((m) => m.DependsOnComponentsCard)
1338
1325
  }
1339
1326
  }));
1340
1327
  const EntityDependencyOfComponentsCard = catalogPlugin.provide(createComponentExtension({
1341
1328
  name: "EntityDependencyOfComponentsCard",
1342
1329
  component: {
1343
- lazy: () => import('./index-f4427460.esm.js').then((m) => m.DependencyOfComponentsCard)
1330
+ lazy: () => import('./index-76b6bb58.esm.js').then((m) => m.DependencyOfComponentsCard)
1344
1331
  }
1345
1332
  }));
1346
1333
  const EntityDependsOnResourcesCard = catalogPlugin.provide(createComponentExtension({
1347
1334
  name: "EntityDependsOnResourcesCard",
1348
1335
  component: {
1349
- lazy: () => import('./index-09f72bec.esm.js').then((m) => m.DependsOnResourcesCard)
1336
+ lazy: () => import('./index-1d9c4228.esm.js').then((m) => m.DependsOnResourcesCard)
1350
1337
  }
1351
1338
  }));
1352
1339
  const EntitySystemDiagramCard = catalogPlugin.provide(createComponentExtension({
1353
1340
  name: "EntitySystemDiagramCard",
1354
1341
  component: {
1355
- lazy: () => import('./index-c9b0afd8.esm.js').then((m) => m.SystemDiagramCard)
1342
+ lazy: () => import('./index-d363820f.esm.js').then((m) => m.SystemDiagramCard)
1343
+ }
1344
+ }));
1345
+ const RelatedEntitiesCard = catalogPlugin.provide(createComponentExtension({
1346
+ name: "RelatedEntitiesCard",
1347
+ component: {
1348
+ lazy: () => import('./index-5f548c06.esm.js').then((m) => m.RelatedEntitiesCard)
1356
1349
  }
1357
1350
  }));
1358
1351
 
1359
- 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 };
1360
- //# sourceMappingURL=index-66d685f8.esm.js.map
1352
+ export { AboutCard as A, EntityLayout as B, CatalogPage as C, DefaultCatalogPage as D, EntityAboutCard as E, EntityOrphanWarning as F, isOrphan as G, EntityProcessingErrorsPanel as H, hasCatalogProcessingErrors as I, EntityPageLayout as J, EntitySwitch as K, isKind as L, isNamespace as M, isComponentType as N, FilteredEntityLayout as O, FilterContainer as P, EntityListContainer as Q, 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, RelatedEntitiesCard as q, CatalogKindHeader as r, CatalogResultListItem as s, createNameColumn as t, createSystemColumn as u, createOwnerColumn as v, createSpecTypeColumn as w, createSpecLifecycleColumn as x, createMetadataDescriptionColumn as y, createTagsColumn as z };
1353
+ //# sourceMappingURL=index-9e441058.esm.js.map