@drodil/backstage-plugin-qeta 3.59.0 → 3.59.2

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.
package/dist/alpha.d.ts CHANGED
@@ -1,5 +1,10 @@
1
+ import * as _backstage_plugin_search_react_alpha from '@backstage/plugin-search-react/alpha';
2
+ import * as _backstage_plugin_home_react_alpha from '@backstage/plugin-home-react/alpha';
3
+ import * as react from 'react';
4
+ import * as _backstage_filter_predicates from '@backstage/filter-predicates';
5
+ import * as _backstage_plugin_techdocs_react from '@backstage/plugin-techdocs-react';
1
6
  import * as _backstage_frontend_plugin_api from '@backstage/frontend-plugin-api';
2
- import { FrontendPlugin } from '@backstage/frontend-plugin-api';
7
+ import { Entity } from '@backstage/catalog-model';
3
8
  import { Pluggable } from 'unified';
4
9
  export { qetaTranslationRef } from '@drodil/backstage-plugin-qeta-react';
5
10
  export { QetaMarkdownRehypePluginBlueprint, QetaMarkdownRemarkPluginBlueprint, QetaPageHeaderElementBlueprint, QetaPageIntroElementBlueprint } from '@drodil/backstage-plugin-qeta-react/alpha';
@@ -34,6 +39,235 @@ declare const qetaMarkdownPluginsApiExtension: _backstage_frontend_plugin_api.Ov
34
39
  *
35
40
  * @alpha
36
41
  */
