@gooddata/sdk-ui-semantic-search 10.10.0-alpha.2 → 10.10.0-alpha.21
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/esm/ResultsItem.d.ts.map +1 -1
- package/esm/ResultsItem.js +5 -13
- package/esm/ResultsItem.js.map +1 -1
- package/esm/SearchListItem.d.ts +14 -0
- package/esm/SearchListItem.d.ts.map +1 -0
- package/esm/SearchListItem.js +28 -0
- package/esm/SearchListItem.js.map +1 -0
- package/esm/SemanticSearch.d.ts.map +1 -1
- package/esm/SemanticSearch.js +1 -2
- package/esm/SemanticSearch.js.map +1 -1
- package/esm/hooks/useSearchMetrics.d.ts +43 -0
- package/esm/hooks/useSearchMetrics.d.ts.map +1 -0
- package/esm/hooks/useSearchMetrics.js +75 -0
- package/esm/hooks/useSearchMetrics.js.map +1 -0
- package/esm/internal/AnnotatedResultsItem.d.ts +4 -0
- package/esm/internal/AnnotatedResultsItem.d.ts.map +1 -1
- package/esm/internal/AnnotatedResultsItem.js +14 -22
- package/esm/internal/AnnotatedResultsItem.js.map +1 -1
- package/esm/internal/HistoryItem.d.ts +1 -1
- package/esm/internal/HistoryItem.d.ts.map +1 -1
- package/esm/internal/HistoryItem.js +7 -13
- package/esm/internal/HistoryItem.js.map +1 -1
- package/esm/internal/SearchOverlay.d.ts +20 -3
- package/esm/internal/SearchOverlay.d.ts.map +1 -1
- package/esm/internal/SearchOverlay.js +37 -17
- package/esm/internal/SearchOverlay.js.map +1 -1
- package/esm/internal.d.ts +2 -2
- package/esm/internal.d.ts.map +1 -1
- package/esm/internal.js +2 -2
- package/esm/internal.js.map +1 -1
- package/esm/utils/renderItemIcon.d.ts +2 -3
- package/esm/utils/renderItemIcon.d.ts.map +1 -1
- package/esm/utils/renderItemIcon.js +2 -1
- package/esm/utils/renderItemIcon.js.map +1 -1
- package/esm/utils/{renderLoack.d.ts → renderLock.d.ts} +1 -1
- package/esm/utils/renderLock.d.ts.map +1 -0
- package/esm/utils/{renderLoack.js → renderLock.js} +1 -1
- package/esm/utils/renderLock.js.map +1 -0
- package/package.json +7 -7
- package/styles/css/internal.css +34 -106
- package/styles/css/internal.css.map +1 -1
- package/styles/css/main.css +17 -49
- package/styles/css/main.css.map +1 -1
- package/styles/scss/internal.scss +21 -66
- package/styles/scss/main.scss +16 -43
- package/esm/internal/HeaderMobileSearch.d.ts +0 -8
- package/esm/internal/HeaderMobileSearch.d.ts.map +0 -1
- package/esm/internal/HeaderMobileSearch.js +0 -18
- package/esm/internal/HeaderMobileSearch.js.map +0 -1
- package/esm/internal/HeaderSearchButton.d.ts +0 -31
- package/esm/internal/HeaderSearchButton.d.ts.map +0 -1
- package/esm/internal/HeaderSearchButton.js +0 -50
- package/esm/internal/HeaderSearchButton.js.map +0 -1
- package/esm/utils/renderLoack.d.ts.map +0 -1
- package/esm/utils/renderLoack.js.map +0 -1
package/esm/ResultsItem.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ResultsItem.d.ts","sourceRoot":"","sources":["../src/ResultsItem.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;
|
1
|
+
{"version":3,"file":"ResultsItem.d.ts","sourceRoot":"","sources":["../src/ResultsItem.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAK3C;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAU1E,CAAC"}
|
package/esm/ResultsItem.js
CHANGED
@@ -1,23 +1,15 @@
|
|
1
1
|
// (C) 2024 GoodData Corporation
|
2
2
|
import * as React from "react";
|
3
|
-
import { useTheme } from "@gooddata/sdk-ui-theme-provider";
|
4
|
-
import classnames from "classnames";
|
5
3
|
import { renderItemIcon } from "./utils/renderItemIcon.js";
|
6
4
|
import { renderDetails } from "./utils/renderDetails.js";
|
5
|
+
import { SearchListItem } from "./SearchListItem.js";
|
7
6
|
/**
|
8
7
|
* A single result item in the search results.
|
9
8
|
* @internal
|
10
9
|
*/
|
11
|
-
export const ResultsItem = (
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
"gd-semantic-search__results-item": true,
|
16
|
-
"gd-semantic-search__results-item--active": isActive,
|
17
|
-
}), onPointerOver: () => setActive(listItem), onClick: (e) => onSelect(listItem, e.nativeEvent) },
|
18
|
-
React.createElement("span", { className: "gd-semantic-search__results-item__icon" }, renderItemIcon(listItem, { color: theme?.palette?.complementary?.c5 ?? "#B0BECA" })),
|
19
|
-
React.createElement("span", { className: "gd-semantic-search__results-item__text gd-semantic-search__results-item__text--result" },
|
20
|
-
React.createElement("span", { className: "gd-semantic-search__results-item__text__1" }, listItem.item.title)),
|
21
|
-
isActive ? renderDetails(listItem, theme) : null));
|
10
|
+
export const ResultsItem = (props) => {
|
11
|
+
return (React.createElement(SearchListItem, { ...props, renderIcon: renderItemIcon, renderDetails: renderDetails },
|
12
|
+
React.createElement("span", { className: "gd-semantic-search__results-item__text__row" },
|
13
|
+
React.createElement("span", { className: "gd-semantic-search__results-item__text__ellipsis" }, props.listItem.item.title))));
|
22
14
|
};
|
23
15
|
//# sourceMappingURL=ResultsItem.js.map
|
package/esm/ResultsItem.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ResultsItem.js","sourceRoot":"","sources":["../src/ResultsItem.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
1
|
+
{"version":3,"file":"ResultsItem.js","sourceRoot":"","sources":["../src/ResultsItem.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAuD,CAAC,KAAK,EAAE,EAAE;IACrF,OAAO,CACH,oBAAC,cAAc,OAAK,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa;QAC/E,8BAAM,SAAS,EAAC,6CAA6C;YACzD,8BAAM,SAAS,EAAC,kDAAkD,IAC7D,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CACvB,CACJ,CACM,CACpB,CAAC;AACN,CAAC,CAAC"}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import * as React from "react";
|
2
|
+
import { ITheme } from "@gooddata/sdk-model";
|
3
|
+
import { ListItem, ListItemProps } from "./types.js";
|
4
|
+
export type SearchListItemProps<T> = ListItemProps<T> & React.PropsWithChildren<{
|
5
|
+
renderIcon: (item: ListItem<T>, theme?: ITheme) => React.ReactElement;
|
6
|
+
renderDetails?: (item: ListItem<T>, theme?: ITheme) => React.ReactElement;
|
7
|
+
className?: string;
|
8
|
+
}>;
|
9
|
+
/**
|
10
|
+
* A single result item in the search results.
|
11
|
+
* @internal
|
12
|
+
*/
|
13
|
+
export declare const SearchListItem: <T>({ listItem, isActive, setActive, onSelect, renderIcon, renderDetails, className, children, }: SearchListItemProps<T>) => React.JSX.Element;
|
14
|
+
//# sourceMappingURL=SearchListItem.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"SearchListItem.d.ts","sourceRoot":"","sources":["../src/SearchListItem.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGrD,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,GACjD,KAAK,CAAC,iBAAiB,CAAC;IACpB,UAAU,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,KAAK,CAAC,YAAY,CAAC;IACtE,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,KAAK,CAAC,YAAY,CAAC;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC,CAAC;AAEP;;;GAGG;AACH,eAAO,MAAM,cAAc,gJAqC1B,CAAC"}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
// (C) 2024 GoodData Corporation
|
2
|
+
import * as React from "react";
|
3
|
+
import { useTheme } from "@gooddata/sdk-ui-theme-provider";
|
4
|
+
import classnames from "classnames";
|
5
|
+
/**
|
6
|
+
* A single result item in the search results.
|
7
|
+
* @internal
|
8
|
+
*/
|
9
|
+
export const SearchListItem = ({ listItem, isActive, setActive, onSelect, renderIcon, renderDetails, className, children, }) => {
|
10
|
+
const theme = useTheme();
|
11
|
+
const onPointerOver = () => setActive(listItem);
|
12
|
+
const onClick = (e) => {
|
13
|
+
if (e.button < 2) {
|
14
|
+
// Only report left and middle clicks
|
15
|
+
onSelect(listItem, e.nativeEvent);
|
16
|
+
}
|
17
|
+
};
|
18
|
+
const Tag = listItem.url ? "a" : "span";
|
19
|
+
const wrapperClassName = classnames(className, {
|
20
|
+
"gd-semantic-search__results-item": true,
|
21
|
+
"gd-semantic-search__results-item--active": isActive,
|
22
|
+
});
|
23
|
+
return (React.createElement(Tag, { href: listItem.url, className: wrapperClassName, onPointerOver: onPointerOver, onClick: onClick, onAuxClick: onClick },
|
24
|
+
React.createElement("span", { className: "gd-semantic-search__results-item__icon" }, renderIcon(listItem, theme)),
|
25
|
+
React.createElement("span", { className: "gd-semantic-search__results-item__text" }, children),
|
26
|
+
renderDetails && isActive ? renderDetails(listItem, theme) : null));
|
27
|
+
};
|
28
|
+
//# sourceMappingURL=SearchListItem.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"SearchListItem.js","sourceRoot":"","sources":["../src/SearchListItem.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAE3D,OAAO,UAAU,MAAM,YAAY,CAAC;AASpC;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAK,EAC/B,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,UAAU,EACV,aAAa,EACb,SAAS,EACT,QAAQ,GACa,EAAE,EAAE;IACzB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,CAAC,CAAmB,EAAE,EAAE;QACpC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACf,qCAAqC;YACrC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;QACtC,CAAC;IACL,CAAC,CAAC;IACF,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;IACxC,MAAM,gBAAgB,GAAG,UAAU,CAAC,SAAS,EAAE;QAC3C,kCAAkC,EAAE,IAAI;QACxC,0CAA0C,EAAE,QAAQ;KACvD,CAAC,CAAC;IAEH,OAAO,CACH,oBAAC,GAAG,IACA,IAAI,EAAE,QAAQ,CAAC,GAAG,EAClB,SAAS,EAAE,gBAAgB,EAC3B,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,OAAO;QAEnB,8BAAM,SAAS,EAAC,wCAAwC,IAAE,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAQ;QAC7F,8BAAM,SAAS,EAAC,wCAAwC,IAAE,QAAQ,CAAQ;QACzE,aAAa,IAAI,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAChE,CACT,CAAC;AACN,CAAC,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SemanticSearch.d.ts","sourceRoot":"","sources":["../src/SemanticSearch.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAIzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;
|
1
|
+
{"version":3,"file":"SemanticSearch.d.ts","sourceRoot":"","sources":["../src/SemanticSearch.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAIzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAI/D;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAC9B;;OAEG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,QAAQ,EAAE,CAAC,IAAI,EAAE,yBAAyB,KAAK,IAAI,CAAC;IACpD;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,WAAW,CAAC,EAAE,uBAAuB,EAAE,CAAC;IACxC;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AA2GF;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAMxD,CAAC"}
|
package/esm/SemanticSearch.js
CHANGED
@@ -3,9 +3,8 @@ import * as React from "react";
|
|
3
3
|
import { useDebouncedState, Input, Dropdown } from "@gooddata/sdk-ui-kit";
|
4
4
|
import { IntlWrapper } from "@gooddata/sdk-ui";
|
5
5
|
import { SearchResultsDropdownList } from "./SearchResultsDropdownList.js";
|
6
|
-
import { useSemanticSearch } from "./hooks/index.js";
|
6
|
+
import { useSemanticSearch, useElementWidth } from "./hooks/index.js";
|
7
7
|
import classnames from "classnames";
|
8
|
-
import { useElementWidth } from "./hooks/useElementWidth.js";
|
9
8
|
/**
|
10
9
|
* Search input debounce time.
|
11
10
|
* I.e. how long to wait after the user stops typing before sending the search request.
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SemanticSearch.js","sourceRoot":"","sources":["../src/SemanticSearch.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE1E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;
|
1
|
+
{"version":3,"file":"SemanticSearch.js","sourceRoot":"","sources":["../src/SemanticSearch.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,43 @@
|
|
1
|
+
import { GenAISemanticSearchType, ISemanticSearchResultItem } from "@gooddata/sdk-model";
|
2
|
+
/**
|
3
|
+
* A conclusion of a single search action by the user.
|
4
|
+
* Used to collect usage metrics.
|
5
|
+
* @internal
|
6
|
+
*/
|
7
|
+
export type ISearchMetrics = {
|
8
|
+
/**
|
9
|
+
* The last search term.
|
10
|
+
*/
|
11
|
+
lastSearchTerm: string;
|
12
|
+
/**
|
13
|
+
* Number of times the search feed was triggered.
|
14
|
+
*/
|
15
|
+
searchCount: number;
|
16
|
+
/**
|
17
|
+
* A title of the selected item, if any.
|
18
|
+
* Null means the search was closed without selecting an item.
|
19
|
+
*/
|
20
|
+
selectedItemTitle: string | null;
|
21
|
+
/**
|
22
|
+
* The type of the selected item, if any.
|
23
|
+
* Null means the search was closed without selecting an item.
|
24
|
+
*/
|
25
|
+
selectedItemType: GenAISemanticSearchType | null;
|
26
|
+
};
|
27
|
+
export type UseSearchMetricsCallback = (metricsData: ISearchMetrics) => void;
|
28
|
+
export type UseSearchMetricsReturn = {
|
29
|
+
onCloseMetrics: () => void;
|
30
|
+
onSelectMetrics: (item: ISemanticSearchResultItem) => void;
|
31
|
+
onSearchMetrics: (searchTerm: string) => void;
|
32
|
+
};
|
33
|
+
/**
|
34
|
+
* A hook that helps to collect usage metrics for the search overlay.
|
35
|
+
* Reporting is done on a search transaction, i.e.:
|
36
|
+
* - open + close (= report transaction)
|
37
|
+
* - open + type + close (= report transaction)
|
38
|
+
* - open + type + select (= report transaction)
|
39
|
+
* - open + type + select (= report transaction) + type + close (= report transaction)
|
40
|
+
* @internal
|
41
|
+
*/
|
42
|
+
export declare const useSearchMetrics: (callback?: UseSearchMetricsCallback) => UseSearchMetricsReturn;
|
43
|
+
//# sourceMappingURL=useSearchMetrics.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useSearchMetrics.d.ts","sourceRoot":"","sources":["../../src/hooks/useSearchMetrics.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAEzF;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG;IACzB;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC;;;OAGG;IACH,gBAAgB,EAAE,uBAAuB,GAAG,IAAI,CAAC;CACpD,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,CAAC,WAAW,EAAE,cAAc,KAAK,IAAI,CAAC;AAE7E,MAAM,MAAM,sBAAsB,GAAG;IACjC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,eAAe,EAAE,CAAC,IAAI,EAAE,yBAAyB,KAAK,IAAI,CAAC;IAC3D,eAAe,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;CACjD,CAAC;AAiBF;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,cAAe,wBAAwB,KAAG,sBA+DtE,CAAC"}
|
@@ -0,0 +1,75 @@
|
|
1
|
+
// (C) 2024 GoodData Corporation
|
2
|
+
import * as React from "react";
|
3
|
+
const defaultOnSearchMetrics = {
|
4
|
+
state: {
|
5
|
+
lastSearchTerm: "",
|
6
|
+
searchCount: 0,
|
7
|
+
selectedItemTitle: null,
|
8
|
+
selectedItemType: null,
|
9
|
+
},
|
10
|
+
reported: false,
|
11
|
+
};
|
12
|
+
/**
|
13
|
+
* A hook that helps to collect usage metrics for the search overlay.
|
14
|
+
* Reporting is done on a search transaction, i.e.:
|
15
|
+
* - open + close (= report transaction)
|
16
|
+
* - open + type + close (= report transaction)
|
17
|
+
* - open + type + select (= report transaction)
|
18
|
+
* - open + type + select (= report transaction) + type + close (= report transaction)
|
19
|
+
* @internal
|
20
|
+
*/
|
21
|
+
export const useSearchMetrics = (callback) => {
|
22
|
+
// Use ref because we don't want to cause redraw with the new metrics data
|
23
|
+
const searchMetricsRef = React.useRef(defaultOnSearchMetrics);
|
24
|
+
// Callback will be called when the search is closed
|
25
|
+
const onCloseMetrics = React.useCallback(() => {
|
26
|
+
// Do not report the metrics if it was already reported
|
27
|
+
// i.e. by onSelect callback
|
28
|
+
if (searchMetricsRef.current.reported)
|
29
|
+
return;
|
30
|
+
// Calling callback with null values
|
31
|
+
callback?.({
|
32
|
+
...searchMetricsRef.current.state,
|
33
|
+
selectedItemTitle: null,
|
34
|
+
selectedItemType: null,
|
35
|
+
});
|
36
|
+
// Flush the metrics data
|
37
|
+
searchMetricsRef.current = defaultOnSearchMetrics;
|
38
|
+
}, [callback]);
|
39
|
+
// Callback will be called when the user selects an item
|
40
|
+
const onSelectMetrics = React.useCallback((item) => {
|
41
|
+
// Report the metrics
|
42
|
+
callback?.({
|
43
|
+
...searchMetricsRef.current.state,
|
44
|
+
selectedItemTitle: item.title,
|
45
|
+
selectedItemType: item.type,
|
46
|
+
});
|
47
|
+
// Mark the metrics as reported
|
48
|
+
// Do not flush the metric data, because user might select several items in sequence
|
49
|
+
// e.g. when cmd+click and open it in a new tab
|
50
|
+
searchMetricsRef.current.reported = true;
|
51
|
+
}, [callback]);
|
52
|
+
// Callback will be called when the user types in the search input
|
53
|
+
const onSearchMetrics = React.useCallback((searchTerm) => {
|
54
|
+
const { searchCount, lastSearchTerm } = searchMetricsRef.current.state;
|
55
|
+
// We do not want to count the case when the user continues to type the same search term
|
56
|
+
const shouldIncrement = !(lastSearchTerm === ""
|
57
|
+
? searchTerm === ""
|
58
|
+
: searchTerm.startsWith(lastSearchTerm));
|
59
|
+
// Also reset reported flag to catch type -> select -> type -> close sequence
|
60
|
+
searchMetricsRef.current = {
|
61
|
+
state: {
|
62
|
+
...searchMetricsRef.current.state,
|
63
|
+
lastSearchTerm: searchTerm,
|
64
|
+
searchCount: shouldIncrement ? searchCount + 1 : searchCount,
|
65
|
+
},
|
66
|
+
reported: false,
|
67
|
+
};
|
68
|
+
}, []);
|
69
|
+
return {
|
70
|
+
onCloseMetrics,
|
71
|
+
onSelectMetrics,
|
72
|
+
onSearchMetrics,
|
73
|
+
};
|
74
|
+
};
|
75
|
+
//# sourceMappingURL=useSearchMetrics.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useSearchMetrics.js","sourceRoot":"","sources":["../../src/hooks/useSearchMetrics.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA0C/B,MAAM,sBAAsB,GAAsB;IAC9C,KAAK,EAAE;QACH,cAAc,EAAE,EAAE;QAClB,WAAW,EAAE,CAAC;QACd,iBAAiB,EAAE,IAAI;QACvB,gBAAgB,EAAE,IAAI;KACzB;IACD,QAAQ,EAAE,KAAK;CAClB,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAAmC,EAA0B,EAAE;IAC5F,0EAA0E;IAC1E,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAoB,sBAAsB,CAAC,CAAC;IAEjF,oDAAoD;IACpD,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC1C,uDAAuD;QACvD,4BAA4B;QAC5B,IAAI,gBAAgB,CAAC,OAAO,CAAC,QAAQ;YAAE,OAAO;QAE9C,oCAAoC;QACpC,QAAQ,EAAE,CAAC;YACP,GAAG,gBAAgB,CAAC,OAAO,CAAC,KAAK;YACjC,iBAAiB,EAAE,IAAI;YACvB,gBAAgB,EAAE,IAAI;SACzB,CAAC,CAAC;QAEH,yBAAyB;QACzB,gBAAgB,CAAC,OAAO,GAAG,sBAAsB,CAAC;IACtD,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,wDAAwD;IACxD,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CACrC,CAAC,IAA+B,EAAE,EAAE;QAChC,qBAAqB;QACrB,QAAQ,EAAE,CAAC;YACP,GAAG,gBAAgB,CAAC,OAAO,CAAC,KAAK;YACjC,iBAAiB,EAAE,IAAI,CAAC,KAAK;YAC7B,gBAAgB,EAAE,IAAI,CAAC,IAAI;SAC9B,CAAC,CAAC;QACH,+BAA+B;QAC/B,oFAAoF;QACpF,+CAA+C;QAC/C,gBAAgB,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC7C,CAAC,EACD,CAAC,QAAQ,CAAC,CACb,CAAC;IAEF,kEAAkE;IAClE,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,UAAkB,EAAE,EAAE;QAC7D,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC;QAEvE,wFAAwF;QACxF,MAAM,eAAe,GAAG,CAAC,CAAC,cAAc,KAAK,EAAE;YAC3C,CAAC,CAAC,UAAU,KAAK,EAAE;YACnB,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;QAE7C,6EAA6E;QAC7E,gBAAgB,CAAC,OAAO,GAAG;YACvB,KAAK,EAAE;gBACH,GAAG,gBAAgB,CAAC,OAAO,CAAC,KAAK;gBACjC,cAAc,EAAE,UAAU;gBAC1B,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW;aAC/D;YACD,QAAQ,EAAE,KAAK;SAClB,CAAC;IACN,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACH,cAAc;QACd,eAAe;QACf,eAAe;KAClB,CAAC;AACN,CAAC,CAAC"}
|
@@ -1,5 +1,9 @@
|
|
1
1
|
import * as React from "react";
|
2
2
|
import { ISemanticSearchResultItem } from "@gooddata/sdk-model";
|
3
3
|
import { ListItemProps } from "../types.js";
|
4
|
+
/**
|
5
|
+
* A single result item in the search results.
|
6
|
+
* @internal
|
7
|
+
*/
|
4
8
|
export declare const AnnotatedResultsItem: React.NamedExoticComponent<ListItemProps<ISemanticSearchResultItem>>;
|
5
9
|
//# sourceMappingURL=AnnotatedResultsItem.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"AnnotatedResultsItem.d.ts","sourceRoot":"","sources":["../../src/internal/AnnotatedResultsItem.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;
|
1
|
+
{"version":3,"file":"AnnotatedResultsItem.d.ts","sourceRoot":"","sources":["../../src/internal/AnnotatedResultsItem.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAiC5C;;;GAGG;AACH,eAAO,MAAM,oBAAoB,sEAAuC,CAAC"}
|
@@ -1,33 +1,25 @@
|
|
1
1
|
// (C) 2024 GoodData Corporation
|
2
2
|
import * as React from "react";
|
3
|
-
import { useTheme } from "@gooddata/sdk-ui-theme-provider";
|
4
|
-
import classnames from "classnames";
|
5
3
|
import { renderDetails } from "../utils/renderDetails.js";
|
6
4
|
import { renderItemIcon } from "../utils/renderItemIcon.js";
|
7
5
|
import { UpdatedDate } from "./UpdateDate.js";
|
8
|
-
import { renderLock } from "../utils/
|
6
|
+
import { renderLock } from "../utils/renderLock.js";
|
7
|
+
import { SearchListItem } from "../SearchListItem.js";
|
8
|
+
const CoreAnnotatedResultsItem = (props) => {
|
9
|
+
const { listItem } = props;
|
10
|
+
const lockIcon = renderLock(listItem);
|
11
|
+
return (React.createElement(SearchListItem, { ...props, renderIcon: renderItemIcon, renderDetails: renderDetails },
|
12
|
+
React.createElement("span", { className: "gd-semantic-search__results-item__text__row" },
|
13
|
+
lockIcon,
|
14
|
+
React.createElement("span", { className: "gd-semantic-search__results-item__text__ellipsis" }, listItem.item.title)),
|
15
|
+
React.createElement("span", { className: "gd-semantic-search__results-item__text__row" },
|
16
|
+
listItem.parentRef ? (React.createElement("span", { className: "gd-semantic-search__results-item__text__ellipsis" }, listItem.parentRef.sourceObjectTitle)) : null,
|
17
|
+
React.createElement("span", null,
|
18
|
+
React.createElement(UpdatedDate, { listItem: listItem })))));
|
19
|
+
};
|
9
20
|
/**
|
10
21
|
* A single result item in the search results.
|
11
22
|
* @internal
|
12
23
|
*/
|
13
|
-
const CoreAnnotatedResultsItem = ({ listItem, isActive, setActive, onSelect, }) => {
|
14
|
-
const theme = useTheme();
|
15
|
-
const Tag = listItem.url ? "a" : "span";
|
16
|
-
// Use mouse enter with the target check instead of hover to prevent multiple triggers
|
17
|
-
return (React.createElement(Tag, { href: listItem.url, className: classnames({
|
18
|
-
"gd-semantic-search__results-item": true,
|
19
|
-
"gd-semantic-search__results-item--active": isActive,
|
20
|
-
}), onPointerOver: () => setActive(listItem), onClick: (e) => onSelect(listItem, e.nativeEvent) },
|
21
|
-
React.createElement("span", { className: "gd-semantic-search__results-item__icon" }, renderItemIcon(listItem, { color: theme?.palette?.complementary?.c5 ?? "#B0BECA" })),
|
22
|
-
React.createElement("span", { className: "gd-semantic-search__results-item__text gd-semantic-search__results-item__text--result" },
|
23
|
-
React.createElement("span", { className: "gd-semantic-search__results-item__text__1" },
|
24
|
-
renderLock(listItem),
|
25
|
-
listItem.item.title),
|
26
|
-
React.createElement("span", { className: "gd-semantic-search__results-item__text__2" },
|
27
|
-
listItem.parentRef ? (React.createElement("span", { className: "gd-semantic-search__results-item__annotation" }, listItem.parentRef.sourceObjectTitle)) : null,
|
28
|
-
React.createElement("span", { className: "gd-semantic-search__results-item__annotation" },
|
29
|
-
React.createElement(UpdatedDate, { listItem: listItem })))),
|
30
|
-
isActive ? renderDetails(listItem, theme) : null));
|
31
|
-
};
|
32
24
|
export const AnnotatedResultsItem = React.memo(CoreAnnotatedResultsItem);
|
33
25
|
//# sourceMappingURL=AnnotatedResultsItem.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"AnnotatedResultsItem.js","sourceRoot":"","sources":["../../src/internal/AnnotatedResultsItem.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
1
|
+
{"version":3,"file":"AnnotatedResultsItem.js","sourceRoot":"","sources":["../../src/internal/AnnotatedResultsItem.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,wBAAwB,GAAuD,CAAC,KAAK,EAAE,EAAE;IAC3F,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC3B,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAEtC,OAAO,CACH,oBAAC,cAAc,OAAK,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa;QAC/E,8BAAM,SAAS,EAAC,6CAA6C;YACxD,QAAQ;YACT,8BAAM,SAAS,EAAC,kDAAkD,IAC7D,QAAQ,CAAC,IAAI,CAAC,KAAK,CACjB,CACJ;QACP,8BAAM,SAAS,EAAC,6CAA6C;YACxD,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAClB,8BAAM,SAAS,EAAC,kDAAkD,IAC7D,QAAQ,CAAC,SAAS,CAAC,iBAAiB,CAClC,CACV,CAAC,CAAC,CAAC,IAAI;YACR;gBACI,oBAAC,WAAW,IAAC,QAAQ,EAAE,QAAQ,GAAI,CAChC,CACJ,CACM,CACpB,CAAC;AACN,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"HistoryItem.d.ts","sourceRoot":"","sources":["../../src/internal/HistoryItem.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
1
|
+
{"version":3,"file":"HistoryItem.d.ts","sourceRoot":"","sources":["../../src/internal/HistoryItem.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAQ5C;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAcvD,CAAC"}
|
@@ -1,21 +1,15 @@
|
|
1
1
|
// (C) 2024 GoodData Corporation
|
2
2
|
import * as React from "react";
|
3
3
|
import { Icon } from "@gooddata/sdk-ui-kit";
|
4
|
-
import {
|
5
|
-
|
4
|
+
import { SearchListItem } from "../SearchListItem.js";
|
5
|
+
const renderIcon = (_, theme) => (React.createElement(Icon.HistoryBack, { color: theme?.palette?.complementary?.c5 ?? "#B0BECA" }));
|
6
6
|
/**
|
7
|
-
* A single
|
7
|
+
* A single history item.
|
8
8
|
* @internal
|
9
9
|
*/
|
10
|
-
export const HistoryItem = (
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
"gd-semantic-search__results-item": true,
|
15
|
-
"gd-semantic-search__results-item--active": isActive,
|
16
|
-
}), onPointerOver: () => setActive(listItem), onClick: (e) => onSelect(listItem, e.nativeEvent) },
|
17
|
-
React.createElement("span", { className: "gd-semantic-search__results-item__icon gd-semantic-search__results-item__icon--history" },
|
18
|
-
React.createElement(Icon.HistoryBack, { color: theme?.palette?.complementary?.c5 ?? "#B0BECA" })),
|
19
|
-
React.createElement("span", { className: "gd-semantic-search__results-item__text gd-semantic-search__results-item__text--history" }, listItem.item)));
|
10
|
+
export const HistoryItem = (props) => {
|
11
|
+
return (React.createElement(SearchListItem, { ...props, renderIcon: renderIcon, className: "gd-semantic-search__results-item--history" },
|
12
|
+
React.createElement("span", { className: "gd-semantic-search__results-item__text__row" },
|
13
|
+
React.createElement("span", { className: "gd-semantic-search__results-item__text__ellipsis" }, props.listItem.item))));
|
20
14
|
};
|
21
15
|
//# sourceMappingURL=HistoryItem.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"HistoryItem.js","sourceRoot":"","sources":["../../src/internal/HistoryItem.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;
|
1
|
+
{"version":3,"file":"HistoryItem.js","sourceRoot":"","sources":["../../src/internal/HistoryItem.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,MAAM,UAAU,GAAG,CAAC,CAAM,EAAE,KAAc,EAAE,EAAE,CAAC,CAC3C,oBAAC,IAAI,CAAC,WAAW,IAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,IAAI,SAAS,GAAI,CAC9E,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAoC,CAAC,KAAK,EAAE,EAAE;IAClE,OAAO,CACH,oBAAC,cAAc,OACP,KAAK,EACT,UAAU,EAAE,UAAU,EACtB,SAAS,EAAC,2CAA2C;QAErD,8BAAM,SAAS,EAAC,6CAA6C;YACzD,8BAAM,SAAS,EAAC,kDAAkD,IAC7D,KAAK,CAAC,QAAQ,CAAC,IAAI,CACjB,CACJ,CACM,CACpB,CAAC;AACN,CAAC,CAAC"}
|
@@ -1,16 +1,25 @@
|
|
1
1
|
import * as React from "react";
|
2
|
-
import { WrappedComponentProps } from "react-intl";
|
3
2
|
import { GenAISemanticSearchType, ISemanticSearchResultItem } from "@gooddata/sdk-model";
|
4
3
|
import { IAnalyticalBackend } from "@gooddata/sdk-backend-spi";
|
4
|
+
export type SearchOnSelect = {
|
5
|
+
item: ISemanticSearchResultItem;
|
6
|
+
preventDefault: () => void;
|
7
|
+
itemUrl?: string;
|
8
|
+
newTab?: boolean;
|
9
|
+
};
|
5
10
|
/**
|
6
11
|
* Props for the SemanticSearchOverlay component.
|
7
12
|
* @internal
|
8
13
|
*/
|
9
|
-
export type SearchOverlayProps =
|
14
|
+
export type SearchOverlayProps = {
|
10
15
|
/**
|
11
16
|
* A function called when the user selects an item from the search results.
|
12
17
|
*/
|
13
|
-
onSelect: (
|
18
|
+
onSelect: (selection: SearchOnSelect) => void;
|
19
|
+
/**
|
20
|
+
* A function called when the search request is triggered.
|
21
|
+
*/
|
22
|
+
onSearch?: (query: string) => void;
|
14
23
|
/**
|
15
24
|
* An analytical backend to use for the search. Can be omitted and taken from context.
|
16
25
|
*/
|
@@ -35,6 +44,14 @@ export type SearchOverlayProps = WrappedComponentProps & {
|
|
35
44
|
* Additional CSS class for the component.
|
36
45
|
*/
|
37
46
|
className?: string;
|
47
|
+
/**
|
48
|
+
* Locale to use for translations.
|
49
|
+
*/
|
50
|
+
locale?: string;
|
51
|
+
/**
|
52
|
+
* Timezone in which metadata created and updated dates are saved.
|
53
|
+
*/
|
54
|
+
metadataTimezone?: string;
|
38
55
|
};
|
39
56
|
/**
|
40
57
|
* A component that allows users to search for insights, metrics, attributes, and other objects using semantic search.
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SearchOverlay.d.ts","sourceRoot":"","sources":["../../src/internal/SearchOverlay.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
1
|
+
{"version":3,"file":"SearchOverlay.d.ts","sourceRoot":"","sources":["../../src/internal/SearchOverlay.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAgC/D,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,EAAE,yBAAyB,CAAC;IAChC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC7B;;OAEG;IACH,QAAQ,EAAE,CAAC,SAAS,EAAE,cAAc,KAAK,IAAI,CAAC;IAC9C;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC;;OAEG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,WAAW,CAAC,EAAE,uBAAuB,EAAE,CAAC;IACxC;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AA4KF;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAQtD,CAAC"}
|
@@ -1,14 +1,15 @@
|
|
1
1
|
// (C) 2024 GoodData Corporation
|
2
2
|
import * as React from "react";
|
3
3
|
import classnames from "classnames";
|
4
|
-
import { FormattedMessage } from "react-intl";
|
4
|
+
import { FormattedMessage, injectIntl } from "react-intl";
|
5
5
|
import { Input, LoadingMask, Message, useDebouncedState } from "@gooddata/sdk-ui-kit";
|
6
|
-
import { useWorkspaceStrict, useLocalStorage } from "@gooddata/sdk-ui";
|
6
|
+
import { useWorkspaceStrict, useLocalStorage, IntlWrapper } from "@gooddata/sdk-ui";
|
7
7
|
import { useSemanticSearch, useElementWidth } from "../hooks/index.js";
|
8
8
|
import { getUIPath } from "../utils/getUIPath.js";
|
9
9
|
import { SearchList } from "./SearchList.js";
|
10
10
|
import { HistoryItem } from "./HistoryItem.js";
|
11
11
|
import { AnnotatedResultsItem } from "./AnnotatedResultsItem.js";
|
12
|
+
import { MetadataTimezoneProvider } from "./metadataTimezoneContext.js";
|
12
13
|
/**
|
13
14
|
* A time in milliseconds to wait before sending a search request after the user stops typing.
|
14
15
|
*/
|
@@ -30,11 +31,9 @@ const SEARCH_HISTORY_KEY = "gd-semantic-search-history";
|
|
30
31
|
*/
|
31
32
|
const SEARCH_HISTORY_EMPTY = [];
|
32
33
|
/**
|
33
|
-
*
|
34
|
-
* The internal version is meant to be used in an overlay inside the Header.
|
35
|
-
* @internal
|
34
|
+
* Core implementation of the SemanticSearchOverlay component.
|
36
35
|
*/
|
37
|
-
|
36
|
+
const SearchOverlayCore = ({ onSelect, onSearch, backend, workspace, objectTypes, deepSearch, limit = 6, className, intl }) => {
|
38
37
|
// Input value handling
|
39
38
|
const [value, setValue, searchTerm, setImmediate] = useDebouncedState("", DEBOUNCE);
|
40
39
|
// Search results
|
@@ -47,6 +46,10 @@ export const SearchOverlay = ({ onSelect, backend, workspace, objectTypes, deepS
|
|
47
46
|
deepSearch,
|
48
47
|
limit,
|
49
48
|
});
|
49
|
+
// Report metrics
|
50
|
+
React.useEffect(() => {
|
51
|
+
onSearch?.(searchTerm);
|
52
|
+
}, [onSearch, searchTerm]);
|
50
53
|
// Results wrapped into ListItems
|
51
54
|
const searchResultsItems = React.useMemo(() => searchResults.flatMap((item) => {
|
52
55
|
// Look up parent items if available
|
@@ -71,19 +74,22 @@ export const SearchOverlay = ({ onSelect, backend, workspace, objectTypes, deepS
|
|
71
74
|
const [searchHistory, setSearchHistory] = useLocalStorage(SEARCH_HISTORY_KEY, SEARCH_HISTORY_EMPTY);
|
72
75
|
const onResultSelect = React.useCallback((item, e) => {
|
73
76
|
setSearchHistory([...new Set([searchTerm, ...searchHistory])].slice(0, MAX_SEARCH_HISTORY_LENGTH));
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
77
|
+
const newTab = e.ctrlKey || e.metaKey || e.button === 1;
|
78
|
+
// Call the onSelect callback
|
79
|
+
onSelect({
|
80
|
+
item: item.item,
|
81
|
+
preventDefault: e.preventDefault.bind(e),
|
82
|
+
itemUrl: item.url,
|
83
|
+
newTab,
|
84
|
+
});
|
85
|
+
// If the default was not prevented - simulate browser navigation for keyboard event
|
86
|
+
if (item.url && !e.defaultPrevented && e instanceof KeyboardEvent) {
|
87
|
+
if (newTab) {
|
78
88
|
window.open(item.url, "_blank");
|
79
89
|
}
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
onSelect(item.item, e, item.url);
|
84
|
-
// If the default was not prevented - simulate browser navigation
|
85
|
-
if (item.url && e instanceof KeyboardEvent && !e.defaultPrevented) {
|
86
|
-
window.location.href = item.url;
|
90
|
+
else {
|
91
|
+
window.location.href = item.url;
|
92
|
+
}
|
87
93
|
}
|
88
94
|
}, [searchTerm, searchHistory, onSelect, setSearchHistory]);
|
89
95
|
const onHistorySelect = (item) => setImmediate(item.item);
|
@@ -125,4 +131,18 @@ export const SearchOverlay = ({ onSelect, backend, workspace, objectTypes, deepS
|
|
125
131
|
}
|
126
132
|
})()));
|
127
133
|
};
|
134
|
+
/**
|
135
|
+
* Inject `intl` prop to the component.
|
136
|
+
*/
|
137
|
+
const SearchOverlayWithIntl = injectIntl(SearchOverlayCore);
|
138
|
+
/**
|
139
|
+
* A component that allows users to search for insights, metrics, attributes, and other objects using semantic search.
|
140
|
+
* The internal version is meant to be used in an overlay inside the Header.
|
141
|
+
* @internal
|
142
|
+
*/
|
143
|
+
export const SearchOverlay = ({ locale, metadataTimezone, ...props }) => {
|
144
|
+
return (React.createElement(MetadataTimezoneProvider, { value: metadataTimezone },
|
145
|
+
React.createElement(IntlWrapper, { locale: locale },
|
146
|
+
React.createElement(SearchOverlayWithIntl, { ...props }))));
|
147
|
+
};
|
128
148
|
//# sourceMappingURL=SearchOverlay.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SearchOverlay.js","sourceRoot":"","sources":["../../src/internal/SearchOverlay.tsx"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAyB,MAAM,YAAY,CAAC;
|
1
|
+
{"version":3,"file":"SearchOverlay.js","sourceRoot":"","sources":["../../src/internal/SearchOverlay.tsx"],"names":[],"mappings":"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"}
|
package/esm/internal.d.ts
CHANGED
@@ -4,6 +4,6 @@
|
|
4
4
|
* @packageDocumentation
|
5
5
|
* @internal
|
6
6
|
*/
|
7
|
-
export * from "./internal/
|
8
|
-
export * from "./
|
7
|
+
export * from "./internal/SearchOverlay.js";
|
8
|
+
export * from "./hooks/useSearchMetrics.js";
|
9
9
|
//# sourceMappingURL=internal.d.ts.map
|
package/esm/internal.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,cAAc,
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC"}
|
package/esm/internal.js
CHANGED
@@ -5,6 +5,6 @@
|
|
5
5
|
* @packageDocumentation
|
6
6
|
* @internal
|
7
7
|
*/
|
8
|
-
export * from "./internal/
|
9
|
-
export * from "./
|
8
|
+
export * from "./internal/SearchOverlay.js";
|
9
|
+
export * from "./hooks/useSearchMetrics.js";
|
10
10
|
//# sourceMappingURL=internal.js.map
|
package/esm/internal.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC;;;;;GAKG;AAEH,cAAc,
|
1
|
+
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC;;;;;GAKG;AAEH,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC"}
|