@backstage/plugin-techdocs 1.4.3-next.1 → 1.4.3-next.2
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 +18 -0
- package/dist/esm/{TechDocsCustomHome-77c90730.esm.js → TechDocsCustomHome-4a84888d.esm.js} +2 -2
- package/dist/esm/{TechDocsCustomHome-77c90730.esm.js.map → TechDocsCustomHome-4a84888d.esm.js.map} +1 -1
- package/dist/esm/{index-0b629b97.esm.js → index-1a8e53ad.esm.js} +41 -3
- package/dist/esm/{index-0b629b97.esm.js.map → index-1a8e53ad.esm.js.map} +1 -1
- package/dist/esm/{index-db694b9e.esm.js → index-d9ab19a4.esm.js} +2 -2
- package/dist/esm/index-d9ab19a4.esm.js.map +1 -0
- package/dist/index.esm.js +1 -1
- package/package.json +12 -12
- package/dist/esm/index-db694b9e.esm.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @backstage/plugin-techdocs
|
|
2
2
|
|
|
3
|
+
## 1.4.3-next.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies
|
|
8
|
+
- @backstage/plugin-search-react@1.4.0-next.2
|
|
9
|
+
- @backstage/core-plugin-api@1.3.0-next.1
|
|
10
|
+
- @backstage/plugin-catalog-react@1.2.4-next.2
|
|
11
|
+
- @backstage/plugin-techdocs-react@1.1.2-next.2
|
|
12
|
+
- @backstage/catalog-model@1.1.5-next.1
|
|
13
|
+
- @backstage/config@1.0.6-next.0
|
|
14
|
+
- @backstage/core-components@0.12.3-next.2
|
|
15
|
+
- @backstage/errors@1.1.4
|
|
16
|
+
- @backstage/integration@1.4.2-next.0
|
|
17
|
+
- @backstage/integration-react@1.1.9-next.2
|
|
18
|
+
- @backstage/theme@0.2.16
|
|
19
|
+
- @backstage/plugin-search-common@1.2.1-next.0
|
|
20
|
+
|
|
3
21
|
## 1.4.3-next.1
|
|
4
22
|
|
|
5
23
|
### Patch Changes
|
|
@@ -2,7 +2,7 @@ import React, { useState } from 'react';
|
|
|
2
2
|
import useAsync from 'react-use/lib/useAsync';
|
|
3
3
|
import { makeStyles } from '@material-ui/core';
|
|
4
4
|
import { catalogApiRef, CATALOG_FILTER_EXISTS, useEntityOwnership } from '@backstage/plugin-catalog-react';
|
|
5
|
-
import { T as TechDocsPageWrapper, D as DocsTable, a as DocsCardGrid } from './index-
|
|
5
|
+
import { T as TechDocsPageWrapper, D as DocsTable, a as DocsCardGrid } from './index-1a8e53ad.esm.js';
|
|
6
6
|
import { Content, Progress, WarningPanel, CodeSnippet, HeaderTabs, ContentHeader, SupportButton } from '@backstage/core-components';
|
|
7
7
|
import { useApi } from '@backstage/core-plugin-api';
|
|
8
8
|
import '@backstage/errors';
|
|
@@ -124,4 +124,4 @@ const TechDocsCustomHome = (props) => {
|
|
|
124
124
|
};
|
|
125
125
|
|
|
126
126
|
export { TechDocsCustomHome };
|
|
127
|
-
//# sourceMappingURL=TechDocsCustomHome-
|
|
127
|
+
//# sourceMappingURL=TechDocsCustomHome-4a84888d.esm.js.map
|
package/dist/esm/{TechDocsCustomHome-77c90730.esm.js.map → TechDocsCustomHome-4a84888d.esm.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TechDocsCustomHome-
|
|
1
|
+
{"version":3,"file":"TechDocsCustomHome-4a84888d.esm.js","sources":["../../src/home/components/TechDocsCustomHome.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, { useState } from 'react';\nimport useAsync from 'react-use/lib/useAsync';\nimport { makeStyles } from '@material-ui/core';\nimport { CSSProperties } from '@material-ui/styles';\nimport {\n CATALOG_FILTER_EXISTS,\n catalogApiRef,\n CatalogApi,\n useEntityOwnership,\n} from '@backstage/plugin-catalog-react';\nimport { Entity } from '@backstage/catalog-model';\nimport { DocsTable } from './Tables';\nimport { DocsCardGrid } from './Grids';\nimport { TechDocsPageWrapper } from './TechDocsPageWrapper';\n\nimport {\n CodeSnippet,\n Content,\n HeaderTabs,\n Progress,\n WarningPanel,\n SupportButton,\n ContentHeader,\n} from '@backstage/core-components';\nimport { useApi } from '@backstage/core-plugin-api';\n\nconst panels = {\n DocsTable: DocsTable,\n DocsCardGrid: DocsCardGrid,\n};\n\n/**\n * Available panel types\n *\n * @public\n */\nexport type PanelType = 'DocsCardGrid' | 'DocsTable';\n\n/**\n * Type representing a TechDocsCustomHome panel.\n *\n * @public\n */\nexport interface PanelConfig {\n title: string;\n description: string;\n panelType: PanelType;\n panelCSS?: CSSProperties;\n filterPredicate: ((entity: Entity) => boolean) | string;\n}\n\n/**\n * Type representing a TechDocsCustomHome tab.\n *\n * @public\n */\nexport interface TabConfig {\n label: string;\n panels: PanelConfig[];\n}\n\n/**\n * Type representing a list of TechDocsCustomHome tabs.\n *\n * @public\n */\nexport type TabsConfig = TabConfig[];\n\nconst CustomPanel = ({\n config,\n entities,\n index,\n}: {\n config: PanelConfig;\n entities: Entity[];\n index: number;\n}) => {\n const useStyles = makeStyles({\n panelContainer: {\n marginBottom: '2rem',\n ...(config.panelCSS ? config.panelCSS : {}),\n },\n });\n const classes = useStyles();\n const { loading: loadingOwnership, isOwnedEntity } = useEntityOwnership();\n\n const Panel = panels[config.panelType];\n\n const shownEntities = entities.filter(entity => {\n if (config.filterPredicate === 'ownedByUser') {\n if (loadingOwnership) {\n return false;\n }\n return isOwnedEntity(entity);\n }\n\n return (\n typeof config.filterPredicate === 'function' &&\n config.filterPredicate(entity)\n );\n });\n\n return (\n <>\n <ContentHeader title={config.title} description={config.description}>\n {index === 0 ? (\n <SupportButton>\n Discover documentation in your ecosystem.\n </SupportButton>\n ) : null}\n </ContentHeader>\n <div className={classes.panelContainer}>\n <Panel data-testid=\"techdocs-custom-panel\" entities={shownEntities} />\n </div>\n </>\n );\n};\n\n/**\n * Props for {@link TechDocsCustomHome}\n *\n * @public\n */\nexport type TechDocsCustomHomeProps = {\n tabsConfig: TabsConfig;\n};\n\nexport const TechDocsCustomHome = (props: TechDocsCustomHomeProps) => {\n const { tabsConfig } = props;\n const [selectedTab, setSelectedTab] = useState<number>(0);\n const catalogApi: CatalogApi = useApi(catalogApiRef);\n\n const {\n value: entities,\n loading,\n error,\n } = useAsync(async () => {\n const response = await catalogApi.getEntities({\n filter: {\n 'metadata.annotations.backstage.io/techdocs-ref': CATALOG_FILTER_EXISTS,\n },\n fields: [\n 'apiVersion',\n 'kind',\n 'metadata',\n 'relations',\n 'spec.owner',\n 'spec.type',\n ],\n });\n return response.items.filter((entity: Entity) => {\n return !!entity.metadata.annotations?.['backstage.io/techdocs-ref'];\n });\n });\n\n const currentTabConfig = tabsConfig[selectedTab];\n\n if (loading) {\n return (\n <TechDocsPageWrapper>\n <Content>\n <Progress />\n </Content>\n </TechDocsPageWrapper>\n );\n }\n\n if (error) {\n return (\n <TechDocsPageWrapper>\n <Content>\n <WarningPanel\n severity=\"error\"\n title=\"Could not load available documentation.\"\n >\n <CodeSnippet language=\"text\" text={error.toString()} />\n </WarningPanel>\n </Content>\n </TechDocsPageWrapper>\n );\n }\n\n return (\n <TechDocsPageWrapper>\n <HeaderTabs\n selectedIndex={selectedTab}\n onChange={index => setSelectedTab(index)}\n tabs={tabsConfig.map(({ label }, index) => ({\n id: index.toString(),\n label,\n }))}\n />\n <Content data-testid=\"techdocs-content\">\n {currentTabConfig.panels.map((config, index) => (\n <CustomPanel\n key={index}\n config={config}\n entities={!!entities ? entities : []}\n index={index}\n />\n ))}\n </Content>\n </TechDocsPageWrapper>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -47,6 +47,15 @@ class TechDocsClient {
|
|
|
47
47
|
async getApiOrigin() {
|
|
48
48
|
return await this.discoveryApi.getBaseUrl("techdocs");
|
|
49
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Retrieve TechDocs metadata.
|
|
52
|
+
*
|
|
53
|
+
* When docs are built, we generate a techdocs_metadata.json and store it along with the generated
|
|
54
|
+
* static files. It includes necessary data about the docs site. This method requests techdocs-backend
|
|
55
|
+
* which retrieves the TechDocs metadata.
|
|
56
|
+
*
|
|
57
|
+
* @param entityId - Object containing entity data like name, namespace, etc.
|
|
58
|
+
*/
|
|
50
59
|
async getTechDocsMetadata(entityId) {
|
|
51
60
|
const { kind, namespace, name } = entityId;
|
|
52
61
|
const apiOrigin = await this.getApiOrigin();
|
|
@@ -57,6 +66,14 @@ class TechDocsClient {
|
|
|
57
66
|
}
|
|
58
67
|
return await request.json();
|
|
59
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* Retrieve metadata about an entity.
|
|
71
|
+
*
|
|
72
|
+
* This method requests techdocs-backend which uses the catalog APIs to respond with filtered
|
|
73
|
+
* information required here.
|
|
74
|
+
*
|
|
75
|
+
* @param entityId - Object containing entity data like name, namespace, etc.
|
|
76
|
+
*/
|
|
60
77
|
async getEntityMetadata(entityId) {
|
|
61
78
|
const { kind, namespace, name } = entityId;
|
|
62
79
|
const apiOrigin = await this.getApiOrigin();
|
|
@@ -85,6 +102,14 @@ class TechDocsStorageClient {
|
|
|
85
102
|
async getBuilder() {
|
|
86
103
|
return this.configApi.getString("techdocs.builder");
|
|
87
104
|
}
|
|
105
|
+
/**
|
|
106
|
+
* Fetch HTML content as text for an individual docs page in an entity's docs site.
|
|
107
|
+
*
|
|
108
|
+
* @param entityId - Object containing entity data like name, namespace, etc.
|
|
109
|
+
* @param path - The unique path to an individual docs page e.g. overview/what-is-new
|
|
110
|
+
* @returns HTML content of the docs page as string
|
|
111
|
+
* @throws Throws error when the page is not found.
|
|
112
|
+
*/
|
|
88
113
|
async getEntityDocs(entityId, path) {
|
|
89
114
|
const { kind, namespace, name } = entityId;
|
|
90
115
|
const storageUrl = await this.getStorageUrl();
|
|
@@ -106,6 +131,14 @@ class TechDocsStorageClient {
|
|
|
106
131
|
}
|
|
107
132
|
return request.text();
|
|
108
133
|
}
|
|
134
|
+
/**
|
|
135
|
+
* Check if docs are on the latest version and trigger rebuild if not
|
|
136
|
+
*
|
|
137
|
+
* @param entityId - Object containing entity data like name, namespace, etc.
|
|
138
|
+
* @param logHandler - Callback to receive log messages from the build process
|
|
139
|
+
* @returns Whether documents are currently synchronized to newest version
|
|
140
|
+
* @throws Throws error on error from sync endpoint in Techdocs Backend
|
|
141
|
+
*/
|
|
109
142
|
async syncEntityDocs(entityId, logHandler = () => {
|
|
110
143
|
}) {
|
|
111
144
|
const { kind, namespace, name } = entityId;
|
|
@@ -608,6 +641,8 @@ const useStyles$2 = makeStyles((theme) => ({
|
|
|
608
641
|
marginBottom: theme.spacing(2)
|
|
609
642
|
},
|
|
610
643
|
message: {
|
|
644
|
+
// `word-break: break-word` is deprecated, but gives legacy support to browsers not supporting `overflow-wrap` yet
|
|
645
|
+
// https://developer.mozilla.org/en-US/docs/Web/CSS/word-break
|
|
611
646
|
wordBreak: "break-word",
|
|
612
647
|
overflowWrap: "anywhere"
|
|
613
648
|
}
|
|
@@ -1668,6 +1703,7 @@ const useTechDocsReaderDom = (entityRef) => {
|
|
|
1668
1703
|
stylesTransformer
|
|
1669
1704
|
]),
|
|
1670
1705
|
[
|
|
1706
|
+
// only add dependencies that are in state or memorized variables to avoid unnecessary calls between re-renders
|
|
1671
1707
|
entityRef,
|
|
1672
1708
|
scmIntegrationsApi,
|
|
1673
1709
|
techdocsStorageApi,
|
|
@@ -1706,6 +1742,7 @@ const useTechDocsReaderDom = (entityRef) => {
|
|
|
1706
1742
|
}
|
|
1707
1743
|
}
|
|
1708
1744
|
}),
|
|
1745
|
+
// disable MkDocs drawer toggling ('for' attribute => checkbox mechanism)
|
|
1709
1746
|
onCssReady({
|
|
1710
1747
|
onLoading: () => {
|
|
1711
1748
|
},
|
|
@@ -1714,6 +1751,7 @@ const useTechDocsReaderDom = (entityRef) => {
|
|
|
1714
1751
|
(_a = transformedElement.querySelector(".md-nav__title")) == null ? void 0 : _a.removeAttribute("for");
|
|
1715
1752
|
}
|
|
1716
1753
|
}),
|
|
1754
|
+
// hide sidebars until their positions are updated
|
|
1717
1755
|
onCssReady({
|
|
1718
1756
|
onLoading: () => {
|
|
1719
1757
|
const sidebars = Array.from(
|
|
@@ -2404,7 +2442,7 @@ const EntityTechdocsContent = techdocsPlugin.provide(
|
|
|
2404
2442
|
const TechDocsCustomHome = techdocsPlugin.provide(
|
|
2405
2443
|
createRoutableExtension({
|
|
2406
2444
|
name: "TechDocsCustomHome",
|
|
2407
|
-
component: () => import('./TechDocsCustomHome-
|
|
2445
|
+
component: () => import('./TechDocsCustomHome-4a84888d.esm.js').then(
|
|
2408
2446
|
(m) => m.TechDocsCustomHome
|
|
2409
2447
|
),
|
|
2410
2448
|
mountPoint: rootRouteRef
|
|
@@ -2422,7 +2460,7 @@ const TechDocsIndexPage$2 = techdocsPlugin.provide(
|
|
|
2422
2460
|
const TechDocsReaderPage = techdocsPlugin.provide(
|
|
2423
2461
|
createRoutableExtension({
|
|
2424
2462
|
name: "TechDocsReaderPage",
|
|
2425
|
-
component: () => import('./index-
|
|
2463
|
+
component: () => import('./index-d9ab19a4.esm.js').then(
|
|
2426
2464
|
(m) => m.TechDocsReaderPage
|
|
2427
2465
|
),
|
|
2428
2466
|
mountPoint: rootDocsRouteRef
|
|
@@ -2489,4 +2527,4 @@ var Router$1 = /*#__PURE__*/Object.freeze({
|
|
|
2489
2527
|
});
|
|
2490
2528
|
|
|
2491
2529
|
export { DocsTable as D, EntityTechdocsContent as E, Reader as R, TechDocsPageWrapper as T, DocsCardGrid as a, TechDocsReaderPage$1 as b, TechDocsReaderLayout as c, TechDocsCustomHome as d, TechDocsIndexPage$2 as e, TechdocsPage as f, TechDocsReaderPage as g, techdocsStorageApiRef as h, techdocsApiRef as i, TechDocsClient as j, TechDocsStorageClient as k, TechDocsReaderProvider as l, TechDocsReaderPageHeader as m, TechDocsReaderPageContent as n, TechDocsReaderPageSubheader as o, TechDocsSearchResultListItem as p, TechDocsSearch as q, EntityListDocsGrid as r, EntityListDocsTable as s, techdocsPlugin as t, DefaultTechDocsHome as u, TechDocsPicker as v, isTechDocsAvailable as w, Router as x, EmbeddedDocsRouter as y };
|
|
2492
|
-
//# sourceMappingURL=index-
|
|
2530
|
+
//# sourceMappingURL=index-1a8e53ad.esm.js.map
|