UNPKG

@backstage/plugin-techdocs

Version:

The Backstage plugin that renders technical documentation for your components

74 lines (71 loc) 1.97 kB
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