@drodil/backstage-plugin-qeta-react 3.3.0 → 3.4.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 (199) hide show
  1. package/dist/components/AnswerCard/AnswerCard.esm.js +6 -1
  2. package/dist/components/AnswerCard/AnswerCard.esm.js.map +1 -1
  3. package/dist/components/AnswerForm/AnswerForm.esm.js +5 -1
  4. package/dist/components/AnswerForm/AnswerForm.esm.js.map +1 -1
  5. package/dist/components/AnswersContainer/AnswerList.esm.js +16 -38
  6. package/dist/components/AnswersContainer/AnswerList.esm.js.map +1 -1
  7. package/dist/components/AnswersContainer/AnswerListItem.esm.js +6 -1
  8. package/dist/components/AnswersContainer/AnswerListItem.esm.js.map +1 -1
  9. package/dist/components/AnswersContainer/AnswersContainer.esm.js +5 -1
  10. package/dist/components/AnswersContainer/AnswersContainer.esm.js.map +1 -1
  11. package/dist/components/ArticleContent/ArticleButtons.esm.js +6 -1
  12. package/dist/components/ArticleContent/ArticleButtons.esm.js.map +1 -1
  13. package/dist/components/ArticleContent/ArticleContent.esm.js +7 -1
  14. package/dist/components/ArticleContent/ArticleContent.esm.js.map +1 -1
  15. package/dist/components/AuthorBox/AuthorBox.esm.js +7 -1
  16. package/dist/components/AuthorBox/AuthorBox.esm.js.map +1 -1
  17. package/dist/components/Buttons/AddToCollectionButton.esm.js +4 -1
  18. package/dist/components/Buttons/AddToCollectionButton.esm.js.map +1 -1
  19. package/dist/components/Buttons/AskQuestionButton.esm.js +5 -1
  20. package/dist/components/Buttons/AskQuestionButton.esm.js.map +1 -1
  21. package/dist/components/Buttons/BackToArticlesButton.esm.js +5 -1
  22. package/dist/components/Buttons/BackToArticlesButton.esm.js.map +1 -1
  23. package/dist/components/Buttons/BackToCollectionsButton.esm.js +5 -1
  24. package/dist/components/Buttons/BackToCollectionsButton.esm.js.map +1 -1
  25. package/dist/components/Buttons/BackToQuestionsButton.esm.js +5 -1
  26. package/dist/components/Buttons/BackToQuestionsButton.esm.js.map +1 -1
  27. package/dist/components/Buttons/CollectionFollowButton.esm.js +40 -0
  28. package/dist/components/Buttons/CollectionFollowButton.esm.js.map +1 -0
  29. package/dist/components/Buttons/CreateCollectionButton.esm.js +5 -1
  30. package/dist/components/Buttons/CreateCollectionButton.esm.js.map +1 -1
  31. package/dist/components/Buttons/EntityFollowButton.esm.js +7 -1
  32. package/dist/components/Buttons/EntityFollowButton.esm.js.map +1 -1
  33. package/dist/components/Buttons/FavoriteButton.esm.js +4 -1
  34. package/dist/components/Buttons/FavoriteButton.esm.js.map +1 -1
  35. package/dist/components/Buttons/LinkButton.esm.js +6 -1
  36. package/dist/components/Buttons/LinkButton.esm.js.map +1 -1
  37. package/dist/components/Buttons/TagFollowButton.esm.js +7 -1
  38. package/dist/components/Buttons/TagFollowButton.esm.js.map +1 -1
  39. package/dist/components/Buttons/UserFollowButton.esm.js +7 -1
  40. package/dist/components/Buttons/UserFollowButton.esm.js.map +1 -1
  41. package/dist/components/Buttons/VoteButtons.esm.js +1 -1
  42. package/dist/components/Buttons/VoteButtons.esm.js.map +1 -1
  43. package/dist/components/Buttons/WriteArticleButton.esm.js +5 -1
  44. package/dist/components/Buttons/WriteArticleButton.esm.js.map +1 -1
  45. package/dist/components/CollectionCard/CollectionCard.esm.js +7 -3
  46. package/dist/components/CollectionCard/CollectionCard.esm.js.map +1 -1
  47. package/dist/components/CollectionForm/CollectionForm.esm.js +5 -1
  48. package/dist/components/CollectionForm/CollectionForm.esm.js.map +1 -1
  49. package/dist/components/CollectionsGrid/CollectionsGrid.esm.js +57 -14
  50. package/dist/components/CollectionsGrid/CollectionsGrid.esm.js.map +1 -1
  51. package/dist/components/CollectionsGrid/CollectionsGridContent.esm.js +13 -27
  52. package/dist/components/CollectionsGrid/CollectionsGridContent.esm.js.map +1 -1
  53. package/dist/components/CollectionsGrid/CollectionsGridItem.esm.js +28 -19
  54. package/dist/components/CollectionsGrid/CollectionsGridItem.esm.js.map +1 -1
  55. package/dist/components/CommentSection/CommentList.esm.js +4 -1
  56. package/dist/components/CommentSection/CommentList.esm.js.map +1 -1
  57. package/dist/components/CommentSection/CommentSection.esm.js +4 -1
  58. package/dist/components/CommentSection/CommentSection.esm.js.map +1 -1
  59. package/dist/components/DeleteModal/DeleteModal.esm.js +5 -1
  60. package/dist/components/DeleteModal/DeleteModal.esm.js.map +1 -1
  61. package/dist/components/EntitiesGrid/EntitiesGrid.esm.js +61 -22
  62. package/dist/components/EntitiesGrid/EntitiesGrid.esm.js.map +1 -1
  63. package/dist/components/EntitiesGrid/EntitiesGridContent.esm.js +31 -0
  64. package/dist/components/EntitiesGrid/EntitiesGridContent.esm.js.map +1 -0
  65. package/dist/components/EntitiesGrid/EntitiesGridItem.esm.js +6 -1
  66. package/dist/components/EntitiesGrid/EntitiesGridItem.esm.js.map +1 -1
  67. package/dist/components/FilterPanel/DateRangeFilter.esm.js +6 -1
  68. package/dist/components/FilterPanel/DateRangeFilter.esm.js.map +1 -1
  69. package/dist/components/FilterPanel/FilterPanel.esm.js +9 -5
  70. package/dist/components/FilterPanel/FilterPanel.esm.js.map +1 -1
  71. package/dist/components/FollowedLists/FollowedCollectionsList.esm.js +49 -0
  72. package/dist/components/FollowedLists/FollowedCollectionsList.esm.js.map +1 -0
  73. package/dist/components/FollowedLists/FollowedEntitiesList.esm.js +7 -1
  74. package/dist/components/FollowedLists/FollowedEntitiesList.esm.js.map +1 -1
  75. package/dist/components/FollowedLists/FollowedTagsList.esm.js +7 -1
  76. package/dist/components/FollowedLists/FollowedTagsList.esm.js.map +1 -1
  77. package/dist/components/HeaderImageInput/HeaderImageInput.esm.js +5 -1
  78. package/dist/components/HeaderImageInput/HeaderImageInput.esm.js.map +1 -1
  79. package/dist/components/HomePageCards/ImpactCard.esm.js +6 -1
  80. package/dist/components/HomePageCards/ImpactCard.esm.js.map +1 -1
  81. package/dist/components/HomePageCards/PostsCard.esm.js +8 -3
  82. package/dist/components/HomePageCards/PostsCard.esm.js.map +1 -1
  83. package/dist/components/LeftMenu/LeftMenu.esm.js +11 -3
  84. package/dist/components/LeftMenu/LeftMenu.esm.js.map +1 -1
  85. package/dist/components/Links/Links.esm.js +5 -1
  86. package/dist/components/Links/Links.esm.js.map +1 -1
  87. package/dist/components/MarkdownEditor/MarkdownEditor.esm.js.map +1 -1
  88. package/dist/components/MarkdownRenderer/MarkdownRenderer.esm.js +1 -1
  89. package/dist/components/MarkdownRenderer/MarkdownRenderer.esm.js.map +1 -1
  90. package/dist/components/PostAnonymouslyCheckbox/PostAnonymouslyCheckbox.esm.js +6 -1
  91. package/dist/components/PostAnonymouslyCheckbox/PostAnonymouslyCheckbox.esm.js.map +1 -1
  92. package/dist/components/PostForm/EntitiesInput.esm.js +5 -1
  93. package/dist/components/PostForm/EntitiesInput.esm.js.map +1 -1
  94. package/dist/components/PostForm/PostForm.esm.js +42 -5
  95. package/dist/components/PostForm/PostForm.esm.js.map +1 -1
  96. package/dist/components/PostForm/TagInput.esm.js +5 -2
  97. package/dist/components/PostForm/TagInput.esm.js.map +1 -1
  98. package/dist/components/PostHighlightList/PostHighlightList.esm.js +5 -1
  99. package/dist/components/PostHighlightList/PostHighlightList.esm.js.map +1 -1
  100. package/dist/components/PostsContainer/NoPostsCard.esm.js +6 -1
  101. package/dist/components/PostsContainer/NoPostsCard.esm.js.map +1 -1
  102. package/dist/components/PostsContainer/PostList.esm.js +16 -38
  103. package/dist/components/PostsContainer/PostList.esm.js.map +1 -1
  104. package/dist/components/PostsContainer/PostListItem.esm.js +6 -1
  105. package/dist/components/PostsContainer/PostListItem.esm.js.map +1 -1
  106. package/dist/components/PostsContainer/PostsContainer.esm.js +6 -2
  107. package/dist/components/PostsContainer/PostsContainer.esm.js.map +1 -1
  108. package/dist/components/PostsGrid/PostsGrid.esm.js +11 -3
  109. package/dist/components/PostsGrid/PostsGrid.esm.js.map +1 -1
  110. package/dist/components/PostsGrid/PostsGridContent.esm.js +23 -12
  111. package/dist/components/PostsGrid/PostsGridContent.esm.js.map +1 -1
  112. package/dist/components/PostsGrid/PostsGridItem.esm.js +6 -1
  113. package/dist/components/PostsGrid/PostsGridItem.esm.js.map +1 -1
  114. package/dist/components/QetaPagination/QetaPagination.esm.js +55 -0
  115. package/dist/components/QetaPagination/QetaPagination.esm.js.map +1 -0
  116. package/dist/components/QuestionCard/QuestionCard.esm.js +5 -1
  117. package/dist/components/QuestionCard/QuestionCard.esm.js.map +1 -1
  118. package/dist/components/QuestionsTable/QuestionsTable.esm.js +6 -1
  119. package/dist/components/QuestionsTable/QuestionsTable.esm.js.map +1 -1
  120. package/dist/components/SelectTemplateList/SelectTemplateList.esm.js +48 -0
  121. package/dist/components/SelectTemplateList/SelectTemplateList.esm.js.map +1 -0
  122. package/dist/components/StatsChart/StatsChart.esm.js +37 -13
  123. package/dist/components/StatsChart/StatsChart.esm.js.map +1 -1
  124. package/dist/components/StatsChart/util.esm.js +9 -0
  125. package/dist/components/StatsChart/util.esm.js.map +1 -0
  126. package/dist/components/SummaryStatsGrid/SummaryStatsGrid.esm.js +25 -1
  127. package/dist/components/SummaryStatsGrid/SummaryStatsGrid.esm.js.map +1 -1
  128. package/dist/components/TagsAndEntities/CollectionChip.esm.js +85 -0
  129. package/dist/components/TagsAndEntities/CollectionChip.esm.js.map +1 -0
  130. package/dist/components/TagsAndEntities/EntityChip.esm.js +5 -1
  131. package/dist/components/TagsAndEntities/EntityChip.esm.js.map +1 -1
  132. package/dist/components/TagsAndEntities/TagChip.esm.js +5 -1
  133. package/dist/components/TagsAndEntities/TagChip.esm.js.map +1 -1
  134. package/dist/components/TagsAndEntities/TagsAndEntities.esm.js +3 -0
  135. package/dist/components/TagsAndEntities/TagsAndEntities.esm.js.map +1 -1
  136. package/dist/components/TagsGrid/EditTagModal.esm.js +4 -1
  137. package/dist/components/TagsGrid/EditTagModal.esm.js.map +1 -1
  138. package/dist/components/TagsGrid/TagGridItem.esm.js +6 -1
  139. package/dist/components/TagsGrid/TagGridItem.esm.js.map +1 -1
  140. package/dist/components/TagsGrid/TagsGrid.esm.js +64 -22
  141. package/dist/components/TagsGrid/TagsGrid.esm.js.map +1 -1
  142. package/dist/components/TagsGrid/TagsGridContent.esm.js +31 -0
  143. package/dist/components/TagsGrid/TagsGridContent.esm.js.map +1 -0
  144. package/dist/components/TemplateList/TemplateForm.esm.js +207 -0
  145. package/dist/components/TemplateList/TemplateForm.esm.js.map +1 -0
  146. package/dist/components/TemplateList/TemplateList.esm.js +105 -0
  147. package/dist/components/TemplateList/TemplateList.esm.js.map +1 -0
  148. package/dist/components/TopRankingUsersCard/TopRankingUsersCard.esm.js +6 -1
  149. package/dist/components/TopRankingUsersCard/TopRankingUsersCard.esm.js.map +1 -1
  150. package/dist/components/UsersGrid/UsersGrid.esm.js +49 -19
  151. package/dist/components/UsersGrid/UsersGrid.esm.js.map +1 -1
  152. package/dist/components/UsersGrid/UsersGridContent.esm.js +31 -0
  153. package/dist/components/UsersGrid/UsersGridContent.esm.js.map +1 -0
  154. package/dist/components/UsersGrid/UsersGridItem.esm.js +7 -1
  155. package/dist/components/UsersGrid/UsersGridItem.esm.js.map +1 -1
  156. package/dist/hooks/useBasePath.esm.js +12 -0
  157. package/dist/hooks/useBasePath.esm.js.map +1 -0
  158. package/dist/hooks/useBaseUrl.esm.js +13 -0
  159. package/dist/hooks/useBaseUrl.esm.js.map +1 -0
  160. package/dist/hooks/useCollectionsFollow.esm.js +59 -0
  161. package/dist/hooks/useCollectionsFollow.esm.js.map +1 -0
  162. package/dist/hooks/useEntityAuthor.esm.js +90 -0
  163. package/dist/hooks/useEntityAuthor.esm.js.map +1 -0
  164. package/dist/hooks/useEntityFollow.esm.js +49 -0
  165. package/dist/hooks/useEntityFollow.esm.js.map +1 -0
  166. package/dist/hooks/useEntityQueryParameter.esm.js +14 -0
  167. package/dist/hooks/useEntityQueryParameter.esm.js.map +1 -0
  168. package/dist/hooks/useFormStyles.esm.js +26 -0
  169. package/dist/hooks/useFormStyles.esm.js.map +1 -0
  170. package/dist/hooks/useIdentityApi.esm.js +12 -0
  171. package/dist/hooks/useIdentityApi.esm.js.map +1 -0
  172. package/dist/hooks/useIsDarkTheme.esm.js +12 -0
  173. package/dist/hooks/useIsDarkTheme.esm.js.map +1 -0
  174. package/dist/hooks/useIsModerator.esm.js +23 -0
  175. package/dist/hooks/useIsModerator.esm.js.map +1 -0
  176. package/dist/hooks/usePaginatedPosts.esm.js +176 -0
  177. package/dist/hooks/usePaginatedPosts.esm.js.map +1 -0
  178. package/dist/hooks/useQetaApi.esm.js +13 -0
  179. package/dist/hooks/useQetaApi.esm.js.map +1 -0
  180. package/dist/hooks/useStyles.esm.js +141 -0
  181. package/dist/hooks/useStyles.esm.js.map +1 -0
  182. package/dist/hooks/useTagsFollow.esm.js +53 -0
  183. package/dist/hooks/useTagsFollow.esm.js.map +1 -0
  184. package/dist/hooks/useTranslation.esm.js +9 -0
  185. package/dist/hooks/useTranslation.esm.js.map +1 -0
  186. package/dist/hooks/useUserFollow.esm.js +53 -0
  187. package/dist/hooks/useUserFollow.esm.js.map +1 -0
  188. package/dist/hooks/useVoting.esm.js +110 -0
  189. package/dist/hooks/useVoting.esm.js.map +1 -0
  190. package/dist/index.d.ts +402 -306
  191. package/dist/index.esm.js +14 -2
  192. package/dist/index.esm.js.map +1 -1
  193. package/dist/routes.esm.js +6 -1
  194. package/dist/routes.esm.js.map +1 -1
  195. package/dist/translation.esm.js +63 -4
  196. package/dist/translation.esm.js.map +1 -1
  197. package/package.json +5 -2
  198. package/dist/utils/hooks.esm.js +0 -701
  199. package/dist/utils/hooks.esm.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,12 +1,12 @@
