@drodil/backstage-plugin-qeta-react 3.52.6 → 3.53.1

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 (170) hide show
  1. package/dist/components/AIAnswerCard/AIAnswerCard.esm.js +11 -11
  2. package/dist/components/AIAnswerCard/AIAnswerCard.esm.js.map +1 -1
  3. package/dist/components/AnswerForm/AnswerForm.esm.js +5 -0
  4. package/dist/components/AnswerForm/AnswerForm.esm.js.map +1 -1
  5. package/dist/components/AnswersContainer/AnswerListItem.esm.js +4 -2
  6. package/dist/components/AnswersContainer/AnswerListItem.esm.js.map +1 -1
  7. package/dist/components/AnswersContainer/AnswersContainer.esm.js +59 -231
  8. package/dist/components/AnswersContainer/AnswersContainer.esm.js.map +1 -1
  9. package/dist/components/AnswersContainer/AnswersGridItem.esm.js +167 -0
  10. package/dist/components/AnswersContainer/AnswersGridItem.esm.js.map +1 -0
  11. package/dist/components/ArticleContent/ArticleButtons.esm.js +14 -1
  12. package/dist/components/ArticleContent/ArticleButtons.esm.js.map +1 -1
  13. package/dist/components/Badges/UserBadges.esm.js +7 -2
  14. package/dist/components/Badges/UserBadges.esm.js.map +1 -1
  15. package/dist/components/Buttons/AddToCollectionButton.esm.js +7 -2
  16. package/dist/components/Buttons/AddToCollectionButton.esm.js.map +1 -1
  17. package/dist/components/Buttons/EntityFollowButton.esm.js +7 -2
  18. package/dist/components/Buttons/EntityFollowButton.esm.js.map +1 -1
  19. package/dist/components/Buttons/RankingButtons.esm.js +94 -0
  20. package/dist/components/Buttons/RankingButtons.esm.js.map +1 -0
  21. package/dist/components/Buttons/TagFollowButton.esm.js +8 -3
  22. package/dist/components/Buttons/TagFollowButton.esm.js.map +1 -1
  23. package/dist/components/Buttons/UserFollowButton.esm.js +7 -2
  24. package/dist/components/Buttons/UserFollowButton.esm.js.map +1 -1
  25. package/dist/components/Buttons/VoteButtons.esm.js +12 -1
  26. package/dist/components/Buttons/VoteButtons.esm.js.map +1 -1
  27. package/dist/components/CollectionsContainer/CollectionListItem.esm.js +143 -0
  28. package/dist/components/CollectionsContainer/CollectionListItem.esm.js.map +1 -0
  29. package/dist/components/CollectionsContainer/CollectionsContainer.esm.js +45 -0
  30. package/dist/components/CollectionsContainer/CollectionsContainer.esm.js.map +1 -0
  31. package/dist/components/CollectionsContainer/CollectionsGridItem.esm.js.map +1 -0
  32. package/dist/components/ContentHeader/ContentHeader.esm.js +6 -0
  33. package/dist/components/ContentHeader/ContentHeader.esm.js.map +1 -1
  34. package/dist/components/EntitiesContainer/EntitiesContainer.esm.js +44 -0
  35. package/dist/components/EntitiesContainer/EntitiesContainer.esm.js.map +1 -0
  36. package/dist/components/{EntitiesGrid → EntitiesContainer}/EntitiesGridItem.esm.js +18 -26
  37. package/dist/components/EntitiesContainer/EntitiesGridItem.esm.js.map +1 -0
  38. package/dist/components/EntitiesContainer/EntityListItem.esm.js +102 -0
  39. package/dist/components/EntitiesContainer/EntityListItem.esm.js.map +1 -0
  40. package/dist/components/FilterPanel/FilterPanel.esm.js +2 -2
  41. package/dist/components/FilterPanel/FilterPanel.esm.js.map +1 -1
  42. package/dist/components/FollowedLists/FollowedEntitiesList.esm.js +7 -3
  43. package/dist/components/FollowedLists/FollowedEntitiesList.esm.js.map +1 -1
  44. package/dist/components/FollowedLists/FollowedTagsList.esm.js +8 -4
  45. package/dist/components/FollowedLists/FollowedTagsList.esm.js.map +1 -1
  46. package/dist/components/FollowedLists/FollowedUsersList.esm.js +7 -3
  47. package/dist/components/FollowedLists/FollowedUsersList.esm.js.map +1 -1
  48. package/dist/components/HomePageCards/ImpactCard.esm.js +7 -2
  49. package/dist/components/HomePageCards/ImpactCard.esm.js.map +1 -1
  50. package/dist/components/HomePageCards/PostsCard.esm.js +23 -15
  51. package/dist/components/HomePageCards/PostsCard.esm.js.map +1 -1
  52. package/dist/components/LeftMenu/LeftMenu.esm.js +15 -16
  53. package/dist/components/LeftMenu/LeftMenu.esm.js.map +1 -1
  54. package/dist/components/LinkCard/LinkCard.esm.js +4 -0
  55. package/dist/components/LinkCard/LinkCard.esm.js.map +1 -1
  56. package/dist/components/Links/Links.esm.js +11 -1
  57. package/dist/components/Links/Links.esm.js.map +1 -1
  58. package/dist/components/PostForm/EntitiesInput.esm.js +229 -226
  59. package/dist/components/PostForm/EntitiesInput.esm.js.map +1 -1
  60. package/dist/components/PostForm/PostForm.esm.js +13 -10
  61. package/dist/components/PostForm/PostForm.esm.js.map +1 -1
  62. package/dist/components/PostForm/TagInput.esm.js +4 -3
  63. package/dist/components/PostForm/TagInput.esm.js.map +1 -1
  64. package/dist/components/PostHighlightList/PostHighlightList.esm.js +6 -2
  65. package/dist/components/PostHighlightList/PostHighlightList.esm.js.map +1 -1
  66. package/dist/components/PostsContainer/PostListItem.esm.js +58 -19
  67. package/dist/components/PostsContainer/PostListItem.esm.js.map +1 -1
  68. package/dist/components/PostsContainer/PostsContainer.esm.js +137 -128
  69. package/dist/components/PostsContainer/PostsContainer.esm.js.map +1 -1
  70. package/dist/components/{PostsGrid → PostsContainer}/PostsGridItem.esm.js +29 -53
  71. package/dist/components/PostsContainer/PostsGridItem.esm.js.map +1 -0
  72. package/dist/components/PostsTable/PostsTable.esm.js +7 -2
  73. package/dist/components/PostsTable/PostsTable.esm.js.map +1 -1
  74. package/dist/components/QetaEntityContainer/QetaEntityContainer.esm.js +178 -0
  75. package/dist/components/QetaEntityContainer/QetaEntityContainer.esm.js.map +1 -0
  76. package/dist/components/QuestionCard/QuestionCard.esm.js +100 -88
  77. package/dist/components/QuestionCard/QuestionCard.esm.js.map +1 -1
  78. package/dist/components/SuggestionsCard/SuggestionsCard.esm.js +7 -3
  79. package/dist/components/SuggestionsCard/SuggestionsCard.esm.js.map +1 -1
  80. package/dist/components/TagsAndEntities/EntityChip.esm.js +6 -2
  81. package/dist/components/TagsAndEntities/EntityChip.esm.js.map +1 -1
  82. package/dist/components/TagsAndEntities/TagChip.esm.js +6 -2
  83. package/dist/components/TagsAndEntities/TagChip.esm.js.map +1 -1
  84. package/dist/components/TagsAndEntities/UserChip.esm.js +7 -3
  85. package/dist/components/TagsAndEntities/UserChip.esm.js.map +1 -1
  86. package/dist/components/TagsContainer/CreateTagModal.esm.js.map +1 -0
  87. package/dist/components/TagsContainer/EditTagModal.esm.js.map +1 -0
  88. package/dist/components/{TagsGrid → TagsContainer}/TagGridItem.esm.js +3 -3
  89. package/dist/components/TagsContainer/TagGridItem.esm.js.map +1 -0
  90. package/dist/components/TagsContainer/TagListItem.esm.js +243 -0
  91. package/dist/components/TagsContainer/TagListItem.esm.js.map +1 -0
  92. package/dist/components/TagsContainer/TagsContainer.esm.js +86 -0
  93. package/dist/components/TagsContainer/TagsContainer.esm.js.map +1 -0
  94. package/dist/components/TemplateList/TemplateForm.esm.js +7 -2
  95. package/dist/components/TemplateList/TemplateForm.esm.js.map +1 -1
  96. package/dist/components/TemplateList/TemplateList.esm.js +7 -3
  97. package/dist/components/TemplateList/TemplateList.esm.js.map +1 -1
  98. package/dist/components/Timeline/TimelineItem.esm.js +4 -0
  99. package/dist/components/Timeline/TimelineItem.esm.js.map +1 -1
  100. package/dist/components/TopRankingUsersCard/TopRankingUsersCard.esm.js +7 -2
  101. package/dist/components/TopRankingUsersCard/TopRankingUsersCard.esm.js.map +1 -1
  102. package/dist/components/UsersContainer/UserListItem.esm.js +133 -0
  103. package/dist/components/UsersContainer/UserListItem.esm.js.map +1 -0
  104. package/dist/components/UsersContainer/UsersContainer.esm.js +44 -0
  105. package/dist/components/UsersContainer/UsersContainer.esm.js.map +1 -0
  106. package/dist/components/{UsersGrid → UsersContainer}/UsersGridItem.esm.js +35 -38
  107. package/dist/components/UsersContainer/UsersGridItem.esm.js.map +1 -0
  108. package/dist/components/Utility/QetaGridHeader.esm.js +15 -11
  109. package/dist/components/Utility/QetaGridHeader.esm.js.map +1 -1
  110. package/dist/components/Utility/QetaPagination.esm.js +69 -0
  111. package/dist/components/Utility/QetaPagination.esm.js.map +1 -0
  112. package/dist/hooks/useEntityAuthor.esm.js +3 -1
  113. package/dist/hooks/useEntityAuthor.esm.js.map +1 -1
  114. package/dist/hooks/useListItemStyles.esm.js +22 -0
  115. package/dist/hooks/useListItemStyles.esm.js.map +1 -0
  116. package/dist/hooks/{usePaginatedPosts.esm.js → useQetaEntities.esm.js} +59 -86
  117. package/dist/hooks/useQetaEntities.esm.js.map +1 -0
  118. package/dist/hooks/useUserSettings.esm.js +83 -0
  119. package/dist/hooks/useUserSettings.esm.js.map +1 -0
  120. package/dist/index.d.ts +211 -58
  121. package/dist/index.esm.js +21 -8
  122. package/dist/index.esm.js.map +1 -1
  123. package/dist/routes.esm.js +6 -1
  124. package/dist/routes.esm.js.map +1 -1
  125. package/dist/translation.esm.js +49 -0
  126. package/dist/translation.esm.js.map +1 -1
  127. package/package.json +2 -2
  128. package/dist/components/AnswersContainer/AnswerList.esm.js +0 -54
  129. package/dist/components/AnswersContainer/AnswerList.esm.js.map +0 -1
  130. package/dist/components/CollectionsGrid/CollectionsGrid.esm.js +0 -204
  131. package/dist/components/CollectionsGrid/CollectionsGrid.esm.js.map +0 -1
  132. package/dist/components/CollectionsGrid/CollectionsGridContent.esm.js +0 -55
  133. package/dist/components/CollectionsGrid/CollectionsGridContent.esm.js.map +0 -1
  134. package/dist/components/CollectionsGrid/CollectionsGridItem.esm.js.map +0 -1
  135. package/dist/components/CollectionsGrid/NoCollectionsCard.esm.js +0 -21
  136. package/dist/components/CollectionsGrid/NoCollectionsCard.esm.js.map +0 -1
  137. package/dist/components/EntitiesGrid/EntitiesGrid.esm.js +0 -136
  138. package/dist/components/EntitiesGrid/EntitiesGrid.esm.js.map +0 -1
  139. package/dist/components/EntitiesGrid/EntitiesGridContent.esm.js +0 -46
  140. package/dist/components/EntitiesGrid/EntitiesGridContent.esm.js.map +0 -1
  141. package/dist/components/EntitiesGrid/EntitiesGridItem.esm.js.map +0 -1
  142. package/dist/components/EntitiesGrid/NoEntitiesCard.esm.js +0 -21
  143. package/dist/components/EntitiesGrid/NoEntitiesCard.esm.js.map +0 -1
  144. package/dist/components/PostsContainer/PostList.esm.js +0 -83
  145. package/dist/components/PostsContainer/PostList.esm.js.map +0 -1
  146. package/dist/components/PostsGrid/PostsGrid.esm.js +0 -197
  147. package/dist/components/PostsGrid/PostsGrid.esm.js.map +0 -1
  148. package/dist/components/PostsGrid/PostsGridContent.esm.js +0 -90
  149. package/dist/components/PostsGrid/PostsGridContent.esm.js.map +0 -1
  150. package/dist/components/PostsGrid/PostsGridItem.esm.js.map +0 -1
  151. package/dist/components/TagsGrid/CreateTagModal.esm.js.map +0 -1
  152. package/dist/components/TagsGrid/EditTagModal.esm.js.map +0 -1
  153. package/dist/components/TagsGrid/NoTagsCard.esm.js +0 -21
  154. package/dist/components/TagsGrid/NoTagsCard.esm.js.map +0 -1
  155. package/dist/components/TagsGrid/TagGridItem.esm.js.map +0 -1
  156. package/dist/components/TagsGrid/TagsGrid.esm.js +0 -190
  157. package/dist/components/TagsGrid/TagsGrid.esm.js.map +0 -1
  158. package/dist/components/TagsGrid/TagsGridContent.esm.js +0 -62
  159. package/dist/components/TagsGrid/TagsGridContent.esm.js.map +0 -1
  160. package/dist/components/UsersGrid/NoUsersCard.esm.js +0 -21
  161. package/dist/components/UsersGrid/NoUsersCard.esm.js.map +0 -1
  162. package/dist/components/UsersGrid/UsersGrid.esm.js +0 -137
  163. package/dist/components/UsersGrid/UsersGrid.esm.js.map +0 -1
  164. package/dist/components/UsersGrid/UsersGridContent.esm.js +0 -46
  165. package/dist/components/UsersGrid/UsersGridContent.esm.js.map +0 -1
  166. package/dist/components/UsersGrid/UsersGridItem.esm.js.map +0 -1
  167. package/dist/hooks/usePaginatedPosts.esm.js.map +0 -1
  168. /package/dist/components/{CollectionsGrid → CollectionsContainer}/CollectionsGridItem.esm.js +0 -0
  169. /package/dist/components/{TagsGrid → TagsContainer}/CreateTagModal.esm.js +0 -0
  170. /package/dist/components/{TagsGrid → TagsContainer}/EditTagModal.esm.js +0 -0
