@backstage/plugin-techdocs 0.0.0-nightly-20240305021008 → 0.0.0-nightly-20240307020519
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 +36 -15
- package/alpha/package.json +1 -1
- package/dist/alpha.esm.js +2 -2
- package/dist/esm/{Router-79dfcddc.esm.js → Router-2b778a7b.esm.js} +3 -3
- package/dist/esm/{Router-79dfcddc.esm.js.map → Router-2b778a7b.esm.js.map} +1 -1
- package/dist/esm/{TechDocsReaderPage-b432d0c4.esm.js → TechDocsReaderPage-c9db2b61.esm.js} +24 -11
- package/dist/esm/{TechDocsReaderPage-b432d0c4.esm.js.map → TechDocsReaderPage-c9db2b61.esm.js.map} +1 -1
- package/dist/esm/{index-233633bc.esm.js → index-5db311d1.esm.js} +2 -2
- package/dist/esm/index-5db311d1.esm.js.map +1 -0
- package/dist/index.esm.js +2 -2
- package/package.json +20 -20
- package/dist/esm/index-233633bc.esm.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,24 +1,45 @@
|
|
|
1
1
|
# @backstage/plugin-techdocs
|
|
2
2
|
|
|
3
|
-
## 0.0.0-nightly-
|
|
3
|
+
## 0.0.0-nightly-20240307020519
|
|
4
4
|
|
|
5
5
|
### Patch Changes
|
|
6
6
|
|
|
7
|
+
- 7c2d022: Fixed bug in TechDocs sidebar render that prevented scrollbar from being displayed
|
|
7
8
|
- Updated dependencies
|
|
8
|
-
- @backstage/config@0.0.0-nightly-
|
|
9
|
-
- @backstage/core-components@0.0.0-nightly-
|
|
10
|
-
- @backstage/errors@0.0.0-nightly-
|
|
11
|
-
- @backstage/theme@0.0.0-nightly-
|
|
12
|
-
- @backstage/integration-react@0.0.0-nightly-
|
|
13
|
-
- @backstage/plugin-catalog-react@0.0.0-nightly-
|
|
14
|
-
- @backstage/plugin-search-common@0.0.0-nightly-
|
|
15
|
-
- @backstage/core-plugin-api@0.0.0-nightly-
|
|
16
|
-
- @backstage/integration@0.0.0-nightly-
|
|
17
|
-
- @backstage/plugin-techdocs-react@0.0.0-nightly-
|
|
18
|
-
- @backstage/frontend-plugin-api@0.0.0-nightly-
|
|
19
|
-
- @backstage/plugin-search-react@0.0.0-nightly-
|
|
20
|
-
- @backstage/catalog-model@0.0.0-nightly-
|
|
21
|
-
- @backstage/core-compat-api@0.0.0-nightly-
|
|
9
|
+
- @backstage/config@0.0.0-nightly-20240307020519
|
|
10
|
+
- @backstage/core-components@0.0.0-nightly-20240307020519
|
|
11
|
+
- @backstage/errors@0.0.0-nightly-20240307020519
|
|
12
|
+
- @backstage/theme@0.0.0-nightly-20240307020519
|
|
13
|
+
- @backstage/integration-react@0.0.0-nightly-20240307020519
|
|
14
|
+
- @backstage/plugin-catalog-react@0.0.0-nightly-20240307020519
|
|
15
|
+
- @backstage/plugin-search-common@0.0.0-nightly-20240307020519
|
|
16
|
+
- @backstage/core-plugin-api@0.0.0-nightly-20240307020519
|
|
17
|
+
- @backstage/integration@0.0.0-nightly-20240307020519
|
|
18
|
+
- @backstage/plugin-techdocs-react@0.0.0-nightly-20240307020519
|
|
19
|
+
- @backstage/frontend-plugin-api@0.0.0-nightly-20240307020519
|
|
20
|
+
- @backstage/plugin-search-react@0.0.0-nightly-20240307020519
|
|
21
|
+
- @backstage/catalog-model@0.0.0-nightly-20240307020519
|
|
22
|
+
- @backstage/core-compat-api@0.0.0-nightly-20240307020519
|
|
23
|
+
|
|
24
|
+
## 1.10.1-next.1
|
|
25
|
+
|
|
26
|
+
### Patch Changes
|
|
27
|
+
|
|
28
|
+
- Updated dependencies
|
|
29
|
+
- @backstage/config@1.2.0-next.1
|
|
30
|
+
- @backstage/core-components@0.14.1-next.1
|
|
31
|
+
- @backstage/plugin-catalog-react@1.10.1-next.1
|
|
32
|
+
- @backstage/core-plugin-api@1.9.1-next.1
|
|
33
|
+
- @backstage/integration@1.9.1-next.1
|
|
34
|
+
- @backstage/integration-react@1.1.25-next.1
|
|
35
|
+
- @backstage/plugin-techdocs-react@1.1.17-next.1
|
|
36
|
+
- @backstage/frontend-plugin-api@0.6.1-next.1
|
|
37
|
+
- @backstage/plugin-search-react@1.7.7-next.1
|
|
38
|
+
- @backstage/catalog-model@1.4.5-next.0
|
|
39
|
+
- @backstage/core-compat-api@0.2.1-next.1
|
|
40
|
+
- @backstage/errors@1.2.4-next.0
|
|
41
|
+
- @backstage/theme@0.5.2-next.0
|
|
42
|
+
- @backstage/plugin-search-common@1.2.11-next.1
|
|
22
43
|
|
|
23
44
|
## 1.10.1-next.0
|
|
24
45
|
|
package/alpha/package.json
CHANGED
package/dist/alpha.esm.js
CHANGED
|
@@ -70,14 +70,14 @@ const techDocsReaderPage = createPageExtension({
|
|
|
70
70
|
name: "reader",
|
|
71
71
|
defaultPath: "/docs/:namespace/:kind/:name",
|
|
72
72
|
routeRef: convertLegacyRouteRef(rootDocsRouteRef),
|
|
73
|
-
loader: () => import('./esm/index-
|
|
73
|
+
loader: () => import('./esm/index-5db311d1.esm.js').then(
|
|
74
74
|
(m) => compatWrapper(/* @__PURE__ */ React.createElement(m.TechDocsReaderPage, null))
|
|
75
75
|
)
|
|
76
76
|
});
|
|
77
77
|
const techDocsEntityContent = createEntityContentExtension({
|
|
78
78
|
defaultPath: "docs",
|
|
79
79
|
defaultTitle: "TechDocs",
|
|
80
|
-
loader: () => import('./esm/Router-
|
|
80
|
+
loader: () => import('./esm/Router-2b778a7b.esm.js').then(function (n) { return n.f; }).then((m) => compatWrapper(/* @__PURE__ */ React.createElement(m.EmbeddedDocsRouter, null)))
|
|
81
81
|
});
|
|
82
82
|
const techDocsNavItem = createNavItemExtension({
|
|
83
83
|
icon: LibraryBooks,
|
|
@@ -5,7 +5,7 @@ import { techdocsStorageApiRef, techdocsApiRef } from '@backstage/plugin-techdoc
|
|
|
5
5
|
import { a as TechDocsStorageClient, T as TechDocsClient, r as rootRouteRef, b as rootDocsRouteRef, c as rootCatalogDocsRouteRef } from './routes-691e552c.esm.js';
|
|
6
6
|
import { createPlugin, createApiFactory, configApiRef, discoveryApiRef, identityApiRef, fetchApiRef, createRoutableExtension } from '@backstage/core-plugin-api';
|
|
7
7
|
import { createSearchResultListItemExtension } from '@backstage/plugin-search-react';
|
|
8
|
-
import { d as TechDocsReaderPageSubheader, c as TechDocsReaderPageContent, f as TechDocsReaderPage$1 } from './TechDocsReaderPage-
|
|
8
|
+
import { d as TechDocsReaderPageSubheader, c as TechDocsReaderPageContent, f as TechDocsReaderPage$1 } from './TechDocsReaderPage-c9db2b61.esm.js';
|
|
9
9
|
import { c as TechDocsIndexPage$1 } from './TechDocsIndexPage-a43a1a1c.esm.js';
|
|
10
10
|
import { useEntity, MissingAnnotationEmptyState } from '@backstage/plugin-catalog-react';
|
|
11
11
|
|
|
@@ -82,7 +82,7 @@ const TechDocsIndexPage = techdocsPlugin.provide(
|
|
|
82
82
|
const TechDocsReaderPage = techdocsPlugin.provide(
|
|
83
83
|
createRoutableExtension({
|
|
84
84
|
name: "TechDocsReaderPage",
|
|
85
|
-
component: () => import('./index-
|
|
85
|
+
component: () => import('./index-5db311d1.esm.js').then(
|
|
86
86
|
(m) => m.TechDocsReaderPage
|
|
87
87
|
),
|
|
88
88
|
mountPoint: rootDocsRouteRef
|
|
@@ -159,4 +159,4 @@ var Router$1 = /*#__PURE__*/Object.freeze({
|
|
|
159
159
|
});
|
|
160
160
|
|
|
161
161
|
export { EntityTechdocsContent as E, Router as R, TechDocsCustomHome as T, TechDocsIndexPage as a, TechdocsPage as b, TechDocsReaderPage as c, TechDocsSearchResultListItem as d, EmbeddedDocsRouter as e, Router$1 as f, isTechDocsAvailable as i, techdocsPlugin as t };
|
|
162
|
-
//# sourceMappingURL=Router-
|
|
162
|
+
//# sourceMappingURL=Router-2b778a7b.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Router-79dfcddc.esm.js","sources":["../../src/plugin.ts","../../src/EntityPageDocs.tsx","../../src/Router.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n techdocsApiRef,\n techdocsStorageApiRef,\n} from '@backstage/plugin-techdocs-react';\nimport { TechDocsClient, TechDocsStorageClient } from './client';\nimport {\n rootDocsRouteRef,\n rootRouteRef,\n rootCatalogDocsRouteRef,\n} from './routes';\nimport {\n configApiRef,\n createApiFactory,\n createPlugin,\n createRoutableExtension,\n discoveryApiRef,\n fetchApiRef,\n identityApiRef,\n} from '@backstage/core-plugin-api';\nimport {\n createSearchResultListItemExtension,\n SearchResultListItemExtensionProps,\n} from '@backstage/plugin-search-react';\nimport { TechDocsSearchResultListItemProps } from './search/components/TechDocsSearchResultListItem';\n\n/**\n * The Backstage plugin that renders technical documentation for your components\n *\n * @public\n */\nexport const techdocsPlugin = createPlugin({\n id: 'techdocs',\n apis: [\n createApiFactory({\n api: techdocsStorageApiRef,\n deps: {\n configApi: configApiRef,\n discoveryApi: discoveryApiRef,\n identityApi: identityApiRef,\n fetchApi: fetchApiRef,\n },\n factory: ({ configApi, discoveryApi, identityApi, fetchApi }) =>\n new TechDocsStorageClient({\n configApi,\n discoveryApi,\n identityApi,\n fetchApi,\n }),\n }),\n createApiFactory({\n api: techdocsApiRef,\n deps: {\n configApi: configApiRef,\n discoveryApi: discoveryApiRef,\n fetchApi: fetchApiRef,\n },\n factory: ({ configApi, discoveryApi, fetchApi }) =>\n new TechDocsClient({\n configApi,\n discoveryApi,\n fetchApi,\n }),\n }),\n ],\n routes: {\n root: rootRouteRef,\n docRoot: rootDocsRouteRef,\n entityContent: rootCatalogDocsRouteRef,\n },\n});\n\n/**\n * Routable extension used to render docs\n *\n * @public\n */\nexport const TechdocsPage = techdocsPlugin.provide(\n createRoutableExtension({\n name: 'TechdocsPage',\n component: () => import('./Router').then(m => m.Router),\n mountPoint: rootRouteRef,\n }),\n);\n\n/**\n * Routable extension used to render docs on Entity page\n *\n * @public\n */\nexport const EntityTechdocsContent = techdocsPlugin.provide(\n createRoutableExtension({\n name: 'EntityTechdocsContent',\n component: () => import('./Router').then(m => m.EmbeddedDocsRouter),\n mountPoint: rootCatalogDocsRouteRef,\n }),\n);\n\n/**\n * Component which takes a custom tabs config object and renders a documentation landing page.\n *\n * @public\n */\nexport const TechDocsCustomHome = techdocsPlugin.provide(\n createRoutableExtension({\n name: 'TechDocsCustomHome',\n component: () =>\n import('./home/components/TechDocsCustomHome').then(\n m => m.TechDocsCustomHome,\n ),\n mountPoint: rootRouteRef,\n }),\n);\n\n/**\n * Responsible for rendering the provided router element\n *\n * @public\n */\nexport const TechDocsIndexPage = techdocsPlugin.provide(\n createRoutableExtension({\n name: 'TechDocsIndexPage',\n component: () =>\n import('./home/components/TechDocsIndexPage').then(\n m => m.TechDocsIndexPage,\n ),\n mountPoint: rootRouteRef,\n }),\n);\n\n/**\n * Component responsible for composing a TechDocs reader page experience\n *\n * @public\n */\nexport const TechDocsReaderPage = techdocsPlugin.provide(\n createRoutableExtension({\n name: 'TechDocsReaderPage',\n component: () =>\n import('./reader/components/TechDocsReaderPage').then(\n m => m.TechDocsReaderPage,\n ),\n mountPoint: rootDocsRouteRef,\n }),\n);\n\n/**\n * React extension used to render results on Search page or modal\n *\n * @public\n */\nexport const TechDocsSearchResultListItem: (\n props: SearchResultListItemExtensionProps<TechDocsSearchResultListItemProps>,\n) => JSX.Element | null = techdocsPlugin.provide(\n createSearchResultListItemExtension({\n name: 'TechDocsSearchResultListItem',\n component: () =>\n import('./search/components/TechDocsSearchResultListItem').then(\n m => m.TechDocsSearchResultListItem,\n ),\n predicate: result => result.type === 'techdocs',\n }),\n);\n","/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Entity,\n getCompoundEntityRef,\n parseEntityRef,\n} from '@backstage/catalog-model';\n\nimport React from 'react';\nimport { TechDocsReaderPage } from './plugin';\nimport { TechDocsReaderPageContent } from './reader/components/TechDocsReaderPageContent';\nimport { TechDocsReaderPageSubheader } from './reader/components/TechDocsReaderPageSubheader';\n\nconst TECHDOCS_EXTERNAL_ANNOTATION = 'backstage.io/techdocs-entity';\n\ntype EntityPageDocsProps = { entity: Entity };\n\nexport const EntityPageDocs = ({ entity }: EntityPageDocsProps) => {\n let entityRef = getCompoundEntityRef(entity);\n\n if (entity.metadata.annotations?.[TECHDOCS_EXTERNAL_ANNOTATION]) {\n try {\n entityRef = parseEntityRef(\n entity.metadata.annotations?.[TECHDOCS_EXTERNAL_ANNOTATION],\n );\n } catch {\n // not a fan of this but we don't care if the parseEntityRef fails\n }\n }\n\n return (\n <TechDocsReaderPage entityRef={entityRef}>\n <TechDocsReaderPageSubheader />\n <TechDocsReaderPageContent withSearch={false} />\n </TechDocsReaderPage>\n );\n};\n","/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { PropsWithChildren } from 'react';\nimport { Route, Routes, useRoutes } from 'react-router-dom';\n\nimport { Entity } from '@backstage/catalog-model';\nimport { EntityPageDocs } from './EntityPageDocs';\nimport { TechDocsIndexPage } from './home/components/TechDocsIndexPage';\nimport { TechDocsReaderPage } from './reader/components/TechDocsReaderPage';\nimport {\n useEntity,\n MissingAnnotationEmptyState,\n} from '@backstage/plugin-catalog-react';\n\nconst TECHDOCS_ANNOTATION = 'backstage.io/techdocs-ref';\n\nconst TECHDOCS_EXTERNAL_ANNOTATION = 'backstage.io/techdocs-entity';\n\n/**\n * Helper that takes in entity and returns true/false if TechDocs is available for the entity\n *\n * @public\n */\nexport const isTechDocsAvailable = (entity: Entity) =>\n Boolean(entity?.metadata?.annotations?.[TECHDOCS_ANNOTATION]) ||\n Boolean(entity?.metadata?.annotations?.[TECHDOCS_EXTERNAL_ANNOTATION]);\n\n/**\n * Responsible for registering routes for TechDocs, TechDocs Homepage and separate TechDocs page\n *\n * @public\n */\nexport const Router = () => {\n return (\n <Routes>\n <Route path=\"/\" element={<TechDocsIndexPage />} />\n <Route\n path=\"/:namespace/:kind/:name/*\"\n element={<TechDocsReaderPage />}\n />\n </Routes>\n );\n};\n\n/**\n * Responsible for registering route to view docs on Entity page\n *\n * @public\n */\nexport const EmbeddedDocsRouter = (props: PropsWithChildren<{}>) => {\n const { children } = props;\n const { entity } = useEntity();\n\n // Using objects instead of <Route> elements, otherwise \"outlet\" will be null on sub-pages and add-ons won't render\n const element = useRoutes([\n {\n path: '/*',\n element: <EntityPageDocs entity={entity} />,\n children: [\n {\n path: '*',\n element: children,\n },\n ],\n },\n ]);\n\n const projectId =\n entity.metadata.annotations?.[TECHDOCS_ANNOTATION] ||\n entity.metadata.annotations?.[TECHDOCS_EXTERNAL_ANNOTATION];\n\n if (!projectId) {\n return <MissingAnnotationEmptyState annotation={[TECHDOCS_ANNOTATION]} />;\n }\n\n return element;\n};\n"],"names":["TECHDOCS_EXTERNAL_ANNOTATION","TechDocsIndexPage","TechDocsReaderPage"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Router-2b778a7b.esm.js","sources":["../../src/plugin.ts","../../src/EntityPageDocs.tsx","../../src/Router.tsx"],"sourcesContent":["/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n techdocsApiRef,\n techdocsStorageApiRef,\n} from '@backstage/plugin-techdocs-react';\nimport { TechDocsClient, TechDocsStorageClient } from './client';\nimport {\n rootDocsRouteRef,\n rootRouteRef,\n rootCatalogDocsRouteRef,\n} from './routes';\nimport {\n configApiRef,\n createApiFactory,\n createPlugin,\n createRoutableExtension,\n discoveryApiRef,\n fetchApiRef,\n identityApiRef,\n} from '@backstage/core-plugin-api';\nimport {\n createSearchResultListItemExtension,\n SearchResultListItemExtensionProps,\n} from '@backstage/plugin-search-react';\nimport { TechDocsSearchResultListItemProps } from './search/components/TechDocsSearchResultListItem';\n\n/**\n * The Backstage plugin that renders technical documentation for your components\n *\n * @public\n */\nexport const techdocsPlugin = createPlugin({\n id: 'techdocs',\n apis: [\n createApiFactory({\n api: techdocsStorageApiRef,\n deps: {\n configApi: configApiRef,\n discoveryApi: discoveryApiRef,\n identityApi: identityApiRef,\n fetchApi: fetchApiRef,\n },\n factory: ({ configApi, discoveryApi, identityApi, fetchApi }) =>\n new TechDocsStorageClient({\n configApi,\n discoveryApi,\n identityApi,\n fetchApi,\n }),\n }),\n createApiFactory({\n api: techdocsApiRef,\n deps: {\n configApi: configApiRef,\n discoveryApi: discoveryApiRef,\n fetchApi: fetchApiRef,\n },\n factory: ({ configApi, discoveryApi, fetchApi }) =>\n new TechDocsClient({\n configApi,\n discoveryApi,\n fetchApi,\n }),\n }),\n ],\n routes: {\n root: rootRouteRef,\n docRoot: rootDocsRouteRef,\n entityContent: rootCatalogDocsRouteRef,\n },\n});\n\n/**\n * Routable extension used to render docs\n *\n * @public\n */\nexport const TechdocsPage = techdocsPlugin.provide(\n createRoutableExtension({\n name: 'TechdocsPage',\n component: () => import('./Router').then(m => m.Router),\n mountPoint: rootRouteRef,\n }),\n);\n\n/**\n * Routable extension used to render docs on Entity page\n *\n * @public\n */\nexport const EntityTechdocsContent = techdocsPlugin.provide(\n createRoutableExtension({\n name: 'EntityTechdocsContent',\n component: () => import('./Router').then(m => m.EmbeddedDocsRouter),\n mountPoint: rootCatalogDocsRouteRef,\n }),\n);\n\n/**\n * Component which takes a custom tabs config object and renders a documentation landing page.\n *\n * @public\n */\nexport const TechDocsCustomHome = techdocsPlugin.provide(\n createRoutableExtension({\n name: 'TechDocsCustomHome',\n component: () =>\n import('./home/components/TechDocsCustomHome').then(\n m => m.TechDocsCustomHome,\n ),\n mountPoint: rootRouteRef,\n }),\n);\n\n/**\n * Responsible for rendering the provided router element\n *\n * @public\n */\nexport const TechDocsIndexPage = techdocsPlugin.provide(\n createRoutableExtension({\n name: 'TechDocsIndexPage',\n component: () =>\n import('./home/components/TechDocsIndexPage').then(\n m => m.TechDocsIndexPage,\n ),\n mountPoint: rootRouteRef,\n }),\n);\n\n/**\n * Component responsible for composing a TechDocs reader page experience\n *\n * @public\n */\nexport const TechDocsReaderPage = techdocsPlugin.provide(\n createRoutableExtension({\n name: 'TechDocsReaderPage',\n component: () =>\n import('./reader/components/TechDocsReaderPage').then(\n m => m.TechDocsReaderPage,\n ),\n mountPoint: rootDocsRouteRef,\n }),\n);\n\n/**\n * React extension used to render results on Search page or modal\n *\n * @public\n */\nexport const TechDocsSearchResultListItem: (\n props: SearchResultListItemExtensionProps<TechDocsSearchResultListItemProps>,\n) => JSX.Element | null = techdocsPlugin.provide(\n createSearchResultListItemExtension({\n name: 'TechDocsSearchResultListItem',\n component: () =>\n import('./search/components/TechDocsSearchResultListItem').then(\n m => m.TechDocsSearchResultListItem,\n ),\n predicate: result => result.type === 'techdocs',\n }),\n);\n","/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Entity,\n getCompoundEntityRef,\n parseEntityRef,\n} from '@backstage/catalog-model';\n\nimport React from 'react';\nimport { TechDocsReaderPage } from './plugin';\nimport { TechDocsReaderPageContent } from './reader/components/TechDocsReaderPageContent';\nimport { TechDocsReaderPageSubheader } from './reader/components/TechDocsReaderPageSubheader';\n\nconst TECHDOCS_EXTERNAL_ANNOTATION = 'backstage.io/techdocs-entity';\n\ntype EntityPageDocsProps = { entity: Entity };\n\nexport const EntityPageDocs = ({ entity }: EntityPageDocsProps) => {\n let entityRef = getCompoundEntityRef(entity);\n\n if (entity.metadata.annotations?.[TECHDOCS_EXTERNAL_ANNOTATION]) {\n try {\n entityRef = parseEntityRef(\n entity.metadata.annotations?.[TECHDOCS_EXTERNAL_ANNOTATION],\n );\n } catch {\n // not a fan of this but we don't care if the parseEntityRef fails\n }\n }\n\n return (\n <TechDocsReaderPage entityRef={entityRef}>\n <TechDocsReaderPageSubheader />\n <TechDocsReaderPageContent withSearch={false} />\n </TechDocsReaderPage>\n );\n};\n","/*\n * Copyright 2020 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { PropsWithChildren } from 'react';\nimport { Route, Routes, useRoutes } from 'react-router-dom';\n\nimport { Entity } from '@backstage/catalog-model';\nimport { EntityPageDocs } from './EntityPageDocs';\nimport { TechDocsIndexPage } from './home/components/TechDocsIndexPage';\nimport { TechDocsReaderPage } from './reader/components/TechDocsReaderPage';\nimport {\n useEntity,\n MissingAnnotationEmptyState,\n} from '@backstage/plugin-catalog-react';\n\nconst TECHDOCS_ANNOTATION = 'backstage.io/techdocs-ref';\n\nconst TECHDOCS_EXTERNAL_ANNOTATION = 'backstage.io/techdocs-entity';\n\n/**\n * Helper that takes in entity and returns true/false if TechDocs is available for the entity\n *\n * @public\n */\nexport const isTechDocsAvailable = (entity: Entity) =>\n Boolean(entity?.metadata?.annotations?.[TECHDOCS_ANNOTATION]) ||\n Boolean(entity?.metadata?.annotations?.[TECHDOCS_EXTERNAL_ANNOTATION]);\n\n/**\n * Responsible for registering routes for TechDocs, TechDocs Homepage and separate TechDocs page\n *\n * @public\n */\nexport const Router = () => {\n return (\n <Routes>\n <Route path=\"/\" element={<TechDocsIndexPage />} />\n <Route\n path=\"/:namespace/:kind/:name/*\"\n element={<TechDocsReaderPage />}\n />\n </Routes>\n );\n};\n\n/**\n * Responsible for registering route to view docs on Entity page\n *\n * @public\n */\nexport const EmbeddedDocsRouter = (props: PropsWithChildren<{}>) => {\n const { children } = props;\n const { entity } = useEntity();\n\n // Using objects instead of <Route> elements, otherwise \"outlet\" will be null on sub-pages and add-ons won't render\n const element = useRoutes([\n {\n path: '/*',\n element: <EntityPageDocs entity={entity} />,\n children: [\n {\n path: '*',\n element: children,\n },\n ],\n },\n ]);\n\n const projectId =\n entity.metadata.annotations?.[TECHDOCS_ANNOTATION] ||\n entity.metadata.annotations?.[TECHDOCS_EXTERNAL_ANNOTATION];\n\n if (!projectId) {\n return <MissingAnnotationEmptyState annotation={[TECHDOCS_ANNOTATION]} />;\n }\n\n return element;\n};\n"],"names":["TECHDOCS_EXTERNAL_ANNOTATION","TechDocsIndexPage","TechDocsReaderPage"],"mappings":"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"}
|
|
@@ -1461,12 +1461,12 @@ const useTechDocsReaderDom = (entityRef) => {
|
|
|
1461
1461
|
const { state, path, content: rawPage } = useTechDocsReader();
|
|
1462
1462
|
const [dom, setDom] = useState(null);
|
|
1463
1463
|
const isStyleLoading = useShadowDomStylesLoading(dom);
|
|
1464
|
-
const
|
|
1464
|
+
const updateSidebarPositionAndHeight = useCallback(() => {
|
|
1465
1465
|
if (!dom)
|
|
1466
1466
|
return;
|
|
1467
1467
|
const sidebars = dom.querySelectorAll(".md-sidebar");
|
|
1468
1468
|
sidebars.forEach((element) => {
|
|
1469
|
-
var _a, _b, _c;
|
|
1469
|
+
var _a, _b, _c, _d;
|
|
1470
1470
|
if (isMobileMedia) {
|
|
1471
1471
|
element.style.top = "0px";
|
|
1472
1472
|
} else {
|
|
@@ -1478,19 +1478,27 @@ const useTechDocsReaderDom = (entityRef) => {
|
|
|
1478
1478
|
if (domTop < pageTop) {
|
|
1479
1479
|
domTop = pageTop;
|
|
1480
1480
|
}
|
|
1481
|
-
|
|
1481
|
+
const scrollbarTopPx = Math.max(domTop, 0) + tabsHeight;
|
|
1482
|
+
element.style.top = `${scrollbarTopPx}px`;
|
|
1483
|
+
const footer = dom.querySelector(".md-container > .md-footer");
|
|
1484
|
+
const scrollbarEndPx = (_d = footer == null ? void 0 : footer.getBoundingClientRect().top) != null ? _d : window.innerHeight;
|
|
1485
|
+
element.style.height = `${scrollbarEndPx - scrollbarTopPx}px`;
|
|
1482
1486
|
}
|
|
1483
1487
|
element.style.setProperty("opacity", "1");
|
|
1484
1488
|
});
|
|
1485
1489
|
}, [dom, isMobileMedia]);
|
|
1486
1490
|
useEffect(() => {
|
|
1487
|
-
window.addEventListener("resize",
|
|
1488
|
-
window.addEventListener("scroll",
|
|
1491
|
+
window.addEventListener("resize", updateSidebarPositionAndHeight);
|
|
1492
|
+
window.addEventListener("scroll", updateSidebarPositionAndHeight, true);
|
|
1489
1493
|
return () => {
|
|
1490
|
-
window.removeEventListener("resize",
|
|
1491
|
-
window.removeEventListener(
|
|
1494
|
+
window.removeEventListener("resize", updateSidebarPositionAndHeight);
|
|
1495
|
+
window.removeEventListener(
|
|
1496
|
+
"scroll",
|
|
1497
|
+
updateSidebarPositionAndHeight,
|
|
1498
|
+
true
|
|
1499
|
+
);
|
|
1492
1500
|
};
|
|
1493
|
-
}, [dom,
|
|
1501
|
+
}, [dom, updateSidebarPositionAndHeight]);
|
|
1494
1502
|
const updateFooterWidth = useCallback(() => {
|
|
1495
1503
|
if (!dom)
|
|
1496
1504
|
return;
|
|
@@ -1508,9 +1516,14 @@ const useTechDocsReaderDom = (entityRef) => {
|
|
|
1508
1516
|
useEffect(() => {
|
|
1509
1517
|
if (!isStyleLoading) {
|
|
1510
1518
|
updateFooterWidth();
|
|
1511
|
-
|
|
1519
|
+
updateSidebarPositionAndHeight();
|
|
1512
1520
|
}
|
|
1513
|
-
}, [
|
|
1521
|
+
}, [
|
|
1522
|
+
state,
|
|
1523
|
+
isStyleLoading,
|
|
1524
|
+
updateFooterWidth,
|
|
1525
|
+
updateSidebarPositionAndHeight
|
|
1526
|
+
]);
|
|
1514
1527
|
const preRender = useCallback(
|
|
1515
1528
|
(rawContent, contentPath) => transform(rawContent, [
|
|
1516
1529
|
sanitizerTransformer,
|
|
@@ -1911,4 +1924,4 @@ const TechDocsReaderPage = (props) => {
|
|
|
1911
1924
|
};
|
|
1912
1925
|
|
|
1913
1926
|
export { Reader as R, TechDocsReaderProvider as T, TechDocsReaderLayout as a, TechDocsReaderPageHeader as b, TechDocsReaderPageContent as c, TechDocsReaderPageSubheader as d, TechDocsSearch as e, TechDocsReaderPage as f };
|
|
1914
|
-
//# sourceMappingURL=TechDocsReaderPage-
|
|
1927
|
+
//# sourceMappingURL=TechDocsReaderPage-c9db2b61.esm.js.map
|