1
1
  import * as _backstage_core_plugin_api from '@backstage/core-plugin-api';
2
2
  import { IdentityApi } from '@backstage/core-plugin-api';
3
- import { QetaApi, PostType, PostResponse, PostsResponse, AnswersResponse, AnswerResponse, PostsQuery, CollectionResponse, Post, Answer, Comment, GlobalStat, UserStat, StatisticsResponse, Collection } from '@drodil/backstage-plugin-qeta-common';
3
+ import { QetaApi, PostType, PostResponse, Template, PostsResponse, AnswersResponse, AnswerResponse, Collection, PostsQuery, CollectionResponse, Post, Answer, Comment, Stat, StatisticsResponse, UserStat, GlobalStat, TemplatesResponse } from '@drodil/backstage-plugin-qeta-common';
4
4
  import React from 'react';
5
- import * as react_use_lib_useAsyncFn from 'react-use/lib/useAsyncFn';
6
- import * as _material_ui_styles from '@material-ui/styles';
7
- import * as _backstage_core_plugin_api_alpha from '@backstage/core-plugin-api/alpha';
8
5
  import { LinkProps } from '@backstage/core-components';
9
6
  import { SvgIconProps } from '@material-ui/core';
7
+ import * as _backstage_core_plugin_api_alpha from '@backstage/core-plugin-api/alpha';
8
+ import * as _material_ui_styles from '@material-ui/styles';
9
+ import * as react_use_lib_useAsyncFn from 'react-use/lib/useAsyncFn';
10
10
  import { Overrides } from '@material-ui/core/styles/overrides';
