@backstage/plugin-techdocs 1.0.1-next.1 → 1.0.1
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 +2 -27
- package/dist/esm/{TechDocsCustomHome-a2958b1a.esm.js → TechDocsCustomHome-174c6f0d.esm.js} +1 -1
- package/dist/esm/{TechDocsCustomHome-a2958b1a.esm.js.map → TechDocsCustomHome-174c6f0d.esm.js.map} +1 -1
- package/dist/index.esm.js +19 -33
- package/dist/index.esm.js.map +1 -1
- package/package.json +13 -13
package/CHANGELOG.md
CHANGED
|
@@ -1,35 +1,10 @@
|
|
|
1
1
|
# @backstage/plugin-techdocs
|
|
2
2
|
|
|
3
|
-
## 1.0.1
|
|
3
|
+
## 1.0.1
|
|
4
4
|
|
|
5
5
|
### Patch Changes
|
|
6
6
|
|
|
7
|
-
-
|
|
8
|
-
|
|
9
|
-
- drawer toggle margins
|
|
10
|
-
- code block margins
|
|
11
|
-
- sidebar drawer width
|
|
12
|
-
- inner content width
|
|
13
|
-
- footer link width
|
|
14
|
-
- sidebar table of contents scroll
|
|
15
|
-
|
|
16
|
-
- Updated dependencies
|
|
17
|
-
- @backstage/integration@1.1.0-next.1
|
|
18
|
-
- @backstage/plugin-catalog-react@1.0.1-next.1
|
|
19
|
-
- @backstage/integration-react@1.0.1-next.1
|
|
20
|
-
|
|
21
|
-
## 1.0.1-next.0
|
|
22
|
-
|
|
23
|
-
### Patch Changes
|
|
24
|
-
|
|
25
|
-
- fe53fe97d7: Fix permalink scrolling for anchors where the id starts with a number.
|
|
26
|
-
- Updated dependencies
|
|
27
|
-
- @backstage/catalog-model@1.0.1-next.0
|
|
28
|
-
- @backstage/plugin-search@0.7.5-next.0
|
|
29
|
-
- @backstage/integration@1.0.1-next.0
|
|
30
|
-
- @backstage/plugin-catalog-react@1.0.1-next.0
|
|
31
|
-
- @backstage/core-components@0.9.3-next.0
|
|
32
|
-
- @backstage/integration-react@1.0.1-next.0
|
|
7
|
+
- Pin the `event-source-polyfill` dependency to version 1.0.25
|
|
33
8
|
|
|
34
9
|
## 1.0.0
|
|
35
10
|
|
package/dist/esm/{TechDocsCustomHome-a2958b1a.esm.js.map → TechDocsCustomHome-174c6f0d.esm.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TechDocsCustomHome-
|
|
1
|
+
{"version":3,"file":"TechDocsCustomHome-174c6f0d.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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CA,MAAM,MAAS,GAAA;AAAA,EACb,SAAA;AAAA,EACA,YAAA;AAAA,CAAA,CAAA;AAwCF,MAAM,cAAc,CAAC;AAAA,EACnB,MAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,CAKI,KAAA;AACJ,EAAA,MAAM,YAAY,UAAW,CAAA;AAAA,IAC3B,cAAgB,EAAA;AAAA,MACd,YAAc,EAAA,MAAA;AAAA,MACV,GAAA,MAAA,CAAO,QAAW,GAAA,MAAA,CAAO,QAAW,GAAA,EAAA;AAAA,KAAA;AAAA,GAAA,CAAA,CAAA;AAG5C,EAAA,MAAM,OAAU,GAAA,SAAA,EAAA,CAAA;AAChB,EAAM,MAAA,EAAE,OAAS,EAAA,gBAAA,EAAkB,aAAkB,EAAA,GAAA,kBAAA,EAAA,CAAA;AAErD,EAAM,MAAA,KAAA,GAAQ,OAAO,MAAO,CAAA,SAAA,CAAA,CAAA;AAE5B,EAAM,MAAA,aAAA,GAAgB,QAAS,CAAA,MAAA,CAAO,CAAU,MAAA,KAAA;AAC9C,IAAI,IAAA,MAAA,CAAO,oBAAoB,aAAe,EAAA;AAC5C,MAAA,IAAI,gBAAkB,EAAA;AACpB,QAAO,OAAA,KAAA,CAAA;AAAA,OAAA;AAET,MAAA,OAAO,aAAc,CAAA,MAAA,CAAA,CAAA;AAAA,KAAA;AAGvB,IAAA,OACE,OAAO,MAAA,CAAO,eAAoB,KAAA,UAAA,IAClC,OAAO,eAAgB,CAAA,MAAA,CAAA,CAAA;AAAA,GAAA,CAAA,CAAA;AAI3B,EACE,uBAAA,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,sCACG,aAAD,EAAA;AAAA,IAAe,OAAO,MAAO,CAAA,KAAA;AAAA,IAAO,aAAa,MAAO,CAAA,WAAA;AAAA,GACrD,EAAA,KAAA,KAAU,oBACR,KAAA,CAAA,aAAA,CAAA,aAAA,EAAD,MAAe,2CAGb,CAAA,GAAA,IAAA,CAAA,sCAEL,KAAD,EAAA;AAAA,IAAK,WAAW,OAAQ,CAAA,cAAA;AAAA,GAAA,sCACrB,KAAD,EAAA;AAAA,IAAO,aAAY,EAAA,uBAAA;AAAA,IAAwB,QAAU,EAAA,aAAA;AAAA,GAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA;AAehD,MAAA,kBAAA,GAAqB,CAAC,KAAmC,KAAA;AACpE,EAAA,MAAM,EAAE,UAAe,EAAA,GAAA,KAAA,CAAA;AACvB,EAAM,MAAA,CAAC,WAAa,EAAA,cAAA,CAAA,GAAkB,QAAiB,CAAA,CAAA,CAAA,CAAA;AACvD,EAAA,MAAM,aAAyB,MAAO,CAAA,aAAA,CAAA,CAAA;AAEtC,EAAM,MAAA;AAAA,IACJ,KAAO,EAAA,QAAA;AAAA,IACP,OAAA;AAAA,IACA,KAAA;AAAA,GAAA,GACE,SAAS,YAAY;AACvB,IAAM,MAAA,QAAA,GAAW,MAAM,UAAA,CAAW,WAAY,CAAA;AAAA,MAC5C,MAAQ,EAAA;AAAA,QACN,gDAAkD,EAAA,qBAAA;AAAA,OAAA;AAAA,MAEpD,MAAQ,EAAA;AAAA,QACN,YAAA;AAAA,QACA,MAAA;AAAA,QACA,UAAA;AAAA,QACA,WAAA;AAAA,QACA,YAAA;AAAA,QACA,WAAA;AAAA,OAAA;AAAA,KAAA,CAAA,CAAA;AAGJ,IAAA,OAAO,QAAS,CAAA,KAAA,CAAM,MAAO,CAAA,CAAC,MAAmB,KAAA;AAtKrD,MAAA,IAAA,EAAA,CAAA;AAuKM,MAAA,OAAO,CAAC,EAAQ,CAAA,EAAA,GAAA,MAAA,CAAA,QAAA,CAAS,gBAAhB,IAA8B,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,2BAAA,CAAA,CAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAAA,GAAA,CAAA,CAAA;AAI3C,EAAA,MAAM,mBAAmB,UAAW,CAAA,WAAA,CAAA,CAAA;AAEpC,EAAA,IAAI,OAAS,EAAA;AACX,IAAA,2CACG,mBAAD,EAAA,IAAA,sCACG,OAAD,EAAA,IAAA,sCACG,QAAD,EAAA,IAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAMR,EAAA,IAAI,KAAO,EAAA;AACT,IAAA,2CACG,mBAAD,EAAA,IAAA,sCACG,OAAD,EAAA,IAAA,sCACG,YAAD,EAAA;AAAA,MACE,QAAS,EAAA,OAAA;AAAA,MACT,KAAM,EAAA,yCAAA;AAAA,KAAA,sCAEL,WAAD,EAAA;AAAA,MAAa,QAAS,EAAA,MAAA;AAAA,MAAO,MAAM,KAAM,CAAA,QAAA,EAAA;AAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAOnD,EAAA,uBACG,KAAA,CAAA,aAAA,CAAA,mBAAA,EAAD,IACE,kBAAA,KAAA,CAAA,aAAA,CAAC,UAAD,EAAA;AAAA,IACE,aAAe,EAAA,WAAA;AAAA,IACf,QAAA,EAAU,WAAS,cAAe,CAAA,KAAA,CAAA;AAAA,IAClC,MAAM,UAAW,CAAA,GAAA,CAAI,CAAC,EAAE,SAAS,KAAW,MAAA;AAAA,MAC1C,IAAI,KAAM,CAAA,QAAA,EAAA;AAAA,MACV,KAAA;AAAA,KAAA,CAAA,CAAA;AAAA,GAAA,CAAA,sCAGH,OAAD,EAAA;AAAA,IAAS,aAAY,EAAA,kBAAA;AAAA,GAAA,EAClB,iBAAiB,MAAO,CAAA,GAAA,CAAI,CAAC,MAAQ,EAAA,KAAA,yCACnC,WAAD,EAAA;AAAA,IACE,GAAK,EAAA,KAAA;AAAA,IACL,MAAA;AAAA,IACA,QAAU,EAAA,CAAC,CAAC,QAAA,GAAW,QAAW,GAAA,EAAA;AAAA,IAClC,KAAA;AAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA;;;;"}
|
package/dist/index.esm.js
CHANGED
|
@@ -5,7 +5,7 @@ import React, { useState, useCallback, useEffect, useReducer, useRef, useMemo, c
|
|
|
5
5
|
import { useNavigate as useNavigate$1, useParams, Routes, Route } from 'react-router-dom';
|
|
6
6
|
import { withStyles, Tooltip, ThemeProvider, SvgIcon, makeStyles, ListItemText, ListItem, Divider, TextField, InputAdornment, IconButton, CircularProgress, createStyles, Button, Drawer, Grid, Typography, useTheme, lighten, alpha, Card, CardMedia, CardContent, CardActions } from '@material-ui/core';
|
|
7
7
|
import { scmIntegrationsApiRef } from '@backstage/integration-react';
|
|
8
|
-
import { Link, LogViewer, ErrorPage, Progress, SidebarPinStateContext,
|
|
8
|
+
import { Link, LogViewer, ErrorPage, Progress, SidebarPinStateContext, HeaderLabel, Header, ItemCardGrid, ItemCardHeader, Button as Button$1, WarningPanel, CodeSnippet, SubvalueCell, Table, EmptyState, PageWithHeader, Content, ContentHeader, SupportButton, Page, MissingAnnotationEmptyState } from '@backstage/core-components';
|
|
9
9
|
import { replaceGitHubUrlType } from '@backstage/integration';
|
|
10
10
|
import FeedbackOutlinedIcon from '@material-ui/icons/FeedbackOutlined';
|
|
11
11
|
import ReactDOM from 'react-dom';
|
|
@@ -243,11 +243,10 @@ const addSidebarToggle = () => {
|
|
|
243
243
|
}
|
|
244
244
|
const toggleSidebar = mkdocsToggleSidebar.cloneNode();
|
|
245
245
|
ReactDOM.render(React.createElement(MenuIcon), toggleSidebar);
|
|
246
|
-
toggleSidebar.
|
|
247
|
-
toggleSidebar.title = "Toggle Sidebar";
|
|
246
|
+
toggleSidebar.style.paddingLeft = "5px";
|
|
248
247
|
toggleSidebar.classList.add("md-content__button");
|
|
249
|
-
toggleSidebar.
|
|
250
|
-
toggleSidebar.
|
|
248
|
+
toggleSidebar.title = "Toggle Sidebar";
|
|
249
|
+
toggleSidebar.id = "toggle-sidebar";
|
|
251
250
|
article == null ? void 0 : article.prepend(toggleSidebar);
|
|
252
251
|
return dom;
|
|
253
252
|
};
|
|
@@ -465,7 +464,7 @@ const scrollIntoAnchor = () => {
|
|
|
465
464
|
var _a;
|
|
466
465
|
if (window.location.hash) {
|
|
467
466
|
const hash = window.location.hash.slice(1);
|
|
468
|
-
(_a = dom == null ? void 0 : dom.querySelector(
|
|
467
|
+
(_a = dom == null ? void 0 : dom.querySelector(`#${hash}`)) == null ? void 0 : _a.scrollIntoView();
|
|
469
468
|
}
|
|
470
469
|
}, 200);
|
|
471
470
|
return dom;
|
|
@@ -1219,6 +1218,12 @@ const useTechDocsReaderDom = (entityRef) => {
|
|
|
1219
1218
|
scrollbar-color: rgb(193, 193, 193) #eee;
|
|
1220
1219
|
scrollbar-width: thin;
|
|
1221
1220
|
}
|
|
1221
|
+
.md-sidebar .md-sidebar__scrollwrap {
|
|
1222
|
+
width: calc(16rem - 10px);
|
|
1223
|
+
}
|
|
1224
|
+
.md-sidebar--secondary {
|
|
1225
|
+
right: ${theme.spacing(3)}px;
|
|
1226
|
+
}
|
|
1222
1227
|
.md-sidebar::-webkit-scrollbar {
|
|
1223
1228
|
width: 5px;
|
|
1224
1229
|
}
|
|
@@ -1241,12 +1246,6 @@ const useTechDocsReaderDom = (entityRef) => {
|
|
|
1241
1246
|
.md-sidebar::-webkit-scrollbar-thumb:hover {
|
|
1242
1247
|
background: rgb(125, 125, 125);
|
|
1243
1248
|
}
|
|
1244
|
-
.md-sidebar--secondary {
|
|
1245
|
-
right: ${theme.spacing(3)}px;
|
|
1246
|
-
}
|
|
1247
|
-
.md-sidebar__scrollwrap {
|
|
1248
|
-
overflow: unset !important;
|
|
1249
|
-
}
|
|
1250
1249
|
|
|
1251
1250
|
.md-content {
|
|
1252
1251
|
max-width: calc(100% - 16rem * 2);
|
|
@@ -1261,7 +1260,7 @@ const useTechDocsReaderDom = (entityRef) => {
|
|
|
1261
1260
|
.md-footer__title {
|
|
1262
1261
|
background-color: unset;
|
|
1263
1262
|
}
|
|
1264
|
-
.md-
|
|
1263
|
+
.md-footer-nav__link {
|
|
1265
1264
|
width: 16rem;
|
|
1266
1265
|
}
|
|
1267
1266
|
|
|
@@ -1325,28 +1324,18 @@ const useTechDocsReaderDom = (entityRef) => {
|
|
|
1325
1324
|
height: 100%;
|
|
1326
1325
|
}
|
|
1327
1326
|
.md-sidebar--primary {
|
|
1328
|
-
width:
|
|
1327
|
+
width: 12.1rem !important;
|
|
1329
1328
|
z-index: 200;
|
|
1330
|
-
left: ${isPinned ?
|
|
1329
|
+
left: ${isPinned ? "calc(-12.1rem + 242px)" : "calc(-12.1rem + 72px)"} !important;
|
|
1331
1330
|
}
|
|
1332
1331
|
.md-sidebar--secondary:not([hidden]) {
|
|
1333
1332
|
display: none;
|
|
1334
1333
|
}
|
|
1335
|
-
[data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary {
|
|
1336
|
-
transform: translateX(16rem);
|
|
1337
|
-
}
|
|
1338
1334
|
|
|
1339
1335
|
.md-content {
|
|
1340
1336
|
max-width: 100%;
|
|
1341
1337
|
margin-left: 0;
|
|
1342
1338
|
}
|
|
1343
|
-
.md-content__inner {
|
|
1344
|
-
margin: 0;
|
|
1345
|
-
}
|
|
1346
|
-
.md-content__inner .highlighttable {
|
|
1347
|
-
max-width: 100%;
|
|
1348
|
-
margin: 1em 0;
|
|
1349
|
-
}
|
|
1350
1339
|
|
|
1351
1340
|
.md-header__button {
|
|
1352
1341
|
margin: 0.4rem 0;
|
|
@@ -1362,7 +1351,7 @@ const useTechDocsReaderDom = (entityRef) => {
|
|
|
1362
1351
|
position: static;
|
|
1363
1352
|
padding-left: 0;
|
|
1364
1353
|
}
|
|
1365
|
-
.md-
|
|
1354
|
+
.md-footer-nav__link {
|
|
1366
1355
|
/* footer links begin to overlap at small sizes without setting width */
|
|
1367
1356
|
width: 50%;
|
|
1368
1357
|
}
|
|
@@ -1370,11 +1359,8 @@ const useTechDocsReaderDom = (entityRef) => {
|
|
|
1370
1359
|
|
|
1371
1360
|
@media screen and (max-width: 600px) {
|
|
1372
1361
|
.md-sidebar--primary {
|
|
1373
|
-
left: -
|
|
1374
|
-
width:
|
|
1375
|
-
}
|
|
1376
|
-
.md-sidebar--primary .md-sidebar__scrollwrap {
|
|
1377
|
-
bottom: ${sidebarConfig.mobileSidebarHeight}px;
|
|
1362
|
+
left: -12.1rem !important;
|
|
1363
|
+
width: 12.1rem;
|
|
1378
1364
|
}
|
|
1379
1365
|
}
|
|
1380
1366
|
`
|
|
@@ -1477,7 +1463,7 @@ const useTechDocsReaderDom = (entityRef) => {
|
|
|
1477
1463
|
.highlight .md-clipboard:after {
|
|
1478
1464
|
content: unset;
|
|
1479
1465
|
}
|
|
1480
|
-
|
|
1466
|
+
|
|
1481
1467
|
.highlight .nx {
|
|
1482
1468
|
color: ${isDarkTheme ? "#ff53a3" : "#ec407a"};
|
|
1483
1469
|
}
|
|
@@ -2009,7 +1995,7 @@ const EntityTechdocsContent = techdocsPlugin.provide(createRoutableExtension({
|
|
|
2009
1995
|
}));
|
|
2010
1996
|
const TechDocsCustomHome = techdocsPlugin.provide(createRoutableExtension({
|
|
2011
1997
|
name: "TechDocsCustomHome",
|
|
2012
|
-
component: () => import('./esm/TechDocsCustomHome-
|
|
1998
|
+
component: () => import('./esm/TechDocsCustomHome-174c6f0d.esm.js').then((m) => m.TechDocsCustomHome),
|
|
2013
1999
|
mountPoint: rootRouteRef
|
|
2014
2000
|
}));
|
|
2015
2001
|
const TechDocsIndexPage$2 = techdocsPlugin.provide(createRoutableExtension({
|