@backstage/plugin-catalog-react 1.21.0-next.2 → 1.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +39 -0
- package/dist/alpha/blueprints/EntityCardBlueprint.esm.js +0 -4
- package/dist/alpha/blueprints/EntityCardBlueprint.esm.js.map +1 -1
- package/dist/alpha.d.ts +24 -1
- package/dist/alpha.esm.js +1 -0
- package/dist/alpha.esm.js.map +1 -1
- package/dist/components/EntityTable/TitleColumn.esm.js +12 -0
- package/dist/components/EntityTable/TitleColumn.esm.js.map +1 -0
- package/dist/components/EntityTable/columns.esm.js +8 -7
- package/dist/components/EntityTable/columns.esm.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/translation.esm.js +14 -0
- package/dist/translation.esm.js.map +1 -1
- package/package.json +20 -20
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,44 @@
|
|
|
1
1
|
# @backstage/plugin-catalog-react
|
|
2
2
|
|
|
3
|
+
## 1.21.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 0e9ec44: Introduced new `streamEntities` async generator method for the catalog.
|
|
8
|
+
|
|
9
|
+
Catalog API and Catalog Service now includes a `streamEntities` method that allows for streaming entities from the catalog.
|
|
10
|
+
This method is designed to handle large datasets efficiently by processing entities in a stream rather than loading them
|
|
11
|
+
all into memory at once. This is useful when you need to fetch a large number of entities but do not want to use pagination
|
|
12
|
+
or fetch all entities at once.
|
|
13
|
+
|
|
14
|
+
Example usage:
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
const pageStream = catalogClient.streamEntities({ pageSize: 100 }, { token });
|
|
18
|
+
for await (const page of pageStream) {
|
|
19
|
+
// Handle page of entities
|
|
20
|
+
for (const entity of page) {
|
|
21
|
+
console.log(entity);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### Patch Changes
|
|
27
|
+
|
|
28
|
+
- 0174799: Fix a potential race condition in EntityListProvider when selecting filters
|
|
29
|
+
- 4316c11: Catalog table columns support i18n
|
|
30
|
+
- 79ff318: Removed the deprecation warning when not passing an explicit type to `EntityCardBlueprint`. Omitting the type is now intended, allowing the layout to pick the default type instead, typically `content`.
|
|
31
|
+
- ad0f58d: Support `default*` for older packages as this package is in range for breaking `/alpha` changes
|
|
32
|
+
- Updated dependencies
|
|
33
|
+
- @backstage/frontend-plugin-api@0.12.0
|
|
34
|
+
- @backstage/core-plugin-api@1.11.0
|
|
35
|
+
- @backstage/catalog-client@1.12.0
|
|
36
|
+
- @backstage/frontend-test-utils@0.3.6
|
|
37
|
+
- @backstage/core-components@0.18.0
|
|
38
|
+
- @backstage/types@1.2.2
|
|
39
|
+
- @backstage/core-compat-api@0.5.2
|
|
40
|
+
- @backstage/integration-react@1.2.10
|
|
41
|
+
|
|
3
42
|
## 1.21.0-next.2
|
|
4
43
|
|
|
5
44
|
### Minor Changes
|
|
@@ -33,10 +33,6 @@ const EntityCardBlueprint = createExtensionBlueprint({
|
|
|
33
33
|
const finalType = config.type ?? type;
|
|
34
34
|
if (finalType) {
|
|
35
35
|
yield entityCardTypeDataRef(finalType);
|
|
36
|
-
} else {
|
|
37
|
-
console.warn(
|
|
38
|
-
`DEPRECATION WARNING: Not providing type for entity cards is deprecated. Missing from '${node.spec.id}'`
|
|
39
|
-
);
|
|
40
36
|
}
|
|
41
37
|
}
|
|
42
38
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityCardBlueprint.esm.js","sources":["../../../src/alpha/blueprints/EntityCardBlueprint.ts"],"sourcesContent":["/*\n * Copyright 2024 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 ExtensionBoundary,\n coreExtensionData,\n createExtensionBlueprint,\n} from '@backstage/frontend-plugin-api';\nimport {\n entityFilterFunctionDataRef,\n entityFilterExpressionDataRef,\n entityCardTypeDataRef,\n entityCardTypes,\n EntityCardType,\n} from './extensionData';\nimport { createEntityPredicateSchema } from '../predicates/createEntityPredicateSchema';\nimport { EntityPredicate } from '../predicates';\nimport { resolveEntityFilterData } from './resolveEntityFilterData';\nimport { Entity } from '@backstage/catalog-model';\n\n/**\n * @alpha\n * A blueprint for creating cards for the entity pages in the catalog.\n */\nexport const EntityCardBlueprint = createExtensionBlueprint({\n kind: 'entity-card',\n attachTo: { id: 'entity-content:catalog/overview', input: 'cards' },\n output: [\n coreExtensionData.reactElement,\n entityFilterFunctionDataRef.optional(),\n entityFilterExpressionDataRef.optional(),\n entityCardTypeDataRef.optional(),\n ],\n dataRefs: {\n filterFunction: entityFilterFunctionDataRef,\n filterExpression: entityFilterExpressionDataRef,\n type: entityCardTypeDataRef,\n },\n config: {\n schema: {\n filter: z =>\n z.union([z.string(), createEntityPredicateSchema(z)]).optional(),\n type: z => z.enum(entityCardTypes).optional(),\n },\n },\n *factory(\n {\n loader,\n filter,\n type,\n }: {\n loader: () => Promise<JSX.Element>;\n filter?: string | EntityPredicate | ((entity: Entity) => boolean);\n type?: EntityCardType;\n },\n { node, config },\n ) {\n yield coreExtensionData.reactElement(ExtensionBoundary.lazy(node, loader));\n\n yield* resolveEntityFilterData(filter, config, node);\n\n const finalType = config.type ?? type;\n if (finalType) {\n yield entityCardTypeDataRef(finalType);\n }
|
|
1
|
+
{"version":3,"file":"EntityCardBlueprint.esm.js","sources":["../../../src/alpha/blueprints/EntityCardBlueprint.ts"],"sourcesContent":["/*\n * Copyright 2024 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 ExtensionBoundary,\n coreExtensionData,\n createExtensionBlueprint,\n} from '@backstage/frontend-plugin-api';\nimport {\n entityFilterFunctionDataRef,\n entityFilterExpressionDataRef,\n entityCardTypeDataRef,\n entityCardTypes,\n EntityCardType,\n} from './extensionData';\nimport { createEntityPredicateSchema } from '../predicates/createEntityPredicateSchema';\nimport { EntityPredicate } from '../predicates';\nimport { resolveEntityFilterData } from './resolveEntityFilterData';\nimport { Entity } from '@backstage/catalog-model';\n\n/**\n * @alpha\n * A blueprint for creating cards for the entity pages in the catalog.\n */\nexport const EntityCardBlueprint = createExtensionBlueprint({\n kind: 'entity-card',\n attachTo: { id: 'entity-content:catalog/overview', input: 'cards' },\n output: [\n coreExtensionData.reactElement,\n entityFilterFunctionDataRef.optional(),\n entityFilterExpressionDataRef.optional(),\n entityCardTypeDataRef.optional(),\n ],\n dataRefs: {\n filterFunction: entityFilterFunctionDataRef,\n filterExpression: entityFilterExpressionDataRef,\n type: entityCardTypeDataRef,\n },\n config: {\n schema: {\n filter: z =>\n z.union([z.string(), createEntityPredicateSchema(z)]).optional(),\n type: z => z.enum(entityCardTypes).optional(),\n },\n },\n *factory(\n {\n loader,\n filter,\n type,\n }: {\n loader: () => Promise<JSX.Element>;\n filter?: string | EntityPredicate | ((entity: Entity) => boolean);\n type?: EntityCardType;\n },\n { node, config },\n ) {\n yield coreExtensionData.reactElement(ExtensionBoundary.lazy(node, loader));\n\n yield* resolveEntityFilterData(filter, config, node);\n\n const finalType = config.type ?? type;\n if (finalType) {\n yield entityCardTypeDataRef(finalType);\n }\n },\n});\n"],"names":[],"mappings":";;;;;AAqCO,MAAM,sBAAsB,wBAAA,CAAyB;AAAA,EAC1D,IAAA,EAAM,aAAA;AAAA,EACN,QAAA,EAAU,EAAE,EAAA,EAAI,iCAAA,EAAmC,OAAO,OAAA,EAAQ;AAAA,EAClE,MAAA,EAAQ;AAAA,IACN,iBAAA,CAAkB,YAAA;AAAA,IAClB,4BAA4B,QAAA,EAAS;AAAA,IACrC,8BAA8B,QAAA,EAAS;AAAA,IACvC,sBAAsB,QAAA;AAAS,GACjC;AAAA,EACA,QAAA,EAAU;AAAA,IACR,cAAA,EAAgB,2BAAA;AAAA,IAChB,gBAAA,EAAkB,6BAAA;AAAA,IAClB,IAAA,EAAM;AAAA,GACR;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,MAAA,EAAQ;AAAA,MACN,MAAA,EAAQ,CAAA,CAAA,KACN,CAAA,CAAE,KAAA,CAAM,CAAC,CAAA,CAAE,MAAA,EAAO,EAAG,2BAAA,CAA4B,CAAC,CAAC,CAAC,EAAE,QAAA,EAAS;AAAA,MACjE,MAAM,CAAA,CAAA,KAAK,CAAA,CAAE,IAAA,CAAK,eAAe,EAAE,QAAA;AAAS;AAC9C,GACF;AAAA,EACA,CAAC,OAAA,CACC;AAAA,IACE,MAAA;AAAA,IACA,MAAA;AAAA,IACA;AAAA,GACF,EAKA,EAAE,IAAA,EAAM,MAAA,EAAO,EACf;AACA,IAAA,MAAM,kBAAkB,YAAA,CAAa,iBAAA,CAAkB,IAAA,CAAK,IAAA,EAAM,MAAM,CAAC,CAAA;AAEzE,IAAA,OAAO,uBAAA,CAAwB,MAAA,EAAQ,MAAA,EAAQ,IAAI,CAAA;AAEnD,IAAA,MAAM,SAAA,GAAY,OAAO,IAAA,IAAQ,IAAA;AACjC,IAAA,IAAI,SAAA,EAAW;AACb,MAAA,MAAM,sBAAsB,SAAS,CAAA;AAAA,IACvC;AAAA,EACF;AACF,CAAC;;;;"}
|
package/dist/alpha.d.ts
CHANGED
|
@@ -374,6 +374,18 @@ declare const catalogReactTranslationRef: _backstage_core_plugin_api_alpha.Trans
|
|
|
374
374
|
readonly "userListPicker.personalFilter.title": "Personal";
|
|
375
375
|
readonly "userListPicker.personalFilter.ownedLabel": "Owned";
|
|
376
376
|
readonly "userListPicker.personalFilter.starredLabel": "Starred";
|
|
377
|
+
readonly "entityTableColumnTitle.name": "Name";
|
|
378
|
+
readonly "entityTableColumnTitle.type": "Type";
|
|
379
|
+
readonly "entityTableColumnTitle.label": "Label";
|
|
380
|
+
readonly "entityTableColumnTitle.title": "Title";
|
|
381
|
+
readonly "entityTableColumnTitle.description": "Description";
|
|
382
|
+
readonly "entityTableColumnTitle.domain": "Domain";
|
|
383
|
+
readonly "entityTableColumnTitle.system": "System";
|
|
384
|
+
readonly "entityTableColumnTitle.tags": "Tags";
|
|
385
|
+
readonly "entityTableColumnTitle.namespace": "Namespace";
|
|
386
|
+
readonly "entityTableColumnTitle.lifecycle": "Lifecycle";
|
|
387
|
+
readonly "entityTableColumnTitle.owner": "Owner";
|
|
388
|
+
readonly "entityTableColumnTitle.targets": "Targets";
|
|
377
389
|
}>;
|
|
378
390
|
|
|
379
391
|
/**
|
|
@@ -393,4 +405,15 @@ declare function useEntityPermission(permission: ResourcePermission<'catalog-ent
|
|
|
393
405
|
error?: Error;
|
|
394
406
|
};
|
|
395
407
|
|
|
396
|
-
|
|
408
|
+
/**
|
|
409
|
+
* @alpha
|
|
410
|
+
*/
|
|
411
|
+
type EntityTableColumnTitleProps = {
|
|
412
|
+
translationKey: 'name' | 'system' | 'owner' | 'type' | 'lifecycle' | 'namespace' | 'description' | 'tags' | 'targets' | 'title' | 'label' | 'domain';
|
|
413
|
+
};
|
|
414
|
+
/**
|
|
415
|
+
* @alpha
|
|
416
|
+
*/
|
|
417
|
+
declare const EntityTableColumnTitle: ({ translationKey, }: EntityTableColumnTitleProps) => "Title" | "System" | "Domain" | "Lifecycle" | "Namespace" | "Owner" | "Tags" | "Type" | "Name" | "Description" | "Targets" | "Label";
|
|
418
|
+
|
|
419
|
+
export { CatalogFilterBlueprint, EntityCardBlueprint, type EntityCardType, EntityContentBlueprint, EntityContentLayoutBlueprint, type EntityContentLayoutProps, EntityContextMenuItemBlueprint, type EntityContextMenuItemParams, EntityHeaderBlueprint, EntityIconLinkBlueprint, type EntityPredicate, type EntityPredicateExpression, type EntityPredicatePrimitive, type EntityPredicateValue, EntityTableColumnTitle, type EntityTableColumnTitleProps, type UseProps, catalogReactTranslationRef, convertLegacyEntityCardExtension, convertLegacyEntityContentExtension, defaultEntityContentGroups, entityPredicateToFilterFunction, isOwnerOf, useEntityPermission };
|
package/dist/alpha.esm.js
CHANGED
|
@@ -12,4 +12,5 @@ export { entityPredicateToFilterFunction } from './alpha/predicates/entityPredic
|
|
|
12
12
|
export { catalogReactTranslationRef } from './translation.esm.js';
|
|
13
13
|
export { isOwnerOf } from './utils/isOwnerOf.esm.js';
|
|
14
14
|
export { useEntityPermission } from './hooks/useEntityPermission.esm.js';
|
|
15
|
+
export { EntityTableColumnTitle } from './components/EntityTable/TitleColumn.esm.js';
|
|
15
16
|
//# sourceMappingURL=alpha.esm.js.map
|
package/dist/alpha.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alpha.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"alpha.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { useTranslationRef } from '@backstage/frontend-plugin-api';
|
|
2
|
+
import { catalogReactTranslationRef } from '../../translation.esm.js';
|
|
3
|
+
|
|
4
|
+
const EntityTableColumnTitle = ({
|
|
5
|
+
translationKey
|
|
6
|
+
}) => {
|
|
7
|
+
const { t } = useTranslationRef(catalogReactTranslationRef);
|
|
8
|
+
return t(`entityTableColumnTitle.${translationKey}`);
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export { EntityTableColumnTitle };
|
|
12
|
+
//# sourceMappingURL=TitleColumn.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TitleColumn.esm.js","sources":["../../../src/components/EntityTable/TitleColumn.tsx"],"sourcesContent":["/*\n * Copyright 2025 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 { useTranslationRef } from '@backstage/frontend-plugin-api';\nimport { catalogReactTranslationRef } from '../../translation';\n\n/**\n * @alpha\n */\nexport type EntityTableColumnTitleProps = {\n translationKey:\n | 'name'\n | 'system'\n | 'owner'\n | 'type'\n | 'lifecycle'\n | 'namespace'\n | 'description'\n | 'tags'\n | 'targets'\n | 'title'\n | 'label'\n | 'domain';\n};\n\n/**\n * @alpha\n */\nexport const EntityTableColumnTitle = ({\n translationKey,\n}: EntityTableColumnTitleProps) => {\n const { t } = useTranslationRef(catalogReactTranslationRef);\n return t(`entityTableColumnTitle.${translationKey}`);\n};\n"],"names":[],"mappings":";;;AAyCO,MAAM,yBAAyB,CAAC;AAAA,EACrC;AACF,CAAA,KAAmC;AACjC,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,0BAA0B,CAAA;AAC1D,EAAA,OAAO,CAAA,CAAE,CAAA,uBAAA,EAA0B,cAAc,CAAA,CAAE,CAAA;AACrD;;;;"}
|
|
@@ -5,6 +5,7 @@ import { getEntityRelations } from '../../utils/getEntityRelations.esm.js';
|
|
|
5
5
|
import { EntityRefLink } from '../EntityRefLink/EntityRefLink.esm.js';
|
|
6
6
|
import { EntityRefLinks } from '../EntityRefLink/EntityRefLinks.esm.js';
|
|
7
7
|
import { humanizeEntityRef } from '../EntityRefLink/humanize.esm.js';
|
|
8
|
+
import { EntityTableColumnTitle } from './TitleColumn.esm.js';
|
|
8
9
|
|
|
9
10
|
const columnFactories = Object.freeze({
|
|
10
11
|
createEntityRefColumn(options) {
|
|
@@ -15,7 +16,7 @@ const columnFactories = Object.freeze({
|
|
|
15
16
|
});
|
|
16
17
|
}
|
|
17
18
|
return {
|
|
18
|
-
title: "
|
|
19
|
+
title: /* @__PURE__ */ jsx(EntityTableColumnTitle, { translationKey: "name" }),
|
|
19
20
|
highlight: true,
|
|
20
21
|
customFilterAndSearch(filter, entity) {
|
|
21
22
|
return formatContent(entity).includes(filter);
|
|
@@ -62,14 +63,14 @@ const columnFactories = Object.freeze({
|
|
|
62
63
|
},
|
|
63
64
|
createOwnerColumn() {
|
|
64
65
|
return this.createEntityRelationColumn({
|
|
65
|
-
title: "
|
|
66
|
+
title: /* @__PURE__ */ jsx(EntityTableColumnTitle, { translationKey: "type" }),
|
|
66
67
|
relation: RELATION_OWNED_BY,
|
|
67
68
|
defaultKind: "group"
|
|
68
69
|
});
|
|
69
70
|
},
|
|
70
71
|
createDomainColumn() {
|
|
71
72
|
return this.createEntityRelationColumn({
|
|
72
|
-
title: "
|
|
73
|
+
title: /* @__PURE__ */ jsx(EntityTableColumnTitle, { translationKey: "domain" }),
|
|
73
74
|
relation: RELATION_PART_OF,
|
|
74
75
|
defaultKind: "domain",
|
|
75
76
|
filter: {
|
|
@@ -79,7 +80,7 @@ const columnFactories = Object.freeze({
|
|
|
79
80
|
},
|
|
80
81
|
createSystemColumn() {
|
|
81
82
|
return this.createEntityRelationColumn({
|
|
82
|
-
title: "
|
|
83
|
+
title: /* @__PURE__ */ jsx(EntityTableColumnTitle, { translationKey: "system" }),
|
|
83
84
|
relation: RELATION_PART_OF,
|
|
84
85
|
defaultKind: "system",
|
|
85
86
|
filter: {
|
|
@@ -89,7 +90,7 @@ const columnFactories = Object.freeze({
|
|
|
89
90
|
},
|
|
90
91
|
createMetadataDescriptionColumn() {
|
|
91
92
|
return {
|
|
92
|
-
title: "
|
|
93
|
+
title: /* @__PURE__ */ jsx(EntityTableColumnTitle, { translationKey: "description" }),
|
|
93
94
|
field: "metadata.description",
|
|
94
95
|
render: (entity) => /* @__PURE__ */ jsx(
|
|
95
96
|
OverflowTooltip,
|
|
@@ -103,13 +104,13 @@ const columnFactories = Object.freeze({
|
|
|
103
104
|
},
|
|
104
105
|
createSpecLifecycleColumn() {
|
|
105
106
|
return {
|
|
106
|
-
title: "
|
|
107
|
+
title: /* @__PURE__ */ jsx(EntityTableColumnTitle, { translationKey: "lifecycle" }),
|
|
107
108
|
field: "spec.lifecycle"
|
|
108
109
|
};
|
|
109
110
|
},
|
|
110
111
|
createSpecTypeColumn() {
|
|
111
112
|
return {
|
|
112
|
-
title: "
|
|
113
|
+
title: /* @__PURE__ */ jsx(EntityTableColumnTitle, { translationKey: "type" }),
|
|
113
114
|
field: "spec.type"
|
|
114
115
|
};
|
|
115
116
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columns.esm.js","sources":["../../../src/components/EntityTable/columns.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 {\n Entity,\n CompoundEntityRef,\n RELATION_OWNED_BY,\n RELATION_PART_OF,\n} from '@backstage/catalog-model';\nimport { OverflowTooltip, TableColumn } from '@backstage/core-components';\nimport { getEntityRelations } from '../../utils';\nimport {\n EntityRefLink,\n EntityRefLinks,\n humanizeEntityRef,\n} from '../EntityRefLink';\
|
|
1
|
+
{"version":3,"file":"columns.esm.js","sources":["../../../src/components/EntityTable/columns.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 {\n Entity,\n CompoundEntityRef,\n RELATION_OWNED_BY,\n RELATION_PART_OF,\n} from '@backstage/catalog-model';\nimport { OverflowTooltip, TableColumn } from '@backstage/core-components';\nimport { getEntityRelations } from '../../utils';\nimport {\n EntityRefLink,\n EntityRefLinks,\n humanizeEntityRef,\n} from '../EntityRefLink';\nimport { EntityTableColumnTitle } from './TitleColumn';\n\n/** @public */\nexport const columnFactories = Object.freeze({\n createEntityRefColumn<T extends Entity>(options: {\n defaultKind?: string;\n }): TableColumn<T> {\n const { defaultKind } = options;\n function formatContent(entity: T): string {\n return (\n entity.metadata?.title ||\n humanizeEntityRef(entity, {\n defaultKind,\n })\n );\n }\n\n return {\n title: <EntityTableColumnTitle translationKey=\"name\" />,\n highlight: true,\n customFilterAndSearch(filter, entity) {\n // TODO: We could implement this more efficiently, like searching over\n // each field that is displayed individually (kind, namespace, name).\n // but that might confuse the user as it will behave different than a\n // simple text search.\n // Another alternative would be to cache the values. But writing them\n // into the entity feels bad too.\n return formatContent(entity).includes(filter);\n },\n customSort(entity1, entity2) {\n // TODO: We could implement this more efficiently by comparing field by field.\n // This has similar issues as above.\n return formatContent(entity1).localeCompare(formatContent(entity2));\n },\n render: entity => (\n <EntityRefLink\n entityRef={entity}\n defaultKind={defaultKind}\n title={entity.metadata?.title}\n />\n ),\n };\n },\n createEntityRelationColumn<T extends Entity>(options: {\n title: string | JSX.Element;\n relation: string;\n defaultKind?: string;\n filter?: { kind: string };\n }): TableColumn<T> {\n const { title, relation, defaultKind, filter: entityFilter } = options;\n\n function getRelations(entity: T): CompoundEntityRef[] {\n return getEntityRelations(entity, relation, entityFilter);\n }\n\n function formatContent(entity: T): string {\n return getRelations(entity)\n .map(r => humanizeEntityRef(r, { defaultKind }))\n .join(', ');\n }\n\n return {\n title,\n customFilterAndSearch(filter, entity) {\n return formatContent(entity).includes(filter);\n },\n customSort(entity1, entity2) {\n return formatContent(entity1).localeCompare(formatContent(entity2));\n },\n render: entity => {\n return (\n <EntityRefLinks\n entityRefs={getRelations(entity)}\n defaultKind={defaultKind}\n />\n );\n },\n };\n },\n createOwnerColumn<T extends Entity>(): TableColumn<T> {\n return this.createEntityRelationColumn({\n title: <EntityTableColumnTitle translationKey=\"type\" />,\n relation: RELATION_OWNED_BY,\n defaultKind: 'group',\n });\n },\n createDomainColumn<T extends Entity>(): TableColumn<T> {\n return this.createEntityRelationColumn({\n title: <EntityTableColumnTitle translationKey=\"domain\" />,\n relation: RELATION_PART_OF,\n defaultKind: 'domain',\n filter: {\n kind: 'domain',\n },\n });\n },\n createSystemColumn<T extends Entity>(): TableColumn<T> {\n return this.createEntityRelationColumn({\n title: <EntityTableColumnTitle translationKey=\"system\" />,\n relation: RELATION_PART_OF,\n defaultKind: 'system',\n filter: {\n kind: 'system',\n },\n });\n },\n createMetadataDescriptionColumn<T extends Entity>(): TableColumn<T> {\n return {\n title: <EntityTableColumnTitle translationKey=\"description\" />,\n field: 'metadata.description',\n render: entity => (\n <OverflowTooltip\n text={entity.metadata.description}\n placement=\"bottom-start\"\n line={2}\n />\n ),\n };\n },\n createSpecLifecycleColumn<T extends Entity>(): TableColumn<T> {\n return {\n title: <EntityTableColumnTitle translationKey=\"lifecycle\" />,\n field: 'spec.lifecycle',\n };\n },\n createSpecTypeColumn<T extends Entity>(): TableColumn<T> {\n return {\n title: <EntityTableColumnTitle translationKey=\"type\" />,\n field: 'spec.type',\n };\n },\n});\n"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -448,7 +448,7 @@ declare const EntityTable: {
|
|
|
448
448
|
defaultKind?: string;
|
|
449
449
|
}): TableColumn<T>;
|
|
450
450
|
createEntityRelationColumn<T extends Entity>(options: {
|
|
451
|
-
title: string;
|
|
451
|
+
title: string | JSX.Element;
|
|
452
452
|
relation: string;
|
|
453
453
|
defaultKind?: string;
|
|
454
454
|
filter?: {
|
|
@@ -472,7 +472,7 @@ declare const columnFactories: Readonly<{
|
|
|
472
472
|
defaultKind?: string;
|
|
473
473
|
}): TableColumn<T>;
|
|
474
474
|
createEntityRelationColumn<T extends Entity>(options: {
|
|
475
|
-
title: string;
|
|
475
|
+
title: string | JSX.Element;
|
|
476
476
|
relation: string;
|
|
477
477
|
defaultKind?: string;
|
|
478
478
|
filter?: {
|
package/dist/translation.esm.js
CHANGED
|
@@ -99,6 +99,20 @@ const catalogReactTranslationRef = createTranslationRef({
|
|
|
99
99
|
starredLabel: "Starred"
|
|
100
100
|
},
|
|
101
101
|
orgFilterAllLabel: "All"
|
|
102
|
+
},
|
|
103
|
+
entityTableColumnTitle: {
|
|
104
|
+
name: "Name",
|
|
105
|
+
system: "System",
|
|
106
|
+
owner: "Owner",
|
|
107
|
+
type: "Type",
|
|
108
|
+
lifecycle: "Lifecycle",
|
|
109
|
+
namespace: "Namespace",
|
|
110
|
+
description: "Description",
|
|
111
|
+
tags: "Tags",
|
|
112
|
+
targets: "Targets",
|
|
113
|
+
title: "Title",
|
|
114
|
+
label: "Label",
|
|
115
|
+
domain: "Domain"
|
|
102
116
|
}
|
|
103
117
|
}
|
|
104
118
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translation.esm.js","sources":["../src/translation.ts"],"sourcesContent":["/*\n * Copyright 2024 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 { createTranslationRef } from '@backstage/core-plugin-api/alpha';\n\n/** @alpha */\nexport const catalogReactTranslationRef = createTranslationRef({\n id: 'catalog-react',\n messages: {\n catalogFilter: {\n title: 'Filters',\n buttonTitle: 'Filters',\n },\n entityKindPicker: {\n title: 'Kind',\n errorMessage: 'Failed to load entity kinds',\n },\n entityLifecyclePicker: {\n title: 'Lifecycle',\n },\n entityNamespacePicker: {\n title: 'Namespace',\n },\n entityOwnerPicker: {\n title: 'Owner',\n },\n entityProcessingStatusPicker: {\n title: 'Processing Status',\n },\n entityTagPicker: {\n title: 'Tags',\n },\n entityPeekAheadPopover: {\n title: 'Drill into the entity to see all of the tags.',\n emailCardAction: {\n title: 'Email {{email}}',\n subTitle: 'mailto {{email}}',\n },\n entityCardActionsTitle: 'Show details',\n },\n entitySearchBar: {\n placeholder: 'Search',\n },\n entityTypePicker: {\n title: 'Type',\n errorMessage: 'Failed to load entity types',\n optionAllTitle: 'all',\n },\n favoriteEntity: {\n addToFavorites: 'Add to favorites',\n removeFromFavorites: 'Remove from favorites',\n },\n inspectEntityDialog: {\n title: 'Entity Inspector',\n closeButtonTitle: 'Close',\n ancestryPage: {\n title: 'Ancestry',\n },\n colocatedPage: {\n title: 'Colocated',\n description:\n 'These are the entities that are colocated with this entity - as in, they originated from the same data source (e.g. came from the same YAML file), or from the same origin (e.g. the originally registered URL).',\n alertNoLocation: 'Entity had no location information.',\n alertNoEntity: 'There were no other entities on this location.',\n },\n jsonPage: {\n title: 'Entity as JSON',\n description:\n 'This is the raw entity data as received from the catalog, on JSON form.',\n },\n overviewPage: {\n title: 'Overview',\n },\n yamlPage: {\n title: 'Entity as YAML',\n description:\n 'This is the raw entity data as received from the catalog, on YAML form.',\n },\n },\n unregisterEntityDialog: {\n title: 'Are you sure you want to unregister this entity?',\n cancelButtonTitle: 'Cancel',\n deleteButtonTitle: 'Delete Entity',\n deleteEntitySuccessMessage: 'Removed entity {{entityName}}',\n bootstrapState: {\n title:\n 'You cannot unregister this entity, since it originates from a protected Backstage configuration (location \"{{location}}\"). If you believe this is in error, please contact the {{appTitle}} integrator.',\n advancedDescription:\n 'You have the option to delete the entity itself from the catalog. Note that this should only be done if you know that the catalog file has been deleted at, or moved from, its origin location. If that is not the case, the entity will reappear shortly as the next refresh round is performed by the catalog.',\n advancedOptions: 'Advanced Options',\n },\n onlyDeleteStateTitle:\n 'This entity does not seem to originate from a registered location. You therefore only have the option to delete it outright from the catalog.',\n unregisterState: {\n title: 'This action will unregister the following entities:',\n subTitle: 'Located at the following location:',\n description: 'To undo, just re-register the entity in {{appTitle}}.',\n unregisterButtonTitle: 'Unregister Location',\n advancedOptions: 'Advanced Options',\n advancedDescription:\n 'You also have the option to delete the entity itself from the catalog. Note that this should only be done if you know that the catalog file has been deleted at, or moved from, its origin location. If that is not the case, the entity will reappear shortly as the next refresh round is performed by the catalog.',\n },\n errorStateTitle: 'Internal error: Unknown state',\n },\n userListPicker: {\n defaultOrgName: 'Company',\n personalFilter: {\n title: 'Personal',\n ownedLabel: 'Owned',\n starredLabel: 'Starred',\n },\n orgFilterAllLabel: 'All',\n },\n },\n});\n"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"translation.esm.js","sources":["../src/translation.ts"],"sourcesContent":["/*\n * Copyright 2024 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 { createTranslationRef } from '@backstage/core-plugin-api/alpha';\n\n/** @alpha */\nexport const catalogReactTranslationRef = createTranslationRef({\n id: 'catalog-react',\n messages: {\n catalogFilter: {\n title: 'Filters',\n buttonTitle: 'Filters',\n },\n entityKindPicker: {\n title: 'Kind',\n errorMessage: 'Failed to load entity kinds',\n },\n entityLifecyclePicker: {\n title: 'Lifecycle',\n },\n entityNamespacePicker: {\n title: 'Namespace',\n },\n entityOwnerPicker: {\n title: 'Owner',\n },\n entityProcessingStatusPicker: {\n title: 'Processing Status',\n },\n entityTagPicker: {\n title: 'Tags',\n },\n entityPeekAheadPopover: {\n title: 'Drill into the entity to see all of the tags.',\n emailCardAction: {\n title: 'Email {{email}}',\n subTitle: 'mailto {{email}}',\n },\n entityCardActionsTitle: 'Show details',\n },\n entitySearchBar: {\n placeholder: 'Search',\n },\n entityTypePicker: {\n title: 'Type',\n errorMessage: 'Failed to load entity types',\n optionAllTitle: 'all',\n },\n favoriteEntity: {\n addToFavorites: 'Add to favorites',\n removeFromFavorites: 'Remove from favorites',\n },\n inspectEntityDialog: {\n title: 'Entity Inspector',\n closeButtonTitle: 'Close',\n ancestryPage: {\n title: 'Ancestry',\n },\n colocatedPage: {\n title: 'Colocated',\n description:\n 'These are the entities that are colocated with this entity - as in, they originated from the same data source (e.g. came from the same YAML file), or from the same origin (e.g. the originally registered URL).',\n alertNoLocation: 'Entity had no location information.',\n alertNoEntity: 'There were no other entities on this location.',\n },\n jsonPage: {\n title: 'Entity as JSON',\n description:\n 'This is the raw entity data as received from the catalog, on JSON form.',\n },\n overviewPage: {\n title: 'Overview',\n },\n yamlPage: {\n title: 'Entity as YAML',\n description:\n 'This is the raw entity data as received from the catalog, on YAML form.',\n },\n },\n unregisterEntityDialog: {\n title: 'Are you sure you want to unregister this entity?',\n cancelButtonTitle: 'Cancel',\n deleteButtonTitle: 'Delete Entity',\n deleteEntitySuccessMessage: 'Removed entity {{entityName}}',\n bootstrapState: {\n title:\n 'You cannot unregister this entity, since it originates from a protected Backstage configuration (location \"{{location}}\"). If you believe this is in error, please contact the {{appTitle}} integrator.',\n advancedDescription:\n 'You have the option to delete the entity itself from the catalog. Note that this should only be done if you know that the catalog file has been deleted at, or moved from, its origin location. If that is not the case, the entity will reappear shortly as the next refresh round is performed by the catalog.',\n advancedOptions: 'Advanced Options',\n },\n onlyDeleteStateTitle:\n 'This entity does not seem to originate from a registered location. You therefore only have the option to delete it outright from the catalog.',\n unregisterState: {\n title: 'This action will unregister the following entities:',\n subTitle: 'Located at the following location:',\n description: 'To undo, just re-register the entity in {{appTitle}}.',\n unregisterButtonTitle: 'Unregister Location',\n advancedOptions: 'Advanced Options',\n advancedDescription:\n 'You also have the option to delete the entity itself from the catalog. Note that this should only be done if you know that the catalog file has been deleted at, or moved from, its origin location. If that is not the case, the entity will reappear shortly as the next refresh round is performed by the catalog.',\n },\n errorStateTitle: 'Internal error: Unknown state',\n },\n userListPicker: {\n defaultOrgName: 'Company',\n personalFilter: {\n title: 'Personal',\n ownedLabel: 'Owned',\n starredLabel: 'Starred',\n },\n orgFilterAllLabel: 'All',\n },\n entityTableColumnTitle: {\n name: 'Name',\n system: 'System',\n owner: 'Owner',\n type: 'Type',\n lifecycle: 'Lifecycle',\n namespace: 'Namespace',\n description: 'Description',\n tags: 'Tags',\n targets: 'Targets',\n title: 'Title',\n label: 'Label',\n domain: 'Domain',\n },\n },\n});\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@backstage/plugin-catalog-react",
|
|
3
|
-
"version": "1.21.0
|
|
3
|
+
"version": "1.21.0",
|
|
4
4
|
"description": "A frontend library that helps other Backstage plugins interact with the catalog",
|
|
5
5
|
"backstage": {
|
|
6
6
|
"role": "web-library",
|
|
@@ -73,20 +73,20 @@
|
|
|
73
73
|
"test": "backstage-cli package test"
|
|
74
74
|
},
|
|
75
75
|
"dependencies": {
|
|
76
|
-
"@backstage/catalog-client": "1.12.0
|
|
77
|
-
"@backstage/catalog-model": "1.7.5",
|
|
78
|
-
"@backstage/core-compat-api": "0.5.2
|
|
79
|
-
"@backstage/core-components": "0.
|
|
80
|
-
"@backstage/core-plugin-api": "1.
|
|
81
|
-
"@backstage/errors": "1.2.7",
|
|
82
|
-
"@backstage/frontend-plugin-api": "0.
|
|
83
|
-
"@backstage/frontend-test-utils": "0.3.6
|
|
84
|
-
"@backstage/integration-react": "1.2.10
|
|
85
|
-
"@backstage/plugin-catalog-common": "1.1.5",
|
|
86
|
-
"@backstage/plugin-permission-common": "0.9.1",
|
|
87
|
-
"@backstage/plugin-permission-react": "0.4.36",
|
|
88
|
-
"@backstage/types": "1.2.
|
|
89
|
-
"@backstage/version-bridge": "1.0.11",
|
|
76
|
+
"@backstage/catalog-client": "^1.12.0",
|
|
77
|
+
"@backstage/catalog-model": "^1.7.5",
|
|
78
|
+
"@backstage/core-compat-api": "^0.5.2",
|
|
79
|
+
"@backstage/core-components": "^0.18.0",
|
|
80
|
+
"@backstage/core-plugin-api": "^1.11.0",
|
|
81
|
+
"@backstage/errors": "^1.2.7",
|
|
82
|
+
"@backstage/frontend-plugin-api": "^0.12.0",
|
|
83
|
+
"@backstage/frontend-test-utils": "^0.3.6",
|
|
84
|
+
"@backstage/integration-react": "^1.2.10",
|
|
85
|
+
"@backstage/plugin-catalog-common": "^1.1.5",
|
|
86
|
+
"@backstage/plugin-permission-common": "^0.9.1",
|
|
87
|
+
"@backstage/plugin-permission-react": "^0.4.36",
|
|
88
|
+
"@backstage/types": "^1.2.2",
|
|
89
|
+
"@backstage/version-bridge": "^1.0.11",
|
|
90
90
|
"@material-ui/core": "^4.12.2",
|
|
91
91
|
"@material-ui/icons": "^4.9.1",
|
|
92
92
|
"@material-ui/lab": "4.0.0-alpha.61",
|
|
@@ -100,11 +100,11 @@
|
|
|
100
100
|
"zen-observable": "^0.10.0"
|
|
101
101
|
},
|
|
102
102
|
"devDependencies": {
|
|
103
|
-
"@backstage/cli": "0.34.2
|
|
104
|
-
"@backstage/core-app-api": "1.
|
|
105
|
-
"@backstage/plugin-catalog-common": "1.1.5",
|
|
106
|
-
"@backstage/plugin-scaffolder-common": "1.7.1
|
|
107
|
-
"@backstage/test-utils": "1.7.11",
|
|
103
|
+
"@backstage/cli": "^0.34.2",
|
|
104
|
+
"@backstage/core-app-api": "^1.19.0",
|
|
105
|
+
"@backstage/plugin-catalog-common": "^1.1.5",
|
|
106
|
+
"@backstage/plugin-scaffolder-common": "^1.7.1",
|
|
107
|
+
"@backstage/test-utils": "^1.7.11",
|
|
108
108
|
"@testing-library/dom": "^10.0.0",
|
|
109
109
|
"@testing-library/jest-dom": "^6.0.0",
|
|
110
110
|
"@testing-library/react": "^16.0.0",
|