37
- declare const qetaPlugin: FrontendPlugin;
42
+ declare const qetaPlugin: _backstage_frontend_plugin_api.OverridableFrontendPlugin<{
43
+ root: _backstage_frontend_plugin_api.RouteRef<undefined>;
44
+ }, {}, {
45
+ "addon:qeta/ask-question": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
46
+ kind: "addon";
47
+ name: "ask-question";
48
+ config: {};
49
+ configInput: {};
50
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_plugin_techdocs_react.TechDocsAddonOptions, "techdocs.addon", {}>;
51
+ inputs: {};
52
+ params: _backstage_plugin_techdocs_react.TechDocsAddonOptions;
53
+ }>;
54
+ "api:qeta": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
55
+ kind: "api";
56
+ name: undefined;
57
+ config: {};
58
+ configInput: {};
59
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.AnyApiFactory, "core.api.factory", {}>;
60
+ inputs: {};
61
+ params: <TApi, TImpl extends TApi, TDeps extends { [name in string]: unknown; }>(params: _backstage_frontend_plugin_api.ApiFactory<TApi, TImpl, TDeps>) => _backstage_frontend_plugin_api.ExtensionBlueprintParams<_backstage_frontend_plugin_api.AnyApiFactory>;
62
+ }>;
63
+ "api:qeta/addons": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
64
+ config: {};
65
+ configInput: {};
66
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.AnyApiFactory, "core.api.factory", {}>;
67
+ inputs: {
68
+ rehypePlugins: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.ConfigurableExtensionDataRef<Pluggable, "qeta.markdown-plugin", {}>, {
69
+ singleton: false;
70
+ optional: false;
71
+ internal: false;
72
+ }>;
73
+ remarkPlugins: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.ConfigurableExtensionDataRef<Pluggable, "qeta.markdown-plugin", {}>, {
74
+ singleton: false;
75
+ optional: false;
76
+ internal: false;
77
+ }>;
78
+ };
79
+ kind: "api";
80
+ name: "addons";
81
+ params: <TApi, TImpl extends TApi, TDeps extends { [name in string]: unknown; }>(params: _backstage_frontend_plugin_api.ApiFactory<TApi, TImpl, TDeps>) => _backstage_frontend_plugin_api.ExtensionBlueprintParams<_backstage_frontend_plugin_api.AnyApiFactory>;
82
+ }>;
83
+ "entity-content:qeta/entity-posts-content": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
84
+ config: {
85
+ showFilters: boolean | undefined;
86
+ showTitle: boolean | undefined;
87
+ showAskButton: boolean | undefined;
88
+ showWriteButton: boolean | undefined;
89
+ showLinkButton: boolean | undefined;
90
+ showNoQuestionsBtn: boolean | undefined;
91
+ initialPageSize: number | undefined;
92
+ type: "question" | "article" | "link" | undefined;
93
+ view: "grid" | "list" | undefined;
94
+ relations: string[] | undefined;
95
+ path: string | undefined;
96
+ title: string | undefined;
97
+ filter: _backstage_filter_predicates.FilterPredicate | undefined;
98
+ group: string | false | undefined;
99
+ icon: string | undefined;
100
+ };
101
+ configInput: {
102
+ type?: "question" | "article" | "link" | undefined;
103
+ relations?: string[] | undefined;
104
+ view?: "grid" | "list" | undefined;
105
+ showFilters?: boolean | undefined;
106
+ showTitle?: boolean | undefined;
107
+ showAskButton?: boolean | undefined;
108
+ showWriteButton?: boolean | undefined;
109
+ showLinkButton?: boolean | undefined;
110
+ showNoQuestionsBtn?: boolean | undefined;
111
+ initialPageSize?: number | undefined;
112
+ filter?: _backstage_filter_predicates.FilterPredicate | undefined;
113
+ title?: string | undefined | undefined;
114
+ path?: string | undefined | undefined;
115
+ group?: string | false | undefined | undefined;
116
+ icon?: string | undefined | undefined;
117
+ };
118
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
119
+ optional: true;
120
+ }> | _backstage_frontend_plugin_api.ExtensionDataRef<(entity: Entity) => boolean, "catalog.entity-filter-function", {
121
+ optional: true;
122
+ }> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "catalog.entity-filter-expression", {
123
+ optional: true;
124
+ }> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "catalog.entity-content-title", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "catalog.entity-content-group", {
125
+ optional: true;
126
+ }> | _backstage_frontend_plugin_api.ExtensionDataRef<string | react.ReactElement<any, string | react.JSXElementConstructor<any>>, "catalog.entity-content-icon", {
127
+ optional: true;
128
+ }>;
129
+ inputs: {};
130
+ kind: "entity-content";
131
+ name: "entity-posts-content";
132
+ params: {
133
+ defaultPath?: [Error: `Use the 'path' param instead`];
134
+ path: string;
135
+ defaultTitle?: [Error: `Use the 'title' param instead`];
136
+ title: string;
137
+ defaultGroup?: [Error: `Use the 'group' param instead`];
138
+ group?: ("overview" | "documentation" | "development" | "deployment" | "operation" | "observability") | (string & {});
139
+ icon?: string | react.ReactElement;
140
+ loader: () => Promise<JSX.Element>;
141
+ routeRef?: _backstage_frontend_plugin_api.RouteRef;
142
+ filter?: string | _backstage_filter_predicates.FilterPredicate | ((entity: Entity) => boolean);
143
+ };
144
+ }>;
145
+ "home-page-widget:qeta/home-posts-table": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
146
+ kind: "home-page-widget";
147
+ name: "home-posts-table";
148
+ config: {};
149
+ configInput: {};
150
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_plugin_home_react_alpha.HomePageWidgetData, "home.widget.data", {}>;
151
+ inputs: {};
152
+ params: _backstage_plugin_home_react_alpha.HomePageWidgetBlueprintParams;
153
+ }>;
154
+ "home-page-widget:qeta/home-posts-timeline": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
155
+ kind: "home-page-widget";
156
+ name: "home-posts-timeline";
157
+ config: {};
158
+ configInput: {};
159
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_plugin_home_react_alpha.HomePageWidgetData, "home.widget.data", {}>;
160
+ inputs: {};
161
+ params: _backstage_plugin_home_react_alpha.HomePageWidgetBlueprintParams;
162
+ }>;
163
+ "nav-item:qeta": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
164
+ kind: "nav-item";
165
+ name: undefined;
166
+ config: {};
167
+ configInput: {};
168
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<{
169
+ title: string;
170
+ icon: _backstage_frontend_plugin_api.IconComponent;
171
+ routeRef: _backstage_frontend_plugin_api.RouteRef<undefined>;
172
+ }, "core.nav-item.target", {}>;
173
+ inputs: {};
174
+ params: {
175
+ title: string;
176
+ icon: _backstage_frontend_plugin_api.IconComponent;
177
+ routeRef: _backstage_frontend_plugin_api.RouteRef<undefined>;
178
+ };
179
+ }>;
180
+ "page:qeta": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
181
+ config: {
182
+ subtitle: string | undefined;
183
+ themeId: string | undefined;
184
+ headerTooltip: string | undefined;
185
+ headerType: string | undefined;
186
+ headerTypeLink: string | undefined;
187
+ path: string | undefined;
188
+ title: string | undefined;
189
+ };
190
+ configInput: {
191
+ subtitle?: string | undefined;
192
+ themeId?: string | undefined;
193
+ headerTooltip?: string | undefined;
194
+ headerType?: string | undefined;
195
+ headerTypeLink?: string | undefined;
196
+ title?: string | undefined | undefined;
197
+ path?: string | undefined | undefined;
198
+ };
199
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
200
+ optional: true;
201
+ }> | _backstage_frontend_plugin_api.ExtensionDataRef<string, "core.title", {
202
+ optional: true;
203
+ }> | _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.IconElement, "core.icon", {
204
+ optional: true;
205
+ }>;
206
+ inputs: {
207
+ pages: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
208
+ optional: true;
209
+ }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "core.title", {
210
+ optional: true;
211
+ }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.IconElement, "core.icon", {
212
+ optional: true;
213
+ }>, {
214
+ singleton: false;
215
+ optional: false;
216
+ internal: false;
217
+ }>;
218
+ introElement: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}>, {
219
+ singleton: true;
220
+ optional: true;
221
+ internal: false;
222
+ }>;
223
+ headerElements: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}>, {
224
+ singleton: false;
225
+ optional: true;
226
+ internal: false;
227
+ }>;
228
+ };
229
+ kind: "page";
230
+ name: undefined;
231
+ params: {
232
+ defaultPath?: [Error: `Use the 'path' param instead`];
233
+ path: string;
234
+ title?: string;
235
+ icon?: _backstage_frontend_plugin_api.IconElement;
236
+ loader?: () => Promise<react.JSX.Element>;
237
+ routeRef?: _backstage_frontend_plugin_api.RouteRef;
238
+ noHeader?: boolean;
239
+ };
240
+ }>;
241
+ "search-filter-result-type:qeta/qeta": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
242
+ kind: "search-filter-result-type";
243
+ name: "qeta";
244
+ config: {};
245
+ configInput: {};
246
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<{
247
+ value: string;
248
+ name: string;
249
+ icon: react.JSX.Element;
250
+ }, "search.filters.result-types.type", {}>;
251
+ inputs: {};
252
+ params: _backstage_plugin_search_react_alpha.SearchFilterResultTypeBlueprintParams;
253
+ }>;
254
+ "search-result-list-item:qeta": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
255
+ kind: "search-result-list-item";
256
+ name: undefined;
257
+ config: {
258
+ noTrack: boolean;
259
+ };
260
+ configInput: {
261
+ noTrack?: boolean | undefined;
262
+ };
263
+ output: _backstage_frontend_plugin_api.ExtensionDataRef<{
264
+ predicate?: _backstage_plugin_search_react_alpha.SearchResultItemExtensionPredicate;
265
+ component: _backstage_plugin_search_react_alpha.SearchResultItemExtensionComponent;
266
+ icon?: react.JSX.Element;
267
+ }, "search.search-result-list-item.item", {}>;
268
+ inputs: {};
269
+ params: _backstage_plugin_search_react_alpha.SearchResultListItemBlueprintParams;
270
+ }>;
271
+ }>;
38
272
 