11
11
  import { StyleRules } from '@material-ui/core/styles/withStyles';
12
12
 
@@ -31,6 +31,7 @@ declare const tagsRouteRef: _backstage_core_plugin_api.SubRouteRef<undefined>;
31
31
  declare const tagRouteRef: _backstage_core_plugin_api.SubRouteRef<_backstage_core_plugin_api.PathParams<"/tags/:tag">>;
32
32
  declare const entitiesRouteRef: _backstage_core_plugin_api.SubRouteRef<undefined>;
33
33
  declare const entityRouteRef: _backstage_core_plugin_api.SubRouteRef<_backstage_core_plugin_api.PathParams<"/entities/:entityRef">>;
34
+ declare const moderatorRouteRef: _backstage_core_plugin_api.SubRouteRef<undefined>;
34
35
 
35
36
  declare const qetaApiRef: _backstage_core_plugin_api.ApiRef<QetaApi>;
36
37
 
@@ -41,6 +42,7 @@ type PostFormProps = {
41
42
  tags?: string[];
42
43
  onPost?: (question: PostResponse) => void;
43
44
  entityPage?: boolean;
45
+ template?: Template | null;
44
46
  };
45
47
  declare const PostForm: (props: PostFormProps) => React.JSX.Element;
46
48
 
@@ -68,281 +70,6 @@ interface FilterPanelProps {
68
70
  }
69
71
  declare const FilterPanel: (props: FilterPanelProps) => React.JSX.Element;
70
72
 
