@backstage/plugin-techdocs 1.12.5-next.1 → 1.12.5

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 (68) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/dist/EntityPageDocs.esm.js +11 -8
  3. package/dist/EntityPageDocs.esm.js.map +1 -1
  4. package/dist/Router.esm.js +15 -12
  5. package/dist/Router.esm.js.map +1 -1
  6. package/dist/alpha.d.ts +6 -6
  7. package/dist/alpha.esm.js +14 -10
  8. package/dist/alpha.esm.js.map +1 -1
  9. package/dist/home/components/DefaultTechDocsHome.esm.js +21 -10
  10. package/dist/home/components/DefaultTechDocsHome.esm.js.map +1 -1
  11. package/dist/home/components/Grids/DocsCardGrid.esm.js +26 -22
  12. package/dist/home/components/Grids/DocsCardGrid.esm.js.map +1 -1
  13. package/dist/home/components/Grids/EntityListDocsGrid.esm.js +22 -14
  14. package/dist/home/components/Grids/EntityListDocsGrid.esm.js.map +1 -1
  15. package/dist/home/components/Grids/InfoCardGrid.esm.js +19 -17
  16. package/dist/home/components/Grids/InfoCardGrid.esm.js.map +1 -1
  17. package/dist/home/components/Tables/CursorPaginatedDocsTable.esm.js +2 -2
  18. package/dist/home/components/Tables/CursorPaginatedDocsTable.esm.js.map +1 -1
  19. package/dist/home/components/Tables/DocsTable.esm.js +8 -8
  20. package/dist/home/components/Tables/DocsTable.esm.js.map +1 -1
  21. package/dist/home/components/Tables/EntityListDocsTable.esm.js +8 -8
  22. package/dist/home/components/Tables/EntityListDocsTable.esm.js.map +1 -1
  23. package/dist/home/components/Tables/OffsetPaginatedDocsTable.esm.js +4 -3
  24. package/dist/home/components/Tables/OffsetPaginatedDocsTable.esm.js.map +1 -1
  25. package/dist/home/components/Tables/actions.esm.js +3 -3
  26. package/dist/home/components/Tables/actions.esm.js.map +1 -1
  27. package/dist/home/components/Tables/columns.esm.js +4 -4
  28. package/dist/home/components/Tables/columns.esm.js.map +1 -1
  29. package/dist/home/components/TechDocsCustomHome.esm.js +41 -34
  30. package/dist/home/components/TechDocsCustomHome.esm.js.map +1 -1
  31. package/dist/home/components/TechDocsIndexPage.esm.js +2 -2
  32. package/dist/home/components/TechDocsIndexPage.esm.js.map +1 -1
  33. package/dist/home/components/TechDocsPageWrapper.esm.js +6 -6
  34. package/dist/home/components/TechDocsPageWrapper.esm.js.map +1 -1
  35. package/dist/index.d.ts +39 -38
  36. package/dist/reader/components/TechDocsBuildLogs.esm.js +48 -40
  37. package/dist/reader/components/TechDocsBuildLogs.esm.js.map +1 -1
  38. package/dist/reader/components/TechDocsNotFound.esm.js +3 -2
  39. package/dist/reader/components/TechDocsNotFound.esm.js.map +1 -1
  40. package/dist/reader/components/TechDocsReaderPage/TechDocsReaderPage.esm.js +18 -13
  41. package/dist/reader/components/TechDocsReaderPage/TechDocsReaderPage.esm.js.map +1 -1
  42. package/dist/reader/components/TechDocsReaderPageContent/TechDocsReaderPageContent.esm.js +19 -11
  43. package/dist/reader/components/TechDocsReaderPageContent/TechDocsReaderPageContent.esm.js.map +1 -1
  44. package/dist/reader/components/TechDocsReaderPageContent/TechDocsReaderPageContentAddons.esm.js +6 -2
  45. package/dist/reader/components/TechDocsReaderPageContent/TechDocsReaderPageContentAddons.esm.js.map +1 -1
  46. package/dist/reader/components/TechDocsReaderPageHeader/TechDocsReaderPageHeader.esm.js +55 -44
  47. package/dist/reader/components/TechDocsReaderPageHeader/TechDocsReaderPageHeader.esm.js.map +1 -1
  48. package/dist/reader/components/TechDocsReaderPageSubheader/TechDocsReaderPageSubheader.esm.js +33 -27
  49. package/dist/reader/components/TechDocsReaderPageSubheader/TechDocsReaderPageSubheader.esm.js.map +1 -1
  50. package/dist/reader/components/TechDocsReaderProvider.esm.js +4 -3
  51. package/dist/reader/components/TechDocsReaderProvider.esm.js.map +1 -1
  52. package/dist/reader/components/TechDocsRedirectNotification/TechDocsRedirectNotification.esm.js +7 -6
  53. package/dist/reader/components/TechDocsRedirectNotification/TechDocsRedirectNotification.esm.js.map +1 -1
  54. package/dist/reader/components/TechDocsStateIndicator.esm.js +43 -36
  55. package/dist/reader/components/TechDocsStateIndicator.esm.js.map +1 -1
  56. package/dist/reader/transformers/addGitFeedbackLink.esm.js +2 -2
  57. package/dist/reader/transformers/addGitFeedbackLink.esm.js.map +1 -1
  58. package/dist/reader/transformers/addSidebarToggle.esm.js +2 -2
  59. package/dist/reader/transformers/addSidebarToggle.esm.js.map +1 -1
  60. package/dist/reader/transformers/copyToClipboard.esm.js +16 -15
  61. package/dist/reader/transformers/copyToClipboard.esm.js.map +1 -1
  62. package/dist/reader/transformers/handleMetaRedirects.esm.js +2 -2
  63. package/dist/reader/transformers/handleMetaRedirects.esm.js.map +1 -1
  64. package/dist/search/components/TechDocsSearch.esm.js +5 -4
  65. package/dist/search/components/TechDocsSearch.esm.js.map +1 -1
  66. package/dist/search/components/TechDocsSearchResultListItem.esm.js +28 -20
  67. package/dist/search/components/TechDocsSearchResultListItem.esm.js.map +1 -1
  68. package/package.json +27 -27
@@ -1,8 +1,8 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
1
2
  import { DocsCardGrid } from './DocsCardGrid.esm.js';
2
3
  import { WarningPanel, CodeSnippet, Progress, Link, Content, ContentHeader } from '@backstage/core-components';
3
4
  import { useEntityList, useEntityOwnership } from '@backstage/plugin-catalog-react';
4
5
  import Typography from '@material-ui/core/Typography';
5
- import React from 'react';
6
6
 
7
7
  const allEntitiesGroup = {
8
8
  title: "All Documentation",
@@ -21,44 +21,52 @@ const EntityListDocsGridGroup = (props) => {
21
21
  return typeof group.filterPredicate === "function" && group.filterPredicate(entity);
22
22
  });
23
23
  const titleComponent = (() => {
24
- return typeof group.title === "string" ? /* @__PURE__ */ React.createElement(ContentHeader, { title: group.title }) : group.title;
24
+ return typeof group.title === "string" ? /* @__PURE__ */ jsx(ContentHeader, { title: group.title }) : group.title;
25
25
  })();
26
26
  if (shownEntities.length === 0) {
27
27
  return null;
28
28
  }
29
- return /* @__PURE__ */ React.createElement(Content, null, titleComponent, /* @__PURE__ */ React.createElement(DocsCardGrid, { entities: shownEntities }));
29
+ return /* @__PURE__ */ jsxs(Content, { children: [
30
+ titleComponent,
31
+ /* @__PURE__ */ jsx(DocsCardGrid, { entities: shownEntities })
32
+ ] });
30
33
  };
31
34
  const EntityListDocsGrid = (props) => {
32
35
  const { loading, error, entities } = useEntityList();
33
36
  if (error) {
34
- return /* @__PURE__ */ React.createElement(
37
+ return /* @__PURE__ */ jsx(
35
38
  WarningPanel,
36
39
  {
37
40
  severity: "error",
38
- title: "Could not load available documentation."
39
- },
40
- /* @__PURE__ */ React.createElement(CodeSnippet, { language: "text", text: error.toString() })
41
+ title: "Could not load available documentation.",
42
+ children: /* @__PURE__ */ jsx(CodeSnippet, { language: "text", text: error.toString() })
43
+ }
41
44
  );
42
45
  }
43
46
  if (loading) {
44
- return /* @__PURE__ */ React.createElement(Progress, null);
47
+ return /* @__PURE__ */ jsx(Progress, {});
45
48
  }
46
49
  if (entities.length === 0) {
47
- return /* @__PURE__ */ React.createElement("div", { "data-testid": "doc-not-found" }, /* @__PURE__ */ React.createElement(Typography, { variant: "body2" }, "No documentation found that match your filter. Learn more about", " ", /* @__PURE__ */ React.createElement(Link, { to: "https://backstage.io/docs/features/techdocs/creating-and-publishing" }, "publishing documentation"), "."));
50
+ return /* @__PURE__ */ jsx("div", { "data-testid": "doc-not-found", children: /* @__PURE__ */ jsxs(Typography, { variant: "body2", children: [
51
+ "No documentation found that match your filter. Learn more about",
52
+ " ",
53
+ /* @__PURE__ */ jsx(Link, { to: "https://backstage.io/docs/features/techdocs/creating-and-publishing", children: "publishing documentation" }),
54
+ "."
55
+ ] }) });
48
56
  }
49
57
  entities.sort(
50
58
  (a, b) => (a.metadata.title ?? a.metadata.name).localeCompare(
51
59
  b.metadata.title ?? b.metadata.name
52
60
  )
53
61
  );
54
- return /* @__PURE__ */ React.createElement(Content, null, (props.groups || [allEntitiesGroup]).map((group, index) => /* @__PURE__ */ React.createElement(
62
+ return /* @__PURE__ */ jsx(Content, { children: (props.groups || [allEntitiesGroup]).map((group, index) => /* @__PURE__ */ jsx(
55
63
  EntityListDocsGridGroup,
56
64
  {
57
65
  entities,
58
- group,
59
- key: `${group.title}-${index}`
60
- }
61
- )));
66
+ group
67
+ },
68
+ `${group.title}-${index}`
69
+ )) });
62
70
  };
63
71
 
64
72
  export { EntityListDocsGrid };
