@backstage-community/plugin-announcements 0.1.2 → 0.1.4
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 +15 -0
- package/README.md +8 -2
- package/dist/components/AnnouncementSearchResultListItem/AnnouncementSearchResultListItem.esm.js.map +1 -1
- package/dist/components/AnnouncementsTimeline/AnnouncementsTimeline.esm.js.map +1 -1
- package/dist/index.d.ts +74 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.esm.js.map +1 -1
- package/dist/plugin.esm.js +6 -6
- package/dist/plugin.esm.js.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @backstage-community/plugin-announcements
|
|
2
2
|
|
|
3
|
+
## 0.1.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- e282a2d: Minor improvements to README documentation
|
|
8
|
+
- Updated dependencies [e282a2d]
|
|
9
|
+
- @backstage-community/plugin-announcements-common@0.1.3
|
|
10
|
+
- @backstage-community/plugin-announcements-react@0.1.3
|
|
11
|
+
|
|
12
|
+
## 0.1.3
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- d08164d: Exported missing items to match documentation
|
|
17
|
+
|
|
3
18
|
## 0.1.2
|
|
4
19
|
|
|
5
20
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
# announcements
|
|
2
2
|
|
|
3
|
-
The frontend for the Announcements plugin.
|
|
3
|
+
The frontend for the Announcements plugin.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
This plugin provides:
|
|
4
8
|
|
|
5
|
-
- a component to display the latest announcements, for example on a homepage
|
|
6
9
|
- pages to list, view, create, edit and delete announcements
|
|
10
|
+
- a component to display the latest announcements, for example on a homepage
|
|
11
|
+
- a component to display the latest announcement as a banner, if there is one
|
|
12
|
+
- an admin portal to manage announcements
|
|
7
13
|
|
|
8
14
|
## Installation
|
|
9
15
|
|
package/dist/components/AnnouncementSearchResultListItem/AnnouncementSearchResultListItem.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnnouncementSearchResultListItem.esm.js","sources":["../../../src/components/AnnouncementSearchResultListItem/AnnouncementSearchResultListItem.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 { DateTime } from 'luxon';\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 { useAnnouncementsTranslation } from '@backstage-community/plugin-announcements-react';\nimport {\n makeStyles,\n ListItem,\n ListItemIcon,\n ListItemText,\n Divider,\n Typography,\n} from '@material-ui/core';\nimport RecordVoiceOverIcon from '@material-ui/icons/RecordVoiceOver';\n\nconst useStyles = makeStyles({\n createdAt: {\n display: 'block',\n marginTop: '0.2rem',\n marginBottom: '0.8rem',\n fontSize: '0.8rem',\n },\n excerpt: {\n lineHeight: '1.55',\n },\n itemText: {\n wordBreak: 'break-all',\n },\n});\n\ntype IndexableAnnouncement = IndexableDocument & {\n createdAt: string;\n};\n\nexport interface AnnouncementSearchResultProps {\n result?: IndexableDocument;\n highlight?: ResultHighlight;\n rank?: number;\n}\n\nexport const AnnouncementSearchResultListItem = ({\n result,\n highlight,\n}: AnnouncementSearchResultProps) => {\n const classes = useStyles();\n const { t } = useAnnouncementsTranslation();\n\n if (!result) {\n return null;\n }\n\n const document = result as IndexableAnnouncement;\n\n const title = (\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\n const excerpt = (\n <>\n <Typography component=\"span\" className={classes.createdAt}>\n {`${t('announcementSearchResultListItem.published')} `}\n <Typography component=\"span\" title={document.createdAt}>\n {DateTime.fromISO(document.createdAt).toRelative()}\n </Typography>\n </Typography>\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 </>\n </>\n );\n\n return (\n <>\n <ListItem alignItems=\"center\">\n <ListItemIcon\n title={t('announcementSearchResultListItem.announcement')}\n >\n <RecordVoiceOverIcon />\n </ListItemIcon>\n <ListItemText\n primary={title}\n secondary={excerpt}\n className={classes.itemText}\n primaryTypographyProps={{ variant: 'h6' }}\n />\n </ListItem>\n\n <Divider component=\"li\" />\n </>\n );\n};\n"],"names":["React"],"mappings":";;;;;;;;AAkCA,MAAM,YAAY,UAAW,CAAA;AAAA,EAC3B,SAAW,EAAA;AAAA,IACT,OAAS,EAAA,OAAA;AAAA,IACT,SAAW,EAAA,QAAA;AAAA,IACX,YAAc,EAAA,QAAA;AAAA,IACd,QAAU,EAAA;AAAA,GACZ;AAAA,EACA,OAAS,EAAA;AAAA,IACP,UAAY,EAAA;AAAA,GACd;AAAA,EACA,QAAU,EAAA;AAAA,IACR,SAAW,EAAA;AAAA;AAEf,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"AnnouncementSearchResultListItem.esm.js","sources":["../../../src/components/AnnouncementSearchResultListItem/AnnouncementSearchResultListItem.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 { DateTime } from 'luxon';\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 { useAnnouncementsTranslation } from '@backstage-community/plugin-announcements-react';\nimport {\n makeStyles,\n ListItem,\n ListItemIcon,\n ListItemText,\n Divider,\n Typography,\n} from '@material-ui/core';\nimport RecordVoiceOverIcon from '@material-ui/icons/RecordVoiceOver';\n\nconst useStyles = makeStyles({\n createdAt: {\n display: 'block',\n marginTop: '0.2rem',\n marginBottom: '0.8rem',\n fontSize: '0.8rem',\n },\n excerpt: {\n lineHeight: '1.55',\n },\n itemText: {\n wordBreak: 'break-all',\n },\n});\n\ntype IndexableAnnouncement = IndexableDocument & {\n createdAt: string;\n};\n\n/** @public */\nexport interface AnnouncementSearchResultProps {\n result?: IndexableDocument;\n highlight?: ResultHighlight;\n rank?: number;\n}\n\nexport const AnnouncementSearchResultListItem = ({\n result,\n highlight,\n}: AnnouncementSearchResultProps) => {\n const classes = useStyles();\n const { t } = useAnnouncementsTranslation();\n\n if (!result) {\n return null;\n }\n\n const document = result as IndexableAnnouncement;\n\n const title = (\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\n const excerpt = (\n <>\n <Typography component=\"span\" className={classes.createdAt}>\n {`${t('announcementSearchResultListItem.published')} `}\n <Typography component=\"span\" title={document.createdAt}>\n {DateTime.fromISO(document.createdAt).toRelative()}\n </Typography>\n </Typography>\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 </>\n </>\n );\n\n return (\n <>\n <ListItem alignItems=\"center\">\n <ListItemIcon\n title={t('announcementSearchResultListItem.announcement')}\n >\n <RecordVoiceOverIcon />\n </ListItemIcon>\n <ListItemText\n primary={title}\n secondary={excerpt}\n className={classes.itemText}\n primaryTypographyProps={{ variant: 'h6' }}\n />\n </ListItem>\n\n <Divider component=\"li\" />\n </>\n );\n};\n"],"names":["React"],"mappings":";;;;;;;;AAkCA,MAAM,YAAY,UAAW,CAAA;AAAA,EAC3B,SAAW,EAAA;AAAA,IACT,OAAS,EAAA,OAAA;AAAA,IACT,SAAW,EAAA,QAAA;AAAA,IACX,YAAc,EAAA,QAAA;AAAA,IACd,QAAU,EAAA;AAAA,GACZ;AAAA,EACA,OAAS,EAAA;AAAA,IACP,UAAY,EAAA;AAAA,GACd;AAAA,EACA,QAAU,EAAA;AAAA,IACR,SAAW,EAAA;AAAA;AAEf,CAAC,CAAA;AAaM,MAAM,mCAAmC,CAAC;AAAA,EAC/C,MAAA;AAAA,EACA;AACF,CAAqC,KAAA;AACnC,EAAA,MAAM,UAAU,SAAU,EAAA;AAC1B,EAAM,MAAA,EAAE,CAAE,EAAA,GAAI,2BAA4B,EAAA;AAE1C,EAAA,IAAI,CAAC,MAAQ,EAAA;AACX,IAAO,OAAA,IAAA;AAAA;AAGT,EAAA,MAAM,QAAW,GAAA,MAAA;AAEjB,EAAM,MAAA,KAAA,mBACHA,cAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAK,OAAO,EAAA,IAAA,EAAC,IAAI,MAAO,CAAA,QAAA,EAAA,EACtB,SAAW,EAAA,MAAA,CAAO,KACjB,mBAAAA,cAAA,CAAA,aAAA;AAAA,IAAC,2BAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAM,UAAU,MAAO,CAAA,KAAA;AAAA,MACvB,QAAQ,SAAU,CAAA,MAAA;AAAA,MAClB,SAAS,SAAU,CAAA;AAAA;AAAA,GACrB,GAEA,OAAO,KAEX,CAAA;AAGF,EAAA,MAAM,OACJ,mBAAAA,cAAA,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA,kBACGA,cAAA,CAAA,aAAA,CAAA,UAAA,EAAA,EAAW,WAAU,MAAO,EAAA,SAAA,EAAW,OAAQ,CAAA,SAAA,EAAA,EAC7C,CAAG,EAAA,CAAA,CAAE,4CAA4C,CAAC,qBAClDA,cAAA,CAAA,aAAA,CAAA,UAAA,EAAA,EAAW,SAAU,EAAA,MAAA,EAAO,KAAO,EAAA,QAAA,CAAS,SAC1C,EAAA,EAAA,QAAA,CAAS,QAAQ,QAAS,CAAA,SAAS,CAAE,CAAA,UAAA,EACxC,CACF,CAAA,kBAEGA,cAAA,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA,EAAA,SAAA,EAAW,OAAO,IACjB,mBAAAA,cAAA,CAAA,aAAA;AAAA,IAAC,2BAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAM,UAAU,MAAO,CAAA,IAAA;AAAA,MACvB,QAAQ,SAAU,CAAA,MAAA;AAAA,MAClB,SAAS,SAAU,CAAA;AAAA;AAAA,GACrB,GAEA,MAAO,CAAA,IAEX,CACF,CAAA;AAGF,EAAA,uBAEIA,cAAA,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,QAAS,EAAA,EAAA,UAAA,EAAW,QACnB,EAAA,kBAAAA,cAAA,CAAA,aAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO,EAAE,+CAA+C;AAAA,KAAA;AAAA,iDAEvD,mBAAoB,EAAA,IAAA;AAAA,GAEvB,kBAAAA,cAAA,CAAA,aAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,OAAS,EAAA,KAAA;AAAA,MACT,SAAW,EAAA,OAAA;AAAA,MACX,WAAW,OAAQ,CAAA,QAAA;AAAA,MACnB,sBAAA,EAAwB,EAAE,OAAA,EAAS,IAAK;AAAA;AAAA,GAE5C,CAEA,kBAAAA,cAAA,CAAA,aAAA,CAAC,OAAQ,EAAA,EAAA,SAAA,EAAU,MAAK,CAC1B,CAAA;AAEJ;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnnouncementsTimeline.esm.js","sources":["../../../src/components/AnnouncementsTimeline/AnnouncementsTimeline.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 { useRouteRef } from '@backstage/core-plugin-api';\nimport React from 'react';\nimport { Link } from 'react-router-dom';\nimport { DateTime } from 'luxon';\nimport { announcementViewRouteRef } from '../../routes';\nimport {\n useAnnouncements,\n useAnnouncementsTranslation,\n} from '@backstage-community/plugin-announcements-react';\nimport { Progress } from '@backstage/core-components';\nimport {\n Timeline,\n TimelineItem,\n TimelineConnector,\n TimelineDot,\n TimelineSeparator,\n TimelineOppositeContent,\n TimelineContent,\n} from '@material-ui/lab';\nimport { Box, Typography } from '@material-ui/core';\nimport Stack from '@mui/material/Stack';\n\n/**\n * Props for the AnnouncementsTimeline component.\n */\nexport type AnnouncementsTimelineProps = {\n /**\n * The maximum number of results to display.\n * Default: 10\n */\n maxResults?: number;\n /**\n * The alignment of the timeline items. Can be 'left', 'right', or 'alternate'.\n * Default: 'alternate'\n */\n timelineAlignment?: 'left' | 'right' | 'alternate';\n /**\n * The minimum width of the timeline.\n * Default: '425px'\n */\n timelineMinWidth?: string;\n /**\n * Whether to only show active announcements.\n * Default: false\n */\n hideInactive?: boolean;\n};\n\n/**\n * Default alignment for the timeline.\n */\nconst DEFAULT_TIMELINE_ALIGNMENT = 'alternate';\n\n/**\n * Default width for the timeline.\n */\nconst DEFAULT_TIMELINE_WIDTH = '425px';\n\n/**\n * Default maximum number of results to display.\n */\nconst DEFAULT_RESULTS_MAX = 10;\n\n/**\n * Default setting for only displaying active annoucenments.\n */\nconst DEFAULT_INACTIVE = false;\n\n/**\n * Timeline of most recent announcements.\n *\n * @param options - The options for the announcements timeline.\n * @returns The rendered announcements timeline.\n */\nexport const AnnouncementsTimeline = ({\n maxResults = DEFAULT_RESULTS_MAX,\n timelineAlignment = DEFAULT_TIMELINE_ALIGNMENT,\n timelineMinWidth = DEFAULT_TIMELINE_WIDTH,\n hideInactive = DEFAULT_INACTIVE,\n}: AnnouncementsTimelineProps) => {\n const viewAnnouncementLink = useRouteRef(announcementViewRouteRef);\n\n const { announcements, loading, error } = useAnnouncements({\n max: maxResults,\n active: hideInactive,\n });\n const { t } = useAnnouncementsTranslation();\n\n if (loading) {\n return <Progress />;\n }\n\n if (!announcements || announcements.count === 0)\n return <>{t('announcementsTimeline.noAnnouncements')}</>;\n\n if (error)\n return <>{`${t('announcementsTimeline.error')}: ${error.message}`}</>;\n\n return (\n <Stack\n direction=\"column\"\n justifyContent=\"center\"\n alignItems=\"center\"\n spacing={0}\n >\n <Box sx={{ minWidth: timelineMinWidth }}>\n <Timeline align={timelineAlignment}>\n {announcements.results.map(a => (\n <TimelineItem key={`ti-${a.id}`}>\n <TimelineOppositeContent\n key={`toc-${a.id}`}\n style={{ margin: 'auto 0' }}\n >\n {DateTime.fromISO(a.created_at).toRelative()}\n </TimelineOppositeContent>\n\n <TimelineSeparator>\n <TimelineConnector />\n <TimelineDot color=\"primary\" />\n <TimelineConnector />\n </TimelineSeparator>\n\n <TimelineContent key={`tc-${a.id}`}>\n <Link to={viewAnnouncementLink({ id: a.id })}>\n <Typography key={`th6-${a.id}`} variant=\"h6\" component=\"span\">\n {a.title}\n </Typography>\n </Link>\n <Typography key={`te-${a.id}`} variant=\"body2\">\n {a.excerpt}\n </Typography>\n </TimelineContent>\n </TimelineItem>\n ))}\n </Timeline>\n </Box>\n </Stack>\n );\n};\n"],"names":["React"],"mappings":";;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"AnnouncementsTimeline.esm.js","sources":["../../../src/components/AnnouncementsTimeline/AnnouncementsTimeline.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 { useRouteRef } from '@backstage/core-plugin-api';\nimport React from 'react';\nimport { Link } from 'react-router-dom';\nimport { DateTime } from 'luxon';\nimport { announcementViewRouteRef } from '../../routes';\nimport {\n useAnnouncements,\n useAnnouncementsTranslation,\n} from '@backstage-community/plugin-announcements-react';\nimport { Progress } from '@backstage/core-components';\nimport {\n Timeline,\n TimelineItem,\n TimelineConnector,\n TimelineDot,\n TimelineSeparator,\n TimelineOppositeContent,\n TimelineContent,\n} from '@material-ui/lab';\nimport { Box, Typography } from '@material-ui/core';\nimport Stack from '@mui/material/Stack';\n\n/**\n * Props for the AnnouncementsTimeline component.\n *\n * @public\n */\nexport type AnnouncementsTimelineProps = {\n /**\n * The maximum number of results to display.\n * Default: 10\n */\n maxResults?: number;\n /**\n * The alignment of the timeline items. Can be 'left', 'right', or 'alternate'.\n * Default: 'alternate'\n */\n timelineAlignment?: 'left' | 'right' | 'alternate';\n /**\n * The minimum width of the timeline.\n * Default: '425px'\n */\n timelineMinWidth?: string;\n /**\n * Whether to only show active announcements.\n * Default: false\n */\n hideInactive?: boolean;\n};\n\n/**\n * Default alignment for the timeline.\n */\nconst DEFAULT_TIMELINE_ALIGNMENT = 'alternate';\n\n/**\n * Default width for the timeline.\n */\nconst DEFAULT_TIMELINE_WIDTH = '425px';\n\n/**\n * Default maximum number of results to display.\n */\nconst DEFAULT_RESULTS_MAX = 10;\n\n/**\n * Default setting for only displaying active annoucenments.\n */\nconst DEFAULT_INACTIVE = false;\n\n/**\n * Timeline of most recent announcements.\n *\n * @param options - The options for the announcements timeline.\n * @returns The rendered announcements timeline.\n */\nexport const AnnouncementsTimeline = ({\n maxResults = DEFAULT_RESULTS_MAX,\n timelineAlignment = DEFAULT_TIMELINE_ALIGNMENT,\n timelineMinWidth = DEFAULT_TIMELINE_WIDTH,\n hideInactive = DEFAULT_INACTIVE,\n}: AnnouncementsTimelineProps) => {\n const viewAnnouncementLink = useRouteRef(announcementViewRouteRef);\n\n const { announcements, loading, error } = useAnnouncements({\n max: maxResults,\n active: hideInactive,\n });\n const { t } = useAnnouncementsTranslation();\n\n if (loading) {\n return <Progress />;\n }\n\n if (!announcements || announcements.count === 0)\n return <>{t('announcementsTimeline.noAnnouncements')}</>;\n\n if (error)\n return <>{`${t('announcementsTimeline.error')}: ${error.message}`}</>;\n\n return (\n <Stack\n direction=\"column\"\n justifyContent=\"center\"\n alignItems=\"center\"\n spacing={0}\n >\n <Box sx={{ minWidth: timelineMinWidth }}>\n <Timeline align={timelineAlignment}>\n {announcements.results.map(a => (\n <TimelineItem key={`ti-${a.id}`}>\n <TimelineOppositeContent\n key={`toc-${a.id}`}\n style={{ margin: 'auto 0' }}\n >\n {DateTime.fromISO(a.created_at).toRelative()}\n </TimelineOppositeContent>\n\n <TimelineSeparator>\n <TimelineConnector />\n <TimelineDot color=\"primary\" />\n <TimelineConnector />\n </TimelineSeparator>\n\n <TimelineContent key={`tc-${a.id}`}>\n <Link to={viewAnnouncementLink({ id: a.id })}>\n <Typography key={`th6-${a.id}`} variant=\"h6\" component=\"span\">\n {a.title}\n </Typography>\n </Link>\n <Typography key={`te-${a.id}`} variant=\"body2\">\n {a.excerpt}\n </Typography>\n </TimelineContent>\n </TimelineItem>\n ))}\n </Timeline>\n </Box>\n </Stack>\n );\n};\n"],"names":["React"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,47 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import * as _backstage_core_plugin_api_index from '@backstage/core-plugin-api/index';
|
|
3
|
+
import * as _backstage_core_components_index from '@backstage/core-components/index';
|
|
3
4
|
import * as react from 'react';
|
|
5
|
+
import { IndexableDocument, ResultHighlight } from '@backstage/plugin-search-common';
|
|
4
6
|
import * as _backstage_core_plugin_api from '@backstage/core-plugin-api';
|
|
7
|
+
import { SearchResultListItemExtensionProps } from '@backstage/plugin-search-react';
|
|
5
8
|
import { AnnouncementsApi as AnnouncementsApi$1 } from '@backstage-community/plugin-announcements-react';
|
|
6
9
|
|
|
10
|
+
/**
|
|
11
|
+
* Props for the AnnouncementsTimeline component.
|
|
12
|
+
*
|
|
13
|
+
* @public
|
|
14
|
+
*/
|
|
15
|
+
type AnnouncementsTimelineProps = {
|
|
16
|
+
/**
|
|
17
|
+
* The maximum number of results to display.
|
|
18
|
+
* Default: 10
|
|
19
|
+
*/
|
|
20
|
+
maxResults?: number;
|
|
21
|
+
/**
|
|
22
|
+
* The alignment of the timeline items. Can be 'left', 'right', or 'alternate'.
|
|
23
|
+
* Default: 'alternate'
|
|
24
|
+
*/
|
|
25
|
+
timelineAlignment?: 'left' | 'right' | 'alternate';
|
|
26
|
+
/**
|
|
27
|
+
* The minimum width of the timeline.
|
|
28
|
+
* Default: '425px'
|
|
29
|
+
*/
|
|
30
|
+
timelineMinWidth?: string;
|
|
31
|
+
/**
|
|
32
|
+
* Whether to only show active announcements.
|
|
33
|
+
* Default: false
|
|
34
|
+
*/
|
|
35
|
+
hideInactive?: boolean;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
/** @public */
|
|
39
|
+
interface AnnouncementSearchResultProps {
|
|
40
|
+
result?: IndexableDocument;
|
|
41
|
+
highlight?: ResultHighlight;
|
|
42
|
+
rank?: number;
|
|
43
|
+
}
|
|
44
|
+
|
|
7
45
|
/**
|
|
8
46
|
* @public
|
|
9
47
|
*/
|
|
@@ -27,6 +65,41 @@ declare const AnnouncementsPage: (props: {
|
|
|
27
65
|
} | undefined;
|
|
28
66
|
hideInactive?: boolean | undefined;
|
|
29
67
|
}) => react.JSX.Element;
|
|
68
|
+
/**
|
|
69
|
+
* @public
|
|
70
|
+
*/
|
|
71
|
+
declare const AnnouncementsAdminPortal: (props?: {
|
|
72
|
+
themeId?: string | undefined;
|
|
73
|
+
title?: string | undefined;
|
|
74
|
+
subtitle?: string | undefined;
|
|
75
|
+
} | undefined) => react.JSX.Element;
|
|
76
|
+
/**
|
|
77
|
+
* @public
|
|
78
|
+
*/
|
|
79
|
+
declare const AnnouncementsTimeline: ({ maxResults, timelineAlignment, timelineMinWidth, hideInactive, }: AnnouncementsTimelineProps) => react.JSX.Element;
|
|
80
|
+
/**
|
|
81
|
+
* @public
|
|
82
|
+
*/
|
|
83
|
+
declare const AnnouncementsCard: ({ title, max, category, active, variant, }: {
|
|
84
|
+
title?: string | undefined;
|
|
85
|
+
max?: number | undefined;
|
|
86
|
+
category?: string | undefined;
|
|
87
|
+
active?: boolean | undefined;
|
|
88
|
+
variant?: _backstage_core_components_index.InfoCardVariants | undefined;
|
|
89
|
+
}) => react.JSX.Element;
|
|
90
|
+
/**
|
|
91
|
+
* @public
|
|
92
|
+
*/
|
|
93
|
+
declare const NewAnnouncementBanner: (props: {
|
|
94
|
+
variant?: "block" | "floating" | undefined;
|
|
95
|
+
max?: number | undefined;
|
|
96
|
+
category?: string | undefined;
|
|
97
|
+
active?: boolean | undefined;
|
|
98
|
+
}) => react.JSX.Element | null;
|
|
99
|
+
/**
|
|
100
|
+
* @public
|
|
101
|
+
*/
|
|
102
|
+
declare const AnnouncementSearchResultListItem: (props: SearchResultListItemExtensionProps<AnnouncementSearchResultProps>) => JSX.Element | null;
|
|
30
103
|
|
|
31
104
|
/**
|
|
32
105
|
@public
|
|
@@ -39,4 +112,4 @@ type AnnouncementsApi = AnnouncementsApi$1;
|
|
|
39
112
|
*/
|
|
40
113
|
declare const announcementsApiRef: _backstage_core_plugin_api_index.ApiRef<AnnouncementsApi$1>;
|
|
41
114
|
|
|
42
|
-
export { type AnnouncementsApi, AnnouncementsPage, announcementsApiRef, announcementsPlugin };
|
|
115
|
+
export { AnnouncementSearchResultListItem, type AnnouncementSearchResultProps, AnnouncementsAdminPortal, type AnnouncementsApi, AnnouncementsCard, AnnouncementsPage, AnnouncementsTimeline, type AnnouncementsTimelineProps, NewAnnouncementBanner, announcementsApiRef, announcementsPlugin };
|
package/dist/index.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { AnnouncementsPage, announcementsPlugin } from './plugin.esm.js';
|
|
1
|
+
export { AnnouncementSearchResultListItem, AnnouncementsAdminPortal, AnnouncementsCard, AnnouncementsPage, AnnouncementsTimeline, NewAnnouncementBanner, announcementsPlugin } from './plugin.esm.js';
|
|
2
2
|
import { announcementsApiRef as announcementsApiRef$1 } from '@backstage-community/plugin-announcements-react';
|
|
3
3
|
|
|
4
4
|
const announcementsApiRef = announcementsApiRef$1;
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../src/index.ts"],"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 */\nexport
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/index.ts"],"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 */\nexport * from './plugin';\n\nimport {\n announcementsApiRef as announcementsApiRef_,\n AnnouncementsApi as AnnouncementsApi_,\n} from '@backstage-community/plugin-announcements-react';\n\n/**\n @public\n * @deprecated Use `AnnouncementsApi` from `@backstage-community/plugin-announcements-react` instead\n */\nexport type AnnouncementsApi = AnnouncementsApi_;\n\n/**\n * @public\n * @deprecated Use `announcementsApiRef` from `@backstage-community/plugin-announcements-react` instead\n */\nexport const announcementsApiRef = announcementsApiRef_;\n\nexport type { AnnouncementsTimelineProps } from './components';\nexport type { AnnouncementSearchResultProps } from './components';\n"],"names":["announcementsApiRef_"],"mappings":";;;AAgCO,MAAM,mBAAsB,GAAAA;;;;"}
|
package/dist/plugin.esm.js
CHANGED
|
@@ -36,14 +36,14 @@ const AnnouncementsPage = announcementsPlugin.provide(
|
|
|
36
36
|
mountPoint: rootRouteRef
|
|
37
37
|
})
|
|
38
38
|
);
|
|
39
|
-
announcementsPlugin.provide(
|
|
39
|
+
const AnnouncementsAdminPortal = announcementsPlugin.provide(
|
|
40
40
|
createRoutableExtension({
|
|
41
41
|
name: "AnnouncementsAdminPortal",
|
|
42
42
|
component: () => import('./components/Admin/index.esm.js').then((m) => m.AdminPortal),
|
|
43
43
|
mountPoint: rootRouteRef
|
|
44
44
|
})
|
|
45
45
|
);
|
|
46
|
-
announcementsPlugin.provide(
|
|
46
|
+
const AnnouncementsTimeline = announcementsPlugin.provide(
|
|
47
47
|
createComponentExtension({
|
|
48
48
|
name: "AnnouncementsTimeline",
|
|
49
49
|
component: {
|
|
@@ -51,7 +51,7 @@ announcementsPlugin.provide(
|
|
|
51
51
|
}
|
|
52
52
|
})
|
|
53
53
|
);
|
|
54
|
-
announcementsPlugin.provide(
|
|
54
|
+
const AnnouncementsCard = announcementsPlugin.provide(
|
|
55
55
|
createComponentExtension({
|
|
56
56
|
name: "AnnouncementsCard",
|
|
57
57
|
component: {
|
|
@@ -59,7 +59,7 @@ announcementsPlugin.provide(
|
|
|
59
59
|
}
|
|
60
60
|
})
|
|
61
61
|
);
|
|
62
|
-
announcementsPlugin.provide(
|
|
62
|
+
const NewAnnouncementBanner = announcementsPlugin.provide(
|
|
63
63
|
createComponentExtension({
|
|
64
64
|
name: "NewAnnouncementBanner",
|
|
65
65
|
component: {
|
|
@@ -69,7 +69,7 @@ announcementsPlugin.provide(
|
|
|
69
69
|
}
|
|
70
70
|
})
|
|
71
71
|
);
|
|
72
|
-
announcementsPlugin.provide(
|
|
72
|
+
const AnnouncementSearchResultListItem = announcementsPlugin.provide(
|
|
73
73
|
createSearchResultListItemExtension({
|
|
74
74
|
name: "AnnouncementSearchResultListItem",
|
|
75
75
|
component: () => import('./components/AnnouncementSearchResultListItem/index.esm.js').then(
|
|
@@ -79,5 +79,5 @@ announcementsPlugin.provide(
|
|
|
79
79
|
})
|
|
80
80
|
);
|
|
81
81
|
|
|
82
|
-
export { AnnouncementsPage, announcementsPlugin };
|
|
82
|
+
export { AnnouncementSearchResultListItem, AnnouncementsAdminPortal, AnnouncementsCard, AnnouncementsPage, AnnouncementsTimeline, NewAnnouncementBanner, announcementsPlugin };
|
|
83
83
|
//# sourceMappingURL=plugin.esm.js.map
|
package/dist/plugin.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.esm.js","sources":["../src/plugin.ts"],"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 {\n createApiFactory,\n createComponentExtension,\n createPlugin,\n createRoutableExtension,\n discoveryApiRef,\n errorApiRef,\n identityApiRef,\n fetchApiRef,\n} from '@backstage/core-plugin-api';\nimport {\n createSearchResultListItemExtension,\n SearchResultListItemExtensionProps,\n} from '@backstage/plugin-search-react';\nimport { AnnouncementSearchResultProps } from './components/AnnouncementSearchResultListItem';\nimport { rootRouteRef } from './routes';\nimport { announcementsApiRef } from '@backstage-community/plugin-announcements-react';\nimport { AnnouncementsClient } from './api';\n\n/**\n * @public\n */\nexport const announcementsPlugin = createPlugin({\n id: 'announcements',\n routes: {\n root: rootRouteRef,\n },\n apis: [\n createApiFactory({\n api: announcementsApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n identityApi: identityApiRef,\n errorApi: errorApiRef,\n fetchApi: fetchApiRef,\n },\n factory: ({ discoveryApi, identityApi, errorApi, fetchApi }) => {\n return new AnnouncementsClient({\n discoveryApi: discoveryApi,\n identityApi: identityApi,\n errorApi: errorApi,\n fetchApi: fetchApi,\n });\n },\n }),\n ],\n});\n\n/**\n * @public\n */\nexport const AnnouncementsPage = announcementsPlugin.provide(\n createRoutableExtension({\n name: 'AnnouncementsPage',\n component: () => import('./components/Router').then(m => m.Router),\n mountPoint: rootRouteRef,\n }),\n);\n\n/**\n * @public\n */\nexport const AnnouncementsAdminPortal = announcementsPlugin.provide(\n createRoutableExtension({\n name: 'AnnouncementsAdminPortal',\n component: () => import('./components/Admin').then(m => m.AdminPortal),\n mountPoint: rootRouteRef,\n }),\n);\n\n/**\n * @public\n */\nexport const AnnouncementsTimeline = announcementsPlugin.provide(\n createComponentExtension({\n name: 'AnnouncementsTimeline',\n component: {\n lazy: () => import('./components').then(m => m.AnnouncementsTimeline),\n },\n }),\n);\n\n/**\n * @public\n */\nexport const AnnouncementsCard = announcementsPlugin.provide(\n createComponentExtension({\n name: 'AnnouncementsCard',\n component: {\n lazy: () =>\n import('./components/AnnouncementsCard').then(m => m.AnnouncementsCard),\n },\n }),\n);\n\n/**\n * @public\n */\nexport const NewAnnouncementBanner = announcementsPlugin.provide(\n createComponentExtension({\n name: 'NewAnnouncementBanner',\n component: {\n lazy: () =>\n import('./components/NewAnnouncementBanner').then(\n m => m.NewAnnouncementBanner,\n ),\n },\n }),\n);\n\n/**\n * @public\n */\nexport const AnnouncementSearchResultListItem: (\n props: SearchResultListItemExtensionProps<AnnouncementSearchResultProps>,\n) => JSX.Element | null = announcementsPlugin.provide(\n createSearchResultListItemExtension({\n name: 'AnnouncementSearchResultListItem',\n component: () =>\n import('./components/AnnouncementSearchResultListItem').then(\n m => m.AnnouncementSearchResultListItem,\n ),\n predicate: result => result.type === 'announcements',\n }),\n);\n"],"names":[],"mappings":";;;;;;AAqCO,MAAM,sBAAsB,YAAa,CAAA;AAAA,EAC9C,EAAI,EAAA,eAAA;AAAA,EACJ,MAAQ,EAAA;AAAA,IACN,IAAM,EAAA;AAAA,GACR;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,gBAAiB,CAAA;AAAA,MACf,GAAK,EAAA,mBAAA;AAAA,MACL,IAAM,EAAA;AAAA,QACJ,YAAc,EAAA,eAAA;AAAA,QACd,WAAa,EAAA,cAAA;AAAA,QACb,QAAU,EAAA,WAAA;AAAA,QACV,QAAU,EAAA;AAAA,OACZ;AAAA,MACA,SAAS,CAAC,EAAE,cAAc,WAAa,EAAA,QAAA,EAAU,UAAe,KAAA;AAC9D,QAAA,OAAO,IAAI,mBAAoB,CAAA;AAAA,UAC7B,YAAA;AAAA,UACA,WAAA;AAAA,UACA,QAAA;AAAA,UACA;AAAA,SACD,CAAA;AAAA;AACH,KACD;AAAA;AAEL,CAAC;AAKM,MAAM,oBAAoB,mBAAoB,CAAA,OAAA;AAAA,EACnD,uBAAwB,CAAA;AAAA,IACtB,IAAM,EAAA,mBAAA;AAAA,IACN,SAAA,EAAW,MAAM,OAAO,4BAAqB,EAAE,IAAK,CAAA,CAAA,CAAA,KAAK,EAAE,MAAM,CAAA;AAAA,IACjE,UAAY,EAAA;AAAA,GACb;AACH;
|
|
1
|
+
{"version":3,"file":"plugin.esm.js","sources":["../src/plugin.ts"],"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 {\n createApiFactory,\n createComponentExtension,\n createPlugin,\n createRoutableExtension,\n discoveryApiRef,\n errorApiRef,\n identityApiRef,\n fetchApiRef,\n} from '@backstage/core-plugin-api';\nimport {\n createSearchResultListItemExtension,\n SearchResultListItemExtensionProps,\n} from '@backstage/plugin-search-react';\nimport { AnnouncementSearchResultProps } from './components/AnnouncementSearchResultListItem';\nimport { rootRouteRef } from './routes';\nimport { announcementsApiRef } from '@backstage-community/plugin-announcements-react';\nimport { AnnouncementsClient } from './api';\n\n/**\n * @public\n */\nexport const announcementsPlugin = createPlugin({\n id: 'announcements',\n routes: {\n root: rootRouteRef,\n },\n apis: [\n createApiFactory({\n api: announcementsApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n identityApi: identityApiRef,\n errorApi: errorApiRef,\n fetchApi: fetchApiRef,\n },\n factory: ({ discoveryApi, identityApi, errorApi, fetchApi }) => {\n return new AnnouncementsClient({\n discoveryApi: discoveryApi,\n identityApi: identityApi,\n errorApi: errorApi,\n fetchApi: fetchApi,\n });\n },\n }),\n ],\n});\n\n/**\n * @public\n */\nexport const AnnouncementsPage = announcementsPlugin.provide(\n createRoutableExtension({\n name: 'AnnouncementsPage',\n component: () => import('./components/Router').then(m => m.Router),\n mountPoint: rootRouteRef,\n }),\n);\n\n/**\n * @public\n */\nexport const AnnouncementsAdminPortal = announcementsPlugin.provide(\n createRoutableExtension({\n name: 'AnnouncementsAdminPortal',\n component: () => import('./components/Admin').then(m => m.AdminPortal),\n mountPoint: rootRouteRef,\n }),\n);\n\n/**\n * @public\n */\nexport const AnnouncementsTimeline = announcementsPlugin.provide(\n createComponentExtension({\n name: 'AnnouncementsTimeline',\n component: {\n lazy: () => import('./components').then(m => m.AnnouncementsTimeline),\n },\n }),\n);\n\n/**\n * @public\n */\nexport const AnnouncementsCard = announcementsPlugin.provide(\n createComponentExtension({\n name: 'AnnouncementsCard',\n component: {\n lazy: () =>\n import('./components/AnnouncementsCard').then(m => m.AnnouncementsCard),\n },\n }),\n);\n\n/**\n * @public\n */\nexport const NewAnnouncementBanner = announcementsPlugin.provide(\n createComponentExtension({\n name: 'NewAnnouncementBanner',\n component: {\n lazy: () =>\n import('./components/NewAnnouncementBanner').then(\n m => m.NewAnnouncementBanner,\n ),\n },\n }),\n);\n\n/**\n * @public\n */\nexport const AnnouncementSearchResultListItem: (\n props: SearchResultListItemExtensionProps<AnnouncementSearchResultProps>,\n) => JSX.Element | null = announcementsPlugin.provide(\n createSearchResultListItemExtension({\n name: 'AnnouncementSearchResultListItem',\n component: () =>\n import('./components/AnnouncementSearchResultListItem').then(\n m => m.AnnouncementSearchResultListItem,\n ),\n predicate: result => result.type === 'announcements',\n }),\n);\n"],"names":[],"mappings":";;;;;;AAqCO,MAAM,sBAAsB,YAAa,CAAA;AAAA,EAC9C,EAAI,EAAA,eAAA;AAAA,EACJ,MAAQ,EAAA;AAAA,IACN,IAAM,EAAA;AAAA,GACR;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,gBAAiB,CAAA;AAAA,MACf,GAAK,EAAA,mBAAA;AAAA,MACL,IAAM,EAAA;AAAA,QACJ,YAAc,EAAA,eAAA;AAAA,QACd,WAAa,EAAA,cAAA;AAAA,QACb,QAAU,EAAA,WAAA;AAAA,QACV,QAAU,EAAA;AAAA,OACZ;AAAA,MACA,SAAS,CAAC,EAAE,cAAc,WAAa,EAAA,QAAA,EAAU,UAAe,KAAA;AAC9D,QAAA,OAAO,IAAI,mBAAoB,CAAA;AAAA,UAC7B,YAAA;AAAA,UACA,WAAA;AAAA,UACA,QAAA;AAAA,UACA;AAAA,SACD,CAAA;AAAA;AACH,KACD;AAAA;AAEL,CAAC;AAKM,MAAM,oBAAoB,mBAAoB,CAAA,OAAA;AAAA,EACnD,uBAAwB,CAAA;AAAA,IACtB,IAAM,EAAA,mBAAA;AAAA,IACN,SAAA,EAAW,MAAM,OAAO,4BAAqB,EAAE,IAAK,CAAA,CAAA,CAAA,KAAK,EAAE,MAAM,CAAA;AAAA,IACjE,UAAY,EAAA;AAAA,GACb;AACH;AAKO,MAAM,2BAA2B,mBAAoB,CAAA,OAAA;AAAA,EAC1D,uBAAwB,CAAA;AAAA,IACtB,IAAM,EAAA,0BAAA;AAAA,IACN,SAAA,EAAW,MAAM,OAAO,iCAAoB,EAAE,IAAK,CAAA,CAAA,CAAA,KAAK,EAAE,WAAW,CAAA;AAAA,IACrE,UAAY,EAAA;AAAA,GACb;AACH;AAKO,MAAM,wBAAwB,mBAAoB,CAAA,OAAA;AAAA,EACvD,wBAAyB,CAAA;AAAA,IACvB,IAAM,EAAA,uBAAA;AAAA,IACN,SAAW,EAAA;AAAA,MACT,IAAA,EAAM,MAAM,OAAO,2BAAc,EAAE,IAAK,CAAA,CAAA,CAAA,KAAK,EAAE,qBAAqB;AAAA;AACtE,GACD;AACH;AAKO,MAAM,oBAAoB,mBAAoB,CAAA,OAAA;AAAA,EACnD,wBAAyB,CAAA;AAAA,IACvB,IAAM,EAAA,mBAAA;AAAA,IACN,SAAW,EAAA;AAAA,MACT,IAAA,EAAM,MACJ,OAAO,6CAAgC,EAAE,IAAK,CAAA,CAAA,CAAA,KAAK,EAAE,iBAAiB;AAAA;AAC1E,GACD;AACH;AAKO,MAAM,wBAAwB,mBAAoB,CAAA,OAAA;AAAA,EACvD,wBAAyB,CAAA;AAAA,IACvB,IAAM,EAAA,uBAAA;AAAA,IACN,SAAW,EAAA;AAAA,MACT,IAAM,EAAA,MACJ,OAAO,iDAAoC,CAAE,CAAA,IAAA;AAAA,QAC3C,OAAK,CAAE,CAAA;AAAA;AACT;AACJ,GACD;AACH;AAKO,MAAM,mCAEa,mBAAoB,CAAA,OAAA;AAAA,EAC5C,mCAAoC,CAAA;AAAA,IAClC,IAAM,EAAA,kCAAA;AAAA,IACN,SAAW,EAAA,MACT,OAAO,4DAA+C,CAAE,CAAA,IAAA;AAAA,MACtD,OAAK,CAAE,CAAA;AAAA,KACT;AAAA,IACF,SAAA,EAAW,CAAU,MAAA,KAAA,MAAA,CAAO,IAAS,KAAA;AAAA,GACtC;AACH;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@backstage-community/plugin-announcements",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"main": "./dist/index.esm.js",
|
|
5
5
|
"types": "./dist/index.d.ts",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -58,8 +58,8 @@
|
|
|
58
58
|
"postpack": "backstage-cli package postpack"
|
|
59
59
|
},
|
|
60
60
|
"dependencies": {
|
|
61
|
-
"@backstage-community/plugin-announcements-common": "^0.1.
|
|
62
|
-
"@backstage-community/plugin-announcements-react": "^0.1.
|
|
61
|
+
"@backstage-community/plugin-announcements-common": "^0.1.3",
|
|
62
|
+
"@backstage-community/plugin-announcements-react": "^0.1.3",
|
|
63
63
|
"@backstage/catalog-model": "^1.7.2",
|
|
64
64
|
"@backstage/core-app-api": "^1.15.3",
|
|
65
65
|
"@backstage/core-compat-api": "^0.3.4",
|