@drodil/backstage-plugin-qeta 3.60.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/README.md +6 -11
  2. package/dist/components/ArticlePage/ArticlePage.esm.js +57 -15
  3. package/dist/components/ArticlePage/ArticlePage.esm.js.map +1 -1
  4. package/dist/components/ArticlesPage/ArticlesPage.esm.js +5 -22
  5. package/dist/components/ArticlesPage/ArticlesPage.esm.js.map +1 -1
  6. package/dist/components/AskPage/AskPage.esm.js +6 -7
  7. package/dist/components/AskPage/AskPage.esm.js.map +1 -1
  8. package/dist/components/CollectionCreatePage/CollectionCreatePage.esm.js +3 -4
  9. package/dist/components/CollectionCreatePage/CollectionCreatePage.esm.js.map +1 -1
  10. package/dist/components/CollectionPage/CollectionPage.esm.js +43 -87
  11. package/dist/components/CollectionPage/CollectionPage.esm.js.map +1 -1
  12. package/dist/components/CollectionsPage/CollectionsPage.esm.js +4 -5
  13. package/dist/components/CollectionsPage/CollectionsPage.esm.js.map +1 -1
  14. package/dist/components/ContentHealthCard/ContentHealthCard.esm.js +61 -89
  15. package/dist/components/ContentHealthCard/ContentHealthCard.esm.js.map +1 -1
  16. package/dist/components/ContentHealthCard/ContentHealthCard.module.css.esm.js +8 -0
  17. package/dist/components/ContentHealthCard/ContentHealthCard.module.css.esm.js.map +1 -0
  18. package/dist/components/ContentHealthCard/ReviewList.esm.js +27 -60
  19. package/dist/components/ContentHealthCard/ReviewList.esm.js.map +1 -1
  20. package/dist/components/ContentHealthCard/ReviewList.module.css.esm.js +8 -0
  21. package/dist/components/ContentHealthCard/ReviewList.module.css.esm.js.map +1 -0
  22. package/dist/components/CreateLinkPage/CreateLinkPage.esm.js +5 -6
  23. package/dist/components/CreateLinkPage/CreateLinkPage.esm.js.map +1 -1
  24. package/dist/components/EntityPage/EntityPage.esm.js +40 -58
  25. package/dist/components/EntityPage/EntityPage.esm.js.map +1 -1
  26. package/dist/components/EntityPostsContent/EntityPostsContent.esm.js +2 -3
  27. package/dist/components/EntityPostsContent/EntityPostsContent.esm.js.map +1 -1
  28. package/dist/components/FavoritePage/FavoritePage.esm.js +3 -14
  29. package/dist/components/FavoritePage/FavoritePage.esm.js.map +1 -1
  30. package/dist/components/HomePage/HomePage.esm.js +14 -60
  31. package/dist/components/HomePage/HomePage.esm.js.map +1 -1
  32. package/dist/components/HomePage/HomePage.module.css.esm.js +8 -0
  33. package/dist/components/HomePage/HomePage.module.css.esm.js.map +1 -0
  34. package/dist/components/LinkPage/LinkPage.esm.js +56 -61
  35. package/dist/components/LinkPage/LinkPage.esm.js.map +1 -1
  36. package/dist/components/LinksPage/LinksPage.esm.js +5 -16
  37. package/dist/components/LinksPage/LinksPage.esm.js.map +1 -1
  38. package/dist/components/ModeratorPage/ModeratorPage.esm.js +19 -29
  39. package/dist/components/ModeratorPage/ModeratorPage.esm.js.map +1 -1
  40. package/dist/components/ModeratorPage/ModeratorPage.module.css.esm.js +8 -0
  41. package/dist/components/ModeratorPage/ModeratorPage.module.css.esm.js.map +1 -0
  42. package/dist/components/QetaPage/QetaPage.esm.js +185 -268
  43. package/dist/components/QetaPage/QetaPage.esm.js.map +1 -1
  44. package/dist/components/QetaPage/QetaPage.module.css.esm.js +8 -0
  45. package/dist/components/QetaPage/QetaPage.module.css.esm.js.map +1 -0
  46. package/dist/components/QetaSearchResultListItem/QetaSearchResultListItem.esm.js +67 -78
  47. package/dist/components/QetaSearchResultListItem/QetaSearchResultListItem.esm.js.map +1 -1
  48. package/dist/components/QetaSearchResultListItem/QetaSearchResultListItem.module.css.esm.js +8 -0
  49. package/dist/components/QetaSearchResultListItem/QetaSearchResultListItem.module.css.esm.js.map +1 -0
  50. package/dist/components/QuestionPage/QuestionPage.esm.js +118 -97
  51. package/dist/components/QuestionPage/QuestionPage.esm.js.map +1 -1
  52. package/dist/components/QuestionsPage/QuestionsPage.esm.js +4 -5
  53. package/dist/components/QuestionsPage/QuestionsPage.esm.js.map +1 -1
  54. package/dist/components/ReviewPage/ReviewPage.esm.js +53 -18
  55. package/dist/components/ReviewPage/ReviewPage.esm.js.map +1 -1
  56. package/dist/components/RightContent/ArticlesRightContent.esm.js +2 -2
  57. package/dist/components/RightContent/ArticlesRightContent.esm.js.map +1 -1
  58. package/dist/components/RightContent/DefaultRightContent.esm.js +2 -2
  59. package/dist/components/RightContent/DefaultRightContent.esm.js.map +1 -1
  60. package/dist/components/RightContent/EntityRightContent.esm.js +2 -2
  61. package/dist/components/RightContent/EntityRightContent.esm.js.map +1 -1
  62. package/dist/components/RightContent/LinkedPosts.esm.js +5 -19
  63. package/dist/components/RightContent/LinkedPosts.esm.js.map +1 -1
  64. package/dist/components/RightContent/LinkedPosts.module.css.esm.js +8 -0
  65. package/dist/components/RightContent/LinkedPosts.module.css.esm.js.map +1 -0
  66. package/dist/components/RightContent/LinksRightContent.esm.js +2 -2
  67. package/dist/components/RightContent/LinksRightContent.esm.js.map +1 -1
  68. package/dist/components/RightContent/PostRightContent.esm.js +4 -4
  69. package/dist/components/RightContent/PostRightContent.esm.js.map +1 -1
  70. package/dist/components/RightContent/QuestionsRightContent.esm.js +2 -2
  71. package/dist/components/RightContent/QuestionsRightContent.esm.js.map +1 -1
  72. package/dist/components/RightContent/RightContent.esm.js +36 -52
  73. package/dist/components/RightContent/RightContent.esm.js.map +1 -1
  74. package/dist/components/RightContent/RightContent.module.css.esm.js +8 -0
  75. package/dist/components/RightContent/RightContent.module.css.esm.js.map +1 -0
  76. package/dist/components/RightContent/SimilarQuestions.esm.js +3 -16
  77. package/dist/components/RightContent/SimilarQuestions.esm.js.map +1 -1
  78. package/dist/components/RightContent/SimilarQuestions.module.css.esm.js +8 -0
  79. package/dist/components/RightContent/SimilarQuestions.module.css.esm.js.map +1 -0
  80. package/dist/components/RightContent/TagRightContent.esm.js +2 -2
  81. package/dist/components/RightContent/TagRightContent.esm.js.map +1 -1
  82. package/dist/components/SettingsPage/SettingsPage.esm.js +198 -200
  83. package/dist/components/SettingsPage/SettingsPage.esm.js.map +1 -1
  84. package/dist/components/SettingsPage/SettingsPage.module.css.esm.js +8 -0
  85. package/dist/components/SettingsPage/SettingsPage.module.css.esm.js.map +1 -0
  86. package/dist/components/Statistics/GlobalStatsContent.esm.js +5 -5
  87. package/dist/components/Statistics/GlobalStatsContent.esm.js.map +1 -1
  88. package/dist/components/Statistics/StatisticsPage.esm.js +14 -19
  89. package/dist/components/Statistics/StatisticsPage.esm.js.map +1 -1
  90. package/dist/components/Statistics/StatisticsPage.module.css.esm.js +8 -0
  91. package/dist/components/Statistics/StatisticsPage.module.css.esm.js.map +1 -0
  92. package/dist/components/TagPage/TagPage.esm.js +54 -87
  93. package/dist/components/TagPage/TagPage.esm.js.map +1 -1
  94. package/dist/components/TechDocsAskQuestionAddon/TechDocsAskQuestionAddon.esm.js +23 -32
  95. package/dist/components/TechDocsAskQuestionAddon/TechDocsAskQuestionAddon.esm.js.map +1 -1
  96. package/dist/components/TechDocsAskQuestionAddon/TechDocsAskQuestionAddon.module.css.esm.js +8 -0
  97. package/dist/components/TechDocsAskQuestionAddon/TechDocsAskQuestionAddon.module.css.esm.js.map +1 -0
  98. package/dist/components/UserPage/UserPage.esm.js +137 -236
  99. package/dist/components/UserPage/UserPage.esm.js.map +1 -1
  100. package/dist/components/UserPage/UserPage.module.css.esm.js +8 -0
  101. package/dist/components/UserPage/UserPage.module.css.esm.js.map +1 -0
  102. package/dist/components/UserPage/UserStatsContent.esm.js +5 -5
  103. package/dist/components/UserPage/UserStatsContent.esm.js.map +1 -1
  104. package/dist/components/UsersPage/UsersPage.esm.js +3 -9
  105. package/dist/components/UsersPage/UsersPage.esm.js.map +1 -1
  106. package/dist/components/WritePage/WritePage.esm.js +5 -6
  107. package/dist/components/WritePage/WritePage.esm.js.map +1 -1
  108. package/dist/index.d.ts +283 -77
  109. package/dist/index.esm.js +262 -7
  110. package/dist/index.esm.js.map +1 -1
  111. package/dist/node_modules_dist/style-inject/dist/style-inject.es.esm.js +29 -0
  112. package/dist/node_modules_dist/style-inject/dist/style-inject.es.esm.js.map +1 -0
  113. package/dist/{package.json.esm.js → plugins/qeta/package.json.esm.js} +8 -13
  114. package/dist/{package.json.esm.js.map → plugins/qeta/package.json.esm.js.map} +1 -1
  115. package/package.json +9 -18
  116. package/dist/alpha.d.ts +0 -255
  117. package/dist/alpha.esm.js +0 -238
  118. package/dist/alpha.esm.js.map +0 -1
  119. package/dist/components/EntityCards/EntityPostsContainerCard.esm.js +0 -13
  120. package/dist/components/EntityCards/EntityPostsContainerCard.esm.js.map +0 -1
  121. package/dist/components/EntityCards/EntityPostsGridCard.esm.js +0 -20
  122. package/dist/components/EntityCards/EntityPostsGridCard.esm.js.map +0 -1
  123. package/dist/components/ReviewPage/index.esm.js +0 -6
  124. package/dist/components/ReviewPage/index.esm.js.map +0 -1
  125. package/dist/plugin.esm.js +0 -84
  126. package/dist/plugin.esm.js.map +0 -1