package/dist/index.d.ts CHANGED
@@ -2,7 +2,7 @@ import * as _backstage_core_plugin_api from '@backstage/core-plugin-api';
2
2
  import { IdentityApi } from '@backstage/core-plugin-api';
3
3
  import * as _backstage_frontend_plugin_api from '@backstage/frontend-plugin-api';
4
4
  import * as _drodil_backstage_plugin_qeta_common from '@drodil/backstage-plugin-qeta-common';
5
- import { QetaApi, TimelineItem, PostType, PostStatus, PostResponse, Template, PostsResponse, AnswersResponse, AnswerResponse, Collection, Post, PostsQuery, CollectionResponse, TagResponse, Answer, Comment, Stat, Badge, TemplatesResponse, Article, UserResponse, AIQuery } from '@drodil/backstage-plugin-qeta-common';
5
+ import { QetaApi, TimelineItem, PostType, PostStatus, PostResponse, Template, AnswerResponse, Collection, Post, PostsQuery, CollectionResponse, TagResponse, Answer, Comment, Stat, Badge, EntityResponse, UserResponse, TemplatesResponse, Article, AIQuery } from '@drodil/backstage-plugin-qeta-common';
6
6
  import * as react_jsx_runtime from 'react/jsx-runtime';
7
7
  import { Entity, UserEntity } from '@backstage/catalog-model';
8
8
  import * as react from 'react';
