@drodil/backstage-plugin-qeta-react 3.55.3 → 3.55.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.
Files changed (49) hide show
  1. package/dist/components/ArticleContent/ArticleButtons.esm.js +1 -1
  2. package/dist/components/Badges/BadgeChip.esm.js +14 -6
  3. package/dist/components/Badges/BadgeChip.esm.js.map +1 -1
  4. package/dist/components/Badges/UserBadges.esm.js +2 -2
  5. package/dist/components/Badges/UserBadges.esm.js.map +1 -1
  6. package/dist/components/Buttons/AddToCollectionButton.esm.js +1 -1
  7. package/dist/components/Buttons/EntityFollowButton.esm.js +1 -1
  8. package/dist/components/Buttons/TagFollowButton.esm.js +1 -1
  9. package/dist/components/Buttons/UserFollowButton.esm.js +1 -1
  10. package/dist/components/CollectionsContainer/CollectionListItem.esm.js +1 -1
  11. package/dist/components/ContentHeader/ContentHeader.esm.js +1 -1
  12. package/dist/components/EntitiesContainer/EntityListItem.esm.js +1 -1
  13. package/dist/components/FollowedLists/FollowedEntitiesList.esm.js +1 -1
  14. package/dist/components/FollowedLists/FollowedTagsList.esm.js +1 -1
  15. package/dist/components/FollowedLists/FollowedUsersList.esm.js +1 -1
  16. package/dist/components/HomePageCards/ImpactCard.esm.js +1 -1
  17. package/dist/components/HomePageCards/PostsCard.esm.js +2 -1
  18. package/dist/components/HomePageCards/PostsCard.esm.js.map +1 -1
  19. package/dist/components/LeftMenu/LeftMenu.esm.js +4 -15
  20. package/dist/components/LeftMenu/LeftMenu.esm.js.map +1 -1
  21. package/dist/components/LinkCard/LinkCard.esm.js +1 -1
  22. package/dist/components/Links/Links.esm.js +1 -1
  23. package/dist/components/PostHighlightList/PostHighlightList.esm.js +1 -1
  24. package/dist/components/PostsContainer/PostListItem.esm.js +1 -1
  25. package/dist/components/PostsContainer/PostsContainer.esm.js +2 -1
  26. package/dist/components/PostsContainer/PostsContainer.esm.js.map +1 -1
  27. package/dist/components/PostsContainer/PostsGridItem.esm.js +1 -1
  28. package/dist/components/PostsTable/PostsTable.esm.js +1 -1
  29. package/dist/components/QetaContext/QetaContext.esm.js +154 -4
  30. package/dist/components/QetaContext/QetaContext.esm.js.map +1 -1
  31. package/dist/components/QuestionCard/QuestionCard.esm.js +1 -1
  32. package/dist/components/SuggestionsCard/SuggestionsCard.esm.js +1 -1
  33. package/dist/components/TagsAndEntities/EntityChip.esm.js +1 -1
  34. package/dist/components/TagsAndEntities/TagChip.esm.js +1 -1
  35. package/dist/components/TagsAndEntities/UserChip.esm.js +1 -1
  36. package/dist/components/TagsContainer/TagListItem.esm.js +1 -1
  37. package/dist/components/TemplateList/TemplateForm.esm.js +2 -1
  38. package/dist/components/TemplateList/TemplateForm.esm.js.map +1 -1
  39. package/dist/components/TemplateList/TemplateList.esm.js +1 -1
  40. package/dist/components/Timeline/TimelineItem.esm.js +1 -1
  41. package/dist/components/TopRankingUsersCard/TopRankingUsersCard.esm.js +1 -1
  42. package/dist/components/UsersContainer/UserListItem.esm.js +1 -1
  43. package/dist/components/UsersContainer/UsersGridItem.esm.js +1 -1
  44. package/dist/hooks/useUserSettings.esm.js +8 -104
  45. package/dist/hooks/useUserSettings.esm.js.map +1 -1
  46. package/dist/index.d.ts +19 -10
  47. package/dist/translation.esm.js +3 -1
  48. package/dist/translation.esm.js.map +1 -1
  49. package/package.json +2 -2
@@ -32,7 +32,7 @@ import '@drodil/backstage-plugin-qeta-common';
32
32
  import '@backstage/plugin-permission-common';
33
33
  import 'react-use/lib/useDebounce';
34
34
  import '../FilterPanel/FilterPanel.esm.js';
35
- import 'lodash';
35
+ import '../QetaContext/QetaContext.esm.js';
36
36
 