package/dist/alpha.esm.js DELETED
@@ -1,238 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { ApiBlueprint, createExtensionInput, PageBlueprint, coreExtensionData, createFrontendPlugin } from '@backstage/frontend-plugin-api';
3
- import { compatWrapper, convertLegacyRouteRef, convertLegacyRouteRefs } from '@backstage/core-compat-api';
4
- import { qetaApiRef, qetaRouteRef } from '@drodil/backstage-plugin-qeta-react';
5
- export { qetaTranslationRef } from '@drodil/backstage-plugin-qeta-react';
6
- import { createApiRef, fetchApiRef, discoveryApiRef, configApiRef } from '@backstage/core-plugin-api';
7
- import { QetaClient, getSupportedEntityKinds } from '@drodil/backstage-plugin-qeta-common';
8
- import ContactSupportIcon from '@material-ui/icons/ContactSupport';
9
- import { EntityContentBlueprint } from '@backstage/plugin-catalog-react/alpha';
10
- import { SearchResultListItemBlueprint, SearchFilterResultTypeBlueprint } from '@backstage/plugin-search-react/alpha';
11
- import { TechDocsAddonLocations } from '@backstage/plugin-techdocs-react';
12
- import { AddonBlueprint } from '@backstage/plugin-techdocs-react/alpha';
13
- import { TechDocsAskQuestionAddon } from './components/TechDocsAskQuestionAddon/TechDocsAskQuestionAddon.esm.js';
14
- import { markdownPlugin } from '@drodil/backstage-plugin-qeta-react/alpha';
15
- export { QetaMarkdownRehypePluginBlueprint, QetaMarkdownRemarkPluginBlueprint, QetaPageHeaderElementBlueprint, QetaPageIntroElementBlueprint } from '@drodil/backstage-plugin-qeta-react/alpha';
16
- import { HomePageWidgetBlueprint } from '@backstage/plugin-home-react/alpha';
17
-
18
- const qetaMarkdownPluginsApiRef = createApiRef({
19
- id: "plugin.qeta.addons"
20
- });
21
- const qetaMarkdownPluginsApiExtension = ApiBlueprint.makeWithOverrides({
22
- name: "addons",
23
- inputs: {
24
- rehypePlugins: createExtensionInput([markdownPlugin]),
25
- remarkPlugins: createExtensionInput([markdownPlugin])
26
- },
27
- factory(originalFactory, { inputs }) {
28
- const rehypePlugins = inputs.rehypePlugins.map(
29
- (output) => output.get(markdownPlugin)
30
- );
31
- const remarkPlugins = inputs.remarkPlugins.map(
32
- (output) => output.get(markdownPlugin)
33
- );
34
- return originalFactory(
35
- (defineParams) => defineParams({
36
- api: qetaMarkdownPluginsApiRef,
37
- deps: {},
38
- factory: () => ({
39
- getRehypePlugins: () => rehypePlugins,
40
- getRemarkPlugins: () => remarkPlugins
41
- })
42
- })
43
- );
44
- }
45
- });
46
- const qetaApi = ApiBlueprint.make({
47
- params: (defineParams) => defineParams({
48
- api: qetaApiRef,
49
- deps: {
50
- discoveryApi: discoveryApiRef,
51
- fetchApi: fetchApiRef
52
- },
53
- factory({ discoveryApi, fetchApi }) {
54
- return new QetaClient({ discoveryApi, fetchApi });
55
- }
56
- })
57
- });
58
- const qetaPage = PageBlueprint.makeWithOverrides({
59
- config: {
60
- schema: {
61
- subtitle: (z) => z.string().optional(),
62
- themeId: (z) => z.string().optional(),
63
- headerTooltip: (z) => z.string().optional(),
64
- headerType: (z) => z.string().optional(),
65
- headerTypeLink: (z) => z.string().optional()
66
- }
67
- },
68
- inputs: {
69
- introElement: createExtensionInput([coreExtensionData.reactElement], {
70
- singleton: true,
71
- optional: true
72
- }),
73
- headerElements: createExtensionInput([coreExtensionData.reactElement], {
74
- singleton: false,
75
- optional: true
76
- })
77
- },
78
- factory: (originalFactory, { config, inputs, apis }) => {
79
- const introElement = inputs.introElement?.get(
80
- coreExtensionData.reactElement
81
- );
82
- const headerElements = inputs.headerElements.map(
83
- (e) => e.get(coreExtensionData.reactElement)
84
- );
85
- const pluginsApi = apis.get(qetaMarkdownPluginsApiRef);
86
- const remarkPlugins = pluginsApi?.getRemarkPlugins();
87
- const rehypePlugins = pluginsApi?.getRehypePlugins();
88
- return originalFactory({
89
- path: config.path ?? "/qeta",
90
- title: config.title ?? "Q&A",
91
- icon: /* @__PURE__ */ jsx(ContactSupportIcon, {}),
92
- routeRef: convertLegacyRouteRef(qetaRouteRef),
93
- loader: () => import('./components/QetaPage/index.esm.js').then(
94
- (m) => compatWrapper(
95
- /* @__PURE__ */ jsx(
96
- m.QetaPage,
97
- {
98
- ...config,
99
- introElement,
100
- headerElements,
101
- remarkPlugins,
102
- rehypePlugins
103
- }
104
- )
105
- )
106
- )
107
- });
108
- }
109
- });
110
- const EntityPostsContent = EntityContentBlueprint.makeWithOverrides({
111
- name: "entity-posts-content",
112
- config: {
113
- schema: {
114
- showFilters: (z) => z.boolean().optional(),
115
- showTitle: (z) => z.boolean().optional(),
116
- showAskButton: (z) => z.boolean().optional(),
117
- showWriteButton: (z) => z.boolean().optional(),
118
- showLinkButton: (z) => z.boolean().optional(),
119
- showNoQuestionsBtn: (z) => z.boolean().optional(),
120
- initialPageSize: (z) => z.number().optional(),
121
- type: (z) => z.enum(["question", "article", "link"]).optional(),
122
- view: (z) => z.enum(["list", "grid"]).optional(),
123
- relations: (z) => z.array(z.string()).optional()
124
- }
125
- },
126
- inputs: {},
127
- factory: (originalFactory, { config, apis }) => {
128
- return originalFactory({
129
- path: config.path ?? "/qeta",
130
- title: config.title ?? "Q&A",
131
- filter: (entity) => {
132
- const configApi = apis.get(configApiRef);
133
- const supportedKinds = getSupportedEntityKinds(configApi);
134
- const entityKind = entity.kind.toLowerCase();
135
- return supportedKinds?.includes(entityKind);
136
- },
137
- loader: async () => {
138
- const pluginsApi = apis.get(qetaMarkdownPluginsApiRef);
139
- const remarkPlugins = pluginsApi?.getRemarkPlugins();
140
- const rehypePlugins = pluginsApi?.getRehypePlugins();
141
- return import('./components/EntityPostsContent/EntityPostsContent.esm.js').then(
142
- (m) => compatWrapper(
143
- /* @__PURE__ */ jsx(
144
- m.EntityPostsContent,
145
- {
146
- ...config,
147
- remarkPlugins,
148
- rehypePlugins
149
- }
150
- )
151
- )
152
- );
153
- }
154
- });
155
- }
156
- });
157
- const qetaSearchResultItem = SearchResultListItemBlueprint.make({
158
- params: {
159
- predicate: (result) => result.type === "qeta",
160
- component: () => import('./components/QetaSearchResultListItem/index.esm.js').then(
161
- (m) => m.QetaSearchResultListItem
162
- )
163
- }
164
- });
165
- const qetaPostSearchFilterType = SearchFilterResultTypeBlueprint.make({
166
- name: "qeta",
167
- params: {
168
- value: "qeta",
169
- name: "Q&A",
170
- icon: /* @__PURE__ */ jsx(ContactSupportIcon, {})
171
- }
172
- });
173
- const techDocsAskQuestionAddon = AddonBlueprint.make({
174
- name: "ask-question",
175
- params: {
176
- name: "AskQuestion",
177
- location: TechDocsAddonLocations.Content,
178
- component: TechDocsAskQuestionAddon
179
- }
180
- });
181
- const homePageTable = HomePageWidgetBlueprint.make({
182
- name: "home-posts-table",
183
- params: {
184
- title: "Q&A posts",
185
- description: "Shows latest Q&A posts",
186
- components: () => import('./components/PostsTableCard/index.esm.js').then((m) => ({
187
- Content: m.Content
188
- })),
189
- settings: {
190
- schema: {
191
- title: "Post settings",
192
- type: "object",
193
- properties: {
194
- rowsPerPage: {
195
- title: "Rows per page",
196
- type: "number"
197
- },
198
- postType: {
199
- title: "Post type",
200
- type: "string",
201
- enum: ["all", "question", "article", "link"]
202
- }
203
- }
204
- }
205
- }
206
- }
207
- });
208
- const homeTimeline = HomePageWidgetBlueprint.make({
209
- name: "home-posts-timeline",
210
- params: {
211
- title: "Q&A timeline",
212
- description: "Shows Q&A latest events",
213
- components: () => import('./components/HomeTimeline/index.esm.js').then((m) => ({
214
- Content: m.HomeTimeline
215
- }))
216
- }
217
- });
218
- const qetaPlugin = createFrontendPlugin({
219
- pluginId: "qeta",
220
- info: { packageJson: () => import('./package.json.esm.js') },
221
- routes: convertLegacyRouteRefs({
222
- root: qetaRouteRef
223
- }),
224
- extensions: [
225
- qetaApi,
226
- qetaPage,
227
- EntityPostsContent,
228
- qetaSearchResultItem,
229
- qetaPostSearchFilterType,
230
- techDocsAskQuestionAddon,
231
- qetaMarkdownPluginsApiExtension,
232
- homePageTable,
233
- homeTimeline
234
- ]
235
- });
236
-
237
- export { qetaPlugin as default, qetaMarkdownPluginsApiExtension, qetaMarkdownPluginsApiRef };
238
- //# sourceMappingURL=alpha.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"alpha.esm.js","sources":["../src/alpha.tsx"],"sourcesContent":["import {\n ApiBlueprint,\n coreExtensionData,\n createExtensionInput,\n createFrontendPlugin,\n PageBlueprint,\n} from '@backstage/frontend-plugin-api';\nimport {\n compatWrapper,\n convertLegacyRouteRef,\n convertLegacyRouteRefs,\n} from '@backstage/core-compat-api';\nimport { qetaApiRef, qetaRouteRef } from '@drodil/backstage-plugin-qeta-react';\nimport {\n configApiRef,\n createApiRef,\n discoveryApiRef,\n fetchApiRef,\n} from '@backstage/core-plugin-api';\nimport {\n getSupportedEntityKinds,\n QetaClient,\n} from '@drodil/backstage-plugin-qeta-common';\nimport ContactSupportIcon from '@material-ui/icons/ContactSupport';\nimport { EntityContentBlueprint } from '@backstage/plugin-catalog-react/alpha';\nimport { Entity } from '@backstage/catalog-model';\nimport {\n SearchFilterResultTypeBlueprint,\n SearchResultListItemBlueprint,\n} from '@backstage/plugin-search-react/alpha';\nimport { TechDocsAddonLocations } from '@backstage/plugin-techdocs-react';\nimport { AddonBlueprint } from '@backstage/plugin-techdocs-react/alpha';\nimport { TechDocsAskQuestionAddon } from './components/TechDocsAskQuestionAddon';\nimport { Pluggable } from 'unified';\nimport { markdownPlugin } from '@drodil/backstage-plugin-qeta-react/alpha';\nimport { HomePageWidgetBlueprint } from '@backstage/plugin-home-react/alpha';\n\ninterface QetaMarkdownPluginsApi {\n getRehypePlugins(): Pluggable[];\n getRemarkPlugins(): Pluggable[];\n}\n\nexport const qetaMarkdownPluginsApiRef = createApiRef<QetaMarkdownPluginsApi>({\n id: 'plugin.qeta.addons',\n});\n\nexport const qetaMarkdownPluginsApiExtension = ApiBlueprint.makeWithOverrides({\n name: 'addons',\n inputs: {\n rehypePlugins: createExtensionInput([markdownPlugin]),\n remarkPlugins: createExtensionInput([markdownPlugin]),\n },\n factory(originalFactory, { inputs }) {\n const rehypePlugins = inputs.rehypePlugins.map(output =>\n output.get(markdownPlugin),\n );\n const remarkPlugins = inputs.remarkPlugins.map(output =>\n output.get(markdownPlugin),\n );\n return originalFactory(defineParams =>\n defineParams({\n api: qetaMarkdownPluginsApiRef,\n deps: {},\n factory: () => ({\n getRehypePlugins: () => rehypePlugins,\n getRemarkPlugins: () => remarkPlugins,\n }),\n }),\n );\n },\n});\n\nconst qetaApi = ApiBlueprint.make({\n params: defineParams =>\n defineParams({\n api: qetaApiRef,\n deps: {\n discoveryApi: discoveryApiRef,\n fetchApi: fetchApiRef,\n },\n factory({ discoveryApi, fetchApi }) {\n return new QetaClient({ discoveryApi, fetchApi });\n },\n }),\n});\n\nconst qetaPage = PageBlueprint.makeWithOverrides({\n config: {\n schema: {\n subtitle: z => z.string().optional(),\n themeId: z => z.string().optional(),\n headerTooltip: z => z.string().optional(),\n headerType: z => z.string().optional(),\n headerTypeLink: z => z.string().optional(),\n },\n },\n inputs: {\n introElement: createExtensionInput([coreExtensionData.reactElement], {\n singleton: true,\n optional: true,\n }),\n headerElements: createExtensionInput([coreExtensionData.reactElement], {\n singleton: false,\n optional: true,\n }),\n },\n factory: (originalFactory, { config, inputs, apis }) => {\n const introElement = inputs.introElement?.get(\n coreExtensionData.reactElement,\n );\n const headerElements = inputs.headerElements.map(e =>\n e.get(coreExtensionData.reactElement),\n );\n const pluginsApi = apis.get(qetaMarkdownPluginsApiRef);\n const remarkPlugins = pluginsApi?.getRemarkPlugins();\n const rehypePlugins = pluginsApi?.getRehypePlugins();\n return originalFactory({\n path: config.path ?? '/qeta',\n title: config.title ?? 'Q&A',\n icon: <ContactSupportIcon />,\n routeRef: convertLegacyRouteRef(qetaRouteRef),\n loader: () =>\n import('./components/QetaPage').then(m =>\n compatWrapper(\n <m.QetaPage\n {...config}\n introElement={introElement}\n headerElements={headerElements}\n remarkPlugins={remarkPlugins}\n rehypePlugins={rehypePlugins}\n />,\n ),\n ),\n });\n },\n});\n\nconst EntityPostsContent = EntityContentBlueprint.makeWithOverrides({\n name: 'entity-posts-content',\n config: {\n schema: {\n showFilters: z => z.boolean().optional(),\n showTitle: z => z.boolean().optional(),\n showAskButton: z => z.boolean().optional(),\n showWriteButton: z => z.boolean().optional(),\n showLinkButton: z => z.boolean().optional(),\n showNoQuestionsBtn: z => z.boolean().optional(),\n initialPageSize: z => z.number().optional(),\n type: z => z.enum(['question', 'article', 'link']).optional(),\n view: z => z.enum(['list', 'grid']).optional(),\n relations: z => z.array(z.string()).optional(),\n },\n },\n inputs: {},\n factory: (originalFactory, { config, apis }) => {\n return originalFactory({\n path: config.path ?? '/qeta',\n title: config.title ?? 'Q&A',\n filter: (entity: Entity) => {\n const configApi = apis.get(configApiRef);\n const supportedKinds = getSupportedEntityKinds(configApi);\n const entityKind = entity.kind.toLowerCase();\n return supportedKinds?.includes(entityKind);\n },\n loader: async () => {\n const pluginsApi = apis.get(qetaMarkdownPluginsApiRef);\n const remarkPlugins = pluginsApi?.getRemarkPlugins();\n const rehypePlugins = pluginsApi?.getRehypePlugins();\n return import('./components/EntityPostsContent/EntityPostsContent.tsx').then(\n m =>\n compatWrapper(\n <m.EntityPostsContent\n {...config}\n remarkPlugins={remarkPlugins}\n rehypePlugins={rehypePlugins}\n />,\n ),\n );\n },\n });\n },\n});\n\nconst qetaSearchResultItem = SearchResultListItemBlueprint.make({\n params: {\n predicate: result => result.type === 'qeta',\n component: () =>\n import('./components/QetaSearchResultListItem').then(\n m => m.QetaSearchResultListItem,\n ),\n },\n});\n\nconst qetaPostSearchFilterType = SearchFilterResultTypeBlueprint.make({\n name: 'qeta',\n params: {\n value: 'qeta',\n name: 'Q&A',\n icon: <ContactSupportIcon />,\n },\n});\n\nconst techDocsAskQuestionAddon = AddonBlueprint.make({\n name: 'ask-question',\n params: {\n name: 'AskQuestion',\n location: TechDocsAddonLocations.Content,\n component: TechDocsAskQuestionAddon,\n },\n});\n\nconst homePageTable = HomePageWidgetBlueprint.make({\n name: 'home-posts-table',\n params: {\n title: 'Q&A posts',\n description: 'Shows latest Q&A posts',\n components: () =>\n import('../src/components/PostsTableCard').then(m => ({\n Content: m.Content,\n })),\n settings: {\n schema: {\n title: 'Post settings',\n type: 'object',\n properties: {\n rowsPerPage: {\n title: 'Rows per page',\n type: 'number',\n },\n postType: {\n title: 'Post type',\n type: 'string',\n enum: ['all', 'question', 'article', 'link'],\n },\n },\n },\n },\n },\n});\n\nconst homeTimeline = HomePageWidgetBlueprint.make({\n name: 'home-posts-timeline',\n params: {\n title: 'Q&A timeline',\n description: 'Shows Q&A latest events',\n components: () =>\n import('../src/components/HomeTimeline').then(m => ({\n Content: m.HomeTimeline,\n })),\n },\n});\n\n/**\n * Backstage frontend plugin.\n *\n * @alpha\n */\nconst qetaPlugin = createFrontendPlugin({\n pluginId: 'qeta',\n info: { packageJson: () => import('../package.json') },\n routes: convertLegacyRouteRefs({\n root: qetaRouteRef,\n }),\n extensions: [\n qetaApi,\n qetaPage,\n EntityPostsContent,\n qetaSearchResultItem,\n qetaPostSearchFilterType,\n techDocsAskQuestionAddon,\n qetaMarkdownPluginsApiExtension,\n homePageTable,\n homeTimeline,\n ],\n});\n\nexport default qetaPlugin;\n\nexport { qetaTranslationRef } from '@drodil/backstage-plugin-qeta-react';\n\n// TODO: To be removed in favor of direct imports from `@drodil/backstage-plugin-qeta-react/alpha` in the next major release, after the deprecation period has ended.\nexport {\n /** @deprecated Use blueprints from `@drodil/backstage-plugin-qeta-react/alpha` instead. */\n QetaMarkdownRehypePluginBlueprint,\n /** @deprecated Use blueprints from `@drodil/backstage-plugin-qeta-react/alpha` instead. */\n QetaPageIntroElementBlueprint,\n /** @deprecated Use blueprints from `@drodil/backstage-plugin-qeta-react/alpha` instead. */\n QetaPageHeaderElementBlueprint,\n /** @deprecated Use blueprints from `@drodil/backstage-plugin-qeta-react/alpha` instead. */\n QetaMarkdownRemarkPluginBlueprint,\n} from '@drodil/backstage-plugin-qeta-react/alpha';\n"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { useEntity } from '@backstage/plugin-catalog-react';
3
- import { stringifyEntityRef } from '@backstage/catalog-model';
4
- import { PostsContainer } from '@drodil/backstage-plugin-qeta-react';
5
- import { InfoCard } from '@backstage/core-components';
6
-
7
- const EntityPostsContainerCard = (props) => {
8
- const { entity } = useEntity();
9
- return /* @__PURE__ */ jsx(InfoCard, { children: /* @__PURE__ */ jsx(PostsContainer, { ...props, entity: stringifyEntityRef(entity) }) });
10
- };
11
-
12
- export { EntityPostsContainerCard };
13
- //# sourceMappingURL=EntityPostsContainerCard.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EntityPostsContainerCard.esm.js","sources":["../../../src/components/EntityCards/EntityPostsContainerCard.tsx"],"sourcesContent":["import { useEntity } from '@backstage/plugin-catalog-react';\nimport { stringifyEntityRef } from '@backstage/catalog-model';\nimport {\n PostsContainer,\n PostsContainerProps,\n} from '@drodil/backstage-plugin-qeta-react';\nimport { InfoCard } from '@backstage/core-components';\n\nexport const EntityPostsContainerCard = (props: PostsContainerProps) => {\n const { entity } = useEntity();\n\n return (\n <InfoCard>\n <PostsContainer {...props} entity={stringifyEntityRef(entity)} />\n </InfoCard>\n );\n};\n"],"names":[],"mappings":";;;;;;AAQO,MAAM,wBAAA,GAA2B,CAAC,KAAA,KAA+B;AACtE,EAAA,MAAM,EAAE,MAAA,EAAO,GAAI,SAAA,EAAU;AAE7B,EAAA,uBACE,GAAA,CAAC,QAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,cAAA,EAAA,EAAgB,GAAG,OAAO,MAAA,EAAQ,kBAAA,CAAmB,MAAM,CAAA,EAAG,CAAA,EACjE,CAAA;AAEJ;;;;"}
@@ -1,20 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { useEntity } from '@backstage/plugin-catalog-react';
3
- import { stringifyEntityRef } from '@backstage/catalog-model';
4
- import { PostsContainer } from '@drodil/backstage-plugin-qeta-react';
5
- import { InfoCard } from '@backstage/core-components';
6
-
7
- const EntityPostsGridCard = (props) => {
8
- const { entity } = useEntity();
9
- return /* @__PURE__ */ jsx(InfoCard, { children: /* @__PURE__ */ jsx(
10
- PostsContainer,
11
- {
12
- defaultView: "grid",
13
- ...props,
14
- entity: stringifyEntityRef(entity)
15
- }
16
- ) });
17
- };
18
-
19
- export { EntityPostsGridCard };
20
- //# sourceMappingURL=EntityPostsGridCard.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EntityPostsGridCard.esm.js","sources":["../../../src/components/EntityCards/EntityPostsGridCard.tsx"],"sourcesContent":["import { useEntity } from '@backstage/plugin-catalog-react';\nimport { stringifyEntityRef } from '@backstage/catalog-model';\nimport {\n PostsContainer,\n PostsContainerProps,\n} from '@drodil/backstage-plugin-qeta-react';\nimport { InfoCard } from '@backstage/core-components';\n\nexport const EntityPostsGridCard = (props: PostsContainerProps) => {\n const { entity } = useEntity();\n\n return (\n <InfoCard>\n <PostsContainer\n defaultView=\"grid\"\n {...props}\n entity={stringifyEntityRef(entity)}\n />\n </InfoCard>\n );\n};\n"],"names":[],"mappings":";;;;;;AAQO,MAAM,mBAAA,GAAsB,CAAC,KAAA,KAA+B;AACjE,EAAA,MAAM,EAAE,MAAA,EAAO,GAAI,SAAA,EAAU;AAE7B,EAAA,2BACG,QAAA,EAAA,EACC,QAAA,kBAAA,GAAA;AAAA,IAAC,cAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAY,MAAA;AAAA,MACX,GAAG,KAAA;AAAA,MACJ,MAAA,EAAQ,mBAAmB,MAAM;AAAA;AAAA,GACnC,EACF,CAAA;AAEJ;;;;"}
@@ -1,6 +0,0 @@
1
- import { ReviewPage } from './ReviewPage.esm.js';
2
-
3
-
4
-
5
- export { ReviewPage };
6
- //# sourceMappingURL=index.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,84 +0,0 @@
1
- import { createPlugin, createApiFactory, discoveryApiRef, fetchApiRef, createRoutableExtension } from '@backstage/core-plugin-api';
2
- import { createCardExtension } from '@backstage/plugin-home-react';
3
- import { createSearchResultListItemExtension } from '@backstage/plugin-search-react';
4
- import { qetaRouteRef, qetaApiRef } from '@drodil/backstage-plugin-qeta-react';
5
- import { QetaClient } from '@drodil/backstage-plugin-qeta-common';
6
-
7
- const qetaPlugin = createPlugin({
8
- id: "qeta",
9
- routes: {
10
- root: qetaRouteRef
11
- },
12
- apis: [
13
- createApiFactory({
14
- api: qetaApiRef,
15
- deps: { fetchApi: fetchApiRef, discoveryApi: discoveryApiRef },
16
- factory: ({ fetchApi, discoveryApi }) => new QetaClient({ fetchApi, discoveryApi })
17
- })
18
- ]
19
- });
20
- const QetaPage = qetaPlugin.provide(
21
- createRoutableExtension({
22
- name: "QetaPage",
23
- component: () => import('./components/QetaPage/index.esm.js').then((m) => m.QetaPage),
24
- mountPoint: qetaRouteRef
25
- })
26
- );
27
- const QetaReviewPage = qetaPlugin.provide(
28
- createRoutableExtension({
29
- name: "QetaReviewPage",
30
- component: () => import('./components/ReviewPage/index.esm.js').then((m) => m.ReviewPage),
31
- mountPoint: qetaRouteRef
32
- })
33
- );
34
- const PostsTableCard = qetaPlugin.provide(
35
- createCardExtension({
36
- name: "PostsTableCard",
37
- title: "Q&A",
38
- description: "Shows Q&A posts",
39
- components: () => import('./components/PostsTableCard/index.esm.js'),
40
- layout: {
41
- height: { minRows: 6 },
42
- width: { minColumns: 6 }
43
- },
44
- settings: {
45
- schema: {
46
- title: "Q&A",
47
- type: "object",
48
- properties: {
49
- postType: {
50
- title: "Post type",
51
- type: "string",
52
- enum: ["question", "article", "link"],
53
- default: void 0
54
- },
55
- rowsPerPage: {
56
- title: "Rows per page",
57
- type: "number",
58
- enum: [5, 10, 20, 30, 40, 50],
59
- default: 10
60
- },
61
- quickFilter: {
62
- title: "Default filter",
63
- type: "string",
64
- enum: ["latest", "favorites", "most_viewed"],
65
- default: "latest"
66
- }
67
- }
68
- }
69
- }
70
- })
71
- );
72
- const QuestionsTableCard = PostsTableCard;
73
- const QetaSearchResultListItem = qetaPlugin.provide(
74
- createSearchResultListItemExtension({
75
- name: "QetaSearchResultListItem",
76
- component: () => import('./components/QetaSearchResultListItem/index.esm.js').then(
77
- (m) => m.QetaSearchResultListItem
78
- ),
79
- predicate: (result) => result.type === "qeta"
80
- })
81
- );
82
-
83
- export { PostsTableCard, QetaPage, QetaReviewPage, QetaSearchResultListItem, QuestionsTableCard, qetaPlugin };
84
- //# sourceMappingURL=plugin.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.esm.js","sources":["../src/plugin.ts"],"sourcesContent":["import {\n createApiFactory,\n createPlugin,\n createRoutableExtension,\n discoveryApiRef,\n fetchApiRef,\n} from '@backstage/core-plugin-api';\nimport { createCardExtension } from '@backstage/plugin-home-react';\nimport { createSearchResultListItemExtension } from '@backstage/plugin-search-react';\nimport { qetaApiRef, qetaRouteRef } from '@drodil/backstage-plugin-qeta-react';\nimport { PostType, QetaClient } from '@drodil/backstage-plugin-qeta-common';\nimport type { QetaSearchResultListItemProps } from './components/QetaSearchResultListItem';\n\nexport const qetaPlugin = createPlugin({\n id: 'qeta',\n routes: {\n root: qetaRouteRef,\n },\n apis: [\n createApiFactory({\n api: qetaApiRef,\n deps: { fetchApi: fetchApiRef, discoveryApi: discoveryApiRef },\n factory: ({ fetchApi, discoveryApi }) =>\n new QetaClient({ fetchApi, discoveryApi }),\n }),\n ],\n});\n\nexport const QetaPage = qetaPlugin.provide(\n createRoutableExtension({\n name: 'QetaPage',\n component: () => import('./components/QetaPage').then(m => m.QetaPage),\n mountPoint: qetaRouteRef,\n }),\n);\n\nexport const QetaReviewPage = qetaPlugin.provide(\n createRoutableExtension({\n name: 'QetaReviewPage',\n component: () => import('./components/ReviewPage').then(m => m.ReviewPage),\n mountPoint: qetaRouteRef,\n }),\n);\n\nexport const PostsTableCard = qetaPlugin.provide(\n createCardExtension<{\n postType?: PostType;\n rowsPerPage?: number;\n quickFilter?: string;\n }>({\n name: 'PostsTableCard',\n title: 'Q&A',\n description: 'Shows Q&A posts',\n components: () => import('./components/PostsTableCard'),\n layout: {\n height: { minRows: 6 },\n width: { minColumns: 6 },\n },\n settings: {\n schema: {\n title: 'Q&A',\n type: 'object',\n properties: {\n postType: {\n title: 'Post type',\n type: 'string',\n enum: ['question', 'article', 'link'],\n default: undefined,\n },\n rowsPerPage: {\n title: 'Rows per page',\n type: 'number',\n enum: [5, 10, 20, 30, 40, 50],\n default: 10,\n },\n quickFilter: {\n title: 'Default filter',\n type: 'string',\n enum: ['latest', 'favorites', 'most_viewed'],\n default: 'latest',\n },\n },\n },\n },\n }),\n);\n\n/**\n * @deprecated Use PostsTableCard instead\n */\nexport const QuestionsTableCard = PostsTableCard;\n\n/**\n * React extension used to render results on Search page or modal\n *\n * @public\n */\nexport const QetaSearchResultListItem: (\n props: QetaSearchResultListItemProps,\n) => JSX.Element | null = qetaPlugin.provide(\n createSearchResultListItemExtension({\n name: 'QetaSearchResultListItem',\n component: () =>\n import('./components/QetaSearchResultListItem').then(\n m => m.QetaSearchResultListItem,\n ),\n predicate: result => result.type === 'qeta',\n }),\n);\n"],"names":[],"mappings":";;;;;;AAaO,MAAM,aAAa,YAAA,CAAa;AAAA,EACrC,EAAA,EAAI,MAAA;AAAA,EACJ,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM;AAAA,GACR;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,gBAAA,CAAiB;AAAA,MACf,GAAA,EAAK,UAAA;AAAA,MACL,IAAA,EAAM,EAAE,QAAA,EAAU,WAAA,EAAa,cAAc,eAAA,EAAgB;AAAA,MAC7D,OAAA,EAAS,CAAC,EAAE,QAAA,EAAU,YAAA,EAAa,KACjC,IAAI,UAAA,CAAW,EAAE,QAAA,EAAU,YAAA,EAAc;AAAA,KAC5C;AAAA;AAEL,CAAC;AAEM,MAAM,WAAW,UAAA,CAAW,OAAA;AAAA,EACjC,uBAAA,CAAwB;AAAA,IACtB,IAAA,EAAM,UAAA;AAAA,IACN,SAAA,EAAW,MAAM,OAAO,oCAAuB,EAAE,IAAA,CAAK,CAAA,CAAA,KAAK,EAAE,QAAQ,CAAA;AAAA,IACrE,UAAA,EAAY;AAAA,GACb;AACH;AAEO,MAAM,iBAAiB,UAAA,CAAW,OAAA;AAAA,EACvC,uBAAA,CAAwB;AAAA,IACtB,IAAA,EAAM,gBAAA;AAAA,IACN,SAAA,EAAW,MAAM,OAAO,sCAAyB,EAAE,IAAA,CAAK,CAAA,CAAA,KAAK,EAAE,UAAU,CAAA;AAAA,IACzE,UAAA,EAAY;AAAA,GACb;AACH;AAEO,MAAM,iBAAiB,UAAA,CAAW,OAAA;AAAA,EACvC,mBAAA,CAIG;AAAA,IACD,IAAA,EAAM,gBAAA;AAAA,IACN,KAAA,EAAO,KAAA;AAAA,IACP,WAAA,EAAa,iBAAA;AAAA,IACb,UAAA,EAAY,MAAM,OAAO,0CAA6B,CAAA;AAAA,IACtD,MAAA,EAAQ;AAAA,MACN,MAAA,EAAQ,EAAE,OAAA,EAAS,CAAA,EAAE;AAAA,MACrB,KAAA,EAAO,EAAE,UAAA,EAAY,CAAA;AAAE,KACzB;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ;AAAA,QACN,KAAA,EAAO,KAAA;AAAA,QACP,IAAA,EAAM,QAAA;AAAA,QACN,UAAA,EAAY;AAAA,UACV,QAAA,EAAU;AAAA,YACR,KAAA,EAAO,WAAA;AAAA,YACP,IAAA,EAAM,QAAA;AAAA,YACN,IAAA,EAAM,CAAC,UAAA,EAAY,SAAA,EAAW,MAAM,CAAA;AAAA,YACpC,OAAA,EAAS;AAAA,WACX;AAAA,UACA,WAAA,EAAa;AAAA,YACX,KAAA,EAAO,eAAA;AAAA,YACP,IAAA,EAAM,QAAA;AAAA,YACN,MAAM,CAAC,CAAA,EAAG,IAAI,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,YAC5B,OAAA,EAAS;AAAA,WACX;AAAA,UACA,WAAA,EAAa;AAAA,YACX,KAAA,EAAO,gBAAA;AAAA,YACP,IAAA,EAAM,QAAA;AAAA,YACN,IAAA,EAAM,CAAC,QAAA,EAAU,WAAA,EAAa,aAAa,CAAA;AAAA,YAC3C,OAAA,EAAS;AAAA;AACX;AACF;AACF;AACF,GACD;AACH;AAKO,MAAM,kBAAA,GAAqB;AAO3B,MAAM,2BAEa,UAAA,CAAW,OAAA;AAAA,EACnC,mCAAA,CAAoC;AAAA,IAClC,IAAA,EAAM,0BAAA;AAAA,IACN,SAAA,EAAW,MACT,OAAO,oDAAuC,CAAA,CAAE,IAAA;AAAA,MAC9C,OAAK,CAAA,CAAE;AAAA,KACT;AAAA,IACF,SAAA,EAAW,CAAA,MAAA,KAAU,MAAA,CAAO,IAAA,KAAS;AAAA,GACtC;AACH;;;;"}