@drodil/backstage-plugin-qeta 3.20.3 → 3.21.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.
- package/dist/components/QetaSearchResultListItem/QetaSearchResultListItem.esm.js.map +1 -1
- package/dist/components/QetaSearchResultListItem/index.esm.js +2 -0
- package/dist/components/QetaSearchResultListItem/index.esm.js.map +1 -0
- package/dist/index.d.ts +14 -9
- package/dist/index.esm.js +1 -2
- package/dist/index.esm.js.map +1 -1
- package/dist/plugin.esm.js +11 -1
- package/dist/plugin.esm.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QetaSearchResultListItem.esm.js","sources":["../../../src/components/QetaSearchResultListItem/QetaSearchResultListItem.tsx"],"sourcesContent":["import React from 'react';\nimport { DateTime } from 'luxon';\nimport { Link } from '@backstage/core-components';\nimport {\n IndexableDocument,\n ResultHighlight,\n} from '@backstage/plugin-search-common';\nimport { HighlightedSearchResultText } from '@backstage/plugin-search-react';\nimport CollectionsBookmarkIcon from '@material-ui/icons/CollectionsBookmark';\nimport {\n Divider,\n ListItem,\n ListItemIcon,\n ListItemText,\n makeStyles,\n} from '@material-ui/core';\nimport {\n QetaCollectionDocument,\n QetaPostDocument,\n QetaSearchDocument,\n removeMarkdownFormatting,\n truncate,\n} from '@drodil/backstage-plugin-qeta-common';\nimport { useTranslation } from '@drodil/backstage-plugin-qeta-react';\nimport { EntityRefLink } from '@backstage/plugin-catalog-react';\nimport HelpOutlined from '@material-ui/icons/HelpOutlined';\nimport PlaylistPlay from '@material-ui/icons/PlaylistPlay';\nimport DOMPurify from 'dompurify';\nimport { capitalize } from 'lodash';\n\nconst useStyles = makeStyles({\n excerptText: {\n display: 'block',\n marginTop: '0.2rem',\n marginBottom: '0.4rem',\n fontSize: '0.8rem',\n },\n excerpt: {\n lineHeight: '1.55',\n },\n itemText: {\n wordBreak: 'break-all',\n },\n});\n\nexport
|
|
1
|
+
{"version":3,"file":"QetaSearchResultListItem.esm.js","sources":["../../../src/components/QetaSearchResultListItem/QetaSearchResultListItem.tsx"],"sourcesContent":["import React from 'react';\nimport { DateTime } from 'luxon';\nimport { Link } from '@backstage/core-components';\nimport {\n IndexableDocument,\n ResultHighlight,\n} from '@backstage/plugin-search-common';\nimport { HighlightedSearchResultText } from '@backstage/plugin-search-react';\nimport CollectionsBookmarkIcon from '@material-ui/icons/CollectionsBookmark';\nimport {\n Divider,\n ListItem,\n ListItemIcon,\n ListItemText,\n makeStyles,\n} from '@material-ui/core';\nimport {\n QetaCollectionDocument,\n QetaPostDocument,\n QetaSearchDocument,\n removeMarkdownFormatting,\n truncate,\n} from '@drodil/backstage-plugin-qeta-common';\nimport { useTranslation } from '@drodil/backstage-plugin-qeta-react';\nimport { EntityRefLink } from '@backstage/plugin-catalog-react';\nimport HelpOutlined from '@material-ui/icons/HelpOutlined';\nimport PlaylistPlay from '@material-ui/icons/PlaylistPlay';\nimport DOMPurify from 'dompurify';\nimport { capitalize } from 'lodash';\n\nconst useStyles = makeStyles({\n excerptText: {\n display: 'block',\n marginTop: '0.2rem',\n marginBottom: '0.4rem',\n fontSize: '0.8rem',\n },\n excerpt: {\n lineHeight: '1.55',\n },\n itemText: {\n wordBreak: 'break-all',\n },\n});\n\nexport type QetaSearchResultListItemProps = {\n result?: IndexableDocument;\n highlight?: ResultHighlight;\n rank?: number;\n hideIcon?: boolean;\n};\n\nconst isQetaSearchDocument = (\n document: IndexableDocument,\n): document is QetaSearchDocument => {\n return (\n 'docType' in document &&\n (document.docType === 'qeta_post' || document.docType === 'qeta_collection')\n );\n};\n\nconst isQetaPostDocument = (\n document: QetaSearchDocument,\n): document is QetaPostDocument => {\n return document.docType === 'qeta_post';\n};\n\nconst isQetaCollectionDocument = (\n document: QetaSearchDocument,\n): document is QetaCollectionDocument => {\n return document.docType === 'qeta_collection';\n};\n\nconst Excerpt = (props: {\n document: QetaSearchDocument;\n highlight?: ResultHighlight;\n}) => {\n const { document, highlight } = props;\n const classes = useStyles();\n const { t } = useTranslation();\n\n const text = DOMPurify.sanitize(\n truncate(\n removeMarkdownFormatting(highlight?.fields.text ?? document.text),\n 300,\n ),\n );\n if (isQetaPostDocument(document)) {\n return (\n <>\n <span className={classes.excerptText}>\n {capitalize(t(`common.${document.postType}`))}\n {' · '}\n {t('searchResult.created')}{' '}\n {DateTime.fromISO(document.created.toString() as string).toRelative()}\n {' · '}\n <EntityRefLink entityRef={document.author} hideIcon />\n {' · '}\n {t('common.score', { score: document.score.toString(10) })}\n {' · '}\n {t('common.viewsShort', { count: document.views })}\n {' · '}\n {t('common.answers', { count: document.answerCount })}\n </span>\n <>\n {highlight?.fields.text ? (\n <HighlightedSearchResultText\n text={text}\n preTag={highlight.preTag}\n postTag={highlight.postTag}\n />\n ) : (\n text\n )}\n </>\n </>\n );\n } else if (isQetaCollectionDocument(document)) {\n return (\n <>\n <span className={classes.excerptText}>\n {capitalize(t(`common.collection`))}\n {' · '}\n {t('searchResult.created')}{' '}\n {DateTime.fromISO(document.created.toString() as string).toRelative()}\n {' · '}\n <EntityRefLink entityRef={document.owner} hideIcon />\n {' · '}\n {t('common.posts', {\n count: document.postsCount,\n itemType: t('common.post'),\n })}\n </span>\n <>\n {highlight?.fields.text ? (\n <HighlightedSearchResultText\n text={text}\n preTag={highlight.preTag}\n postTag={highlight.postTag}\n />\n ) : (\n text\n )}\n </>\n </>\n );\n }\n\n return null;\n};\n\nconst ResultIcon = (props: { document: QetaSearchDocument }) => {\n const { document } = props;\n if (isQetaPostDocument(document)) {\n if (document.postType === 'article') {\n return <CollectionsBookmarkIcon />;\n }\n return <HelpOutlined />;\n }\n\n return <PlaylistPlay />;\n};\n\nexport const QetaSearchResultListItem = (\n props: QetaSearchResultListItemProps,\n) => {\n const classes = useStyles();\n const { result, highlight, hideIcon } = props;\n\n if (!result || !isQetaSearchDocument(result)) {\n return null;\n }\n\n const title = (\n <Link noTrack to={result.location}>\n {highlight?.fields.title ? (\n <HighlightedSearchResultText\n text={highlight.fields.title}\n preTag={highlight.preTag}\n postTag={highlight.postTag}\n />\n ) : (\n result.title\n )}\n </Link>\n );\n\n return (\n <>\n <ListItem alignItems=\"center\">\n {hideIcon !== true && (\n <ListItemIcon>\n <ResultIcon document={result} />\n </ListItemIcon>\n )}\n <ListItemText\n primary={title}\n secondary={<Excerpt document={result} highlight={highlight} />}\n className={classes.itemText}\n primaryTypographyProps={{ variant: 'h6' }}\n />\n </ListItem>\n\n <Divider component=\"li\" />\n </>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,6 +5,13 @@ import * as _backstage_core_plugin_api from '@backstage/core-plugin-api';
|
|
|
5
5
|
import { PostType } from '@drodil/backstage-plugin-qeta-common';
|
|
6
6
|
import { IndexableDocument, ResultHighlight } from '@backstage/plugin-search-common';
|
|
7
7
|
|
|
8
|
+
type QetaSearchResultListItemProps = {
|
|
9
|
+
result?: IndexableDocument;
|
|
10
|
+
highlight?: ResultHighlight;
|
|
11
|
+
rank?: number;
|
|
12
|
+
hideIcon?: boolean;
|
|
13
|
+
};
|
|
14
|
+
|
|
8
15
|
declare const qetaPlugin: _backstage_core_plugin_api.BackstagePlugin<{
|
|
9
16
|
root: _backstage_core_plugin_api.RouteRef<undefined>;
|
|
10
17
|
}, {}, {}>;
|
|
@@ -31,6 +38,12 @@ declare const QuestionsTableCard: (props: _backstage_plugin_home_react.CardExten
|
|
|
31
38
|
rowsPerPage?: number;
|
|
32
39
|
quickFilter?: string;
|
|
33
40
|
}>) => React.JSX.Element;
|
|
41
|
+
/**
|
|
42
|
+
* React extension used to render results on Search page or modal
|
|
43
|
+
*
|
|
44
|
+
* @public
|
|
45
|
+
*/
|
|
46
|
+
declare const QetaSearchResultListItem: (props: QetaSearchResultListItemProps) => JSX.Element | null;
|
|
34
47
|
|
|
35
48
|
declare const Content: (props: {
|
|
36
49
|
rowsPerPage?: number;
|
|
@@ -40,12 +53,4 @@ declare const Content: (props: {
|
|
|
40
53
|
|
|
41
54
|
declare const StatisticsPage: () => react__default.JSX.Element;
|
|
42
55
|
|
|
43
|
-
|
|
44
|
-
result?: IndexableDocument;
|
|
45
|
-
highlight?: ResultHighlight;
|
|
46
|
-
rank?: number;
|
|
47
|
-
hideIcon?: boolean;
|
|
48
|
-
}
|
|
49
|
-
declare const QetaSearchResultListItem: (props: QetaSearchResultProps) => react__default.JSX.Element | null;
|
|
50
|
-
|
|
51
|
-
export { Content, PostsTableCard, QetaPage, QetaSearchResultListItem, QuestionsTableCard, StatisticsPage, qetaPlugin };
|
|
56
|
+
export { Content, PostsTableCard, QetaPage, QetaSearchResultListItem, type QetaSearchResultListItemProps, QuestionsTableCard, StatisticsPage, qetaPlugin };
|
package/dist/index.esm.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
export { PostsTableCard, QetaPage, QuestionsTableCard, qetaPlugin } from './plugin.esm.js';
|
|
1
|
+
export { PostsTableCard, QetaPage, QetaSearchResultListItem, QuestionsTableCard, qetaPlugin } from './plugin.esm.js';
|
|
2
2
|
export { Content } from './components/PostsTableCard/Content.esm.js';
|
|
3
3
|
export { StatisticsPage } from './components/Statistics/StatisticsPage.esm.js';
|
|
4
|
-
export { QetaSearchResultListItem } from './components/QetaSearchResultListItem/QetaSearchResultListItem.esm.js';
|
|
5
4
|
//# sourceMappingURL=index.esm.js.map
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
package/dist/plugin.esm.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createPlugin, createApiFactory, fetchApiRef, discoveryApiRef, createRoutableExtension } from '@backstage/core-plugin-api';
|
|
2
2
|
import { createCardExtension } from '@backstage/plugin-home-react';
|
|
3
|
+
import { createSearchResultListItemExtension } from '@backstage/plugin-search-react';
|
|
3
4
|
import { qetaRouteRef, qetaApiRef } from '@drodil/backstage-plugin-qeta-react';
|
|
4
5
|
import { QetaClient } from '@drodil/backstage-plugin-qeta-common';
|
|
5
6
|
|
|
@@ -62,6 +63,15 @@ const PostsTableCard = qetaPlugin.provide(
|
|
|
62
63
|
})
|
|
63
64
|
);
|
|
64
65
|
const QuestionsTableCard = PostsTableCard;
|
|
66
|
+
const QetaSearchResultListItem = qetaPlugin.provide(
|
|
67
|
+
createSearchResultListItemExtension({
|
|
68
|
+
name: "QetaSearchResultListItem",
|
|
69
|
+
component: () => import('./components/QetaSearchResultListItem/index.esm.js').then(
|
|
70
|
+
(m) => m.QetaSearchResultListItem
|
|
71
|
+
),
|
|
72
|
+
predicate: (result) => result.type === "qeta"
|
|
73
|
+
})
|
|
74
|
+
);
|
|
65
75
|
|
|
66
|
-
export { PostsTableCard, QetaPage, QuestionsTableCard, qetaPlugin };
|
|
76
|
+
export { PostsTableCard, QetaPage, QetaSearchResultListItem, QuestionsTableCard, qetaPlugin };
|
|
67
77
|
//# sourceMappingURL=plugin.esm.js.map
|
package/dist/plugin.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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 { qetaApiRef, qetaRouteRef } from '@drodil/backstage-plugin-qeta-react';\nimport { PostType, QetaClient } from '@drodil/backstage-plugin-qeta-common';\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 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'],\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"],"names":[],"mappings":"
|
|
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 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'],\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,EAAI,EAAA,MAAA;AAAA,EACJ,MAAQ,EAAA;AAAA,IACN,IAAM,EAAA;AAAA,GACR;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,gBAAiB,CAAA;AAAA,MACf,GAAK,EAAA,UAAA;AAAA,MACL,IAAM,EAAA,EAAE,QAAU,EAAA,WAAA,EAAa,cAAc,eAAgB,EAAA;AAAA,MAC7D,OAAA,EAAS,CAAC,EAAE,QAAU,EAAA,YAAA,EACpB,KAAA,IAAI,UAAW,CAAA,EAAE,QAAU,EAAA,YAAA,EAAc;AAAA,KAC5C;AAAA;AAEL,CAAC;AAEM,MAAM,WAAW,UAAW,CAAA,OAAA;AAAA,EACjC,uBAAwB,CAAA;AAAA,IACtB,IAAM,EAAA,UAAA;AAAA,IACN,SAAA,EAAW,MAAM,OAAO,oCAAuB,EAAE,IAAK,CAAA,CAAA,CAAA,KAAK,EAAE,QAAQ,CAAA;AAAA,IACrE,UAAY,EAAA;AAAA,GACb;AACH;AAEO,MAAM,iBAAiB,UAAW,CAAA,OAAA;AAAA,EACvC,mBAIG,CAAA;AAAA,IACD,IAAM,EAAA,gBAAA;AAAA,IACN,KAAO,EAAA,KAAA;AAAA,IACP,WAAa,EAAA,iBAAA;AAAA,IACb,UAAA,EAAY,MAAM,OAAO,0CAA6B,CAAA;AAAA,IACtD,MAAQ,EAAA;AAAA,MACN,MAAA,EAAQ,EAAE,OAAA,EAAS,CAAE,EAAA;AAAA,MACrB,KAAA,EAAO,EAAE,UAAA,EAAY,CAAE;AAAA,KACzB;AAAA,IACA,QAAU,EAAA;AAAA,MACR,MAAQ,EAAA;AAAA,QACN,KAAO,EAAA,KAAA;AAAA,QACP,IAAM,EAAA,QAAA;AAAA,QACN,UAAY,EAAA;AAAA,UACV,QAAU,EAAA;AAAA,YACR,KAAO,EAAA,WAAA;AAAA,YACP,IAAM,EAAA,QAAA;AAAA,YACN,IAAA,EAAM,CAAC,UAAA,EAAY,SAAS,CAAA;AAAA,YAC5B,OAAS,EAAA,KAAA;AAAA,WACX;AAAA,UACA,WAAa,EAAA;AAAA,YACX,KAAO,EAAA,eAAA;AAAA,YACP,IAAM,EAAA,QAAA;AAAA,YACN,MAAM,CAAC,CAAA,EAAG,IAAI,EAAI,EAAA,EAAA,EAAI,IAAI,EAAE,CAAA;AAAA,YAC5B,OAAS,EAAA;AAAA,WACX;AAAA,UACA,WAAa,EAAA;AAAA,YACX,KAAO,EAAA,gBAAA;AAAA,YACP,IAAM,EAAA,QAAA;AAAA,YACN,IAAM,EAAA,CAAC,QAAU,EAAA,WAAA,EAAa,aAAa,CAAA;AAAA,YAC3C,OAAS,EAAA;AAAA;AACX;AACF;AACF;AACF,GACD;AACH;AAKO,MAAM,kBAAqB,GAAA;AAO3B,MAAM,2BAEa,UAAW,CAAA,OAAA;AAAA,EACnC,mCAAoC,CAAA;AAAA,IAClC,IAAM,EAAA,0BAAA;AAAA,IACN,SAAW,EAAA,MACT,OAAO,oDAAuC,CAAE,CAAA,IAAA;AAAA,MAC9C,OAAK,CAAE,CAAA;AAAA,KACT;AAAA,IACF,SAAA,EAAW,CAAU,MAAA,KAAA,MAAA,CAAO,IAAS,KAAA;AAAA,GACtC;AACH;;;;"}
|
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"frontend",
|
|
8
8
|
"backstage.io"
|
|
9
9
|
],
|
|
10
|
-
"version": "3.
|
|
10
|
+
"version": "3.21.0",
|
|
11
11
|
"main": "dist/index.esm.js",
|
|
12
12
|
"types": "dist/index.d.ts",
|
|
13
13
|
"prepublishOnly": "yarn tsc && yarn build",
|
|
@@ -56,8 +56,8 @@
|
|
|
56
56
|
"@backstage/plugin-search-common": "^1.2.17",
|
|
57
57
|
"@backstage/plugin-search-react": "^1.8.5",
|
|
58
58
|
"@backstage/plugin-signals-react": "^0.0.9",
|
|
59
|
-
"@drodil/backstage-plugin-qeta-common": "^3.
|
|
60
|
-
"@drodil/backstage-plugin-qeta-react": "^3.
|
|
59
|
+
"@drodil/backstage-plugin-qeta-common": "^3.21.0",
|
|
60
|
+
"@drodil/backstage-plugin-qeta-react": "^3.21.0",
|
|
61
61
|
"@material-ui/core": "^4.12.2",
|
|
62
62
|
"@material-ui/icons": "^4.11.3",
|
|
63
63
|
"@material-ui/lab": "4.0.0-alpha.61",
|