@drodil/backstage-plugin-qeta 3.60.0 → 4.0.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.
- package/README.md +6 -11
- package/dist/components/ArticlePage/ArticlePage.esm.js +57 -15
- package/dist/components/ArticlePage/ArticlePage.esm.js.map +1 -1
- package/dist/components/ArticlesPage/ArticlesPage.esm.js +5 -22
- package/dist/components/ArticlesPage/ArticlesPage.esm.js.map +1 -1
- package/dist/components/AskPage/AskPage.esm.js +6 -7
- package/dist/components/AskPage/AskPage.esm.js.map +1 -1
- package/dist/components/CollectionCreatePage/CollectionCreatePage.esm.js +3 -4
- package/dist/components/CollectionCreatePage/CollectionCreatePage.esm.js.map +1 -1
- package/dist/components/CollectionPage/CollectionPage.esm.js +43 -87
- package/dist/components/CollectionPage/CollectionPage.esm.js.map +1 -1
- package/dist/components/CollectionsPage/CollectionsPage.esm.js +4 -5
- package/dist/components/CollectionsPage/CollectionsPage.esm.js.map +1 -1
- package/dist/components/ContentHealthCard/ContentHealthCard.esm.js +61 -89
- package/dist/components/ContentHealthCard/ContentHealthCard.esm.js.map +1 -1
- package/dist/components/ContentHealthCard/ContentHealthCard.module.css.esm.js +8 -0
- package/dist/components/ContentHealthCard/ContentHealthCard.module.css.esm.js.map +1 -0
- package/dist/components/ContentHealthCard/ReviewList.esm.js +27 -60
- package/dist/components/ContentHealthCard/ReviewList.esm.js.map +1 -1
- package/dist/components/ContentHealthCard/ReviewList.module.css.esm.js +8 -0
- package/dist/components/ContentHealthCard/ReviewList.module.css.esm.js.map +1 -0
- package/dist/components/CreateLinkPage/CreateLinkPage.esm.js +5 -6
- package/dist/components/CreateLinkPage/CreateLinkPage.esm.js.map +1 -1
- package/dist/components/EntityPage/EntityPage.esm.js +40 -58
- package/dist/components/EntityPage/EntityPage.esm.js.map +1 -1
- package/dist/components/EntityPostsContent/EntityPostsContent.esm.js +2 -3
- package/dist/components/EntityPostsContent/EntityPostsContent.esm.js.map +1 -1
- package/dist/components/FavoritePage/FavoritePage.esm.js +3 -14
- package/dist/components/FavoritePage/FavoritePage.esm.js.map +1 -1
- package/dist/components/HomePage/HomePage.esm.js +14 -60
- package/dist/components/HomePage/HomePage.esm.js.map +1 -1
- package/dist/components/HomePage/HomePage.module.css.esm.js +8 -0
- package/dist/components/HomePage/HomePage.module.css.esm.js.map +1 -0
- package/dist/components/LinkPage/LinkPage.esm.js +56 -61
- package/dist/components/LinkPage/LinkPage.esm.js.map +1 -1
- package/dist/components/LinksPage/LinksPage.esm.js +5 -16
- package/dist/components/LinksPage/LinksPage.esm.js.map +1 -1
- package/dist/components/ModeratorPage/ModeratorPage.esm.js +19 -29
- package/dist/components/ModeratorPage/ModeratorPage.esm.js.map +1 -1
- package/dist/components/ModeratorPage/ModeratorPage.module.css.esm.js +8 -0
- package/dist/components/ModeratorPage/ModeratorPage.module.css.esm.js.map +1 -0
- package/dist/components/QetaPage/QetaPage.esm.js +185 -268
- package/dist/components/QetaPage/QetaPage.esm.js.map +1 -1
- package/dist/components/QetaPage/QetaPage.module.css.esm.js +8 -0
- package/dist/components/QetaPage/QetaPage.module.css.esm.js.map +1 -0
- package/dist/components/QetaSearchResultListItem/QetaSearchResultListItem.esm.js +67 -78
- package/dist/components/QetaSearchResultListItem/QetaSearchResultListItem.esm.js.map +1 -1
- package/dist/components/QetaSearchResultListItem/QetaSearchResultListItem.module.css.esm.js +8 -0
- package/dist/components/QetaSearchResultListItem/QetaSearchResultListItem.module.css.esm.js.map +1 -0
- package/dist/components/QuestionPage/QuestionPage.esm.js +118 -97
- package/dist/components/QuestionPage/QuestionPage.esm.js.map +1 -1
- package/dist/components/QuestionsPage/QuestionsPage.esm.js +4 -5
- package/dist/components/QuestionsPage/QuestionsPage.esm.js.map +1 -1
- package/dist/components/ReviewPage/ReviewPage.esm.js +53 -18
- package/dist/components/ReviewPage/ReviewPage.esm.js.map +1 -1
- package/dist/components/RightContent/ArticlesRightContent.esm.js +2 -2
- package/dist/components/RightContent/ArticlesRightContent.esm.js.map +1 -1
- package/dist/components/RightContent/DefaultRightContent.esm.js +2 -2
- package/dist/components/RightContent/DefaultRightContent.esm.js.map +1 -1
- package/dist/components/RightContent/EntityRightContent.esm.js +2 -2
- package/dist/components/RightContent/EntityRightContent.esm.js.map +1 -1
- package/dist/components/RightContent/LinkedPosts.esm.js +5 -19
- package/dist/components/RightContent/LinkedPosts.esm.js.map +1 -1
- package/dist/components/RightContent/LinkedPosts.module.css.esm.js +8 -0
- package/dist/components/RightContent/LinkedPosts.module.css.esm.js.map +1 -0
- package/dist/components/RightContent/LinksRightContent.esm.js +2 -2
- package/dist/components/RightContent/LinksRightContent.esm.js.map +1 -1
- package/dist/components/RightContent/PostRightContent.esm.js +4 -4
- package/dist/components/RightContent/PostRightContent.esm.js.map +1 -1
- package/dist/components/RightContent/QuestionsRightContent.esm.js +2 -2
- package/dist/components/RightContent/QuestionsRightContent.esm.js.map +1 -1
- package/dist/components/RightContent/RightContent.esm.js +36 -52
- package/dist/components/RightContent/RightContent.esm.js.map +1 -1
- package/dist/components/RightContent/RightContent.module.css.esm.js +8 -0
- package/dist/components/RightContent/RightContent.module.css.esm.js.map +1 -0
- package/dist/components/RightContent/SimilarQuestions.esm.js +3 -16
- package/dist/components/RightContent/SimilarQuestions.esm.js.map +1 -1
- package/dist/components/RightContent/SimilarQuestions.module.css.esm.js +8 -0
- package/dist/components/RightContent/SimilarQuestions.module.css.esm.js.map +1 -0
- package/dist/components/RightContent/TagRightContent.esm.js +2 -2
- package/dist/components/RightContent/TagRightContent.esm.js.map +1 -1
- package/dist/components/SettingsPage/SettingsPage.esm.js +198 -200
- package/dist/components/SettingsPage/SettingsPage.esm.js.map +1 -1
- package/dist/components/SettingsPage/SettingsPage.module.css.esm.js +8 -0
- package/dist/components/SettingsPage/SettingsPage.module.css.esm.js.map +1 -0
- package/dist/components/Statistics/GlobalStatsContent.esm.js +5 -5
- package/dist/components/Statistics/GlobalStatsContent.esm.js.map +1 -1
- package/dist/components/Statistics/StatisticsPage.esm.js +14 -19
- package/dist/components/Statistics/StatisticsPage.esm.js.map +1 -1
- package/dist/components/Statistics/StatisticsPage.module.css.esm.js +8 -0
- package/dist/components/Statistics/StatisticsPage.module.css.esm.js.map +1 -0
- package/dist/components/TagPage/TagPage.esm.js +54 -87
- package/dist/components/TagPage/TagPage.esm.js.map +1 -1
- package/dist/components/TechDocsAskQuestionAddon/TechDocsAskQuestionAddon.esm.js +23 -32
- package/dist/components/TechDocsAskQuestionAddon/TechDocsAskQuestionAddon.esm.js.map +1 -1
- package/dist/components/TechDocsAskQuestionAddon/TechDocsAskQuestionAddon.module.css.esm.js +8 -0
- package/dist/components/TechDocsAskQuestionAddon/TechDocsAskQuestionAddon.module.css.esm.js.map +1 -0
- package/dist/components/UserPage/UserPage.esm.js +137 -236
- package/dist/components/UserPage/UserPage.esm.js.map +1 -1
- package/dist/components/UserPage/UserPage.module.css.esm.js +8 -0
- package/dist/components/UserPage/UserPage.module.css.esm.js.map +1 -0
- package/dist/components/UserPage/UserStatsContent.esm.js +5 -5
- package/dist/components/UserPage/UserStatsContent.esm.js.map +1 -1
- package/dist/components/UsersPage/UsersPage.esm.js +3 -9
- package/dist/components/UsersPage/UsersPage.esm.js.map +1 -1
- package/dist/components/WritePage/WritePage.esm.js +5 -6
- package/dist/components/WritePage/WritePage.esm.js.map +1 -1
- package/dist/index.d.ts +283 -77
- package/dist/index.esm.js +262 -7
- package/dist/index.esm.js.map +1 -1
- package/dist/node_modules_dist/style-inject/dist/style-inject.es.esm.js +29 -0
- package/dist/node_modules_dist/style-inject/dist/style-inject.es.esm.js.map +1 -0
- package/dist/{package.json.esm.js → plugins/qeta/package.json.esm.js} +8 -13
- package/dist/{package.json.esm.js.map → plugins/qeta/package.json.esm.js.map} +1 -1
- package/package.json +9 -18
- package/dist/alpha.d.ts +0 -255
- package/dist/alpha.esm.js +0 -238
- package/dist/alpha.esm.js.map +0 -1
- package/dist/components/EntityCards/EntityPostsContainerCard.esm.js +0 -13
- package/dist/components/EntityCards/EntityPostsContainerCard.esm.js.map +0 -1
- package/dist/components/EntityCards/EntityPostsGridCard.esm.js +0 -20
- package/dist/components/EntityCards/EntityPostsGridCard.esm.js.map +0 -1
- package/dist/components/ReviewPage/index.esm.js +0 -6
- package/dist/components/ReviewPage/index.esm.js.map +0 -1
- package/dist/plugin.esm.js +0 -84
- 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
|
package/dist/alpha.esm.js.map
DELETED
|
@@ -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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
package/dist/plugin.esm.js
DELETED
|
@@ -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
|
package/dist/plugin.esm.js.map
DELETED
|
@@ -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;;;;"}
|