39
273
  export { qetaPlugin as default, qetaMarkdownPluginsApiExtension, qetaMarkdownPluginsApiRef };
package/dist/alpha.esm.js CHANGED
@@ -13,6 +13,7 @@ import { AddonBlueprint } from '@backstage/plugin-techdocs-react/alpha';
13
13
  import { TechDocsAskQuestionAddon } from './components/TechDocsAskQuestionAddon/TechDocsAskQuestionAddon.esm.js';
14
14
  import { markdownPlugin } from '@drodil/backstage-plugin-qeta-react/alpha';
15
15
  export { QetaMarkdownRehypePluginBlueprint, QetaMarkdownRemarkPluginBlueprint, QetaPageHeaderElementBlueprint, QetaPageIntroElementBlueprint } from '@drodil/backstage-plugin-qeta-react/alpha';
16
+ import { HomePageWidgetBlueprint } from '@backstage/plugin-home-react/alpha';
16
17
 
17
18
  const qetaMarkdownPluginsApiRef = createApiRef({
18
19
  id: "plugin.qeta.addons"
@@ -182,6 +183,43 @@ const techDocsAskQuestionAddon = AddonBlueprint.make({
182
183
  component: TechDocsAskQuestionAddon
183
184
  }
184
185
  });
186
+ const homePageTable = HomePageWidgetBlueprint.make({
187
+ name: "home-posts-table",
188
+ params: {
189
+ title: "Q&A posts",
190
+ description: "Shows latest Q&A posts",
191
+ components: () => import('./components/PostsTableCard/index.esm.js').then((m) => ({
192
+ Content: m.Content
193
+ })),
194
+ settings: {
195
+ schema: {
196
+ title: "Post settings",
197
+ type: "object",
198
+ properties: {
199
+ rowsPerPage: {
200
+ title: "Rows per page",
201
+ type: "number"
202
+ },
203
+ postType: {
204
+ title: "Post type",
205
+ type: "string",
206
+ enum: ["all", "question", "article", "link"]
207
+ }
208
+ }
209
+ }
210
+ }
211
+ }
212
+ });
213
+ const homeTimeline = HomePageWidgetBlueprint.make({
214
+ name: "home-posts-timeline",
215
+ params: {
216
+ title: "Q&A timeline",
217
+ description: "Shows Q&A latest events",
218
+ components: () => import('./components/HomeTimeline/index.esm.js').then((m) => ({
219
+ Content: m.HomeTimeline
220
+ }))
221
+ }
222
+ });
185
223
  const qetaPlugin = createFrontendPlugin({
186
224
  pluginId: "qeta",
187
225
  info: { packageJson: () => import('./package.json.esm.js') },
@@ -196,7 +234,9 @@ const qetaPlugin = createFrontendPlugin({
196
234
  qetaSearchResultItem,
197
235
  qetaPostSearchFilterType,
198
236
  techDocsAskQuestionAddon,
199
- qetaMarkdownPluginsApiExtension
237
+ qetaMarkdownPluginsApiExtension,
238
+ homePageTable,
239
+ homeTimeline
200
240
  ]
201
241
  });
202
242
 
@@ -1 +1 @@
1
- {"version":3,"file":"alpha.esm.js","sources":["../src/alpha.tsx"],"sourcesContent":["import {\n ApiBlueprint,\n coreExtensionData,\n createExtensionInput,\n createFrontendPlugin,\n FrontendPlugin,\n NavItemBlueprint,\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';\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 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 qetaNavItem = NavItemBlueprint.make({\n params: {\n title: 'Q&A',\n routeRef: convertLegacyRouteRef(qetaRouteRef),\n icon: ContactSupportIcon,\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\n/**\n * Backstage frontend plugin.\n *\n * @alpha\n */\nconst qetaPlugin: FrontendPlugin = 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 qetaNavItem,\n qetaSearchResultItem,\n qetaPostSearchFilterType,\n techDocsAskQuestionAddon,\n qetaMarkdownPluginsApiExtension,\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
+ {"version":3,"file":"alpha.esm.js","sources":["../src/alpha.tsx"],"sourcesContent":["import {\n ApiBlueprint,\n coreExtensionData,\n createExtensionInput,\n createFrontendPlugin,\n NavItemBlueprint,\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 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 qetaNavItem = NavItemBlueprint.make({\n params: {\n title: 'Q&A',\n routeRef: convertLegacyRouteRef(qetaRouteRef),\n icon: ContactSupportIcon,\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 qetaNavItem,\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":";;;;;;;;;;;;;;;;;AA2CO,MAAM,4BAA4B,YAAqC,CAAA;AAAA,EAC5E,EAAI,EAAA;AACN,CAAC;AAEY,MAAA,+BAAA,GAAkC,aAAa,iBAAkB,CAAA;AAAA,EAC5E,IAAM,EAAA,QAAA;AAAA,EACN,MAAQ,EAAA;AAAA,IACN,aAAe,EAAA,oBAAA,CAAqB,CAAC,cAAc,CAAC,CAAA;AAAA,IACpD,aAAe,EAAA,oBAAA,CAAqB,CAAC,cAAc,CAAC;AAAA,GACtD;AAAA,EACA,OAAQ,CAAA,eAAA,EAAiB,EAAE,MAAA,EAAU,EAAA;AACnC,IAAM,MAAA,aAAA,GAAgB,OAAO,aAAc,CAAA,GAAA;AAAA,MAAI,CAAA,MAAA,KAC7C,MAAO,CAAA,GAAA,CAAI,cAAc;AAAA,KAC3B;AACA,IAAM,MAAA,aAAA,GAAgB,OAAO,aAAc,CAAA,GAAA;AAAA,MAAI,CAAA,MAAA,KAC7C,MAAO,CAAA,GAAA,CAAI,cAAc;AAAA,KAC3B;AACA,IAAO,OAAA,eAAA;AAAA,MAAgB,kBACrB,YAAa,CAAA;AAAA,QACX,GAAK,EAAA,yBAAA;AAAA,QACL,MAAM,EAAC;AAAA,QACP,SAAS,OAAO;AAAA,UACd,kBAAkB,MAAM,aAAA;AAAA,UACxB,kBAAkB,MAAM;AAAA,SAC1B;AAAA,OACD;AAAA,KACH;AAAA;AAEJ,CAAC;AAED,MAAM,OAAA,GAAU,aAAa,IAAK,CAAA;AAAA,EAChC,MAAA,EAAQ,kBACN,YAAa,CAAA;AAAA,IACX,GAAK,EAAA,UAAA;AAAA,IACL,IAAM,EAAA;AAAA,MACJ,YAAc,EAAA,eAAA;AAAA,MACd,QAAU,EAAA;AAAA,KACZ;AAAA,IACA,OAAQ,CAAA,EAAE,YAAc,EAAA,QAAA,EAAY,EAAA;AAClC,MAAA,OAAO,IAAI,UAAA,CAAW,EAAE,YAAA,EAAc,UAAU,CAAA;AAAA;AAClD,GACD;AACL,CAAC,CAAA;AAED,MAAM,QAAA,GAAW,cAAc,iBAAkB,CAAA;AAAA,EAC/C,MAAQ,EAAA;AAAA,IACN,MAAQ,EAAA;AAAA,MACN,QAAU,EAAA,CAAA,CAAA,KAAK,CAAE,CAAA,MAAA,GAAS,QAAS,EAAA;AAAA,MACnC,OAAS,EAAA,CAAA,CAAA,KAAK,CAAE,CAAA,MAAA,GAAS,QAAS,EAAA;AAAA,MAClC,aAAe,EAAA,CAAA,CAAA,KAAK,CAAE,CAAA,MAAA,GAAS,QAAS,EAAA;AAAA,MACxC,UAAY,EAAA,CAAA,CAAA,KAAK,CAAE,CAAA,MAAA,GAAS,QAAS,EAAA;AAAA,MACrC,cAAgB,EAAA,CAAA,CAAA,KAAK,CAAE,CAAA,MAAA,GAAS,QAAS;AAAA;AAC3C,GACF;AAAA,EACA,MAAQ,EAAA;AAAA,IACN,YAAc,EAAA,oBAAA,CAAqB,CAAC,iBAAA,CAAkB,YAAY,CAAG,EAAA;AAAA,MACnE,SAAW,EAAA,IAAA;AAAA,MACX,QAAU,EAAA;AAAA,KACX,CAAA;AAAA,IACD,cAAgB,EAAA,oBAAA,CAAqB,CAAC,iBAAA,CAAkB,YAAY,CAAG,EAAA;AAAA,MACrE,SAAW,EAAA,KAAA;AAAA,MACX,QAAU,EAAA;AAAA,KACX;AAAA,GACH;AAAA,EACA,SAAS,CAAC,eAAA,EAAiB,EAAE,MAAQ,EAAA,MAAA,EAAQ,MAAW,KAAA;AACtD,IAAM,MAAA,YAAA,GAAe,OAAO,YAAc,EAAA,GAAA;AAAA,MACxC,iBAAkB,CAAA;AAAA,KACpB;AACA,IAAM,MAAA,cAAA,GAAiB,OAAO,cAAe,CAAA,GAAA;AAAA,MAAI,CAC/C,CAAA,KAAA,CAAA,CAAE,GAAI,CAAA,iBAAA,CAAkB,YAAY;AAAA,KACtC;AACA,IAAM,MAAA,UAAA,GAAa,IAAK,CAAA,GAAA,CAAI,yBAAyB,CAAA;AACrD,IAAM,MAAA,aAAA,GAAgB,YAAY,gBAAiB,EAAA;AACnD,IAAM,MAAA,aAAA,GAAgB,YAAY,gBAAiB,EAAA;AACnD,IAAA,OAAO,eAAgB,CAAA;AAAA,MACrB,IAAA,EAAM,OAAO,IAAQ,IAAA,OAAA;AAAA,MACrB,QAAA,EAAU,sBAAsB,YAAY,CAAA;AAAA,MAC5C,MAAQ,EAAA,MACN,OAAO,oCAAuB,CAAE,CAAA,IAAA;AAAA,QAAK,CACnC,CAAA,KAAA,aAAA;AAAA,0BACE,GAAA;AAAA,YAAC,CAAE,CAAA,QAAA;AAAA,YAAF;AAAA,cACE,GAAG,MAAA;AAAA,cACJ,YAAA;AAAA,cACA,cAAA;AAAA,cACA,aAAA;AAAA,cACA;AAAA;AAAA;AACF;AACF;AACF,KACH,CAAA;AAAA;AAEL,CAAC,CAAA;AAED,MAAM,kBAAA,GAAqB,uBAAuB,iBAAkB,CAAA;AAAA,EAClE,IAAM,EAAA,sBAAA;AAAA,EACN,MAAQ,EAAA;AAAA,IACN,MAAQ,EAAA;AAAA,MACN,WAAa,EAAA,CAAA,CAAA,KAAK,CAAE,CAAA,OAAA,GAAU,QAAS,EAAA;AAAA,MACvC,SAAW,EAAA,CAAA,CAAA,KAAK,CAAE,CAAA,OAAA,GAAU,QAAS,EAAA;AAAA,MACrC,aAAe,EAAA,CAAA,CAAA,KAAK,CAAE,CAAA,OAAA,GAAU,QAAS,EAAA;AAAA,MACzC,eAAiB,EAAA,CAAA,CAAA,KAAK,CAAE,CAAA,OAAA,GAAU,QAAS,EAAA;AAAA,MAC3C,cAAgB,EAAA,CAAA,CAAA,KAAK,CAAE,CAAA,OAAA,GAAU,QAAS,EAAA;AAAA,MAC1C,kBAAoB,EAAA,CAAA,CAAA,KAAK,CAAE,CAAA,OAAA,GAAU,QAAS,EAAA;AAAA,MAC9C,eAAiB,EAAA,CAAA,CAAA,KAAK,CAAE,CAAA,MAAA,GAAS,QAAS,EAAA;AAAA,MAC1C,IAAA,EAAM,CAAK,CAAA,KAAA,CAAA,CAAE,IAAK,CAAA,CAAC,YAAY,SAAW,EAAA,MAAM,CAAC,CAAA,CAAE,QAAS,EAAA;AAAA,MAC5D,IAAA,EAAM,OAAK,CAAE,CAAA,IAAA,CAAK,CAAC,MAAQ,EAAA,MAAM,CAAC,CAAA,CAAE,QAAS,EAAA;AAAA,MAC7C,SAAA,EAAW,OAAK,CAAE,CAAA,KAAA,CAAM,EAAE,MAAO,EAAC,EAAE,QAAS;AAAA;AAC/C,GACF;AAAA,EACA,QAAQ,EAAC;AAAA,EACT,SAAS,CAAC,eAAA,EAAiB,EAAE,MAAA,EAAQ,MAAW,KAAA;AAC9C,IAAA,OAAO,eAAgB,CAAA;AAAA,MACrB,IAAA,EAAM,OAAO,IAAQ,IAAA,OAAA;AAAA,MACrB,KAAA,EAAO,OAAO,KAAS,IAAA,KAAA;AAAA,MACvB,MAAA,EAAQ,CAAC,MAAmB,KAAA;AAC1B,QAAM,MAAA,SAAA,GAAY,IAAK,CAAA,GAAA,CAAI,YAAY,CAAA;AACvC,QAAM,MAAA,cAAA,GAAiB,wBAAwB,SAAS,CAAA;AACxD,QAAM,MAAA,UAAA,GAAa,MAAO,CAAA,IAAA,CAAK,WAAY,EAAA;AAC3C,QAAO,OAAA,cAAA,EAAgB,SAAS,UAAU,CAAA;AAAA,OAC5C;AAAA,MACA,QAAQ,YAAY;AAClB,QAAM,MAAA,UAAA,GAAa,IAAK,CAAA,GAAA,CAAI,yBAAyB,CAAA;AACrD,QAAM,MAAA,aAAA,GAAgB,YAAY,gBAAiB,EAAA;AACnD,QAAM,MAAA,aAAA,GAAgB,YAAY,gBAAiB,EAAA;AACnD,QAAO,OAAA,OAAO,2DAAwD,CAAE,CAAA,IAAA;AAAA,UACtE,CACE,CAAA,KAAA,aAAA;AAAA,4BACE,GAAA;AAAA,cAAC,CAAE,CAAA,kBAAA;AAAA,cAAF;AAAA,gBACE,GAAG,MAAA;AAAA,gBACJ,aAAA;AAAA,gBACA;AAAA;AAAA;AACF;AACF,SACJ;AAAA;AACF,KACD,CAAA;AAAA;AAEL,CAAC,CAAA;AAED,MAAM,WAAA,GAAc,iBAAiB,IAAK,CAAA;AAAA,EACxC,MAAQ,EAAA;AAAA,IACN,KAAO,EAAA,KAAA;AAAA,IACP,QAAA,EAAU,sBAAsB,YAAY,CAAA;AAAA,IAC5C,IAAM,EAAA;AAAA;AAEV,CAAC,CAAA;AAED,MAAM,oBAAA,GAAuB,8BAA8B,IAAK,CAAA;AAAA,EAC9D,MAAQ,EAAA;AAAA,IACN,SAAA,EAAW,CAAU,MAAA,KAAA,MAAA,CAAO,IAAS,KAAA,MAAA;AAAA,IACrC,SAAW,EAAA,MACT,OAAO,oDAAuC,CAAE,CAAA,IAAA;AAAA,MAC9C,OAAK,CAAE,CAAA;AAAA;AACT;AAEN,CAAC,CAAA;AAED,MAAM,wBAAA,GAA2B,gCAAgC,IAAK,CAAA;AAAA,EACpE,IAAM,EAAA,MAAA;AAAA,EACN,MAAQ,EAAA;AAAA,IACN,KAAO,EAAA,MAAA;AAAA,IACP,IAAM,EAAA,KAAA;AAAA,IACN,IAAA,sBAAO,kBAAmB,EAAA,EAAA;AAAA;AAE9B,CAAC,CAAA;AAED,MAAM,wBAAA,GAA2B,eAAe,IAAK,CAAA;AAAA,EACnD,IAAM,EAAA,cAAA;AAAA,EACN,MAAQ,EAAA;AAAA,IACN,IAAM,EAAA,aAAA;AAAA,IACN,UAAU,sBAAuB,CAAA,OAAA;AAAA,IACjC,SAAW,EAAA;AAAA;AAEf,CAAC,CAAA;AAED,MAAM,aAAA,GAAgB,wBAAwB,IAAK,CAAA;AAAA,EACjD,IAAM,EAAA,kBAAA;AAAA,EACN,MAAQ,EAAA;AAAA,IACN,KAAO,EAAA,WAAA;AAAA,IACP,WAAa,EAAA,wBAAA;AAAA,IACb,YAAY,MACV,OAAO,0CAAkC,CAAA,CAAE,KAAK,CAAM,CAAA,MAAA;AAAA,MACpD,SAAS,CAAE,CAAA;AAAA,KACX,CAAA,CAAA;AAAA,IACJ,QAAU,EAAA;AAAA,MACR,MAAQ,EAAA;AAAA,QACN,KAAO,EAAA,eAAA;AAAA,QACP,IAAM,EAAA,QAAA;AAAA,QACN,UAAY,EAAA;AAAA,UACV,WAAa,EAAA;AAAA,YACX,KAAO,EAAA,eAAA;AAAA,YACP,IAAM,EAAA;AAAA,WACR;AAAA,UACA,QAAU,EAAA;AAAA,YACR,KAAO,EAAA,WAAA;AAAA,YACP,IAAM,EAAA,QAAA;AAAA,YACN,IAAM,EAAA,CAAC,KAAO,EAAA,UAAA,EAAY,WAAW,MAAM;AAAA;AAC7C;AACF;AACF;AACF;AAEJ,CAAC,CAAA;AAED,MAAM,YAAA,GAAe,wBAAwB,IAAK,CAAA;AAAA,EAChD,IAAM,EAAA,qBAAA;AAAA,EACN,MAAQ,EAAA;AAAA,IACN,KAAO,EAAA,cAAA;AAAA,IACP,WAAa,EAAA,yBAAA;AAAA,IACb,YAAY,MACV,OAAO,wCAAgC,CAAA,CAAE,KAAK,CAAM,CAAA,MAAA;AAAA,MAClD,SAAS,CAAE,CAAA;AAAA,KACX,CAAA;AAAA;AAER,CAAC,CAAA;AAOD,MAAM,aAAa,oBAAqB,CAAA;AAAA,EACtC,QAAU,EAAA,MAAA;AAAA,EACV,MAAM,EAAE,WAAA,EAAa,MAAM,OAAO,uBAAiB,CAAE,EAAA;AAAA,EACrD,QAAQ,sBAAuB,CAAA;AAAA,IAC7B,IAAM,EAAA;AAAA,GACP,CAAA;AAAA,EACD,UAAY,EAAA;AAAA,IACV,OAAA;AAAA,IACA,QAAA;AAAA,IACA,kBAAA;AAAA,IACA,WAAA;AAAA,IACA,oBAAA;AAAA,IACA,wBAAA;AAAA,IACA,wBAAA;AAAA,IACA,+BAAA;AAAA,IACA,aAAA;AAAA,IACA;AAAA;AAEJ,CAAC;;;;"}
@@ -0,0 +1,9 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { Timeline } from '@drodil/backstage-plugin-qeta-react';
3
+
4
+ const HomeTimeline = () => {
5
+ return /* @__PURE__ */ jsx(Timeline, {});
6
+ };
7
+
8
+ export { HomeTimeline };
9
+ //# sourceMappingURL=HomeTimeline.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HomeTimeline.esm.js","sources":["../../../src/components/HomeTimeline/HomeTimeline.tsx"],"sourcesContent":["import { Timeline } from '@drodil/backstage-plugin-qeta-react';\n\nexport const HomeTimeline = () => {\n return <Timeline />;\n};\n"],"names":[],"mappings":";;;AAEO,MAAM,eAAe,MAAM;AAChC,EAAA,2BAAQ,QAAS,EAAA,EAAA,CAAA;AACnB;;;;"}
@@ -0,0 +1,2 @@
1
+ export { HomeTimeline } from './HomeTimeline.esm.js';
2
+ //# sourceMappingURL=index.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -2,12 +2,13 @@ import { jsx } from 'react/jsx-runtime';
2
2
  import { QetaProvider, PostsTable } from '@drodil/backstage-plugin-qeta-react';
3
3
 
4
4
  const Content = (props) => {
5
+ const postType = props.postType === "all" ? void 0 : props.postType;
5
6
  return /* @__PURE__ */ jsx(
6
7
  QetaProvider,
7
8
  {
8
9
  remarkPlugins: props.remarkPlugins,
9
10
  rehypePlugins: props.rehypePlugins,
10
- children: /* @__PURE__ */ jsx(PostsTable, { hideTitle: true, ...props })
11
+ children: /* @__PURE__ */ jsx(PostsTable, { hideTitle: true, ...props, postType })
11
12
  }
12
13
  );
13
14
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Content.esm.js","sources":["../../../src/components/PostsTableCard/Content.tsx"],"sourcesContent":["import { PostsTable, QetaProvider } from '@drodil/backstage-plugin-qeta-react';\nimport { PostType } from '@drodil/backstage-plugin-qeta-common';\nimport type { PluggableList } from 'unified';\n\nexport const Content = (props: {\n rowsPerPage?: number;\n quickFilter?: 'latest' | 'favorites' | 'most_viewed';\n postType?: PostType;\n remarkPlugins?: PluggableList;\n rehypePlugins?: PluggableList;\n}) => {\n return (\n <QetaProvider\n remarkPlugins={props.remarkPlugins}\n rehypePlugins={props.rehypePlugins}\n >\n <PostsTable hideTitle {...props} />\n </QetaProvider>\n );\n};\n"],"names":[],"mappings":";;;AAIa,MAAA,OAAA,GAAU,CAAC,KAMlB,KAAA;AACJ,EACE,uBAAA,GAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,eAAe,KAAM,CAAA,aAAA;AAAA,MACrB,eAAe,KAAM,CAAA,aAAA;AAAA,MAErB,QAAC,kBAAA,GAAA,CAAA,UAAA,EAAA,EAAW,SAAS,EAAA,IAAA,EAAE,GAAG,KAAO,EAAA;AAAA;AAAA,GACnC;AAEJ;;;;"}
1
+ {"version":3,"file":"Content.esm.js","sources":["../../../src/components/PostsTableCard/Content.tsx"],"sourcesContent":["import { PostsTable, QetaProvider } from '@drodil/backstage-plugin-qeta-react';\nimport { PostType } from '@drodil/backstage-plugin-qeta-common';\nimport type { PluggableList } from 'unified';\n\nexport const Content = (props: {\n rowsPerPage?: number;\n quickFilter?: 'latest' | 'favorites' | 'most_viewed';\n postType?: PostType | 'all';\n remarkPlugins?: PluggableList;\n rehypePlugins?: PluggableList;\n}) => {\n const postType = props.postType === 'all' ? undefined : props.postType;\n\n return (\n <QetaProvider\n remarkPlugins={props.remarkPlugins}\n rehypePlugins={props.rehypePlugins}\n >\n <PostsTable hideTitle {...props} postType={postType} />\n </QetaProvider>\n );\n};\n"],"names":[],"mappings":";;;AAIa,MAAA,OAAA,GAAU,CAAC,KAMlB,KAAA;AACJ,EAAA,MAAM,QAAW,GAAA,KAAA,CAAM,QAAa,KAAA,KAAA,GAAQ,SAAY,KAAM,CAAA,QAAA;AAE9D,EACE,uBAAA,GAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,eAAe,KAAM,CAAA,aAAA;AAAA,MACrB,eAAe,KAAM,CAAA,aAAA;AAAA,MAErB,8BAAC,UAAW,EAAA,EAAA,SAAA,EAAS,IAAE,EAAA,GAAG,OAAO,QAAoB,EAAA;AAAA;AAAA,GACvD;AAEJ;;;;"}
package/dist/index.d.ts CHANGED
@@ -54,7 +54,7 @@ declare const QetaSearchResultListItem: (props: QetaSearchResultListItemProps) =
54
54
  declare const Content: (props: {
55
55
  rowsPerPage?: number;
56
56
  quickFilter?: "latest" | "favorites" | "most_viewed";
57
- postType?: PostType;
57
+ postType?: PostType | "all";
58
58
  remarkPlugins?: PluggableList;
59
59
  rehypePlugins?: PluggableList;
60
60
  }) => react_jsx_runtime.JSX.Element;
@@ -6,7 +6,7 @@ var keywords = [
6
6
  "frontend",
7
7
  "backstage.io"
8
8
  ];
9
- var version = "3.59.0";
9
+ var version = "3.59.2";
10
10
  var main = "src/index.ts";
11
11
  var types = "src/index.ts";
12
12
  var prepublishOnly = "yarn tsc && yarn build";
@@ -95,6 +95,7 @@ var devDependencies = {
95
95
  "@backstage/cli": "backstage:^",
96
96
  "@backstage/frontend-defaults": "backstage:^",
97
97
  "@backstage/plugin-catalog": "backstage:^",
98
+ "@backstage/plugin-home": "backstage:^",
98
99
  "@backstage/plugin-notifications": "backstage:^",
99
100
  "@backstage/plugin-search": "backstage:^",
100
101
  "@backstage/plugin-search-react": "backstage:^",
@@ -1 +1 @@
1
- {"version":3,"file":"package.json.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"package.json.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "frontend",
8
8
  "backstage.io"
9
9
  ],
10
- "version": "3.59.0",
10
+ "version": "3.59.2",
11
11
  "main": "./dist/index.esm.js",
12
12
  "types": "./dist/index.d.ts",
13
13
  "prepublishOnly": "yarn tsc && yarn build",
@@ -84,8 +84,8 @@
84
84
  "@backstage/plugin-search-react": "^1.10.4",
85
85
  "@backstage/plugin-signals-react": "^0.0.19",
86
86
  "@backstage/plugin-techdocs-react": "^1.3.8",
87
- "@drodil/backstage-plugin-qeta-common": "^3.59.0",
88
- "@drodil/backstage-plugin-qeta-react": "^3.59.0",
87
+ "@drodil/backstage-plugin-qeta-common": "^3.59.2",
88
+ "@drodil/backstage-plugin-qeta-react": "^3.59.2",
89
89
  "@material-ui/core": "^4.12.2",
90
90
  "@material-ui/icons": "^4.11.3",
91
91
  "@material-ui/lab": "4.0.0-alpha.61",
@@ -108,6 +108,7 @@
108
108
  "@backstage/cli": "^0.35.4",
109
109
  "@backstage/frontend-defaults": "^0.4.0",
110
110
  "@backstage/plugin-catalog": "^1.33.1",
111
+ "@backstage/plugin-home": "^0.9.2",
111
112
  "@backstage/plugin-notifications": "^0.5.14",
112
113
  "@backstage/plugin-search": "^1.6.1",
113
114
  "@backstage/plugin-search-react": "^1.10.4",