@@ -10,7 +10,9 @@ import { CSSProperties, ReactNode, KeyboardEvent, MouseEvent, Dispatch, SetState
10
10
  import { LinkProps } from '@backstage/core-components';
11
11
  import { SvgIconProps } from '@material-ui/core';
12
12
  import { PluggableList } from 'unified';
13
+ import * as _material_ui_styles from '@material-ui/styles';
13
14
  import * as react_use_lib_useAsyncFn from 'react-use/lib/useAsyncFn';
15
+ import * as react_router_dom from 'react-router-dom';
14
16
  import { Overrides } from '@material-ui/core/styles/overrides';
15
17
  import { StyleRules } from '@material-ui/core/styles/withStyles';
16
18
 
@@ -41,6 +43,7 @@ declare const entitiesRouteRef: _backstage_core_plugin_api.SubRouteRef<undefined
41
43
  declare const entityRouteRef: _backstage_core_plugin_api.SubRouteRef<_backstage_core_plugin_api.PathParams<"/entities/:entityRef">>;
42
44
  declare const moderatorRouteRef: _backstage_core_plugin_api.SubRouteRef<undefined>;
43
45
  declare const reviewRouteRef: _backstage_core_plugin_api.SubRouteRef<undefined>;
46
+ declare const settingsRouteRef: _backstage_core_plugin_api.SubRouteRef<undefined>;
44
47
 
45
48
  declare const qetaApiRef: _backstage_frontend_plugin_api.ApiRef<QetaApi>;
46
49
 
@@ -102,19 +105,6 @@ type Filters = {
102
105
  dateRange?: string;
103
106
  status?: PostStatus;
104
107
  };
105
- type PostFilters = Filters & {
106
- orderBy?: 'rank' | 'created' | 'title' | 'views' | 'score' | 'trend' | 'answersCount' | 'updated';
107
- noAnswers?: 'true' | 'false';
108
- noCorrectAnswer?: 'true' | 'false';
109
- noVotes?: 'true' | 'false';
110
- collectionId?: number;
111
- type?: PostType;
112
- entities?: string[];
113
- tags?: string[];
114
- tagsRelation?: 'and' | 'or';
115
- entitiesRelation?: 'and' | 'or';
116
- status?: PostStatus;
117
- };
118
108
  type Change<T extends Filters> = {
119
109
  key: keyof T;
120
110
  value?: string | string[];
@@ -139,7 +129,9 @@ interface ViewToggleProps {
139
129
  }
140
130
  declare const ViewToggle: ({ view, onChange }: ViewToggleProps) => react_jsx_runtime.JSX.Element;
141
131
 
142
- type PaginatedPostsProps = PostFilters & {
132
+ type PostsContainerProps = {
133
+ type?: PostType;
134
+ tags?: string[];
143
135
  author?: string;
144
136
  showFilters?: boolean;
145
137
  showTitle?: boolean;
@@ -149,52 +141,41 @@ type PaginatedPostsProps = PostFilters & {
149
141
  showWriteButton?: boolean;
150
142
  showLinkButton?: boolean;
151
143
  showNoQuestionsBtn?: boolean;
152
- initialPageSize?: number;
153
144
  collectionId?: number;
154
- status?: PostStatus;
155
- };
156
-
157
- type PostsContainerProps = PaginatedPostsProps & {
145
+ initialPageSize?: number;
158
146
  entity?: string;
159
147
  filterPanelProps?: CommonFilterPanelProps;
160
148
  showTypeLabel?: boolean;
149
+ allowRanking?: boolean;
150
+ defaultView?: ViewType;
161
151
  view?: ViewType;
162
152
  onViewChange?: (view: ViewType) => void;
153
+ status?: string;
154
+ prefix?: string;
155
+ orderBy?: 'rank' | 'created' | 'title' | 'views' | 'score' | 'trend' | 'answersCount' | 'updated';
163
156
  };
164
157
  declare const PostsContainer: (props: PostsContainerProps) => react_jsx_runtime.JSX.Element;
165
158
 
166
- declare const PostList: (props: {
167
- loading: boolean;
168
- error: any;
169
- response?: PostsResponse;
170
- entity?: string;
171
- tags?: string[];
172
- showNoQuestionsBtn?: boolean;
173
- entityPage?: boolean;
174
- type?: PostType;
175
- showTypeLabel?: boolean;
176
- hasMore?: boolean;
177
- loadNextPage?: () => void;
178
- }) => react_jsx_runtime.JSX.Element;
179
-
180
159
  interface PostListItemProps {
181
160
  post: PostResponse;
182
161
  entity?: string;
183
162
  type?: PostType;
184
163
  showTypeLabel?: boolean;
164
+ allowRanking?: boolean;
165
+ onRankUpdate?: () => void;
166
+ collectionId?: number;
185
167
  }
186
168
  declare const PostListItem: (props: PostListItemProps) => react_jsx_runtime.JSX.Element;
187
169
 
188
- declare const AnswerList: (props: {
189
- loading: boolean;
190
- error: any;
191
- response?: AnswersResponse;
170
+ interface PostsGridItemProps {
171
+ post: PostResponse;
192
172
  entity?: string;
193
- tags?: string[];
194
- entityPage?: boolean;
195
- hasMore?: boolean;
196
- loadNextPage?: () => void;
197
- }) => react_jsx_runtime.JSX.Element;
173
+ type?: PostType;
174
+ allowRanking?: boolean;
175
+ onRankUpdate?: () => void;
176
+ collectionId?: number;
177
+ }
178
+ declare const PostsGridItem: (props: PostsGridItemProps) => react_jsx_runtime.JSX.Element;
198
179
 
199
180
  interface AnswersContainerProps {
200
181
  tags?: string[];
@@ -203,6 +184,7 @@ interface AnswersContainerProps {
203
184
  showFilters?: boolean;
204
185
  showTitle?: boolean;
205
186
  title?: string;
187
+ prefix?: string;
206
188
  }
207
189
  declare const AnswersContainer: (props: AnswersContainerProps) => react_jsx_runtime.JSX.Element;
208
190
 
@@ -212,6 +194,12 @@ interface AnswerListItemProps {
212
194
  }
213
195
  declare const AnswerListItem: (props: AnswerListItemProps) => react_jsx_runtime.JSX.Element;
214
196
 
197
+ interface AnswersGridItemProps {
198
+ answer: AnswerResponse;
199
+ entity?: string;
200
+ }
201
+ declare const AnswersGridItem: (props: AnswersGridItemProps) => react_jsx_runtime.JSX.Element;
202
+
215
203
  declare const AskQuestionButton: (props: {
216
204
  entity?: string;
217
205
  tags?: string[];
@@ -274,6 +262,13 @@ interface ContentHeaderButtonProps {
274
262
  }
275
263
  declare const ContentHeaderButton: (props: ContentHeaderButtonProps) => react_jsx_runtime.JSX.Element;
276
264
 
265
+ interface RankingButtonsProps {
266
+ postId: number;
267
+ collectionId: number | undefined;
268
+ onRankUpdate?: () => void;
269
+ }
270
+ declare const RankingButtons: (props: RankingButtonsProps) => react_jsx_runtime.JSX.Element | null;
271
+
277
272
  declare const PostHighlightListContent: (props: {
278
273
  loading?: boolean;
279
274
  error?: any;
@@ -421,19 +416,61 @@ declare const TopRankingUsers: (props: {
421
416
 
422
417
  declare const TrophyIcon: (props: SvgIconProps) => react_jsx_runtime.JSX.Element;
423
418
 
424
- declare const TagsGrid: () => react_jsx_runtime.JSX.Element;
419
+ declare const TagsContainer: (props: {
420
+ filterPanelProps?: CommonFilterPanelProps;
421
+ defaultView?: ViewType;
422
+ }) => react_jsx_runtime.JSX.Element;
425
423
 
426
- declare const EntitiesGrid: () => react_jsx_runtime.JSX.Element;
424
+ declare const TagGridItem: (props: {
425
+ tag: TagResponse;
426
+ onTagEdit: () => void;
427
+ isModerator?: boolean;
428
+ }) => react_jsx_runtime.JSX.Element;
427
429
 
428
- declare const UsersGrid: () => react_jsx_runtime.JSX.Element;
430
+ declare const TagListItem: (props: {
431
+ tag: TagResponse;
432
+ onTagEdit: () => void;
433
+ isModerator?: boolean;
434
+ }) => react_jsx_runtime.JSX.Element;
429
435
 
430
- type PostGridProps = PaginatedPostsProps & {
431
- allowRanking?: boolean;
436
+ declare const CreateTagModal: (props: {
437
+ open: boolean;
438
+ onClose: () => void;
439
+ isModerator?: boolean;
440
+ }) => react_jsx_runtime.JSX.Element;
441
+
442
+ declare const EditTagModal: (props: {
443
+ tag: TagResponse;
444
+ open: boolean;
445
+ onClose: () => void;
446
+ isModerator?: boolean;
447
+ }) => react_jsx_runtime.JSX.Element;
448
+
449
+ declare const EntitiesContainer: (props: {
432
450
  filterPanelProps?: CommonFilterPanelProps;
433
- view?: ViewType;
434
- onViewChange?: (view: ViewType) => void;
435
- };
436
- declare const PostsGrid: (props: PostGridProps) => react_jsx_runtime.JSX.Element;
451
+ defaultView?: ViewType;
452
+ }) => react_jsx_runtime.JSX.Element;
453
+
454
+ declare const EntitiesGridItem: (props: {
455
+ entity: EntityResponse;
456
+ }) => react_jsx_runtime.JSX.Element;
457
+
458
+ declare const EntityListItem: (props: {
459
+ entity: EntityResponse;
460
+ }) => react_jsx_runtime.JSX.Element;
461
+
462
+ declare const UsersContainer: (props: {
463
+ filterPanelProps?: CommonFilterPanelProps;
464
+ defaultView?: ViewType;
465
+ }) => react_jsx_runtime.JSX.Element;
466
+
467
+ declare const UsersGridItem: (props: {
468
+ user: UserResponse;
469
+ }) => react_jsx_runtime.JSX.Element;
470
+
471
+ declare const UserListItem: (props: {
472
+ user: UserResponse;
473
+ }) => react_jsx_runtime.JSX.Element;
437
474
 
438
475
  type QetaArticleContentClassKey = 'content' | 'headerImage' | 'commentSection' | 'commentSectionContainer';
439
476
  declare const ArticleContent: (props: {
@@ -447,12 +484,12 @@ type CollectionFormProps = {
447
484
  };
448
485
  declare const CollectionForm: (props: CollectionFormProps) => react_jsx_runtime.JSX.Element;
449
486
 
450
- type CollectionsGridProps = {
451
- owner?: string;
452
- showFilters?: boolean;
487
+ declare const CollectionsContainer: (props: {
453
488
  filterPanelProps?: CommonFilterPanelProps;
454
- };
455
- declare const CollectionsGrid: (props: CollectionsGridProps) => react_jsx_runtime.JSX.Element;
489
+ defaultView?: ViewType;
490
+ owner?: string;
491
+ prefix?: string;
492
+ }) => react_jsx_runtime.JSX.Element;
456
493
 
457
494
  declare const LeftMenu: (props: {
458
495
  onKeyDown?: (event: KeyboardEvent) => void;
@@ -577,6 +614,21 @@ declare function useQetaApi<T>(f: (api: QetaApi) => Promise<T>, deps?: any[]): {
577
614
  value: T;
578
615
  };
579
616
 
617
+ declare function useVoting(resp: PostResponse | AnswerResponse): {
618
+ entity: _drodil_backstage_plugin_qeta_common.Post | _drodil_backstage_plugin_qeta_common.Answer;
619
+ ownVote: number;
620
+ correctAnswer: boolean;
621
+ score: number;
622
+ voteUp: () => void;
623
+ voteDown: () => void;
624
+ toggleCorrectAnswer: () => void;
625
+ voteUpTooltip: string;
626
+ voteDownTooltip: string;
627
+ correctTooltip: string;
628
+ };
629
+
630
+ declare const useListItemStyles: (props?: any) => _material_ui_styles.ClassNameMap<"root">;
631
+
580
632
  declare const useTagsFollow: () => {
581
633
  tags: string[];
582
634
  followTag: (tag: string) => void;
@@ -599,6 +651,7 @@ declare const useUserInfo: (entityRef: string, anonymous?: boolean) => {
599
651
  user: UserEntity | null;
600
652
  secondaryTitle: string | undefined;
601
653
  Icon: false | _backstage_frontend_plugin_api.IconComponent | undefined;
654
+ isCurrentUser: boolean;
602
655
  };
603
656
  declare const useEntityAuthor: (entity: PostResponse | AnswerResponse | CollectionResponse | UserResponse) => {
604
657
  name: string;
@@ -606,6 +659,7 @@ declare const useEntityAuthor: (entity: PostResponse | AnswerResponse | Collecti
606
659
  user: UserEntity | null;
607
660
  secondaryTitle: string | undefined;
608
661
  Icon: false | _backstage_frontend_plugin_api.IconComponent | undefined;
662
+ isCurrentUser: boolean;
609
663
  };
610
664
 
611
665
  declare const useUserFollow: () => {
@@ -652,6 +706,70 @@ declare const useCanReview: () => {
652
706
  type GridType = 'posts' | 'tags' | 'entities' | 'users' | 'collections';
653
707
  declare function useGridPageSize(gridType: GridType, basePageSize?: number): number;
654
708
 
709
+ type QetaEntitiesProps<T, F> = {
710
+ fetch: (api: QetaApi, limit: number, offset: number, filters: F) => Promise<{
711
+ items: T[];
712
+ total: number;
713
+ }>;
714
+ initialFilters: F;
715
+ prefix: string;
716
+ defaultPageSize?: number;
717
+ filterKeys?: string[];
718
+ fetchDeps?: any[];
719
+ getKey?: (item: T) => string | number;
720
+ usePagination?: boolean;
721
+ };
722
+ type FilterChange<F> = {
723
+ key: keyof F;
724
+ value?: F[keyof F] | string | string[];
725
+ };
726
+ declare function useQetaEntities<T, F>(props: QetaEntitiesProps<T, F>): {
727
+ page: number;
728
+ setPage: react.Dispatch<react.SetStateAction<number>>;
729
+ pageSize: number;
730
+ setPageSize: react.Dispatch<react.SetStateAction<number>>;
731
+ showFilterPanel: boolean;
732
+ setShowFilterPanel: react.Dispatch<react.SetStateAction<boolean>>;
733
+ searchParams: URLSearchParams;
734
+ setSearchParams: react_router_dom.SetURLSearchParams;
735
+ searchQuery: string;
736
+ setSearchQuery: react.Dispatch<react.SetStateAction<string>>;
737
+ filters: F;
738
+ setFilters: react.Dispatch<react.SetStateAction<F>>;
739
+ onPageChange: (value: number) => void;
740
+ onPageSizeChange: (value: number) => void;
741
+ onFilterChange: (changes: FilterChange<F> | FilterChange<F>[]) => void;
742
+ onSearchQueryChange: (query: string) => void;
743
+ response: {
744
+ items: T[];
745
+ total: number;
746
+ } | undefined;
747
+ items: T[];
748
+ hasMore: boolean;
749
+ total: number;
750
+ loading: boolean;
751
+ error: Error | undefined;
752
+ loadNextPage: () => void;
753
+ retry: (() => void) | (() => void) | (() => void) | (() => void);
754
+ fetchNextPage: () => void;
755
+ };
756
+
757
+ type UserSettings = {
758
+ autoSaveEnabled: boolean;
759
+ filterPanelExpanded: Record<string, boolean>;
760
+ viewType: Record<string, ViewType>;
761
+ aiAnswerExpanded: boolean;
762
+ usePagination: boolean;
763
+ };
764
+ declare const useUserSettings: () => {
765
+ settings: UserSettings;
766
+ updateSettings: (updates: Partial<UserSettings>) => Promise<void>;
767
+ getSetting: <K extends keyof UserSettings>(key: K) => UserSettings[K];
768
+ setSetting: <K extends keyof UserSettings>(key: K, value: UserSettings[K]) => Promise<void>;
769
+ resetSettings: () => Promise<void>;
770
+ isLoaded: boolean;
771
+ };
772
+
655
773
  /** @alpha */
656
774
  declare const qetaTranslationRef: _backstage_frontend_plugin_api.TranslationRef<"qeta", {
657
775
  readonly "answer.questionTitle": "Q: {{question}}";
@@ -711,6 +829,7 @@ declare const qetaTranslationRef: _backstage_frontend_plugin_api.TranslationRef<
711
829
  readonly "common.draft": "Draft";
712
830
  readonly "common.deleted": "Deleted";
713
831
  readonly "common.score": "{{score}} score";
832
+ readonly "common.error": "Error";
714
833
  readonly "common.answers": "answers";
715
834
  readonly "common.links": "links";
716
835
  readonly "common.questions": "questions";
@@ -938,6 +1057,7 @@ declare const qetaTranslationRef: _backstage_frontend_plugin_api.TranslationRef<
938
1057
  readonly "leftMenu.articles": "Articles";
939
1058
  readonly "leftMenu.moderate": "Moderate";
940
1059
  readonly "leftMenu.review": "Review";
1060
+ readonly "leftMenu.settings": "Settings";
941
1061
  readonly "leftMenu.manage": "Manage";
942
1062
  readonly "leftMenu.buttonLabel": "Menu";
943
1063
  readonly "leftMenu.home": "Home";
@@ -951,6 +1071,35 @@ declare const qetaTranslationRef: _backstage_frontend_plugin_api.TranslationRef<
951
1071
  readonly "moderatorPage.tools": "Tools";
952
1072
  readonly "moderatorPage.templatesInfo": "Templates can be used to prefill question content for the user";
953
1073
  readonly "moderatorPage.deletedPosts": "Deleted posts";
1074
+ readonly "settingsPage.title": "User Settings";
1075
+ readonly "settingsPage.autoSave.description": "Automatically save your drafts while writing questions and articles";
1076
+ readonly "settingsPage.autoSave.label": "Enable Auto-save";
1077
+ readonly "settingsPage.editorPreferences": "Editor Preferences";
1078
+ readonly "settingsPage.displayPreferences": "Display Preferences";
1079
+ readonly "settingsPage.aiAnswerExpanded.description": "Show AI-generated answers in expanded state when viewing questions";
1080
+ readonly "settingsPage.aiAnswerExpanded.label": "Expand AI Answers by Default";
1081
+ readonly "settingsPage.usePagination.description": "Use traditional pagination instead of infinite scrolling to load more items";
1082
+ readonly "settingsPage.usePagination.label": "Use Pagination";
1083
+ readonly "settingsPage.viewTypePreferences.title": "View Type Preferences";
1084
+ readonly "settingsPage.viewTypePreferences.default": "Default";
1085
+ readonly "settingsPage.viewTypePreferences.description": "Choose how you want to view different types of content. Select \"Default\" to use the system default view.";
1086
+ readonly "settingsPage.viewTypePreferences.labels.tags": "Tags";
1087
+ readonly "settingsPage.viewTypePreferences.labels.entities": "Entities";
1088
+ readonly "settingsPage.viewTypePreferences.labels.users": "Users";
1089
+ readonly "settingsPage.viewTypePreferences.labels.collections": "Collections";
1090
+ readonly "settingsPage.viewTypePreferences.labels.links": "Links";
1091
+ readonly "settingsPage.viewTypePreferences.labels.questions": "Questions";
1092
+ readonly "settingsPage.viewTypePreferences.labels.favorites": "Favorites";
1093
+ readonly "settingsPage.viewTypePreferences.labels.articles": "Articles";
1094
+ readonly "settingsPage.viewTypePreferences.labels.tagPosts": "Tag page posts";
1095
+ readonly "settingsPage.viewTypePreferences.labels.collectionPosts": "Collection page posts";
1096
+ readonly "settingsPage.viewTypePreferences.labels.userQuestions": "User page questions";
1097
+ readonly "settingsPage.viewTypePreferences.labels.userArticles": "User page articles";
1098
+ readonly "settingsPage.viewTypePreferences.labels.userLinks": "User page links";
1099
+ readonly "settingsPage.viewTypePreferences.labels.userCollections": "User page collections";
1100
+ readonly "settingsPage.viewTypePreferences.labels.userAnswers": "User page answers";
1101
+ readonly "settingsPage.viewTypePreferences.grid": "Grid";
1102
+ readonly "settingsPage.viewTypePreferences.list": "List";
954
1103
  readonly "suggestionsCard.title": "Suggestions";
955
1104
  readonly "suggestionsCard.noSuggestions": "No suggestions";
956
1105
  readonly "suggestionsCard.noCorrectAnswer1": "Your question \"{{title}}\" does not have a correct answer";
@@ -1115,6 +1264,7 @@ declare const qetaTranslationRef: _backstage_frontend_plugin_api.TranslationRef<
1115
1264
  readonly "datePicker.range.last7days": "Last 7 days";
1116
1265
  readonly "datePicker.range.last30days": "Last 30 days";
1117
1266
  readonly "datePicker.range.custom": "Custom";
1267
+ readonly "pagination.defaultTooltip": "Items per page";
1118
1268
  readonly "filterPanel.entitiesRelation.label": "Entities relation";
1119
1269
  readonly "filterPanel.noAnswers.label": "No answers";
1120
1270
  readonly "filterPanel.noVotes.label": "No votes";
@@ -1175,6 +1325,7 @@ declare const qetaTranslationRef: _backstage_frontend_plugin_api.TranslationRef<
1175
1325
  readonly "postsTable.cells.updated": "Last updated";
1176
1326
  readonly "postsTable.cells.title": "Title";
1177
1327
  readonly "postsTable.cells.asked": "Asked";
1328
+ readonly "tagPage.tags": "Tags";
1178
1329
  readonly "tagPage.search.label": "Search tag";
1179
1330
  readonly "tagPage.search.placeholder": "Search...";
1180
1331
  readonly "tagPage.errorLoading": "Could not load tags";
@@ -1183,6 +1334,7 @@ declare const qetaTranslationRef: _backstage_frontend_plugin_api.TranslationRef<
1183
1334
  readonly "tagPage.tags_zero": "No tags";
1184
1335
  readonly "tagPage.tags_one": "{{count}} tag";
1185
1336
  readonly "tagPage.tags_other": "{{count}} tags";
1337
+ readonly "entitiesPage.entities": "Entities";
1186
1338
  readonly "entitiesPage.search.label": "Search entity";
1187
1339
  readonly "entitiesPage.search.placeholder": "Search...";
1188
1340
  readonly "entitiesPage.errorLoading": "Could not load entities";
@@ -1197,6 +1349,7 @@ declare const qetaTranslationRef: _backstage_frontend_plugin_api.TranslationRef<
1197
1349
  readonly "aiAnswerCard.show": "Show";
1198
1350
  readonly "aiAnswerCard.hide": "Hide";
1199
1351
  readonly "usersPage.title": "Users";
1352
+ readonly "usersPage.users": "Users";
1200
1353
  readonly "usersPage.search.label": "Search user";
1201
1354
  readonly "usersPage.search.placeholder": "Search...";
1202
1355
  readonly "usersPage.errorLoading": "Could not load users";
@@ -1317,4 +1470,4 @@ type QetaOverrides = Overrides & {
1317
1470
  [Name in keyof QetaComponentsNameToClassKey]?: Partial<StyleRules<QetaComponentsNameToClassKey[Name]>>;
1318
1471
  };
1319
1472
 
1320
- export { AIAnswerCard, AddToCollectionButton, AnswerCard, AnswerForm, AnswerList, AnswerListItem, AnswersContainer, ArticleContent, AskQuestionButton, AuthorLink, BadgeChip, ButtonContainer, CollectionFollowButton, CollectionForm, CollectionsGrid, ContentHeader, ContentHeaderButton, ContentHeaderCard, type ContentHeaderCardProps, type ContentHeaderProps, CreateCollectionButton, CreateLinkButton, DeleteModal, DeletedBanner, DraftBanner, EntitiesGrid, EntityFollowButton, FaviconItem, FilterPanel, FollowedCollectionsList, FollowedEntitiesList, FollowedTagsList, FollowedUsersList, type GridType, ImpactCard, LeftMenu, LeftMenuButton, LinkCard, MarkdownRenderer, ObsoleteBanner, ObsoleteModal, OpenLinkButton, PostForm, type PostGridProps, PostHighlightList, PostHighlightListContainer, PostHighlightListContent, PostList, PostListItem, PostsCard, PostsContainer, type PostsContainerProps, PostsGrid, PostsTable, QetaContext, type QetaContextProps, type QetaOverrides, QetaProvider, QuestionCard, type QuestionFormValues, QuestionsTable, RelativeTimeWithTooltip, SelectTemplateList, StatsChart, StatusChip, SuggestionsCard, type TagAndEntitiesFormValues, TagFollowButton, TagsGrid, type TemplateFormValues, TemplateList, Timeline, TimelineItemCard, TopRankingUsers, TrophyIcon, UpdatedByLink, UserBadges, UserFollowButton, UserLink, UsersGrid, ValidReviewModal, ViewToggle, type ViewType, WriteArticleButton, articleRouteRef, articlesRouteRef, askRouteRef, collectionCreateRouteRef, collectionEditRouteRef, collectionRouteRef, collectionsRouteRef, createLinkRouteRef, editArticleRouteRef, editLinkRouteRef, editQuestionRouteRef, entitiesRouteRef, entityRouteRef, favoriteQuestionsRouteRef, linkRouteRef, linksRouteRef, moderatorRouteRef, qetaApiRef, qetaRouteRef, qetaTranslationRef, qetaTranslations, questionRouteRef, questionsRouteRef, reviewRouteRef, statisticsRouteRef, tagRouteRef, tagsRouteRef, useAI, useCanReview, useCollectionsFollow, useEntityAuthor, useEntityFollow, useGridPageSize, useIdentityApi, useIsModerator, useQetaApi, useQetaContext, useTagsFollow, useUserFollow, useUserInfo, userRouteRef, usersRouteRef, writeRouteRef };
1473
+ export { AIAnswerCard, AddToCollectionButton, AnswerCard, AnswerForm, AnswerListItem, AnswersContainer, AnswersGridItem, ArticleContent, AskQuestionButton, AuthorLink, BadgeChip, ButtonContainer, CollectionFollowButton, CollectionForm, CollectionsContainer, ContentHeader, ContentHeaderButton, ContentHeaderCard, type ContentHeaderCardProps, type ContentHeaderProps, CreateCollectionButton, CreateLinkButton, CreateTagModal, DeleteModal, DeletedBanner, DraftBanner, EditTagModal, EntitiesContainer, EntitiesGridItem, EntityFollowButton, EntityListItem, FaviconItem, type FilterChange, FilterPanel, FollowedCollectionsList, FollowedEntitiesList, FollowedTagsList, FollowedUsersList, type GridType, ImpactCard, LeftMenu, LeftMenuButton, LinkCard, MarkdownRenderer, ObsoleteBanner, ObsoleteModal, OpenLinkButton, PostForm, PostHighlightList, PostHighlightListContainer, PostHighlightListContent, PostListItem, PostsCard, PostsContainer, type PostsContainerProps, PostsGridItem, PostsTable, QetaContext, type QetaContextProps, type QetaEntitiesProps, type QetaOverrides, QetaProvider, QuestionCard, type QuestionFormValues, QuestionsTable, RankingButtons, RelativeTimeWithTooltip, SelectTemplateList, StatsChart, StatusChip, SuggestionsCard, type TagAndEntitiesFormValues, TagFollowButton, TagGridItem, TagListItem, TagsContainer, type TemplateFormValues, TemplateList, Timeline, TimelineItemCard, TopRankingUsers, TrophyIcon, UpdatedByLink, UserBadges, UserFollowButton, UserLink, UserListItem, type UserSettings, UsersContainer, UsersGridItem, ValidReviewModal, ViewToggle, type ViewType, WriteArticleButton, articleRouteRef, articlesRouteRef, askRouteRef, collectionCreateRouteRef, collectionEditRouteRef, collectionRouteRef, collectionsRouteRef, createLinkRouteRef, editArticleRouteRef, editLinkRouteRef, editQuestionRouteRef, entitiesRouteRef, entityRouteRef, favoriteQuestionsRouteRef, linkRouteRef, linksRouteRef, moderatorRouteRef, qetaApiRef, qetaRouteRef, qetaTranslationRef, qetaTranslations, questionRouteRef, questionsRouteRef, reviewRouteRef, settingsRouteRef, statisticsRouteRef, tagRouteRef, tagsRouteRef, useAI, useCanReview, useCollectionsFollow, useEntityAuthor, useEntityFollow, useGridPageSize, useIdentityApi, useIsModerator, useListItemStyles, useQetaApi, useQetaContext, useQetaEntities, useTagsFollow, useUserFollow, useUserInfo, useUserSettings, useVoting, userRouteRef, usersRouteRef, writeRouteRef };
package/dist/index.esm.js CHANGED
@@ -1,15 +1,15 @@
1
- export { articleRouteRef, articlesRouteRef, askRouteRef, collectionCreateRouteRef, collectionEditRouteRef, collectionRouteRef, collectionsRouteRef, createLinkRouteRef, editArticleRouteRef, editLinkRouteRef, editQuestionRouteRef, entitiesRouteRef, entityRouteRef, favoriteQuestionsRouteRef, linkRouteRef, linksRouteRef, moderatorRouteRef, qetaRouteRef, questionRouteRef, questionsRouteRef, reviewRouteRef, statisticsRouteRef, tagRouteRef, tagsRouteRef, userRouteRef, usersRouteRef, writeRouteRef } from './routes.esm.js';
1
+ export { articleRouteRef, articlesRouteRef, askRouteRef, collectionCreateRouteRef, collectionEditRouteRef, collectionRouteRef, collectionsRouteRef, createLinkRouteRef, editArticleRouteRef, editLinkRouteRef, editQuestionRouteRef, entitiesRouteRef, entityRouteRef, favoriteQuestionsRouteRef, linkRouteRef, linksRouteRef, moderatorRouteRef, qetaRouteRef, questionRouteRef, questionsRouteRef, reviewRouteRef, settingsRouteRef, statisticsRouteRef, tagRouteRef, tagsRouteRef, userRouteRef, usersRouteRef, writeRouteRef } from './routes.esm.js';
2
2
  export { qetaApiRef } from './api.esm.js';
3
3
  export { Timeline } from './components/Timeline/Timeline.esm.js';
4
4
  export { TimelineItemCard } from './components/Timeline/TimelineItem.esm.js';
5
5
  export { PostForm } from './components/PostForm/PostForm.esm.js';
6
6
  export { PostsContainer } from './components/PostsContainer/PostsContainer.esm.js';
7
- export { PostList } from './components/PostsContainer/PostList.esm.js';
8
7
  export { PostListItem } from './components/PostsContainer/PostListItem.esm.js';
8
+ export { PostsGridItem } from './components/PostsContainer/PostsGridItem.esm.js';
9
9
  export { FilterPanel } from './components/FilterPanel/FilterPanel.esm.js';
10
- export { AnswerList } from './components/AnswersContainer/AnswerList.esm.js';
11
10
  export { AnswersContainer } from './components/AnswersContainer/AnswersContainer.esm.js';
12
11
  export { AnswerListItem } from './components/AnswersContainer/AnswerListItem.esm.js';
12
+ export { AnswersGridItem } from './components/AnswersContainer/AnswersGridItem.esm.js';
13
13
  export { AskQuestionButton } from './components/Buttons/AskQuestionButton.esm.js';
14
14
  export { EntityFollowButton } from './components/Buttons/EntityFollowButton.esm.js';
15
15
  export { TagFollowButton } from './components/Buttons/TagFollowButton.esm.js';
@@ -22,6 +22,7 @@ export { UserFollowButton } from './components/Buttons/UserFollowButton.esm.js';
22
22
  export { CollectionFollowButton } from './components/Buttons/CollectionFollowButton.esm.js';
23
23
  export { ButtonContainer } from './components/Buttons/ButtonContainer.esm.js';
24
24
  export { ContentHeaderButton } from './components/Buttons/ContentHeaderButton.esm.js';
25
+ export { RankingButtons } from './components/Buttons/RankingButtons.esm.js';
25
26
  export { PostHighlightList, PostHighlightListContent } from './components/PostHighlightList/PostHighlightList.esm.js';
26
27
  export { PostHighlightListContainer } from './components/PostHighlightList/PostHighlightListContainer.esm.js';
27
28
  export { MarkdownRenderer } from './components/MarkdownRenderer/MarkdownRenderer.esm.js';
@@ -45,13 +46,20 @@ export { BadgeChip } from './components/Badges/BadgeChip.esm.js';
45
46
  export { UserBadges } from './components/Badges/UserBadges.esm.js';
46
47
  export { TopRankingUsers } from './components/TopRankingUsersCard/TopRankingUsersCard.esm.js';
47
48
  export { TrophyIcon } from './components/TopRankingUsersCard/TrophyIcon.esm.js';
48
- export { TagsGrid } from './components/TagsGrid/TagsGrid.esm.js';
49
- export { EntitiesGrid } from './components/EntitiesGrid/EntitiesGrid.esm.js';
50
- export { UsersGrid } from './components/UsersGrid/UsersGrid.esm.js';
51
- export { PostsGrid } from './components/PostsGrid/PostsGrid.esm.js';
49
+ export { TagsContainer } from './components/TagsContainer/TagsContainer.esm.js';
50
+ export { TagGridItem } from './components/TagsContainer/TagGridItem.esm.js';
51
+ export { TagListItem } from './components/TagsContainer/TagListItem.esm.js';
52
+ export { CreateTagModal } from './components/TagsContainer/CreateTagModal.esm.js';
53
+ export { EditTagModal } from './components/TagsContainer/EditTagModal.esm.js';
54
+ export { EntitiesContainer } from './components/EntitiesContainer/EntitiesContainer.esm.js';
55
+ export { EntitiesGridItem } from './components/EntitiesContainer/EntitiesGridItem.esm.js';
56
+ export { EntityListItem } from './components/EntitiesContainer/EntityListItem.esm.js';
57
+ export { UsersContainer } from './components/UsersContainer/UsersContainer.esm.js';
58
+ export { UsersGridItem } from './components/UsersContainer/UsersGridItem.esm.js';
59
+ export { UserListItem } from './components/UsersContainer/UserListItem.esm.js';
52
60
  export { ArticleContent } from './components/ArticleContent/ArticleContent.esm.js';
53
61
  export { CollectionForm } from './components/CollectionForm/CollectionForm.esm.js';
54
- export { CollectionsGrid } from './components/CollectionsGrid/CollectionsGrid.esm.js';
62
+ export { CollectionsContainer } from './components/CollectionsContainer/CollectionsContainer.esm.js';
55
63
  export { LeftMenu } from './components/LeftMenu/LeftMenu.esm.js';
56
64
  export { LeftMenuButton } from './components/LeftMenu/LeftMenuButton.esm.js';
57
65
  export { TemplateList } from './components/TemplateList/TemplateList.esm.js';
@@ -67,10 +75,13 @@ export { DeletedBanner } from './components/Utility/DeletedBanner.esm.js';
67
75
  export { DraftBanner } from './components/Utility/DraftBanner.esm.js';
68
76
  export { ObsoleteBanner } from './components/Utility/ObsoleteBanner.esm.js';
69
77
  export { StatusChip } from './components/Utility/StatusChip.esm.js';
78
+ import './components/Utility/QetaPagination.esm.js';
70
79
  export { ContentHeaderCard } from './components/ContentHeaderCard/ContentHeaderCard.esm.js';
71
80
  export { ContentHeader } from './components/ContentHeader/ContentHeader.esm.js';
72
81
  export { ViewToggle } from './components/ViewToggle/ViewToggle.esm.js';
73
82
  export { useQetaApi } from './hooks/useQetaApi.esm.js';
83
+ export { useVoting } from './hooks/useVoting.esm.js';
84
+ export { useListItemStyles } from './hooks/useListItemStyles.esm.js';
74
85
  export { useTagsFollow } from './hooks/useTagsFollow.esm.js';
75
86
  export { useEntityFollow } from './hooks/useEntityFollow.esm.js';
76
87
  export { useEntityAuthor, useUserInfo } from './hooks/useEntityAuthor.esm.js';
@@ -81,5 +92,7 @@ export { useIsModerator } from './hooks/useIsModerator.esm.js';
81
92
  export { useAI } from './hooks/useAI.esm.js';
82
93
  export { useCanReview } from './hooks/useCanReview.esm.js';
83
94
  export { useGridPageSize } from './hooks/useGridPageSize.esm.js';
95
+ export { useQetaEntities } from './hooks/useQetaEntities.esm.js';
96
+ export { useUserSettings } from './hooks/useUserSettings.esm.js';
84
97
  export { qetaTranslationRef, qetaTranslations } from './translation.esm.js';
85
98
  //# sourceMappingURL=index.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -133,6 +133,11 @@ const reviewRouteRef = createSubRouteRef({
133
133
  parent: qetaRouteRef,
134
134
  path: "/review"
135
135
  });
136
+ const settingsRouteRef = createSubRouteRef({
137
+ id: "qeta.settings",
138
+ parent: qetaRouteRef,
139
+ path: "/settings"
140
+ });
136
141
 
137
- export { articleRouteRef, articlesRouteRef, askRouteRef, collectionCreateRouteRef, collectionEditRouteRef, collectionRouteRef, collectionsRouteRef, createLinkRouteRef, editArticleRouteRef, editLinkRouteRef, editQuestionRouteRef, entitiesRouteRef, entityRouteRef, favoriteQuestionsRouteRef, linkRouteRef, linksRouteRef, moderatorRouteRef, qetaRouteRef, questionRouteRef, questionsRouteRef, reviewRouteRef, statisticsRouteRef, tagRouteRef, tagsRouteRef, userRouteRef, usersRouteRef, writeRouteRef };
142
+ export { articleRouteRef, articlesRouteRef, askRouteRef, collectionCreateRouteRef, collectionEditRouteRef, collectionRouteRef, collectionsRouteRef, createLinkRouteRef, editArticleRouteRef, editLinkRouteRef, editQuestionRouteRef, entitiesRouteRef, entityRouteRef, favoriteQuestionsRouteRef, linkRouteRef, linksRouteRef, moderatorRouteRef, qetaRouteRef, questionRouteRef, questionsRouteRef, reviewRouteRef, settingsRouteRef, statisticsRouteRef, tagRouteRef, tagsRouteRef, userRouteRef, usersRouteRef, writeRouteRef };
138
143
  //# sourceMappingURL=routes.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"routes.esm.js","sources":["../src/routes.ts"],"sourcesContent":["import { createRouteRef, createSubRouteRef } from '@backstage/core-plugin-api';\n\nexport const qetaRouteRef = createRouteRef({\n id: 'qeta',\n});\n\nexport const askRouteRef = createSubRouteRef({\n id: 'qeta.ask',\n parent: qetaRouteRef,\n path: '/questions/ask',\n});\n\nexport const favoriteQuestionsRouteRef = createSubRouteRef({\n id: 'qeta.favoriteQuestions',\n parent: qetaRouteRef,\n path: '/favorites',\n});\n\nexport const statisticsRouteRef = createSubRouteRef({\n id: 'qeta.statistics',\n parent: qetaRouteRef,\n path: '/statistics',\n});\n\nexport const questionsRouteRef = createSubRouteRef({\n id: 'qeta.questions',\n parent: qetaRouteRef,\n path: '/questions',\n});\n\nexport const questionRouteRef = createSubRouteRef({\n id: 'qeta.question',\n parent: qetaRouteRef,\n path: '/questions/:id',\n});\n\nexport const collectionsRouteRef = createSubRouteRef({\n id: 'qeta.collections',\n parent: qetaRouteRef,\n path: '/collections',\n});\n\nexport const collectionRouteRef = createSubRouteRef({\n id: 'qeta.collection',\n parent: qetaRouteRef,\n path: '/collections/:id',\n});\n\nexport const collectionCreateRouteRef = createSubRouteRef({\n id: 'qeta.collection.create',\n parent: qetaRouteRef,\n path: '/collections/create',\n});\n\nexport const collectionEditRouteRef = createSubRouteRef({\n id: 'qeta.collection.edit',\n parent: qetaRouteRef,\n path: '/collections/:id/edit',\n});\n\nexport const writeRouteRef = createSubRouteRef({\n id: 'qeta.write',\n parent: qetaRouteRef,\n path: '/articles/write',\n});\n\nexport const articlesRouteRef = createSubRouteRef({\n id: 'qeta.articles',\n parent: qetaRouteRef,\n path: '/articles',\n});\n\nexport const articleRouteRef = createSubRouteRef({\n id: 'qeta.article',\n parent: qetaRouteRef,\n path: '/articles/:id',\n});\n\nexport const linksRouteRef = createSubRouteRef({\n id: 'qeta.links',\n parent: qetaRouteRef,\n path: '/links',\n});\n\nexport const createLinkRouteRef = createSubRouteRef({\n id: 'qeta.createLink',\n parent: qetaRouteRef,\n path: '/links/create',\n});\n\nexport const linkRouteRef = createSubRouteRef({\n id: 'qeta.link',\n parent: qetaRouteRef,\n path: '/links/:id',\n});\n\nexport const usersRouteRef = createSubRouteRef({\n id: 'qeta.users',\n parent: qetaRouteRef,\n path: '/users',\n});\n\nexport const userRouteRef = createSubRouteRef({\n id: 'qeta.user',\n parent: qetaRouteRef,\n path: '/users/*',\n});\n\nexport const editQuestionRouteRef = createSubRouteRef({\n id: 'qeta.editQuestion',\n parent: qetaRouteRef,\n path: '/questions/:id/edit',\n});\n\nexport const editArticleRouteRef = createSubRouteRef({\n id: 'qeta.editArticle',\n parent: qetaRouteRef,\n path: '/articles/:id/edit',\n});\n\nexport const editLinkRouteRef = createSubRouteRef({\n id: 'qeta.editLink',\n parent: qetaRouteRef,\n path: '/links/:id/edit',\n});\n\nexport const tagsRouteRef = createSubRouteRef({\n id: 'qeta.tags',\n parent: qetaRouteRef,\n path: '/tags',\n});\n\nexport const tagRouteRef = createSubRouteRef({\n id: 'qeta.tag',\n parent: qetaRouteRef,\n path: '/tags/:tag',\n});\n\nexport const entitiesRouteRef = createSubRouteRef({\n id: 'qeta.entities',\n parent: qetaRouteRef,\n path: '/entities',\n});\n\nexport const entityRouteRef = createSubRouteRef({\n id: 'qeta.entity',\n parent: qetaRouteRef,\n path: '/entities/:entityRef',\n});\n\nexport const moderatorRouteRef = createSubRouteRef({\n id: 'qeta.moderator',\n parent: qetaRouteRef,\n path: '/moderate',\n});\n\nexport const reviewRouteRef = createSubRouteRef({\n id: 'qeta.review',\n parent: qetaRouteRef,\n path: '/review',\n});\n"],"names":[],"mappings":";;AAEO,MAAM,eAAe,cAAe,CAAA;AAAA,EACzC,EAAI,EAAA;AACN,CAAC;AAEM,MAAM,cAAc,iBAAkB,CAAA;AAAA,EAC3C,EAAI,EAAA,UAAA;AAAA,EACJ,MAAQ,EAAA,YAAA;AAAA,EACR,IAAM,EAAA;AACR,CAAC;AAEM,MAAM,4BAA4B,iBAAkB,CAAA;AAAA,EACzD,EAAI,EAAA,wBAAA;AAAA,EACJ,MAAQ,EAAA,YAAA;AAAA,EACR,IAAM,EAAA;AACR,CAAC;AAEM,MAAM,qBAAqB,iBAAkB,CAAA;AAAA,EAClD,EAAI,EAAA,iBAAA;AAAA,EACJ,MAAQ,EAAA,YAAA;AAAA,EACR,IAAM,EAAA;AACR,CAAC;AAEM,MAAM,oBAAoB,iBAAkB,CAAA;AAAA,EACjD,EAAI,EAAA,gBAAA;AAAA,EACJ,MAAQ,EAAA,YAAA;AAAA,EACR,IAAM,EAAA;AACR,CAAC;AAEM,MAAM,mBAAmB,iBAAkB,CAAA;AAAA,EAChD,EAAI,EAAA,eAAA;AAAA,EACJ,MAAQ,EAAA,YAAA;AAAA,EACR,IAAM,EAAA;AACR,CAAC;AAEM,MAAM,sBAAsB,iBAAkB,CAAA;AAAA,EACnD,EAAI,EAAA,kBAAA;AAAA,EACJ,MAAQ,EAAA,YAAA;AAAA,EACR,IAAM,EAAA;AACR,CAAC;AAEM,MAAM,qBAAqB,iBAAkB,CAAA;AAAA,EAClD,EAAI,EAAA,iBAAA;AAAA,EACJ,MAAQ,EAAA,YAAA;AAAA,EACR,IAAM,EAAA;AACR,CAAC;AAEM,MAAM,2BAA2B,iBAAkB,CAAA;AAAA,EACxD,EAAI,EAAA,wBAAA;AAAA,EACJ,MAAQ,EAAA,YAAA;AAAA,EACR,IAAM,EAAA;AACR,CAAC;AAEM,MAAM,yBAAyB,iBAAkB,CAAA;AAAA,EACtD,EAAI,EAAA,sBAAA;AAAA,EACJ,MAAQ,EAAA,YAAA;AAAA,EACR,IAAM,EAAA;AACR,CAAC;AAEM,MAAM,gBAAgB,iBAAkB,CAAA;AAAA,EAC7C,EAAI,EAAA,YAAA;AAAA,EACJ,MAAQ,EAAA,YAAA;AAAA,EACR,IAAM,EAAA;AACR,CAAC;AAEM,MAAM,mBAAmB,iBAAkB,CAAA;AAAA,EAChD,EAAI,EAAA,eAAA;AAAA,EACJ,MAAQ,EAAA,YAAA;AAAA,EACR,IAAM,EAAA;AACR,CAAC;AAEM,MAAM,kBAAkB,iBAAkB,CAAA;AAAA,EAC/C,EAAI,EAAA,cAAA;AAAA,EACJ,MAAQ,EAAA,YAAA;AAAA,EACR,IAAM,EAAA;AACR,CAAC;AAEM,MAAM,gBAAgB,iBAAkB,CAAA;AAAA,EAC7C,EAAI,EAAA,YAAA;AAAA,EACJ,MAAQ,EAAA,YAAA;AAAA,EACR,IAAM,EAAA;AACR,CAAC;AAEM,MAAM,qBAAqB,iBAAkB,CAAA;AAAA,EAClD,EAAI,EAAA,iBAAA;AAAA,EACJ,MAAQ,EAAA,YAAA;AAAA,EACR,IAAM,EAAA;AACR,CAAC;AAEM,MAAM,eAAe,iBAAkB,CAAA;AAAA,EAC5C,EAAI,EAAA,WAAA;AAAA,EACJ,MAAQ,EAAA,YAAA;AAAA,EACR,IAAM,EAAA;AACR,CAAC;AAEM,MAAM,gBAAgB,iBAAkB,CAAA;AAAA,EAC7C,EAAI,EAAA,YAAA;AAAA,EACJ,MAAQ,EAAA,YAAA;AAAA,EACR,IAAM,EAAA;AACR,CAAC;AAEM,MAAM,eAAe,iBAAkB,CAAA;AAAA,EAC5C,EAAI,EAAA,WAAA;AAAA,EACJ,MAAQ,EAAA,YAAA;AAAA,EACR,IAAM,EAAA;AACR,CAAC;AAEM,MAAM,uBAAuB,iBAAkB,CAAA;AAAA,EACpD,EAAI,EAAA,mBAAA;AAAA,EACJ,MAAQ,EAAA,YAAA;AAAA,EACR,IAAM,EAAA;AACR,CAAC;AAEM,MAAM,sBAAsB,iBAAkB,CAAA;AAAA,EACnD,EAAI,EAAA,kBAAA;AAAA,EACJ,MAAQ,EAAA,YAAA;AAAA,EACR,IAAM,EAAA;AACR,CAAC;AAEM,MAAM,mBAAmB,iBAAkB,CAAA;AAAA,EAChD,EAAI,EAAA,eAAA;AAAA,EACJ,MAAQ,EAAA,YAAA;AAAA,EACR,IAAM,EAAA;AACR,CAAC;AAEM,MAAM,eAAe,iBAAkB,CAAA;AAAA,EAC5C,EAAI,EAAA,WAAA;AAAA,EACJ,MAAQ,EAAA,YAAA;AAAA,EACR,IAAM,EAAA;AACR,CAAC;AAEM,MAAM,cAAc,iBAAkB,CAAA;AAAA,EAC3C,EAAI,EAAA,UAAA;AAAA,EACJ,MAAQ,EAAA,YAAA;AAAA,EACR,IAAM,EAAA;AACR,CAAC;AAEM,MAAM,mBAAmB,iBAAkB,CAAA;AAAA,EAChD,EAAI,EAAA,eAAA;AAAA,EACJ,MAAQ,EAAA,YAAA;AAAA,EACR,IAAM,EAAA;AACR,CAAC;AAEM,MAAM,iBAAiB,iBAAkB,CAAA;AAAA,EAC9C,EAAI,EAAA,aAAA;AAAA,EACJ,MAAQ,EAAA,YAAA;AAAA,EACR,IAAM,EAAA;AACR,CAAC;AAEM,MAAM,oBAAoB,iBAAkB,CAAA;AAAA,EACjD,EAAI,EAAA,gBAAA;AAAA,EACJ,MAAQ,EAAA,YAAA;AAAA,EACR,IAAM,EAAA;AACR,CAAC;AAEM,MAAM,iBAAiB,iBAAkB,CAAA;AAAA,EAC9C,EAAI,EAAA,aAAA;AAAA,EACJ,MAAQ,EAAA,YAAA;AAAA,EACR,IAAM,EAAA;AACR,CAAC;;;;"}
1
+ {"version":3,"file":"routes.esm.js","sources":["../src/routes.ts"],"sourcesContent":["import { createRouteRef, createSubRouteRef } from '@backstage/core-plugin-api';\n\nexport const qetaRouteRef = createRouteRef({\n id: 'qeta',\n});\n\nexport const askRouteRef = createSubRouteRef({\n id: 'qeta.ask',\n parent: qetaRouteRef,\n path: '/questions/ask',\n});\n\nexport const favoriteQuestionsRouteRef = createSubRouteRef({\n id: 'qeta.favoriteQuestions',\n parent: qetaRouteRef,\n path: '/favorites',\n});\n\nexport const statisticsRouteRef = createSubRouteRef({\n id: 'qeta.statistics',\n parent: qetaRouteRef,\n path: '/statistics',\n});\n\nexport const questionsRouteRef = createSubRouteRef({\n id: 'qeta.questions',\n parent: qetaRouteRef,\n path: '/questions',\n});\n\nexport const questionRouteRef = createSubRouteRef({\n id: 'qeta.question',\n parent: qetaRouteRef,\n path: '/questions/:id',\n});\n\nexport const collectionsRouteRef = createSubRouteRef({\n id: 'qeta.collections',\n parent: qetaRouteRef,\n path: '/collections',\n});\n\nexport const collectionRouteRef = createSubRouteRef({\n id: 'qeta.collection',\n parent: qetaRouteRef,\n path: '/collections/:id',\n});\n\nexport const collectionCreateRouteRef = createSubRouteRef({\n id: 'qeta.collection.create',\n parent: qetaRouteRef,\n path: '/collections/create',\n});\n\nexport const collectionEditRouteRef = createSubRouteRef({\n id: 'qeta.collection.edit',\n parent: qetaRouteRef,\n path: '/collections/:id/edit',\n});\n\nexport const writeRouteRef = createSubRouteRef({\n id: 'qeta.write',\n parent: qetaRouteRef,\n path: '/articles/write',\n});\n\nexport const articlesRouteRef = createSubRouteRef({\n id: 'qeta.articles',\n parent: qetaRouteRef,\n path: '/articles',\n});\n\nexport const articleRouteRef = createSubRouteRef({\n id: 'qeta.article',\n parent: qetaRouteRef,\n path: '/articles/:id',\n});\n\nexport const linksRouteRef = createSubRouteRef({\n id: 'qeta.links',\n parent: qetaRouteRef,\n path: '/links',\n});\n\nexport const createLinkRouteRef = createSubRouteRef({\n id: 'qeta.createLink',\n parent: qetaRouteRef,\n path: '/links/create',\n});\n\nexport const linkRouteRef = createSubRouteRef({\n id: 'qeta.link',\n parent: qetaRouteRef,\n path: '/links/:id',\n});\n\nexport const usersRouteRef = createSubRouteRef({\n id: 'qeta.users',\n parent: qetaRouteRef,\n path: '/users',\n});\n\nexport const userRouteRef = createSubRouteRef({\n id: 'qeta.user',\n parent: qetaRouteRef,\n path: '/users/*',\n});\n\nexport const editQuestionRouteRef = createSubRouteRef({\n id: 'qeta.editQuestion',\n parent: qetaRouteRef,\n path: '/questions/:id/edit',\n});\n\nexport const editArticleRouteRef = createSubRouteRef({\n id: 'qeta.editArticle',\n parent: qetaRouteRef,\n path: '/articles/:id/edit',\n});\n\nexport const editLinkRouteRef = createSubRouteRef({\n id: 'qeta.editLink',\n parent: qetaRouteRef,\n path: '/links/:id/edit',\n});\n\nexport const tagsRouteRef = createSubRouteRef({\n id: 'qeta.tags',\n parent: qetaRouteRef,\n path: '/tags',\n});\n\nexport const tagRouteRef = createSubRouteRef({\n id: 'qeta.tag',\n parent: qetaRouteRef,\n path: '/tags/:tag',\n});\n\nexport const entitiesRouteRef = createSubRouteRef({\n id: 'qeta.entities',\n parent: qetaRouteRef,\n path: '/entities',\n});\n\nexport const entityRouteRef = createSubRouteRef({\n id: 'qeta.entity',\n parent: qetaRouteRef,\n path: '/entities/:entityRef',\n});\n\nexport const moderatorRouteRef = createSubRouteRef({\n id: 'qeta.moderator',\n parent: qetaRouteRef,\n path: '/moderate',\n});\n\nexport const reviewRouteRef = createSubRouteRef({\n id: 'qeta.review',\n parent: qetaRouteRef,\n path: '/review',\n});\n\nexport const settingsRouteRef = createSubRouteRef({\n id: 'qeta.settings',\n parent: qetaRouteRef,\n path: '/settings',\n});\n"],"names":[],"mappings":"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"}