@drodil/backstage-plugin-qeta 3.59.10 → 4.0.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.
Files changed (127) hide show
  1. package/README.md +6 -11
  2. package/config.schema.json +58 -0
  3. package/dist/components/ArticlePage/ArticlePage.esm.js +61 -15
  4. package/dist/components/ArticlePage/ArticlePage.esm.js.map +1 -1
  5. package/dist/components/ArticlesPage/ArticlesPage.esm.js +9 -22
  6. package/dist/components/ArticlesPage/ArticlesPage.esm.js.map +1 -1
  7. package/dist/components/AskPage/AskPage.esm.js +10 -7
  8. package/dist/components/AskPage/AskPage.esm.js.map +1 -1
  9. package/dist/components/CollectionCreatePage/CollectionCreatePage.esm.js +8 -5
  10. package/dist/components/CollectionCreatePage/CollectionCreatePage.esm.js.map +1 -1
  11. package/dist/components/CollectionPage/CollectionPage.esm.js +47 -87
  12. package/dist/components/CollectionPage/CollectionPage.esm.js.map +1 -1
  13. package/dist/components/CollectionsPage/CollectionsPage.esm.js +8 -5
  14. package/dist/components/CollectionsPage/CollectionsPage.esm.js.map +1 -1
  15. package/dist/components/ContentHealthCard/ContentHealthCard.esm.js +61 -89
  16. package/dist/components/ContentHealthCard/ContentHealthCard.esm.js.map +1 -1
  17. package/dist/components/ContentHealthCard/ContentHealthCard.module.css.esm.js +8 -0
  18. package/dist/components/ContentHealthCard/ContentHealthCard.module.css.esm.js.map +1 -0
  19. package/dist/components/ContentHealthCard/ReviewList.esm.js +27 -60
  20. package/dist/components/ContentHealthCard/ReviewList.esm.js.map +1 -1
  21. package/dist/components/ContentHealthCard/ReviewList.module.css.esm.js +8 -0
  22. package/dist/components/ContentHealthCard/ReviewList.module.css.esm.js.map +1 -0
  23. package/dist/components/CreateLinkPage/CreateLinkPage.esm.js +9 -6
  24. package/dist/components/CreateLinkPage/CreateLinkPage.esm.js.map +1 -1
  25. package/dist/components/EntityPage/EntityPage.esm.js +48 -58
  26. package/dist/components/EntityPage/EntityPage.esm.js.map +1 -1
  27. package/dist/components/EntityPostsContent/EntityPostsContent.esm.js +2 -3
  28. package/dist/components/EntityPostsContent/EntityPostsContent.esm.js.map +1 -1
  29. package/dist/components/FavoritePage/FavoritePage.esm.js +3 -14
  30. package/dist/components/FavoritePage/FavoritePage.esm.js.map +1 -1
  31. package/dist/components/HomePage/HomePage.esm.js +17 -60
  32. package/dist/components/HomePage/HomePage.esm.js.map +1 -1
  33. package/dist/components/HomePage/HomePage.module.css.esm.js +8 -0
  34. package/dist/components/HomePage/HomePage.module.css.esm.js.map +1 -0
  35. package/dist/components/LinkPage/LinkPage.esm.js +60 -61
  36. package/dist/components/LinkPage/LinkPage.esm.js.map +1 -1
  37. package/dist/components/LinksPage/LinksPage.esm.js +9 -16
  38. package/dist/components/LinksPage/LinksPage.esm.js.map +1 -1
  39. package/dist/components/ModeratorPage/ModeratorPage.esm.js +19 -29
  40. package/dist/components/ModeratorPage/ModeratorPage.esm.js.map +1 -1
  41. package/dist/components/ModeratorPage/ModeratorPage.module.css.esm.js +8 -0
  42. package/dist/components/ModeratorPage/ModeratorPage.module.css.esm.js.map +1 -0
  43. package/dist/components/QetaPage/QetaPage.esm.js +187 -239
  44. package/dist/components/QetaPage/QetaPage.esm.js.map +1 -1
  45. package/dist/components/QetaPage/QetaPage.module.css.esm.js +8 -0
  46. package/dist/components/QetaPage/QetaPage.module.css.esm.js.map +1 -0
  47. package/dist/components/QetaSearchResultListItem/QetaSearchResultListItem.esm.js +67 -78
  48. package/dist/components/QetaSearchResultListItem/QetaSearchResultListItem.esm.js.map +1 -1
  49. package/dist/components/QetaSearchResultListItem/QetaSearchResultListItem.module.css.esm.js +8 -0
  50. package/dist/components/QetaSearchResultListItem/QetaSearchResultListItem.module.css.esm.js.map +1 -0
  51. package/dist/components/QuestionPage/QuestionPage.esm.js +122 -97
  52. package/dist/components/QuestionPage/QuestionPage.esm.js.map +1 -1
  53. package/dist/components/QuestionsPage/QuestionsPage.esm.js +8 -5
  54. package/dist/components/QuestionsPage/QuestionsPage.esm.js.map +1 -1
  55. package/dist/components/ReviewPage/ReviewPage.esm.js +53 -18
  56. package/dist/components/ReviewPage/ReviewPage.esm.js.map +1 -1
  57. package/dist/components/RightContent/ArticlesRightContent.esm.js +2 -2
  58. package/dist/components/RightContent/ArticlesRightContent.esm.js.map +1 -1
  59. package/dist/components/RightContent/DefaultRightContent.esm.js +2 -2
  60. package/dist/components/RightContent/DefaultRightContent.esm.js.map +1 -1
  61. package/dist/components/RightContent/EntityRightContent.esm.js +2 -2
  62. package/dist/components/RightContent/EntityRightContent.esm.js.map +1 -1
  63. package/dist/components/RightContent/LinkedPosts.esm.js +5 -19
  64. package/dist/components/RightContent/LinkedPosts.esm.js.map +1 -1
  65. package/dist/components/RightContent/LinkedPosts.module.css.esm.js +8 -0
  66. package/dist/components/RightContent/LinkedPosts.module.css.esm.js.map +1 -0
  67. package/dist/components/RightContent/LinksRightContent.esm.js +2 -2
  68. package/dist/components/RightContent/LinksRightContent.esm.js.map +1 -1
  69. package/dist/components/RightContent/PostRightContent.esm.js +4 -4
  70. package/dist/components/RightContent/PostRightContent.esm.js.map +1 -1
  71. package/dist/components/RightContent/QuestionsRightContent.esm.js +2 -2
  72. package/dist/components/RightContent/QuestionsRightContent.esm.js.map +1 -1
  73. package/dist/components/RightContent/RightContent.esm.js +46 -61
  74. package/dist/components/RightContent/RightContent.esm.js.map +1 -1
  75. package/dist/components/RightContent/RightContent.module.css.esm.js +8 -0
  76. package/dist/components/RightContent/RightContent.module.css.esm.js.map +1 -0
  77. package/dist/components/RightContent/SimilarQuestions.esm.js +3 -16
  78. package/dist/components/RightContent/SimilarQuestions.esm.js.map +1 -1
  79. package/dist/components/RightContent/SimilarQuestions.module.css.esm.js +8 -0
  80. package/dist/components/RightContent/SimilarQuestions.module.css.esm.js.map +1 -0
  81. package/dist/components/RightContent/TagRightContent.esm.js +2 -2
  82. package/dist/components/RightContent/TagRightContent.esm.js.map +1 -1
  83. package/dist/components/SettingsPage/SettingsPage.esm.js +198 -200
  84. package/dist/components/SettingsPage/SettingsPage.esm.js.map +1 -1
  85. package/dist/components/SettingsPage/SettingsPage.module.css.esm.js +8 -0
  86. package/dist/components/SettingsPage/SettingsPage.module.css.esm.js.map +1 -0
  87. package/dist/components/Statistics/GlobalStatsContent.esm.js +5 -5
  88. package/dist/components/Statistics/GlobalStatsContent.esm.js.map +1 -1
  89. package/dist/components/Statistics/StatisticsPage.esm.js +21 -20
  90. package/dist/components/Statistics/StatisticsPage.esm.js.map +1 -1
  91. package/dist/components/Statistics/StatisticsPage.module.css.esm.js +8 -0
  92. package/dist/components/Statistics/StatisticsPage.module.css.esm.js.map +1 -0
  93. package/dist/components/TagPage/TagPage.esm.js +58 -87
  94. package/dist/components/TagPage/TagPage.esm.js.map +1 -1
  95. package/dist/components/TechDocsAskQuestionAddon/TechDocsAskQuestionAddon.esm.js +23 -32
  96. package/dist/components/TechDocsAskQuestionAddon/TechDocsAskQuestionAddon.esm.js.map +1 -1
  97. package/dist/components/TechDocsAskQuestionAddon/TechDocsAskQuestionAddon.module.css.esm.js +8 -0
  98. package/dist/components/TechDocsAskQuestionAddon/TechDocsAskQuestionAddon.module.css.esm.js.map +1 -0
  99. package/dist/components/UserPage/UserPage.esm.js +158 -234
  100. package/dist/components/UserPage/UserPage.esm.js.map +1 -1
  101. package/dist/components/UserPage/UserPage.module.css.esm.js +8 -0
  102. package/dist/components/UserPage/UserPage.module.css.esm.js.map +1 -0
  103. package/dist/components/UserPage/UserStatsContent.esm.js +5 -5
  104. package/dist/components/UserPage/UserStatsContent.esm.js.map +1 -1
  105. package/dist/components/UsersPage/UsersPage.esm.js +3 -9
  106. package/dist/components/UsersPage/UsersPage.esm.js.map +1 -1
  107. package/dist/components/WritePage/WritePage.esm.js +9 -6
  108. package/dist/components/WritePage/WritePage.esm.js.map +1 -1
  109. package/dist/index.d.ts +283 -77
  110. package/dist/index.esm.js +262 -7
  111. package/dist/index.esm.js.map +1 -1
  112. package/dist/node_modules_dist/style-inject/dist/style-inject.es.esm.js +29 -0
  113. package/dist/node_modules_dist/style-inject/dist/style-inject.es.esm.js.map +1 -0
  114. package/dist/{package.json.esm.js → plugins/qeta/package.json.esm.js} +8 -13
  115. package/dist/{package.json.esm.js.map → plugins/qeta/package.json.esm.js.map} +1 -1
  116. package/package.json +9 -18
  117. package/dist/alpha.d.ts +0 -255
  118. package/dist/alpha.esm.js +0 -238
  119. package/dist/alpha.esm.js.map +0 -1
  120. package/dist/components/EntityCards/EntityPostsContainerCard.esm.js +0 -13
  121. package/dist/components/EntityCards/EntityPostsContainerCard.esm.js.map +0 -1
  122. package/dist/components/EntityCards/EntityPostsGridCard.esm.js +0 -20
  123. package/dist/components/EntityCards/EntityPostsGridCard.esm.js.map +0 -1
  124. package/dist/components/ReviewPage/index.esm.js +0 -6
  125. package/dist/components/ReviewPage/index.esm.js.map +0 -1
  126. package/dist/plugin.esm.js +0 -84
  127. package/dist/plugin.esm.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"QetaPage.esm.js","sources":["../../../src/components/QetaPage/QetaPage.tsx"],"sourcesContent":["import { Fragment, ReactNode } from 'react';\nimport { Content, Header, Page } from '@backstage/core-components';\nimport { Route, Routes, useLocation } from 'react-router-dom';\nimport { AskPage } from '../AskPage';\nimport { QuestionPage } from '../QuestionPage/QuestionPage';\nimport { TagPage } from '../TagPage/TagPage';\nimport { UserPage } from '../UserPage/UserPage';\nimport { FavoritePage } from '../FavoritePage/FavoritePage';\nimport { StatisticsPage } from '../Statistics';\nimport {\n articleRouteRef,\n articlesRouteRef,\n askRouteRef,\n collectionCreateRouteRef,\n collectionEditRouteRef,\n collectionRouteRef,\n collectionsRouteRef,\n createLinkRouteRef,\n editArticleRouteRef,\n editLinkRouteRef,\n editQuestionRouteRef,\n entitiesRouteRef,\n entityRouteRef,\n favoriteQuestionsRouteRef,\n LeftMenu,\n LeftMenuButton,\n linkRouteRef,\n linksRouteRef,\n moderatorRouteRef,\n QetaProvider,\n questionRouteRef,\n questionsRouteRef,\n reviewRouteRef,\n settingsRouteRef,\n statisticsRouteRef,\n tagRouteRef,\n tagsRouteRef,\n userRouteRef,\n usersRouteRef,\n writeRouteRef,\n} from '@drodil/backstage-plugin-qeta-react';\nimport { QuestionsPage } from '../QuestionsPage/QuestionsPage';\nimport { HomePage } from '../HomePage/HomePage';\nimport { ArticlesPage } from '../ArticlesPage/ArticlesPage';\nimport { WritePage } from '../WritePage/WritePage';\nimport { ArticlePage } from '../ArticlePage/ArticlePage';\nimport { LinksPage } from '../LinksPage/LinksPage';\nimport { LinkPage } from '../LinkPage/LinkPage';\nimport { CreateLinkPage } from '../CreateLinkPage/CreateLinkPage';\nimport { CollectionsPage } from '../CollectionsPage/CollectionsPage';\nimport { CollectionPage } from '../CollectionPage/CollectionPage';\nimport { CollectionCreatePage } from '../CollectionCreatePage/CollectionCreatePage';\nimport { EntityPage } from '../EntityPage/EntityPage';\nimport { UsersPage } from '../UsersPage/UsersPage';\nimport { ModeratorPage } from '../ModeratorPage/ModeratorPage';\nimport { ReviewPage } from '../ReviewPage/ReviewPage';\nimport { SettingsPage } from '../SettingsPage/SettingsPage';\nimport { Box, Container, Grid, makeStyles } from '@material-ui/core';\nimport { useSidebarSettings } from '../../hooks/useSidebarSettings';\nimport { RightContent } from '../RightContent/RightContent';\nimport type { PluggableList } from 'unified';\n\ntype Props = {\n title?: string;\n subtitle?: string;\n headerElements?: ReactNode[];\n themeId?: string;\n headerTooltip?: string;\n headerType?: string;\n headerTypeLink?: string;\n introElement?: ReactNode;\n remarkPlugins?: PluggableList;\n rehypePlugins?: PluggableList;\n};\n\ntype StyleProps = {\n leftCompact: boolean;\n rightCompact: boolean;\n};\n\nconst useStyles = makeStyles(theme => ({\n sidebarColumn: {\n padding: 0,\n transition: 'all 0.2s ease-in-out',\n flexShrink: 0,\n position: 'sticky',\n top: theme.spacing(2),\n alignSelf: 'flex-start',\n maxHeight: 'calc(100dvh - 20px)',\n overflowX: 'hidden',\n [theme.breakpoints.up('lg')]: {\n width: (props: StyleProps) => (props.leftCompact ? 80 : 180),\n minWidth: (props: StyleProps) => (props.leftCompact ? 80 : 180),\n },\n [theme.breakpoints.down('md')]: {\n width: '100%',\n marginBottom: theme.spacing(1),\n position: 'static',\n maxHeight: 'none',\n },\n '-ms-overflow-style': 'none',\n 'scrollbar-width': 'none',\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n },\n rightSidebarColumn: {\n padding: 0,\n transition: 'all 0.2s ease-in-out',\n flexShrink: 0,\n position: 'sticky',\n top: theme.spacing(2),\n alignSelf: 'flex-start',\n maxHeight: 'calc(100vh - 150px)',\n overflowY: 'auto',\n overflowX: 'hidden',\n // Hide scrollbar but keep scrolling functionality\n scrollbarWidth: 'none', // Firefox\n '-ms-overflow-style': 'none', // IE/Edge\n '&::-webkit-scrollbar': {\n display: 'none', // Chrome/Safari/Edge\n },\n [theme.breakpoints.up('lg')]: {\n width: (props: StyleProps) => (props.rightCompact ? 72 : 250),\n minWidth: (props: StyleProps) => (props.rightCompact ? 72 : 250),\n },\n [theme.breakpoints.down('md')]: {\n display: 'none',\n },\n },\n mainColumn: {\n paddingRight: 0,\n minWidth: 0,\n transition: 'all 0.2s ease-in-out',\n [theme.breakpoints.down('md')]: {\n paddingLeft: 0,\n },\n },\n}));\n\nexport const QetaPage = (props?: Props) => {\n const {\n title = 'Q&A',\n subtitle,\n headerElements,\n themeId = 'tool',\n headerTooltip,\n headerType,\n headerTypeLink,\n introElement,\n remarkPlugins,\n rehypePlugins,\n } = props ?? {};\n const { leftCompact, rightCompact, toggleLeft, toggleRight } =\n useSidebarSettings();\n const location = useLocation();\n\n // Hide right sidebar on review and moderator pages\n const hideRightSidebar =\n location.pathname.includes('/review') ||\n location.pathname.includes('/moderate');\n\n const classes = useStyles({\n leftCompact,\n rightCompact,\n });\n\n return (\n <QetaProvider remarkPlugins={remarkPlugins} rehypePlugins={rehypePlugins}>\n <Page themeId={themeId}>\n <Header\n title={title}\n subtitle={subtitle}\n type={headerType}\n typeLink={headerTypeLink}\n tooltip={headerTooltip}\n >\n {headerElements?.map((element, index) => (\n <Fragment key={index}>{element}</Fragment>\n ))}\n </Header>\n <Content className=\"qetaHomePage\">\n {introElement}\n <Container maxWidth=\"xl\">\n <Grid\n container\n spacing={3}\n justifyContent=\"flex-start\"\n alignItems=\"flex-start\"\n >\n <Grid item className={classes.sidebarColumn}>\n <Box display={{ xs: 'block', lg: 'none' }}>\n <LeftMenuButton />\n </Box>\n <Box display={{ xs: 'none', lg: 'block' }}>\n <LeftMenu compact={leftCompact} onToggle={toggleLeft} />\n </Box>\n </Grid>\n <Grid item xs className={classes.mainColumn}>\n <Routes>\n <Route path=\"/\" element={<HomePage />} />\n <Route\n path={questionsRouteRef.path}\n element={<QuestionsPage />}\n />\n <Route path={askRouteRef.path} element={<AskPage />} />\n <Route\n path={articlesRouteRef.path}\n element={<ArticlesPage />}\n />\n <Route path={writeRouteRef.path} element={<WritePage />} />\n <Route path={linksRouteRef.path} element={<LinksPage />} />\n <Route\n path={createLinkRouteRef.path}\n element={<CreateLinkPage />}\n />\n <Route\n path={favoriteQuestionsRouteRef.path}\n element={<FavoritePage />}\n />\n <Route\n path={editQuestionRouteRef.path}\n element={<AskPage />}\n />\n <Route\n path={editArticleRouteRef.path}\n element={<WritePage />}\n />\n <Route\n path={editLinkRouteRef.path}\n element={<CreateLinkPage />}\n />\n <Route\n path={questionRouteRef.path}\n element={<QuestionPage />}\n />\n <Route path={linkRouteRef.path} element={<LinkPage />} />\n <Route\n path={articleRouteRef.path}\n element={<ArticlePage />}\n />\n <Route path={tagsRouteRef.path} element={<TagPage />} />\n <Route path={tagRouteRef.path} element={<TagPage />} />\n <Route path={usersRouteRef.path} element={<UsersPage />} />\n <Route path={userRouteRef.path} element={<UserPage />} />\n <Route\n path={statisticsRouteRef.path}\n element={<StatisticsPage />}\n />\n <Route\n path={collectionsRouteRef.path}\n element={<CollectionsPage />}\n />\n <Route\n path={collectionCreateRouteRef.path}\n element={<CollectionCreatePage />}\n />\n <Route\n path={collectionEditRouteRef.path}\n element={<CollectionCreatePage />}\n />\n <Route\n path={collectionRouteRef.path}\n element={<CollectionPage />}\n />\n <Route\n path={entitiesRouteRef.path}\n element={<EntityPage />}\n />\n <Route path={entityRouteRef.path} element={<EntityPage />} />\n <Route\n path={moderatorRouteRef.path}\n element={<ModeratorPage />}\n />\n <Route path={reviewRouteRef.path} element={<ReviewPage />} />\n <Route\n path={settingsRouteRef.path}\n element={<SettingsPage />}\n />\n </Routes>\n </Grid>\n {!hideRightSidebar && (\n <Grid item className={classes.rightSidebarColumn}>\n <RightContent compact={rightCompact} onToggle={toggleRight} />\n </Grid>\n )}\n </Grid>\n </Container>\n </Content>\n </Page>\n </QetaProvider>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgFA,MAAM,SAAA,GAAY,WAAW,CAAA,KAAA,MAAU;AAAA,EACrC,aAAA,EAAe;AAAA,IACb,OAAA,EAAS,CAAA;AAAA,IACT,UAAA,EAAY,sBAAA;AAAA,IACZ,UAAA,EAAY,CAAA;AAAA,IACZ,QAAA,EAAU,QAAA;AAAA,IACV,GAAA,EAAK,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA;AAAA,IACpB,SAAA,EAAW,YAAA;AAAA,IACX,SAAA,EAAW,qBAAA;AAAA,IACX,SAAA,EAAW,QAAA;AAAA,IACX,CAAC,KAAA,CAAM,WAAA,CAAY,EAAA,CAAG,IAAI,CAAC,GAAG;AAAA,MAC5B,KAAA,EAAO,CAAC,KAAA,KAAuB,KAAA,CAAM,cAAc,EAAA,GAAK,GAAA;AAAA,MACxD,QAAA,EAAU,CAAC,KAAA,KAAuB,KAAA,CAAM,cAAc,EAAA,GAAK;AAAA,KAC7D;AAAA,IACA,CAAC,KAAA,CAAM,WAAA,CAAY,IAAA,CAAK,IAAI,CAAC,GAAG;AAAA,MAC9B,KAAA,EAAO,MAAA;AAAA,MACP,YAAA,EAAc,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA;AAAA,MAC7B,QAAA,EAAU,QAAA;AAAA,MACV,SAAA,EAAW;AAAA,KACb;AAAA,IACA,oBAAA,EAAsB,MAAA;AAAA,IACtB,iBAAA,EAAmB,MAAA;AAAA,IACnB,sBAAA,EAAwB;AAAA,MACtB,OAAA,EAAS;AAAA;AACX,GACF;AAAA,EACA,kBAAA,EAAoB;AAAA,IAClB,OAAA,EAAS,CAAA;AAAA,IACT,UAAA,EAAY,sBAAA;AAAA,IACZ,UAAA,EAAY,CAAA;AAAA,IACZ,QAAA,EAAU,QAAA;AAAA,IACV,GAAA,EAAK,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA;AAAA,IACpB,SAAA,EAAW,YAAA;AAAA,IACX,SAAA,EAAW,qBAAA;AAAA,IACX,SAAA,EAAW,MAAA;AAAA,IACX,SAAA,EAAW,QAAA;AAAA;AAAA,IAEX,cAAA,EAAgB,MAAA;AAAA;AAAA,IAChB,oBAAA,EAAsB,MAAA;AAAA;AAAA,IACtB,sBAAA,EAAwB;AAAA,MACtB,OAAA,EAAS;AAAA;AAAA,KACX;AAAA,IACA,CAAC,KAAA,CAAM,WAAA,CAAY,EAAA,CAAG,IAAI,CAAC,GAAG;AAAA,MAC5B,KAAA,EAAO,CAAC,KAAA,KAAuB,KAAA,CAAM,eAAe,EAAA,GAAK,GAAA;AAAA,MACzD,QAAA,EAAU,CAAC,KAAA,KAAuB,KAAA,CAAM,eAAe,EAAA,GAAK;AAAA,KAC9D;AAAA,IACA,CAAC,KAAA,CAAM,WAAA,CAAY,IAAA,CAAK,IAAI,CAAC,GAAG;AAAA,MAC9B,OAAA,EAAS;AAAA;AACX,GACF;AAAA,EACA,UAAA,EAAY;AAAA,IACV,YAAA,EAAc,CAAA;AAAA,IACd,QAAA,EAAU,CAAA;AAAA,IACV,UAAA,EAAY,sBAAA;AAAA,IACZ,CAAC,KAAA,CAAM,WAAA,CAAY,IAAA,CAAK,IAAI,CAAC,GAAG;AAAA,MAC9B,WAAA,EAAa;AAAA;AACf;AAEJ,CAAA,CAAE,CAAA;AAEK,MAAM,QAAA,GAAW,CAAC,KAAA,KAAkB;AACzC,EAAA,MAAM;AAAA,IACJ,KAAA,GAAQ,KAAA;AAAA,IACR,QAAA;AAAA,IACA,cAAA;AAAA,IACA,OAAA,GAAU,MAAA;AAAA,IACV,aAAA;AAAA,IACA,UAAA;AAAA,IACA,cAAA;AAAA,IACA,YAAA;AAAA,IACA,aAAA;AAAA,IACA;AAAA,GACF,GAAI,SAAS,EAAC;AACd,EAAA,MAAM,EAAE,WAAA,EAAa,YAAA,EAAc,UAAA,EAAY,WAAA,KAC7C,kBAAA,EAAmB;AACrB,EAAA,MAAM,WAAW,WAAA,EAAY;AAG7B,EAAA,MAAM,gBAAA,GACJ,SAAS,QAAA,CAAS,QAAA,CAAS,SAAS,CAAA,IACpC,QAAA,CAAS,QAAA,CAAS,QAAA,CAAS,WAAW,CAAA;AAExC,EAAA,MAAM,UAAU,SAAA,CAAU;AAAA,IACxB,WAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,2BACG,YAAA,EAAA,EAAa,aAAA,EAA8B,aAAA,EAC1C,QAAA,kBAAA,IAAA,CAAC,QAAK,OAAA,EACJ,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,KAAA;AAAA,QACA,QAAA;AAAA,QACA,IAAA,EAAM,UAAA;AAAA,QACN,QAAA,EAAU,cAAA;AAAA,QACV,OAAA,EAAS,aAAA;AAAA,QAER,QAAA,EAAA,cAAA,EAAgB,IAAI,CAAC,OAAA,EAAS,0BAC7B,GAAA,CAAC,QAAA,EAAA,EAAsB,QAAA,EAAA,OAAA,EAAA,EAAR,KAAgB,CAChC;AAAA;AAAA,KACH;AAAA,oBACA,IAAA,CAAC,OAAA,EAAA,EAAQ,SAAA,EAAU,cAAA,EAChB,QAAA,EAAA;AAAA,MAAA,YAAA;AAAA,sBACD,GAAA,CAAC,SAAA,EAAA,EAAU,QAAA,EAAS,IAAA,EAClB,QAAA,kBAAA,IAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAS,IAAA;AAAA,UACT,OAAA,EAAS,CAAA;AAAA,UACT,cAAA,EAAe,YAAA;AAAA,UACf,UAAA,EAAW,YAAA;AAAA,UAEX,QAAA,EAAA;AAAA,4BAAA,IAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAI,IAAA,EAAC,SAAA,EAAW,QAAQ,aAAA,EAC5B,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,GAAA,EAAA,EAAI,OAAA,EAAS,EAAE,EAAA,EAAI,OAAA,EAAS,IAAI,MAAA,EAAO,EACtC,QAAA,kBAAA,GAAA,CAAC,cAAA,EAAA,EAAe,CAAA,EAClB,CAAA;AAAA,8BACA,GAAA,CAAC,GAAA,EAAA,EAAI,OAAA,EAAS,EAAE,IAAI,MAAA,EAAQ,EAAA,EAAI,OAAA,EAAQ,EACtC,8BAAC,QAAA,EAAA,EAAS,OAAA,EAAS,WAAA,EAAa,QAAA,EAAU,YAAY,CAAA,EACxD;AAAA,aAAA,EACF,CAAA;AAAA,4BACA,GAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAI,IAAA,EAAC,EAAA,EAAE,MAAC,SAAA,EAAW,OAAA,CAAQ,UAAA,EAC/B,QAAA,kBAAA,IAAA,CAAC,MAAA,EAAA,EACC,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,SAAM,IAAA,EAAK,GAAA,EAAI,OAAA,kBAAS,GAAA,CAAC,YAAS,CAAA,EAAI,CAAA;AAAA,8BACvC,GAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,MAAM,iBAAA,CAAkB,IAAA;AAAA,kBACxB,OAAA,sBAAU,aAAA,EAAA,EAAc;AAAA;AAAA,eAC1B;AAAA,8BACA,GAAA,CAAC,SAAM,IAAA,EAAM,WAAA,CAAY,MAAM,OAAA,kBAAS,GAAA,CAAC,WAAQ,CAAA,EAAI,CAAA;AAAA,8BACrD,GAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,MAAM,gBAAA,CAAiB,IAAA;AAAA,kBACvB,OAAA,sBAAU,YAAA,EAAA,EAAa;AAAA;AAAA,eACzB;AAAA,8BACA,GAAA,CAAC,SAAM,IAAA,EAAM,aAAA,CAAc,MAAM,OAAA,kBAAS,GAAA,CAAC,aAAU,CAAA,EAAI,CAAA;AAAA,8BACzD,GAAA,CAAC,SAAM,IAAA,EAAM,aAAA,CAAc,MAAM,OAAA,kBAAS,GAAA,CAAC,aAAU,CAAA,EAAI,CAAA;AAAA,8BACzD,GAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,MAAM,kBAAA,CAAmB,IAAA;AAAA,kBACzB,OAAA,sBAAU,cAAA,EAAA,EAAe;AAAA;AAAA,eAC3B;AAAA,8BACA,GAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,MAAM,yBAAA,CAA0B,IAAA;AAAA,kBAChC,OAAA,sBAAU,YAAA,EAAA,EAAa;AAAA;AAAA,eACzB;AAAA,8BACA,GAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,MAAM,oBAAA,CAAqB,IAAA;AAAA,kBAC3B,OAAA,sBAAU,OAAA,EAAA,EAAQ;AAAA;AAAA,eACpB;AAAA,8BACA,GAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,MAAM,mBAAA,CAAoB,IAAA;AAAA,kBAC1B,OAAA,sBAAU,SAAA,EAAA,EAAU;AAAA;AAAA,eACtB;AAAA,8BACA,GAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,MAAM,gBAAA,CAAiB,IAAA;AAAA,kBACvB,OAAA,sBAAU,cAAA,EAAA,EAAe;AAAA;AAAA,eAC3B;AAAA,8BACA,GAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,MAAM,gBAAA,CAAiB,IAAA;AAAA,kBACvB,OAAA,sBAAU,YAAA,EAAA,EAAa;AAAA;AAAA,eACzB;AAAA,8BACA,GAAA,CAAC,SAAM,IAAA,EAAM,YAAA,CAAa,MAAM,OAAA,kBAAS,GAAA,CAAC,YAAS,CAAA,EAAI,CAAA;AAAA,8BACvD,GAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,MAAM,eAAA,CAAgB,IAAA;AAAA,kBACtB,OAAA,sBAAU,WAAA,EAAA,EAAY;AAAA;AAAA,eACxB;AAAA,8BACA,GAAA,CAAC,SAAM,IAAA,EAAM,YAAA,CAAa,MAAM,OAAA,kBAAS,GAAA,CAAC,WAAQ,CAAA,EAAI,CAAA;AAAA,8BACtD,GAAA,CAAC,SAAM,IAAA,EAAM,WAAA,CAAY,MAAM,OAAA,kBAAS,GAAA,CAAC,WAAQ,CAAA,EAAI,CAAA;AAAA,8BACrD,GAAA,CAAC,SAAM,IAAA,EAAM,aAAA,CAAc,MAAM,OAAA,kBAAS,GAAA,CAAC,aAAU,CAAA,EAAI,CAAA;AAAA,8BACzD,GAAA,CAAC,SAAM,IAAA,EAAM,YAAA,CAAa,MAAM,OAAA,kBAAS,GAAA,CAAC,YAAS,CAAA,EAAI,CAAA;AAAA,8BACvD,GAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,MAAM,kBAAA,CAAmB,IAAA;AAAA,kBACzB,OAAA,sBAAU,cAAA,EAAA,EAAe;AAAA;AAAA,eAC3B;AAAA,8BACA,GAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,MAAM,mBAAA,CAAoB,IAAA;AAAA,kBAC1B,OAAA,sBAAU,eAAA,EAAA,EAAgB;AAAA;AAAA,eAC5B;AAAA,8BACA,GAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,MAAM,wBAAA,CAAyB,IAAA;AAAA,kBAC/B,OAAA,sBAAU,oBAAA,EAAA,EAAqB;AAAA;AAAA,eACjC;AAAA,8BACA,GAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,MAAM,sBAAA,CAAuB,IAAA;AAAA,kBAC7B,OAAA,sBAAU,oBAAA,EAAA,EAAqB;AAAA;AAAA,eACjC;AAAA,8BACA,GAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,MAAM,kBAAA,CAAmB,IAAA;AAAA,kBACzB,OAAA,sBAAU,cAAA,EAAA,EAAe;AAAA;AAAA,eAC3B;AAAA,8BACA,GAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,MAAM,gBAAA,CAAiB,IAAA;AAAA,kBACvB,OAAA,sBAAU,UAAA,EAAA,EAAW;AAAA;AAAA,eACvB;AAAA,8BACA,GAAA,CAAC,SAAM,IAAA,EAAM,cAAA,CAAe,MAAM,OAAA,kBAAS,GAAA,CAAC,cAAW,CAAA,EAAI,CAAA;AAAA,8BAC3D,GAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,MAAM,iBAAA,CAAkB,IAAA;AAAA,kBACxB,OAAA,sBAAU,aAAA,EAAA,EAAc;AAAA;AAAA,eAC1B;AAAA,8BACA,GAAA,CAAC,SAAM,IAAA,EAAM,cAAA,CAAe,MAAM,OAAA,kBAAS,GAAA,CAAC,cAAW,CAAA,EAAI,CAAA;AAAA,8BAC3D,GAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,MAAM,gBAAA,CAAiB,IAAA;AAAA,kBACvB,OAAA,sBAAU,YAAA,EAAA,EAAa;AAAA;AAAA;AACzB,aAAA,EACF,CAAA,EACF,CAAA;AAAA,YACC,CAAC,gBAAA,oBACA,GAAA,CAAC,IAAA,EAAA,EAAK,MAAI,IAAA,EAAC,SAAA,EAAW,OAAA,CAAQ,kBAAA,EAC5B,8BAAC,YAAA,EAAA,EAAa,OAAA,EAAS,YAAA,EAAc,QAAA,EAAU,aAAa,CAAA,EAC9D;AAAA;AAAA;AAAA,OAEJ,EACF;AAAA,KAAA,EACF;AAAA,GAAA,EACF,CAAA,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"QetaPage.esm.js","sources":["../../../src/components/QetaPage/QetaPage.tsx"],"sourcesContent":["import { ReactNode } from 'react';\nimport { Content, Page } from '@backstage/core-components';\nimport { Route, Routes, useLocation } from 'react-router-dom';\nimport { AskPage } from '../AskPage';\nimport { QuestionPage } from '../QuestionPage/QuestionPage';\nimport { TagPage } from '../TagPage/TagPage';\nimport { UserPage } from '../UserPage/UserPage';\nimport { FavoritePage } from '../FavoritePage/FavoritePage';\nimport { StatisticsPage } from '../Statistics';\nimport {\n articleRouteRef,\n articlesRouteRef,\n askRouteRef,\n collectionCreateRouteRef,\n collectionEditRouteRef,\n collectionRouteRef,\n collectionsRouteRef,\n createLinkRouteRef,\n editArticleRouteRef,\n editLinkRouteRef,\n editQuestionRouteRef,\n entitiesRouteRef,\n entityRouteRef,\n favoriteQuestionsRouteRef,\n LeftMenu,\n LeftMenuButton,\n linkRouteRef,\n linksRouteRef,\n moderatorRouteRef,\n QetaProvider,\n questionRouteRef,\n questionsRouteRef,\n reviewRouteRef,\n settingsRouteRef,\n statisticsRouteRef,\n tagRouteRef,\n tagsRouteRef,\n userRouteRef,\n usersRouteRef,\n writeRouteRef,\n useQetaConfig,\n} from '@drodil/backstage-plugin-qeta-react';\nimport { QuestionsPage } from '../QuestionsPage/QuestionsPage';\nimport { HomePage } from '../HomePage/HomePage';\nimport { ArticlesPage } from '../ArticlesPage/ArticlesPage';\nimport { WritePage } from '../WritePage/WritePage';\nimport { ArticlePage } from '../ArticlePage/ArticlePage';\nimport { LinksPage } from '../LinksPage/LinksPage';\nimport { LinkPage } from '../LinkPage/LinkPage';\nimport { CreateLinkPage } from '../CreateLinkPage/CreateLinkPage';\nimport { CollectionsPage } from '../CollectionsPage/CollectionsPage';\nimport { CollectionPage } from '../CollectionPage/CollectionPage';\nimport { CollectionCreatePage } from '../CollectionCreatePage/CollectionCreatePage';\nimport { EntityPage } from '../EntityPage/EntityPage';\nimport { UsersPage } from '../UsersPage/UsersPage';\nimport { ModeratorPage } from '../ModeratorPage/ModeratorPage';\nimport { ReviewPage } from '../ReviewPage/ReviewPage';\nimport { SettingsPage } from '../SettingsPage/SettingsPage';\nimport { Box, useBreakpoint } from '@backstage/ui';\nimport { useSidebarSettings } from '../../hooks/useSidebarSettings';\nimport { RightContent } from '../RightContent/RightContent';\nimport type { PluggableList } from 'unified';\nimport styles from './QetaPage.module.css';\n\ntype Props = {\n themeId?: string;\n introElement?: ReactNode;\n remarkPlugins?: PluggableList;\n rehypePlugins?: PluggableList;\n};\n\nexport const QetaPage = (props?: Props) => {\n const {\n themeId = 'tool',\n introElement,\n remarkPlugins,\n rehypePlugins,\n } = props ?? {};\n const { leftCompact, rightCompact, toggleLeft, toggleRight } =\n useSidebarSettings();\n const { disabled } = useQetaConfig();\n const location = useLocation();\n const { down } = useBreakpoint();\n const isSmallScreen = down('lg');\n\n // Hide right sidebar on review and moderator pages\n const hideRightSidebar =\n location.pathname.includes('/review') ||\n location.pathname.includes('/moderate');\n\n return (\n <QetaProvider remarkPlugins={remarkPlugins} rehypePlugins={rehypePlugins}>\n <Page themeId={themeId}>\n <Content className=\"qetaHomePage\">\n {introElement}\n <Box className={styles.container}>\n <Box className={styles.row}>\n <Box\n className={`${styles.sidebarColumn} ${\n leftCompact ? styles.sidebarColumnCompact : ''\n }`}\n >\n {isSmallScreen ? (\n <LeftMenuButton />\n ) : (\n <LeftMenu compact={leftCompact} onToggle={toggleLeft} />\n )}\n </Box>\n <Box className={styles.mainColumn}>\n <Routes>\n <Route path=\"/\" element={<HomePage />} />\n {!disabled.questions && (\n <>\n <Route\n path={questionsRouteRef.path}\n element={<QuestionsPage />}\n />\n <Route path={askRouteRef.path} element={<AskPage />} />\n <Route\n path={editQuestionRouteRef.path}\n element={<AskPage />}\n />\n <Route\n path={questionRouteRef.path}\n element={<QuestionPage />}\n />\n </>\n )}\n {!disabled.articles && (\n <>\n <Route\n path={articlesRouteRef.path}\n element={<ArticlesPage />}\n />\n <Route\n path={writeRouteRef.path}\n element={<WritePage />}\n />\n <Route\n path={editArticleRouteRef.path}\n element={<WritePage />}\n />\n <Route\n path={articleRouteRef.path}\n element={<ArticlePage />}\n />\n </>\n )}\n {!disabled.links && (\n <>\n <Route\n path={linksRouteRef.path}\n element={<LinksPage />}\n />\n <Route\n path={createLinkRouteRef.path}\n element={<CreateLinkPage />}\n />\n <Route\n path={editLinkRouteRef.path}\n element={<CreateLinkPage />}\n />\n <Route path={linkRouteRef.path} element={<LinkPage />} />\n </>\n )}\n <Route\n path={favoriteQuestionsRouteRef.path}\n element={<FavoritePage />}\n />\n {!disabled.tags && (\n <>\n <Route path={tagsRouteRef.path} element={<TagPage />} />\n <Route path={tagRouteRef.path} element={<TagPage />} />\n </>\n )}\n <Route path={usersRouteRef.path} element={<UsersPage />} />\n <Route path={userRouteRef.path} element={<UserPage />} />\n <Route\n path={statisticsRouteRef.path}\n element={<StatisticsPage />}\n />\n {!disabled.collections && (\n <>\n <Route\n path={collectionsRouteRef.path}\n element={<CollectionsPage />}\n />\n <Route\n path={collectionCreateRouteRef.path}\n element={<CollectionCreatePage />}\n />\n <Route\n path={collectionEditRouteRef.path}\n element={<CollectionCreatePage />}\n />\n <Route\n path={collectionRouteRef.path}\n element={<CollectionPage />}\n />\n </>\n )}\n {!disabled.entities && (\n <>\n <Route\n path={entitiesRouteRef.path}\n element={<EntityPage />}\n />\n <Route\n path={entityRouteRef.path}\n element={<EntityPage />}\n />\n </>\n )}\n <Route\n path={moderatorRouteRef.path}\n element={<ModeratorPage />}\n />\n <Route path={reviewRouteRef.path} element={<ReviewPage />} />\n <Route\n path={settingsRouteRef.path}\n element={<SettingsPage />}\n />\n </Routes>\n </Box>\n {!hideRightSidebar && (\n <Box\n className={`${styles.rightSidebarColumn} ${\n rightCompact ? styles.rightSidebarColumnCompact : ''\n }`}\n >\n <RightContent compact={rightCompact} onToggle={toggleRight} />\n </Box>\n )}\n </Box>\n </Box>\n </Content>\n </Page>\n </QetaProvider>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuEO,MAAM,QAAA,GAAW,CAAC,KAAA,KAAkB;AACzC,EAAA,MAAM;AAAA,IACJ,OAAA,GAAU,MAAA;AAAA,IACV,YAAA;AAAA,IACA,aAAA;AAAA,IACA;AAAA,GACF,GAAI,SAAS,EAAC;AACd,EAAA,MAAM,EAAE,WAAA,EAAa,YAAA,EAAc,UAAA,EAAY,WAAA,KAC7C,kBAAA,EAAmB;AACrB,EAAA,MAAM,EAAE,QAAA,EAAS,GAAI,aAAA,EAAc;AACnC,EAAA,MAAM,WAAW,WAAA,EAAY;AAC7B,EAAA,MAAM,EAAE,IAAA,EAAK,GAAI,aAAA,EAAc;AAC/B,EAAA,MAAM,aAAA,GAAgB,KAAK,IAAI,CAAA;AAG/B,EAAA,MAAM,gBAAA,GACJ,SAAS,QAAA,CAAS,QAAA,CAAS,SAAS,CAAA,IACpC,QAAA,CAAS,QAAA,CAAS,QAAA,CAAS,WAAW,CAAA;AAExC,EAAA,uBACE,GAAA,CAAC,YAAA,EAAA,EAAa,aAAA,EAA8B,aAAA,EAC1C,QAAA,kBAAA,GAAA,CAAC,QAAK,OAAA,EACJ,QAAA,kBAAA,IAAA,CAAC,OAAA,EAAA,EAAQ,SAAA,EAAU,cAAA,EAChB,QAAA,EAAA;AAAA,IAAA,YAAA;AAAA,oBACD,GAAA,CAAC,OAAI,SAAA,EAAW,MAAA,CAAO,WACrB,QAAA,kBAAA,IAAA,CAAC,GAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,GAAA,EACrB,QAAA,EAAA;AAAA,sBAAA,GAAA;AAAA,QAAC,GAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,GAAG,MAAA,CAAO,aAAa,IAChC,WAAA,GAAc,MAAA,CAAO,uBAAuB,EAC9C,CAAA,CAAA;AAAA,UAEC,QAAA,EAAA,aAAA,uBACE,cAAA,EAAA,EAAe,CAAA,uBAEf,QAAA,EAAA,EAAS,OAAA,EAAS,WAAA,EAAa,QAAA,EAAU,UAAA,EAAY;AAAA;AAAA,OAE1D;AAAA,0BACC,GAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,UAAA,EACrB,+BAAC,MAAA,EAAA,EACC,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,SAAM,IAAA,EAAK,GAAA,EAAI,OAAA,kBAAS,GAAA,CAAC,YAAS,CAAA,EAAI,CAAA;AAAA,QACtC,CAAC,QAAA,CAAS,SAAA,oBACT,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,0BAAA,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,MAAM,iBAAA,CAAkB,IAAA;AAAA,cACxB,OAAA,sBAAU,aAAA,EAAA,EAAc;AAAA;AAAA,WAC1B;AAAA,0BACA,GAAA,CAAC,SAAM,IAAA,EAAM,WAAA,CAAY,MAAM,OAAA,kBAAS,GAAA,CAAC,WAAQ,CAAA,EAAI,CAAA;AAAA,0BACrD,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,MAAM,oBAAA,CAAqB,IAAA;AAAA,cAC3B,OAAA,sBAAU,OAAA,EAAA,EAAQ;AAAA;AAAA,WACpB;AAAA,0BACA,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,MAAM,gBAAA,CAAiB,IAAA;AAAA,cACvB,OAAA,sBAAU,YAAA,EAAA,EAAa;AAAA;AAAA;AACzB,SAAA,EACF,CAAA;AAAA,QAED,CAAC,QAAA,CAAS,QAAA,oBACT,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,0BAAA,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,MAAM,gBAAA,CAAiB,IAAA;AAAA,cACvB,OAAA,sBAAU,YAAA,EAAA,EAAa;AAAA;AAAA,WACzB;AAAA,0BACA,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,MAAM,aAAA,CAAc,IAAA;AAAA,cACpB,OAAA,sBAAU,SAAA,EAAA,EAAU;AAAA;AAAA,WACtB;AAAA,0BACA,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,MAAM,mBAAA,CAAoB,IAAA;AAAA,cAC1B,OAAA,sBAAU,SAAA,EAAA,EAAU;AAAA;AAAA,WACtB;AAAA,0BACA,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,MAAM,eAAA,CAAgB,IAAA;AAAA,cACtB,OAAA,sBAAU,WAAA,EAAA,EAAY;AAAA;AAAA;AACxB,SAAA,EACF,CAAA;AAAA,QAED,CAAC,QAAA,CAAS,KAAA,oBACT,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,0BAAA,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,MAAM,aAAA,CAAc,IAAA;AAAA,cACpB,OAAA,sBAAU,SAAA,EAAA,EAAU;AAAA;AAAA,WACtB;AAAA,0BACA,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,MAAM,kBAAA,CAAmB,IAAA;AAAA,cACzB,OAAA,sBAAU,cAAA,EAAA,EAAe;AAAA;AAAA,WAC3B;AAAA,0BACA,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,MAAM,gBAAA,CAAiB,IAAA;AAAA,cACvB,OAAA,sBAAU,cAAA,EAAA,EAAe;AAAA;AAAA,WAC3B;AAAA,0BACA,GAAA,CAAC,SAAM,IAAA,EAAM,YAAA,CAAa,MAAM,OAAA,kBAAS,GAAA,CAAC,YAAS,CAAA,EAAI;AAAA,SAAA,EACzD,CAAA;AAAA,wBAEF,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,MAAM,yBAAA,CAA0B,IAAA;AAAA,YAChC,OAAA,sBAAU,YAAA,EAAA,EAAa;AAAA;AAAA,SACzB;AAAA,QACC,CAAC,QAAA,CAAS,IAAA,oBACT,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,SAAM,IAAA,EAAM,YAAA,CAAa,MAAM,OAAA,kBAAS,GAAA,CAAC,WAAQ,CAAA,EAAI,CAAA;AAAA,0BACtD,GAAA,CAAC,SAAM,IAAA,EAAM,WAAA,CAAY,MAAM,OAAA,kBAAS,GAAA,CAAC,WAAQ,CAAA,EAAI;AAAA,SAAA,EACvD,CAAA;AAAA,wBAEF,GAAA,CAAC,SAAM,IAAA,EAAM,aAAA,CAAc,MAAM,OAAA,kBAAS,GAAA,CAAC,aAAU,CAAA,EAAI,CAAA;AAAA,wBACzD,GAAA,CAAC,SAAM,IAAA,EAAM,YAAA,CAAa,MAAM,OAAA,kBAAS,GAAA,CAAC,YAAS,CAAA,EAAI,CAAA;AAAA,wBACvD,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,MAAM,kBAAA,CAAmB,IAAA;AAAA,YACzB,OAAA,sBAAU,cAAA,EAAA,EAAe;AAAA;AAAA,SAC3B;AAAA,QACC,CAAC,QAAA,CAAS,WAAA,oBACT,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,0BAAA,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,MAAM,mBAAA,CAAoB,IAAA;AAAA,cAC1B,OAAA,sBAAU,eAAA,EAAA,EAAgB;AAAA;AAAA,WAC5B;AAAA,0BACA,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,MAAM,wBAAA,CAAyB,IAAA;AAAA,cAC/B,OAAA,sBAAU,oBAAA,EAAA,EAAqB;AAAA;AAAA,WACjC;AAAA,0BACA,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,MAAM,sBAAA,CAAuB,IAAA;AAAA,cAC7B,OAAA,sBAAU,oBAAA,EAAA,EAAqB;AAAA;AAAA,WACjC;AAAA,0BACA,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,MAAM,kBAAA,CAAmB,IAAA;AAAA,cACzB,OAAA,sBAAU,cAAA,EAAA,EAAe;AAAA;AAAA;AAC3B,SAAA,EACF,CAAA;AAAA,QAED,CAAC,QAAA,CAAS,QAAA,oBACT,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,0BAAA,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,MAAM,gBAAA,CAAiB,IAAA;AAAA,cACvB,OAAA,sBAAU,UAAA,EAAA,EAAW;AAAA;AAAA,WACvB;AAAA,0BACA,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,MAAM,cAAA,CAAe,IAAA;AAAA,cACrB,OAAA,sBAAU,UAAA,EAAA,EAAW;AAAA;AAAA;AACvB,SAAA,EACF,CAAA;AAAA,wBAEF,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,MAAM,iBAAA,CAAkB,IAAA;AAAA,YACxB,OAAA,sBAAU,aAAA,EAAA,EAAc;AAAA;AAAA,SAC1B;AAAA,wBACA,GAAA,CAAC,SAAM,IAAA,EAAM,cAAA,CAAe,MAAM,OAAA,kBAAS,GAAA,CAAC,cAAW,CAAA,EAAI,CAAA;AAAA,wBAC3D,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,MAAM,gBAAA,CAAiB,IAAA;AAAA,YACvB,OAAA,sBAAU,YAAA,EAAA,EAAa;AAAA;AAAA;AACzB,OAAA,EACF,CAAA,EACF,CAAA;AAAA,MACC,CAAC,gBAAA,oBACA,GAAA;AAAA,QAAC,GAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,GAAG,MAAA,CAAO,kBAAkB,IACrC,YAAA,GAAe,MAAA,CAAO,4BAA4B,EACpD,CAAA,CAAA;AAAA,UAEA,QAAA,kBAAA,GAAA,CAAC,YAAA,EAAA,EAAa,OAAA,EAAS,YAAA,EAAc,UAAU,WAAA,EAAa;AAAA;AAAA;AAC9D,KAAA,EAEJ,CAAA,EACF;AAAA,GAAA,EACF,GACF,CAAA,EACF,CAAA;AAEJ;;;;"}
@@ -0,0 +1,8 @@
1
+ import styleInject from '../../node_modules_dist/style-inject/dist/style-inject.es.esm.js';
2
+
3
+ var css_248z = "@layer components {\n .QetaPage_container__dbdc504f36 {\n width: 100%;\n max-width: 1920px;\n margin: 0 auto;\n }\n\n .QetaPage_row__dbdc504f36 {\n display: flex;\n align-items: flex-start;\n justify-content: flex-start;\n gap: var(--bui-space-6);\n }\n\n .QetaPage_sidebarColumn__dbdc504f36 {\n padding: 0;\n transition: all 0.2s ease-in-out;\n flex-shrink: 0;\n position: sticky;\n top: var(--bui-space-4);\n align-self: flex-start;\n max-height: calc(100dvh - 20px);\n overflow-x: hidden;\n scrollbar-width: none;\n -ms-overflow-style: none;\n }\n\n .QetaPage_sidebarColumn__dbdc504f36::-webkit-scrollbar {\n display: none;\n }\n\n .QetaPage_rightSidebarColumn__dbdc504f36 {\n padding: 0;\n transition: all 0.2s ease-in-out;\n flex-shrink: 0;\n position: sticky;\n top: var(--bui-space-4);\n align-self: flex-start;\n max-height: calc(100vh - 150px);\n overflow-y: auto;\n overflow-x: hidden;\n scrollbar-width: none;\n -ms-overflow-style: none;\n }\n\n .QetaPage_rightSidebarColumn__dbdc504f36::-webkit-scrollbar {\n display: none;\n }\n\n .QetaPage_mainColumn__dbdc504f36 {\n padding-right: 0;\n min-width: 0;\n flex: 1 1 auto;\n transition: all 0.2s ease-in-out;\n }\n\n /*\n * BUI's <Header> wraps its top/content/bottom sections in its own\n * Container, which applies horizontal padding intended for full-bleed\n * placement directly under <Page>. Since Header is rendered inside\n * <Content> here (which already applies the page gutter), this results\n * in double horizontal padding around the header specifically. Zero it\n * out so Header's content aligns with the rest of the page content.\n */\n .QetaPage_mainColumn__dbdc504f36 .bui-HeaderTop,\n .QetaPage_mainColumn__dbdc504f36 .bui-HeaderContent,\n .QetaPage_mainColumn__dbdc504f36 .bui-HeaderBottom {\n padding-left: 0;\n padding-right: 0;\n }\n\n @media (min-width: 1280px) {\n .QetaPage_sidebarColumn__dbdc504f36 {\n width: 180px;\n min-width: 180px;\n }\n\n .QetaPage_sidebarColumnCompact__dbdc504f36 {\n width: 80px;\n min-width: 80px;\n }\n\n .QetaPage_rightSidebarColumn__dbdc504f36 {\n width: 250px;\n min-width: 250px;\n }\n\n .QetaPage_rightSidebarColumnCompact__dbdc504f36 {\n width: 72px;\n min-width: 72px;\n }\n }\n\n @media (max-width: 959px) {\n .QetaPage_row__dbdc504f36 {\n flex-wrap: wrap;\n }\n\n .QetaPage_sidebarColumn__dbdc504f36 {\n width: 100%;\n /* No margin-bottom here: .row's gap (var(--bui-space-6)) already\n provides vertical spacing between wrapped flex items, so an\n extra margin would double up the gutter with a different token. */\n position: static;\n max-height: none;\n }\n\n .QetaPage_mainColumn__dbdc504f36 {\n padding-left: 0;\n }\n\n .QetaPage_rightSidebarColumn__dbdc504f36 {\n display: none;\n }\n }\n}\n";
4
+ var styles = {"container":"QetaPage_container__dbdc504f36","row":"QetaPage_row__dbdc504f36","sidebarColumn":"QetaPage_sidebarColumn__dbdc504f36","rightSidebarColumn":"QetaPage_rightSidebarColumn__dbdc504f36","mainColumn":"QetaPage_mainColumn__dbdc504f36","sidebarColumnCompact":"QetaPage_sidebarColumnCompact__dbdc504f36","rightSidebarColumnCompact":"QetaPage_rightSidebarColumnCompact__dbdc504f36"};
5
+ styleInject(css_248z);
6
+
7
+ export { styles as default };
8
+ //# sourceMappingURL=QetaPage.module.css.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QetaPage.module.css.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -1,33 +1,18 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { DateTime } from 'luxon';
3
- import { Link } from '@backstage/core-components';
3
+ import { Link } from 'react-router-dom';
4
+ import { Text } from '@backstage/ui';
4
5
  import { HighlightedSearchResultText } from '@backstage/plugin-search-react';
5
- import CollectionsBookmarkIcon from '@material-ui/icons/CollectionsBookmark';
6
- import { ListItem, ListItemIcon, ListItemText, Divider, makeStyles } from '@material-ui/core';
7
6
  import { selectByPostType, truncate, removeMarkdownFormatting } from '@drodil/backstage-plugin-qeta-common';
8
7
  import { EntityRefLink } from '@backstage/plugin-catalog-react';
9
- import HelpOutlined from '@material-ui/icons/HelpOutlined';
10
- import PlaylistPlayIcon from '@material-ui/icons/PlaylistPlay';
11
8
  import DOMPurify from 'dompurify';
12
9
  import { capitalize } from 'lodash';
13
10
  import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
14
11
  import { qetaTranslationRef } from '@drodil/backstage-plugin-qeta-react';
15
- import LinkIcon from '@material-ui/icons/Link';
16
12
  import { parseEntityRef } from '@backstage/catalog-model';
13
+ import { RiQuestionLine, RiBookOpenLine, RiLink, RiPlayList2Line } from '@remixicon/react';
14
+ import styles from './QetaSearchResultListItem.module.css.esm.js';
17
15
 
18
- const useStyles = makeStyles({
19
- excerptText: {
20
- display: "block",
21
- marginTop: "0.2rem",
22
- marginBottom: "0.4rem"
23
- },
24
- excerpt: {
25
- lineHeight: "1.55"
26
- },
27
- itemText: {
28
- wordBreak: "break-all"
29
- }
30
- });
31
16
  const isQetaSearchDocument = (document) => {
32
17
  return "docType" in document && (document.docType === "qeta_post" || document.docType === "qeta_collection");
33
18
  };
@@ -39,7 +24,6 @@ const isQetaCollectionDocument = (document) => {
39
24
  };
40
25
  const Excerpt = (props) => {
41
26
  const { document, highlight } = props;
42
- const classes = useStyles();
43
27
  const { t } = useTranslationRef(qetaTranslationRef);
44
28
  const text = DOMPurify.sanitize(
45
29
  truncate(
@@ -53,26 +37,34 @@ const Excerpt = (props) => {
53
37
  defaultNamespace: "default"
54
38
  });
55
39
  return /* @__PURE__ */ jsxs(Fragment, { children: [
56
- /* @__PURE__ */ jsxs("span", { className: classes.excerptText, children: [
57
- capitalize(t(`common.${document.postType}`)),
58
- " \xB7 ",
59
- t("searchResult.created"),
60
- " ",
61
- DateTime.fromISO(document.created.toString()).toRelative(),
62
- " \xB7 ",
63
- /* @__PURE__ */ jsx(EntityRefLink, { entityRef: authorEntity, hideIcon: true }),
64
- document.postType !== "link" && /* @__PURE__ */ jsxs(Fragment, { children: [
65
- " \xB7 ",
66
- t("common.score", { score: document.score.toString(10) })
67
- ] }),
68
- " \xB7 ",
69
- document.postType === "link" && t("common.clicksCount", { count: document.views }),
70
- document.postType !== "link" && t("common.viewsShort", { count: document.views }),
71
- document.postType !== "link" && /* @__PURE__ */ jsxs(Fragment, { children: [
72
- " \xB7 ",
73
- t("common.answersCount", { count: document.answerCount })
74
- ] })
75
- ] }),
40
+ /* @__PURE__ */ jsxs(
41
+ Text,
42
+ {
43
+ className: styles.excerptMeta,
44
+ variant: "body-small",
45
+ color: "secondary",
46
+ children: [
47
+ capitalize(t(`common.${document.postType}`)),
48
+ " \xB7 ",
49
+ t("searchResult.created"),
50
+ " ",
51
+ DateTime.fromISO(document.created.toString()).toRelative(),
52
+ " \xB7 ",
53
+ /* @__PURE__ */ jsx(EntityRefLink, { entityRef: authorEntity, hideIcon: true }),
54
+ document.postType !== "link" && /* @__PURE__ */ jsxs(Fragment, { children: [
55
+ " \xB7 ",
56
+ t("common.score", { score: document.score.toString(10) })
57
+ ] }),
58
+ " \xB7 ",
59
+ document.postType === "link" && t("common.clicksCount", { count: document.views }),
60
+ document.postType !== "link" && t("common.viewsShort", { count: document.views }),
61
+ document.postType !== "link" && /* @__PURE__ */ jsxs(Fragment, { children: [
62
+ " \xB7 ",
63
+ t("common.answersCount", { count: document.answerCount })
64
+ ] })
65
+ ]
66
+ }
67
+ ),
76
68
  /* @__PURE__ */ jsx(Fragment, { children: highlight?.fields.text ? /* @__PURE__ */ jsx(
77
69
  HighlightedSearchResultText,
78
70
  {
@@ -88,20 +80,28 @@ const Excerpt = (props) => {
88
80
  defaultNamespace: "default"
89
81
  });
90
82
  return /* @__PURE__ */ jsxs(Fragment, { children: [
91
- /* @__PURE__ */ jsxs("span", { className: classes.excerptText, children: [
92
- capitalize(t(`common.collection`)),
93
- " \xB7 ",
94
- t("searchResult.created"),
95
- " ",
96
- DateTime.fromISO(document.created.toString()).toRelative(),
97
- " \xB7 ",
98
- /* @__PURE__ */ jsx(EntityRefLink, { entityRef: ownerEntity, hideIcon: true }),
99
- " \xB7 ",
100
- t("common.posts", {
101
- count: document.postsCount,
102
- itemType: t("common.post")
103
- })
104
- ] }),
83
+ /* @__PURE__ */ jsxs(
84
+ Text,
85
+ {
86
+ className: styles.excerptMeta,
87
+ variant: "body-small",
88
+ color: "secondary",
89
+ children: [
90
+ capitalize(t(`common.collection`)),
91
+ " \xB7 ",
92
+ t("searchResult.created"),
93
+ " ",
94
+ DateTime.fromISO(document.created.toString()).toRelative(),
95
+ " \xB7 ",
96
+ /* @__PURE__ */ jsx(EntityRefLink, { entityRef: ownerEntity, hideIcon: true }),
97
+ " \xB7 ",
98
+ t("common.posts", {
99
+ count: document.postsCount,
100
+ itemType: t("common.post")
101
+ })
102
+ ]
103
+ }
104
+ ),
105
105
  /* @__PURE__ */ jsx(Fragment, { children: highlight?.fields.text ? /* @__PURE__ */ jsx(
106
106
  HighlightedSearchResultText,
107
107
  {
@@ -119,20 +119,19 @@ const ResultIcon = (props) => {
119
119
  if (isQetaPostDocument(document)) {
120
120
  return selectByPostType(
121
121
  document.postType,
122
- /* @__PURE__ */ jsx(HelpOutlined, {}),
123
- /* @__PURE__ */ jsx(CollectionsBookmarkIcon, {}),
124
- /* @__PURE__ */ jsx(LinkIcon, {})
122
+ /* @__PURE__ */ jsx(RiQuestionLine, { size: 20 }),
123
+ /* @__PURE__ */ jsx(RiBookOpenLine, { size: 20 }),
124
+ /* @__PURE__ */ jsx(RiLink, { size: 20 })
125
125
  );
126
126
  }
127
- return /* @__PURE__ */ jsx(PlaylistPlayIcon, {});
127
+ return /* @__PURE__ */ jsx(RiPlayList2Line, { size: 20 });
128
128
  };
129
129
  const QetaSearchResultListItem = (props) => {
130
- const classes = useStyles();
131
130
  const { result, highlight, hideIcon } = props;
132
131
  if (!result || !isQetaSearchDocument(result)) {
133
132
  return null;
134
133
  }
135
- const title = /* @__PURE__ */ jsx(Link, { noTrack: true, to: result.location, children: highlight?.fields.title ? /* @__PURE__ */ jsx(
134
+ const title = /* @__PURE__ */ jsx(Link, { to: result.location, children: highlight?.fields.title ? /* @__PURE__ */ jsx(
136
135
  HighlightedSearchResultText,
137
136
  {
138
137
  text: highlight.fields.title,
@@ -142,30 +141,20 @@ const QetaSearchResultListItem = (props) => {
142
141
  ) : result.title });
143
142
  return /* @__PURE__ */ jsxs(Fragment, { children: [
144
143
  /* @__PURE__ */ jsxs(
145
- ListItem,
144
+ "article",
146
145
  {
147
- alignItems: "center",
148
- role: "article",
146
+ className: styles.resultItem,
149
147
  "aria-labelledby": `search-result-${result.title}`,
150
148
  children: [
151
- hideIcon !== true && /* @__PURE__ */ jsx(ListItemIcon, { children: /* @__PURE__ */ jsx(ResultIcon, { document: result, "aria-hidden": "true" }) }),
152
- /* @__PURE__ */ jsx(
153
- ListItemText,
154
- {
155
- primary: title,
156
- secondary: /* @__PURE__ */ jsx(Excerpt, { document: result, highlight }),
157
- className: classes.itemText,
158
- primaryTypographyProps: {
159
- variant: "h6",
160
- id: `search-result-${result.title}`,
161
- component: "h3"
162
- }
163
- }
164
- )
149
+ hideIcon !== true && /* @__PURE__ */ jsx("span", { className: styles.resultIcon, children: /* @__PURE__ */ jsx(ResultIcon, { document: result, "aria-hidden": "true" }) }),
150
+ /* @__PURE__ */ jsxs("div", { className: styles.itemText, children: [
151
+ /* @__PURE__ */ jsx("h3", { id: `search-result-${result.title}`, className: styles.title, children: title }),
152
+ /* @__PURE__ */ jsx("div", { className: styles.excerpt, children: /* @__PURE__ */ jsx(Excerpt, { document: result, highlight }) })
153
+ ] })
165
154
  ]
166
155
  }
167
156
  ),
168
- /* @__PURE__ */ jsx(Divider, { component: "li", "aria-hidden": "true" })
157
+ /* @__PURE__ */ jsx("hr", { className: styles.divider, "aria-hidden": "true" })
169
158
  ] });
170
159
  };
171
160
 
@@ -1 +1 @@
1
- {"version":3,"file":"QetaSearchResultListItem.esm.js","sources":["../../../src/components/QetaSearchResultListItem/QetaSearchResultListItem.tsx"],"sourcesContent":["import { 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 CollectionsBookmarkIcon from '@material-ui/icons/CollectionsBookmark';\nimport {\n Divider,\n ListItem,\n ListItemIcon,\n ListItemText,\n makeStyles,\n} from '@material-ui/core';\nimport {\n QetaCollectionDocument,\n QetaPostDocument,\n QetaSearchDocument,\n removeMarkdownFormatting,\n selectByPostType,\n truncate,\n} from '@drodil/backstage-plugin-qeta-common';\nimport { EntityRefLink } from '@backstage/plugin-catalog-react';\nimport HelpOutlined from '@material-ui/icons/HelpOutlined';\nimport PlaylistPlay from '@material-ui/icons/PlaylistPlay';\nimport DOMPurify from 'dompurify';\nimport { capitalize } from 'lodash';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { qetaTranslationRef } from '@drodil/backstage-plugin-qeta-react';\nimport LinkIcon from '@material-ui/icons/Link';\nimport { parseEntityRef } from '@backstage/catalog-model';\n\nconst useStyles = makeStyles({\n excerptText: {\n display: 'block',\n marginTop: '0.2rem',\n marginBottom: '0.4rem',\n },\n excerpt: {\n lineHeight: '1.55',\n },\n itemText: {\n wordBreak: 'break-all',\n },\n});\n\nexport type QetaSearchResultListItemProps = {\n result?: IndexableDocument;\n highlight?: ResultHighlight;\n rank?: number;\n hideIcon?: boolean;\n};\n\nconst isQetaSearchDocument = (\n document: IndexableDocument,\n): document is QetaSearchDocument => {\n return (\n 'docType' in document &&\n (document.docType === 'qeta_post' || document.docType === 'qeta_collection')\n );\n};\n\nconst isQetaPostDocument = (\n document: QetaSearchDocument,\n): document is QetaPostDocument => {\n return document.docType === 'qeta_post';\n};\n\nconst isQetaCollectionDocument = (\n document: QetaSearchDocument,\n): document is QetaCollectionDocument => {\n return document.docType === 'qeta_collection';\n};\n\nconst Excerpt = (props: {\n document: QetaSearchDocument;\n highlight?: ResultHighlight;\n}) => {\n const { document, highlight } = props;\n const classes = useStyles();\n const { t } = useTranslationRef(qetaTranslationRef);\n\n const text = DOMPurify.sanitize(\n truncate(\n removeMarkdownFormatting(highlight?.fields.text ?? document.text),\n 300,\n ),\n );\n\n if (isQetaPostDocument(document)) {\n const authorEntity = parseEntityRef(document.author, {\n defaultKind: 'user',\n defaultNamespace: 'default',\n });\n return (\n <>\n <span className={classes.excerptText}>\n {capitalize(t(`common.${document.postType}`))}\n {' · '}\n {t('searchResult.created')}{' '}\n {DateTime.fromISO(document.created.toString() as string).toRelative()}\n {' · '}\n <EntityRefLink entityRef={authorEntity} hideIcon />\n {document.postType !== 'link' && (\n <>\n {' · '}\n {t('common.score', { score: document.score.toString(10) })}\n </>\n )}\n {' · '}\n {document.postType === 'link' &&\n t('common.clicksCount', { count: document.views })}\n {document.postType !== 'link' &&\n t('common.viewsShort', { count: document.views })}\n {document.postType !== 'link' && (\n <>\n {' · '}\n {t('common.answersCount', { count: document.answerCount })}\n </>\n )}\n </span>\n <>\n {highlight?.fields.text ? (\n <HighlightedSearchResultText\n text={text}\n preTag={highlight.preTag}\n postTag={highlight.postTag}\n />\n ) : (\n text\n )}\n </>\n </>\n );\n } else if (isQetaCollectionDocument(document)) {\n const ownerEntity = parseEntityRef(document.owner, {\n defaultKind: 'user',\n defaultNamespace: 'default',\n });\n return (\n <>\n <span className={classes.excerptText}>\n {capitalize(t(`common.collection`))}\n {' · '}\n {t('searchResult.created')}{' '}\n {DateTime.fromISO(document.created.toString() as string).toRelative()}\n {' · '}\n <EntityRefLink entityRef={ownerEntity} hideIcon />\n {' · '}\n {t('common.posts', {\n count: document.postsCount,\n itemType: t('common.post'),\n })}\n </span>\n <>\n {highlight?.fields.text ? (\n <HighlightedSearchResultText\n text={text}\n preTag={highlight.preTag}\n postTag={highlight.postTag}\n />\n ) : (\n text\n )}\n </>\n </>\n );\n }\n\n return null;\n};\n\nconst ResultIcon = (props: { document: QetaSearchDocument }) => {\n const { document } = props;\n if (isQetaPostDocument(document)) {\n return selectByPostType(\n document.postType,\n <HelpOutlined />,\n <CollectionsBookmarkIcon />,\n <LinkIcon />,\n );\n }\n\n return <PlaylistPlay />;\n};\n\nexport const QetaSearchResultListItem = (\n props: QetaSearchResultListItemProps,\n) => {\n const classes = useStyles();\n const { result, highlight, hideIcon } = props;\n\n if (!result || !isQetaSearchDocument(result)) {\n return null;\n }\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 return (\n <>\n <ListItem\n alignItems=\"center\"\n role=\"article\"\n aria-labelledby={`search-result-${result.title}`}\n >\n {hideIcon !== true && (\n <ListItemIcon>\n <ResultIcon document={result} aria-hidden=\"true\" />\n </ListItemIcon>\n )}\n <ListItemText\n primary={title}\n secondary={<Excerpt document={result} highlight={highlight} />}\n className={classes.itemText}\n primaryTypographyProps={{\n variant: 'h6',\n id: `search-result-${result.title}`,\n component: 'h3',\n }}\n />\n </ListItem>\n\n <Divider component=\"li\" aria-hidden=\"true\" />\n </>\n );\n};\n"],"names":["PlaylistPlay"],"mappings":"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"}
1
+ {"version":3,"file":"QetaSearchResultListItem.esm.js","sources":["../../../src/components/QetaSearchResultListItem/QetaSearchResultListItem.tsx"],"sourcesContent":["import { DateTime } from 'luxon';\nimport { Link } from 'react-router-dom';\nimport { Text } from '@backstage/ui';\nimport {\n IndexableDocument,\n ResultHighlight,\n} from '@backstage/plugin-search-common';\nimport { HighlightedSearchResultText } from '@backstage/plugin-search-react';\nimport {\n QetaCollectionDocument,\n QetaPostDocument,\n QetaSearchDocument,\n removeMarkdownFormatting,\n selectByPostType,\n truncate,\n} from '@drodil/backstage-plugin-qeta-common';\nimport { EntityRefLink } from '@backstage/plugin-catalog-react';\nimport DOMPurify from 'dompurify';\nimport { capitalize } from 'lodash';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { qetaTranslationRef } from '@drodil/backstage-plugin-qeta-react';\nimport { parseEntityRef } from '@backstage/catalog-model';\nimport {\n RiBookOpenLine,\n RiLink,\n RiPlayList2Line,\n RiQuestionLine,\n} from '@remixicon/react';\nimport styles from './QetaSearchResultListItem.module.css';\n\nexport type QetaSearchResultListItemProps = {\n result?: IndexableDocument;\n highlight?: ResultHighlight;\n rank?: number;\n hideIcon?: boolean;\n};\n\nconst isQetaSearchDocument = (\n document: IndexableDocument,\n): document is QetaSearchDocument => {\n return (\n 'docType' in document &&\n (document.docType === 'qeta_post' || document.docType === 'qeta_collection')\n );\n};\n\nconst isQetaPostDocument = (\n document: QetaSearchDocument,\n): document is QetaPostDocument => {\n return document.docType === 'qeta_post';\n};\n\nconst isQetaCollectionDocument = (\n document: QetaSearchDocument,\n): document is QetaCollectionDocument => {\n return document.docType === 'qeta_collection';\n};\n\nconst Excerpt = (props: {\n document: QetaSearchDocument;\n highlight?: ResultHighlight;\n}) => {\n const { document, highlight } = props;\n const { t } = useTranslationRef(qetaTranslationRef);\n\n const text = DOMPurify.sanitize(\n truncate(\n removeMarkdownFormatting(highlight?.fields.text ?? document.text),\n 300,\n ),\n );\n\n if (isQetaPostDocument(document)) {\n const authorEntity = parseEntityRef(document.author, {\n defaultKind: 'user',\n defaultNamespace: 'default',\n });\n return (\n <>\n <Text\n className={styles.excerptMeta}\n variant=\"body-small\"\n color=\"secondary\"\n >\n {capitalize(t(`common.${document.postType}`))}\n {' · '}\n {t('searchResult.created')}{' '}\n {DateTime.fromISO(document.created.toString() as string).toRelative()}\n {' · '}\n <EntityRefLink entityRef={authorEntity} hideIcon />\n {document.postType !== 'link' && (\n <>\n {' · '}\n {t('common.score', { score: document.score.toString(10) })}\n </>\n )}\n {' · '}\n {document.postType === 'link' &&\n t('common.clicksCount', { count: document.views })}\n {document.postType !== 'link' &&\n t('common.viewsShort', { count: document.views })}\n {document.postType !== 'link' && (\n <>\n {' · '}\n {t('common.answersCount', { count: document.answerCount })}\n </>\n )}\n </Text>\n <>\n {highlight?.fields.text ? (\n <HighlightedSearchResultText\n text={text}\n preTag={highlight.preTag}\n postTag={highlight.postTag}\n />\n ) : (\n text\n )}\n </>\n </>\n );\n } else if (isQetaCollectionDocument(document)) {\n const ownerEntity = parseEntityRef(document.owner, {\n defaultKind: 'user',\n defaultNamespace: 'default',\n });\n return (\n <>\n <Text\n className={styles.excerptMeta}\n variant=\"body-small\"\n color=\"secondary\"\n >\n {capitalize(t(`common.collection`))}\n {' · '}\n {t('searchResult.created')}{' '}\n {DateTime.fromISO(document.created.toString() as string).toRelative()}\n {' · '}\n <EntityRefLink entityRef={ownerEntity} hideIcon />\n {' · '}\n {t('common.posts', {\n count: document.postsCount,\n itemType: t('common.post'),\n })}\n </Text>\n <>\n {highlight?.fields.text ? (\n <HighlightedSearchResultText\n text={text}\n preTag={highlight.preTag}\n postTag={highlight.postTag}\n />\n ) : (\n text\n )}\n </>\n </>\n );\n }\n\n return null;\n};\n\nconst ResultIcon = (props: { document: QetaSearchDocument }) => {\n const { document } = props;\n if (isQetaPostDocument(document)) {\n return selectByPostType(\n document.postType,\n <RiQuestionLine size={20} />,\n <RiBookOpenLine size={20} />,\n <RiLink size={20} />,\n );\n }\n\n return <RiPlayList2Line size={20} />;\n};\n\nexport const QetaSearchResultListItem = (\n props: QetaSearchResultListItemProps,\n) => {\n const { result, highlight, hideIcon } = props;\n\n if (!result || !isQetaSearchDocument(result)) {\n return null;\n }\n\n const title = (\n <Link 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 return (\n <>\n <article\n className={styles.resultItem}\n aria-labelledby={`search-result-${result.title}`}\n >\n {hideIcon !== true && (\n <span className={styles.resultIcon}>\n <ResultIcon document={result} aria-hidden=\"true\" />\n </span>\n )}\n <div className={styles.itemText}>\n <h3 id={`search-result-${result.title}`} className={styles.title}>\n {title}\n </h3>\n <div className={styles.excerpt}>\n <Excerpt document={result} highlight={highlight} />\n </div>\n </div>\n </article>\n\n <hr className={styles.divider} aria-hidden=\"true\" />\n </>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import styleInject from '../../node_modules_dist/style-inject/dist/style-inject.es.esm.js';
2
+
3
+ var css_248z = "@layer components {\n .QetaSearchResultListItem_resultItem__b13ac318ed {\n display: flex;\n align-items: flex-start;\n gap: var(--bui-space-3);\n list-style: none;\n padding: var(--bui-space-3) 0;\n }\n\n .QetaSearchResultListItem_resultIcon__b13ac318ed {\n display: inline-flex;\n color: var(--bui-fg-secondary);\n margin-top: 2px;\n flex-shrink: 0;\n }\n\n .QetaSearchResultListItem_itemText__b13ac318ed {\n min-width: 0;\n word-break: break-word;\n }\n\n .QetaSearchResultListItem_title__b13ac318ed {\n margin: 0 0 var(--bui-space-1) 0;\n font-size: var(--bui-font-size-4);\n font-weight: var(--bui-font-weight-semibold);\n }\n\n .QetaSearchResultListItem_excerptMeta__b13ac318ed {\n display: block;\n margin-top: 0.2rem;\n margin-bottom: 0.4rem;\n }\n\n .QetaSearchResultListItem_excerpt__b13ac318ed {\n line-height: 1.55;\n }\n\n .QetaSearchResultListItem_divider__b13ac318ed {\n border: 0;\n border-top: 1px solid var(--bui-border-1);\n margin: 0;\n }\n}\n";
4
+ var styles = {"resultItem":"QetaSearchResultListItem_resultItem__b13ac318ed","resultIcon":"QetaSearchResultListItem_resultIcon__b13ac318ed","itemText":"QetaSearchResultListItem_itemText__b13ac318ed","title":"QetaSearchResultListItem_title__b13ac318ed","excerptMeta":"QetaSearchResultListItem_excerptMeta__b13ac318ed","excerpt":"QetaSearchResultListItem_excerpt__b13ac318ed","divider":"QetaSearchResultListItem_divider__b13ac318ed"};
5
+ styleInject(css_248z);
6
+
7
+ export { styles as default };
8
+ //# sourceMappingURL=QetaSearchResultListItem.module.css.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QetaSearchResultListItem.module.css.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}