@@ -1 +1 @@
1
- {"version":3,"file":"EntityListDocsGrid.esm.js","sources":["../../../../src/home/components/Grids/EntityListDocsGrid.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 { DocsCardGrid } from './DocsCardGrid';\nimport { Entity } from '@backstage/catalog-model';\nimport {\n CodeSnippet,\n Content,\n ContentHeader,\n Link,\n Progress,\n WarningPanel,\n} from '@backstage/core-components';\nimport {\n useEntityList,\n useEntityOwnership,\n} from '@backstage/plugin-catalog-react';\nimport Typography from '@material-ui/core/Typography';\nimport React from 'react';\n\n/**\n * Props for {@link EntityListDocsGrid}\n *\n * @public\n */\nexport type DocsGroupConfig = {\n title: React.ReactNode;\n filterPredicate: ((entity: Entity) => boolean) | string;\n};\n\n/**\n * Props for {@link EntityListDocsGrid}\n *\n * @public\n */\nexport type EntityListDocsGridPageProps = {\n groups?: DocsGroupConfig[];\n};\n\nconst allEntitiesGroup: DocsGroupConfig = {\n title: 'All Documentation',\n filterPredicate: () => true,\n};\n\nconst EntityListDocsGridGroup = (props: {\n group: DocsGroupConfig;\n entities: Entity[];\n}) => {\n const { entities, group } = props;\n const { loading: loadingOwnership, isOwnedEntity } = useEntityOwnership();\n\n const shownEntities = entities.filter(entity => {\n if (group.filterPredicate === 'ownedByUser') {\n if (loadingOwnership) {\n return false;\n }\n return isOwnedEntity(entity);\n }\n\n return (\n typeof group.filterPredicate === 'function' &&\n group.filterPredicate(entity)\n );\n });\n\n const titleComponent: React.ReactNode = (() => {\n return typeof group.title === 'string' ? (\n <ContentHeader title={group.title} />\n ) : (\n group.title\n );\n })();\n\n if (shownEntities.length === 0) {\n return null;\n }\n\n return (\n <Content>\n {titleComponent}\n <DocsCardGrid entities={shownEntities} />\n </Content>\n );\n};\n\n/**\n * Component responsible to get entities from entity list context and pass down to DocsCardGrid\n *\n * @public\n */\nexport const EntityListDocsGrid = (props: EntityListDocsGridPageProps) => {\n const { loading, error, entities } = useEntityList();\n\n if (error) {\n return (\n <WarningPanel\n severity=\"error\"\n title=\"Could not load available documentation.\"\n >\n <CodeSnippet language=\"text\" text={error.toString()} />\n </WarningPanel>\n );\n }\n\n if (loading) {\n return <Progress />;\n }\n\n if (entities.length === 0) {\n return (\n <div data-testid=\"doc-not-found\">\n <Typography variant=\"body2\">\n No documentation found that match your filter. Learn more about{' '}\n <Link to=\"https://backstage.io/docs/features/techdocs/creating-and-publishing\">\n publishing documentation\n </Link>\n .\n </Typography>\n </div>\n );\n }\n\n entities.sort((a, b) =>\n (a.metadata.title ?? a.metadata.name).localeCompare(\n b.metadata.title ?? b.metadata.name,\n ),\n );\n\n return (\n <Content>\n {(props.groups || [allEntitiesGroup]).map((group, index: number) => (\n <EntityListDocsGridGroup\n entities={entities}\n group={group}\n key={`${group.title}-${index}`}\n />\n ))}\n </Content>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EntityListDocsGrid.esm.js","sources":["../../../../src/home/components/Grids/EntityListDocsGrid.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 { DocsCardGrid } from './DocsCardGrid';\nimport { Entity } from '@backstage/catalog-model';\nimport {\n CodeSnippet,\n Content,\n ContentHeader,\n Link,\n Progress,\n WarningPanel,\n} from '@backstage/core-components';\nimport {\n useEntityList,\n useEntityOwnership,\n} from '@backstage/plugin-catalog-react';\nimport Typography from '@material-ui/core/Typography';\nimport { ReactNode } from 'react';\n\n/**\n * Props for {@link EntityListDocsGrid}\n *\n * @public\n */\nexport type DocsGroupConfig = {\n title: ReactNode;\n filterPredicate: ((entity: Entity) => boolean) | string;\n};\n\n/**\n * Props for {@link EntityListDocsGrid}\n *\n * @public\n */\nexport type EntityListDocsGridPageProps = {\n groups?: DocsGroupConfig[];\n};\n\nconst allEntitiesGroup: DocsGroupConfig = {\n title: 'All Documentation',\n filterPredicate: () => true,\n};\n\nconst EntityListDocsGridGroup = (props: {\n group: DocsGroupConfig;\n entities: Entity[];\n}) => {\n const { entities, group } = props;\n const { loading: loadingOwnership, isOwnedEntity } = useEntityOwnership();\n\n const shownEntities = entities.filter(entity => {\n if (group.filterPredicate === 'ownedByUser') {\n if (loadingOwnership) {\n return false;\n }\n return isOwnedEntity(entity);\n }\n\n return (\n typeof group.filterPredicate === 'function' &&\n group.filterPredicate(entity)\n );\n });\n\n const titleComponent: ReactNode = (() => {\n return typeof group.title === 'string' ? (\n <ContentHeader title={group.title} />\n ) : (\n group.title\n );\n })();\n\n if (shownEntities.length === 0) {\n return null;\n }\n\n return (\n <Content>\n {titleComponent}\n <DocsCardGrid entities={shownEntities} />\n </Content>\n );\n};\n\n/**\n * Component responsible to get entities from entity list context and pass down to DocsCardGrid\n *\n * @public\n */\nexport const EntityListDocsGrid = (props: EntityListDocsGridPageProps) => {\n const { loading, error, entities } = useEntityList();\n\n if (error) {\n return (\n <WarningPanel\n severity=\"error\"\n title=\"Could not load available documentation.\"\n >\n <CodeSnippet language=\"text\" text={error.toString()} />\n </WarningPanel>\n );\n }\n\n if (loading) {\n return <Progress />;\n }\n\n if (entities.length === 0) {\n return (\n <div data-testid=\"doc-not-found\">\n <Typography variant=\"body2\">\n No documentation found that match your filter. Learn more about{' '}\n <Link to=\"https://backstage.io/docs/features/techdocs/creating-and-publishing\">\n publishing documentation\n </Link>\n .\n </Typography>\n </div>\n );\n }\n\n entities.sort((a, b) =>\n (a.metadata.title ?? a.metadata.name).localeCompare(\n b.metadata.title ?? b.metadata.name,\n ),\n );\n\n return (\n <Content>\n {(props.groups || [allEntitiesGroup]).map((group, index: number) => (\n <EntityListDocsGridGroup\n entities={entities}\n group={group}\n key={`${group.title}-${index}`}\n />\n ))}\n </Content>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import useAsync from 'react-use/esm/useAsync';
3
3
  import { stringifyEntityRef } from '@backstage/catalog-model';
4
4
  import { useRouteRef, useApi, configApiRef } from '@backstage/core-plugin-api';
@@ -48,27 +48,29 @@ const InfoCardGrid = (props) => {
48
48
  )
49
49
  );
50
50
  });
51
- if (loading) return /* @__PURE__ */ React.createElement(Progress, null);
51
+ if (loading) return /* @__PURE__ */ jsx(Progress, {});
52
52
  if (!entities || !entities?.length) return null;
53
- return /* @__PURE__ */ React.createElement(ItemCardGrid, { "data-testid": "info-card-container" }, entities.map((entity) => /* @__PURE__ */ React.createElement(
53
+ return /* @__PURE__ */ jsx(ItemCardGrid, { "data-testid": "info-card-container", children: entities.map((entity) => /* @__PURE__ */ jsxs(
54
54
  InfoCard,
55
55
  {
56
- key: entity.metadata.name,
57
56
  "data-testid": entity?.metadata?.title,
58
- title: entityRefToPresentation?.get(stringifyEntityRef(entity))?.primaryTitle
57
+ title: entityRefToPresentation?.get(stringifyEntityRef(entity))?.primaryTitle,
58
+ children: [
59
+ /* @__PURE__ */ jsx("div", { children: entity?.metadata?.description }),
60
+ /* @__PURE__ */ jsx("div", { className: classes.linkSpacer }),
61
+ /* @__PURE__ */ jsx(
62
+ Link,
63
+ {
64
+ to: linkRoute(entity),
65
+ className: classes.readMoreLink,
66
+ "data-testid": "read-docs-link",
67
+ children: linkContent || "Read Docs"
68
+ }
69
+ )
70
+ ]
59
71
  },
60
- /* @__PURE__ */ React.createElement("div", null, entity?.metadata?.description),
61
- /* @__PURE__ */ React.createElement("div", { className: classes.linkSpacer }),
62
- /* @__PURE__ */ React.createElement(
63
- Link,
64
- {
65
- to: linkRoute(entity),
66
- className: classes.readMoreLink,
67
- "data-testid": "read-docs-link"
68
- },
69
- linkContent || "Read Docs"
70
- )
71
- )));
72
+ entity.metadata.name
73
+ )) });
72
74
  };
73
75
 
74
76
  export { InfoCardGrid };