71
- declare const useTranslation: () => {
72
- t: _backstage_core_plugin_api_alpha.TranslationFunction<{
73
- readonly "favorite.remove": "Remove this post from favorites";
74
- readonly "favorite.add": "Mark this post as favorite";
75
- readonly "statistics.errorLoading": "Could not load statistics";
76
- readonly "statistics.notAvailable": "Statistics are unavailable";
77
- readonly "statistics.ranking": "Ranking Q&A 🏆";
78
- readonly "statistics.mostQuestions.title": "Most questions";
79
- readonly "statistics.mostQuestions.description": "People who have posted most questions";
80
- readonly "statistics.mostAnswers.title": "Most answers";
81
- readonly "statistics.mostAnswers.description": "People who have posted most answers";
82
- readonly "statistics.topVotedQuestions.title": "Top voted questions";
83
- readonly "statistics.topVotedQuestions.description": "People who have the highest rated questions";
84
- readonly "statistics.topVotedAnswers.title": "Top voted answers";
85
- readonly "statistics.topVotedAnswers.description": "People who have the highest rated answers";
86
- readonly "statistics.topVotedCorrectAnswers.title": "Top voted correct answers";
87
- readonly "statistics.topVotedCorrectAnswers.description": "People who have the highest rated correct answers";
88
- readonly "answer.questionTitle": "Q: {{question}}";
89
- readonly "answer.answeredTime": "answered";
90
- readonly "link.answer": "Copy link to this answer to clipboard";
91
- readonly "link.post": "Copy link to this post to clipboard";
92
- readonly "link.aria": "Copy link to clipboard";
93
- readonly pluginName: "Q&A";
94
- readonly "answerList.errorLoading": "Could not load answers";
95
- readonly "answerList.noAnswers": "No answers";
96
- readonly "answerList.limitSelect": "Answers per page";
97
- readonly "common.question": "question";
98
- readonly "common.article": "article";
99
- readonly "common.score": "{{score}} score";
100
- readonly "common.post": "post";
101
- readonly "common.comments": "Comments";
102
- readonly "common.anonymousAuthor": "Anonymous";
103
- readonly "common.answers_zero": "No answers";
104
- readonly "common.answers_one": "{{count}} answer";
105
- readonly "common.answers_other": "{{count}} answers";
106
- readonly "common.views_zero": "Viewed {{count}} times";
107
- readonly "common.views_one": "Viewed {{count}} time";
108
- readonly "common.views_other": "Viewed {{count}} times";
109
- readonly "common.viewsShort_zero": "0 views";
110
- readonly "common.viewsShort_one": "{{count}} view";
111
- readonly "common.viewsShort_other": "{{count}} views";
112
- readonly "common.votes_zero": "0 votes";
113
- readonly "common.votes_one": "{{count}} vote";
114
- readonly "common.votes_other": "{{count}} votes";
115
- readonly "common.posts_zero": "No {{itemType}}s";
116
- readonly "common.posts_one": "{{count}} {{itemType}}";
117
- readonly "common.posts_other": "{{count}} {{itemType}}s";
118
- readonly "common.collections_zero": "No collections";
119
- readonly "common.collections_one": "{{count}} collection";
120
- readonly "common.collections_other": "{{count}} collections";
121
- readonly "common.followers_zero": "No followers";
122
- readonly "common.followers_one": "{{count}} follower";
123
- readonly "common.followers_other": "{{count}} followers";
124
- readonly "answerContainer.title.answersBy": "Answers by";
125
- readonly "answerContainer.title.answersAbout": "Answers about";
126
- readonly "answerContainer.title.answersTagged": "Answers tagged with {{tags}}";
127
- readonly "answerContainer.search.label": "Search for answers";
128
- readonly "answerContainer.search.placeholder": "Search...";
129
- readonly "anonymousCheckbox.tooltip": "By enabling this, other users won't be able to see you as an author";
130
- readonly "anonymousCheckbox.answerAnonymously": "Answer anonymously";
131
- readonly "anonymousCheckbox.postAnonymously": "Post anonymously";
132
- readonly "fileInput.label": "Header image";
133
- readonly "fileInput.helperText": "URL of the header image to be used";
134
- readonly "fileInput.uploadHeaderImage": "Upload image";
135
- readonly "fileInput.preview": "Preview image";
136
- readonly "collectionForm.errorPosting": "Could not create collection";
137
- readonly "collectionForm.titleInput.label": "Title";
138
- readonly "collectionForm.titleInput.helperText": "Name of the colleciton";
139
- readonly "collectionForm.descriptionInput.placeholder": "Collection description, what does it contain?";
140
- readonly "collectionForm.submit.existingCollection": "Save";
141
- readonly "collectionForm.submit.newCollection": "Create";
142
- readonly "postForm.uploadHeaderImage": "Upload header image";
143
- readonly "postForm.errorPosting": "Could not post {{type}}";
144
- readonly "postForm.titleInput.label": "Title";
145
- readonly "postForm.titleInput.helperText": "Write good title for your {{type}} that people can understand";
146
- readonly "postForm.submit.existingPost": "Save";
147
- readonly "postForm.submit.newPost": "Post";
148
- readonly "postForm.contentInput.placeholder": "Your {{type}}";
149
- readonly "answerForm.errorPosting": "Could not post answer";
150
- readonly "answerForm.submit.existingAnswer": "Save";
151
- readonly "answerForm.submit.newAnswer": "Post";
152
- readonly "answerForm.contentInput.placeholder": "Your answer";
153
- readonly "entitiesInput.label": "Entities";
154
- readonly "entitiesInput.placeholder": "Type or select entities";
155
- readonly "entitiesInput.helperText": "Add up to {{max}} entities this question relates to";
156
- readonly "tagsInput.label": "Tags";
157
- readonly "tagsInput.placeholder": "Type or select tags";
158
- readonly "tagsInput.helperText": "Add up to {{max}} tags to categorize your question";
159
- readonly "askPage.title.existingQuestion": "Edit question";
160
- readonly "askPage.title.entityQuestion": "Ask a question about {{entity}}";
161
- readonly "askPage.title.newQuestion": "Ask a question";
162
- readonly "writePage.title.existingArticle": "Edit article";
163
- readonly "writePage.title.entityArticle": "Write an article about {{entity}}";
164
- readonly "writePage.title.newArticle": "New article";
165
- readonly "collectionCreatePage.title.existingCollection": "Edit collection";
166
- readonly "collectionCreatePage.title.newCollection": "New collection";
167
- readonly "askQuestionButton.title": "Ask a question";
168
- readonly "addToCollectionButton.title": "Collections";
169
- readonly "addToCollectionButton.manage": "Add or remove this post from collections";
170
- readonly "addToCollectionButton.close": "Close";
171
- readonly "writeArticleButton.title": "Write an article";
172
- readonly "createCollectionButton.title": "Create collection";
173
- readonly "backToQuestionsButton.title": "Back";
174
- readonly "backToCollectionsButton.title": "Back";
175
- readonly "commentList.deleteLink": "delete";
176
- readonly "commentSection.input.placeholder": "Your comment";
177
- readonly "commentSection.post": "Post";
178
- readonly "commentSection.addComment": "Add comment";
179
- readonly "editTagModal.title": "Edit tag {{tag}}";
180
- readonly "editTagModal.errorPosting": "Failed to edit";
181
- readonly "editTagModal.description": "Tag description";
182
- readonly "editTagModal.saveButton": "Save";
183
- readonly "editTagModal.cancelButton": "Cancel";
184
- readonly "deleteModal.title.question": "Are you sure you want to delete this post?";
185
- readonly "deleteModal.title.answer": "Are you sure you want to delete this answer?";
186
- readonly "deleteModal.title.collection": "Are you sure you want to delete this collection?";
187
- readonly "deleteModal.cancelButton": "Cancel";
188
- readonly "deleteModal.errorDeleting": "Failed to delete";
189
- readonly "deleteModal.deleteButton": "Delete";
190
- readonly "favoritePage.title": "Favorited posts";
191
- readonly "leftMenu.questions": "Questions";
192
- readonly "leftMenu.statistics": "Statistics";
193
- readonly "leftMenu.collections": "Collections";
194
- readonly "leftMenu.articles": "Articles";
195
- readonly "leftMenu.users": "Users";
196
- readonly "leftMenu.tags": "Tags";
197
- readonly "leftMenu.entities": "Entities";
198
- readonly "leftMenu.home": "Home";
199
- readonly "leftMenu.profile": "Profile";
200
- readonly "leftMenu.favoriteQuestions": "Favorites";
201
- readonly "leftMenu.content": "Content";
202
- readonly "leftMenu.community": "Community";
203
- readonly "homePage.title": "Home";
204
- readonly "impactCard.views": "views";
205
- readonly "impactCard.title": "Your impact";
206
- readonly "impactCard.contributions": "Your contributions helped {{lastWeek}} people this week";
207
- readonly "rightMenu.followedEntities": "Followed entities";
208
- readonly "rightMenu.followedTags": "Followed tags";
209
- readonly "highlights.loadError": "Failed to load questions";
210
- readonly "highlights.own.title": "Your latest questions";
211
- readonly "highlights.own.noQuestionsLabel": "No questions";
212
- readonly "highlights.hotQuestions.title": "Hot questions";
213
- readonly "highlights.hotQuestions.noQuestionsLabel": "No questions";
214
- readonly "highlights.hotArticles.title": "Hot articles";
215
- readonly "highlights.hotArticles.noArticlesLabel": "No articles";
216
- readonly "highlights.unanswered.title": "Unanswered questions";
217
- readonly "highlights.unanswered.noQuestionsLabel": "No unanswered questions";
218
- readonly "highlights.incorrect.title": "Questions without correct answer";
219
- readonly "highlights.incorrect.noQuestionsLabel": "No questions without correct answers";
220
- readonly "questionsPage.title": "All questions";
221
- readonly "articlesPage.title": "All articles";
222
- readonly "userLink.anonymous": "Anonymous";
223
- readonly "articlePage.errorLoading": "Could not load article";
224
- readonly "articlePage.deleteButton": "Delete this article";
225
- readonly "articlePage.editButton": "Edit this article";
226
- readonly "collectionsPage.title": "Collections";
227
- readonly "collectionPage.description": "Description";
228
- readonly "collectionPage.info": "You can add questions and articles to the collection from question and article pages";
229
- readonly "questionPage.errorLoading": "Could not load question";
230
- readonly "questionPage.editButton": "Edit";
231
- readonly "questionPage.sortAnswers.label": "Sort answers";
232
- readonly "questionPage.sortAnswers.default": "Default";
233
- readonly "questionPage.sortAnswers.createdDesc": "Created (desc)";
234
- readonly "questionPage.sortAnswers.createdAsc": "Created (asc)";
235
- readonly "questionPage.sortAnswers.scoreDesc": "Score (desc)";
236
- readonly "questionPage.sortAnswers.scoreAsc": "Score (asc)";
237
- readonly "questionPage.sortAnswers.commentsDesc": "Comments (desc)";
238
- readonly "questionPage.sortAnswers.commentsAsc": "Comments (asc)";
239
- readonly "questionPage.sortAnswers.authorDesc": "Author (desc)";
240
- readonly "questionPage.sortAnswers.authorAsc": "Author (asc)";
241
- readonly "questionPage.sortAnswers.updatedDesc": "Updated (desc)";
242
- readonly "questionPage.sortAnswers.updatedAsc": "Updated (asc)";
243
- readonly "authorBox.postedAtTime": "Posted";
244
- readonly "authorBox.updatedAtTime": "Updated";
245
- readonly "authorBox.updatedBy": "by";
246
- readonly "voteButtons.question.own": "You cannot vote your own post";
247
- readonly "voteButtons.question.good": "This post is good";
248
- readonly "voteButtons.question.bad": "This post is not good";
249
- readonly "voteButtons.answer.own": "You cannot vote your own answer";
250
- readonly "voteButtons.answer.markCorrect": "Mark this answer correct";
251
- readonly "voteButtons.answer.markIncorrect": "Mark this answer incorrect";
252
- readonly "voteButtons.answer.marked": "This answer has been marked as correct";
253
- readonly "voteButtons.answer.good": "This answer is good";
254
- readonly "voteButtons.answer.bad": "This answer is not good";
255
- readonly "datePicker.from": "From date";
256
- readonly "datePicker.to": "To date";
257
- readonly "datePicker.invalidRange": "Date range invalid, 'To date' should be greater than 'From date'";
258
- readonly "datePicker.range.label": "Date range";
259
- readonly "datePicker.range.default": "Select";
260
- readonly "datePicker.range.last7days": "Last 7 days";
261
- readonly "datePicker.range.last30days": "Last 30 days";
262
- readonly "datePicker.range.custom": "Custom";
263
- readonly "filterPanel.noAnswers.label": "No answers";
264
- readonly "filterPanel.filterButton": "Filter";
265
- readonly "filterPanel.noCorrectAnswers.label": "No correct answers";
266
- readonly "filterPanel.noVotes.label": "No votes";
267
- readonly "filterPanel.orderBy.views": "Views";
268
- readonly "filterPanel.orderBy.score": "Score";
269
- readonly "filterPanel.orderBy.created": "Created";
270
- readonly "filterPanel.orderBy.updated": "Updated";
271
- readonly "filterPanel.orderBy.answers": "Answers";
272
- readonly "filterPanel.orderBy.label": "Order by";
273
- readonly "filterPanel.order.desc": "Descending";
274
- readonly "filterPanel.order.asc": "Ascending";
275
- readonly "filterPanel.order.label": "Order";
276
- readonly "filterPanel.filters.tag.label": "Tag";
277
- readonly "filterPanel.filters.tag.placeholder": "Type or select tag";
278
- readonly "filterPanel.filters.label": "Filters";
279
- readonly "filterPanel.filters.entity.label": "Entity";
280
- readonly "filterPanel.filters.entity.placeholder": "Type or select entity";
281
- readonly "postsList.errorLoading": "Could not load {{itemType}}s";
282
- readonly "postsList.postsPerPage": "{{itemType}}s per page";
283
- readonly "postsContainer.title.favorite": "Your favorite {{itemType}}s";
284
- readonly "postsContainer.title.by": "{{itemType}}s by";
285
- readonly "postsContainer.title.about": "{{itemType}}s about";
286
- readonly "postsContainer.title.tagged": "{{itemType}} tagged with {{tags}}";
287
- readonly "postsContainer.search.label": "Search for {{itemType}}";
288
- readonly "postsContainer.search.placeholder": "Search...";
289
- readonly "postsContainer.noItems": "No {{itemType}}s";
290
- readonly "postsContainer.createButton": "Go ahead and create one!";
291
- readonly "questionsTable.errorLoading": "Could not load questions";
292
- readonly "questionsTable.latest": "Latest";
293
- readonly "questionsTable.mostViewed": "Most viewed";
294
- readonly "questionsTable.favorites": "Favorites";
295
- readonly "questionsTable.cells.updated": "Last updated";
296
- readonly "questionsTable.cells.author": "Author";
297
- readonly "questionsTable.cells.title": "Title";
298
- readonly "questionsTable.cells.asked": "Asked";
299
- readonly "tagPage.errorLoading": "Could not load tags";
300
- readonly "tagPage.search.label": "Search tag";
301
- readonly "tagPage.search.placeholder": "Search...";
302
- readonly "tagPage.defaultTitle": "Tags";
303
- readonly "tagPage.tags_zero": "No tags";
304
- readonly "tagPage.tags_one": "Showing {{count}} tag";
305
- readonly "tagPage.tags_other": "Showing {{count}} tags";
306
- readonly "entitiesPage.errorLoading": "Could not load entities";
307
- readonly "entitiesPage.search.label": "Search entity";
308
- readonly "entitiesPage.search.placeholder": "Search...";
309
- readonly "entitiesPage.defaultTitle": "Entities";
310
- readonly "entitiesPage.entities_zero": "No entities";
311
- readonly "entitiesPage.entities_one": "Showing {{count}} entity";
312
- readonly "entitiesPage.entities_other": "Showing {{count}} entities";
313
- readonly "usersPage.title": "Users";
314
- readonly "usersPage.errorLoading": "Could not load users";
315
- readonly "usersPage.search.label": "Search user";
316
- readonly "usersPage.search.placeholder": "Search...";
317
- readonly "usersPage.defaultTitle": "users";
318
- readonly "usersPage.users_zero": "No users";
319
- readonly "usersPage.users_one": "Showing {{count}} users";
320
- readonly "usersPage.users_other": "Showing {{count}} users";
321
- readonly "userPage.questions": "Questions";
322
- readonly "userPage.statistics": "Statistics";
323
- readonly "userPage.articles": "Articles";
324
- readonly "userPage.answers": "Answers";
325
- readonly "userPage.profileTab": "Profile";
326
- readonly "stats.questions": "Questions";
327
- readonly "stats.articles": "Articles";
328
- readonly "stats.views": "Views";
329
- readonly "stats.answers": "Answers";
330
- readonly "stats.comments": "Comments";
331
- readonly "stats.noStats": "No statistics available. Check back later!";
332
- readonly "stats.votes": "Votes";
333
- readonly "tagButton.edit": "Edit";
334
- readonly "tagButton.tooltip": "By following a tag, you will get notified when ever a new post with that tag is posted";
335
- readonly "tagButton.follow": "Follow";
336
- readonly "tagButton.unfollow": "Unfollow";
337
- readonly "entityButton.tooltip": "By following an entity, you will get notified when ever a new post for that entity is posted";
338
- readonly "entityButton.follow": "Follow";
339
- readonly "entityButton.unfollow": "Unfollow";
340
- readonly "userButton.tooltip": "By following a user, you will get notified when ever a new post by that user is posted";
341
- readonly "userButton.follow": "Follow";
342
- readonly "userButton.unfollow": "Unfollow";
343
- }>;
344
- };
345
- type QetaFormClassKey = 'headerImage' | 'postButton' | 'postForm';
346
73
  type PaginatedPostsProps = {
347
74
  type?: PostType;
348
75
  tags?: string[];
@@ -358,29 +85,6 @@ type PaginatedPostsProps = {
358
85
  initialPageSize?: number;
359
86
  collectionId?: number;
360
87
  };
361
- declare function useQetaApi<T>(f: (api: QetaApi) => Promise<T>, deps?: any[]): {
362
- retry: () => void;
363
- loading: boolean;
364
- error?: undefined;
365
- value?: undefined;
366
- } | {
367
- retry: () => void;
368
- loading: false;
369
- error: Error;
370
- value?: undefined;
371
- } | {
372
- retry: () => void;
373
- loading: true;
374
- error?: Error | undefined;
375
- value?: T | undefined;
376
- } | {
377
- retry: () => void;
378
- loading: false;
379
- error?: undefined;
380
- value: T;
381
- };
382
- declare function useIdentityApi<T>(f: (api: IdentityApi) => Promise<T>, deps?: any[]): react_use_lib_useAsyncFn.AsyncState<T>;
383
- declare const useStyles: (props?: any) => _material_ui_styles.ClassNameMap<"deleteModal" | "filterPanel" | "questionDivider" | "marginLeft" | "marginRight" | "questionCard" | "questionCardVote" | "questionCardContent" | "questionListItem" | "questionListItemStats" | "questionListItemContent" | "questionListItemAuthor" | "questionListItemAvatar" | "answerCardContent" | "questionListPagination" | "questionsPerPageInput" | "questionsPerPage" | "postHighlightListContainer" | "postHighlightList" | "questionCardMetadata" | "questionCardActions" | "noPadding" | "highlight" | "@keyframes highlight" | "dateFilter">;
384
88
 
385
89
  declare const PostsContainer: (props: PaginatedPostsProps) => React.JSX.Element;
386
90
 
@@ -476,6 +180,10 @@ declare const UserFollowButton: (props: {
476
180
  userRef: string;
477
181
  }) => React.JSX.Element | null;
478
182
 
183
+ declare const CollectionFollowButton: (props: {
184
+ collection: Collection;
185
+ }) => React.JSX.Element | null;
186
+
479
187
  declare const PostHighlightList: (props: {
480
188
  type: string;
481
189
  title: string;
@@ -521,6 +229,8 @@ declare const FollowedEntitiesList: () => React.JSX.Element | null;
521
229
 
522
230
  declare const FollowedTagsList: () => React.JSX.Element | null;
523
231
 
232
+ declare const FollowedCollectionsList: () => React.JSX.Element | null;
233
+
524
234
  declare const AnswerForm: (props: {
525
235
  post: PostResponse;
526
236
  onPost: (answer: AnswerResponse) => void;
@@ -553,11 +263,11 @@ declare const QuestionsTable: (props: {
553
263
 
554
264
  type QetaStatsChartClassKey = 'tooltipLabel' | 'tooltipWrapper' | 'xAxis' | 'lineChart' | 'barChart';
555
265
  declare const StatsChart: (props: {
556
- data: GlobalStat[] | UserStat[];
266
+ data: Stat[];
557
267
  }) => React.JSX.Element;
558
268
 
559
269
  declare const SummaryStatsGrid: (props: {
560
- stats: StatisticsResponse;
270
+ stats: StatisticsResponse<UserStat | GlobalStat>;
561
271
  }) => React.JSX.Element;
562
272
 
563
273
  declare const TopRankingUsers: (props: {
@@ -588,7 +298,10 @@ type CollectionFormProps = {
588
298
  };
589
299
  declare const CollectionForm: (props: CollectionFormProps) => React.JSX.Element;
590
300
 
591
- declare const CollectionsGrid: () => React.JSX.Element;
301
+ type CollectionsGridProps = {
302
+ owner?: string;
303
+ };
304
+ declare const CollectionsGrid: (props: CollectionsGridProps) => React.JSX.Element;
592
305
 
593
306
  declare const CollectionCard: (props: {
594
307
  collection: Collection;
@@ -604,6 +317,387 @@ declare const LeftMenu: (props: {
604
317
 
605
318
  declare const LeftMenuButton: () => React.JSX.Element;
606
319
 
320
+ declare const TemplateList: () => React.JSX.Element | null;
321
+
322
+ declare const SelectTemplateList: (props: {
323
+ templates: TemplatesResponse;
324
+ onTemplateSelect: (template: Template | null) => void;
325
+ }) => React.JSX.Element | null;
326
+
327
+ declare function useQetaApi<T>(f: (api: QetaApi) => Promise<T>, deps?: any[]): {
328
+ retry: () => void;
329
+ loading: boolean;
330
+ error?: undefined;
331
+ value?: undefined;
332
+ } | {
333
+ retry: () => void;
334
+ loading: false;
335
+ error: Error;
336
+ value?: undefined;
337
+ } | {
338
+ retry: () => void;
339
+ loading: true;
340
+ error?: Error | undefined;
341
+ value?: T | undefined;
342
+ } | {
343
+ retry: () => void;
344
+ loading: false;
345
+ error?: undefined;
346
+ value: T;
347
+ };
348
+
349
+ declare const useTagsFollow: () => {
350
+ tags: string[];
351
+ followTag: (tag: string) => void;
352
+ unfollowTag: (tag: string) => void;
353
+ isFollowingTag: (tag: string) => boolean;
354
+ loading: boolean;
355
+ };
356
+
357
+ declare const useTranslation: () => {
358
+ t: _backstage_core_plugin_api_alpha.TranslationFunction<{
359
+ readonly "favorite.add": "Mark this post as favorite";
360
+ readonly "favorite.remove": "Remove this post from favorites";
361
+ readonly "statistics.errorLoading": "Could not load statistics";
362
+ readonly "statistics.notAvailable": "Statistics are unavailable";
363
+ readonly "statistics.ranking": "Ranking Q&A 🏆";
364
+ readonly "statistics.mostQuestions.title": "Most questions";
365
+ readonly "statistics.mostQuestions.description": "People who have posted most questions";
366
+ readonly "statistics.mostAnswers.title": "Most answers";
367
+ readonly "statistics.mostAnswers.description": "People who have posted most answers";
368
+ readonly "statistics.topVotedQuestions.title": "Top voted questions";
369
+ readonly "statistics.topVotedQuestions.description": "People who have the highest rated questions";
370
+ readonly "statistics.topVotedAnswers.title": "Top voted answers";
371
+ readonly "statistics.topVotedAnswers.description": "People who have the highest rated answers";
372
+ readonly "statistics.topVotedCorrectAnswers.title": "Top voted correct answers";
373
+ readonly "statistics.topVotedCorrectAnswers.description": "People who have the highest rated correct answers";
374
+ readonly "answer.questionTitle": "Q: {{question}}";
375
+ readonly "answer.answeredTime": "answered";
376
+ readonly "link.answer": "Copy link to this answer to clipboard";
377
+ readonly "link.post": "Copy link to this post to clipboard";
378
+ readonly "link.aria": "Copy link to clipboard";
379
+ readonly pluginName: "Q&A";
380
+ readonly "answerList.errorLoading": "Could not load answers";
381
+ readonly "answerList.noAnswers": "No answers";
382
+ readonly "answerList.limitSelect": "Answers per page";
383
+ readonly "common.question": "question";
384
+ readonly "common.score": "{{score}} score";
385
+ readonly "common.article": "article";
386
+ readonly "common.post": "post";
387
+ readonly "common.comments": "Comments";
388
+ readonly "common.anonymousAuthor": "Anonymous";
389
+ readonly "common.answers_zero": "No answers";
390
+ readonly "common.answers_one": "{{count}} answer";
391
+ readonly "common.answers_other": "{{count}} answers";
392
+ readonly "common.views_zero": "Viewed {{count}} times";
393
+ readonly "common.views_one": "Viewed {{count}} time";
394
+ readonly "common.views_other": "Viewed {{count}} times";
395
+ readonly "common.viewsShort_zero": "0 views";
396
+ readonly "common.viewsShort_one": "{{count}} view";
397
+ readonly "common.viewsShort_other": "{{count}} views";
398
+ readonly "common.votes_zero": "0 votes";
399
+ readonly "common.votes_one": "{{count}} vote";
400
+ readonly "common.votes_other": "{{count}} votes";
401
+ readonly "common.posts_zero": "No {{itemType}}s";
402
+ readonly "common.posts_one": "{{count}} {{itemType}}";
403
+ readonly "common.posts_other": "{{count}} {{itemType}}s";
404
+ readonly "common.collections_zero": "No collections";
405
+ readonly "common.collections_one": "{{count}} collection";
406
+ readonly "common.collections_other": "{{count}} collections";
407
+ readonly "common.followers_zero": "No followers";
408
+ readonly "common.followers_one": "{{count}} follower";
409
+ readonly "common.followers_other": "{{count}} followers";
410
+ readonly "answerContainer.title.answersBy": "Answers by";
411
+ readonly "answerContainer.title.answersAbout": "Answers about";
412
+ readonly "answerContainer.title.answersTagged": "Answers tagged with {{tags}}";
413
+ readonly "answerContainer.search.label": "Search for answers";
414
+ readonly "answerContainer.search.placeholder": "Search...";
415
+ readonly "anonymousCheckbox.tooltip": "By enabling this, other users won't be able to see you as an author";
416
+ readonly "anonymousCheckbox.answerAnonymously": "Answer anonymously";
417
+ readonly "anonymousCheckbox.postAnonymously": "Post anonymously";
418
+ readonly "fileInput.label": "Header image";
419
+ readonly "fileInput.helperText": "URL of the header image to be used";
420
+ readonly "fileInput.uploadHeaderImage": "Upload image";
421
+ readonly "fileInput.preview": "Preview image";
422
+ readonly "collectionForm.errorPosting": "Could not create collection";
423
+ readonly "collectionForm.titleInput.label": "Title";
424
+ readonly "collectionForm.titleInput.helperText": "Name of the colleciton";
425
+ readonly "collectionForm.descriptionInput.placeholder": "Collection description, what does it contain?";
426
+ readonly "collectionForm.submit.existingCollection": "Save";
427
+ readonly "collectionForm.submit.newCollection": "Create";
428
+ readonly "postForm.uploadHeaderImage": "Upload header image";
429
+ readonly "postForm.errorPosting": "Could not post {{type}}";
430
+ readonly "postForm.titleInput.label": "Title";
431
+ readonly "postForm.titleInput.helperText": "Write good title for your {{type}} that people can understand";
432
+ readonly "postForm.submit.existingPost": "Save";
433
+ readonly "postForm.submit.newPost": "Post";
434
+ readonly "postForm.contentInput.placeholder": "Your {{type}}";
435
+ readonly "answerForm.errorPosting": "Could not post answer";
436
+ readonly "answerForm.submit.existingAnswer": "Save";
437
+ readonly "answerForm.submit.newAnswer": "Post";
438
+ readonly "answerForm.contentInput.placeholder": "Your answer";
439
+ readonly "entitiesInput.label": "Entities";
440
+ readonly "entitiesInput.placeholder": "Type or select entities";
441
+ readonly "entitiesInput.helperText": "Add up to {{max}} entities this question relates to";
442
+ readonly "tagsInput.label": "Tags";
443
+ readonly "tagsInput.placeholder": "Type or select tags";
444
+ readonly "tagsInput.helperText": "Add up to {{max}} tags to categorize your question";
445
+ readonly "askPage.title.existingQuestion": "Edit question";
446
+ readonly "askPage.title.entityQuestion": "Ask a question about {{entity}}";
447
+ readonly "askPage.title.newQuestion": "Ask a question";
448
+ readonly "writePage.title.existingArticle": "Edit article";
449
+ readonly "writePage.title.entityArticle": "Write an article about {{entity}}";
450
+ readonly "writePage.title.newArticle": "New article";
451
+ readonly "collectionCreatePage.title.existingCollection": "Edit collection";
452
+ readonly "collectionCreatePage.title.newCollection": "New collection";
453
+ readonly "askQuestionButton.title": "Ask a question";
454
+ readonly "addToCollectionButton.title": "Collections";
455
+ readonly "addToCollectionButton.manage": "Add or remove this post from collections";
456
+ readonly "addToCollectionButton.close": "Close";
457
+ readonly "writeArticleButton.title": "Write an article";
458
+ readonly "createCollectionButton.title": "Create collection";
459
+ readonly "backToQuestionsButton.title": "Back";
460
+ readonly "backToCollectionsButton.title": "Back";
461
+ readonly "commentList.deleteLink": "delete";
462
+ readonly "commentSection.input.placeholder": "Your comment";
463
+ readonly "commentSection.post": "Post";
464
+ readonly "commentSection.addComment": "Add comment";
465
+ readonly "editTagModal.title": "Edit tag {{tag}}";
466
+ readonly "editTagModal.errorPosting": "Failed to edit";
467
+ readonly "editTagModal.description": "Tag description";
468
+ readonly "editTagModal.saveButton": "Save";
469
+ readonly "editTagModal.cancelButton": "Cancel";
470
+ readonly "deleteModal.title.question": "Are you sure you want to delete this post?";
471
+ readonly "deleteModal.title.answer": "Are you sure you want to delete this answer?";
472
+ readonly "deleteModal.title.collection": "Are you sure you want to delete this collection?";
473
+ readonly "deleteModal.cancelButton": "Cancel";
474
+ readonly "deleteModal.errorDeleting": "Failed to delete";
475
+ readonly "deleteModal.deleteButton": "Delete";
476
+ readonly "favoritePage.title": "Favorited posts";
477
+ readonly "leftMenu.questions": "Questions";
478
+ readonly "leftMenu.statistics": "Statistics";
479
+ readonly "leftMenu.collections": "Collections";
480
+ readonly "leftMenu.articles": "Articles";
481
+ readonly "leftMenu.users": "Users";
482
+ readonly "leftMenu.tags": "Tags";
483
+ readonly "leftMenu.entities": "Entities";
484
+ readonly "leftMenu.moderate": "Moderate";
485
+ readonly "leftMenu.content": "Content";
486
+ readonly "leftMenu.manage": "Manage";
487
+ readonly "leftMenu.home": "Home";
488
+ readonly "leftMenu.profile": "Profile";
489
+ readonly "leftMenu.favoriteQuestions": "Favorites";
490
+ readonly "leftMenu.community": "Community";
491
+ readonly "moderatorPage.title": "Moderate";
492
+ readonly "moderatorPage.tools": "Tools";
493
+ readonly "moderatorPage.templates": "Templates";
494
+ readonly "moderatorPage.templatesInfo": "Templates can be used to prefill question content for the user";
495
+ readonly "homePage.title": "Home";
496
+ readonly "impactCard.views": "views";
497
+ readonly "impactCard.title": "Your impact";
498
+ readonly "impactCard.contributions": "Your contributions helped {{lastWeek}} people this week";
499
+ readonly "rightMenu.followedEntities": "Followed entities";
500
+ readonly "rightMenu.followedTags": "Followed tags";
501
+ readonly "rightMenu.followedCollections": "Followed collections";
502
+ readonly "highlights.loadError": "Failed to load questions";
503
+ readonly "highlights.own.title": "Your latest questions";
504
+ readonly "highlights.own.noQuestionsLabel": "No questions";
505
+ readonly "highlights.hotQuestions.title": "Hot questions";
506
+ readonly "highlights.hotQuestions.noQuestionsLabel": "No questions";
507
+ readonly "highlights.hotArticles.title": "Hot articles";
508
+ readonly "highlights.hotArticles.noArticlesLabel": "No articles";
509
+ readonly "highlights.unanswered.title": "Unanswered questions";
510
+ readonly "highlights.unanswered.noQuestionsLabel": "No unanswered questions";
511
+ readonly "highlights.incorrect.title": "Questions without correct answer";
512
+ readonly "highlights.incorrect.noQuestionsLabel": "No questions without correct answers";
513
+ readonly "questionsPage.title": "All questions";
514
+ readonly "articlesPage.title": "All articles";
515
+ readonly "userLink.anonymous": "Anonymous";
516
+ readonly "articlePage.errorLoading": "Could not load article";
517
+ readonly "articlePage.deleteButton": "Delete this article";
518
+ readonly "articlePage.editButton": "Edit this article";
519
+ readonly "templateList.errorLoading": "Could not load templates";
520
+ readonly "templateList.errorPosting": "Could not post template";
521
+ readonly "templateList.titleInput.label": "Title";
522
+ readonly "templateList.titleInput.helperText": "Name of the template";
523
+ readonly "templateList.descriptionInput.label": "Description";
524
+ readonly "templateList.descriptionInput.helperText": "Template description, what is it used for?";
525
+ readonly "templateList.submit.existingTemplate": "Save";
526
+ readonly "templateList.submit.newTemplate": "Create";
527
+ readonly "templateList.deleteButton": "Delete";
528
+ readonly "templateList.editButton": "Edit";
529
+ readonly "templateList.createButton": "Create";
530
+ readonly "templateList.noTemplates": "No templates";
531
+ readonly "templateList.noTemplatesDescription": "Create a new template to get started";
532
+ readonly "templateList.questionTitleInput.label": "Default question title";
533
+ readonly "templateList.questionTitleInput.helperText": "Question title to be used when creating a question with this template";
534
+ readonly "templateList.questionContentInput.placeholder": "Question content to be used when creating a question with this template";
535
+ readonly "templateSelectList.title": "Create a question from template";
536
+ readonly "templateSelectList.selectButton": "Choose";
537
+ readonly "templateSelectList.genericQuestion": "Generic question";
538
+ readonly "templateSelectList.genericQuestionDescription": "Create a generic question";
539
+ readonly "pagination.defaultTooltip": "Number of items";
540
+ readonly "collectionsPage.title": "Collections";
541
+ readonly "collectionsPage.search.label": "Search for collection";
542
+ readonly "collectionsPage.search.placeholder": "Search...";
543
+ readonly "collectionPage.description": "Description";
544
+ readonly "collectionPage.info": "You can add questions and articles to the collection from question and article pages";
545
+ readonly "questionPage.errorLoading": "Could not load question";
546
+ readonly "questionPage.editButton": "Edit";
547
+ readonly "questionPage.sortAnswers.default": "Default";
548
+ readonly "questionPage.sortAnswers.label": "Sort answers";
549
+ readonly "questionPage.sortAnswers.createdDesc": "Created (desc)";
550
+ readonly "questionPage.sortAnswers.createdAsc": "Created (asc)";
551
+ readonly "questionPage.sortAnswers.scoreDesc": "Score (desc)";
552
+ readonly "questionPage.sortAnswers.scoreAsc": "Score (asc)";
553
+ readonly "questionPage.sortAnswers.commentsDesc": "Comments (desc)";
554
+ readonly "questionPage.sortAnswers.commentsAsc": "Comments (asc)";
555
+ readonly "questionPage.sortAnswers.authorDesc": "Author (desc)";
556
+ readonly "questionPage.sortAnswers.authorAsc": "Author (asc)";
557
+ readonly "questionPage.sortAnswers.updatedDesc": "Updated (desc)";
558
+ readonly "questionPage.sortAnswers.updatedAsc": "Updated (asc)";
559
+ readonly "authorBox.postedAtTime": "Posted";
560
+ readonly "authorBox.updatedAtTime": "Updated";
561
+ readonly "authorBox.updatedBy": "by";
562
+ readonly "voteButtons.question.own": "You cannot vote your own post";
563
+ readonly "voteButtons.question.good": "This post is good";
564
+ readonly "voteButtons.question.bad": "This post is not good";
565
+ readonly "voteButtons.answer.own": "You cannot vote your own answer";
566
+ readonly "voteButtons.answer.markCorrect": "Mark this answer correct";
567
+ readonly "voteButtons.answer.markIncorrect": "Mark this answer incorrect";
568
+ readonly "voteButtons.answer.marked": "This answer has been marked as correct";
569
+ readonly "voteButtons.answer.good": "This answer is good";
570
+ readonly "voteButtons.answer.bad": "This answer is not good";
571
+ readonly "datePicker.range.default": "Select";
572
+ readonly "datePicker.range.label": "Date range";
573
+ readonly "datePicker.range.last7days": "Last 7 days";
574
+ readonly "datePicker.range.last30days": "Last 30 days";
575
+ readonly "datePicker.range.custom": "Custom";
576
+ readonly "datePicker.to": "To date";
577
+ readonly "datePicker.from": "From date";
578
+ readonly "datePicker.invalidRange": "Date range invalid, 'To date' should be greater than 'From date'";
579
+ readonly "filterPanel.order.desc": "Descending";
580
+ readonly "filterPanel.order.asc": "Ascending";
581
+ readonly "filterPanel.order.label": "Order";
582
+ readonly "filterPanel.noAnswers.label": "No answers";
583
+ readonly "filterPanel.filterButton": "Filter";
584
+ readonly "filterPanel.noCorrectAnswers.label": "No correct answers";
585
+ readonly "filterPanel.noVotes.label": "No votes";
586
+ readonly "filterPanel.orderBy.views": "Views";
587
+ readonly "filterPanel.orderBy.score": "Score";
588
+ readonly "filterPanel.orderBy.created": "Created";
589
+ readonly "filterPanel.orderBy.updated": "Updated";
590
+ readonly "filterPanel.orderBy.answers": "Answers";
591
+ readonly "filterPanel.orderBy.label": "Order by";
592
+ readonly "filterPanel.filters.tag.label": "Tag";
593
+ readonly "filterPanel.filters.tag.placeholder": "Type or select tag";
594
+ readonly "filterPanel.filters.entity.label": "Entity";
595
+ readonly "filterPanel.filters.entity.placeholder": "Type or select entity";
596
+ readonly "filterPanel.filters.label": "Filters";
597
+ readonly "postsList.errorLoading": "Could not load {{itemType}}s";
598
+ readonly "postsList.postsPerPage": "{{itemType}}s per page";
599
+ readonly "postsContainer.title.favorite": "Your favorite {{itemType}}s";
600
+ readonly "postsContainer.title.about": "{{itemType}}s about";
601
+ readonly "postsContainer.title.by": "{{itemType}}s by";
602
+ readonly "postsContainer.title.tagged": "{{itemType}} tagged with {{tags}}";
603
+ readonly "postsContainer.search.label": "Search for {{itemType}}";
604
+ readonly "postsContainer.search.placeholder": "Search...";
605
+ readonly "postsContainer.createButton": "Go ahead and create one!";
606
+ readonly "postsContainer.noItems": "No {{itemType}}s";
607
+ readonly "questionsTable.errorLoading": "Could not load questions";
608
+ readonly "questionsTable.latest": "Latest";
609
+ readonly "questionsTable.mostViewed": "Most viewed";
610
+ readonly "questionsTable.favorites": "Favorites";
611
+ readonly "questionsTable.cells.author": "Author";
612
+ readonly "questionsTable.cells.updated": "Last updated";
613
+ readonly "questionsTable.cells.title": "Title";
614
+ readonly "questionsTable.cells.asked": "Asked";
615
+ readonly "tagPage.search.label": "Search tag";
616
+ readonly "tagPage.search.placeholder": "Search...";
617
+ readonly "tagPage.errorLoading": "Could not load tags";
618
+ readonly "tagPage.defaultTitle": "Tags";
619
+ readonly "tagPage.tags_zero": "No tags";
620
+ readonly "tagPage.tags_one": "Showing {{count}} tag";
621
+ readonly "tagPage.tags_other": "Showing {{count}} tags";
622
+ readonly "entitiesPage.search.label": "Search entity";
623
+ readonly "entitiesPage.search.placeholder": "Search...";
624
+ readonly "entitiesPage.errorLoading": "Could not load entities";
625
+ readonly "entitiesPage.defaultTitle": "Entities";
626
+ readonly "entitiesPage.entities_zero": "No entities";
627
+ readonly "entitiesPage.entities_one": "Showing {{count}} entity";
628
+ readonly "entitiesPage.entities_other": "Showing {{count}} entities";
629
+ readonly "usersPage.title": "Users";
630
+ readonly "usersPage.search.label": "Search user";
631
+ readonly "usersPage.search.placeholder": "Search...";
632
+ readonly "usersPage.errorLoading": "Could not load users";
633
+ readonly "usersPage.defaultTitle": "users";
634
+ readonly "usersPage.users_zero": "No users";
635
+ readonly "usersPage.users_one": "Showing {{count}} users";
636
+ readonly "usersPage.users_other": "Showing {{count}} users";
637
+ readonly "userPage.questions": "Questions";
638
+ readonly "userPage.statistics": "Statistics";
639
+ readonly "userPage.collections": "Collections";
640
+ readonly "userPage.articles": "Articles";
641
+ readonly "userPage.answers": "Answers";
642
+ readonly "userPage.profileTab": "Profile";
643
+ readonly "stats.questions": "Questions";
644
+ readonly "stats.articles": "Articles";
645
+ readonly "stats.users": "Users";
646
+ readonly "stats.tags": "Tags";
647
+ readonly "stats.views": "Views";
648
+ readonly "stats.answers": "Answers";
649
+ readonly "stats.comments": "Comments";
650
+ readonly "stats.noStats": "No statistics available. Check back later!";
651
+ readonly "stats.votes": "Votes";
652
+ readonly "stats.followers": "Followers";
653
+ readonly "collectionButton.follow": "Follow";
654
+ readonly "collectionButton.tooltip": "By following a collection, you will get notified when ever a new post is added to the collection";
655
+ readonly "collectionButton.unfollow": "Unfollow";
656
+ readonly "tagButton.edit": "Edit";
657
+ readonly "tagButton.follow": "Follow";
658
+ readonly "tagButton.tooltip": "By following a tag, you will get notified when ever a new post with that tag is posted";
659
+ readonly "tagButton.unfollow": "Unfollow";
660
+ readonly "entityButton.follow": "Follow";
661
+ readonly "entityButton.tooltip": "By following an entity, you will get notified when ever a new post for that entity is posted";
662
+ readonly "entityButton.unfollow": "Unfollow";
663
+ readonly "userButton.follow": "Follow";
664
+ readonly "userButton.tooltip": "By following a user, you will get notified when ever a new post by that user is posted";
665
+ readonly "userButton.unfollow": "Unfollow";
666
+ }>;
667
+ };
668
+
669
+ declare const useEntityFollow: () => {
670
+ entities: string[];
671
+ followEntity: (entityRef: string) => void;
672
+ unfollowEntity: (entityRef: string) => void;
673
+ isFollowingEntity: (entityRef: string) => boolean;
674
+ loading: boolean;
675
+ };
676
+
677
+ declare const useUserFollow: () => {
678
+ users: string[];
679
+ followUser: (user: string) => void;
680
+ unfollowUser: (user: string) => void;
681
+ isFollowingUser: (user: string) => boolean;
682
+ loading: boolean;
683
+ };
684
+
685
+ declare const useStyles: (props?: any) => _material_ui_styles.ClassNameMap<"marginLeft" | "marginRight" | "deleteModal" | "filterPanel" | "questionDivider" | "questionCard" | "questionCardVote" | "questionCardContent" | "questionListItem" | "questionListItemStats" | "questionListItemContent" | "questionListItemAuthor" | "questionListItemAvatar" | "answerCardContent" | "questionListPagination" | "questionsPerPageInput" | "questionsPerPage" | "postHighlightListContainer" | "postHighlightList" | "questionCardMetadata" | "questionCardActions" | "noPadding" | "highlight" | "@keyframes highlight" | "dateFilter">;
686
+
687
+ declare function useIdentityApi<T>(f: (api: IdentityApi) => Promise<T>, deps?: any[]): react_use_lib_useAsyncFn.AsyncState<T>;
688
+
689
+ declare const useCollectionsFollow: () => {
690
+ collections: Collection[];
691
+ followCollection: (collection: Collection) => void;
692
+ unfollowCollection: (collection: Collection) => void;
693
+ isFollowingCollection: (collection: Collection) => boolean;
694
+ loading: boolean;
695
+ };
696
+
697
+ declare const useIsModerator: () => {
698
+ isModerator: boolean;
699
+ };
700
+
607
701
  type QetaVoteButtonsClassKey = 'qetaCorrectAnswerSelected' | 'qetaCorrectAnswer' | 'voteButtonContainer';
608
702
 
609
703
  type QetaArticleButtonsClassKey = 'container' | 'scoreText';
@@ -612,6 +706,8 @@ type QetaMarkdownEditorClassKey = 'markdownEditor' | 'markdownEditorError' | 'ma
612
706
 
613
707
  type QetaAuthorBoxClassKey = 'authorBox' | 'authorLink';
614
708
 
709
+ type QetaFormClassKey = 'headerImage' | 'postButton' | 'postForm';
710
+
615
711
  type QetaComponentsNameToClassKey = {
616
712
  QetaLeftMenu: QetaLeftMenuClassKey;
617
713
  QetaArticleButtons: QetaArticleButtonsClassKey;
@@ -627,4 +723,4 @@ type QetaOverrides = Overrides & {
627
723
  [Name in keyof QetaComponentsNameToClassKey]?: Partial<StyleRules<QetaComponentsNameToClassKey[Name]>>;
628
724
  };
629
725
 
630
- export { AddToCollectionButton, AnswerCard, AnswerForm, AnswerList, AnswerListItem, AnswersContainer, ArticleContent, AskQuestionButton, AuthorLink, BackToArticlesButton, BackToCollectionsButton, BackToQuestionsButton, CollectionCard, CollectionForm, CollectionsGrid, CreateCollectionButton, DeleteModal, EntitiesGrid, EntityFollowButton, FilterPanel, FollowedEntitiesList, FollowedTagsList, ImpactCard, LeftMenu, LeftMenuButton, MarkdownRenderer, PostForm, PostHighlightList, PostList, PostListItem, PostsCard, PostsContainer, PostsGrid, type QetaLeftMenuClassKey, type QetaOverrides, QuestionCard, QuestionsTable, RelativeTimeWithTooltip, StatsChart, SummaryStatsGrid, TagFollowButton, TagsGrid, TopRankingUsers, TrophyIcon, UpdatedByLink, UserFollowButton, UserLink, UsersGrid, WriteArticleButton, articleRouteRef, articlesRouteRef, askRouteRef, collectionCreateRouteRef, collectionEditRouteRef, collectionRouteRef, collectionsRouteRef, editArticleRouteRef, editQuestionRouteRef, entitiesRouteRef, entityRouteRef, favoriteQuestionsRouteRef, qetaApiRef, qetaRouteRef, questionRouteRef, questionsRouteRef, statisticsRouteRef, tagRouteRef, tagsRouteRef, useIdentityApi, useQetaApi, useStyles, useTranslation, userRouteRef, usersRouteRef, writeRouteRef };
726
+ export { AddToCollectionButton, AnswerCard, AnswerForm, AnswerList, AnswerListItem, AnswersContainer, ArticleContent, AskQuestionButton, AuthorLink, BackToArticlesButton, BackToCollectionsButton, BackToQuestionsButton, CollectionCard, CollectionFollowButton, CollectionForm, CollectionsGrid, CreateCollectionButton, DeleteModal, EntitiesGrid, EntityFollowButton, FilterPanel, FollowedCollectionsList, FollowedEntitiesList, FollowedTagsList, ImpactCard, LeftMenu, LeftMenuButton, MarkdownRenderer, PostForm, PostHighlightList, PostList, PostListItem, PostsCard, PostsContainer, PostsGrid, type QetaLeftMenuClassKey, type QetaOverrides, QuestionCard, QuestionsTable, RelativeTimeWithTooltip, SelectTemplateList, StatsChart, SummaryStatsGrid, TagFollowButton, TagsGrid, TemplateList, TopRankingUsers, TrophyIcon, UpdatedByLink, UserFollowButton, UserLink, UsersGrid, WriteArticleButton, articleRouteRef, articlesRouteRef, askRouteRef, collectionCreateRouteRef, collectionEditRouteRef, collectionRouteRef, collectionsRouteRef, editArticleRouteRef, editQuestionRouteRef, entitiesRouteRef, entityRouteRef, favoriteQuestionsRouteRef, moderatorRouteRef, qetaApiRef, qetaRouteRef, questionRouteRef, questionsRouteRef, statisticsRouteRef, tagRouteRef, tagsRouteRef, useCollectionsFollow, useEntityFollow, useIdentityApi, useIsModerator, useQetaApi, useStyles, useTagsFollow, useTranslation, useUserFollow, userRouteRef, usersRouteRef, writeRouteRef };