@backstage/plugin-search 1.4.15-next.3 → 1.4.15
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/CHANGELOG.md +19 -0
- package/alpha/package.json +1 -1
- package/dist/alpha.d.ts +75 -10
- package/dist/alpha.esm.js +109 -103
- package/dist/alpha.esm.js.map +1 -1
- package/package.json +11 -11
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# @backstage/plugin-search
|
|
2
2
|
|
|
3
|
+
## 1.4.15
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- c7603e8: Deprecate the old pattern of `create*Extension`, and replace it with the equivalent Blueprint implementation instead
|
|
8
|
+
- 3123c16: Fix package metadata
|
|
9
|
+
- 6349099: Added config input type to the extensions
|
|
10
|
+
- Updated dependencies
|
|
11
|
+
- @backstage/frontend-plugin-api@0.7.0
|
|
12
|
+
- @backstage/plugin-catalog-react@1.12.3
|
|
13
|
+
- @backstage/plugin-search-react@1.7.14
|
|
14
|
+
- @backstage/core-components@0.14.10
|
|
15
|
+
- @backstage/core-compat-api@0.2.8
|
|
16
|
+
- @backstage/plugin-search-common@1.2.14
|
|
17
|
+
- @backstage/core-plugin-api@1.9.3
|
|
18
|
+
- @backstage/errors@1.2.4
|
|
19
|
+
- @backstage/types@1.1.1
|
|
20
|
+
- @backstage/version-bridge@1.0.8
|
|
21
|
+
|
|
3
22
|
## 1.4.15-next.3
|
|
4
23
|
|
|
5
24
|
### Patch Changes
|
package/alpha/package.json
CHANGED
package/dist/alpha.d.ts
CHANGED
|
@@ -1,24 +1,89 @@
|
|
|
1
|
+
import * as _backstage_plugin_search_react_alpha from '@backstage/plugin-search-react/alpha';
|
|
1
2
|
import * as _backstage_frontend_plugin_api from '@backstage/frontend-plugin-api';
|
|
3
|
+
import * as _backstage_core_plugin_api from '@backstage/core-plugin-api';
|
|
4
|
+
import React__default from 'react';
|
|
2
5
|
|
|
3
6
|
/** @alpha */
|
|
4
|
-
declare const searchApi: _backstage_frontend_plugin_api.ExtensionDefinition<{}, {},
|
|
7
|
+
declare const searchApi: _backstage_frontend_plugin_api.ExtensionDefinition<{}, {}, _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_core_plugin_api.AnyApiFactory, "core.api.factory", {}>, {}, {
|
|
8
|
+
kind: "api";
|
|
9
|
+
namespace: undefined;
|
|
10
|
+
name: undefined;
|
|
11
|
+
}>;
|
|
5
12
|
/** @alpha */
|
|
6
13
|
declare const searchPage: _backstage_frontend_plugin_api.ExtensionDefinition<{
|
|
7
|
-
path: string;
|
|
8
14
|
noTrack: boolean;
|
|
15
|
+
} & {
|
|
16
|
+
path: string | undefined;
|
|
9
17
|
}, {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
18
|
+
noTrack?: boolean | undefined;
|
|
19
|
+
} & {
|
|
20
|
+
path?: string | undefined;
|
|
21
|
+
}, _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<React__default.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", {
|
|
22
|
+
optional: true;
|
|
23
|
+
}>, {
|
|
24
|
+
items: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.ConfigurableExtensionDataRef<{
|
|
25
|
+
predicate?: _backstage_plugin_search_react_alpha.SearchResultItemExtensionPredicate | undefined;
|
|
26
|
+
component: _backstage_plugin_search_react_alpha.SearchResultItemExtensionComponent;
|
|
27
|
+
}, "search.search-result-list-item.item", {}>, {
|
|
28
|
+
singleton: false;
|
|
29
|
+
optional: false;
|
|
30
|
+
}>;
|
|
31
|
+
}, {
|
|
32
|
+
kind: "page";
|
|
33
|
+
namespace: undefined;
|
|
34
|
+
name: undefined;
|
|
35
|
+
}>;
|
|
13
36
|
/** @alpha */
|
|
14
|
-
declare const searchNavItem: _backstage_frontend_plugin_api.ExtensionDefinition<{
|
|
37
|
+
declare const searchNavItem: _backstage_frontend_plugin_api.ExtensionDefinition<{}, {}, _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<{
|
|
15
38
|
title: string;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
},
|
|
39
|
+
icon: _backstage_core_plugin_api.IconComponent;
|
|
40
|
+
routeRef: _backstage_frontend_plugin_api.RouteRef<undefined>;
|
|
41
|
+
}, "core.nav-item.target", {}>, {}, {
|
|
42
|
+
kind: "nav-item";
|
|
43
|
+
namespace: undefined;
|
|
44
|
+
name: undefined;
|
|
45
|
+
}>;
|
|
19
46
|
/** @alpha */
|
|
20
47
|
declare const _default: _backstage_frontend_plugin_api.BackstagePlugin<{
|
|
21
48
|
root: _backstage_frontend_plugin_api.RouteRef<undefined>;
|
|
22
|
-
}, {}, {
|
|
49
|
+
}, {}, {
|
|
50
|
+
"api:search": _backstage_frontend_plugin_api.ExtensionDefinition<{}, {}, _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_core_plugin_api.AnyApiFactory, "core.api.factory", {}>, {}, {
|
|
51
|
+
kind: "api";
|
|
52
|
+
namespace: undefined;
|
|
53
|
+
name: undefined;
|
|
54
|
+
}>;
|
|
55
|
+
"nav-item:search": _backstage_frontend_plugin_api.ExtensionDefinition<{}, {}, _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<{
|
|
56
|
+
title: string;
|
|
57
|
+
icon: _backstage_core_plugin_api.IconComponent;
|
|
58
|
+
routeRef: _backstage_frontend_plugin_api.RouteRef<undefined>;
|
|
59
|
+
}, "core.nav-item.target", {}>, {}, {
|
|
60
|
+
kind: "nav-item";
|
|
61
|
+
namespace: undefined;
|
|
62
|
+
name: undefined;
|
|
63
|
+
}>;
|
|
64
|
+
"page:search": _backstage_frontend_plugin_api.ExtensionDefinition<{
|
|
65
|
+
noTrack: boolean;
|
|
66
|
+
} & {
|
|
67
|
+
path: string | undefined;
|
|
68
|
+
}, {
|
|
69
|
+
noTrack?: boolean | undefined;
|
|
70
|
+
} & {
|
|
71
|
+
path?: string | undefined;
|
|
72
|
+
}, _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<React__default.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", {
|
|
73
|
+
optional: true;
|
|
74
|
+
}>, {
|
|
75
|
+
items: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.ConfigurableExtensionDataRef<{
|
|
76
|
+
predicate?: _backstage_plugin_search_react_alpha.SearchResultItemExtensionPredicate | undefined;
|
|
77
|
+
component: _backstage_plugin_search_react_alpha.SearchResultItemExtensionComponent;
|
|
78
|
+
}, "search.search-result-list-item.item", {}>, {
|
|
79
|
+
singleton: false;
|
|
80
|
+
optional: false;
|
|
81
|
+
}>;
|
|
82
|
+
}, {
|
|
83
|
+
kind: "page";
|
|
84
|
+
namespace: undefined;
|
|
85
|
+
name: undefined;
|
|
86
|
+
}>;
|
|
87
|
+
}>;
|
|
23
88
|
|
|
24
89
|
export { _default as default, searchApi, searchNavItem, searchPage };
|
package/dist/alpha.esm.js
CHANGED
|
@@ -5,22 +5,24 @@ import { makeStyles } from '@material-ui/core/styles';
|
|
|
5
5
|
import SearchIcon from '@material-ui/icons/Search';
|
|
6
6
|
import { useSidebarPinState, Page, Header, Content, CatalogIcon, DocsIcon } from '@backstage/core-components';
|
|
7
7
|
import { createApiFactory, discoveryApiRef, fetchApiRef, useApi } from '@backstage/core-plugin-api';
|
|
8
|
-
import {
|
|
8
|
+
import { ApiBlueprint, PageBlueprint, createExtensionInput, NavItemBlueprint, createFrontendPlugin } from '@backstage/frontend-plugin-api';
|
|
9
9
|
import { catalogApiRef, CATALOG_FILTER_EXISTS } from '@backstage/plugin-catalog-react';
|
|
10
10
|
import { searchApiRef, SearchContextProvider, useSearch, SearchBar, SearchFilter, SearchPagination, SearchResult, SearchResultPager, DefaultResultListItem } from '@backstage/plugin-search-react';
|
|
11
|
-
import {
|
|
11
|
+
import { SearchResultListItemBlueprint } from '@backstage/plugin-search-react/alpha';
|
|
12
12
|
import { rootRouteRef } from './plugin.esm.js';
|
|
13
13
|
import { SearchClient } from './apis.esm.js';
|
|
14
14
|
import { SearchType } from './components/SearchType/SearchType.esm.js';
|
|
15
15
|
import { UrlUpdater } from './components/SearchPage/SearchPage.esm.js';
|
|
16
16
|
import { convertLegacyRouteRef, compatWrapper, convertLegacyRouteRefs } from '@backstage/core-compat-api';
|
|
17
17
|
|
|
18
|
-
const searchApi =
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
18
|
+
const searchApi = ApiBlueprint.make({
|
|
19
|
+
params: {
|
|
20
|
+
factory: createApiFactory({
|
|
21
|
+
api: searchApiRef,
|
|
22
|
+
deps: { discoveryApi: discoveryApiRef, fetchApi: fetchApiRef },
|
|
23
|
+
factory: ({ discoveryApi, fetchApi }) => new SearchClient({ discoveryApi, fetchApi })
|
|
24
|
+
})
|
|
25
|
+
}
|
|
24
26
|
});
|
|
25
27
|
const useSearchPageStyles = makeStyles((theme) => ({
|
|
26
28
|
filter: {
|
|
@@ -33,112 +35,116 @@ const useSearchPageStyles = makeStyles((theme) => ({
|
|
|
33
35
|
marginTop: theme.spacing(2)
|
|
34
36
|
}
|
|
35
37
|
}));
|
|
36
|
-
const searchPage =
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
})
|
|
43
|
-
),
|
|
38
|
+
const searchPage = PageBlueprint.makeWithOverrides({
|
|
39
|
+
config: {
|
|
40
|
+
schema: {
|
|
41
|
+
noTrack: (z) => z.boolean().default(false)
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
44
|
inputs: {
|
|
45
|
-
items: createExtensionInput(
|
|
46
|
-
item: createSearchResultListItemExtension.itemDataRef
|
|
47
|
-
})
|
|
45
|
+
items: createExtensionInput([SearchResultListItemBlueprint.dataRefs.item])
|
|
48
46
|
},
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
)
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
types: [
|
|
47
|
+
factory(originalFactory, { config, inputs }) {
|
|
48
|
+
return originalFactory({
|
|
49
|
+
defaultPath: "/search",
|
|
50
|
+
routeRef: convertLegacyRouteRef(rootRouteRef),
|
|
51
|
+
loader: async () => {
|
|
52
|
+
const getResultItemComponent = (result) => {
|
|
53
|
+
const value = inputs.items.find(
|
|
54
|
+
(item) => item?.get(SearchResultListItemBlueprint.dataRefs.item).predicate?.(result)
|
|
55
|
+
);
|
|
56
|
+
return value?.get(SearchResultListItemBlueprint.dataRefs.item).component ?? DefaultResultListItem;
|
|
57
|
+
};
|
|
58
|
+
const Component = () => {
|
|
59
|
+
const classes = useSearchPageStyles();
|
|
60
|
+
const { isMobile } = useSidebarPinState();
|
|
61
|
+
const { types } = useSearch();
|
|
62
|
+
const catalogApi = useApi(catalogApiRef);
|
|
63
|
+
return /* @__PURE__ */ React.createElement(Page, { themeId: "home" }, !isMobile && /* @__PURE__ */ React.createElement(Header, { title: "Search" }), /* @__PURE__ */ React.createElement(Content, null, /* @__PURE__ */ React.createElement(Grid, { container: true, direction: "row" }, /* @__PURE__ */ React.createElement(Grid, { item: true, xs: 12 }, /* @__PURE__ */ React.createElement(SearchBar, { debounceTime: 100 })), !isMobile && /* @__PURE__ */ React.createElement(Grid, { item: true, xs: 3 }, /* @__PURE__ */ React.createElement(
|
|
64
|
+
SearchType.Accordion,
|
|
68
65
|
{
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
66
|
+
name: "Result Type",
|
|
67
|
+
defaultValue: "software-catalog",
|
|
68
|
+
showCounts: true,
|
|
69
|
+
types: [
|
|
70
|
+
{
|
|
71
|
+
value: "software-catalog",
|
|
72
|
+
name: "Software Catalog",
|
|
73
|
+
icon: /* @__PURE__ */ React.createElement(CatalogIcon, null)
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
value: "techdocs",
|
|
77
|
+
name: "Documentation",
|
|
78
|
+
icon: /* @__PURE__ */ React.createElement(DocsIcon, null)
|
|
79
|
+
}
|
|
80
|
+
]
|
|
81
|
+
}
|
|
82
|
+
), /* @__PURE__ */ React.createElement(Paper, { className: classes.filters }, types.includes("techdocs") && /* @__PURE__ */ React.createElement(
|
|
83
|
+
SearchFilter.Select,
|
|
84
|
+
{
|
|
85
|
+
className: classes.filter,
|
|
86
|
+
label: "Entity",
|
|
87
|
+
name: "name",
|
|
88
|
+
values: async () => {
|
|
89
|
+
const { items } = await catalogApi.getEntities({
|
|
90
|
+
fields: ["metadata.name"],
|
|
91
|
+
filter: {
|
|
92
|
+
"metadata.annotations.backstage.io/techdocs-ref": CATALOG_FILTER_EXISTS
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
const names = items.map(
|
|
96
|
+
(entity) => entity.metadata.name
|
|
97
|
+
);
|
|
98
|
+
names.sort();
|
|
99
|
+
return names;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
), /* @__PURE__ */ React.createElement(
|
|
103
|
+
SearchFilter.Select,
|
|
73
104
|
{
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
105
|
+
className: classes.filter,
|
|
106
|
+
label: "Kind",
|
|
107
|
+
name: "kind",
|
|
108
|
+
values: ["Component", "Template"]
|
|
77
109
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
const {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
110
|
+
), /* @__PURE__ */ React.createElement(
|
|
111
|
+
SearchFilter.Checkbox,
|
|
112
|
+
{
|
|
113
|
+
className: classes.filter,
|
|
114
|
+
label: "Lifecycle",
|
|
115
|
+
name: "lifecycle",
|
|
116
|
+
values: ["experimental", "production"]
|
|
117
|
+
}
|
|
118
|
+
))), /* @__PURE__ */ React.createElement(Grid, { item: true, xs: true }, /* @__PURE__ */ React.createElement(SearchPagination, null), /* @__PURE__ */ React.createElement(SearchResult, null, ({ results }) => /* @__PURE__ */ React.createElement(React.Fragment, null, results.map((result, index) => {
|
|
119
|
+
const { noTrack } = config;
|
|
120
|
+
const { document, ...rest } = result;
|
|
121
|
+
const SearchResultListItem = getResultItemComponent(result);
|
|
122
|
+
return /* @__PURE__ */ React.createElement(
|
|
123
|
+
SearchResultListItem,
|
|
124
|
+
{
|
|
125
|
+
...rest,
|
|
126
|
+
key: index,
|
|
127
|
+
result: document,
|
|
128
|
+
noTrack
|
|
91
129
|
}
|
|
92
|
-
});
|
|
93
|
-
const names = items.map(
|
|
94
|
-
(entity) => entity.metadata.name
|
|
95
130
|
);
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
), /* @__PURE__ */ React.createElement(
|
|
101
|
-
SearchFilter.Select,
|
|
102
|
-
{
|
|
103
|
-
className: classes.filter,
|
|
104
|
-
label: "Kind",
|
|
105
|
-
name: "kind",
|
|
106
|
-
values: ["Component", "Template"]
|
|
107
|
-
}
|
|
108
|
-
), /* @__PURE__ */ React.createElement(
|
|
109
|
-
SearchFilter.Checkbox,
|
|
110
|
-
{
|
|
111
|
-
className: classes.filter,
|
|
112
|
-
label: "Lifecycle",
|
|
113
|
-
name: "lifecycle",
|
|
114
|
-
values: ["experimental", "production"]
|
|
115
|
-
}
|
|
116
|
-
))), /* @__PURE__ */ React.createElement(Grid, { item: true, xs: true }, /* @__PURE__ */ React.createElement(SearchPagination, null), /* @__PURE__ */ React.createElement(SearchResult, null, ({ results }) => /* @__PURE__ */ React.createElement(React.Fragment, null, results.map((result, index) => {
|
|
117
|
-
const { noTrack } = config;
|
|
118
|
-
const { document, ...rest } = result;
|
|
119
|
-
const SearchResultListItem = getResultItemComponent(result);
|
|
120
|
-
return /* @__PURE__ */ React.createElement(
|
|
121
|
-
SearchResultListItem,
|
|
122
|
-
{
|
|
123
|
-
...rest,
|
|
124
|
-
key: index,
|
|
125
|
-
result: document,
|
|
126
|
-
noTrack
|
|
127
|
-
}
|
|
131
|
+
}))), /* @__PURE__ */ React.createElement(SearchResultPager, null)))));
|
|
132
|
+
};
|
|
133
|
+
return compatWrapper(
|
|
134
|
+
/* @__PURE__ */ React.createElement(SearchContextProvider, null, /* @__PURE__ */ React.createElement(UrlUpdater, null), /* @__PURE__ */ React.createElement(Component, null))
|
|
128
135
|
);
|
|
129
|
-
}
|
|
130
|
-
};
|
|
131
|
-
return compatWrapper(
|
|
132
|
-
/* @__PURE__ */ React.createElement(SearchContextProvider, null, /* @__PURE__ */ React.createElement(UrlUpdater, null), /* @__PURE__ */ React.createElement(Component, null))
|
|
133
|
-
);
|
|
136
|
+
}
|
|
137
|
+
});
|
|
134
138
|
}
|
|
135
139
|
});
|
|
136
|
-
const searchNavItem =
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
+
const searchNavItem = NavItemBlueprint.make({
|
|
141
|
+
params: {
|
|
142
|
+
routeRef: convertLegacyRouteRef(rootRouteRef),
|
|
143
|
+
title: "Search",
|
|
144
|
+
icon: SearchIcon
|
|
145
|
+
}
|
|
140
146
|
});
|
|
141
|
-
var alpha =
|
|
147
|
+
var alpha = createFrontendPlugin({
|
|
142
148
|
id: "search",
|
|
143
149
|
extensions: [searchApi, searchPage, searchNavItem],
|
|
144
150
|
routes: convertLegacyRouteRefs({
|
package/dist/alpha.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alpha.esm.js","sources":["../src/alpha.tsx"],"sourcesContent":["/*\n * Copyright 2023 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from 'react';\n\nimport Grid from '@material-ui/core/Grid';\nimport Paper from '@material-ui/core/Paper';\nimport { makeStyles, Theme } from '@material-ui/core/styles';\nimport SearchIcon from '@material-ui/icons/Search';\n\nimport {\n CatalogIcon,\n Content,\n DocsIcon,\n Header,\n Page,\n useSidebarPinState,\n} from '@backstage/core-components';\nimport {\n useApi,\n discoveryApiRef,\n fetchApiRef,\n createApiFactory,\n} from '@backstage/core-plugin-api';\n\nimport {\n createPlugin,\n createApiExtension,\n createPageExtension,\n createExtensionInput,\n createNavItemExtension,\n createSchemaFromZod,\n} from '@backstage/frontend-plugin-api';\n\nimport {\n catalogApiRef,\n CATALOG_FILTER_EXISTS,\n} from '@backstage/plugin-catalog-react';\n\nimport {\n DefaultResultListItem,\n SearchBar,\n SearchFilter,\n SearchPagination,\n SearchResult as SearchResults,\n SearchResultPager,\n useSearch,\n SearchContextProvider,\n} from '@backstage/plugin-search-react';\nimport { SearchResult } from '@backstage/plugin-search-common';\nimport { searchApiRef } from '@backstage/plugin-search-react';\nimport { createSearchResultListItemExtension } from '@backstage/plugin-search-react/alpha';\n\nimport { rootRouteRef } from './plugin';\nimport { SearchClient } from './apis';\nimport { SearchType } from './components/SearchType';\nimport { UrlUpdater } from './components/SearchPage/SearchPage';\nimport {\n compatWrapper,\n convertLegacyRouteRef,\n convertLegacyRouteRefs,\n} from '@backstage/core-compat-api';\n\n/** @alpha */\nexport const searchApi = createApiExtension({\n factory: createApiFactory({\n api: searchApiRef,\n deps: { discoveryApi: discoveryApiRef, fetchApi: fetchApiRef },\n factory: ({ discoveryApi, fetchApi }) =>\n new SearchClient({ discoveryApi, fetchApi }),\n }),\n});\n\nconst useSearchPageStyles = makeStyles((theme: Theme) => ({\n filter: {\n '& + &': {\n marginTop: theme.spacing(2.5),\n },\n },\n filters: {\n padding: theme.spacing(2),\n marginTop: theme.spacing(2),\n },\n}));\n\n/** @alpha */\nexport const searchPage = createPageExtension({\n routeRef: convertLegacyRouteRef(rootRouteRef),\n configSchema: createSchemaFromZod(z =>\n z.object({\n path: z.string().default('/search'),\n noTrack: z.boolean().default(false),\n }),\n ),\n inputs: {\n items: createExtensionInput({\n item: createSearchResultListItemExtension.itemDataRef,\n }),\n },\n loader: async ({ config, inputs }) => {\n const getResultItemComponent = (result: SearchResult) => {\n const value = inputs.items.find(item =>\n item?.output.item.predicate?.(result),\n );\n return value?.output.item.component ?? DefaultResultListItem;\n };\n\n const Component = () => {\n const classes = useSearchPageStyles();\n const { isMobile } = useSidebarPinState();\n const { types } = useSearch();\n const catalogApi = useApi(catalogApiRef);\n\n return (\n <Page themeId=\"home\">\n {!isMobile && <Header title=\"Search\" />}\n <Content>\n <Grid container direction=\"row\">\n <Grid item xs={12}>\n <SearchBar debounceTime={100} />\n </Grid>\n {!isMobile && (\n <Grid item xs={3}>\n <SearchType.Accordion\n name=\"Result Type\"\n defaultValue=\"software-catalog\"\n showCounts\n types={[\n {\n value: 'software-catalog',\n name: 'Software Catalog',\n icon: <CatalogIcon />,\n },\n {\n value: 'techdocs',\n name: 'Documentation',\n icon: <DocsIcon />,\n },\n ]}\n />\n <Paper className={classes.filters}>\n {types.includes('techdocs') && (\n <SearchFilter.Select\n className={classes.filter}\n label=\"Entity\"\n name=\"name\"\n values={async () => {\n // Return a list of entities which are documented.\n const { items } = await catalogApi.getEntities({\n fields: ['metadata.name'],\n filter: {\n 'metadata.annotations.backstage.io/techdocs-ref':\n CATALOG_FILTER_EXISTS,\n },\n });\n\n const names = items.map(\n entity => entity.metadata.name,\n );\n names.sort();\n return names;\n }}\n />\n )}\n <SearchFilter.Select\n className={classes.filter}\n label=\"Kind\"\n name=\"kind\"\n values={['Component', 'Template']}\n />\n <SearchFilter.Checkbox\n className={classes.filter}\n label=\"Lifecycle\"\n name=\"lifecycle\"\n values={['experimental', 'production']}\n />\n </Paper>\n </Grid>\n )}\n <Grid item xs>\n <SearchPagination />\n <SearchResults>\n {({ results }) => (\n <>\n {results.map((result, index) => {\n const { noTrack } = config;\n const { document, ...rest } = result;\n const SearchResultListItem =\n getResultItemComponent(result);\n return (\n <SearchResultListItem\n {...rest}\n key={index}\n result={document}\n noTrack={noTrack}\n />\n );\n })}\n </>\n )}\n </SearchResults>\n <SearchResultPager />\n </Grid>\n </Grid>\n </Content>\n </Page>\n );\n };\n\n return compatWrapper(\n <SearchContextProvider>\n <UrlUpdater />\n <Component />\n </SearchContextProvider>,\n );\n },\n});\n\n/** @alpha */\nexport const searchNavItem = createNavItemExtension({\n routeRef: convertLegacyRouteRef(rootRouteRef),\n title: 'Search',\n icon: SearchIcon,\n});\n\n/** @alpha */\nexport default createPlugin({\n id: 'search',\n extensions: [searchApi, searchPage, searchNavItem],\n routes: convertLegacyRouteRefs({\n root: rootRouteRef,\n }),\n});\n"],"names":["SearchResults"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"alpha.esm.js","sources":["../src/alpha.tsx"],"sourcesContent":["/*\n * Copyright 2023 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from 'react';\n\nimport Grid from '@material-ui/core/Grid';\nimport Paper from '@material-ui/core/Paper';\nimport { makeStyles, Theme } from '@material-ui/core/styles';\nimport SearchIcon from '@material-ui/icons/Search';\n\nimport {\n CatalogIcon,\n Content,\n DocsIcon,\n Header,\n Page,\n useSidebarPinState,\n} from '@backstage/core-components';\nimport {\n useApi,\n discoveryApiRef,\n fetchApiRef,\n createApiFactory,\n} from '@backstage/core-plugin-api';\n\nimport {\n createFrontendPlugin,\n ApiBlueprint,\n createExtensionInput,\n PageBlueprint,\n NavItemBlueprint,\n} from '@backstage/frontend-plugin-api';\n\nimport {\n catalogApiRef,\n CATALOG_FILTER_EXISTS,\n} from '@backstage/plugin-catalog-react';\n\nimport {\n DefaultResultListItem,\n SearchBar,\n SearchFilter,\n SearchPagination,\n SearchResult as SearchResults,\n SearchResultPager,\n useSearch,\n SearchContextProvider,\n} from '@backstage/plugin-search-react';\nimport { SearchResult } from '@backstage/plugin-search-common';\nimport { searchApiRef } from '@backstage/plugin-search-react';\nimport { SearchResultListItemBlueprint } from '@backstage/plugin-search-react/alpha';\n\nimport { rootRouteRef } from './plugin';\nimport { SearchClient } from './apis';\nimport { SearchType } from './components/SearchType';\nimport { UrlUpdater } from './components/SearchPage/SearchPage';\nimport {\n compatWrapper,\n convertLegacyRouteRef,\n convertLegacyRouteRefs,\n} from '@backstage/core-compat-api';\n\n/** @alpha */\nexport const searchApi = ApiBlueprint.make({\n params: {\n factory: createApiFactory({\n api: searchApiRef,\n deps: { discoveryApi: discoveryApiRef, fetchApi: fetchApiRef },\n factory: ({ discoveryApi, fetchApi }) =>\n new SearchClient({ discoveryApi, fetchApi }),\n }),\n },\n});\n\nconst useSearchPageStyles = makeStyles((theme: Theme) => ({\n filter: {\n '& + &': {\n marginTop: theme.spacing(2.5),\n },\n },\n filters: {\n padding: theme.spacing(2),\n marginTop: theme.spacing(2),\n },\n}));\n\n/** @alpha */\nexport const searchPage = PageBlueprint.makeWithOverrides({\n config: {\n schema: {\n noTrack: z => z.boolean().default(false),\n },\n },\n inputs: {\n items: createExtensionInput([SearchResultListItemBlueprint.dataRefs.item]),\n },\n factory(originalFactory, { config, inputs }) {\n return originalFactory({\n defaultPath: '/search',\n routeRef: convertLegacyRouteRef(rootRouteRef),\n loader: async () => {\n const getResultItemComponent = (result: SearchResult) => {\n const value = inputs.items.find(item =>\n item\n ?.get(SearchResultListItemBlueprint.dataRefs.item)\n .predicate?.(result),\n );\n return (\n value?.get(SearchResultListItemBlueprint.dataRefs.item).component ??\n DefaultResultListItem\n );\n };\n\n const Component = () => {\n const classes = useSearchPageStyles();\n const { isMobile } = useSidebarPinState();\n const { types } = useSearch();\n const catalogApi = useApi(catalogApiRef);\n\n return (\n <Page themeId=\"home\">\n {!isMobile && <Header title=\"Search\" />}\n <Content>\n <Grid container direction=\"row\">\n <Grid item xs={12}>\n <SearchBar debounceTime={100} />\n </Grid>\n {!isMobile && (\n <Grid item xs={3}>\n <SearchType.Accordion\n name=\"Result Type\"\n defaultValue=\"software-catalog\"\n showCounts\n types={[\n {\n value: 'software-catalog',\n name: 'Software Catalog',\n icon: <CatalogIcon />,\n },\n {\n value: 'techdocs',\n name: 'Documentation',\n icon: <DocsIcon />,\n },\n ]}\n />\n <Paper className={classes.filters}>\n {types.includes('techdocs') && (\n <SearchFilter.Select\n className={classes.filter}\n label=\"Entity\"\n name=\"name\"\n values={async () => {\n // Return a list of entities which are documented.\n const { items } = await catalogApi.getEntities({\n fields: ['metadata.name'],\n filter: {\n 'metadata.annotations.backstage.io/techdocs-ref':\n CATALOG_FILTER_EXISTS,\n },\n });\n\n const names = items.map(\n entity => entity.metadata.name,\n );\n names.sort();\n return names;\n }}\n />\n )}\n <SearchFilter.Select\n className={classes.filter}\n label=\"Kind\"\n name=\"kind\"\n values={['Component', 'Template']}\n />\n <SearchFilter.Checkbox\n className={classes.filter}\n label=\"Lifecycle\"\n name=\"lifecycle\"\n values={['experimental', 'production']}\n />\n </Paper>\n </Grid>\n )}\n <Grid item xs>\n <SearchPagination />\n <SearchResults>\n {({ results }) => (\n <>\n {results.map((result, index) => {\n const { noTrack } = config;\n const { document, ...rest } = result;\n const SearchResultListItem =\n getResultItemComponent(result);\n return (\n <SearchResultListItem\n {...rest}\n key={index}\n result={document}\n noTrack={noTrack}\n />\n );\n })}\n </>\n )}\n </SearchResults>\n <SearchResultPager />\n </Grid>\n </Grid>\n </Content>\n </Page>\n );\n };\n\n return compatWrapper(\n <SearchContextProvider>\n <UrlUpdater />\n <Component />\n </SearchContextProvider>,\n );\n },\n });\n },\n});\n\n/** @alpha */\nexport const searchNavItem = NavItemBlueprint.make({\n params: {\n routeRef: convertLegacyRouteRef(rootRouteRef),\n title: 'Search',\n icon: SearchIcon,\n },\n});\n\n/** @alpha */\nexport default createFrontendPlugin({\n id: 'search',\n extensions: [searchApi, searchPage, searchNavItem],\n routes: convertLegacyRouteRefs({\n root: rootRouteRef,\n }),\n});\n"],"names":["SearchResults"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@backstage/plugin-search",
|
|
3
|
-
"version": "1.4.15
|
|
3
|
+
"version": "1.4.15",
|
|
4
4
|
"description": "The Backstage plugin that provides your backstage app with search",
|
|
5
5
|
"backstage": {
|
|
6
6
|
"role": "frontend-plugin",
|
|
@@ -57,14 +57,14 @@
|
|
|
57
57
|
"test": "backstage-cli package test"
|
|
58
58
|
},
|
|
59
59
|
"dependencies": {
|
|
60
|
-
"@backstage/core-compat-api": "^0.2.8
|
|
61
|
-
"@backstage/core-components": "^0.14.10
|
|
60
|
+
"@backstage/core-compat-api": "^0.2.8",
|
|
61
|
+
"@backstage/core-components": "^0.14.10",
|
|
62
62
|
"@backstage/core-plugin-api": "^1.9.3",
|
|
63
63
|
"@backstage/errors": "^1.2.4",
|
|
64
|
-
"@backstage/frontend-plugin-api": "^0.7.0
|
|
65
|
-
"@backstage/plugin-catalog-react": "^1.12.3
|
|
66
|
-
"@backstage/plugin-search-common": "^1.2.14
|
|
67
|
-
"@backstage/plugin-search-react": "^1.7.14
|
|
64
|
+
"@backstage/frontend-plugin-api": "^0.7.0",
|
|
65
|
+
"@backstage/plugin-catalog-react": "^1.12.3",
|
|
66
|
+
"@backstage/plugin-search-common": "^1.2.14",
|
|
67
|
+
"@backstage/plugin-search-react": "^1.7.14",
|
|
68
68
|
"@backstage/types": "^1.1.1",
|
|
69
69
|
"@backstage/version-bridge": "^1.0.8",
|
|
70
70
|
"@material-ui/core": "^4.12.2",
|
|
@@ -74,10 +74,10 @@
|
|
|
74
74
|
"react-use": "^17.2.4"
|
|
75
75
|
},
|
|
76
76
|
"devDependencies": {
|
|
77
|
-
"@backstage/cli": "^0.27.0
|
|
78
|
-
"@backstage/core-app-api": "^1.14.2
|
|
79
|
-
"@backstage/dev-utils": "^1.0.37
|
|
80
|
-
"@backstage/test-utils": "^1.5.10
|
|
77
|
+
"@backstage/cli": "^0.27.0",
|
|
78
|
+
"@backstage/core-app-api": "^1.14.2",
|
|
79
|
+
"@backstage/dev-utils": "^1.0.37",
|
|
80
|
+
"@backstage/test-utils": "^1.5.10",
|
|
81
81
|
"@testing-library/dom": "^10.0.0",
|
|
82
82
|
"@testing-library/jest-dom": "^6.0.0",
|
|
83
83
|
"@testing-library/react": "^15.0.0",
|