@backstage/plugin-catalog 1.23.0-next.2 → 1.23.0
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 +32 -0
- package/alpha/package.json +1 -1
- package/dist/components/CatalogSearchResultListItem/CatalogSearchResultListItem.esm.js.map +1 -1
- package/dist/components/CatalogTable/CatalogTableToolbar.esm.js +1 -1
- package/dist/components/CatalogTable/CatalogTableToolbar.esm.js.map +1 -1
- package/dist/components/CatalogTable/CursorPaginatedCatalogTable.esm.js +1 -0
- package/dist/components/CatalogTable/CursorPaginatedCatalogTable.esm.js.map +1 -1
- package/dist/components/CatalogTable/OffsetPaginatedCatalogTable.esm.js +3 -2
- package/dist/components/CatalogTable/OffsetPaginatedCatalogTable.esm.js.map +1 -1
- package/dist/components/EntityLabelsCard/EntityLabelsEmptyState.esm.js.map +1 -1
- package/dist/index.d.ts +38 -27
- package/dist/index.esm.js +1 -0
- package/dist/index.esm.js.map +1 -1
- package/package.json +18 -18
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,37 @@
|
|
|
1
1
|
# @backstage/plugin-catalog
|
|
2
2
|
|
|
3
|
+
## 1.23.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 78475c3: Allow offset mode paging in entity list provider
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- c891b69: Add `FavoriteToggle` in `core-components` to standardise favorite marking
|
|
12
|
+
- fec8b57: Updated exports to use the new type parameters for extensions and extension blueprints.
|
|
13
|
+
- 836127c: Updated dependency `@testing-library/react` to `^16.0.0`.
|
|
14
|
+
- 5446061: The `/alpha` export no longer export extension creators for the new frontend system, existing usage should be switched to use the equivalent extension blueprint instead. For more information see the [new frontend system 1.30 migration documentation](https://backstage.io/docs/frontend-system/architecture/migrations#130).
|
|
15
|
+
- 0ff53c8: Enable loading state for paginated catalog tables by passing `isLoading` prop
|
|
16
|
+
- 180a45f: Entity presentation api now only fetches fields that are required to display entity title
|
|
17
|
+
- a159180: Added missing items to `overridableComponents`
|
|
18
|
+
- Updated dependencies
|
|
19
|
+
- @backstage/core-components@0.15.0
|
|
20
|
+
- @backstage/plugin-catalog-react@1.13.0
|
|
21
|
+
- @backstage/frontend-plugin-api@0.8.0
|
|
22
|
+
- @backstage/core-compat-api@0.3.0
|
|
23
|
+
- @backstage/plugin-search-react@1.8.0
|
|
24
|
+
- @backstage/integration-react@1.1.31
|
|
25
|
+
- @backstage/catalog-model@1.7.0
|
|
26
|
+
- @backstage/catalog-client@1.7.0
|
|
27
|
+
- @backstage/plugin-catalog-common@1.1.0
|
|
28
|
+
- @backstage/core-plugin-api@1.9.4
|
|
29
|
+
- @backstage/plugin-permission-react@0.4.26
|
|
30
|
+
- @backstage/errors@1.2.4
|
|
31
|
+
- @backstage/types@1.1.1
|
|
32
|
+
- @backstage/plugin-scaffolder-common@1.5.6
|
|
33
|
+
- @backstage/plugin-search-common@1.2.14
|
|
34
|
+
|
|
3
35
|
## 1.23.0-next.2
|
|
4
36
|
|
|
5
37
|
### Minor Changes
|
package/alpha/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CatalogSearchResultListItem.esm.js","sources":["../../../src/components/CatalogSearchResultListItem/CatalogSearchResultListItem.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, { ReactNode } from 'react';\nimport Box from '@material-ui/core/Box';\nimport Chip from '@material-ui/core/Chip';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Link } from '@backstage/core-components';\nimport {\n IndexableDocument,\n ResultHighlight,\n} from '@backstage/plugin-search-common';\nimport { HighlightedSearchResultText } from '@backstage/plugin-search-react';\nimport { catalogTranslationRef } from '../../alpha/translation';\nimport { useTranslationRef } from '@backstage/frontend-plugin-api';\n\nconst useStyles = makeStyles(\n {\n item: {\n display: 'flex',\n },\n flexContainer: {\n flexWrap: 'wrap',\n },\n itemText: {\n width: '100%',\n wordBreak: 'break-all',\n marginBottom: '1rem',\n },\n },\n { name: 'CatalogSearchResultListItem' },\n);\n\n/**\n * Props for {@link CatalogSearchResultListItem}.\n *\n * @public\n */\nexport interface CatalogSearchResultListItemProps {\n icon?: ReactNode | ((result: IndexableDocument) => ReactNode);\n result?: IndexableDocument;\n highlight?: ResultHighlight;\n rank?: number;\n lineClamp?: number;\n}\n\n/** @public */\nexport function CatalogSearchResultListItem(\n props: CatalogSearchResultListItemProps,\n) {\n const result = props.result as any;\n const highlight = props.highlight as ResultHighlight;\n\n const classes = useStyles();\n const { t } = useTranslationRef(catalogTranslationRef);\n\n if (!result) return null;\n\n return (\n <div className={classes.item}>\n {props.icon && (\n <ListItemIcon>\n {typeof props.icon === 'function' ? props.icon(result) : props.icon}\n </ListItemIcon>\n )}\n <div className={classes.flexContainer}>\n <ListItemText\n className={classes.itemText}\n primaryTypographyProps={{ variant: 'h6' }}\n primary={\n <Link noTrack to={result.location}>\n {highlight?.fields.title ? (\n <HighlightedSearchResultText\n text={highlight.fields.title}\n preTag={highlight.preTag}\n postTag={highlight.postTag}\n />\n ) : (\n result.title\n )}\n </Link>\n }\n secondary={\n <Typography\n component=\"span\"\n style={{\n display: '-webkit-box',\n WebkitBoxOrient: 'vertical',\n WebkitLineClamp: props.lineClamp,\n overflow: 'hidden',\n }}\n color=\"textSecondary\"\n variant=\"body2\"\n >\n {highlight?.fields.text ? (\n <HighlightedSearchResultText\n text={highlight.fields.text}\n preTag={highlight.preTag}\n postTag={highlight.postTag}\n />\n ) : (\n result.text\n )}\n </Typography>\n }\n />\n <Box>\n {result.kind && <Chip label={`Kind: ${result.kind}`} size=\"small\" />}\n {result.type && <Chip label={`Type: ${result.type}`} size=\"small\" />}\n {result.lifecycle && (\n <Chip\n label={`${t('searchResultItem.lifecycle')}: ${result.lifecycle}`}\n size=\"small\"\n />\n )}\n {result.owner && (\n <Chip\n label={`${t('searchResultItem.Owner')}: ${result.owner}`}\n size=\"small\"\n />\n )}\n </Box>\n </div>\n </div>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"CatalogSearchResultListItem.esm.js","sources":["../../../src/components/CatalogSearchResultListItem/CatalogSearchResultListItem.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, { ReactNode } from 'react';\nimport Box from '@material-ui/core/Box';\nimport Chip from '@material-ui/core/Chip';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Link } from '@backstage/core-components';\nimport {\n IndexableDocument,\n ResultHighlight,\n} from '@backstage/plugin-search-common';\nimport { HighlightedSearchResultText } from '@backstage/plugin-search-react';\nimport { catalogTranslationRef } from '../../alpha/translation';\nimport { useTranslationRef } from '@backstage/frontend-plugin-api';\n\n/** @public */\nexport type CatalogSearchResultListItemClassKey =\n | 'item'\n | 'flexContainer'\n | 'itemText';\n\nconst useStyles = makeStyles(\n {\n item: {\n display: 'flex',\n },\n flexContainer: {\n flexWrap: 'wrap',\n },\n itemText: {\n width: '100%',\n wordBreak: 'break-all',\n marginBottom: '1rem',\n },\n },\n { name: 'CatalogSearchResultListItem' },\n);\n\n/**\n * Props for {@link CatalogSearchResultListItem}.\n *\n * @public\n */\nexport interface CatalogSearchResultListItemProps {\n icon?: ReactNode | ((result: IndexableDocument) => ReactNode);\n result?: IndexableDocument;\n highlight?: ResultHighlight;\n rank?: number;\n lineClamp?: number;\n}\n\n/** @public */\nexport function CatalogSearchResultListItem(\n props: CatalogSearchResultListItemProps,\n) {\n const result = props.result as any;\n const highlight = props.highlight as ResultHighlight;\n\n const classes = useStyles();\n const { t } = useTranslationRef(catalogTranslationRef);\n\n if (!result) return null;\n\n return (\n <div className={classes.item}>\n {props.icon && (\n <ListItemIcon>\n {typeof props.icon === 'function' ? props.icon(result) : props.icon}\n </ListItemIcon>\n )}\n <div className={classes.flexContainer}>\n <ListItemText\n className={classes.itemText}\n primaryTypographyProps={{ variant: 'h6' }}\n primary={\n <Link noTrack to={result.location}>\n {highlight?.fields.title ? (\n <HighlightedSearchResultText\n text={highlight.fields.title}\n preTag={highlight.preTag}\n postTag={highlight.postTag}\n />\n ) : (\n result.title\n )}\n </Link>\n }\n secondary={\n <Typography\n component=\"span\"\n style={{\n display: '-webkit-box',\n WebkitBoxOrient: 'vertical',\n WebkitLineClamp: props.lineClamp,\n overflow: 'hidden',\n }}\n color=\"textSecondary\"\n variant=\"body2\"\n >\n {highlight?.fields.text ? (\n <HighlightedSearchResultText\n text={highlight.fields.text}\n preTag={highlight.preTag}\n postTag={highlight.postTag}\n />\n ) : (\n result.text\n )}\n </Typography>\n }\n />\n <Box>\n {result.kind && <Chip label={`Kind: ${result.kind}`} size=\"small\" />}\n {result.type && <Chip label={`Type: ${result.type}`} size=\"small\" />}\n {result.lifecycle && (\n <Chip\n label={`${t('searchResultItem.lifecycle')}: ${result.lifecycle}`}\n size=\"small\"\n />\n )}\n {result.owner && (\n <Chip\n label={`${t('searchResultItem.Owner')}: ${result.owner}`}\n size=\"small\"\n />\n )}\n </Box>\n </div>\n </div>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CatalogTableToolbar.esm.js","sources":["../../../src/components/CatalogTable/CatalogTableToolbar.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 */\nimport React from 'react';\nimport { EntitySearchBar } from '@backstage/plugin-catalog-react';\nimport Toolbar from '@material-ui/core/Toolbar';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/core/styles';\n\nconst useToolbarStyles = makeStyles(\n theme => ({\n root: {\n paddingTop: theme.spacing(1.25),\n paddingLeft: theme.spacing(2.5),\n paddingBottom: theme.spacing(0.75),\n display: 'flex',\n justifyContent: 'space-between',\n },\n text: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n }),\n { name: '
|
|
1
|
+
{"version":3,"file":"CatalogTableToolbar.esm.js","sources":["../../../src/components/CatalogTable/CatalogTableToolbar.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 */\nimport React from 'react';\nimport { EntitySearchBar } from '@backstage/plugin-catalog-react';\nimport Toolbar from '@material-ui/core/Toolbar';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/core/styles';\n\n/** @public */\nexport type CatalogTableToolbarClassKey = 'root' | 'text';\n\nconst useToolbarStyles = makeStyles(\n theme => ({\n root: {\n paddingTop: theme.spacing(1.25),\n paddingLeft: theme.spacing(2.5),\n paddingBottom: theme.spacing(0.75),\n display: 'flex',\n justifyContent: 'space-between',\n },\n text: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n }),\n { name: 'PluginCatalogTableToolbar' },\n);\n\nexport function CatalogTableToolbar(props: {\n title?: string | React.ReactElement<any>;\n}) {\n const styles = useToolbarStyles();\n return (\n <Toolbar className={styles.root}>\n <Typography variant=\"h5\" className={styles.text}>\n {props.title}\n </Typography>\n <EntitySearchBar />\n </Toolbar>\n );\n}\n"],"names":[],"mappings":";;;;;;AAwBA,MAAM,gBAAmB,GAAA,UAAA;AAAA,EACvB,CAAU,KAAA,MAAA;AAAA,IACR,IAAM,EAAA;AAAA,MACJ,UAAA,EAAY,KAAM,CAAA,OAAA,CAAQ,IAAI,CAAA;AAAA,MAC9B,WAAA,EAAa,KAAM,CAAA,OAAA,CAAQ,GAAG,CAAA;AAAA,MAC9B,aAAA,EAAe,KAAM,CAAA,OAAA,CAAQ,IAAI,CAAA;AAAA,MACjC,OAAS,EAAA,MAAA;AAAA,MACT,cAAgB,EAAA,eAAA;AAAA,KAClB;AAAA,IACA,IAAM,EAAA;AAAA,MACJ,UAAY,EAAA,QAAA;AAAA,MACZ,QAAU,EAAA,QAAA;AAAA,MACV,YAAc,EAAA,UAAA;AAAA,KAChB;AAAA,GACF,CAAA;AAAA,EACA,EAAE,MAAM,2BAA4B,EAAA;AACtC,CAAA,CAAA;AAEO,SAAS,oBAAoB,KAEjC,EAAA;AACD,EAAA,MAAM,SAAS,gBAAiB,EAAA,CAAA;AAChC,EAAA,2CACG,OAAQ,EAAA,EAAA,SAAA,EAAW,MAAO,CAAA,IAAA,EAAA,sCACxB,UAAW,EAAA,EAAA,OAAA,EAAQ,IAAK,EAAA,SAAA,EAAW,OAAO,IACxC,EAAA,EAAA,KAAA,CAAM,KACT,CACA,kBAAA,KAAA,CAAA,aAAA,CAAC,qBAAgB,CACnB,CAAA,CAAA;AAEJ;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CursorPaginatedCatalogTable.esm.js","sources":["../../../src/components/CatalogTable/CursorPaginatedCatalogTable.tsx"],"sourcesContent":["/*\n * Copyright 2023 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 { CatalogTableRow } from './types';\nimport { CatalogTableToolbar } from './CatalogTableToolbar';\n\ntype PaginatedCatalogTableProps = {\n prev?(): void;\n next?(): void;\n} & TableProps<CatalogTableRow>;\n\n/**\n * @internal\n */\n\nexport function CursorPaginatedCatalogTable(props: PaginatedCatalogTableProps) {\n const { columns, data, next, prev, title, isLoading, options, ...restProps } =\n props;\n\n return (\n <Table\n title={isLoading ? '' : title}\n columns={columns}\n data={data}\n options={{\n ...options,\n // These settings are configured to force server side pagination\n paginationPosition: 'both',\n pageSizeOptions: [],\n showFirstLastPageButtons: false,\n pageSize: Number.MAX_SAFE_INTEGER,\n emptyRowsWhenPaging: false,\n }}\n onPageChange={page => {\n if (page > 0) {\n next?.();\n } else {\n prev?.();\n }\n }}\n components={{\n Toolbar: CatalogTableToolbar,\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 {...restProps}\n />\n );\n}\n"],"names":[],"mappings":";;;;AA+BO,SAAS,4BAA4B,KAAmC,EAAA;AAC7E,EAAM,MAAA,EAAE,OAAS,EAAA,IAAA,EAAM,IAAM,EAAA,IAAA,EAAM,OAAO,SAAW,EAAA,OAAA,EAAS,GAAG,SAAA,EAC/D,GAAA,KAAA,CAAA;AAEF,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,GAAG,OAAA;AAAA;AAAA,QAEH,kBAAoB,EAAA,MAAA;AAAA,QACpB,iBAAiB,EAAC;AAAA,QAClB,wBAA0B,EAAA,KAAA;AAAA,QAC1B,UAAU,MAAO,CAAA,gBAAA;AAAA,QACjB,mBAAqB,EAAA,KAAA;AAAA,OACvB;AAAA,MACA,cAAc,CAAQ,IAAA,KAAA;AACpB,QAAA,IAAI,OAAO,CAAG,EAAA;AACZ,UAAO,IAAA,IAAA,CAAA;AAAA,SACF,MAAA;AACL,UAAO,IAAA,IAAA,CAAA;AAAA,SACT;AAAA,OACF;AAAA,MACA,UAAY,EAAA;AAAA,QACV,OAAS,EAAA,mBAAA;AAAA,OACX;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,
|
|
1
|
+
{"version":3,"file":"CursorPaginatedCatalogTable.esm.js","sources":["../../../src/components/CatalogTable/CursorPaginatedCatalogTable.tsx"],"sourcesContent":["/*\n * Copyright 2023 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 { CatalogTableRow } from './types';\nimport { CatalogTableToolbar } from './CatalogTableToolbar';\n\ntype PaginatedCatalogTableProps = {\n prev?(): void;\n next?(): void;\n} & TableProps<CatalogTableRow>;\n\n/**\n * @internal\n */\n\nexport function CursorPaginatedCatalogTable(props: PaginatedCatalogTableProps) {\n const { columns, data, next, prev, title, isLoading, options, ...restProps } =\n props;\n\n return (\n <Table\n title={isLoading ? '' : title}\n columns={columns}\n data={data}\n options={{\n ...options,\n // These settings are configured to force server side pagination\n paginationPosition: 'both',\n pageSizeOptions: [],\n showFirstLastPageButtons: false,\n pageSize: Number.MAX_SAFE_INTEGER,\n emptyRowsWhenPaging: false,\n }}\n onPageChange={page => {\n if (page > 0) {\n next?.();\n } else {\n prev?.();\n }\n }}\n components={{\n Toolbar: CatalogTableToolbar,\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":";;;;AA+BO,SAAS,4BAA4B,KAAmC,EAAA;AAC7E,EAAM,MAAA,EAAE,OAAS,EAAA,IAAA,EAAM,IAAM,EAAA,IAAA,EAAM,OAAO,SAAW,EAAA,OAAA,EAAS,GAAG,SAAA,EAC/D,GAAA,KAAA,CAAA;AAEF,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,GAAG,OAAA;AAAA;AAAA,QAEH,kBAAoB,EAAA,MAAA;AAAA,QACpB,iBAAiB,EAAC;AAAA,QAClB,wBAA0B,EAAA,KAAA;AAAA,QAC1B,UAAU,MAAO,CAAA,gBAAA;AAAA,QACjB,mBAAqB,EAAA,KAAA;AAAA,OACvB;AAAA,MACA,cAAc,CAAQ,IAAA,KAAA;AACpB,QAAA,IAAI,OAAO,CAAG,EAAA;AACZ,UAAO,IAAA,IAAA,CAAA;AAAA,SACF,MAAA;AACL,UAAO,IAAA,IAAA,CAAA;AAAA,SACT;AAAA,OACF;AAAA,MACA,UAAY,EAAA;AAAA,QACV,OAAS,EAAA,mBAAA;AAAA,OACX;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,SAAA;AAAA,KAAA;AAAA,GACN,CAAA;AAEJ;;;;"}
|
|
@@ -3,7 +3,7 @@ import { Table } from '@backstage/core-components';
|
|
|
3
3
|
import { useEntityList, EntityTextFilter } from '@backstage/plugin-catalog-react';
|
|
4
4
|
|
|
5
5
|
function OffsetPaginatedCatalogTable(props) {
|
|
6
|
-
const { columns, data } = props;
|
|
6
|
+
const { columns, data, isLoading } = props;
|
|
7
7
|
const { updateFilters, setLimit, setOffset, limit, totalItems, offset } = useEntityList();
|
|
8
8
|
const [page, setPage] = React.useState(
|
|
9
9
|
offset && limit ? Math.floor(offset / limit) : 0
|
|
@@ -37,7 +37,8 @@ function OffsetPaginatedCatalogTable(props) {
|
|
|
37
37
|
setLimit(pageSize);
|
|
38
38
|
},
|
|
39
39
|
totalCount: totalItems,
|
|
40
|
-
localization: { pagination: { labelDisplayedRows: "" } }
|
|
40
|
+
localization: { pagination: { labelDisplayedRows: "" } },
|
|
41
|
+
isLoading
|
|
41
42
|
}
|
|
42
43
|
);
|
|
43
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OffsetPaginatedCatalogTable.esm.js","sources":["../../../src/components/CatalogTable/OffsetPaginatedCatalogTable.tsx"],"sourcesContent":["/*\n * Copyright 2023 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 { CatalogTableRow } from './types';\nimport {\n EntityTextFilter,\n useEntityList,\n} from '@backstage/plugin-catalog-react';\n\n/**\n * @internal\n */\nexport function OffsetPaginatedCatalogTable(\n props: TableProps<CatalogTableRow>,\n) {\n const { columns, data } = 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\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 }}\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 />\n );\n}\n"],"names":[],"mappings":";;;;AA4BO,SAAS,4BACd,KACA,EAAA;AACA,
|
|
1
|
+
{"version":3,"file":"OffsetPaginatedCatalogTable.esm.js","sources":["../../../src/components/CatalogTable/OffsetPaginatedCatalogTable.tsx"],"sourcesContent":["/*\n * Copyright 2023 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 { CatalogTableRow } from './types';\nimport {\n EntityTextFilter,\n useEntityList,\n} from '@backstage/plugin-catalog-react';\n\n/**\n * @internal\n */\nexport function OffsetPaginatedCatalogTable(\n props: TableProps<CatalogTableRow>,\n) {\n const { columns, data, isLoading } = 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\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 }}\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,4BACd,KACA,EAAA;AACA,EAAA,MAAM,EAAE,OAAA,EAAS,IAAM,EAAA,SAAA,EAAc,GAAA,KAAA,CAAA;AACrC,EAAM,MAAA,EAAE,eAAe,QAAU,EAAA,SAAA,EAAW,OAAO,UAAY,EAAA,MAAA,KAC7D,aAAc,EAAA,CAAA;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,CAAA;AAAA,GACjD,CAAA;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,CAAA;AAAA,KACrC,MAAA;AACL,MAAA,SAAA,CAAW,IAAK,CAAA,GAAA,CAAI,CAAG,EAAA,IAAA,GAAO,KAAK,CAAC,CAAA,CAAA;AAAA,KACtC;AAAA,KACC,CAAC,SAAA,EAAW,IAAM,EAAA,KAAA,EAAO,UAAU,CAAC,CAAA,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,OACvB;AAAA,MACA,cAAA,EAAgB,CAAC,UAAA,KACf,aAAc,CAAA;AAAA,QACZ,IAAM,EAAA,UAAA,GAAa,IAAI,gBAAA,CAAiB,UAAU,CAAI,GAAA,KAAA,CAAA;AAAA,OACvD,CAAA;AAAA,MAEH,IAAA;AAAA,MACA,cAAc,CAAW,OAAA,KAAA;AACvB,QAAA,OAAA,CAAQ,OAAO,CAAA,CAAA;AAAA,OACjB;AAAA,MACA,qBAAqB,CAAY,QAAA,KAAA;AAC/B,QAAA,QAAA,CAAS,QAAQ,CAAA,CAAA;AAAA,OACnB;AAAA,MACA,UAAY,EAAA,UAAA;AAAA,MACZ,cAAc,EAAE,UAAA,EAAY,EAAE,kBAAA,EAAoB,IAAK,EAAA;AAAA,MACvD,SAAA;AAAA,KAAA;AAAA,GACF,CAAA;AAEJ;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityLabelsEmptyState.esm.js","sources":["../../../src/components/EntityLabelsCard/EntityLabelsEmptyState.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 Button from '@material-ui/core/Button';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/core/styles';\nimport React from 'react';\nimport { CodeSnippet } from '@backstage/core-components';\nimport { catalogTranslationRef } from '../../alpha/translation';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\n\nconst ENTITY_YAML = `metadata:\n name: example\n labels:\n javaVersion: 1.2.3`;\n\nconst useStyles = makeStyles(\n theme => ({\n code: {\n borderRadius: 6,\n margin: theme.spacing(2, 0),\n background:\n theme.palette.type === 'dark' ? '#444' : theme.palette.common.white,\n },\n }),\n { name: 'PluginCatalogEntityLabelsEmptyState' },\n);\n\nexport function EntityLabelsEmptyState() {\n const classes = useStyles();\n const { t } = useTranslationRef(catalogTranslationRef);\n\n return (\n <>\n <Typography variant=\"body1\">\n {t('entityLabelsCard.emptyDescription')}\n </Typography>\n <div className={classes.code}>\n <CodeSnippet\n text={ENTITY_YAML}\n language=\"yaml\"\n showLineNumbers\n highlightedNumbers={[3, 4, 5, 6]}\n customStyle={{ background: 'inherit', fontSize: '115%' }}\n />\n </div>\n <Button\n variant=\"contained\"\n color=\"primary\"\n target=\"_blank\"\n href=\"https://backstage.io/docs/features/software-catalog/descriptor-format#labels-optional\"\n >\n {t('entityLabelsCard.readMoreButtonTitle')}\n </Button>\n </>\n );\n}\n"],"names":[],"mappings":";;;;;;;;AAwBA,MAAM,WAAc,GAAA,CAAA;AAAA;AAAA;AAAA,sBAAA,CAAA,CAAA;
|
|
1
|
+
{"version":3,"file":"EntityLabelsEmptyState.esm.js","sources":["../../../src/components/EntityLabelsCard/EntityLabelsEmptyState.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 Button from '@material-ui/core/Button';\nimport Typography from '@material-ui/core/Typography';\nimport { makeStyles } from '@material-ui/core/styles';\nimport React from 'react';\nimport { CodeSnippet } from '@backstage/core-components';\nimport { catalogTranslationRef } from '../../alpha/translation';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\n\nconst ENTITY_YAML = `metadata:\n name: example\n labels:\n javaVersion: 1.2.3`;\n\n/** @public */\nexport type EntityLabelsEmptyStateClassKey = 'code';\n\nconst useStyles = makeStyles(\n theme => ({\n code: {\n borderRadius: 6,\n margin: theme.spacing(2, 0),\n background:\n theme.palette.type === 'dark' ? '#444' : theme.palette.common.white,\n },\n }),\n { name: 'PluginCatalogEntityLabelsEmptyState' },\n);\n\nexport function EntityLabelsEmptyState() {\n const classes = useStyles();\n const { t } = useTranslationRef(catalogTranslationRef);\n\n return (\n <>\n <Typography variant=\"body1\">\n {t('entityLabelsCard.emptyDescription')}\n </Typography>\n <div className={classes.code}>\n <CodeSnippet\n text={ENTITY_YAML}\n language=\"yaml\"\n showLineNumbers\n highlightedNumbers={[3, 4, 5, 6]}\n customStyle={{ background: 'inherit', fontSize: '115%' }}\n />\n </div>\n <Button\n variant=\"contained\"\n color=\"primary\"\n target=\"_blank\"\n href=\"https://backstage.io/docs/features/software-catalog/descriptor-format#labels-optional\"\n >\n {t('entityLabelsCard.readMoreButtonTitle')}\n </Button>\n </>\n );\n}\n"],"names":[],"mappings":";;;;;;;;AAwBA,MAAM,WAAc,GAAA,CAAA;AAAA;AAAA;AAAA,sBAAA,CAAA,CAAA;AAQpB,MAAM,SAAY,GAAA,UAAA;AAAA,EAChB,CAAU,KAAA,MAAA;AAAA,IACR,IAAM,EAAA;AAAA,MACJ,YAAc,EAAA,CAAA;AAAA,MACd,MAAQ,EAAA,KAAA,CAAM,OAAQ,CAAA,CAAA,EAAG,CAAC,CAAA;AAAA,MAC1B,UAAA,EACE,MAAM,OAAQ,CAAA,IAAA,KAAS,SAAS,MAAS,GAAA,KAAA,CAAM,QAAQ,MAAO,CAAA,KAAA;AAAA,KAClE;AAAA,GACF,CAAA;AAAA,EACA,EAAE,MAAM,qCAAsC,EAAA;AAChD,CAAA,CAAA;AAEO,SAAS,sBAAyB,GAAA;AACvC,EAAA,MAAM,UAAU,SAAU,EAAA,CAAA;AAC1B,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,qBAAqB,CAAA,CAAA;AAErD,EAAA,uBAEI,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,UAAW,EAAA,EAAA,OAAA,EAAQ,OACjB,EAAA,EAAA,CAAA,CAAE,mCAAmC,CACxC,CACA,kBAAA,KAAA,CAAA,aAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAW,QAAQ,IACtB,EAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACC,IAAM,EAAA,WAAA;AAAA,MACN,QAAS,EAAA,MAAA;AAAA,MACT,eAAe,EAAA,IAAA;AAAA,MACf,kBAAoB,EAAA,CAAC,CAAG,EAAA,CAAA,EAAG,GAAG,CAAC,CAAA;AAAA,MAC/B,WAAa,EAAA,EAAE,UAAY,EAAA,SAAA,EAAW,UAAU,MAAO,EAAA;AAAA,KAAA;AAAA,GAE3D,CACA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,OAAQ,EAAA,WAAA;AAAA,MACR,KAAM,EAAA,SAAA;AAAA,MACN,MAAO,EAAA,QAAA;AAAA,MACP,IAAK,EAAA,uFAAA;AAAA,KAAA;AAAA,IAEJ,EAAE,sCAAsC,CAAA;AAAA,GAE7C,CAAA,CAAA;AAEJ;;;;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -10,8 +10,8 @@ import React__default, { ReactNode } from 'react';
|
|
|
10
10
|
import { TabProps } from '@material-ui/core/Tab';
|
|
11
11
|
import { Overrides } from '@material-ui/core/styles/overrides';
|
|
12
12
|
import { StyleRules } from '@material-ui/core/styles/withStyles';
|
|
13
|
-
import { SearchResultListItemExtensionProps } from '@backstage/plugin-search-react';
|
|
14
13
|
import { IndexableDocument, ResultHighlight } from '@backstage/plugin-search-common';
|
|
14
|
+
import { SearchResultListItemExtensionProps } from '@backstage/plugin-search-react';
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* A custom renderer for the {@link DefaultEntityPresentationApi}.
|
|
@@ -271,6 +271,9 @@ declare const CatalogTable: {
|
|
|
271
271
|
defaultColumnsFunc: CatalogTableColumnsFunc;
|
|
272
272
|
};
|
|
273
273
|
|
|
274
|
+
/** @public */
|
|
275
|
+
type CatalogTableToolbarClassKey = 'root' | 'text';
|
|
276
|
+
|
|
274
277
|
/** @public */
|
|
275
278
|
type EntityLayoutRouteProps = {
|
|
276
279
|
path: string;
|
|
@@ -470,18 +473,18 @@ type SystemDiagramCardClassKey = 'domainNode' | 'systemNode' | 'componentNode' |
|
|
|
470
473
|
type EntityContextMenuClassKey = 'button';
|
|
471
474
|
|
|
472
475
|
/** @public */
|
|
473
|
-
type
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
476
|
+
type CatalogSearchResultListItemClassKey = 'item' | 'flexContainer' | 'itemText';
|
|
477
|
+
/**
|
|
478
|
+
* Props for {@link CatalogSearchResultListItem}.
|
|
479
|
+
*
|
|
480
|
+
* @public
|
|
481
|
+
*/
|
|
482
|
+
interface CatalogSearchResultListItemProps {
|
|
483
|
+
icon?: ReactNode | ((result: IndexableDocument) => ReactNode);
|
|
484
|
+
result?: IndexableDocument;
|
|
485
|
+
highlight?: ResultHighlight;
|
|
486
|
+
rank?: number;
|
|
487
|
+
lineClamp?: number;
|
|
485
488
|
}
|
|
486
489
|
|
|
487
490
|
/** @public */
|
|
@@ -498,6 +501,27 @@ interface EntityLabelsCardProps {
|
|
|
498
501
|
*/
|
|
499
502
|
declare function hasLabels(entity: Entity): boolean;
|
|
500
503
|
|
|
504
|
+
/** @public */
|
|
505
|
+
type EntityLabelsEmptyStateClassKey = 'code';
|
|
506
|
+
|
|
507
|
+
/** @public */
|
|
508
|
+
type PluginCatalogComponentsNameToClassKey = {
|
|
509
|
+
PluginCatalogEntityLinksEmptyState: EntityLinksEmptyStateClassKey;
|
|
510
|
+
PluginCatalogSystemDiagramCard: SystemDiagramCardClassKey;
|
|
511
|
+
PluginCatalogEntityContextMenu: EntityContextMenuClassKey;
|
|
512
|
+
PluginCatalogSearchResultListItem: CatalogSearchResultListItemClassKey;
|
|
513
|
+
PluginCatalogTableToolbar: CatalogTableToolbarClassKey;
|
|
514
|
+
PluginCatalogEntityLabelsEmptyState: EntityLabelsEmptyStateClassKey;
|
|
515
|
+
};
|
|
516
|
+
/** @public */
|
|
517
|
+
type BackstageOverrides = Overrides & {
|
|
518
|
+
[Name in keyof PluginCatalogComponentsNameToClassKey]?: Partial<StyleRules<PluginCatalogComponentsNameToClassKey[Name]>>;
|
|
519
|
+
};
|
|
520
|
+
declare module '@backstage/theme' {
|
|
521
|
+
interface OverrideComponentNameToClassKeys extends PluginCatalogComponentsNameToClassKey {
|
|
522
|
+
}
|
|
523
|
+
}
|
|
524
|
+
|
|
501
525
|
/**
|
|
502
526
|
* Props for root catalog pages.
|
|
503
527
|
*
|
|
@@ -592,19 +616,6 @@ type RelatedEntitiesCardProps<T extends Entity> = {
|
|
|
592
616
|
tableOptions?: TableOptions;
|
|
593
617
|
};
|
|
594
618
|
|
|
595
|
-
/**
|
|
596
|
-
* Props for {@link CatalogSearchResultListItem}.
|
|
597
|
-
*
|
|
598
|
-
* @public
|
|
599
|
-
*/
|
|
600
|
-
interface CatalogSearchResultListItemProps {
|
|
601
|
-
icon?: ReactNode | ((result: IndexableDocument) => ReactNode);
|
|
602
|
-
result?: IndexableDocument;
|
|
603
|
-
highlight?: ResultHighlight;
|
|
604
|
-
rank?: number;
|
|
605
|
-
lineClamp?: number;
|
|
606
|
-
}
|
|
607
|
-
|
|
608
619
|
/** @public */
|
|
609
620
|
declare const catalogPlugin: _backstage_core_plugin_api.BackstagePlugin<{
|
|
610
621
|
catalogIndex: _backstage_core_plugin_api.RouteRef<undefined>;
|
|
@@ -668,4 +679,4 @@ declare const RelatedEntitiesCard: <T extends Entity>(props: RelatedEntitiesCard
|
|
|
668
679
|
/** @public */
|
|
669
680
|
declare const CatalogSearchResultListItem: (props: SearchResultListItemExtensionProps<CatalogSearchResultListItemProps>) => JSX.Element | null;
|
|
670
681
|
|
|
671
|
-
export { type AboutCardProps, AboutContent, type AboutContentProps, AboutField, type AboutFieldProps, type BackstageOverrides, type Breakpoint, CatalogEntityPage, CatalogIndexPage, CatalogKindHeader, type CatalogKindHeaderProps, CatalogSearchResultListItem, type CatalogSearchResultListItemProps, CatalogTable, type CatalogTableColumnsFunc, type CatalogTableProps, type CatalogTableRow, type ColumnBreakpoints, type DefaultCatalogPageProps, DefaultEntityPresentationApi, type DefaultEntityPresentationApiOptions, type DefaultEntityPresentationApiRenderer, DefaultStarredEntitiesApi, type DependencyOfComponentsCardProps, type DependsOnComponentsCardProps, type DependsOnResourcesCardProps, EntityAboutCard, type EntityContextMenuClassKey, EntityDependencyOfComponentsCard, EntityDependsOnComponentsCard, EntityDependsOnResourcesCard, EntityHasComponentsCard, EntityHasResourcesCard, EntityHasSubcomponentsCard, EntityHasSubdomainsCard, EntityHasSystemsCard, EntityLabelsCard, type EntityLabelsCardProps, EntityLayout, type EntityLayoutProps, type EntityLayoutRouteProps, EntityLinksCard, type EntityLinksCardProps, type EntityLinksEmptyStateClassKey, EntityListContainer, EntityOrphanWarning, type EntityPredicates, EntityProcessingErrorsPanel, EntityRelationWarning, EntitySwitch, type EntitySwitchCaseProps, type EntitySwitchProps, FilterContainer, FilteredEntityLayout, type HasComponentsCardProps, type HasResourcesCardProps, type HasSubcomponentsCardProps, type HasSubdomainsCardProps, type HasSystemsCardProps, type PluginCatalogComponentsNameToClassKey, RelatedEntitiesCard, type RelatedEntitiesCardProps, type SystemDiagramCardClassKey, catalogPlugin, hasCatalogProcessingErrors, hasLabels, hasRelationWarnings, isApiType, isComponentType, isEntityWith, isKind, isNamespace, isOrphan, isResourceType };
|
|
682
|
+
export { type AboutCardProps, AboutContent, type AboutContentProps, AboutField, type AboutFieldProps, type BackstageOverrides, type Breakpoint, CatalogEntityPage, CatalogIndexPage, CatalogKindHeader, type CatalogKindHeaderProps, CatalogSearchResultListItem, type CatalogSearchResultListItemClassKey, type CatalogSearchResultListItemProps, CatalogTable, type CatalogTableColumnsFunc, type CatalogTableProps, type CatalogTableRow, type CatalogTableToolbarClassKey, type ColumnBreakpoints, type DefaultCatalogPageProps, DefaultEntityPresentationApi, type DefaultEntityPresentationApiOptions, type DefaultEntityPresentationApiRenderer, DefaultStarredEntitiesApi, type DependencyOfComponentsCardProps, type DependsOnComponentsCardProps, type DependsOnResourcesCardProps, EntityAboutCard, type EntityContextMenuClassKey, EntityDependencyOfComponentsCard, EntityDependsOnComponentsCard, EntityDependsOnResourcesCard, EntityHasComponentsCard, EntityHasResourcesCard, EntityHasSubcomponentsCard, EntityHasSubdomainsCard, EntityHasSystemsCard, EntityLabelsCard, type EntityLabelsCardProps, type EntityLabelsEmptyStateClassKey, EntityLayout, type EntityLayoutProps, type EntityLayoutRouteProps, EntityLinksCard, type EntityLinksCardProps, type EntityLinksEmptyStateClassKey, EntityListContainer, EntityOrphanWarning, type EntityPredicates, EntityProcessingErrorsPanel, EntityRelationWarning, EntitySwitch, type EntitySwitchCaseProps, type EntitySwitchProps, FilterContainer, FilteredEntityLayout, type HasComponentsCardProps, type HasResourcesCardProps, type HasSubcomponentsCardProps, type HasSubdomainsCardProps, type HasSystemsCardProps, type PluginCatalogComponentsNameToClassKey, RelatedEntitiesCard, type RelatedEntitiesCardProps, type SystemDiagramCardClassKey, catalogPlugin, hasCatalogProcessingErrors, hasLabels, hasRelationWarnings, isApiType, isComponentType, isEntityWith, isKind, isNamespace, isOrphan, isResourceType };
|
package/dist/index.esm.js
CHANGED
|
@@ -14,5 +14,6 @@ export { isApiType, isComponentType, isEntityWith, isKind, isNamespace, isResour
|
|
|
14
14
|
export { EntityListContainer, FilterContainer, FilteredEntityLayout } from './components/FilteredEntityLayout/index.esm.js';
|
|
15
15
|
import './components/EntityLabelsCard/EntityLabelsCard.esm.js';
|
|
16
16
|
export { hasLabels } from './components/EntityLabelsCard/conditions.esm.js';
|
|
17
|
+
import './components/CatalogSearchResultListItem/CatalogSearchResultListItem.esm.js';
|
|
17
18
|
export { CatalogEntityPage, CatalogIndexPage, CatalogSearchResultListItem, EntityAboutCard, EntityDependencyOfComponentsCard, EntityDependsOnComponentsCard, EntityDependsOnResourcesCard, EntityHasComponentsCard, EntityHasResourcesCard, EntityHasSubcomponentsCard, EntityHasSubdomainsCard, EntityHasSystemsCard, EntityLabelsCard, EntityLinksCard, RelatedEntitiesCard, catalogPlugin } from './plugin.esm.js';
|
|
18
19
|
//# sourceMappingURL=index.esm.js.map
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@backstage/plugin-catalog",
|
|
3
|
-
"version": "1.23.0
|
|
3
|
+
"version": "1.23.0",
|
|
4
4
|
"description": "The Backstage plugin for browsing the Backstage catalog",
|
|
5
5
|
"backstage": {
|
|
6
6
|
"role": "frontend-plugin",
|
|
@@ -57,20 +57,20 @@
|
|
|
57
57
|
"test": "backstage-cli package test"
|
|
58
58
|
},
|
|
59
59
|
"dependencies": {
|
|
60
|
-
"@backstage/catalog-client": "^1.7.0
|
|
61
|
-
"@backstage/catalog-model": "^1.
|
|
62
|
-
"@backstage/core-compat-api": "^0.3.0
|
|
63
|
-
"@backstage/core-components": "^0.
|
|
64
|
-
"@backstage/core-plugin-api": "^1.9.4
|
|
60
|
+
"@backstage/catalog-client": "^1.7.0",
|
|
61
|
+
"@backstage/catalog-model": "^1.7.0",
|
|
62
|
+
"@backstage/core-compat-api": "^0.3.0",
|
|
63
|
+
"@backstage/core-components": "^0.15.0",
|
|
64
|
+
"@backstage/core-plugin-api": "^1.9.4",
|
|
65
65
|
"@backstage/errors": "^1.2.4",
|
|
66
|
-
"@backstage/frontend-plugin-api": "^0.8.0
|
|
67
|
-
"@backstage/integration-react": "^1.1.31
|
|
68
|
-
"@backstage/plugin-catalog-common": "^1.0
|
|
69
|
-
"@backstage/plugin-catalog-react": "^1.13.0
|
|
70
|
-
"@backstage/plugin-permission-react": "^0.4.26
|
|
71
|
-
"@backstage/plugin-scaffolder-common": "^1.5.
|
|
66
|
+
"@backstage/frontend-plugin-api": "^0.8.0",
|
|
67
|
+
"@backstage/integration-react": "^1.1.31",
|
|
68
|
+
"@backstage/plugin-catalog-common": "^1.1.0",
|
|
69
|
+
"@backstage/plugin-catalog-react": "^1.13.0",
|
|
70
|
+
"@backstage/plugin-permission-react": "^0.4.26",
|
|
71
|
+
"@backstage/plugin-scaffolder-common": "^1.5.6",
|
|
72
72
|
"@backstage/plugin-search-common": "^1.2.14",
|
|
73
|
-
"@backstage/plugin-search-react": "^1.8.0
|
|
73
|
+
"@backstage/plugin-search-react": "^1.8.0",
|
|
74
74
|
"@backstage/types": "^1.1.1",
|
|
75
75
|
"@material-ui/core": "^4.12.2",
|
|
76
76
|
"@material-ui/icons": "^4.9.1",
|
|
@@ -86,12 +86,12 @@
|
|
|
86
86
|
"zen-observable": "^0.10.0"
|
|
87
87
|
},
|
|
88
88
|
"devDependencies": {
|
|
89
|
-
"@backstage/cli": "^0.27.1
|
|
90
|
-
"@backstage/core-app-api": "^1.
|
|
91
|
-
"@backstage/dev-utils": "^1.1.0
|
|
92
|
-
"@backstage/frontend-test-utils": "^0.2.0
|
|
89
|
+
"@backstage/cli": "^0.27.1",
|
|
90
|
+
"@backstage/core-app-api": "^1.15.0",
|
|
91
|
+
"@backstage/dev-utils": "^1.1.0",
|
|
92
|
+
"@backstage/frontend-test-utils": "^0.2.0",
|
|
93
93
|
"@backstage/plugin-permission-common": "^0.8.1",
|
|
94
|
-
"@backstage/test-utils": "^1.6.0
|
|
94
|
+
"@backstage/test-utils": "^1.6.0",
|
|
95
95
|
"@testing-library/dom": "^10.0.0",
|
|
96
96
|
"@testing-library/jest-dom": "^6.0.0",
|
|
97
97
|
"@testing-library/react": "^16.0.0",
|