@backstage/plugin-techdocs
Version:
The Backstage plugin that renders technical documentation for your components
74 lines (71 loc) • 1.97 kB
JavaScript
import { jsx } from 'react/jsx-runtime';
import { SubvalueCell, Link } from '@backstage/core-components';
import { EntityRefLinks } from '@backstage/plugin-catalog-react';
function customTitle(entity) {
return entity.metadata.title || entity.metadata.name;
}
const columnFactories = {
createTitleColumn(options) {
const nameCol = columnFactories.createNameColumn();
return {
...nameCol,
field: "entity.metadata.title",
hidden: options?.hidden
};
},
createNameColumn() {
return {
title: "Document",
field: "entity.metadata.name",
highlight: true,
searchable: true,
defaultSort: "asc",
customSort: (row1, row2) => {
const title1 = customTitle(row1.entity).toLocaleLowerCase();
const title2 = customTitle(row2.entity).toLocaleLowerCase();
return title1.localeCompare(title2);
},
render: (row) => /* @__PURE__ */ jsx(
SubvalueCell,
{
value: /* @__PURE__ */ jsx(Link, { to: row.resolved.docsUrl, children: customTitle(row.entity) }),
subvalue: row.entity.metadata.description
}
)
};
},
createOwnerColumn() {
return {
title: "Owner",
field: "resolved.ownedByRelationsTitle",
render: ({ resolved }) => /* @__PURE__ */ jsx(
EntityRefLinks,
{
entityRefs: resolved.ownedByRelations,
defaultKind: "group"
}
)
};
},
createKindColumn() {
return {
title: "Kind",
field: "entity.kind"
};
},
createTypeColumn() {
return {
title: "Type",
field: "entity.spec.type"
};
}
};
const defaultColumns = [
columnFactories.createTitleColumn({ hidden: true }),
columnFactories.createNameColumn(),
columnFactories.createOwnerColumn(),
columnFactories.createKindColumn(),
columnFactories.createTypeColumn()
];
export { columnFactories, defaultColumns };
//# sourceMappingURL=columns.esm.js.map