@@ -1 +1 @@
1
- {"version":3,"file":"InfoCardGrid.esm.js","sources":["../../../../src/home/components/Grids/InfoCardGrid.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 React from 'react';\nimport useAsync from 'react-use/esm/useAsync';\nimport { Entity, stringifyEntityRef } from '@backstage/catalog-model';\nimport { useApi, useRouteRef, configApiRef } from '@backstage/core-plugin-api';\nimport {\n ItemCardGrid,\n InfoCard,\n Link,\n Progress,\n} from '@backstage/core-components';\nimport {\n EntityRefPresentationSnapshot,\n entityPresentationApiRef,\n} from '@backstage/plugin-catalog-react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { rootDocsRouteRef } from '../../../routes';\nimport { toLowerMaybe } from '../../../helpers';\n\n/** @public */\nexport type InfoCardGridClassKey = 'linkSpacer' | 'readMoreLink';\n\nconst useStyles = makeStyles(\n theme => ({\n linkSpacer: {\n paddingTop: theme.spacing(0.2),\n },\n readMoreLink: {\n paddingTop: theme.spacing(0.2),\n },\n }),\n { name: 'BackstageInfoCardGrid' },\n);\n\n/**\n * Props for {@link InfoCardGrid}\n *\n * @public\n */\nexport type InfoCardGridProps = {\n entities: Entity[] | undefined;\n linkContent?: string | JSX.Element;\n linkDestination?: (entity: Entity) => string | undefined;\n};\n\n/**\n * Component which accepts a list of entities and renders a info card for each entity\n *\n * @public\n */\nexport const InfoCardGrid = (props: InfoCardGridProps) => {\n const { entities, linkContent, linkDestination } = props;\n const classes = useStyles();\n const getRouteToReaderPageFor = useRouteRef(rootDocsRouteRef);\n const config = useApi(configApiRef);\n const linkRoute = (entity: Entity) => {\n if (linkDestination) {\n const destination = linkDestination(entity);\n if (destination) {\n return destination;\n }\n }\n return getRouteToReaderPageFor({\n namespace: toLowerMaybe(entity.metadata.namespace ?? 'default', config),\n kind: toLowerMaybe(entity.kind, config),\n name: toLowerMaybe(entity.metadata.name, config),\n });\n };\n const entityPresentationApi = useApi(entityPresentationApiRef);\n const { value: entityRefToPresentation, loading } = useAsync(async () => {\n return new Map<string, EntityRefPresentationSnapshot>(\n await Promise.all(\n entities?.map(async entity => {\n const presentation = await entityPresentationApi.forEntity(entity)\n .promise;\n return [stringifyEntityRef(entity), presentation] as [\n string,\n EntityRefPresentationSnapshot,\n ];\n }) || [],\n ),\n );\n });\n if (loading) return <Progress />;\n if (!entities || !entities?.length) return null;\n return (\n <ItemCardGrid data-testid=\"info-card-container\">\n {entities.map(entity => (\n <InfoCard\n key={entity.metadata.name}\n data-testid={entity?.metadata?.title}\n title={\n entityRefToPresentation?.get(stringifyEntityRef(entity))\n ?.primaryTitle\n }\n >\n <div>{entity?.metadata?.description}</div>\n <div className={classes.linkSpacer} />\n <Link\n to={linkRoute(entity)}\n className={classes.readMoreLink}\n data-testid=\"read-docs-link\"\n >\n {linkContent || 'Read Docs'}\n </Link>\n </InfoCard>\n ))}\n </ItemCardGrid>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InfoCardGrid.esm.js","sources":["../../../../src/home/components/Grids/InfoCardGrid.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 useAsync from 'react-use/esm/useAsync';\nimport { Entity, stringifyEntityRef } from '@backstage/catalog-model';\nimport { useApi, useRouteRef, configApiRef } from '@backstage/core-plugin-api';\nimport {\n ItemCardGrid,\n InfoCard,\n Link,\n Progress,\n} from '@backstage/core-components';\nimport {\n EntityRefPresentationSnapshot,\n entityPresentationApiRef,\n} from '@backstage/plugin-catalog-react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { rootDocsRouteRef } from '../../../routes';\nimport { toLowerMaybe } from '../../../helpers';\n\n/** @public */\nexport type InfoCardGridClassKey = 'linkSpacer' | 'readMoreLink';\n\nconst useStyles = makeStyles(\n theme => ({\n linkSpacer: {\n paddingTop: theme.spacing(0.2),\n },\n readMoreLink: {\n paddingTop: theme.spacing(0.2),\n },\n }),\n { name: 'BackstageInfoCardGrid' },\n);\n\n/**\n * Props for {@link InfoCardGrid}\n *\n * @public\n */\nexport type InfoCardGridProps = {\n entities: Entity[] | undefined;\n linkContent?: string | JSX.Element;\n linkDestination?: (entity: Entity) => string | undefined;\n};\n\n/**\n * Component which accepts a list of entities and renders a info card for each entity\n *\n * @public\n */\nexport const InfoCardGrid = (props: InfoCardGridProps) => {\n const { entities, linkContent, linkDestination } = props;\n const classes = useStyles();\n const getRouteToReaderPageFor = useRouteRef(rootDocsRouteRef);\n const config = useApi(configApiRef);\n const linkRoute = (entity: Entity) => {\n if (linkDestination) {\n const destination = linkDestination(entity);\n if (destination) {\n return destination;\n }\n }\n return getRouteToReaderPageFor({\n namespace: toLowerMaybe(entity.metadata.namespace ?? 'default', config),\n kind: toLowerMaybe(entity.kind, config),\n name: toLowerMaybe(entity.metadata.name, config),\n });\n };\n const entityPresentationApi = useApi(entityPresentationApiRef);\n const { value: entityRefToPresentation, loading } = useAsync(async () => {\n return new Map<string, EntityRefPresentationSnapshot>(\n await Promise.all(\n entities?.map(async entity => {\n const presentation = await entityPresentationApi.forEntity(entity)\n .promise;\n return [stringifyEntityRef(entity), presentation] as [\n string,\n EntityRefPresentationSnapshot,\n ];\n }) || [],\n ),\n );\n });\n if (loading) return <Progress />;\n if (!entities || !entities?.length) return null;\n return (\n <ItemCardGrid data-testid=\"info-card-container\">\n {entities.map(entity => (\n <InfoCard\n key={entity.metadata.name}\n data-testid={entity?.metadata?.title}\n title={\n entityRefToPresentation?.get(stringifyEntityRef(entity))\n ?.primaryTitle\n }\n >\n <div>{entity?.metadata?.description}</div>\n <div className={classes.linkSpacer} />\n <Link\n to={linkRoute(entity)}\n className={classes.readMoreLink}\n data-testid=\"read-docs-link\"\n >\n {linkContent || 'Read Docs'}\n </Link>\n </InfoCard>\n ))}\n </ItemCardGrid>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import { jsx } from 'react/jsx-runtime';
2
2
  import { Table } from '@backstage/core-components';
3
3
 
4
4
  function CursorPaginatedDocsTable(props) {
@@ -13,7 +13,7 @@ function CursorPaginatedDocsTable(props) {
13
13
  options,
14
14
  ...restProps
15
15
  } = props;
16
- return /* @__PURE__ */ React.createElement(
16
+ return /* @__PURE__ */ jsx(
17
17
  Table,
18
18
  {
19
19
  title: isLoading ? "" : title,
@@ -1 +1 @@
1
- {"version":3,"file":"CursorPaginatedDocsTable.esm.js","sources":["../../../../src/home/components/Tables/CursorPaginatedDocsTable.tsx"],"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 React from 'react';\n\nimport { Table, TableProps } from '@backstage/core-components';\nimport { DocsTableRow } from './types';\n\ntype PaginatedDocsTableProps = {\n prev?(): void;\n next?(): void;\n} & TableProps<DocsTableRow>;\n\n/**\n * @internal\n */\n\nexport function CursorPaginatedDocsTable(props: PaginatedDocsTableProps) {\n const {\n actions,\n columns,\n data,\n next,\n prev,\n title,\n isLoading,\n options,\n ...restProps\n } = props;\n\n return (\n <Table\n title={isLoading ? '' : title}\n columns={columns}\n data={data}\n options={{\n paginationPosition: 'both',\n ...options,\n // These settings are configured to force server side pagination\n pageSizeOptions: [],\n showFirstLastPageButtons: false,\n pageSize: Number.MAX_SAFE_INTEGER,\n emptyRowsWhenPaging: false,\n actionsColumnIndex: -1,\n }}\n onPageChange={page => {\n if (page > 0) {\n next?.();\n } else {\n prev?.();\n }\n }}\n /* this will enable the prev button accordingly */\n page={prev ? 1 : 0}\n /* this will enable the next button accordingly */\n totalCount={next ? Number.MAX_VALUE : Number.MAX_SAFE_INTEGER}\n localization={{ pagination: { labelDisplayedRows: '' } }}\n isLoading={isLoading}\n {...restProps}\n />\n );\n}\n"],"names":[],"mappings":";;;AA8BO,SAAS,yBAAyB,KAAgC,EAAA;AACvE,EAAM,MAAA;AAAA,IACJ,OAAA;AAAA,IACA,OAAA;AAAA,IACA,IAAA;AAAA,IACA,IAAA;AAAA,IACA,IAAA;AAAA,IACA,KAAA;AAAA,IACA,SAAA;AAAA,IACA,OAAA;AAAA,IACA,GAAG;AAAA,GACD,GAAA,KAAA;AAEJ,EACE,uBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO,YAAY,EAAK,GAAA,KAAA;AAAA,MACxB,OAAA;AAAA,MACA,IAAA;AAAA,MACA,OAAS,EAAA;AAAA,QACP,kBAAoB,EAAA,MAAA;AAAA,QACpB,GAAG,OAAA;AAAA;AAAA,QAEH,iBAAiB,EAAC;AAAA,QAClB,wBAA0B,EAAA,KAAA;AAAA,QAC1B,UAAU,MAAO,CAAA,gBAAA;AAAA,QACjB,mBAAqB,EAAA,KAAA;AAAA,QACrB,kBAAoB,EAAA,CAAA;AAAA,OACtB;AAAA,MACA,cAAc,CAAQ,IAAA,KAAA;AACpB,QAAA,IAAI,OAAO,CAAG,EAAA;AACZ,UAAO,IAAA,IAAA;AAAA,SACF,MAAA;AACL,UAAO,IAAA,IAAA;AAAA;AACT,OACF;AAAA,MAEA,IAAA,EAAM,OAAO,CAAI,GAAA,CAAA;AAAA,MAEjB,UAAY,EAAA,IAAA,GAAO,MAAO,CAAA,SAAA,GAAY,MAAO,CAAA,gBAAA;AAAA,MAC7C,cAAc,EAAE,UAAA,EAAY,EAAE,kBAAA,EAAoB,IAAK,EAAA;AAAA,MACvD,SAAA;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;;;;"}
1
+ {"version":3,"file":"CursorPaginatedDocsTable.esm.js","sources":["../../../../src/home/components/Tables/CursorPaginatedDocsTable.tsx"],"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 { Table, TableProps } from '@backstage/core-components';\nimport { DocsTableRow } from './types';\n\ntype PaginatedDocsTableProps = {\n prev?(): void;\n next?(): void;\n} & TableProps<DocsTableRow>;\n\n/**\n * @internal\n */\n\nexport function CursorPaginatedDocsTable(props: PaginatedDocsTableProps) {\n const {\n actions,\n columns,\n data,\n next,\n prev,\n title,\n isLoading,\n options,\n ...restProps\n } = props;\n\n return (\n <Table\n title={isLoading ? '' : title}\n columns={columns}\n data={data}\n options={{\n paginationPosition: 'both',\n ...options,\n // These settings are configured to force server side pagination\n pageSizeOptions: [],\n showFirstLastPageButtons: false,\n pageSize: Number.MAX_SAFE_INTEGER,\n emptyRowsWhenPaging: false,\n actionsColumnIndex: -1,\n }}\n onPageChange={page => {\n if (page > 0) {\n next?.();\n } else {\n prev?.();\n }\n }}\n /* this will enable the prev button accordingly */\n page={prev ? 1 : 0}\n /* this will enable the next button accordingly */\n totalCount={next ? Number.MAX_VALUE : Number.MAX_SAFE_INTEGER}\n localization={{ pagination: { labelDisplayedRows: '' } }}\n isLoading={isLoading}\n {...restProps}\n />\n );\n}\n"],"names":[],"mappings":";;;AA4BO,SAAS,yBAAyB,KAAgC,EAAA;AACvE,EAAM,MAAA;AAAA,IACJ,OAAA;AAAA,IACA,OAAA;AAAA,IACA,IAAA;AAAA,IACA,IAAA;AAAA,IACA,IAAA;AAAA,IACA,KAAA;AAAA,IACA,SAAA;AAAA,IACA,OAAA;AAAA,IACA,GAAG;AAAA,GACD,GAAA,KAAA;AAEJ,EACE,uBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO,YAAY,EAAK,GAAA,KAAA;AAAA,MACxB,OAAA;AAAA,MACA,IAAA;AAAA,MACA,OAAS,EAAA;AAAA,QACP,kBAAoB,EAAA,MAAA;AAAA,QACpB,GAAG,OAAA;AAAA;AAAA,QAEH,iBAAiB,EAAC;AAAA,QAClB,wBAA0B,EAAA,KAAA;AAAA,QAC1B,UAAU,MAAO,CAAA,gBAAA;AAAA,QACjB,mBAAqB,EAAA,KAAA;AAAA,QACrB,kBAAoB,EAAA,CAAA;AAAA,OACtB;AAAA,MACA,cAAc,CAAQ,IAAA,KAAA;AACpB,QAAA,IAAI,OAAO,CAAG,EAAA;AACZ,UAAO,IAAA,IAAA;AAAA,SACF,MAAA;AACL,UAAO,IAAA,IAAA;AAAA;AACT,OACF;AAAA,MAEA,IAAA,EAAM,OAAO,CAAI,GAAA,CAAA;AAAA,MAEjB,UAAY,EAAA,IAAA,GAAO,MAAO,CAAA,SAAA,GAAY,MAAO,CAAA,gBAAA;AAAA,MAC7C,cAAc,EAAE,UAAA,EAAY,EAAE,kBAAA,EAAoB,IAAK,EAAA;AAAA,MACvD,SAAA;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;;;;"}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import { jsx, Fragment } from 'react/jsx-runtime';
2
2
  import useCopyToClipboard from 'react-use/esm/useCopyToClipboard';
3
3
  import { useRouteRef, useApi, configApiRef } from '@backstage/core-plugin-api';
4
4
  import { rootDocsRouteRef } from '../../../routes.esm.js';
@@ -23,7 +23,7 @@ const DocsTable = (props) => {
23
23
  ];
24
24
  const pageSize = 20;
25
25
  const paging = documents && documents.length > pageSize;
26
- return /* @__PURE__ */ React.createElement(React.Fragment, null, loading || documents && documents.length > 0 ? /* @__PURE__ */ React.createElement(
26
+ return /* @__PURE__ */ jsx(Fragment, { children: loading || documents && documents.length > 0 ? /* @__PURE__ */ jsx(
27
27
  Table,
28
28
  {
29
29
  isLoading: loading,
@@ -39,23 +39,23 @@ const DocsTable = (props) => {
39
39
  actions: actions || defaultActions,
40
40
  title: title ? `${title} (${documents.length})` : `All (${documents.length})`
41
41
  }
42
- ) : /* @__PURE__ */ React.createElement(
42
+ ) : /* @__PURE__ */ jsx(
43
43
  EmptyState,
44
44
  {
45
45
  missing: "data",
46
46
  title: "No documents to show",
47
47
  description: "Create your own document. Check out our Getting Started Information",
48
- action: /* @__PURE__ */ React.createElement(
48
+ action: /* @__PURE__ */ jsx(
49
49
  LinkButton,
50
50
  {
51
51
  color: "primary",
52
52
  to: "https://backstage.io/docs/features/techdocs/getting-started",
53
- variant: "contained"
54
- },
55
- "DOCS"
53
+ variant: "contained",
54
+ children: "DOCS"
55
+ }
56
56
  )
57
57
  }
58
- ));
58
+ ) });
59
59
  };
60
60
  DocsTable.columns = columnFactories;
61
61
  DocsTable.actions = actionFactories;
@@ -1 +1 @@
1
- {"version":3,"file":"DocsTable.esm.js","sources":["../../../../src/home/components/Tables/DocsTable.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 React from 'react';\nimport useCopyToClipboard from 'react-use/esm/useCopyToClipboard';\n\nimport { configApiRef, useApi, useRouteRef } from '@backstage/core-plugin-api';\nimport { Entity } from '@backstage/catalog-model';\nimport { rootDocsRouteRef } from '../../../routes';\nimport {\n EmptyState,\n LinkButton,\n Table,\n TableColumn,\n TableOptions,\n TableProps,\n} from '@backstage/core-components';\nimport { actionFactories } from './actions';\nimport { columnFactories, defaultColumns } from './columns';\nimport { DocsTableRow } from './types';\nimport { entitiesToDocsMapper } from './helpers';\n\n/**\n * Props for {@link DocsTable}.\n *\n * @public\n */\nexport type DocsTableProps = {\n entities: Entity[] | undefined;\n title?: string | undefined;\n loading?: boolean | undefined;\n columns?: TableColumn<DocsTableRow>[];\n actions?: TableProps<DocsTableRow>['actions'];\n options?: TableOptions<DocsTableRow>;\n};\n\n/**\n * Component which renders a table documents\n *\n * @public\n */\nexport const DocsTable = (props: DocsTableProps) => {\n const { entities, title, loading, columns, actions, options } = props;\n const [, copyToClipboard] = useCopyToClipboard();\n const getRouteToReaderPageFor = useRouteRef(rootDocsRouteRef);\n const config = useApi(configApiRef);\n if (!entities) return null;\n\n const documents = entitiesToDocsMapper(\n entities,\n getRouteToReaderPageFor,\n config,\n );\n\n const defaultActions: TableProps<DocsTableRow>['actions'] = [\n actionFactories.createCopyDocsUrlAction(copyToClipboard),\n ];\n\n const pageSize = 20;\n const paging = documents && documents.length > pageSize;\n\n return (\n <>\n {loading || (documents && documents.length > 0) ? (\n <Table<DocsTableRow>\n isLoading={loading}\n options={{\n paging,\n pageSize,\n search: true,\n actionsColumnIndex: -1,\n ...options,\n }}\n data={documents}\n columns={columns || defaultColumns}\n actions={actions || defaultActions}\n title={\n title\n ? `${title} (${documents.length})`\n : `All (${documents.length})`\n }\n />\n ) : (\n <EmptyState\n missing=\"data\"\n title=\"No documents to show\"\n description=\"Create your own document. Check out our Getting Started Information\"\n action={\n <LinkButton\n color=\"primary\"\n to=\"https://backstage.io/docs/features/techdocs/getting-started\"\n variant=\"contained\"\n >\n DOCS\n </LinkButton>\n }\n />\n )}\n </>\n );\n};\n\nDocsTable.columns = columnFactories;\nDocsTable.actions = actionFactories;\n"],"names":[],"mappings":";;;;;;;;;AAsDa,MAAA,SAAA,GAAY,CAAC,KAA0B,KAAA;AAClD,EAAA,MAAM,EAAE,QAAU,EAAA,KAAA,EAAO,SAAS,OAAS,EAAA,OAAA,EAAS,SAAY,GAAA,KAAA;AAChE,EAAA,MAAM,GAAG,eAAe,CAAA,GAAI,kBAAmB,EAAA;AAC/C,EAAM,MAAA,uBAAA,GAA0B,YAAY,gBAAgB,CAAA;AAC5D,EAAM,MAAA,MAAA,GAAS,OAAO,YAAY,CAAA;AAClC,EAAI,IAAA,CAAC,UAAiB,OAAA,IAAA;AAEtB,EAAA,MAAM,SAAY,GAAA,oBAAA;AAAA,IAChB,QAAA;AAAA,IACA,uBAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,MAAM,cAAsD,GAAA;AAAA,IAC1D,eAAA,CAAgB,wBAAwB,eAAe;AAAA,GACzD;AAEA,EAAA,MAAM,QAAW,GAAA,EAAA;AACjB,EAAM,MAAA,MAAA,GAAS,SAAa,IAAA,SAAA,CAAU,MAAS,GAAA,QAAA;AAE/C,EAAA,uBAEK,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,EAAA,OAAA,IAAY,SAAa,IAAA,SAAA,CAAU,SAAS,CAC3C,mBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAW,EAAA,OAAA;AAAA,MACX,OAAS,EAAA;AAAA,QACP,MAAA;AAAA,QACA,QAAA;AAAA,QACA,MAAQ,EAAA,IAAA;AAAA,QACR,kBAAoB,EAAA,CAAA,CAAA;AAAA,QACpB,GAAG;AAAA,OACL;AAAA,MACA,IAAM,EAAA,SAAA;AAAA,MACN,SAAS,OAAW,IAAA,cAAA;AAAA,MACpB,SAAS,OAAW,IAAA,cAAA;AAAA,MACpB,KAAA,EACE,KACI,GAAA,CAAA,EAAG,KAAK,CAAA,EAAA,EAAK,UAAU,MAAM,CAAA,CAAA,CAAA,GAC7B,CAAQ,KAAA,EAAA,SAAA,CAAU,MAAM,CAAA,CAAA;AAAA;AAAA,GAIhC,mBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,OAAQ,EAAA,MAAA;AAAA,MACR,KAAM,EAAA,sBAAA;AAAA,MACN,WAAY,EAAA,qEAAA;AAAA,MACZ,MACE,kBAAA,KAAA,CAAA,aAAA;AAAA,QAAC,UAAA;AAAA,QAAA;AAAA,UACC,KAAM,EAAA,SAAA;AAAA,UACN,EAAG,EAAA,6DAAA;AAAA,UACH,OAAQ,EAAA;AAAA,SAAA;AAAA,QACT;AAAA;AAED;AAAA,GAIR,CAAA;AAEJ;AAEA,SAAA,CAAU,OAAU,GAAA,eAAA;AACpB,SAAA,CAAU,OAAU,GAAA,eAAA;;;;"}
1
+ {"version":3,"file":"DocsTable.esm.js","sources":["../../../../src/home/components/Tables/DocsTable.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 useCopyToClipboard from 'react-use/esm/useCopyToClipboard';\n\nimport { configApiRef, useApi, useRouteRef } from '@backstage/core-plugin-api';\nimport { Entity } from '@backstage/catalog-model';\nimport { rootDocsRouteRef } from '../../../routes';\nimport {\n EmptyState,\n LinkButton,\n Table,\n TableColumn,\n TableOptions,\n TableProps,\n} from '@backstage/core-components';\nimport { actionFactories } from './actions';\nimport { columnFactories, defaultColumns } from './columns';\nimport { DocsTableRow } from './types';\nimport { entitiesToDocsMapper } from './helpers';\n\n/**\n * Props for {@link DocsTable}.\n *\n * @public\n */\nexport type DocsTableProps = {\n entities: Entity[] | undefined;\n title?: string | undefined;\n loading?: boolean | undefined;\n columns?: TableColumn<DocsTableRow>[];\n actions?: TableProps<DocsTableRow>['actions'];\n options?: TableOptions<DocsTableRow>;\n};\n\n/**\n * Component which renders a table documents\n *\n * @public\n */\nexport const DocsTable = (props: DocsTableProps) => {\n const { entities, title, loading, columns, actions, options } = props;\n const [, copyToClipboard] = useCopyToClipboard();\n const getRouteToReaderPageFor = useRouteRef(rootDocsRouteRef);\n const config = useApi(configApiRef);\n if (!entities) return null;\n\n const documents = entitiesToDocsMapper(\n entities,\n getRouteToReaderPageFor,\n config,\n );\n\n const defaultActions: TableProps<DocsTableRow>['actions'] = [\n actionFactories.createCopyDocsUrlAction(copyToClipboard),\n ];\n\n const pageSize = 20;\n const paging = documents && documents.length > pageSize;\n\n return (\n <>\n {loading || (documents && documents.length > 0) ? (\n <Table<DocsTableRow>\n isLoading={loading}\n options={{\n paging,\n pageSize,\n search: true,\n actionsColumnIndex: -1,\n ...options,\n }}\n data={documents}\n columns={columns || defaultColumns}\n actions={actions || defaultActions}\n title={\n title\n ? `${title} (${documents.length})`\n : `All (${documents.length})`\n }\n />\n ) : (\n <EmptyState\n missing=\"data\"\n title=\"No documents to show\"\n description=\"Create your own document. Check out our Getting Started Information\"\n action={\n <LinkButton\n color=\"primary\"\n to=\"https://backstage.io/docs/features/techdocs/getting-started\"\n variant=\"contained\"\n >\n DOCS\n </LinkButton>\n }\n />\n )}\n </>\n );\n};\n\nDocsTable.columns = columnFactories;\nDocsTable.actions = actionFactories;\n"],"names":[],"mappings":";;;;;;;;;AAqDa,MAAA,SAAA,GAAY,CAAC,KAA0B,KAAA;AAClD,EAAA,MAAM,EAAE,QAAU,EAAA,KAAA,EAAO,SAAS,OAAS,EAAA,OAAA,EAAS,SAAY,GAAA,KAAA;AAChE,EAAA,MAAM,GAAG,eAAe,CAAA,GAAI,kBAAmB,EAAA;AAC/C,EAAM,MAAA,uBAAA,GAA0B,YAAY,gBAAgB,CAAA;AAC5D,EAAM,MAAA,MAAA,GAAS,OAAO,YAAY,CAAA;AAClC,EAAI,IAAA,CAAC,UAAiB,OAAA,IAAA;AAEtB,EAAA,MAAM,SAAY,GAAA,oBAAA;AAAA,IAChB,QAAA;AAAA,IACA,uBAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,MAAM,cAAsD,GAAA;AAAA,IAC1D,eAAA,CAAgB,wBAAwB,eAAe;AAAA,GACzD;AAEA,EAAA,MAAM,QAAW,GAAA,EAAA;AACjB,EAAM,MAAA,MAAA,GAAS,SAAa,IAAA,SAAA,CAAU,MAAS,GAAA,QAAA;AAE/C,EAAA,uBAEK,GAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA,OAAA,IAAY,SAAa,IAAA,SAAA,CAAU,SAAS,CAC3C,mBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAW,EAAA,OAAA;AAAA,MACX,OAAS,EAAA;AAAA,QACP,MAAA;AAAA,QACA,QAAA;AAAA,QACA,MAAQ,EAAA,IAAA;AAAA,QACR,kBAAoB,EAAA,CAAA,CAAA;AAAA,QACpB,GAAG;AAAA,OACL;AAAA,MACA,IAAM,EAAA,SAAA;AAAA,MACN,SAAS,OAAW,IAAA,cAAA;AAAA,MACpB,SAAS,OAAW,IAAA,cAAA;AAAA,MACpB,KAAA,EACE,KACI,GAAA,CAAA,EAAG,KAAK,CAAA,EAAA,EAAK,UAAU,MAAM,CAAA,CAAA,CAAA,GAC7B,CAAQ,KAAA,EAAA,SAAA,CAAU,MAAM,CAAA,CAAA;AAAA;AAAA,GAIhC,mBAAA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,OAAQ,EAAA,MAAA;AAAA,MACR,KAAM,EAAA,sBAAA;AAAA,MACN,WAAY,EAAA,qEAAA;AAAA,MACZ,MACE,kBAAA,GAAA;AAAA,QAAC,UAAA;AAAA,QAAA;AAAA,UACC,KAAM,EAAA,SAAA;AAAA,UACN,EAAG,EAAA,6DAAA;AAAA,UACH,OAAQ,EAAA,WAAA;AAAA,UACT,QAAA,EAAA;AAAA;AAAA;AAED;AAAA,GAIR,EAAA,CAAA;AAEJ;AAEA,SAAA,CAAU,OAAU,GAAA,eAAA;AACpB,SAAA,CAAU,OAAU,GAAA,eAAA;;;;"}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import { jsx } from 'react/jsx-runtime';
2
2
  import useCopyToClipboard from 'react-use/esm/useCopyToClipboard';
3
3
  import { capitalize } from 'lodash';
4
4
  import { WarningPanel, CodeSnippet } from '@backstage/core-components';
@@ -33,7 +33,7 @@ const EntityListDocsTable = (props) => {
33
33
  config
34
34
  );
35
35
  if (paginationMode === "cursor") {
36
- return /* @__PURE__ */ React.createElement(
36
+ return /* @__PURE__ */ jsx(
37
37
  CursorPaginatedDocsTable,
38
38
  {
39
39
  columns: columns || defaultColumns,
@@ -47,7 +47,7 @@ const EntityListDocsTable = (props) => {
47
47
  }
48
48
  );
49
49
  } else if (paginationMode === "offset") {
50
- return /* @__PURE__ */ React.createElement(
50
+ return /* @__PURE__ */ jsx(
51
51
  OffsetPaginatedDocsTable,
52
52
  {
53
53
  columns: columns || defaultColumns,
@@ -60,16 +60,16 @@ const EntityListDocsTable = (props) => {
60
60
  );
61
61
  }
62
62
  if (error) {
63
- return /* @__PURE__ */ React.createElement(
63
+ return /* @__PURE__ */ jsx(
64
64
  WarningPanel,
65
65
  {
66
66
  severity: "error",
67
- title: "Could not load available documentation."
68
- },
69
- /* @__PURE__ */ React.createElement(CodeSnippet, { language: "text", text: error.toString() })
67
+ title: "Could not load available documentation.",
68
+ children: /* @__PURE__ */ jsx(CodeSnippet, { language: "text", text: error.toString() })
69
+ }
70
70
  );
71
71
  }
72
- return /* @__PURE__ */ React.createElement(
72
+ return /* @__PURE__ */ jsx(
73
73
  DocsTable,
74
74
  {
75
75
  title,
@@ -1 +1 @@
1
- {"version":3,"file":"EntityListDocsTable.esm.js","sources":["../../../../src/home/components/Tables/EntityListDocsTable.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 React from 'react';\nimport useCopyToClipboard from 'react-use/esm/useCopyToClipboard';\nimport { capitalize } from 'lodash';\nimport {\n CodeSnippet,\n TableColumn,\n TableOptions,\n TableProps,\n WarningPanel,\n} from '@backstage/core-components';\nimport { configApiRef, useApi, useRouteRef } from '@backstage/core-plugin-api';\nimport {\n useEntityList,\n useStarredEntities,\n} from '@backstage/plugin-catalog-react';\nimport { DocsTable } from './DocsTable';\nimport { OffsetPaginatedDocsTable } from './OffsetPaginatedDocsTable';\nimport { CursorPaginatedDocsTable } from './CursorPaginatedDocsTable';\nimport { actionFactories } from './actions';\nimport { columnFactories, defaultColumns } from './columns';\nimport { DocsTableRow } from './types';\nimport { rootDocsRouteRef } from '../../../routes';\nimport { entitiesToDocsMapper } from './helpers';\n\n/**\n * Props for {@link EntityListDocsTable}.\n *\n * @public\n */\nexport type EntityListDocsTableProps = {\n columns?: TableColumn<DocsTableRow>[];\n actions?: TableProps<DocsTableRow>['actions'];\n options?: TableOptions<DocsTableRow>;\n};\n\n/**\n * Component which renders a table with entities from catalog.\n *\n * @public\n */\nexport const EntityListDocsTable = (props: EntityListDocsTableProps) => {\n const { columns, actions, options } = props;\n const { loading, error, entities, filters, paginationMode, pageInfo } =\n useEntityList();\n const { isStarredEntity, toggleStarredEntity } = useStarredEntities();\n const [, copyToClipboard] = useCopyToClipboard();\n const getRouteToReaderPageFor = useRouteRef(rootDocsRouteRef);\n const config = useApi(configApiRef);\n\n const title = capitalize(filters.user?.value ?? 'all');\n\n const defaultActions = [\n actionFactories.createCopyDocsUrlAction(copyToClipboard),\n actionFactories.createStarEntityAction(\n isStarredEntity,\n toggleStarredEntity,\n ),\n ];\n\n const documents = entitiesToDocsMapper(\n entities,\n getRouteToReaderPageFor,\n config,\n );\n\n if (paginationMode === 'cursor') {\n return (\n <CursorPaginatedDocsTable\n columns={columns || defaultColumns}\n isLoading={loading}\n title={title}\n actions={actions || defaultActions}\n options={options}\n data={documents}\n next={pageInfo?.next}\n prev={pageInfo?.prev}\n />\n );\n } else if (paginationMode === 'offset') {\n return (\n <OffsetPaginatedDocsTable\n columns={columns || defaultColumns}\n isLoading={loading}\n title={title}\n actions={actions || defaultActions}\n options={options}\n data={documents}\n />\n );\n }\n\n if (error) {\n return (\n <WarningPanel\n severity=\"error\"\n title=\"Could not load available documentation.\"\n >\n <CodeSnippet language=\"text\" text={error.toString()} />\n </WarningPanel>\n );\n }\n\n return (\n <DocsTable\n title={title}\n entities={entities}\n loading={loading}\n actions={actions || defaultActions}\n columns={columns}\n options={options}\n />\n );\n};\n\nEntityListDocsTable.columns = columnFactories;\nEntityListDocsTable.actions = actionFactories;\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAwDa,MAAA,mBAAA,GAAsB,CAAC,KAAoC,KAAA;AACtE,EAAA,MAAM,EAAE,OAAA,EAAS,OAAS,EAAA,OAAA,EAAY,GAAA,KAAA;AACtC,EAAM,MAAA,EAAE,SAAS,KAAO,EAAA,QAAA,EAAU,SAAS,cAAgB,EAAA,QAAA,KACzD,aAAc,EAAA;AAChB,EAAA,MAAM,EAAE,eAAA,EAAiB,mBAAoB,EAAA,GAAI,kBAAmB,EAAA;AACpE,EAAA,MAAM,GAAG,eAAe,CAAA,GAAI,kBAAmB,EAAA;AAC/C,EAAM,MAAA,uBAAA,GAA0B,YAAY,gBAAgB,CAAA;AAC5D,EAAM,MAAA,MAAA,GAAS,OAAO,YAAY,CAAA;AAElC,EAAA,MAAM,KAAQ,GAAA,UAAA,CAAW,OAAQ,CAAA,IAAA,EAAM,SAAS,KAAK,CAAA;AAErD,EAAA,MAAM,cAAiB,GAAA;AAAA,IACrB,eAAA,CAAgB,wBAAwB,eAAe,CAAA;AAAA,IACvD,eAAgB,CAAA,sBAAA;AAAA,MACd,eAAA;AAAA,MACA;AAAA;AACF,GACF;AAEA,EAAA,MAAM,SAAY,GAAA,oBAAA;AAAA,IAChB,QAAA;AAAA,IACA,uBAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,IAAI,mBAAmB,QAAU,EAAA;AAC/B,IACE,uBAAA,KAAA,CAAA,aAAA;AAAA,MAAC,wBAAA;AAAA,MAAA;AAAA,QACC,SAAS,OAAW,IAAA,cAAA;AAAA,QACpB,SAAW,EAAA,OAAA;AAAA,QACX,KAAA;AAAA,QACA,SAAS,OAAW,IAAA,cAAA;AAAA,QACpB,OAAA;AAAA,QACA,IAAM,EAAA,SAAA;AAAA,QACN,MAAM,QAAU,EAAA,IAAA;AAAA,QAChB,MAAM,QAAU,EAAA;AAAA;AAAA,KAClB;AAAA,GAEJ,MAAA,IAAW,mBAAmB,QAAU,EAAA;AACtC,IACE,uBAAA,KAAA,CAAA,aAAA;AAAA,MAAC,wBAAA;AAAA,MAAA;AAAA,QACC,SAAS,OAAW,IAAA,cAAA;AAAA,QACpB,SAAW,EAAA,OAAA;AAAA,QACX,KAAA;AAAA,QACA,SAAS,OAAW,IAAA,cAAA;AAAA,QACpB,OAAA;AAAA,QACA,IAAM,EAAA;AAAA;AAAA,KACR;AAAA;AAIJ,EAAA,IAAI,KAAO,EAAA;AACT,IACE,uBAAA,KAAA,CAAA,aAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,QAAS,EAAA,OAAA;AAAA,QACT,KAAM,EAAA;AAAA,OAAA;AAAA,0CAEL,WAAY,EAAA,EAAA,QAAA,EAAS,QAAO,IAAM,EAAA,KAAA,CAAM,UAAY,EAAA;AAAA,KACvD;AAAA;AAIJ,EACE,uBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,QAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAS,OAAW,IAAA,cAAA;AAAA,MACpB,OAAA;AAAA,MACA;AAAA;AAAA,GACF;AAEJ;AAEA,mBAAA,CAAoB,OAAU,GAAA,eAAA;AAC9B,mBAAA,CAAoB,OAAU,GAAA,eAAA;;;;"}
1
+ {"version":3,"file":"EntityListDocsTable.esm.js","sources":["../../../../src/home/components/Tables/EntityListDocsTable.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 useCopyToClipboard from 'react-use/esm/useCopyToClipboard';\nimport { capitalize } from 'lodash';\nimport {\n CodeSnippet,\n TableColumn,\n TableOptions,\n TableProps,\n WarningPanel,\n} from '@backstage/core-components';\nimport { configApiRef, useApi, useRouteRef } from '@backstage/core-plugin-api';\nimport {\n useEntityList,\n useStarredEntities,\n} from '@backstage/plugin-catalog-react';\nimport { DocsTable } from './DocsTable';\nimport { OffsetPaginatedDocsTable } from './OffsetPaginatedDocsTable';\nimport { CursorPaginatedDocsTable } from './CursorPaginatedDocsTable';\nimport { actionFactories } from './actions';\nimport { columnFactories, defaultColumns } from './columns';\nimport { DocsTableRow } from './types';\nimport { rootDocsRouteRef } from '../../../routes';\nimport { entitiesToDocsMapper } from './helpers';\n\n/**\n * Props for {@link EntityListDocsTable}.\n *\n * @public\n */\nexport type EntityListDocsTableProps = {\n columns?: TableColumn<DocsTableRow>[];\n actions?: TableProps<DocsTableRow>['actions'];\n options?: TableOptions<DocsTableRow>;\n};\n\n/**\n * Component which renders a table with entities from catalog.\n *\n * @public\n */\nexport const EntityListDocsTable = (props: EntityListDocsTableProps) => {\n const { columns, actions, options } = props;\n const { loading, error, entities, filters, paginationMode, pageInfo } =\n useEntityList();\n const { isStarredEntity, toggleStarredEntity } = useStarredEntities();\n const [, copyToClipboard] = useCopyToClipboard();\n const getRouteToReaderPageFor = useRouteRef(rootDocsRouteRef);\n const config = useApi(configApiRef);\n\n const title = capitalize(filters.user?.value ?? 'all');\n\n const defaultActions = [\n actionFactories.createCopyDocsUrlAction(copyToClipboard),\n actionFactories.createStarEntityAction(\n isStarredEntity,\n toggleStarredEntity,\n ),\n ];\n\n const documents = entitiesToDocsMapper(\n entities,\n getRouteToReaderPageFor,\n config,\n );\n\n if (paginationMode === 'cursor') {\n return (\n <CursorPaginatedDocsTable\n columns={columns || defaultColumns}\n isLoading={loading}\n title={title}\n actions={actions || defaultActions}\n options={options}\n data={documents}\n next={pageInfo?.next}\n prev={pageInfo?.prev}\n />\n );\n } else if (paginationMode === 'offset') {\n return (\n <OffsetPaginatedDocsTable\n columns={columns || defaultColumns}\n isLoading={loading}\n title={title}\n actions={actions || defaultActions}\n options={options}\n data={documents}\n />\n );\n }\n\n if (error) {\n return (\n <WarningPanel\n severity=\"error\"\n title=\"Could not load available documentation.\"\n >\n <CodeSnippet language=\"text\" text={error.toString()} />\n </WarningPanel>\n );\n }\n\n return (\n <DocsTable\n title={title}\n entities={entities}\n loading={loading}\n actions={actions || defaultActions}\n columns={columns}\n options={options}\n />\n );\n};\n\nEntityListDocsTable.columns = columnFactories;\nEntityListDocsTable.actions = actionFactories;\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAuDa,MAAA,mBAAA,GAAsB,CAAC,KAAoC,KAAA;AACtE,EAAA,MAAM,EAAE,OAAA,EAAS,OAAS,EAAA,OAAA,EAAY,GAAA,KAAA;AACtC,EAAM,MAAA,EAAE,SAAS,KAAO,EAAA,QAAA,EAAU,SAAS,cAAgB,EAAA,QAAA,KACzD,aAAc,EAAA;AAChB,EAAA,MAAM,EAAE,eAAA,EAAiB,mBAAoB,EAAA,GAAI,kBAAmB,EAAA;AACpE,EAAA,MAAM,GAAG,eAAe,CAAA,GAAI,kBAAmB,EAAA;AAC/C,EAAM,MAAA,uBAAA,GAA0B,YAAY,gBAAgB,CAAA;AAC5D,EAAM,MAAA,MAAA,GAAS,OAAO,YAAY,CAAA;AAElC,EAAA,MAAM,KAAQ,GAAA,UAAA,CAAW,OAAQ,CAAA,IAAA,EAAM,SAAS,KAAK,CAAA;AAErD,EAAA,MAAM,cAAiB,GAAA;AAAA,IACrB,eAAA,CAAgB,wBAAwB,eAAe,CAAA;AAAA,IACvD,eAAgB,CAAA,sBAAA;AAAA,MACd,eAAA;AAAA,MACA;AAAA;AACF,GACF;AAEA,EAAA,MAAM,SAAY,GAAA,oBAAA;AAAA,IAChB,QAAA;AAAA,IACA,uBAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,IAAI,mBAAmB,QAAU,EAAA;AAC/B,IACE,uBAAA,GAAA;AAAA,MAAC,wBAAA;AAAA,MAAA;AAAA,QACC,SAAS,OAAW,IAAA,cAAA;AAAA,QACpB,SAAW,EAAA,OAAA;AAAA,QACX,KAAA;AAAA,QACA,SAAS,OAAW,IAAA,cAAA;AAAA,QACpB,OAAA;AAAA,QACA,IAAM,EAAA,SAAA;AAAA,QACN,MAAM,QAAU,EAAA,IAAA;AAAA,QAChB,MAAM,QAAU,EAAA;AAAA;AAAA,KAClB;AAAA,GAEJ,MAAA,IAAW,mBAAmB,QAAU,EAAA;AACtC,IACE,uBAAA,GAAA;AAAA,MAAC,wBAAA;AAAA,MAAA;AAAA,QACC,SAAS,OAAW,IAAA,cAAA;AAAA,QACpB,SAAW,EAAA,OAAA;AAAA,QACX,KAAA;AAAA,QACA,SAAS,OAAW,IAAA,cAAA;AAAA,QACpB,OAAA;AAAA,QACA,IAAM,EAAA;AAAA;AAAA,KACR;AAAA;AAIJ,EAAA,IAAI,KAAO,EAAA;AACT,IACE,uBAAA,GAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,QAAS,EAAA,OAAA;AAAA,QACT,KAAM,EAAA,yCAAA;AAAA,QAEN,8BAAC,WAAY,EAAA,EAAA,QAAA,EAAS,QAAO,IAAM,EAAA,KAAA,CAAM,UAAY,EAAA;AAAA;AAAA,KACvD;AAAA;AAIJ,EACE,uBAAA,GAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,QAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAS,OAAW,IAAA,cAAA;AAAA,MACpB,OAAA;AAAA,MACA;AAAA;AAAA,GACF;AAEJ;AAEA,mBAAA,CAAoB,OAAU,GAAA,eAAA;AAC9B,mBAAA,CAAoB,OAAU,GAAA,eAAA;;;;"}
@@ -1,11 +1,12 @@
1
- import React, { useEffect } from 'react';
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { useState, useEffect } from 'react';
2
3
  import { Table } from '@backstage/core-components';
3
4
  import { useEntityList, EntityTextFilter } from '@backstage/plugin-catalog-react';
4
5
 
5
6
  function OffsetPaginatedDocsTable(props) {
6
7
  const { actions, columns, data, isLoading, options } = props;
7
8
  const { updateFilters, setLimit, setOffset, limit, totalItems, offset } = useEntityList();
8
- const [page, setPage] = React.useState(
9
+ const [page, setPage] = useState(
9
10
  offset && limit ? Math.floor(offset / limit) : 0
10
11
  );
11
12
  useEffect(() => {
@@ -15,7 +16,7 @@ function OffsetPaginatedDocsTable(props) {
15
16
  setOffset(Math.max(0, page * limit));
16
17
  }
17
18
  }, [setOffset, page, limit, totalItems]);
18
- return /* @__PURE__ */ React.createElement(
19
+ return /* @__PURE__ */ jsx(
19
20
  Table,
20
21
  {
21
22
  columns,
@@ -1 +1 @@
1
- {"version":3,"file":"OffsetPaginatedDocsTable.esm.js","sources":["../../../../src/home/components/Tables/OffsetPaginatedDocsTable.tsx"],"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 React, { useEffect } from 'react';\n\nimport { Table, TableProps } from '@backstage/core-components';\nimport { DocsTableRow } from './types';\nimport {\n EntityTextFilter,\n useEntityList,\n} from '@backstage/plugin-catalog-react';\n\n/**\n * @internal\n */\nexport function OffsetPaginatedDocsTable(props: TableProps<DocsTableRow>) {\n const { actions, columns, data, isLoading, options } = props;\n const { updateFilters, setLimit, setOffset, limit, totalItems, offset } =\n useEntityList();\n const [page, setPage] = React.useState(\n offset && limit ? Math.floor(offset / limit) : 0,\n );\n\n useEffect(() => {\n if (totalItems && page * limit >= totalItems) {\n setOffset!(Math.max(0, totalItems - limit));\n } else {\n setOffset!(Math.max(0, page * limit));\n }\n }, [setOffset, page, limit, totalItems]);\n\n return (\n <Table<DocsTableRow>\n columns={columns}\n data={data}\n options={{\n paginationPosition: 'both',\n pageSizeOptions: [5, 10, 20, 50, 100],\n pageSize: limit,\n emptyRowsWhenPaging: false,\n actionsColumnIndex: -1,\n ...options,\n }}\n actions={actions}\n onSearchChange={(searchText: string) =>\n updateFilters({\n text: searchText ? new EntityTextFilter(searchText) : undefined,\n })\n }\n page={page}\n onPageChange={newPage => {\n setPage(newPage);\n }}\n onRowsPerPageChange={pageSize => {\n setLimit(pageSize);\n }}\n totalCount={totalItems}\n localization={{ pagination: { labelDisplayedRows: '' } }}\n isLoading={isLoading}\n />\n );\n}\n"],"names":[],"mappings":";;;;AA4BO,SAAS,yBAAyB,KAAiC,EAAA;AACxE,EAAA,MAAM,EAAE,OAAS,EAAA,OAAA,EAAS,IAAM,EAAA,SAAA,EAAW,SAAY,GAAA,KAAA;AACvD,EAAM,MAAA,EAAE,eAAe,QAAU,EAAA,SAAA,EAAW,OAAO,UAAY,EAAA,MAAA,KAC7D,aAAc,EAAA;AAChB,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAI,KAAM,CAAA,QAAA;AAAA,IAC5B,UAAU,KAAQ,GAAA,IAAA,CAAK,KAAM,CAAA,MAAA,GAAS,KAAK,CAAI,GAAA;AAAA,GACjD;AAEA,EAAA,SAAA,CAAU,MAAM;AACd,IAAI,IAAA,UAAA,IAAc,IAAO,GAAA,KAAA,IAAS,UAAY,EAAA;AAC5C,MAAA,SAAA,CAAW,IAAK,CAAA,GAAA,CAAI,CAAG,EAAA,UAAA,GAAa,KAAK,CAAC,CAAA;AAAA,KACrC,MAAA;AACL,MAAA,SAAA,CAAW,IAAK,CAAA,GAAA,CAAI,CAAG,EAAA,IAAA,GAAO,KAAK,CAAC,CAAA;AAAA;AACtC,KACC,CAAC,SAAA,EAAW,IAAM,EAAA,KAAA,EAAO,UAAU,CAAC,CAAA;AAEvC,EACE,uBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,OAAA;AAAA,MACA,IAAA;AAAA,MACA,OAAS,EAAA;AAAA,QACP,kBAAoB,EAAA,MAAA;AAAA,QACpB,iBAAiB,CAAC,CAAA,EAAG,EAAI,EAAA,EAAA,EAAI,IAAI,GAAG,CAAA;AAAA,QACpC,QAAU,EAAA,KAAA;AAAA,QACV,mBAAqB,EAAA,KAAA;AAAA,QACrB,kBAAoB,EAAA,CAAA,CAAA;AAAA,QACpB,GAAG;AAAA,OACL;AAAA,MACA,OAAA;AAAA,MACA,cAAA,EAAgB,CAAC,UAAA,KACf,aAAc,CAAA;AAAA,QACZ,IAAM,EAAA,UAAA,GAAa,IAAI,gBAAA,CAAiB,UAAU,CAAI,GAAA,KAAA;AAAA,OACvD,CAAA;AAAA,MAEH,IAAA;AAAA,MACA,cAAc,CAAW,OAAA,KAAA;AACvB,QAAA,OAAA,CAAQ,OAAO,CAAA;AAAA,OACjB;AAAA,MACA,qBAAqB,CAAY,QAAA,KAAA;AAC/B,QAAA,QAAA,CAAS,QAAQ,CAAA;AAAA,OACnB;AAAA,MACA,UAAY,EAAA,UAAA;AAAA,MACZ,cAAc,EAAE,UAAA,EAAY,EAAE,kBAAA,EAAoB,IAAK,EAAA;AAAA,MACvD;AAAA;AAAA,GACF;AAEJ;;;;"}
1
+ {"version":3,"file":"OffsetPaginatedDocsTable.esm.js","sources":["../../../../src/home/components/Tables/OffsetPaginatedDocsTable.tsx"],"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 { useState, useEffect } from 'react';\n\nimport { Table, TableProps } from '@backstage/core-components';\nimport { DocsTableRow } from './types';\nimport {\n EntityTextFilter,\n useEntityList,\n} from '@backstage/plugin-catalog-react';\n\n/**\n * @internal\n */\nexport function OffsetPaginatedDocsTable(props: TableProps<DocsTableRow>) {\n const { actions, columns, data, isLoading, options } = props;\n const { updateFilters, setLimit, setOffset, limit, totalItems, offset } =\n useEntityList();\n const [page, setPage] = useState(\n offset && limit ? Math.floor(offset / limit) : 0,\n );\n\n useEffect(() => {\n if (totalItems && page * limit >= totalItems) {\n setOffset!(Math.max(0, totalItems - limit));\n } else {\n setOffset!(Math.max(0, page * limit));\n }\n }, [setOffset, page, limit, totalItems]);\n\n return (\n <Table<DocsTableRow>\n columns={columns}\n data={data}\n options={{\n paginationPosition: 'both',\n pageSizeOptions: [5, 10, 20, 50, 100],\n pageSize: limit,\n emptyRowsWhenPaging: false,\n actionsColumnIndex: -1,\n ...options,\n }}\n actions={actions}\n onSearchChange={(searchText: string) =>\n updateFilters({\n text: searchText ? new EntityTextFilter(searchText) : undefined,\n })\n }\n page={page}\n onPageChange={newPage => {\n setPage(newPage);\n }}\n onRowsPerPageChange={pageSize => {\n setLimit(pageSize);\n }}\n totalCount={totalItems}\n localization={{ pagination: { labelDisplayedRows: '' } }}\n isLoading={isLoading}\n />\n );\n}\n"],"names":[],"mappings":";;;;;AA4BO,SAAS,yBAAyB,KAAiC,EAAA;AACxE,EAAA,MAAM,EAAE,OAAS,EAAA,OAAA,EAAS,IAAM,EAAA,SAAA,EAAW,SAAY,GAAA,KAAA;AACvD,EAAM,MAAA,EAAE,eAAe,QAAU,EAAA,SAAA,EAAW,OAAO,UAAY,EAAA,MAAA,KAC7D,aAAc,EAAA;AAChB,EAAM,MAAA,CAAC,IAAM,EAAA,OAAO,CAAI,GAAA,QAAA;AAAA,IACtB,UAAU,KAAQ,GAAA,IAAA,CAAK,KAAM,CAAA,MAAA,GAAS,KAAK,CAAI,GAAA;AAAA,GACjD;AAEA,EAAA,SAAA,CAAU,MAAM;AACd,IAAI,IAAA,UAAA,IAAc,IAAO,GAAA,KAAA,IAAS,UAAY,EAAA;AAC5C,MAAA,SAAA,CAAW,IAAK,CAAA,GAAA,CAAI,CAAG,EAAA,UAAA,GAAa,KAAK,CAAC,CAAA;AAAA,KACrC,MAAA;AACL,MAAA,SAAA,CAAW,IAAK,CAAA,GAAA,CAAI,CAAG,EAAA,IAAA,GAAO,KAAK,CAAC,CAAA;AAAA;AACtC,KACC,CAAC,SAAA,EAAW,IAAM,EAAA,KAAA,EAAO,UAAU,CAAC,CAAA;AAEvC,EACE,uBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,OAAA;AAAA,MACA,IAAA;AAAA,MACA,OAAS,EAAA;AAAA,QACP,kBAAoB,EAAA,MAAA;AAAA,QACpB,iBAAiB,CAAC,CAAA,EAAG,EAAI,EAAA,EAAA,EAAI,IAAI,GAAG,CAAA;AAAA,QACpC,QAAU,EAAA,KAAA;AAAA,QACV,mBAAqB,EAAA,KAAA;AAAA,QACrB,kBAAoB,EAAA,CAAA,CAAA;AAAA,QACpB,GAAG;AAAA,OACL;AAAA,MACA,OAAA;AAAA,MACA,cAAA,EAAgB,CAAC,UAAA,KACf,aAAc,CAAA;AAAA,QACZ,IAAM,EAAA,UAAA,GAAa,IAAI,gBAAA,CAAiB,UAAU,CAAI,GAAA,KAAA;AAAA,OACvD,CAAA;AAAA,MAEH,IAAA;AAAA,MACA,cAAc,CAAW,OAAA,KAAA;AACvB,QAAA,OAAA,CAAQ,OAAO,CAAA;AAAA,OACjB;AAAA,MACA,qBAAqB,CAAY,QAAA,KAAA;AAC/B,QAAA,QAAA,CAAS,QAAQ,CAAA;AAAA,OACnB;AAAA,MACA,UAAY,EAAA,UAAA;AAAA,MACZ,cAAc,EAAE,UAAA,EAAY,EAAE,kBAAA,EAAoB,IAAK,EAAA;AAAA,MACvD;AAAA;AAAA,GACF;AAEJ;;;;"}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import { jsx } from 'react/jsx-runtime';
2
2
  import ShareIcon from '@material-ui/icons/Share';
3
3
  import { FavoriteToggleIcon } from '@backstage/core-components';
4
4
 
@@ -6,7 +6,7 @@ const actionFactories = {
6
6
  createCopyDocsUrlAction(copyToClipboard) {
7
7
  return (row) => {
8
8
  return {
9
- icon: () => /* @__PURE__ */ React.createElement(ShareIcon, { fontSize: "small" }),
9
+ icon: () => /* @__PURE__ */ jsx(ShareIcon, { fontSize: "small" }),
10
10
  tooltip: "Click to copy documentation link to clipboard",
11
11
  onClick: () => copyToClipboard(`${window.location.origin}${row.resolved.docsUrl}`)
12
12
  };
@@ -18,7 +18,7 @@ const actionFactories = {
18
18
  const isStarred = isStarredEntity(entity);
19
19
  return {
20
20
  cellStyle: { paddingLeft: "1em" },
21
- icon: () => /* @__PURE__ */ React.createElement(FavoriteToggleIcon, { isFavorite: isStarred }),
21
+ icon: () => /* @__PURE__ */ jsx(FavoriteToggleIcon, { isFavorite: isStarred }),
22
22
  tooltip: isStarred ? "Remove from favorites" : "Add to favorites",
23
23
  onClick: () => toggleStarredEntity(entity)
24
24
  };
@@ -1 +1 @@
1
- {"version":3,"file":"actions.esm.js","sources":["../../../../src/home/components/Tables/actions.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 React from 'react';\nimport ShareIcon from '@material-ui/icons/Share';\nimport { DocsTableRow } from './types';\nimport { FavoriteToggleIcon } from '@backstage/core-components';\n\n/**\n * Not directly exported, but through DocsTable.actions and EntityListDocsTable.actions\n *\n * @public\n */\nexport const actionFactories = {\n createCopyDocsUrlAction(copyToClipboard: Function) {\n return (row: DocsTableRow) => {\n return {\n icon: () => <ShareIcon fontSize=\"small\" />,\n tooltip: 'Click to copy documentation link to clipboard',\n onClick: () =>\n copyToClipboard(`${window.location.origin}${row.resolved.docsUrl}`),\n };\n };\n },\n createStarEntityAction(\n isStarredEntity: Function,\n toggleStarredEntity: Function,\n ) {\n return (row: DocsTableRow) => {\n const entity = row.entity;\n const isStarred = isStarredEntity(entity);\n return {\n cellStyle: { paddingLeft: '1em' },\n icon: () => <FavoriteToggleIcon isFavorite={isStarred} />,\n tooltip: isStarred ? 'Remove from favorites' : 'Add to favorites',\n onClick: () => toggleStarredEntity(entity),\n };\n };\n },\n};\n"],"names":[],"mappings":";;;;AA0BO,MAAM,eAAkB,GAAA;AAAA,EAC7B,wBAAwB,eAA2B,EAAA;AACjD,IAAA,OAAO,CAAC,GAAsB,KAAA;AAC5B,MAAO,OAAA;AAAA,QACL,IAAM,EAAA,sBAAO,KAAA,CAAA,aAAA,CAAA,SAAA,EAAA,EAAU,UAAS,OAAQ,EAAA,CAAA;AAAA,QACxC,OAAS,EAAA,+CAAA;AAAA,QACT,OAAA,EAAS,MACP,eAAA,CAAgB,CAAG,EAAA,MAAA,CAAO,QAAS,CAAA,MAAM,CAAG,EAAA,GAAA,CAAI,QAAS,CAAA,OAAO,CAAE,CAAA;AAAA,OACtE;AAAA,KACF;AAAA,GACF;AAAA,EACA,sBAAA,CACE,iBACA,mBACA,EAAA;AACA,IAAA,OAAO,CAAC,GAAsB,KAAA;AAC5B,MAAA,MAAM,SAAS,GAAI,CAAA,MAAA;AACnB,MAAM,MAAA,SAAA,GAAY,gBAAgB,MAAM,CAAA;AACxC,MAAO,OAAA;AAAA,QACL,SAAA,EAAW,EAAE,WAAA,EAAa,KAAM,EAAA;AAAA,QAChC,IAAM,EAAA,sBAAO,KAAA,CAAA,aAAA,CAAA,kBAAA,EAAA,EAAmB,YAAY,SAAW,EAAA,CAAA;AAAA,QACvD,OAAA,EAAS,YAAY,uBAA0B,GAAA,kBAAA;AAAA,QAC/C,OAAA,EAAS,MAAM,mBAAA,CAAoB,MAAM;AAAA,OAC3C;AAAA,KACF;AAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"actions.esm.js","sources":["../../../../src/home/components/Tables/actions.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 ShareIcon from '@material-ui/icons/Share';\nimport { DocsTableRow } from './types';\nimport { FavoriteToggleIcon } from '@backstage/core-components';\n\n/**\n * Not directly exported, but through DocsTable.actions and EntityListDocsTable.actions\n *\n * @public\n */\nexport const actionFactories = {\n createCopyDocsUrlAction(copyToClipboard: Function) {\n return (row: DocsTableRow) => {\n return {\n icon: () => <ShareIcon fontSize=\"small\" />,\n tooltip: 'Click to copy documentation link to clipboard',\n onClick: () =>\n copyToClipboard(`${window.location.origin}${row.resolved.docsUrl}`),\n };\n };\n },\n createStarEntityAction(\n isStarredEntity: Function,\n toggleStarredEntity: Function,\n ) {\n return (row: DocsTableRow) => {\n const entity = row.entity;\n const isStarred = isStarredEntity(entity);\n return {\n cellStyle: { paddingLeft: '1em' },\n icon: () => <FavoriteToggleIcon isFavorite={isStarred} />,\n tooltip: isStarred ? 'Remove from favorites' : 'Add to favorites',\n onClick: () => toggleStarredEntity(entity),\n };\n };\n },\n};\n"],"names":[],"mappings":";;;;AAyBO,MAAM,eAAkB,GAAA;AAAA,EAC7B,wBAAwB,eAA2B,EAAA;AACjD,IAAA,OAAO,CAAC,GAAsB,KAAA;AAC5B,MAAO,OAAA;AAAA,QACL,IAAM,EAAA,sBAAO,GAAA,CAAA,SAAA,EAAA,EAAU,UAAS,OAAQ,EAAA,CAAA;AAAA,QACxC,OAAS,EAAA,+CAAA;AAAA,QACT,OAAA,EAAS,MACP,eAAA,CAAgB,CAAG,EAAA,MAAA,CAAO,QAAS,CAAA,MAAM,CAAG,EAAA,GAAA,CAAI,QAAS,CAAA,OAAO,CAAE,CAAA;AAAA,OACtE;AAAA,KACF;AAAA,GACF;AAAA,EACA,sBAAA,CACE,iBACA,mBACA,EAAA;AACA,IAAA,OAAO,CAAC,GAAsB,KAAA;AAC5B,MAAA,MAAM,SAAS,GAAI,CAAA,MAAA;AACnB,MAAM,MAAA,SAAA,GAAY,gBAAgB,MAAM,CAAA;AACxC,MAAO,OAAA;AAAA,QACL,SAAA,EAAW,EAAE,WAAA,EAAa,KAAM,EAAA;AAAA,QAChC,IAAM,EAAA,sBAAO,GAAA,CAAA,kBAAA,EAAA,EAAmB,YAAY,SAAW,EAAA,CAAA;AAAA,QACvD,OAAA,EAAS,YAAY,uBAA0B,GAAA,kBAAA;AAAA,QAC/C,OAAA,EAAS,MAAM,mBAAA,CAAoB,MAAM;AAAA,OAC3C;AAAA,KACF;AAAA;AAEJ;;;;"}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import { jsx } from 'react/jsx-runtime';
2
2
  import { SubvalueCell, Link } from '@backstage/core-components';
3
3
  import { EntityRefLinks } from '@backstage/plugin-catalog-react';
4
4
 
@@ -26,10 +26,10 @@ const columnFactories = {
26
26
  const title2 = customTitle(row2.entity).toLocaleLowerCase();
27
27
  return title1.localeCompare(title2);
28
28
  },
29
- render: (row) => /* @__PURE__ */ React.createElement(
29
+ render: (row) => /* @__PURE__ */ jsx(
30
30
  SubvalueCell,
31
31
  {
32
- value: /* @__PURE__ */ React.createElement(Link, { to: row.resolved.docsUrl }, customTitle(row.entity)),
32
+ value: /* @__PURE__ */ jsx(Link, { to: row.resolved.docsUrl, children: customTitle(row.entity) }),
33
33
  subvalue: row.entity.metadata.description
34
34
  }
35
35
  )
@@ -39,7 +39,7 @@ const columnFactories = {
39
39
  return {
40
40
  title: "Owner",
41
41
  field: "resolved.ownedByRelationsTitle",
42
- render: ({ resolved }) => /* @__PURE__ */ React.createElement(
42
+ render: ({ resolved }) => /* @__PURE__ */ jsx(
43
43
  EntityRefLinks,
44
44
  {
45
45
  entityRefs: resolved.ownedByRelations,
@@ -1 +1 @@
1
- {"version":3,"file":"columns.esm.js","sources":["../../../../src/home/components/Tables/columns.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 React from 'react';\nimport { Link, SubvalueCell, TableColumn } from '@backstage/core-components';\nimport { EntityRefLinks } from '@backstage/plugin-catalog-react';\nimport { Entity } from '@backstage/catalog-model';\nimport { DocsTableRow } from './types';\n\nfunction customTitle(entity: Entity): string {\n return entity.metadata.title || entity.metadata.name;\n}\n\n/**\n * Not directly exported, but through DocsTable.columns and EntityListDocsTable.columns\n *\n * @public\n */\nexport const columnFactories = {\n createTitleColumn(options?: { hidden?: boolean }): TableColumn<DocsTableRow> {\n const nameCol = columnFactories.createNameColumn();\n return {\n ...nameCol,\n field: 'entity.metadata.title',\n hidden: options?.hidden,\n };\n },\n createNameColumn(): TableColumn<DocsTableRow> {\n return {\n title: 'Document',\n field: 'entity.metadata.name',\n highlight: true,\n searchable: true,\n defaultSort: 'asc',\n customSort: (row1, row2) => {\n const title1 = customTitle(row1.entity).toLocaleLowerCase();\n const title2 = customTitle(row2.entity).toLocaleLowerCase();\n return title1.localeCompare(title2);\n },\n render: (row: DocsTableRow) => (\n <SubvalueCell\n value={\n <Link to={row.resolved.docsUrl}>{customTitle(row.entity)}</Link>\n }\n subvalue={row.entity.metadata.description}\n />\n ),\n };\n },\n createOwnerColumn(): TableColumn<DocsTableRow> {\n return {\n title: 'Owner',\n field: 'resolved.ownedByRelationsTitle',\n render: ({ resolved }) => (\n <EntityRefLinks\n entityRefs={resolved.ownedByRelations}\n defaultKind=\"group\"\n />\n ),\n };\n },\n createKindColumn(): TableColumn<DocsTableRow> {\n return {\n title: 'Kind',\n field: 'entity.kind',\n };\n },\n createTypeColumn(): TableColumn<DocsTableRow> {\n return {\n title: 'Type',\n field: 'entity.spec.type',\n };\n },\n};\n\nexport const defaultColumns: TableColumn<DocsTableRow>[] = [\n columnFactories.createTitleColumn({ hidden: true }),\n columnFactories.createNameColumn(),\n columnFactories.createOwnerColumn(),\n columnFactories.createKindColumn(),\n columnFactories.createTypeColumn(),\n];\n"],"names":[],"mappings":";;;;AAsBA,SAAS,YAAY,MAAwB,EAAA;AAC3C,EAAA,OAAO,MAAO,CAAA,QAAA,CAAS,KAAS,IAAA,MAAA,CAAO,QAAS,CAAA,IAAA;AAClD;AAOO,MAAM,eAAkB,GAAA;AAAA,EAC7B,kBAAkB,OAA2D,EAAA;AAC3E,IAAM,MAAA,OAAA,GAAU,gBAAgB,gBAAiB,EAAA;AACjD,IAAO,OAAA;AAAA,MACL,GAAG,OAAA;AAAA,MACH,KAAO,EAAA,uBAAA;AAAA,MACP,QAAQ,OAAS,EAAA;AAAA,KACnB;AAAA,GACF;AAAA,EACA,gBAA8C,GAAA;AAC5C,IAAO,OAAA;AAAA,MACL,KAAO,EAAA,UAAA;AAAA,MACP,KAAO,EAAA,sBAAA;AAAA,MACP,SAAW,EAAA,IAAA;AAAA,MACX,UAAY,EAAA,IAAA;AAAA,MACZ,WAAa,EAAA,KAAA;AAAA,MACb,UAAA,EAAY,CAAC,IAAA,EAAM,IAAS,KAAA;AAC1B,QAAA,MAAM,MAAS,GAAA,WAAA,CAAY,IAAK,CAAA,MAAM,EAAE,iBAAkB,EAAA;AAC1D,QAAA,MAAM,MAAS,GAAA,WAAA,CAAY,IAAK,CAAA,MAAM,EAAE,iBAAkB,EAAA;AAC1D,QAAO,OAAA,MAAA,CAAO,cAAc,MAAM,CAAA;AAAA,OACpC;AAAA,MACA,MAAA,EAAQ,CAAC,GACP,qBAAA,KAAA,CAAA,aAAA;AAAA,QAAC,YAAA;AAAA,QAAA;AAAA,UACC,KAAA,kBACG,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAK,EAAI,EAAA,GAAA,CAAI,SAAS,OAAU,EAAA,EAAA,WAAA,CAAY,GAAI,CAAA,MAAM,CAAE,CAAA;AAAA,UAE3D,QAAA,EAAU,GAAI,CAAA,MAAA,CAAO,QAAS,CAAA;AAAA;AAAA;AAChC,KAEJ;AAAA,GACF;AAAA,EACA,iBAA+C,GAAA;AAC7C,IAAO,OAAA;AAAA,MACL,KAAO,EAAA,OAAA;AAAA,MACP,KAAO,EAAA,gCAAA;AAAA,MACP,MAAQ,EAAA,CAAC,EAAE,QAAA,EACT,qBAAA,KAAA,CAAA,aAAA;AAAA,QAAC,cAAA;AAAA,QAAA;AAAA,UACC,YAAY,QAAS,CAAA,gBAAA;AAAA,UACrB,WAAY,EAAA;AAAA;AAAA;AACd,KAEJ;AAAA,GACF;AAAA,EACA,gBAA8C,GAAA;AAC5C,IAAO,OAAA;AAAA,MACL,KAAO,EAAA,MAAA;AAAA,MACP,KAAO,EAAA;AAAA,KACT;AAAA,GACF;AAAA,EACA,gBAA8C,GAAA;AAC5C,IAAO,OAAA;AAAA,MACL,KAAO,EAAA,MAAA;AAAA,MACP,KAAO,EAAA;AAAA,KACT;AAAA;AAEJ;AAEO,MAAM,cAA8C,GAAA;AAAA,EACzD,eAAgB,CAAA,iBAAA,CAAkB,EAAE,MAAA,EAAQ,MAAM,CAAA;AAAA,EAClD,gBAAgB,gBAAiB,EAAA;AAAA,EACjC,gBAAgB,iBAAkB,EAAA;AAAA,EAClC,gBAAgB,gBAAiB,EAAA;AAAA,EACjC,gBAAgB,gBAAiB;AACnC;;;;"}
1
+ {"version":3,"file":"columns.esm.js","sources":["../../../../src/home/components/Tables/columns.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 { Link, SubvalueCell, TableColumn } from '@backstage/core-components';\nimport { EntityRefLinks } from '@backstage/plugin-catalog-react';\nimport { Entity } from '@backstage/catalog-model';\nimport { DocsTableRow } from './types';\n\nfunction customTitle(entity: Entity): string {\n return entity.metadata.title || entity.metadata.name;\n}\n\n/**\n * Not directly exported, but through DocsTable.columns and EntityListDocsTable.columns\n *\n * @public\n */\nexport const columnFactories = {\n createTitleColumn(options?: { hidden?: boolean }): TableColumn<DocsTableRow> {\n const nameCol = columnFactories.createNameColumn();\n return {\n ...nameCol,\n field: 'entity.metadata.title',\n hidden: options?.hidden,\n };\n },\n createNameColumn(): TableColumn<DocsTableRow> {\n return {\n title: 'Document',\n field: 'entity.metadata.name',\n highlight: true,\n searchable: true,\n defaultSort: 'asc',\n customSort: (row1, row2) => {\n const title1 = customTitle(row1.entity).toLocaleLowerCase();\n const title2 = customTitle(row2.entity).toLocaleLowerCase();\n return title1.localeCompare(title2);\n },\n render: (row: DocsTableRow) => (\n <SubvalueCell\n value={\n <Link to={row.resolved.docsUrl}>{customTitle(row.entity)}</Link>\n }\n subvalue={row.entity.metadata.description}\n />\n ),\n };\n },\n createOwnerColumn(): TableColumn<DocsTableRow> {\n return {\n title: 'Owner',\n field: 'resolved.ownedByRelationsTitle',\n render: ({ resolved }) => (\n <EntityRefLinks\n entityRefs={resolved.ownedByRelations}\n defaultKind=\"group\"\n />\n ),\n };\n },\n createKindColumn(): TableColumn<DocsTableRow> {\n return {\n title: 'Kind',\n field: 'entity.kind',\n };\n },\n createTypeColumn(): TableColumn<DocsTableRow> {\n return {\n title: 'Type',\n field: 'entity.spec.type',\n };\n },\n};\n\nexport const defaultColumns: TableColumn<DocsTableRow>[] = [\n columnFactories.createTitleColumn({ hidden: true }),\n columnFactories.createNameColumn(),\n columnFactories.createOwnerColumn(),\n columnFactories.createKindColumn(),\n columnFactories.createTypeColumn(),\n];\n"],"names":[],"mappings":";;;;AAqBA,SAAS,YAAY,MAAwB,EAAA;AAC3C,EAAA,OAAO,MAAO,CAAA,QAAA,CAAS,KAAS,IAAA,MAAA,CAAO,QAAS,CAAA,IAAA;AAClD;AAOO,MAAM,eAAkB,GAAA;AAAA,EAC7B,kBAAkB,OAA2D,EAAA;AAC3E,IAAM,MAAA,OAAA,GAAU,gBAAgB,gBAAiB,EAAA;AACjD,IAAO,OAAA;AAAA,MACL,GAAG,OAAA;AAAA,MACH,KAAO,EAAA,uBAAA;AAAA,MACP,QAAQ,OAAS,EAAA;AAAA,KACnB;AAAA,GACF;AAAA,EACA,gBAA8C,GAAA;AAC5C,IAAO,OAAA;AAAA,MACL,KAAO,EAAA,UAAA;AAAA,MACP,KAAO,EAAA,sBAAA;AAAA,MACP,SAAW,EAAA,IAAA;AAAA,MACX,UAAY,EAAA,IAAA;AAAA,MACZ,WAAa,EAAA,KAAA;AAAA,MACb,UAAA,EAAY,CAAC,IAAA,EAAM,IAAS,KAAA;AAC1B,QAAA,MAAM,MAAS,GAAA,WAAA,CAAY,IAAK,CAAA,MAAM,EAAE,iBAAkB,EAAA;AAC1D,QAAA,MAAM,MAAS,GAAA,WAAA,CAAY,IAAK,CAAA,MAAM,EAAE,iBAAkB,EAAA;AAC1D,QAAO,OAAA,MAAA,CAAO,cAAc,MAAM,CAAA;AAAA,OACpC;AAAA,MACA,MAAA,EAAQ,CAAC,GACP,qBAAA,GAAA;AAAA,QAAC,YAAA;AAAA,QAAA;AAAA,UACC,KAAA,kBACG,GAAA,CAAA,IAAA,EAAA,EAAK,EAAI,EAAA,GAAA,CAAI,SAAS,OAAU,EAAA,QAAA,EAAA,WAAA,CAAY,GAAI,CAAA,MAAM,CAAE,EAAA,CAAA;AAAA,UAE3D,QAAA,EAAU,GAAI,CAAA,MAAA,CAAO,QAAS,CAAA;AAAA;AAAA;AAChC,KAEJ;AAAA,GACF;AAAA,EACA,iBAA+C,GAAA;AAC7C,IAAO,OAAA;AAAA,MACL,KAAO,EAAA,OAAA;AAAA,MACP,KAAO,EAAA,gCAAA;AAAA,MACP,MAAQ,EAAA,CAAC,EAAE,QAAA,EACT,qBAAA,GAAA;AAAA,QAAC,cAAA;AAAA,QAAA;AAAA,UACC,YAAY,QAAS,CAAA,gBAAA;AAAA,UACrB,WAAY,EAAA;AAAA;AAAA;AACd,KAEJ;AAAA,GACF;AAAA,EACA,gBAA8C,GAAA;AAC5C,IAAO,OAAA;AAAA,MACL,KAAO,EAAA,MAAA;AAAA,MACP,KAAO,EAAA;AAAA,KACT;AAAA,GACF;AAAA,EACA,gBAA8C,GAAA;AAC5C,IAAO,OAAA;AAAA,MACL,KAAO,EAAA,MAAA;AAAA,MACP,KAAO,EAAA;AAAA,KACT;AAAA;AAEJ;AAEO,MAAM,cAA8C,GAAA;AAAA,EACzD,eAAgB,CAAA,iBAAA,CAAkB,EAAE,MAAA,EAAQ,MAAM,CAAA;AAAA,EAClD,gBAAgB,gBAAiB,EAAA;AAAA,EACjC,gBAAgB,iBAAkB,EAAA;AAAA,EAClC,gBAAgB,gBAAiB,EAAA;AAAA,EACjC,gBAAgB,gBAAiB;AACnC;;;;"}