@backstage/plugin-search 0.7.4 → 0.8.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/CHANGELOG.md +68 -0
- package/dist/esm/{index-6c1324ea.esm.js → index-1c49a9c7.esm.js} +44 -114
- package/dist/esm/index-1c49a9c7.esm.js.map +1 -0
- package/dist/esm/{index-ecefd17e.esm.js → index-21e72471.esm.js} +8 -7
- package/dist/esm/index-21e72471.esm.js.map +1 -0
- package/dist/esm/{index-6dc0dac9.esm.js → index-9b2b2a0c.esm.js} +10 -8
- package/dist/esm/index-9b2b2a0c.esm.js.map +1 -0
- package/dist/esm/{index-5c70689c.esm.js → index-ad938c17.esm.js} +8 -7
- package/dist/esm/index-ad938c17.esm.js.map +1 -0
- package/dist/esm/{index-c59968b8.esm.js → index-b51ef5f2.esm.js} +8 -7
- package/dist/esm/index-b51ef5f2.esm.js.map +1 -0
- package/dist/esm/{index-c88298b1.esm.js → index-ca20fb56.esm.js} +6 -5
- package/dist/esm/index-ca20fb56.esm.js.map +1 -0
- package/dist/esm/{index-5122e36b.esm.js → index-e04b2cd4.esm.js} +8 -7
- package/dist/esm/index-e04b2cd4.esm.js.map +1 -0
- package/dist/index.d.ts +23 -41
- package/dist/index.esm.js +7 -6
- package/dist/index.esm.js.map +1 -1
- package/package.json +15 -14
- package/dist/esm/index-5122e36b.esm.js.map +0 -1
- package/dist/esm/index-5c70689c.esm.js.map +0 -1
- package/dist/esm/index-6c1324ea.esm.js.map +0 -1
- package/dist/esm/index-6dc0dac9.esm.js.map +0 -1
- package/dist/esm/index-c59968b8.esm.js.map +0 -1
- package/dist/esm/index-c88298b1.esm.js.map +0 -1
- package/dist/esm/index-ecefd17e.esm.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,73 @@
|
|
|
1
1
|
# @backstage/plugin-search
|
|
2
2
|
|
|
3
|
+
## 0.8.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 520e21aaea: The following exports has now been fully deleted from this package and can be import from `@backstage/plugin-search-react` instead.
|
|
8
|
+
|
|
9
|
+
`SearchApi` interface.
|
|
10
|
+
`searchApiRef`
|
|
11
|
+
`SearchContextProvider`
|
|
12
|
+
`useSearch`
|
|
13
|
+
|
|
14
|
+
`SearchContext` has now been fully deleted from this package and is no longer exported publicly. Use `SearchContextProvider` when access to the context is needed.
|
|
15
|
+
|
|
16
|
+
### Patch Changes
|
|
17
|
+
|
|
18
|
+
- 7c7919777e: build(deps-dev): bump `@testing-library/react-hooks` from 7.0.2 to 8.0.0
|
|
19
|
+
- 24254fd433: build(deps): bump `@testing-library/user-event` from 13.5.0 to 14.0.0
|
|
20
|
+
- 5c062f275e: Support customizing the content of the `SidebarSearchModal`
|
|
21
|
+
- 38e01f2f70: Switch to `SearchDocument` type in `DefaultResultListItem` props
|
|
22
|
+
- 230ad0826f: Bump to using `@types/node` v16
|
|
23
|
+
- ab230a433f: The following exports has been moved to `@backstage/plugin-search-react` and will be removed in the next release. import from `@backstage/plugin-search-react` instead.
|
|
24
|
+
|
|
25
|
+
- `SearchApi` interface.
|
|
26
|
+
- `searchApiRef`
|
|
27
|
+
- `SearchContext`
|
|
28
|
+
- `SearchContextProvider`
|
|
29
|
+
- `useSearch`
|
|
30
|
+
|
|
31
|
+
- Updated dependencies
|
|
32
|
+
- @backstage/plugin-catalog-react@1.0.1
|
|
33
|
+
- @backstage/catalog-model@1.0.1
|
|
34
|
+
- @backstage/core-components@0.9.3
|
|
35
|
+
- @backstage/core-plugin-api@1.0.1
|
|
36
|
+
- @backstage/plugin-search-react@0.1.0
|
|
37
|
+
- @backstage/plugin-search-common@0.3.3
|
|
38
|
+
|
|
39
|
+
## 0.7.5-next.1
|
|
40
|
+
|
|
41
|
+
### Patch Changes
|
|
42
|
+
|
|
43
|
+
- 24254fd433: build(deps): bump `@testing-library/user-event` from 13.5.0 to 14.0.0
|
|
44
|
+
- 5c062f275e: Support customizing the content of the `SidebarSearchModal`
|
|
45
|
+
- 230ad0826f: Bump to using `@types/node` v16
|
|
46
|
+
- ab230a433f: The following exports has been moved to `@backstage/plugin-search-react` and will be removed in the next release. import from `@backstage/plugin-search-react` instead.
|
|
47
|
+
|
|
48
|
+
- `SearchApi` interface.
|
|
49
|
+
- `searchApiRef`
|
|
50
|
+
- `SearchContext`
|
|
51
|
+
- `SearchContextProvider`
|
|
52
|
+
- `useSearch`
|
|
53
|
+
|
|
54
|
+
- Updated dependencies
|
|
55
|
+
- @backstage/core-components@0.9.3-next.2
|
|
56
|
+
- @backstage/core-plugin-api@1.0.1-next.0
|
|
57
|
+
- @backstage/plugin-catalog-react@1.0.1-next.3
|
|
58
|
+
- @backstage/plugin-search-react@0.1.0-next.0
|
|
59
|
+
|
|
60
|
+
## 0.7.5-next.0
|
|
61
|
+
|
|
62
|
+
### Patch Changes
|
|
63
|
+
|
|
64
|
+
- 38e01f2f70: Switch to `SearchDocument` type in `DefaultResultListItem` props
|
|
65
|
+
- Updated dependencies
|
|
66
|
+
- @backstage/catalog-model@1.0.1-next.0
|
|
67
|
+
- @backstage/plugin-search-common@0.3.3-next.0
|
|
68
|
+
- @backstage/plugin-catalog-react@1.0.1-next.0
|
|
69
|
+
- @backstage/core-components@0.9.3-next.0
|
|
70
|
+
|
|
3
71
|
## 0.7.4
|
|
4
72
|
|
|
5
73
|
### Patch Changes
|
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { ResponseError } from '@backstage/errors';
|
|
3
|
-
import qs from 'qs';
|
|
4
|
-
import React, { createContext, useState, useCallback, useEffect, useContext, useRef, Fragment, cloneElement } from 'react';
|
|
1
|
+
import React, { useEffect, useState, useCallback, useRef, Fragment, cloneElement } from 'react';
|
|
5
2
|
import FilterListIcon from '@material-ui/icons/FilterList';
|
|
6
3
|
import { makeStyles, IconButton, Typography, Card, CardHeader, Button, Divider, CardContent, Select, MenuItem, List, ListItem, Checkbox, ListItemText, InputBase, InputAdornment, TextField, Chip, FormControl, FormLabel, FormControlLabel, InputLabel, ListItemIcon, Box, Dialog, useTheme, DialogTitle, Paper, DialogContent, Grid, DialogActions, Accordion, AccordionSummary, AccordionDetails, Tabs, Tab } from '@material-ui/core';
|
|
7
4
|
import useDebounce from 'react-use/lib/useDebounce';
|
|
5
|
+
import { useAnalytics, useApi, configApiRef, createRouteRef, createPlugin, createApiFactory, discoveryApiRef, identityApiRef, createRoutableExtension, createComponentExtension, useRouteRef } from '@backstage/core-plugin-api';
|
|
8
6
|
import SearchIcon from '@material-ui/icons/Search';
|
|
9
7
|
import ClearButton from '@material-ui/icons/Clear';
|
|
10
|
-
import
|
|
11
|
-
import usePrevious from 'react-use/lib/usePrevious';
|
|
8
|
+
import { useSearch, SearchContextProvider, searchApiRef } from '@backstage/plugin-search-react';
|
|
12
9
|
import { Autocomplete, Alert } from '@material-ui/lab';
|
|
13
10
|
import useAsyncFn from 'react-use/lib/useAsyncFn';
|
|
14
11
|
import LaunchIcon from '@material-ui/icons/Launch';
|
|
@@ -17,9 +14,13 @@ import { Link, Progress, ResponseErrorPanel, EmptyState, useContent, Table, useQ
|
|
|
17
14
|
import TextTruncate from 'react-text-truncate';
|
|
18
15
|
import ArrowBackIosIcon from '@material-ui/icons/ArrowBackIos';
|
|
19
16
|
import ArrowForwardIosIcon from '@material-ui/icons/ArrowForwardIos';
|
|
17
|
+
import { ResponseError } from '@backstage/errors';
|
|
18
|
+
import qs from 'qs';
|
|
19
|
+
import usePrevious from 'react-use/lib/usePrevious';
|
|
20
20
|
import { useOutlet, useLocation } from 'react-router';
|
|
21
21
|
import InputBase$1 from '@material-ui/core/InputBase';
|
|
22
22
|
import IconButton$1 from '@material-ui/core/IconButton';
|
|
23
|
+
import useAsync from 'react-use/lib/useAsync';
|
|
23
24
|
import { catalogApiRef } from '@backstage/plugin-catalog-react';
|
|
24
25
|
import { DEFAULT_NAMESPACE } from '@backstage/catalog-model';
|
|
25
26
|
import useEffectOnce from 'react-use/lib/useEffectOnce';
|
|
@@ -27,28 +28,6 @@ import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
|
|
|
27
28
|
import AllIcon from '@material-ui/icons/FontDownload';
|
|
28
29
|
import { useNavigate } from 'react-router-dom';
|
|
29
30
|
|
|
30
|
-
const searchApiRef = createApiRef({
|
|
31
|
-
id: "plugin.search.queryservice"
|
|
32
|
-
});
|
|
33
|
-
class SearchClient {
|
|
34
|
-
constructor(options) {
|
|
35
|
-
this.discoveryApi = options.discoveryApi;
|
|
36
|
-
this.identityApi = options.identityApi;
|
|
37
|
-
}
|
|
38
|
-
async query(query) {
|
|
39
|
-
const { token } = await this.identityApi.getCredentials();
|
|
40
|
-
const queryString = qs.stringify(query);
|
|
41
|
-
const url = `${await this.discoveryApi.getBaseUrl("search/query")}?${queryString}`;
|
|
42
|
-
const response = await fetch(url, {
|
|
43
|
-
headers: token ? { Authorization: `Bearer ${token}` } : {}
|
|
44
|
-
});
|
|
45
|
-
if (!response.ok) {
|
|
46
|
-
throw await ResponseError.fromResponse(response);
|
|
47
|
-
}
|
|
48
|
-
return response.json();
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
31
|
const useStyles$b = makeStyles((theme) => ({
|
|
53
32
|
filters: {
|
|
54
33
|
width: "250px",
|
|
@@ -147,73 +126,6 @@ const Filters$1 = ({
|
|
|
147
126
|
}))))));
|
|
148
127
|
};
|
|
149
128
|
|
|
150
|
-
const SearchContext = createContext(void 0);
|
|
151
|
-
const searchInitialState = {
|
|
152
|
-
term: "",
|
|
153
|
-
pageCursor: void 0,
|
|
154
|
-
filters: {},
|
|
155
|
-
types: []
|
|
156
|
-
};
|
|
157
|
-
const SearchContextProvider = ({
|
|
158
|
-
initialState = searchInitialState,
|
|
159
|
-
children
|
|
160
|
-
}) => {
|
|
161
|
-
var _a, _b, _c, _d;
|
|
162
|
-
const searchApi = useApi(searchApiRef);
|
|
163
|
-
const [pageCursor, setPageCursor] = useState(initialState.pageCursor);
|
|
164
|
-
const [filters, setFilters] = useState(initialState.filters);
|
|
165
|
-
const [term, setTerm] = useState(initialState.term);
|
|
166
|
-
const [types, setTypes] = useState(initialState.types);
|
|
167
|
-
const prevTerm = usePrevious(term);
|
|
168
|
-
const result = useAsync(() => searchApi.query({
|
|
169
|
-
term,
|
|
170
|
-
filters,
|
|
171
|
-
pageCursor,
|
|
172
|
-
types
|
|
173
|
-
}), [term, filters, types, pageCursor]);
|
|
174
|
-
const hasNextPage = !result.loading && !result.error && ((_a = result.value) == null ? void 0 : _a.nextPageCursor);
|
|
175
|
-
const hasPreviousPage = !result.loading && !result.error && ((_b = result.value) == null ? void 0 : _b.previousPageCursor);
|
|
176
|
-
const fetchNextPage = useCallback(() => {
|
|
177
|
-
var _a2;
|
|
178
|
-
setPageCursor((_a2 = result.value) == null ? void 0 : _a2.nextPageCursor);
|
|
179
|
-
}, [(_c = result.value) == null ? void 0 : _c.nextPageCursor]);
|
|
180
|
-
const fetchPreviousPage = useCallback(() => {
|
|
181
|
-
var _a2;
|
|
182
|
-
setPageCursor((_a2 = result.value) == null ? void 0 : _a2.previousPageCursor);
|
|
183
|
-
}, [(_d = result.value) == null ? void 0 : _d.previousPageCursor]);
|
|
184
|
-
useEffect(() => {
|
|
185
|
-
if (term && prevTerm && term !== prevTerm) {
|
|
186
|
-
setPageCursor(void 0);
|
|
187
|
-
}
|
|
188
|
-
}, [term, prevTerm, initialState.pageCursor]);
|
|
189
|
-
const value = {
|
|
190
|
-
result,
|
|
191
|
-
filters,
|
|
192
|
-
setFilters,
|
|
193
|
-
term,
|
|
194
|
-
setTerm,
|
|
195
|
-
types,
|
|
196
|
-
setTypes,
|
|
197
|
-
pageCursor,
|
|
198
|
-
setPageCursor,
|
|
199
|
-
fetchNextPage: hasNextPage ? fetchNextPage : void 0,
|
|
200
|
-
fetchPreviousPage: hasPreviousPage ? fetchPreviousPage : void 0
|
|
201
|
-
};
|
|
202
|
-
return /* @__PURE__ */ React.createElement(AnalyticsContext, {
|
|
203
|
-
attributes: { searchTypes: types.sort().join(",") }
|
|
204
|
-
}, /* @__PURE__ */ React.createElement(SearchContext.Provider, {
|
|
205
|
-
value,
|
|
206
|
-
children
|
|
207
|
-
}));
|
|
208
|
-
};
|
|
209
|
-
const useSearch = () => {
|
|
210
|
-
const context = useContext(SearchContext);
|
|
211
|
-
if (context === void 0) {
|
|
212
|
-
throw new Error("useSearch must be used within a SearchContextProvider");
|
|
213
|
-
}
|
|
214
|
-
return context;
|
|
215
|
-
};
|
|
216
|
-
|
|
217
129
|
const TrackSearch = ({ children }) => {
|
|
218
130
|
const analytics = useAnalytics();
|
|
219
131
|
const { term } = useSearch();
|
|
@@ -225,10 +137,6 @@ const TrackSearch = ({ children }) => {
|
|
|
225
137
|
return /* @__PURE__ */ React.createElement(React.Fragment, null, children);
|
|
226
138
|
};
|
|
227
139
|
|
|
228
|
-
const useSearchContextCheck = () => {
|
|
229
|
-
const context = useContext(SearchContext);
|
|
230
|
-
return context !== void 0;
|
|
231
|
-
};
|
|
232
140
|
const SearchBarBase = ({
|
|
233
141
|
onChange,
|
|
234
142
|
onKeyDown,
|
|
@@ -243,7 +151,7 @@ const SearchBarBase = ({
|
|
|
243
151
|
}) => {
|
|
244
152
|
const configApi = useApi(configApiRef);
|
|
245
153
|
const [value, setValue] = useState(defaultValue);
|
|
246
|
-
const hasSearchContext =
|
|
154
|
+
const hasSearchContext = useSearch();
|
|
247
155
|
useEffect(() => {
|
|
248
156
|
setValue((prevValue) => prevValue !== defaultValue ? defaultValue : prevValue);
|
|
249
157
|
}, [defaultValue]);
|
|
@@ -596,6 +504,25 @@ const SearchResultPager = () => {
|
|
|
596
504
|
}, "Next"));
|
|
597
505
|
};
|
|
598
506
|
|
|
507
|
+
class SearchClient {
|
|
508
|
+
constructor(options) {
|
|
509
|
+
this.discoveryApi = options.discoveryApi;
|
|
510
|
+
this.identityApi = options.identityApi;
|
|
511
|
+
}
|
|
512
|
+
async query(query) {
|
|
513
|
+
const { token } = await this.identityApi.getCredentials();
|
|
514
|
+
const queryString = qs.stringify(query);
|
|
515
|
+
const url = `${await this.discoveryApi.getBaseUrl("search/query")}?${queryString}`;
|
|
516
|
+
const response = await fetch(url, {
|
|
517
|
+
headers: token ? { Authorization: `Bearer ${token}` } : {}
|
|
518
|
+
});
|
|
519
|
+
if (!response.ok) {
|
|
520
|
+
throw await ResponseError.fromResponse(response);
|
|
521
|
+
}
|
|
522
|
+
return response.json();
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
|
|
599
526
|
const rootRouteRef = createRouteRef({
|
|
600
527
|
id: "search"
|
|
601
528
|
});
|
|
@@ -620,54 +547,54 @@ const searchPlugin = createPlugin({
|
|
|
620
547
|
});
|
|
621
548
|
const SearchPage$1 = searchPlugin.provide(createRoutableExtension({
|
|
622
549
|
name: "SearchPage",
|
|
623
|
-
component: () => import('./index-
|
|
550
|
+
component: () => import('./index-e04b2cd4.esm.js').then((m) => m.SearchPage),
|
|
624
551
|
mountPoint: rootRouteRef
|
|
625
552
|
}));
|
|
626
553
|
const SearchPageNext = searchPlugin.provide(createRoutableExtension({
|
|
627
554
|
name: "SearchPageNext",
|
|
628
|
-
component: () => import('./index-
|
|
555
|
+
component: () => import('./index-e04b2cd4.esm.js').then((m) => m.SearchPage),
|
|
629
556
|
mountPoint: rootNextRouteRef
|
|
630
557
|
}));
|
|
631
558
|
searchPlugin.provide(createComponentExtension({
|
|
632
559
|
name: "SearchBar",
|
|
633
560
|
component: {
|
|
634
|
-
lazy: () => import('./index-
|
|
561
|
+
lazy: () => import('./index-b51ef5f2.esm.js').then((m) => m.SearchBar)
|
|
635
562
|
}
|
|
636
563
|
}));
|
|
637
564
|
const SearchBarNext = searchPlugin.provide(createComponentExtension({
|
|
638
565
|
name: "SearchBarNext",
|
|
639
566
|
component: {
|
|
640
|
-
lazy: () => import('./index-
|
|
567
|
+
lazy: () => import('./index-b51ef5f2.esm.js').then((m) => m.SearchBar)
|
|
641
568
|
}
|
|
642
569
|
}));
|
|
643
570
|
const SearchResult$1 = searchPlugin.provide(createComponentExtension({
|
|
644
571
|
name: "SearchResult",
|
|
645
572
|
component: {
|
|
646
|
-
lazy: () => import('./index-
|
|
573
|
+
lazy: () => import('./index-21e72471.esm.js').then((m) => m.SearchResult)
|
|
647
574
|
}
|
|
648
575
|
}));
|
|
649
576
|
searchPlugin.provide(createComponentExtension({
|
|
650
577
|
name: "SearchResultNext",
|
|
651
578
|
component: {
|
|
652
|
-
lazy: () => import('./index-
|
|
579
|
+
lazy: () => import('./index-21e72471.esm.js').then((m) => m.SearchResult)
|
|
653
580
|
}
|
|
654
581
|
}));
|
|
655
582
|
const SidebarSearchModal = searchPlugin.provide(createComponentExtension({
|
|
656
583
|
name: "SidebarSearchModal",
|
|
657
584
|
component: {
|
|
658
|
-
lazy: () => import('./index-
|
|
585
|
+
lazy: () => import('./index-9b2b2a0c.esm.js').then((m) => m.SidebarSearchModal)
|
|
659
586
|
}
|
|
660
587
|
}));
|
|
661
588
|
const DefaultResultListItem = searchPlugin.provide(createComponentExtension({
|
|
662
589
|
name: "DefaultResultListItem",
|
|
663
590
|
component: {
|
|
664
|
-
lazy: () => import('./index-
|
|
591
|
+
lazy: () => import('./index-ad938c17.esm.js').then((m) => m.DefaultResultListItem)
|
|
665
592
|
}
|
|
666
593
|
}));
|
|
667
594
|
const HomePageSearchBar = searchPlugin.provide(createComponentExtension({
|
|
668
595
|
name: "HomePageSearchBar",
|
|
669
596
|
component: {
|
|
670
|
-
lazy: () => import('./index-
|
|
597
|
+
lazy: () => import('./index-ca20fb56.esm.js').then((m) => m.HomePageSearchBar)
|
|
671
598
|
}
|
|
672
599
|
}));
|
|
673
600
|
|
|
@@ -740,8 +667,10 @@ const Modal = ({ toggleModal }) => {
|
|
|
740
667
|
const SearchModal = ({
|
|
741
668
|
open = true,
|
|
742
669
|
hidden,
|
|
743
|
-
toggleModal
|
|
670
|
+
toggleModal,
|
|
671
|
+
children
|
|
744
672
|
}) => {
|
|
673
|
+
var _a;
|
|
745
674
|
const classes = useStyles$7();
|
|
746
675
|
return /* @__PURE__ */ React.createElement(Dialog, {
|
|
747
676
|
classes: {
|
|
@@ -753,7 +682,7 @@ const SearchModal = ({
|
|
|
753
682
|
maxWidth: "lg",
|
|
754
683
|
open,
|
|
755
684
|
hidden
|
|
756
|
-
}, open && /* @__PURE__ */ React.createElement(SearchContextProvider, null, /* @__PURE__ */ React.createElement(Modal, {
|
|
685
|
+
}, open && /* @__PURE__ */ React.createElement(SearchContextProvider, null, (_a = children && children({ toggleModal })) != null ? _a : /* @__PURE__ */ React.createElement(Modal, {
|
|
757
686
|
toggleModal
|
|
758
687
|
})));
|
|
759
688
|
};
|
|
@@ -1323,7 +1252,8 @@ const SearchTypeTabs = (props) => {
|
|
|
1323
1252
|
indicatorColor: "primary",
|
|
1324
1253
|
value: types.length === 0 ? "" : types[0],
|
|
1325
1254
|
onChange: changeTab
|
|
1326
|
-
}, definedTypes.map((type) => /* @__PURE__ */ React.createElement(Tab, {
|
|
1255
|
+
}, definedTypes.map((type, idx) => /* @__PURE__ */ React.createElement(Tab, {
|
|
1256
|
+
key: idx,
|
|
1327
1257
|
className: classes.tab,
|
|
1328
1258
|
disableRipple: true,
|
|
1329
1259
|
label: type.name,
|
|
@@ -1419,5 +1349,5 @@ const SidebarSearch = (props) => {
|
|
|
1419
1349
|
});
|
|
1420
1350
|
};
|
|
1421
1351
|
|
|
1422
|
-
export { DefaultResultListItem$1 as D, Filters$1 as F, HomePageSearchBar as H, SearchPage as S, SearchBar$1 as a, SearchBarBase as b, SearchResultComponent as c, SearchModal as d, FiltersButton$1 as e,
|
|
1423
|
-
//# sourceMappingURL=index-
|
|
1352
|
+
export { DefaultResultListItem$1 as D, Filters$1 as F, HomePageSearchBar as H, SearchPage as S, SearchBar$1 as a, SearchBarBase as b, SearchResultComponent as c, SearchModal as d, FiltersButton$1 as e, SearchFilter as f, SearchFilterNext as g, SearchResultPager as h, SearchType as i, SidebarSearch as j, DefaultResultListItem as k, SearchBarNext as l, SearchPage$1 as m, SearchPageNext as n, SearchResult$1 as o, SidebarSearchModal as p, rootRouteRef as r, searchPlugin as s, useSearchModal as u };
|
|
1353
|
+
//# sourceMappingURL=index-1c49a9c7.esm.js.map
|