37
37
  const useLocalStyles = makeStyles(
38
38
  (theme) => {
@@ -69,8 +69,8 @@ const useStyles = makeStyles((theme) => ({
69
69
  position: "absolute",
70
70
  top: 18,
71
71
  right: -12,
72
- backgroundColor: theme.palette.common.white,
73
- color: theme.palette.common.black,
72
+ backgroundColor: "white !important",
73
+ color: "black !important",
74
74
  borderRadius: "2px",
75
75
  display: "flex",
76
76
  padding: "4px",
@@ -82,19 +82,27 @@ const useStyles = makeStyles((theme) => ({
82
82
  },
83
83
  bronze: {
84
84
  background: "linear-gradient(135deg, #cd7f32 0%, #a0522d 100%)",
85
- color: "#ffffff"
85
+ "& *": {
86
+ color: "#ffffff"
87
+ }
86
88
  },
87
89
  silver: {
88
90
  background: "linear-gradient(135deg, #e8e8e8 0%, #a8a8a8 100%)",
89
- color: "#333333"
91
+ "& *": {
92
+ color: "#333333"
93
+ }
90
94
  },
91
95
  gold: {
92
96
  background: "linear-gradient(135deg, #ffd700 0%, #daa520 100%)",
93
- color: "#333333"
97
+ "& *": {
98
+ color: "#333333"
99
+ }
94
100
  },
95
101
  diamond: {
96
102
  background: "linear-gradient(135deg, #b9f2ff 0%, #7ec8e3 100%)",
97
- color: "#1a365d"
103
+ "& *": {
104
+ color: "#333333"
105
+ }
98
106
  },
99
107
  icon: {
100
108
  fontSize: 28,
@@ -1 +1 @@
1
- {"version":3,"file":"BadgeChip.esm.js","sources":["../../../src/components/Badges/BadgeChip.tsx"],"sourcesContent":["import { Badge } from '@drodil/backstage-plugin-qeta-common';\nimport { Box, Typography, makeStyles } from '@material-ui/core';\nimport Star from '@material-ui/icons/Star';\nimport VerifiedUser from '@material-ui/icons/VerifiedUser';\nimport Visibility from '@material-ui/icons/Visibility';\nimport EmojiEvents from '@material-ui/icons/EmojiEvents';\nimport Help from '@material-ui/icons/Help';\nimport Search from '@material-ui/icons/Search';\nimport Support from '@material-ui/icons/ContactSupport';\nimport Build from '@material-ui/icons/Build';\nimport School from '@material-ui/icons/School';\nimport MenuBook from '@material-ui/icons/MenuBook';\nimport CastForEducation from '@material-ui/icons/CastForEducation';\nimport ThumbUp from '@material-ui/icons/ThumbUp';\nimport RateReview from '@material-ui/icons/RateReview';\nimport Article from '@material-ui/icons/Description';\nimport Create from '@material-ui/icons/Create';\nimport Link from '@material-ui/icons/Link';\nimport Comment from '@material-ui/icons/Comment';\nimport ViewColumn from '@material-ui/icons/ViewColumn';\nimport Share from '@material-ui/icons/Share';\nimport Public from '@material-ui/icons/Public';\nimport RecordVoiceOver from '@material-ui/icons/RecordVoiceOver';\nimport SpeakerNotes from '@material-ui/icons/SpeakerNotes';\nimport Gavel from '@material-ui/icons/Gavel';\nimport DeviceHub from '@material-ui/icons/DeviceHub';\nimport Hearing from '@material-ui/icons/Hearing';\nimport Stars from '@material-ui/icons/Stars';\nimport Flare from '@material-ui/icons/Flare';\nimport CheckCircle from '@material-ui/icons/CheckCircle';\nimport DoneAll from '@material-ui/icons/DoneAll';\nimport PersonAdd from '@material-ui/icons/PersonAdd';\nimport TrendingUp from '@material-ui/icons/TrendingUp';\nimport Group from '@material-ui/icons/Group';\nimport NightsStay from '@material-ui/icons/NightsStay';\nimport ChatBubble from '@material-ui/icons/ChatBubble';\nimport Translate from '@material-ui/icons/Translate';\nimport LibraryBooks from '@material-ui/icons/LibraryBooks';\nimport CollectionsBookmark from '@material-ui/icons/CollectionsBookmark';\nimport LocalLibrary from '@material-ui/icons/LocalLibrary';\nimport Archive from '@material-ui/icons/Archive';\nimport PlaylistAdd from '@material-ui/icons/PlaylistAdd';\nimport FolderSpecial from '@material-ui/icons/FolderSpecial';\nimport StarRate from '@material-ui/icons/StarRate';\nimport Whatshot from '@material-ui/icons/Whatshot';\nimport Palette from '@material-ui/icons/Palette';\nimport CameraAlt from '@material-ui/icons/CameraAlt';\nimport LabelImportant from '@material-ui/icons/LabelImportant';\n\nconst useStyles = makeStyles(theme => ({\n badge: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'flex-start',\n padding: theme.spacing(1.5),\n borderRadius: theme.shape.borderRadius * 2,\n width: '100%',\n minHeight: 140,\n height: '100%',\n boxSizing: 'border-box',\n border: '1px solid rgba(0, 0, 0, 0.12)',\n boxShadow: '0 4px 8px rgba(0,0,0,0.1)',\n textAlign: 'center',\n userSelect: 'none',\n position: 'relative',\n },\n count: {\n position: 'absolute',\n top: 18,\n right: -12,\n backgroundColor: theme.palette.common.white,\n color: theme.palette.common.black,\n borderRadius: '2px',\n display: 'flex',\n padding: '4px',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: '12px',\n fontWeight: 'bold',\n boxShadow: '0 2px 4px rgba(0,0,0,0.2)',\n },\n bronze: {\n background: 'linear-gradient(135deg, #cd7f32 0%, #a0522d 100%)',\n color: '#ffffff',\n },\n silver: {\n background: 'linear-gradient(135deg, #e8e8e8 0%, #a8a8a8 100%)',\n color: '#333333',\n },\n gold: {\n background: 'linear-gradient(135deg, #ffd700 0%, #daa520 100%)',\n color: '#333333',\n },\n diamond: {\n background: 'linear-gradient(135deg, #b9f2ff 0%, #7ec8e3 100%)',\n color: '#1a365d',\n },\n icon: {\n fontSize: 28,\n marginBottom: theme.spacing(0.5),\n },\n name: {\n fontWeight: 600,\n fontSize: '0.85rem',\n lineHeight: 1.2,\n marginBottom: theme.spacing(0.5),\n },\n level: {\n fontSize: '0.65rem',\n textTransform: 'uppercase',\n letterSpacing: '0.5px',\n opacity: 0.85,\n marginBottom: theme.spacing(0.5),\n },\n description: {\n fontSize: '0.7rem',\n lineHeight: 1.3,\n opacity: 0.9,\n },\n}));\n\nconst getIcon = (icon: string) => {\n switch (icon) {\n case 'star':\n return <Star />;\n case 'local_police':\n return <VerifiedUser />;\n case 'visibility':\n return <Visibility />;\n case 'workspace_premium':\n return <EmojiEvents />;\n case 'help':\n return <Help />;\n case 'psychology':\n return <Search />;\n case 'support':\n return <Support />;\n case 'build':\n return <Build />;\n case 'school':\n return <School />;\n case 'menu_book':\n return <MenuBook />;\n case 'cast_for_education':\n return <CastForEducation />;\n case 'thumb_up':\n return <ThumbUp />;\n case 'rate_review':\n return <RateReview />;\n case 'article':\n return <Article />;\n case 'history_edu':\n return <Create />;\n case 'link':\n return <Link />;\n case 'comment':\n return <Comment />;\n case 'view_column':\n return <ViewColumn />;\n case 'share':\n return <Share />;\n case 'public':\n return <Public />;\n case 'record_voice_over':\n return <RecordVoiceOver />;\n case 'campaign':\n return <SpeakerNotes />;\n case 'gavel':\n return <Gavel />;\n case 'device_hub':\n return <DeviceHub />;\n case 'hearing':\n return <Hearing />;\n case 'military_tech':\n return <Stars />;\n case 'verified':\n return <VerifiedUser />;\n case 'check_circle':\n return <CheckCircle />;\n case 'done_all':\n return <DoneAll />;\n case 'construction':\n return <Build />;\n case 'auto_fix_high':\n return <Flare />;\n case 'person_add':\n return <PersonAdd />;\n case 'trending_up':\n return <TrendingUp />;\n case 'emoji_events':\n return <EmojiEvents />;\n case 'groups':\n return <Group />;\n case 'nights_stay':\n return <NightsStay />;\n case 'auto_stories':\n return <LibraryBooks />;\n case 'translate':\n return <Translate />;\n case 'chat_bubble':\n return <ChatBubble />;\n // Collection badges\n case 'collections_bookmark':\n return <CollectionsBookmark />;\n case 'local_library':\n return <LocalLibrary />;\n case 'archive':\n return <Archive />;\n case 'playlist_add':\n return <PlaylistAdd />;\n case 'folder_special':\n return <FolderSpecial />;\n case 'inventory':\n return <Archive />;\n case 'star_rate':\n return <StarRate />;\n case 'diamond':\n return <Stars />;\n case 'whatshot':\n return <Whatshot />;\n case 'palette':\n return <Palette />;\n case 'camera_alt':\n return <CameraAlt />;\n case 'label_important':\n return <LabelImportant />;\n default:\n return <VerifiedUser />;\n }\n};\n\nexport const BadgeChip = ({\n badge,\n count,\n}: {\n badge: Badge;\n count?: number;\n}) => {\n const classes = useStyles();\n const IconComponent = getIcon(badge.icon);\n\n return (\n <Box className={`${classes.badge} ${classes[badge.level]}`}>\n <Box className={classes.icon}>{IconComponent}</Box>\n <Typography className={classes.name}>{badge.name}</Typography>\n <Typography className={classes.level}>{badge.level}</Typography>\n <Typography className={classes.description}>\n {badge.description}\n </Typography>\n {count && count > 1 && <Box className={classes.count}>x {count}</Box>}\n </Box>\n );\n};\n"],"names":["Star","Help","Search","Article","Create","Link","CollectionsBookmark","PlaylistAdd"],"mappings":"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"}
1
+ {"version":3,"file":"BadgeChip.esm.js","sources":["../../../src/components/Badges/BadgeChip.tsx"],"sourcesContent":["import { Badge } from '@drodil/backstage-plugin-qeta-common';\nimport { Box, makeStyles, Typography } from '@material-ui/core';\nimport Star from '@material-ui/icons/Star';\nimport VerifiedUser from '@material-ui/icons/VerifiedUser';\nimport Visibility from '@material-ui/icons/Visibility';\nimport EmojiEvents from '@material-ui/icons/EmojiEvents';\nimport Help from '@material-ui/icons/Help';\nimport Search from '@material-ui/icons/Search';\nimport Support from '@material-ui/icons/ContactSupport';\nimport Build from '@material-ui/icons/Build';\nimport School from '@material-ui/icons/School';\nimport MenuBook from '@material-ui/icons/MenuBook';\nimport CastForEducation from '@material-ui/icons/CastForEducation';\nimport ThumbUp from '@material-ui/icons/ThumbUp';\nimport RateReview from '@material-ui/icons/RateReview';\nimport Article from '@material-ui/icons/Description';\nimport Create from '@material-ui/icons/Create';\nimport Link from '@material-ui/icons/Link';\nimport Comment from '@material-ui/icons/Comment';\nimport ViewColumn from '@material-ui/icons/ViewColumn';\nimport Share from '@material-ui/icons/Share';\nimport Public from '@material-ui/icons/Public';\nimport RecordVoiceOver from '@material-ui/icons/RecordVoiceOver';\nimport SpeakerNotes from '@material-ui/icons/SpeakerNotes';\nimport Gavel from '@material-ui/icons/Gavel';\nimport DeviceHub from '@material-ui/icons/DeviceHub';\nimport Hearing from '@material-ui/icons/Hearing';\nimport Stars from '@material-ui/icons/Stars';\nimport Flare from '@material-ui/icons/Flare';\nimport CheckCircle from '@material-ui/icons/CheckCircle';\nimport DoneAll from '@material-ui/icons/DoneAll';\nimport PersonAdd from '@material-ui/icons/PersonAdd';\nimport TrendingUp from '@material-ui/icons/TrendingUp';\nimport Group from '@material-ui/icons/Group';\nimport NightsStay from '@material-ui/icons/NightsStay';\nimport ChatBubble from '@material-ui/icons/ChatBubble';\nimport Translate from '@material-ui/icons/Translate';\nimport LibraryBooks from '@material-ui/icons/LibraryBooks';\nimport CollectionsBookmark from '@material-ui/icons/CollectionsBookmark';\nimport LocalLibrary from '@material-ui/icons/LocalLibrary';\nimport Archive from '@material-ui/icons/Archive';\nimport PlaylistAdd from '@material-ui/icons/PlaylistAdd';\nimport FolderSpecial from '@material-ui/icons/FolderSpecial';\nimport StarRate from '@material-ui/icons/StarRate';\nimport Whatshot from '@material-ui/icons/Whatshot';\nimport Palette from '@material-ui/icons/Palette';\nimport CameraAlt from '@material-ui/icons/CameraAlt';\nimport LabelImportant from '@material-ui/icons/LabelImportant';\n\nconst useStyles = makeStyles(theme => ({\n badge: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'flex-start',\n padding: theme.spacing(1.5),\n borderRadius: theme.shape.borderRadius * 2,\n width: '100%',\n minHeight: 140,\n height: '100%',\n boxSizing: 'border-box',\n border: '1px solid rgba(0, 0, 0, 0.12)',\n boxShadow: '0 4px 8px rgba(0,0,0,0.1)',\n textAlign: 'center',\n userSelect: 'none',\n position: 'relative',\n },\n count: {\n position: 'absolute',\n top: 18,\n right: -12,\n backgroundColor: 'white !important',\n color: 'black !important',\n borderRadius: '2px',\n display: 'flex',\n padding: '4px',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: '12px',\n fontWeight: 'bold',\n boxShadow: '0 2px 4px rgba(0,0,0,0.2)',\n },\n bronze: {\n background: 'linear-gradient(135deg, #cd7f32 0%, #a0522d 100%)',\n '& *': {\n color: '#ffffff',\n },\n },\n silver: {\n background: 'linear-gradient(135deg, #e8e8e8 0%, #a8a8a8 100%)',\n '& *': {\n color: '#333333',\n },\n },\n gold: {\n background: 'linear-gradient(135deg, #ffd700 0%, #daa520 100%)',\n '& *': {\n color: '#333333',\n },\n },\n diamond: {\n background: 'linear-gradient(135deg, #b9f2ff 0%, #7ec8e3 100%)',\n '& *': {\n color: '#333333',\n },\n },\n icon: {\n fontSize: 28,\n marginBottom: theme.spacing(0.5),\n },\n name: {\n fontWeight: 600,\n fontSize: '0.85rem',\n lineHeight: 1.2,\n marginBottom: theme.spacing(0.5),\n },\n level: {\n fontSize: '0.65rem',\n textTransform: 'uppercase',\n letterSpacing: '0.5px',\n opacity: 0.85,\n marginBottom: theme.spacing(0.5),\n },\n description: {\n fontSize: '0.7rem',\n lineHeight: 1.3,\n opacity: 0.9,\n },\n}));\n\nconst getIcon = (icon: string) => {\n switch (icon) {\n case 'star':\n return <Star />;\n case 'local_police':\n return <VerifiedUser />;\n case 'visibility':\n return <Visibility />;\n case 'workspace_premium':\n return <EmojiEvents />;\n case 'help':\n return <Help />;\n case 'psychology':\n return <Search />;\n case 'support':\n return <Support />;\n case 'build':\n return <Build />;\n case 'school':\n return <School />;\n case 'menu_book':\n return <MenuBook />;\n case 'cast_for_education':\n return <CastForEducation />;\n case 'thumb_up':\n return <ThumbUp />;\n case 'rate_review':\n return <RateReview />;\n case 'article':\n return <Article />;\n case 'history_edu':\n return <Create />;\n case 'link':\n return <Link />;\n case 'comment':\n return <Comment />;\n case 'view_column':\n return <ViewColumn />;\n case 'share':\n return <Share />;\n case 'public':\n return <Public />;\n case 'record_voice_over':\n return <RecordVoiceOver />;\n case 'campaign':\n return <SpeakerNotes />;\n case 'gavel':\n return <Gavel />;\n case 'device_hub':\n return <DeviceHub />;\n case 'hearing':\n return <Hearing />;\n case 'military_tech':\n return <Stars />;\n case 'verified':\n return <VerifiedUser />;\n case 'check_circle':\n return <CheckCircle />;\n case 'done_all':\n return <DoneAll />;\n case 'construction':\n return <Build />;\n case 'auto_fix_high':\n return <Flare />;\n case 'person_add':\n return <PersonAdd />;\n case 'trending_up':\n return <TrendingUp />;\n case 'emoji_events':\n return <EmojiEvents />;\n case 'groups':\n return <Group />;\n case 'nights_stay':\n return <NightsStay />;\n case 'auto_stories':\n return <LibraryBooks />;\n case 'translate':\n return <Translate />;\n case 'chat_bubble':\n return <ChatBubble />;\n // Collection badges\n case 'collections_bookmark':\n return <CollectionsBookmark />;\n case 'local_library':\n return <LocalLibrary />;\n case 'archive':\n return <Archive />;\n case 'playlist_add':\n return <PlaylistAdd />;\n case 'folder_special':\n return <FolderSpecial />;\n case 'inventory':\n return <Archive />;\n case 'star_rate':\n return <StarRate />;\n case 'diamond':\n return <Stars />;\n case 'whatshot':\n return <Whatshot />;\n case 'palette':\n return <Palette />;\n case 'camera_alt':\n return <CameraAlt />;\n case 'label_important':\n return <LabelImportant />;\n default:\n return <VerifiedUser />;\n }\n};\n\nexport const BadgeChip = ({\n badge,\n count,\n}: {\n badge: Badge;\n count?: number;\n}) => {\n const classes = useStyles();\n const IconComponent = getIcon(badge.icon);\n\n return (\n <Box className={`${classes.badge} ${classes[badge.level]}`}>\n <Box className={classes.icon}>{IconComponent}</Box>\n <Typography className={classes.name}>{badge.name}</Typography>\n <Typography className={classes.level}>{badge.level}</Typography>\n <Typography className={classes.description}>\n {badge.description}\n </Typography>\n {count && count > 1 && <Box className={classes.count}>x {count}</Box>}\n </Box>\n );\n};\n"],"names":["Star","Help","Search","Article","Create","Link","CollectionsBookmark","PlaylistAdd"],"mappings":"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"}
@@ -18,7 +18,7 @@ import { Box, Typography, Grid } from '@material-ui/core';
18
18
  import 'react-router-dom';
19
19
  import 'react-use/lib/useDebounce';
20
20
  import '../FilterPanel/FilterPanel.esm.js';
21
- import 'lodash';
21
+ import '../QetaContext/QetaContext.esm.js';
22
22
  import { BadgeChip } from './BadgeChip.esm.js';
23
23
  import { Skeleton, Alert } from '@material-ui/lab';
24
24
 
@@ -75,7 +75,7 @@ const UserBadges = ({ entityRef }) => {
75
75
  style: { padding: "1em" },
76
76
  justifyContent: "flex-start",
77
77
  alignItems: "stretch",
78
- children: displayBadges.map((item, index) => /* @__PURE__ */ jsx(Grid, { item: true, xs: 6, sm: 4, md: 3, lg: 2, xl: 1, children: /* @__PURE__ */ jsx(BadgeChip, { badge: item.badge, count: item.count }) }, index))
78
+ children: displayBadges.map((item) => /* @__PURE__ */ jsx(Grid, { item: true, xs: 6, sm: 4, md: 4, lg: 3, children: /* @__PURE__ */ jsx(BadgeChip, { badge: item.badge, count: item.count }) }, item.badge.key))
79
79
  }
80
80
  )
81
81
  ] });
@@ -1 +1 @@
1
- {"version":3,"file":"UserBadges.esm.js","sources":["../../../src/components/Badges/UserBadges.tsx"],"sourcesContent":["import { useQetaApi } from '../../hooks';\nimport { BadgeChip } from './BadgeChip';\nimport { Box, Typography, Grid } from '@material-ui/core';\nimport { Alert, Skeleton } from '@material-ui/lab';\nimport { UserBadge } from '@drodil/backstage-plugin-qeta-common';\n\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { qetaTranslationRef } from '../../translation';\n\nconst LEVEL_ORDER: Record<string, number> = {\n diamond: 0,\n gold: 1,\n silver: 2,\n bronze: 3,\n};\n\nconst sortBadgesByLevel = (badges: UserBadge[]): UserBadge[] => {\n return [...badges].sort((a, b) => {\n const levelA = LEVEL_ORDER[a.badge.level] ?? 99;\n const levelB = LEVEL_ORDER[b.badge.level] ?? 99;\n return levelA - levelB;\n });\n};\n\nexport const UserBadges = ({ entityRef }: { entityRef: string }) => {\n const { t } = useTranslationRef(qetaTranslationRef);\n const {\n value: badges,\n loading,\n error,\n } = useQetaApi(api => api.getUserBadges(entityRef), [entityRef]);\n\n if (loading) {\n return <Skeleton variant=\"rect\" height={100} />;\n }\n\n if (error) {\n return <Alert severity=\"error\">{t('userBadges.error')}</Alert>;\n }\n\n const sortedBadges = badges ? sortBadgesByLevel(badges) : [];\n\n const groupedBadges = sortedBadges.reduce((acc, userBadge) => {\n const key = userBadge.badge.id;\n if (!acc[key]) {\n acc[key] = {\n badge: userBadge.badge,\n count: 0,\n };\n }\n acc[key].count += 1;\n return acc;\n }, {} as Record<string, { badge: UserBadge['badge']; count: number }>);\n\n const displayBadges = Object.values(groupedBadges).sort((a, b) => {\n const levelA = LEVEL_ORDER[a.badge.level] ?? 99;\n const levelB = LEVEL_ORDER[b.badge.level] ?? 99;\n return levelA - levelB;\n });\n\n return (\n <Box>\n <Typography variant=\"h6\" gutterBottom>\n {t('userBadges.title')}\n </Typography>\n {displayBadges.length === 0 ? (\n <Typography variant=\"body2\">{t('userBadges.noBadges')}</Typography>\n ) : (\n <Grid\n container\n spacing={3}\n style={{ padding: '1em' }}\n justifyContent=\"flex-start\"\n alignItems=\"stretch\"\n >\n {displayBadges.map((item, index: number) => (\n <Grid item key={index} xs={6} sm={4} md={3} lg={2} xl={1}>\n <BadgeChip badge={item.badge} count={item.count} />\n </Grid>\n ))}\n </Grid>\n )}\n </Box>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UserBadges.esm.js","sources":["../../../src/components/Badges/UserBadges.tsx"],"sourcesContent":["import { useQetaApi } from '../../hooks';\nimport { BadgeChip } from './BadgeChip';\nimport { Box, Grid, Typography } from '@material-ui/core';\nimport { Alert, Skeleton } from '@material-ui/lab';\nimport { UserBadge } from '@drodil/backstage-plugin-qeta-common';\n\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { qetaTranslationRef } from '../../translation';\n\nconst LEVEL_ORDER: Record<string, number> = {\n diamond: 0,\n gold: 1,\n silver: 2,\n bronze: 3,\n};\n\nconst sortBadgesByLevel = (badges: UserBadge[]): UserBadge[] => {\n return [...badges].sort((a, b) => {\n const levelA = LEVEL_ORDER[a.badge.level] ?? 99;\n const levelB = LEVEL_ORDER[b.badge.level] ?? 99;\n return levelA - levelB;\n });\n};\n\nexport const UserBadges = ({ entityRef }: { entityRef: string }) => {\n const { t } = useTranslationRef(qetaTranslationRef);\n const {\n value: badges,\n loading,\n error,\n } = useQetaApi(api => api.getUserBadges(entityRef), [entityRef]);\n\n if (loading) {\n return <Skeleton variant=\"rect\" height={100} />;\n }\n\n if (error) {\n return <Alert severity=\"error\">{t('userBadges.error')}</Alert>;\n }\n\n const sortedBadges = badges ? sortBadgesByLevel(badges) : [];\n\n const groupedBadges = sortedBadges.reduce((acc, userBadge) => {\n const key = userBadge.badge.id;\n if (!acc[key]) {\n acc[key] = {\n badge: userBadge.badge,\n count: 0,\n };\n }\n acc[key].count += 1;\n return acc;\n }, {} as Record<string, { badge: UserBadge['badge']; count: number }>);\n\n const displayBadges = Object.values(groupedBadges).sort((a, b) => {\n const levelA = LEVEL_ORDER[a.badge.level] ?? 99;\n const levelB = LEVEL_ORDER[b.badge.level] ?? 99;\n return levelA - levelB;\n });\n\n return (\n <Box>\n <Typography variant=\"h6\" gutterBottom>\n {t('userBadges.title')}\n </Typography>\n {displayBadges.length === 0 ? (\n <Typography variant=\"body2\">{t('userBadges.noBadges')}</Typography>\n ) : (\n <Grid\n container\n spacing={3}\n style={{ padding: '1em' }}\n justifyContent=\"flex-start\"\n alignItems=\"stretch\"\n >\n {displayBadges.map(item => (\n <Grid item key={item.badge.key} xs={6} sm={4} md={4} lg={3}>\n <BadgeChip badge={item.badge} count={item.count} />\n </Grid>\n ))}\n </Grid>\n )}\n </Box>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@ import '@backstage/plugin-permission-common';
21
21
  import 'react-router-dom';
22
22
  import 'react-use/lib/useDebounce';
23
23
  import '../FilterPanel/FilterPanel.esm.js';
24
- import 'lodash';
24
+ import '../QetaContext/QetaContext.esm.js';
25
25
  import { ContentHeaderButton } from './ContentHeaderButton.esm.js';
26
26
 
27
27
  const AddToCollectionButton = (props) => {
@@ -21,7 +21,7 @@ import { Tooltip, IconButton } from '@material-ui/core';
21
21
  import 'react-router-dom';
22
22
  import 'react-use/lib/useDebounce';
23
23
  import '../FilterPanel/FilterPanel.esm.js';
24
- import 'lodash';
24
+ import '../QetaContext/QetaContext.esm.js';
25
25
 
26
26
  const EntityFollowButton = (props) => {
27
27
  const { entityRef } = props;
@@ -21,7 +21,7 @@ import { Tooltip, IconButton } from '@material-ui/core';
21
21
  import 'react-router-dom';
22
22
  import 'react-use/lib/useDebounce';
23
23
  import '../FilterPanel/FilterPanel.esm.js';
24
- import 'lodash';
24
+ import '../QetaContext/QetaContext.esm.js';
25
25
 
26
26
  const TagFollowButton = (props) => {
27
27
  const { tag } = props;
@@ -21,7 +21,7 @@ import { Tooltip, IconButton } from '@material-ui/core';
21
21
  import 'react-router-dom';
22
22
  import 'react-use/lib/useDebounce';
23
23
  import '../FilterPanel/FilterPanel.esm.js';
24
- import 'lodash';
24
+ import '../QetaContext/QetaContext.esm.js';
25
25
 
26
26
  const UserFollowButton = (props) => {
27
27
  const { userRef, style } = props;
@@ -26,7 +26,7 @@ import '@backstage/plugin-permission-react';
26
26
  import '@backstage/plugin-permission-common';
27
27
  import 'react-use/lib/useDebounce';
28
28
  import '../FilterPanel/FilterPanel.esm.js';
29
- import 'lodash';
29
+ import '../QetaContext/QetaContext.esm.js';
30
30
 
31
31
  const useStyles = makeStyles((theme) => ({
32
32
  content: {
@@ -23,7 +23,7 @@ import 'react-use/lib/useAsync';
23
23
  import 'react-router-dom';
24
24
  import 'react-use/lib/useDebounce';
25
25
  import '../FilterPanel/FilterPanel.esm.js';
26
- import 'lodash';
26
+ import '../QetaContext/QetaContext.esm.js';
27
27
  import '@material-ui/icons/Create';
28
28
  import '@material-ui/icons/Link';
29
29
  import '@material-ui/icons/OpenInNew';
@@ -24,7 +24,7 @@ import '@drodil/backstage-plugin-qeta-common';
24
24
  import '@backstage/plugin-permission-common';
25
25
  import 'react-use/lib/useDebounce';
26
26
  import '../FilterPanel/FilterPanel.esm.js';
27
- import 'lodash';
27
+ import '../QetaContext/QetaContext.esm.js';
28
28
 
29
29
  const useStyles = makeStyles((theme) => ({
30
30
  content: {
@@ -19,7 +19,7 @@ import { makeStyles, ListItem, Box, Tooltip, ListItemText } from '@material-ui/c
19
19
  import { Link } from 'react-router-dom';
20
20
  import 'react-use/lib/useDebounce';
21
21
  import '../FilterPanel/FilterPanel.esm.js';
22
- import 'lodash';
22
+ import '../QetaContext/QetaContext.esm.js';
23
23
  import { RightListContainer, RightList } from '../Utility/RightList.esm.js';
24
24
  import { entityRouteRef } from '../../routes.esm.js';
25
25
 
@@ -19,7 +19,7 @@ import { makeStyles, ListItem, Box, Tooltip, ListItemText } from '@material-ui/c
19
19
  import { Link } from 'react-router-dom';
20
20
  import 'react-use/lib/useDebounce';
21
21
  import '../FilterPanel/FilterPanel.esm.js';
22
- import 'lodash';
22
+ import '../QetaContext/QetaContext.esm.js';
23
23
  import { RightListContainer, RightList } from '../Utility/RightList.esm.js';
24
24
  import LocalOfferOutlined from '@material-ui/icons/LocalOfferOutlined';
25
25
  import { tagRouteRef } from '../../routes.esm.js';
@@ -17,7 +17,7 @@ import { makeStyles, ListItem, Avatar, Tooltip, ListItemText } from '@material-u
17
17
  import { Link } from 'react-router-dom';
18
18
  import 'react-use/lib/useDebounce';
19
19
  import '../FilterPanel/FilterPanel.esm.js';
20
- import 'lodash';
20
+ import '../QetaContext/QetaContext.esm.js';
21
21
  import { RightListContainer, RightList } from '../Utility/RightList.esm.js';
22
22
  import { userRouteRef } from '../../routes.esm.js';
23
23
 
@@ -19,7 +19,7 @@ import { useTheme, Box, Card, CardContent, Divider, Grid, Typography, Tooltip }
19
19
  import 'react-router-dom';
20
20
  import 'react-use/lib/useDebounce';
21
21
  import '../FilterPanel/FilterPanel.esm.js';
22
- import 'lodash';
22
+ import '../QetaContext/QetaContext.esm.js';
23
23
  import { Skeleton, Alert } from '@material-ui/lab';
24
24
  import ThumbUp from '@material-ui/icons/ThumbUp';
25
25
  import HelpOutline from '@material-ui/icons/HelpOutline';
@@ -23,7 +23,7 @@ import 'react-use/lib/useAsync';
23
23
  import 'react-router-dom';
24
24
  import 'react-use/lib/useDebounce';
25
25
  import '../FilterPanel/FilterPanel.esm.js';
26
- import 'lodash';
26
+ import '../QetaContext/QetaContext.esm.js';
27
27
  import '@material-ui/icons/Create';
28
28
  import '@material-ui/icons/Link';
29
29
  import '@material-ui/icons/OpenInNew';
@@ -32,6 +32,7 @@ import '@material-ui/icons/AddCircle';
32
32
  import '@material-ui/icons/RemoveCircle';
33
33
  import '../Buttons/ButtonContainer.esm.js';
34
34
  import '../Buttons/RankingButtons.esm.js';
35
+ import 'lodash';
35
36
  import '@material-ui/icons/FilterList';
36
37
  import 'infinite-scroll-hook';
37
38
  import '../SearchBar/SearchBar.esm.js';
@@ -1 +1 @@
1
- {"version":3,"file":"PostsCard.esm.js","sources":["../../../src/components/HomePageCards/PostsCard.tsx"],"sourcesContent":["import { PostsQuery, PostType } from '@drodil/backstage-plugin-qeta-common';\nimport { PostListItem } from '../PostsContainer';\nimport { useQetaApi } from '../../hooks';\nimport { Card, CardHeader, Divider, Grid } from '@material-ui/core';\n\nexport const PostsCard = (props: {\n title: string;\n options?: PostsQuery;\n postType?: PostType;\n}) => {\n const { value: response } = useQetaApi(\n api =>\n api.getPosts({\n limit: 3,\n type: props.postType,\n includeAttachments: false,\n includeExperts: false,\n includeAnswers: false,\n includeComments: false,\n includeVotes: false,\n includeTrend: false,\n ...props.options,\n }),\n [],\n );\n\n const posts = response?.posts ?? [];\n if (posts.length === 0) {\n return null;\n }\n\n return (\n <Card>\n <CardHeader style={{ paddingBottom: '8px' }} title={props.title} />\n <Grid container spacing={2}>\n {posts.map(question => {\n return (\n <Grid item xs={12} key={question.id}>\n <PostListItem post={question} type={props.postType} />\n <Divider />\n </Grid>\n );\n })}\n </Grid>\n </Card>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKa,MAAA,SAAA,GAAY,CAAC,KAIpB,KAAA;AACJ,EAAM,MAAA,EAAE,KAAO,EAAA,QAAA,EAAa,GAAA,UAAA;AAAA,IAC1B,CAAA,GAAA,KACE,IAAI,QAAS,CAAA;AAAA,MACX,KAAO,EAAA,CAAA;AAAA,MACP,MAAM,KAAM,CAAA,QAAA;AAAA,MACZ,kBAAoB,EAAA,KAAA;AAAA,MACpB,cAAgB,EAAA,KAAA;AAAA,MAChB,cAAgB,EAAA,KAAA;AAAA,MAChB,eAAiB,EAAA,KAAA;AAAA,MACjB,YAAc,EAAA,KAAA;AAAA,MACd,YAAc,EAAA,KAAA;AAAA,MACd,GAAG,KAAM,CAAA;AAAA,KACV,CAAA;AAAA,IACH;AAAC,GACH;AAEA,EAAM,MAAA,KAAA,GAAQ,QAAU,EAAA,KAAA,IAAS,EAAC;AAClC,EAAI,IAAA,KAAA,CAAM,WAAW,CAAG,EAAA;AACtB,IAAO,OAAA,IAAA;AAAA;AAGT,EAAA,4BACG,IACC,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAC,GAAA,CAAA,UAAA,EAAA,EAAW,OAAO,EAAE,aAAA,EAAe,OAAS,EAAA,KAAA,EAAO,MAAM,KAAO,EAAA,CAAA;AAAA,oBACjE,GAAA,CAAC,QAAK,SAAS,EAAA,IAAA,EAAC,SAAS,CACtB,EAAA,QAAA,EAAA,KAAA,CAAM,IAAI,CAAY,QAAA,KAAA;AACrB,MAAA,uBACG,IAAA,CAAA,IAAA,EAAA,EAAK,IAAI,EAAA,IAAA,EAAC,IAAI,EACb,EAAA,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,YAAa,EAAA,EAAA,IAAA,EAAM,QAAU,EAAA,IAAA,EAAM,MAAM,QAAU,EAAA,CAAA;AAAA,4BACnD,OAAQ,EAAA,EAAA;AAAA,OAAA,EAAA,EAFa,SAAS,EAGjC,CAAA;AAAA,KAEH,CACH,EAAA;AAAA,GACF,EAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"PostsCard.esm.js","sources":["../../../src/components/HomePageCards/PostsCard.tsx"],"sourcesContent":["import { PostsQuery, PostType } from '@drodil/backstage-plugin-qeta-common';\nimport { PostListItem } from '../PostsContainer';\nimport { useQetaApi } from '../../hooks';\nimport { Card, CardHeader, Divider, Grid } from '@material-ui/core';\n\nexport const PostsCard = (props: {\n title: string;\n options?: PostsQuery;\n postType?: PostType;\n}) => {\n const { value: response } = useQetaApi(\n api =>\n api.getPosts({\n limit: 3,\n type: props.postType,\n includeAttachments: false,\n includeExperts: false,\n includeAnswers: false,\n includeComments: false,\n includeVotes: false,\n includeTrend: false,\n ...props.options,\n }),\n [],\n );\n\n const posts = response?.posts ?? [];\n if (posts.length === 0) {\n return null;\n }\n\n return (\n <Card>\n <CardHeader style={{ paddingBottom: '8px' }} title={props.title} />\n <Grid container spacing={2}>\n {posts.map(question => {\n return (\n <Grid item xs={12} key={question.id}>\n <PostListItem post={question} type={props.postType} />\n <Divider />\n </Grid>\n );\n })}\n </Grid>\n </Card>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKa,MAAA,SAAA,GAAY,CAAC,KAIpB,KAAA;AACJ,EAAM,MAAA,EAAE,KAAO,EAAA,QAAA,EAAa,GAAA,UAAA;AAAA,IAC1B,CAAA,GAAA,KACE,IAAI,QAAS,CAAA;AAAA,MACX,KAAO,EAAA,CAAA;AAAA,MACP,MAAM,KAAM,CAAA,QAAA;AAAA,MACZ,kBAAoB,EAAA,KAAA;AAAA,MACpB,cAAgB,EAAA,KAAA;AAAA,MAChB,cAAgB,EAAA,KAAA;AAAA,MAChB,eAAiB,EAAA,KAAA;AAAA,MACjB,YAAc,EAAA,KAAA;AAAA,MACd,YAAc,EAAA,KAAA;AAAA,MACd,GAAG,KAAM,CAAA;AAAA,KACV,CAAA;AAAA,IACH;AAAC,GACH;AAEA,EAAM,MAAA,KAAA,GAAQ,QAAU,EAAA,KAAA,IAAS,EAAC;AAClC,EAAI,IAAA,KAAA,CAAM,WAAW,CAAG,EAAA;AACtB,IAAO,OAAA,IAAA;AAAA;AAGT,EAAA,4BACG,IACC,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAC,GAAA,CAAA,UAAA,EAAA,EAAW,OAAO,EAAE,aAAA,EAAe,OAAS,EAAA,KAAA,EAAO,MAAM,KAAO,EAAA,CAAA;AAAA,oBACjE,GAAA,CAAC,QAAK,SAAS,EAAA,IAAA,EAAC,SAAS,CACtB,EAAA,QAAA,EAAA,KAAA,CAAM,IAAI,CAAY,QAAA,KAAA;AACrB,MAAA,uBACG,IAAA,CAAA,IAAA,EAAA,EAAK,IAAI,EAAA,IAAA,EAAC,IAAI,EACb,EAAA,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,YAAa,EAAA,EAAA,IAAA,EAAM,QAAU,EAAA,IAAA,EAAM,MAAM,QAAU,EAAA,CAAA;AAAA,4BACnD,OAAQ,EAAA,EAAA;AAAA,OAAA,EAAA,EAFa,SAAS,EAGjC,CAAA;AAAA,KAEH,CACH,EAAA;AAAA,GACF,EAAA,CAAA;AAEJ;;;;"}
@@ -35,7 +35,7 @@ import { useCanReview } from '../../hooks/useCanReview.esm.js';
35
35
  import 'react-use/lib/useDebounce';
36
36
  import '../FilterPanel/FilterPanel.esm.js';
37
37
  import '@drodil/backstage-plugin-qeta-common';
38
- import 'lodash';
38
+ import '../QetaContext/QetaContext.esm.js';
39
39
 
40
40
  const useStyles = makeStyles(
41
41
  (theme) => {
@@ -67,7 +67,7 @@ const useStyles = makeStyles(
67
67
  paddingRight: theme.spacing(2)
68
68
  },
69
69
  menuItem: {
70
- margin: (props) => props.compact ? 0 : theme.spacing(0, 1.5),
70
+ margin: (props) => props.compact ? 0 : theme.spacing(0, 0),
71
71
  justifyContent: (props) => props.compact ? "center" : "flex-start",
72
72
  padding: (props) => props.compact ? theme.spacing(1, 0) : theme.spacing(0.5, 0.5),
73
73
  borderRadius: (props) => props.compact ? 0 : theme.shape.borderRadius,
@@ -86,17 +86,6 @@ const useStyles = makeStyles(
86
86
  backgroundColor: "transparent",
87
87
  fontWeight: 600,
88
88
  position: "relative",
89
- "&::before": {
90
- content: '""',
91
- position: "absolute",
92
- left: 0,
93
- top: "50%",
94
- transform: "translateY(-50%)",
95
- height: "60%",
96
- width: "4px",
97
- backgroundColor: theme.palette.primary.main,
98
- borderRadius: "0 4px 4px 0"
99
- },
100
89
  "&:hover": {
101
90
  backgroundColor: theme.palette.action.hover
102
91
  },
@@ -111,7 +100,7 @@ const useStyles = makeStyles(
111
100
  justifyContent: "center"
112
101
  },
113
102
  sectionHeader: {
114
- padding: theme.spacing(0.5, 2, 0.5, 2),
103
+ padding: theme.spacing(0.5, 2, 0.5, 1),
115
104
  marginTop: theme.spacing(2),
116
105
  color: theme.palette.text.secondary,
117
106
  fontWeight: 600,
@@ -321,7 +310,7 @@ const LeftMenu = (props) => {
321
310
  onClick: onToggle,
322
311
  size: "small",
323
312
  className: isCompact ? "" : styles.toggleButton,
324
- style: { marginTop: 8, marginLeft: isCompact ? -10 : 18 },
313
+ style: { marginTop: 8, marginLeft: isCompact ? -10 : 5 },
325
314
  children: isCompact ? /* @__PURE__ */ jsx(ChevronRightIcon, {}) : /* @__PURE__ */ jsx(MenuOpenIcon, {})
326
315
  }
327
316
  )
@@ -1 +1 @@
1
- {"version":3,"file":"LeftMenu.esm.js","sources":["../../../src/components/LeftMenu/LeftMenu.tsx"],"sourcesContent":["import {\n Box,\n IconButton,\n List,\n ListItemIcon,\n makeStyles,\n MenuItem,\n Tooltip,\n Typography,\n} from '@material-ui/core';\nimport { KeyboardEvent, MouseEvent, ReactNode } from 'react';\nimport { useApp, useRouteRef } from '@backstage/core-plugin-api';\nimport { useNavigate } from 'react-router-dom';\nimport { useLocation } from 'react-use';\n// Icons\nimport HomeOutlined from '@material-ui/icons/HomeOutlined';\nimport HelpOutline from '@material-ui/icons/HelpOutline';\nimport LibraryBooksOutlined from '@material-ui/icons/LibraryBooksOutlined';\nimport LinkIcon from '@material-ui/icons/Link';\nimport StarBorder from '@material-ui/icons/StarBorder';\nimport CategoryOutlined from '@material-ui/icons/CategoryOutlined'; // For Entities?\nimport LocalOfferOutlined from '@material-ui/icons/LocalOfferOutlined';\nimport PlaylistPlayOutlined from '@material-ui/icons/PlaylistPlayOutlined'; // Check if exists, else PlaylistPlay\nimport PeopleOutline from '@material-ui/icons/PeopleOutline';\nimport PersonOutline from '@material-ui/icons/PersonOutline';\nimport EmojiEventsOutlined from '@material-ui/icons/EmojiEventsOutlined'; // Check, else plain\nimport SettingsOutlined from '@material-ui/icons/SettingsOutlined';\nimport GavelOutlined from '@material-ui/icons/GavelOutlined';\nimport MenuOpenIcon from '@material-ui/icons/MenuOpen';\nimport ChevronRightIcon from '@material-ui/icons/ChevronRight';\nimport RateReviewOutlined from '@material-ui/icons/RateReviewOutlined';\n\nimport {\n articlesRouteRef,\n collectionsRouteRef,\n entitiesRouteRef,\n favoriteQuestionsRouteRef,\n linksRouteRef,\n moderatorRouteRef,\n qetaRouteRef,\n questionsRouteRef,\n reviewRouteRef,\n settingsRouteRef,\n statisticsRouteRef,\n tagsRouteRef,\n userRouteRef,\n usersRouteRef,\n} from '../../routes';\nimport { useCanReview, useIdentityApi, useIsModerator } from '../../hooks';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { qetaTranslationRef } from '../../translation.ts';\n\nexport const useStyles = makeStyles(\n theme => {\n return {\n leftMenu: {\n top: '0',\n width: '220px', // Standard width\n paddingTop: 0,\n paddingBottom: theme.spacing(2),\n transition: 'width 0.2s ease-in-out',\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n },\n leftMenuCompact: {\n width: '70px',\n overflowX: 'hidden',\n '& $sectionHeader': {\n display: 'none',\n },\n },\n inPopup: {\n marginRight: 0,\n padding: theme.spacing(1),\n width: 'auto',\n },\n outsidePopup: {\n paddingRight: theme.spacing(2),\n },\n menuItem: {\n margin: (props: any) => (props.compact ? 0 : theme.spacing(0, 1.5)),\n justifyContent: (props: any) =>\n props.compact ? 'center' : 'flex-start',\n padding: (props: any) =>\n props.compact ? theme.spacing(1, 0) : theme.spacing(0.5, 0.5),\n borderRadius: (props: any) =>\n props.compact ? 0 : theme.shape.borderRadius,\n transition: 'all 0.2s ease-in-out',\n color: theme.palette.text.primary,\n display: 'flex',\n alignItems: 'center',\n minHeight: 40,\n maxWidth: '80%',\n '&:hover': {\n backgroundColor: theme.palette.action.hover,\n },\n },\n selectedMenuItem: {\n color: theme.palette.primary.main,\n backgroundColor: 'transparent',\n fontWeight: 600,\n position: 'relative',\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n left: 0,\n top: '50%',\n transform: 'translateY(-50%)',\n height: '60%',\n width: '4px',\n backgroundColor: theme.palette.primary.main,\n borderRadius: '0 4px 4px 0',\n },\n '&:hover': {\n backgroundColor: theme.palette.action.hover,\n },\n '& svg': {\n color: theme.palette.primary.main,\n },\n },\n menuIcon: {\n minWidth: '32px',\n color: 'inherit',\n display: 'flex',\n justifyContent: 'center',\n },\n sectionHeader: {\n padding: theme.spacing(0.5, 2, 0.5, 2),\n marginTop: theme.spacing(2),\n color: theme.palette.text.secondary,\n fontWeight: 600,\n textTransform: 'uppercase',\n fontSize: '14px',\n letterSpacing: '0.5px',\n whiteSpace: 'nowrap',\n },\n toggleButton: {\n marginLeft: 'auto',\n marginRight: theme.spacing(0),\n marginBottom: theme.spacing(1),\n },\n label: {\n marginLeft: theme.spacing(1),\n whiteSpace: 'nowrap',\n opacity: 1,\n transition: 'opacity 0.2s',\n },\n labelHidden: {\n opacity: 0,\n width: 0,\n display: 'none',\n },\n };\n },\n { name: 'QetaLeftMenu' },\n);\n\nexport const LeftMenu = (props: {\n onKeyDown?: (event: KeyboardEvent) => void;\n autoFocusItem?: boolean;\n onClick?: (event: MouseEvent<EventTarget>) => void;\n inPopup?: boolean;\n compact?: boolean;\n onToggle?: () => void;\n}) => {\n const rootRoute = useRouteRef(qetaRouteRef);\n const tagsRoute = useRouteRef(tagsRouteRef);\n const favoritesRoute = useRouteRef(favoriteQuestionsRouteRef);\n const statisticsRoute = useRouteRef(statisticsRouteRef);\n const userRoute = useRouteRef(userRouteRef);\n const questionsRoute = useRouteRef(questionsRouteRef);\n const articlesRoute = useRouteRef(articlesRouteRef);\n const linksRoute = useRouteRef(linksRouteRef);\n const collectionsRoute = useRouteRef(collectionsRouteRef);\n const entitiesRoute = useRouteRef(entitiesRouteRef);\n const usersRoute = useRouteRef(usersRouteRef);\n const moderatorRoute = useRouteRef(moderatorRouteRef);\n const reviewRoute = useRouteRef(reviewRouteRef);\n const settingsRoute = useRouteRef(settingsRouteRef);\n const styles = useStyles(props);\n const { t } = useTranslationRef(qetaTranslationRef);\n const location = useLocation();\n const navigate = useNavigate();\n const { isModerator } = useIsModerator();\n const { canReview } = useCanReview();\n const app = useApp();\n const { compact = false, onToggle } = props;\n const {\n value: user,\n loading: loadingUser,\n error: userError,\n } = useIdentityApi(api => api.getBackstageIdentity(), []);\n\n const EntityIcon = app.getSystemIcon('kind:system') ?? CategoryOutlined;\n\n const CustomMenuItem = ({\n route,\n hasSubRoutes,\n children,\n label,\n }: {\n route: string;\n hasSubRoutes?: boolean;\n children: ReactNode;\n label: string;\n }) => {\n const isSelected =\n route === location.pathname ||\n (hasSubRoutes && location.pathname?.startsWith(route));\n\n return (\n <Tooltip title={compact ? label : ''} placement=\"right\">\n <MenuItem\n onClick={e => {\n if (e.ctrlKey || e.metaKey || e.shiftKey || e.altKey) {\n return;\n }\n e.preventDefault();\n navigate(route);\n if (props.onClick) {\n props.onClick(e);\n }\n }}\n className={`${styles.menuItem} ${\n isSelected ? styles.selectedMenuItem : ''\n }`}\n href={route}\n component=\"a\"\n >\n {children}\n <Typography\n variant=\"body2\"\n className={compact ? styles.labelHidden : styles.label}\n style={{ fontWeight: isSelected ? 600 : 400 }}\n >\n {label}\n </Typography>\n </MenuItem>\n </Tooltip>\n );\n };\n\n const isPopup = props.inPopup;\n const isCompact = compact && !isPopup;\n\n return (\n <List\n id=\"left-menu\"\n className={`${styles.leftMenu} ${\n isPopup\n ? styles.inPopup\n : `${styles.outsidePopup} ${isCompact ? styles.leftMenuCompact : ''}`\n }`}\n component=\"nav\"\n aria-labelledby=\"nested-list-subheader\"\n disablePadding\n >\n <CustomMenuItem route={rootRoute()} label={t('leftMenu.home')}>\n <ListItemIcon className={styles.menuIcon}>\n <HomeOutlined fontSize=\"small\" />\n </ListItemIcon>\n </CustomMenuItem>\n\n <li style={{ listStyle: 'none' }}>\n <Typography className={styles.sectionHeader}>\n {t('leftMenu.content')}\n </Typography>\n </li>\n\n <CustomMenuItem\n route={questionsRoute()}\n hasSubRoutes\n label={t('leftMenu.questions')}\n >\n <ListItemIcon className={styles.menuIcon}>\n <HelpOutline fontSize=\"small\" />\n </ListItemIcon>\n </CustomMenuItem>\n\n <CustomMenuItem\n route={articlesRoute()}\n hasSubRoutes\n label={t('leftMenu.articles')}\n >\n <ListItemIcon className={styles.menuIcon}>\n <LibraryBooksOutlined fontSize=\"small\" />\n </ListItemIcon>\n </CustomMenuItem>\n\n <CustomMenuItem\n route={linksRoute()}\n hasSubRoutes\n label={t('leftMenu.links')}\n >\n <ListItemIcon className={styles.menuIcon}>\n <LinkIcon fontSize=\"small\" />\n </ListItemIcon>\n </CustomMenuItem>\n\n <CustomMenuItem\n route={favoritesRoute()}\n label={t('leftMenu.favoriteQuestions')}\n >\n <ListItemIcon className={styles.menuIcon}>\n <StarBorder fontSize=\"small\" />\n </ListItemIcon>\n </CustomMenuItem>\n\n <CustomMenuItem\n route={entitiesRoute()}\n hasSubRoutes\n label={t('leftMenu.entities')}\n >\n <ListItemIcon className={styles.menuIcon}>\n <EntityIcon fontSize=\"small\" />\n </ListItemIcon>\n </CustomMenuItem>\n\n <CustomMenuItem\n route={tagsRoute()}\n hasSubRoutes\n label={t('leftMenu.tags')}\n >\n <ListItemIcon className={styles.menuIcon}>\n <LocalOfferOutlined fontSize=\"small\" />\n </ListItemIcon>\n </CustomMenuItem>\n\n <li style={{ listStyle: 'none' }}>\n <Typography className={styles.sectionHeader}>\n {t('leftMenu.community')}\n </Typography>\n </li>\n\n <CustomMenuItem\n route={collectionsRoute()}\n hasSubRoutes\n label={t('leftMenu.collections')}\n >\n <ListItemIcon className={styles.menuIcon}>\n <PlaylistPlayOutlined fontSize=\"small\" />\n </ListItemIcon>\n </CustomMenuItem>\n\n <CustomMenuItem route={usersRoute()} label={t('leftMenu.users')}>\n <ListItemIcon className={styles.menuIcon}>\n <PeopleOutline fontSize=\"small\" />\n </ListItemIcon>\n </CustomMenuItem>\n\n {user && !loadingUser && !userError && (\n <CustomMenuItem\n route={`${userRoute()}/${user.userEntityRef}`}\n label={t('leftMenu.profile')}\n >\n <ListItemIcon className={styles.menuIcon}>\n <PersonOutline fontSize=\"small\" />\n </ListItemIcon>\n </CustomMenuItem>\n )}\n\n <CustomMenuItem\n route={statisticsRoute()}\n label={t('leftMenu.statistics')}\n >\n <ListItemIcon className={styles.menuIcon}>\n <EmojiEventsOutlined fontSize=\"small\" />\n </ListItemIcon>\n </CustomMenuItem>\n\n <li style={{ listStyle: 'none' }}>\n <Typography className={styles.sectionHeader}>\n {t('leftMenu.manage')}\n </Typography>\n </li>\n <CustomMenuItem route={settingsRoute()} label={t('leftMenu.settings')}>\n <ListItemIcon className={styles.menuIcon}>\n <SettingsOutlined fontSize=\"small\" />\n </ListItemIcon>\n </CustomMenuItem>\n\n {canReview && (\n <CustomMenuItem route={reviewRoute()} label={t('leftMenu.review')}>\n <ListItemIcon className={styles.menuIcon}>\n <RateReviewOutlined fontSize=\"small\" />\n </ListItemIcon>\n </CustomMenuItem>\n )}\n {isModerator && (\n <CustomMenuItem route={moderatorRoute()} label={t('leftMenu.moderate')}>\n <ListItemIcon className={styles.menuIcon}>\n <GavelOutlined fontSize=\"small\" />\n </ListItemIcon>\n </CustomMenuItem>\n )}\n {!isPopup && (\n <Box\n display=\"flex\"\n justifyContent={isCompact ? 'center' : 'flex-start'}\n style={{ marginTop: 'auto' }}\n >\n <Tooltip\n title={isCompact ? t('leftMenu.expand') : t('leftMenu.collapse')}\n placement=\"right\"\n >\n <IconButton\n onClick={onToggle}\n size=\"small\"\n className={isCompact ? '' : styles.toggleButton}\n style={{ marginTop: 8, marginLeft: isCompact ? -10 : 18 }}\n >\n {isCompact ? <ChevronRightIcon /> : <MenuOpenIcon />}\n </IconButton>\n </Tooltip>\n </Box>\n )}\n </List>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LeftMenu.esm.js","sources":["../../../src/components/LeftMenu/LeftMenu.tsx"],"sourcesContent":["import {\n Box,\n IconButton,\n List,\n ListItemIcon,\n makeStyles,\n MenuItem,\n Tooltip,\n Typography,\n} from '@material-ui/core';\nimport { KeyboardEvent, MouseEvent, ReactNode } from 'react';\nimport { useApp, useRouteRef } from '@backstage/core-plugin-api';\nimport { useNavigate } from 'react-router-dom';\nimport { useLocation } from 'react-use';\n// Icons\nimport HomeOutlined from '@material-ui/icons/HomeOutlined';\nimport HelpOutline from '@material-ui/icons/HelpOutline';\nimport LibraryBooksOutlined from '@material-ui/icons/LibraryBooksOutlined';\nimport LinkIcon from '@material-ui/icons/Link';\nimport StarBorder from '@material-ui/icons/StarBorder';\nimport CategoryOutlined from '@material-ui/icons/CategoryOutlined'; // For Entities?\nimport LocalOfferOutlined from '@material-ui/icons/LocalOfferOutlined';\nimport PlaylistPlayOutlined from '@material-ui/icons/PlaylistPlayOutlined'; // Check if exists, else PlaylistPlay\nimport PeopleOutline from '@material-ui/icons/PeopleOutline';\nimport PersonOutline from '@material-ui/icons/PersonOutline';\nimport EmojiEventsOutlined from '@material-ui/icons/EmojiEventsOutlined'; // Check, else plain\nimport SettingsOutlined from '@material-ui/icons/SettingsOutlined';\nimport GavelOutlined from '@material-ui/icons/GavelOutlined';\nimport MenuOpenIcon from '@material-ui/icons/MenuOpen';\nimport ChevronRightIcon from '@material-ui/icons/ChevronRight';\nimport RateReviewOutlined from '@material-ui/icons/RateReviewOutlined';\n\nimport {\n articlesRouteRef,\n collectionsRouteRef,\n entitiesRouteRef,\n favoriteQuestionsRouteRef,\n linksRouteRef,\n moderatorRouteRef,\n qetaRouteRef,\n questionsRouteRef,\n reviewRouteRef,\n settingsRouteRef,\n statisticsRouteRef,\n tagsRouteRef,\n userRouteRef,\n usersRouteRef,\n} from '../../routes';\nimport { useCanReview, useIdentityApi, useIsModerator } from '../../hooks';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { qetaTranslationRef } from '../../translation.ts';\n\nexport const useStyles = makeStyles(\n theme => {\n return {\n leftMenu: {\n top: '0',\n width: '220px', // Standard width\n paddingTop: 0,\n paddingBottom: theme.spacing(2),\n transition: 'width 0.2s ease-in-out',\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n },\n leftMenuCompact: {\n width: '70px',\n overflowX: 'hidden',\n '& $sectionHeader': {\n display: 'none',\n },\n },\n inPopup: {\n marginRight: 0,\n padding: theme.spacing(1),\n width: 'auto',\n },\n outsidePopup: {\n paddingRight: theme.spacing(2),\n },\n menuItem: {\n margin: (props: any) => (props.compact ? 0 : theme.spacing(0, 0)),\n justifyContent: (props: any) =>\n props.compact ? 'center' : 'flex-start',\n padding: (props: any) =>\n props.compact ? theme.spacing(1, 0) : theme.spacing(0.5, 0.5),\n borderRadius: (props: any) =>\n props.compact ? 0 : theme.shape.borderRadius,\n transition: 'all 0.2s ease-in-out',\n color: theme.palette.text.primary,\n display: 'flex',\n alignItems: 'center',\n minHeight: 40,\n maxWidth: '80%',\n '&:hover': {\n backgroundColor: theme.palette.action.hover,\n },\n },\n selectedMenuItem: {\n color: theme.palette.primary.main,\n backgroundColor: 'transparent',\n fontWeight: 600,\n position: 'relative',\n '&:hover': {\n backgroundColor: theme.palette.action.hover,\n },\n '& svg': {\n color: theme.palette.primary.main,\n },\n },\n menuIcon: {\n minWidth: '32px',\n color: 'inherit',\n display: 'flex',\n justifyContent: 'center',\n },\n sectionHeader: {\n padding: theme.spacing(0.5, 2, 0.5, 1),\n marginTop: theme.spacing(2),\n color: theme.palette.text.secondary,\n fontWeight: 600,\n textTransform: 'uppercase',\n fontSize: '14px',\n letterSpacing: '0.5px',\n whiteSpace: 'nowrap',\n },\n toggleButton: {\n marginLeft: 'auto',\n marginRight: theme.spacing(0),\n marginBottom: theme.spacing(1),\n },\n label: {\n marginLeft: theme.spacing(1),\n whiteSpace: 'nowrap',\n opacity: 1,\n transition: 'opacity 0.2s',\n },\n labelHidden: {\n opacity: 0,\n width: 0,\n display: 'none',\n },\n };\n },\n { name: 'QetaLeftMenu' },\n);\n\nexport const LeftMenu = (props: {\n onKeyDown?: (event: KeyboardEvent) => void;\n autoFocusItem?: boolean;\n onClick?: (event: MouseEvent<EventTarget>) => void;\n inPopup?: boolean;\n compact?: boolean;\n onToggle?: () => void;\n}) => {\n const rootRoute = useRouteRef(qetaRouteRef);\n const tagsRoute = useRouteRef(tagsRouteRef);\n const favoritesRoute = useRouteRef(favoriteQuestionsRouteRef);\n const statisticsRoute = useRouteRef(statisticsRouteRef);\n const userRoute = useRouteRef(userRouteRef);\n const questionsRoute = useRouteRef(questionsRouteRef);\n const articlesRoute = useRouteRef(articlesRouteRef);\n const linksRoute = useRouteRef(linksRouteRef);\n const collectionsRoute = useRouteRef(collectionsRouteRef);\n const entitiesRoute = useRouteRef(entitiesRouteRef);\n const usersRoute = useRouteRef(usersRouteRef);\n const moderatorRoute = useRouteRef(moderatorRouteRef);\n const reviewRoute = useRouteRef(reviewRouteRef);\n const settingsRoute = useRouteRef(settingsRouteRef);\n const styles = useStyles(props);\n const { t } = useTranslationRef(qetaTranslationRef);\n const location = useLocation();\n const navigate = useNavigate();\n const { isModerator } = useIsModerator();\n const { canReview } = useCanReview();\n const app = useApp();\n const { compact = false, onToggle } = props;\n const {\n value: user,\n loading: loadingUser,\n error: userError,\n } = useIdentityApi(api => api.getBackstageIdentity(), []);\n\n const EntityIcon = app.getSystemIcon('kind:system') ?? CategoryOutlined;\n\n const CustomMenuItem = ({\n route,\n hasSubRoutes,\n children,\n label,\n }: {\n route: string;\n hasSubRoutes?: boolean;\n children: ReactNode;\n label: string;\n }) => {\n const isSelected =\n route === location.pathname ||\n (hasSubRoutes && location.pathname?.startsWith(route));\n\n return (\n <Tooltip title={compact ? label : ''} placement=\"right\">\n <MenuItem\n onClick={e => {\n if (e.ctrlKey || e.metaKey || e.shiftKey || e.altKey) {\n return;\n }\n e.preventDefault();\n navigate(route);\n if (props.onClick) {\n props.onClick(e);\n }\n }}\n className={`${styles.menuItem} ${\n isSelected ? styles.selectedMenuItem : ''\n }`}\n href={route}\n component=\"a\"\n >\n {children}\n <Typography\n variant=\"body2\"\n className={compact ? styles.labelHidden : styles.label}\n style={{ fontWeight: isSelected ? 600 : 400 }}\n >\n {label}\n </Typography>\n </MenuItem>\n </Tooltip>\n );\n };\n\n const isPopup = props.inPopup;\n const isCompact = compact && !isPopup;\n\n return (\n <List\n id=\"left-menu\"\n className={`${styles.leftMenu} ${\n isPopup\n ? styles.inPopup\n : `${styles.outsidePopup} ${isCompact ? styles.leftMenuCompact : ''}`\n }`}\n component=\"nav\"\n aria-labelledby=\"nested-list-subheader\"\n disablePadding\n >\n <CustomMenuItem route={rootRoute()} label={t('leftMenu.home')}>\n <ListItemIcon className={styles.menuIcon}>\n <HomeOutlined fontSize=\"small\" />\n </ListItemIcon>\n </CustomMenuItem>\n\n <li style={{ listStyle: 'none' }}>\n <Typography className={styles.sectionHeader}>\n {t('leftMenu.content')}\n </Typography>\n </li>\n\n <CustomMenuItem\n route={questionsRoute()}\n hasSubRoutes\n label={t('leftMenu.questions')}\n >\n <ListItemIcon className={styles.menuIcon}>\n <HelpOutline fontSize=\"small\" />\n </ListItemIcon>\n </CustomMenuItem>\n\n <CustomMenuItem\n route={articlesRoute()}\n hasSubRoutes\n label={t('leftMenu.articles')}\n >\n <ListItemIcon className={styles.menuIcon}>\n <LibraryBooksOutlined fontSize=\"small\" />\n </ListItemIcon>\n </CustomMenuItem>\n\n <CustomMenuItem\n route={linksRoute()}\n hasSubRoutes\n label={t('leftMenu.links')}\n >\n <ListItemIcon className={styles.menuIcon}>\n <LinkIcon fontSize=\"small\" />\n </ListItemIcon>\n </CustomMenuItem>\n\n <CustomMenuItem\n route={favoritesRoute()}\n label={t('leftMenu.favoriteQuestions')}\n >\n <ListItemIcon className={styles.menuIcon}>\n <StarBorder fontSize=\"small\" />\n </ListItemIcon>\n </CustomMenuItem>\n\n <CustomMenuItem\n route={entitiesRoute()}\n hasSubRoutes\n label={t('leftMenu.entities')}\n >\n <ListItemIcon className={styles.menuIcon}>\n <EntityIcon fontSize=\"small\" />\n </ListItemIcon>\n </CustomMenuItem>\n\n <CustomMenuItem\n route={tagsRoute()}\n hasSubRoutes\n label={t('leftMenu.tags')}\n >\n <ListItemIcon className={styles.menuIcon}>\n <LocalOfferOutlined fontSize=\"small\" />\n </ListItemIcon>\n </CustomMenuItem>\n\n <li style={{ listStyle: 'none' }}>\n <Typography className={styles.sectionHeader}>\n {t('leftMenu.community')}\n </Typography>\n </li>\n\n <CustomMenuItem\n route={collectionsRoute()}\n hasSubRoutes\n label={t('leftMenu.collections')}\n >\n <ListItemIcon className={styles.menuIcon}>\n <PlaylistPlayOutlined fontSize=\"small\" />\n </ListItemIcon>\n </CustomMenuItem>\n\n <CustomMenuItem route={usersRoute()} label={t('leftMenu.users')}>\n <ListItemIcon className={styles.menuIcon}>\n <PeopleOutline fontSize=\"small\" />\n </ListItemIcon>\n </CustomMenuItem>\n\n {user && !loadingUser && !userError && (\n <CustomMenuItem\n route={`${userRoute()}/${user.userEntityRef}`}\n label={t('leftMenu.profile')}\n >\n <ListItemIcon className={styles.menuIcon}>\n <PersonOutline fontSize=\"small\" />\n </ListItemIcon>\n </CustomMenuItem>\n )}\n\n <CustomMenuItem\n route={statisticsRoute()}\n label={t('leftMenu.statistics')}\n >\n <ListItemIcon className={styles.menuIcon}>\n <EmojiEventsOutlined fontSize=\"small\" />\n </ListItemIcon>\n </CustomMenuItem>\n\n <li style={{ listStyle: 'none' }}>\n <Typography className={styles.sectionHeader}>\n {t('leftMenu.manage')}\n </Typography>\n </li>\n <CustomMenuItem route={settingsRoute()} label={t('leftMenu.settings')}>\n <ListItemIcon className={styles.menuIcon}>\n <SettingsOutlined fontSize=\"small\" />\n </ListItemIcon>\n </CustomMenuItem>\n\n {canReview && (\n <CustomMenuItem route={reviewRoute()} label={t('leftMenu.review')}>\n <ListItemIcon className={styles.menuIcon}>\n <RateReviewOutlined fontSize=\"small\" />\n </ListItemIcon>\n </CustomMenuItem>\n )}\n {isModerator && (\n <CustomMenuItem route={moderatorRoute()} label={t('leftMenu.moderate')}>\n <ListItemIcon className={styles.menuIcon}>\n <GavelOutlined fontSize=\"small\" />\n </ListItemIcon>\n </CustomMenuItem>\n )}\n {!isPopup && (\n <Box\n display=\"flex\"\n justifyContent={isCompact ? 'center' : 'flex-start'}\n style={{ marginTop: 'auto' }}\n >\n <Tooltip\n title={isCompact ? t('leftMenu.expand') : t('leftMenu.collapse')}\n placement=\"right\"\n >\n <IconButton\n onClick={onToggle}\n size=\"small\"\n className={isCompact ? '' : styles.toggleButton}\n style={{ marginTop: 8, marginLeft: isCompact ? -10 : 5 }}\n >\n {isCompact ? <ChevronRightIcon /> : <MenuOpenIcon />}\n </IconButton>\n </Tooltip>\n </Box>\n )}\n </List>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDO,MAAM,SAAY,GAAA,UAAA;AAAA,EACvB,CAAS,KAAA,KAAA;AACP,IAAO,OAAA;AAAA,MACL,QAAU,EAAA;AAAA,QACR,GAAK,EAAA,GAAA;AAAA,QACL,KAAO,EAAA,OAAA;AAAA;AAAA,QACP,UAAY,EAAA,CAAA;AAAA,QACZ,aAAA,EAAe,KAAM,CAAA,OAAA,CAAQ,CAAC,CAAA;AAAA,QAC9B,UAAY,EAAA,wBAAA;AAAA,QACZ,OAAS,EAAA,MAAA;AAAA,QACT,aAAe,EAAA,QAAA;AAAA,QACf,MAAQ,EAAA;AAAA,OACV;AAAA,MACA,eAAiB,EAAA;AAAA,QACf,KAAO,EAAA,MAAA;AAAA,QACP,SAAW,EAAA,QAAA;AAAA,QACX,kBAAoB,EAAA;AAAA,UAClB,OAAS,EAAA;AAAA;AACX,OACF;AAAA,MACA,OAAS,EAAA;AAAA,QACP,WAAa,EAAA,CAAA;AAAA,QACb,OAAA,EAAS,KAAM,CAAA,OAAA,CAAQ,CAAC,CAAA;AAAA,QACxB,KAAO,EAAA;AAAA,OACT;AAAA,MACA,YAAc,EAAA;AAAA,QACZ,YAAA,EAAc,KAAM,CAAA,OAAA,CAAQ,CAAC;AAAA,OAC/B;AAAA,MACA,QAAU,EAAA;AAAA,QACR,MAAA,EAAQ,CAAC,KAAgB,KAAA,KAAA,CAAM,UAAU,CAAI,GAAA,KAAA,CAAM,OAAQ,CAAA,CAAA,EAAG,CAAC,CAAA;AAAA,QAC/D,cAAgB,EAAA,CAAC,KACf,KAAA,KAAA,CAAM,UAAU,QAAW,GAAA,YAAA;AAAA,QAC7B,OAAS,EAAA,CAAC,KACR,KAAA,KAAA,CAAM,OAAU,GAAA,KAAA,CAAM,OAAQ,CAAA,CAAA,EAAG,CAAC,CAAA,GAAI,KAAM,CAAA,OAAA,CAAQ,KAAK,GAAG,CAAA;AAAA,QAC9D,cAAc,CAAC,KAAA,KACb,MAAM,OAAU,GAAA,CAAA,GAAI,MAAM,KAAM,CAAA,YAAA;AAAA,QAClC,UAAY,EAAA,sBAAA;AAAA,QACZ,KAAA,EAAO,KAAM,CAAA,OAAA,CAAQ,IAAK,CAAA,OAAA;AAAA,QAC1B,OAAS,EAAA,MAAA;AAAA,QACT,UAAY,EAAA,QAAA;AAAA,QACZ,SAAW,EAAA,EAAA;AAAA,QACX,QAAU,EAAA,KAAA;AAAA,QACV,SAAW,EAAA;AAAA,UACT,eAAA,EAAiB,KAAM,CAAA,OAAA,CAAQ,MAAO,CAAA;AAAA;AACxC,OACF;AAAA,MACA,gBAAkB,EAAA;AAAA,QAChB,KAAA,EAAO,KAAM,CAAA,OAAA,CAAQ,OAAQ,CAAA,IAAA;AAAA,QAC7B,eAAiB,EAAA,aAAA;AAAA,QACjB,UAAY,EAAA,GAAA;AAAA,QACZ,QAAU,EAAA,UAAA;AAAA,QACV,SAAW,EAAA;AAAA,UACT,eAAA,EAAiB,KAAM,CAAA,OAAA,CAAQ,MAAO,CAAA;AAAA,SACxC;AAAA,QACA,OAAS,EAAA;AAAA,UACP,KAAA,EAAO,KAAM,CAAA,OAAA,CAAQ,OAAQ,CAAA;AAAA;AAC/B,OACF;AAAA,MACA,QAAU,EAAA;AAAA,QACR,QAAU,EAAA,MAAA;AAAA,QACV,KAAO,EAAA,SAAA;AAAA,QACP,OAAS,EAAA,MAAA;AAAA,QACT,cAAgB,EAAA;AAAA,OAClB;AAAA,MACA,aAAe,EAAA;AAAA,QACb,SAAS,KAAM,CAAA,OAAA,CAAQ,GAAK,EAAA,CAAA,EAAG,KAAK,CAAC,CAAA;AAAA,QACrC,SAAA,EAAW,KAAM,CAAA,OAAA,CAAQ,CAAC,CAAA;AAAA,QAC1B,KAAA,EAAO,KAAM,CAAA,OAAA,CAAQ,IAAK,CAAA,SAAA;AAAA,QAC1B,UAAY,EAAA,GAAA;AAAA,QACZ,aAAe,EAAA,WAAA;AAAA,QACf,QAAU,EAAA,MAAA;AAAA,QACV,aAAe,EAAA,OAAA;AAAA,QACf,UAAY,EAAA;AAAA,OACd;AAAA,MACA,YAAc,EAAA;AAAA,QACZ,UAAY,EAAA,MAAA;AAAA,QACZ,WAAA,EAAa,KAAM,CAAA,OAAA,CAAQ,CAAC,CAAA;AAAA,QAC5B,YAAA,EAAc,KAAM,CAAA,OAAA,CAAQ,CAAC;AAAA,OAC/B;AAAA,MACA,KAAO,EAAA;AAAA,QACL,UAAA,EAAY,KAAM,CAAA,OAAA,CAAQ,CAAC,CAAA;AAAA,QAC3B,UAAY,EAAA,QAAA;AAAA,QACZ,OAAS,EAAA,CAAA;AAAA,QACT,UAAY,EAAA;AAAA,OACd;AAAA,MACA,WAAa,EAAA;AAAA,QACX,OAAS,EAAA,CAAA;AAAA,QACT,KAAO,EAAA,CAAA;AAAA,QACP,OAAS,EAAA;AAAA;AACX,KACF;AAAA,GACF;AAAA,EACA,EAAE,MAAM,cAAe;AACzB;AAEa,MAAA,QAAA,GAAW,CAAC,KAOnB,KAAA;AACJ,EAAM,MAAA,SAAA,GAAY,YAAY,YAAY,CAAA;AAC1C,EAAM,MAAA,SAAA,GAAY,YAAY,YAAY,CAAA;AAC1C,EAAM,MAAA,cAAA,GAAiB,YAAY,yBAAyB,CAAA;AAC5D,EAAM,MAAA,eAAA,GAAkB,YAAY,kBAAkB,CAAA;AACtD,EAAM,MAAA,SAAA,GAAY,YAAY,YAAY,CAAA;AAC1C,EAAM,MAAA,cAAA,GAAiB,YAAY,iBAAiB,CAAA;AACpD,EAAM,MAAA,aAAA,GAAgB,YAAY,gBAAgB,CAAA;AAClD,EAAM,MAAA,UAAA,GAAa,YAAY,aAAa,CAAA;AAC5C,EAAM,MAAA,gBAAA,GAAmB,YAAY,mBAAmB,CAAA;AACxD,EAAM,MAAA,aAAA,GAAgB,YAAY,gBAAgB,CAAA;AAClD,EAAM,MAAA,UAAA,GAAa,YAAY,aAAa,CAAA;AAC5C,EAAM,MAAA,cAAA,GAAiB,YAAY,iBAAiB,CAAA;AACpD,EAAM,MAAA,WAAA,GAAc,YAAY,cAAc,CAAA;AAC9C,EAAM,MAAA,aAAA,GAAgB,YAAY,gBAAgB,CAAA;AAClD,EAAM,MAAA,MAAA,GAAS,UAAU,KAAK,CAAA;AAC9B,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,kBAAkB,CAAA;AAClD,EAAA,MAAM,WAAW,WAAY,EAAA;AAC7B,EAAA,MAAM,WAAW,WAAY,EAAA;AAC7B,EAAM,MAAA,EAAE,WAAY,EAAA,GAAI,cAAe,EAAA;AACvC,EAAM,MAAA,EAAE,SAAU,EAAA,GAAI,YAAa,EAAA;AACnC,EAAA,MAAM,MAAM,MAAO,EAAA;AACnB,EAAA,MAAM,EAAE,OAAA,GAAU,KAAO,EAAA,QAAA,EAAa,GAAA,KAAA;AACtC,EAAM,MAAA;AAAA,IACJ,KAAO,EAAA,IAAA;AAAA,IACP,OAAS,EAAA,WAAA;AAAA,IACT,KAAO,EAAA;AAAA,MACL,cAAe,CAAA,CAAA,GAAA,KAAO,IAAI,oBAAqB,EAAA,EAAG,EAAE,CAAA;AAExD,EAAA,MAAM,UAAa,GAAA,GAAA,CAAI,aAAc,CAAA,aAAa,CAAK,IAAA,gBAAA;AAEvD,EAAA,MAAM,iBAAiB,CAAC;AAAA,IACtB,KAAA;AAAA,IACA,YAAA;AAAA,IACA,QAAA;AAAA,IACA;AAAA,GAMI,KAAA;AACJ,IAAM,MAAA,UAAA,GACJ,UAAU,QAAS,CAAA,QAAA,IAClB,gBAAgB,QAAS,CAAA,QAAA,EAAU,WAAW,KAAK,CAAA;AAEtD,IAAA,2BACG,OAAQ,EAAA,EAAA,KAAA,EAAO,UAAU,KAAQ,GAAA,EAAA,EAAI,WAAU,OAC9C,EAAA,QAAA,kBAAA,IAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,SAAS,CAAK,CAAA,KAAA;AACZ,UAAA,IAAI,EAAE,OAAW,IAAA,CAAA,CAAE,WAAW,CAAE,CAAA,QAAA,IAAY,EAAE,MAAQ,EAAA;AACpD,YAAA;AAAA;AAEF,UAAA,CAAA,CAAE,cAAe,EAAA;AACjB,UAAA,QAAA,CAAS,KAAK,CAAA;AACd,UAAA,IAAI,MAAM,OAAS,EAAA;AACjB,YAAA,KAAA,CAAM,QAAQ,CAAC,CAAA;AAAA;AACjB,SACF;AAAA,QACA,SAAA,EAAW,GAAG,MAAO,CAAA,QAAQ,IAC3B,UAAa,GAAA,MAAA,CAAO,mBAAmB,EACzC,CAAA,CAAA;AAAA,QACA,IAAM,EAAA,KAAA;AAAA,QACN,SAAU,EAAA,GAAA;AAAA,QAET,QAAA,EAAA;AAAA,UAAA,QAAA;AAAA,0BACD,GAAA;AAAA,YAAC,UAAA;AAAA,YAAA;AAAA,cACC,OAAQ,EAAA,OAAA;AAAA,cACR,SAAW,EAAA,OAAA,GAAU,MAAO,CAAA,WAAA,GAAc,MAAO,CAAA,KAAA;AAAA,cACjD,KAAO,EAAA,EAAE,UAAY,EAAA,UAAA,GAAa,MAAM,GAAI,EAAA;AAAA,cAE3C,QAAA,EAAA;AAAA;AAAA;AACH;AAAA;AAAA,KAEJ,EAAA,CAAA;AAAA,GAEJ;AAEA,EAAA,MAAM,UAAU,KAAM,CAAA,OAAA;AACtB,EAAM,MAAA,SAAA,GAAY,WAAW,CAAC,OAAA;AAE9B,EACE,uBAAA,IAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,EAAG,EAAA,WAAA;AAAA,MACH,WAAW,CAAG,EAAA,MAAA,CAAO,QAAQ,CAAA,CAAA,EAC3B,UACI,MAAO,CAAA,OAAA,GACP,CAAG,EAAA,MAAA,CAAO,YAAY,CAAI,CAAA,EAAA,SAAA,GAAY,MAAO,CAAA,eAAA,GAAkB,EAAE,CACvE,CAAA,CAAA,CAAA;AAAA,MACA,SAAU,EAAA,KAAA;AAAA,MACV,iBAAgB,EAAA,uBAAA;AAAA,MAChB,cAAc,EAAA,IAAA;AAAA,MAEd,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,kBAAe,KAAO,EAAA,SAAA,IAAa,KAAO,EAAA,CAAA,CAAE,eAAe,CAC1D,EAAA,QAAA,kBAAA,GAAA,CAAC,YAAa,EAAA,EAAA,SAAA,EAAW,OAAO,QAC9B,EAAA,QAAA,kBAAA,GAAA,CAAC,gBAAa,QAAS,EAAA,OAAA,EAAQ,GACjC,CACF,EAAA,CAAA;AAAA,wBAEC,GAAA,CAAA,IAAA,EAAA,EAAG,KAAO,EAAA,EAAE,WAAW,MAAO,EAAA,EAC7B,QAAC,kBAAA,GAAA,CAAA,UAAA,EAAA,EAAW,WAAW,MAAO,CAAA,aAAA,EAC3B,QAAE,EAAA,CAAA,CAAA,kBAAkB,GACvB,CACF,EAAA,CAAA;AAAA,wBAEA,GAAA;AAAA,UAAC,cAAA;AAAA,UAAA;AAAA,YACC,OAAO,cAAe,EAAA;AAAA,YACtB,YAAY,EAAA,IAAA;AAAA,YACZ,KAAA,EAAO,EAAE,oBAAoB,CAAA;AAAA,YAE7B,QAAA,kBAAA,GAAA,CAAC,gBAAa,SAAW,EAAA,MAAA,CAAO,UAC9B,QAAC,kBAAA,GAAA,CAAA,WAAA,EAAA,EAAY,QAAS,EAAA,OAAA,EAAQ,CAChC,EAAA;AAAA;AAAA,SACF;AAAA,wBAEA,GAAA;AAAA,UAAC,cAAA;AAAA,UAAA;AAAA,YACC,OAAO,aAAc,EAAA;AAAA,YACrB,YAAY,EAAA,IAAA;AAAA,YACZ,KAAA,EAAO,EAAE,mBAAmB,CAAA;AAAA,YAE5B,QAAA,kBAAA,GAAA,CAAC,gBAAa,SAAW,EAAA,MAAA,CAAO,UAC9B,QAAC,kBAAA,GAAA,CAAA,oBAAA,EAAA,EAAqB,QAAS,EAAA,OAAA,EAAQ,CACzC,EAAA;AAAA;AAAA,SACF;AAAA,wBAEA,GAAA;AAAA,UAAC,cAAA;AAAA,UAAA;AAAA,YACC,OAAO,UAAW,EAAA;AAAA,YAClB,YAAY,EAAA,IAAA;AAAA,YACZ,KAAA,EAAO,EAAE,gBAAgB,CAAA;AAAA,YAEzB,QAAA,kBAAA,GAAA,CAAC,gBAAa,SAAW,EAAA,MAAA,CAAO,UAC9B,QAAC,kBAAA,GAAA,CAAA,QAAA,EAAA,EAAS,QAAS,EAAA,OAAA,EAAQ,CAC7B,EAAA;AAAA;AAAA,SACF;AAAA,wBAEA,GAAA;AAAA,UAAC,cAAA;AAAA,UAAA;AAAA,YACC,OAAO,cAAe,EAAA;AAAA,YACtB,KAAA,EAAO,EAAE,4BAA4B,CAAA;AAAA,YAErC,QAAA,kBAAA,GAAA,CAAC,gBAAa,SAAW,EAAA,MAAA,CAAO,UAC9B,QAAC,kBAAA,GAAA,CAAA,UAAA,EAAA,EAAW,QAAS,EAAA,OAAA,EAAQ,CAC/B,EAAA;AAAA;AAAA,SACF;AAAA,wBAEA,GAAA;AAAA,UAAC,cAAA;AAAA,UAAA;AAAA,YACC,OAAO,aAAc,EAAA;AAAA,YACrB,YAAY,EAAA,IAAA;AAAA,YACZ,KAAA,EAAO,EAAE,mBAAmB,CAAA;AAAA,YAE5B,QAAA,kBAAA,GAAA,CAAC,gBAAa,SAAW,EAAA,MAAA,CAAO,UAC9B,QAAC,kBAAA,GAAA,CAAA,UAAA,EAAA,EAAW,QAAS,EAAA,OAAA,EAAQ,CAC/B,EAAA;AAAA;AAAA,SACF;AAAA,wBAEA,GAAA;AAAA,UAAC,cAAA;AAAA,UAAA;AAAA,YACC,OAAO,SAAU,EAAA;AAAA,YACjB,YAAY,EAAA,IAAA;AAAA,YACZ,KAAA,EAAO,EAAE,eAAe,CAAA;AAAA,YAExB,QAAA,kBAAA,GAAA,CAAC,gBAAa,SAAW,EAAA,MAAA,CAAO,UAC9B,QAAC,kBAAA,GAAA,CAAA,kBAAA,EAAA,EAAmB,QAAS,EAAA,OAAA,EAAQ,CACvC,EAAA;AAAA;AAAA,SACF;AAAA,wBAEC,GAAA,CAAA,IAAA,EAAA,EAAG,KAAO,EAAA,EAAE,WAAW,MAAO,EAAA,EAC7B,QAAC,kBAAA,GAAA,CAAA,UAAA,EAAA,EAAW,WAAW,MAAO,CAAA,aAAA,EAC3B,QAAE,EAAA,CAAA,CAAA,oBAAoB,GACzB,CACF,EAAA,CAAA;AAAA,wBAEA,GAAA;AAAA,UAAC,cAAA;AAAA,UAAA;AAAA,YACC,OAAO,gBAAiB,EAAA;AAAA,YACxB,YAAY,EAAA,IAAA;AAAA,YACZ,KAAA,EAAO,EAAE,sBAAsB,CAAA;AAAA,YAE/B,QAAA,kBAAA,GAAA,CAAC,gBAAa,SAAW,EAAA,MAAA,CAAO,UAC9B,QAAC,kBAAA,GAAA,CAAA,oBAAA,EAAA,EAAqB,QAAS,EAAA,OAAA,EAAQ,CACzC,EAAA;AAAA;AAAA,SACF;AAAA,4BAEC,cAAe,EAAA,EAAA,KAAA,EAAO,YAAc,EAAA,KAAA,EAAO,EAAE,gBAAgB,CAAA,EAC5D,8BAAC,YAAa,EAAA,EAAA,SAAA,EAAW,OAAO,QAC9B,EAAA,QAAA,kBAAA,GAAA,CAAC,iBAAc,QAAS,EAAA,OAAA,EAAQ,GAClC,CACF,EAAA,CAAA;AAAA,QAEC,IAAQ,IAAA,CAAC,WAAe,IAAA,CAAC,SACxB,oBAAA,GAAA;AAAA,UAAC,cAAA;AAAA,UAAA;AAAA,YACC,OAAO,CAAG,EAAA,SAAA,EAAW,CAAA,CAAA,EAAI,KAAK,aAAa,CAAA,CAAA;AAAA,YAC3C,KAAA,EAAO,EAAE,kBAAkB,CAAA;AAAA,YAE3B,QAAA,kBAAA,GAAA,CAAC,gBAAa,SAAW,EAAA,MAAA,CAAO,UAC9B,QAAC,kBAAA,GAAA,CAAA,aAAA,EAAA,EAAc,QAAS,EAAA,OAAA,EAAQ,CAClC,EAAA;AAAA;AAAA,SACF;AAAA,wBAGF,GAAA;AAAA,UAAC,cAAA;AAAA,UAAA;AAAA,YACC,OAAO,eAAgB,EAAA;AAAA,YACvB,KAAA,EAAO,EAAE,qBAAqB,CAAA;AAAA,YAE9B,QAAA,kBAAA,GAAA,CAAC,gBAAa,SAAW,EAAA,MAAA,CAAO,UAC9B,QAAC,kBAAA,GAAA,CAAA,mBAAA,EAAA,EAAoB,QAAS,EAAA,OAAA,EAAQ,CACxC,EAAA;AAAA;AAAA,SACF;AAAA,wBAEC,GAAA,CAAA,IAAA,EAAA,EAAG,KAAO,EAAA,EAAE,WAAW,MAAO,EAAA,EAC7B,QAAC,kBAAA,GAAA,CAAA,UAAA,EAAA,EAAW,WAAW,MAAO,CAAA,aAAA,EAC3B,QAAE,EAAA,CAAA,CAAA,iBAAiB,GACtB,CACF,EAAA,CAAA;AAAA,4BACC,cAAe,EAAA,EAAA,KAAA,EAAO,eAAiB,EAAA,KAAA,EAAO,EAAE,mBAAmB,CAAA,EAClE,8BAAC,YAAa,EAAA,EAAA,SAAA,EAAW,OAAO,QAC9B,EAAA,QAAA,kBAAA,GAAA,CAAC,oBAAiB,QAAS,EAAA,OAAA,EAAQ,GACrC,CACF,EAAA,CAAA;AAAA,QAEC,SAAA,wBACE,cAAe,EAAA,EAAA,KAAA,EAAO,aAAe,EAAA,KAAA,EAAO,EAAE,iBAAiB,CAAA,EAC9D,8BAAC,YAAa,EAAA,EAAA,SAAA,EAAW,OAAO,QAC9B,EAAA,QAAA,kBAAA,GAAA,CAAC,sBAAmB,QAAS,EAAA,OAAA,EAAQ,GACvC,CACF,EAAA,CAAA;AAAA,QAED,WAAA,wBACE,cAAe,EAAA,EAAA,KAAA,EAAO,gBAAkB,EAAA,KAAA,EAAO,EAAE,mBAAmB,CAAA,EACnE,8BAAC,YAAa,EAAA,EAAA,SAAA,EAAW,OAAO,QAC9B,EAAA,QAAA,kBAAA,GAAA,CAAC,iBAAc,QAAS,EAAA,OAAA,EAAQ,GAClC,CACF,EAAA,CAAA;AAAA,QAED,CAAC,OACA,oBAAA,GAAA;AAAA,UAAC,GAAA;AAAA,UAAA;AAAA,YACC,OAAQ,EAAA,MAAA;AAAA,YACR,cAAA,EAAgB,YAAY,QAAW,GAAA,YAAA;AAAA,YACvC,KAAA,EAAO,EAAE,SAAA,EAAW,MAAO,EAAA;AAAA,YAE3B,QAAA,kBAAA,GAAA;AAAA,cAAC,OAAA;AAAA,cAAA;AAAA,gBACC,OAAO,SAAY,GAAA,CAAA,CAAE,iBAAiB,CAAA,GAAI,EAAE,mBAAmB,CAAA;AAAA,gBAC/D,SAAU,EAAA,OAAA;AAAA,gBAEV,QAAA,kBAAA,GAAA;AAAA,kBAAC,UAAA;AAAA,kBAAA;AAAA,oBACC,OAAS,EAAA,QAAA;AAAA,oBACT,IAAK,EAAA,OAAA;AAAA,oBACL,SAAA,EAAW,SAAY,GAAA,EAAA,GAAK,MAAO,CAAA,YAAA;AAAA,oBACnC,OAAO,EAAE,SAAA,EAAW,GAAG,UAAY,EAAA,SAAA,GAAY,MAAM,CAAE,EAAA;AAAA,oBAEtD,QAAY,EAAA,SAAA,mBAAA,GAAA,CAAC,gBAAiB,EAAA,EAAA,CAAA,uBAAM,YAAa,EAAA,EAAA;AAAA;AAAA;AACpD;AAAA;AACF;AAAA;AACF;AAAA;AAAA,GAEJ;AAEJ;;;;"}
@@ -33,7 +33,7 @@ import '@drodil/backstage-plugin-qeta-common';
33
33
  import '@backstage/plugin-permission-common';
34
34
  import 'react-use/lib/useDebounce';
35
35
  import '../FilterPanel/FilterPanel.esm.js';
36
- import 'lodash';
36
+ import '../QetaContext/QetaContext.esm.js';
37
37
  import { AuthorBoxes } from '../AuthorBox/AuthorBoxes.esm.js';
38
38
  import { OpenLinkButton } from '../Buttons/OpenLinkButton.esm.js';
39
39
 
@@ -18,7 +18,7 @@ import { Tooltip } from '@material-ui/core';
18
18
  import 'react-router-dom';
19
19
  import 'react-use/lib/useDebounce';
20
20
  import '../FilterPanel/FilterPanel.esm.js';
21
- import 'lodash';
21
+ import '../QetaContext/QetaContext.esm.js';
22
22
  import { UserTooltip } from '../TagsAndEntities/UserChip.esm.js';
23
23
  import { useTooltipStyles } from '../../hooks/useTooltipStyles.esm.js';
24
24
 
@@ -16,7 +16,7 @@ import { makeStyles, ListItem, Box, ListItemText, Tooltip, Grid, Typography, Ava
16
16
  import { Link } from 'react-router-dom';
17
17
  import 'react-use/lib/useDebounce';
18
18
  import '../FilterPanel/FilterPanel.esm.js';
19
- import 'lodash';
19
+ import '../QetaContext/QetaContext.esm.js';
20
20
  import { useTooltipStyles } from '../../hooks/useTooltipStyles.esm.js';
21
21
  import { RightListContainer, RightList } from '../Utility/RightList.esm.js';
22
22
  import { Skeleton } from '@material-ui/lab';
@@ -36,7 +36,7 @@ import 'react-use/lib/useAsync';
36
36
  import { Link } from 'react-router-dom';
37
37
  import 'react-use/lib/useDebounce';
38
38
  import '../FilterPanel/FilterPanel.esm.js';
39
- import 'lodash';
39
+ import '../QetaContext/QetaContext.esm.js';
40
40
  import '@material-ui/icons/Create';
41
41
  import { OpenLinkButton } from '../Buttons/OpenLinkButton.esm.js';
42
42
  import '@material-ui/icons/PlaylistAdd';
@@ -29,11 +29,12 @@ import 'react-use/lib/useAsync';
29
29
  import 'react-router-dom';
30
30
  import 'react-use/lib/useDebounce';
31
31
  import '../FilterPanel/FilterPanel.esm.js';
32
- import { capitalize } from 'lodash';
32
+ import '../QetaContext/QetaContext.esm.js';
33
33
  import '@material-ui/icons/Visibility';
34
34
  import '@material-ui/icons/VisibilityOff';
35
35
  import '../Buttons/ButtonContainer.esm.js';
36
36
  import '../Buttons/RankingButtons.esm.js';
37
+ import { capitalize } from 'lodash';
37
38
  import { QetaEntityContainer } from '../QetaEntityContainer/QetaEntityContainer.esm.js';
38
39
  import { PostsGridItem } from './PostsGridItem.esm.js';
39
40
  import { PostListItem } from './PostListItem.esm.js';