@gooddata/sdk-ui-gen-ai 11.53.0-alpha.5 → 11.53.0-alpha.6
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/components/ConfigContext.d.ts.map +1 -1
- package/esm/components/ConfigContext.js +8 -15
- package/esm/components/GenAIChat.d.ts.map +1 -1
- package/esm/components/GenAIChat.js +3 -4
- package/esm/components/GenAiChatContextChooser.d.ts.map +1 -1
- package/esm/components/GenAiChatContextChooser.js +4 -3
- package/esm/components/GenAiChatContextChooserBody.d.ts +3 -1
- package/esm/components/GenAiChatContextChooserBody.d.ts.map +1 -1
- package/esm/components/GenAiChatContextChooserBody.js +19 -20
- package/esm/components/GenAiStore.d.ts.map +1 -1
- package/esm/components/GenAiStore.js +18 -2
- package/esm/components/hooks/useContextItems.d.ts +2 -0
- package/esm/components/hooks/useContextItems.d.ts.map +1 -1
- package/esm/components/hooks/useContextItems.js +25 -7
- package/esm/store/chatWindow/chatWindowSelectors.d.ts +1 -0
- package/esm/store/chatWindow/chatWindowSelectors.d.ts.map +1 -1
- package/esm/store/chatWindow/chatWindowSelectors.js +1 -0
- package/esm/store/chatWindow/chatWindowSlice.d.ts +7 -1
- package/esm/store/chatWindow/chatWindowSlice.d.ts.map +1 -1
- package/esm/store/chatWindow/chatWindowSlice.js +14 -2
- package/esm/store/options.d.ts +2 -0
- package/esm/store/options.d.ts.map +1 -1
- package/esm/store/options.js +16 -1
- package/esm/store/sideEffects/index.d.ts.map +1 -1
- package/esm/store/sideEffects/index.js +3 -2
- package/esm/store/sideEffects/loadContextObjects.d.ts +7 -0
- package/esm/store/sideEffects/loadContextObjects.d.ts.map +1 -1
- package/esm/store/sideEffects/loadContextObjects.js +26 -8
- package/esm/store/store.d.ts +10 -1
- package/esm/store/store.d.ts.map +1 -1
- package/esm/store/store.js +2 -0
- package/esm/types.d.ts +1 -0
- package/esm/types.d.ts.map +1 -1
- package/package.json +20 -20
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigContext.d.ts","sourceRoot":"","sources":["../../src/components/ConfigContext.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,iBAAiB,EAAsC,MAAM,OAAO,CAAC;AAEnF,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,KAAK,UAAU,EAAE,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE7G,MAAM,MAAM,aAAa,GAAG;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,CAAC,cAAc,EAAE,gBAAgB,KAAK,MAAM,GAAG,SAAS,CAAC;IACvE,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;CAChC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC3B,IAAI,EAAE,SAAS,GAAG,eAAe,CAAC;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IACpC,aAAa,CAAC,EAAE,QAAQ,CAAC;IACzB,mBAAmB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CAC3C,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,YAAY,CAAC;AAIzD,wBAAgB,cAAc,CAAC,EAC3B,QAAQ,EACR,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,SAAS,EACT,UAAU,EACV,cAAc,EACjB,EAAE,iBAAiB,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"ConfigContext.d.ts","sourceRoot":"","sources":["../../src/components/ConfigContext.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,iBAAiB,EAAsC,MAAM,OAAO,CAAC;AAEnF,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,KAAK,UAAU,EAAE,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE7G,MAAM,MAAM,aAAa,GAAG;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,CAAC,cAAc,EAAE,gBAAgB,KAAK,MAAM,GAAG,SAAS,CAAC;IACvE,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;CAChC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC3B,IAAI,EAAE,SAAS,GAAG,eAAe,CAAC;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IACpC,aAAa,CAAC,EAAE,QAAQ,CAAC;IACzB,mBAAmB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CAC3C,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,YAAY,CAAC;AAIzD,wBAAgB,cAAc,CAAC,EAC3B,QAAQ,EACR,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,SAAS,EACT,UAAU,EACV,cAAc,EACjB,EAAE,iBAAiB,CAAC,aAAa,CAAC,2CAsBlC;AAED,eAAO,MAAM,SAAS,qBAErB,CAAC"}
|
|
@@ -6,25 +6,18 @@ export function ConfigProvider({ children, allowNativeLinks, linkHandler, catalo
|
|
|
6
6
|
const parentConfig = useConfig();
|
|
7
7
|
const value = useMemo(() => ({
|
|
8
8
|
allowNativeLinks: allowNativeLinks ?? parentConfig.allowNativeLinks,
|
|
9
|
-
linkHandler: linkHandler
|
|
9
|
+
linkHandler: linkHandler
|
|
10
|
+
? (event) => {
|
|
11
|
+
const resultParent = parentConfig.linkHandler?.(event);
|
|
12
|
+
const resultCurrent = linkHandler?.(event);
|
|
13
|
+
return resultCurrent ?? resultParent;
|
|
14
|
+
}
|
|
15
|
+
: parentConfig.linkHandler,
|
|
10
16
|
catalogItems: catalogItems ?? parentConfig.catalogItems,
|
|
11
17
|
canManage: canManage ?? parentConfig.canManage,
|
|
12
18
|
canAnalyze: canAnalyze ?? parentConfig.canAnalyze,
|
|
13
19
|
canFullControl: canFullControl ?? parentConfig.canFullControl,
|
|
14
|
-
}), [
|
|
15
|
-
allowNativeLinks,
|
|
16
|
-
parentConfig.allowNativeLinks,
|
|
17
|
-
parentConfig.linkHandler,
|
|
18
|
-
parentConfig.catalogItems,
|
|
19
|
-
parentConfig.canManage,
|
|
20
|
-
parentConfig.canAnalyze,
|
|
21
|
-
parentConfig.canFullControl,
|
|
22
|
-
linkHandler,
|
|
23
|
-
catalogItems,
|
|
24
|
-
canManage,
|
|
25
|
-
canAnalyze,
|
|
26
|
-
canFullControl,
|
|
27
|
-
]);
|
|
20
|
+
}), [allowNativeLinks, parentConfig, linkHandler, catalogItems, canManage, canAnalyze, canFullControl]);
|
|
28
21
|
return _jsx(configContext.Provider, { value: value, children: children });
|
|
29
22
|
}
|
|
30
23
|
export const useConfig = () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenAIChat.d.ts","sourceRoot":"","sources":["../../src/components/GenAIChat.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAQ3C,OAAO,
|
|
1
|
+
{"version":3,"file":"GenAIChat.d.ts","sourceRoot":"","sources":["../../src/components/GenAIChat.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAQ3C,OAAO,EAAkB,KAAK,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGpG,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEnE;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,GAAG;IAClE;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,cAAc,EAAE,gBAAgB,KAAK,MAAM,GAAG,SAAS,CAAC;IAEvE;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;OAEG;IACH,8BAA8B,CAAC,EAAE,MAAM,aAAa,CAAC;IAErD;;OAEG;IACH,2BAA2B,CAAC,EAAE,MAAM,aAAa,GAAG,IAAI,CAAC;IAEzD;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAE1B;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;CACrD,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,mBAAmB,CAAC;AAEjD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,2CAyDxD;AAED;;;;GAIG;AACH,eAAO,MAAM,SAAS,uBAAiB,CAAC"}
|
|
@@ -3,7 +3,7 @@ import { BackendProvider, WorkspaceProvider, useBackendStrict, useWorkspaceStric
|
|
|
3
3
|
import { IntlWrapper } from "../localization/IntlWrapper.js";
|
|
4
4
|
import { PermissionsProvider } from "../permissions/PermissionsContext.js";
|
|
5
5
|
import { usePermissions } from "../permissions/usePermissions.js";
|
|
6
|
-
import { ConfigProvider
|
|
6
|
+
import { ConfigProvider } from "./ConfigContext.js";
|
|
7
7
|
import { CustomizationProvider } from "./CustomizationProvider.js";
|
|
8
8
|
import { GenAIChatWrapper } from "./GenAIChatWrapper.js";
|
|
9
9
|
import { GenAiStore } from "./GenAiStore.js";
|
|
@@ -24,8 +24,7 @@ export function GenAIAssistant(props) {
|
|
|
24
24
|
*/
|
|
25
25
|
export const GenAIChat = GenAIAssistant;
|
|
26
26
|
function GenAIContent(props) {
|
|
27
|
-
const {
|
|
27
|
+
const { LandingScreenComponentProvider, DisclaimerComponentProvider, className, catalogItems } = props;
|
|
28
28
|
const { permissions, loading } = usePermissions();
|
|
29
|
-
|
|
30
|
-
return (_jsx(ConfigProvider, { linkHandler: onLinkClick, catalogItems: catalogItems, allowNativeLinks: allowNativeLinks ?? props.allowNativeLinks, canFullControl: props.disableFullControl ? false : (permissions.canManageProject ?? false), canManage: props.disableManage ? false : (permissions.canManageProject ?? false), canAnalyze: props.disableAnalyze ? false : (permissions.canCreateVisualization ?? false), children: _jsx(CustomizationProvider, { landingScreenComponentProvider: LandingScreenComponentProvider, disclaimerComponentProvider: DisclaimerComponentProvider, children: _jsx(GenAIChatWrapper, { initializing: loading, className: className }) }) }));
|
|
29
|
+
return (_jsx(ConfigProvider, { catalogItems: catalogItems, canFullControl: props.disableFullControl ? false : (permissions.canManageProject ?? false), canManage: props.disableManage ? false : (permissions.canManageProject ?? false), canAnalyze: props.disableAnalyze ? false : (permissions.canCreateVisualization ?? false), children: _jsx(CustomizationProvider, { landingScreenComponentProvider: LandingScreenComponentProvider, disclaimerComponentProvider: DisclaimerComponentProvider, children: _jsx(GenAIChatWrapper, { initializing: loading, className: className }) }) }));
|
|
31
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenAiChatContextChooser.d.ts","sourceRoot":"","sources":["../../src/components/GenAiChatContextChooser.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAWvD,KAAK,+BAA+B,GAAG;IACnC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;CACzD,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,EAAE,YAAY,EAAE,EAAE,+BAA+B,
|
|
1
|
+
{"version":3,"file":"GenAiChatContextChooser.d.ts","sourceRoot":"","sources":["../../src/components/GenAiChatContextChooser.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAWvD,KAAK,+BAA+B,GAAG;IACnC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;CACzD,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,EAAE,YAAY,EAAE,EAAE,+BAA+B,kDA4ExF"}
|
|
@@ -19,20 +19,21 @@ export function GenAiChatContextChooser({ onAddContext }) {
|
|
|
19
19
|
const titleId = useIdPrefixed("context-chooser-title");
|
|
20
20
|
const ambient = useSelector((state) => ambientContextSelector(state));
|
|
21
21
|
const active = useSelector((state) => userContextSelector(state));
|
|
22
|
-
const { items: inputItems, isLoading, hasNextPage, loadNextPage } = useContextItems(ambient, active);
|
|
22
|
+
const { items: inputItems, search, setSearch, isLoading, hasNextPage, loadNextPage, } = useContextItems(ambient, active);
|
|
23
23
|
const addContextLabel = intl.formatMessage(msgs.add);
|
|
24
24
|
const onOpenStateChanged = useCallback((isOpen) => {
|
|
25
|
+
setSearch("");
|
|
25
26
|
if (isOpen) {
|
|
26
27
|
dispatch(initContextObjectsAction());
|
|
27
28
|
}
|
|
28
|
-
}, [dispatch]);
|
|
29
|
+
}, [dispatch, setSearch]);
|
|
29
30
|
if (!ambient) {
|
|
30
31
|
return null;
|
|
31
32
|
}
|
|
32
33
|
return (_jsx("div", { className: "gd-gen-ai-chat__input__context", children: _jsx(Dropdown, { alignPoints: [{ align: "tl bl", offset: { x: 0, y: 0 } }], closeOnEscape: true, fullscreenOnMobile: false, autofocusOnOpen: true, accessibilityConfig: {}, onOpenStateChanged: onOpenStateChanged, renderButton: ({ isOpen, toggleDropdown, accessibilityConfig }) => (_jsx(UiIconButton, { icon: "plus", variant: "tertiary", size: "small", dataTestId: "choose_context", isActive: isOpen, accessibilityConfig: {
|
|
33
34
|
...accessibilityConfig,
|
|
34
35
|
ariaLabel: addContextLabel,
|
|
35
|
-
}, onClick: toggleDropdown, isDisabled: !inputItems.length && !hasNextPage && !isLoading })), renderBody: ({ closeDropdown, ariaAttributes }) => (_jsx(GenAiChatContextChooserBody, { inputItems: inputItems, title: addContextLabel, titleId: titleId, isLoading: isLoading, hasNextPage: hasNextPage, loadNextPage: loadNextPage, ariaAttributes: ariaAttributes, closeDropdown: closeDropdown, onSelect: (item) => {
|
|
36
|
+
}, onClick: toggleDropdown, isDisabled: !search && !inputItems.length && !hasNextPage && !isLoading })), renderBody: ({ closeDropdown, ariaAttributes }) => (_jsx(GenAiChatContextChooserBody, { inputItems: inputItems, title: addContextLabel, titleId: titleId, search: search, onSearchChange: setSearch, isLoading: isLoading, hasNextPage: hasNextPage, loadNextPage: loadNextPage, ariaAttributes: ariaAttributes, closeDropdown: closeDropdown, onSelect: (item) => {
|
|
36
37
|
dispatch(addContextReferenceAction({ object: item }));
|
|
37
38
|
onAddContext?.(item);
|
|
38
39
|
} })) }) }));
|
|
@@ -3,6 +3,8 @@ type GenAiChatContextChooserBodyProps = {
|
|
|
3
3
|
inputItems: IGenAIContextObject[];
|
|
4
4
|
title: string;
|
|
5
5
|
titleId: string;
|
|
6
|
+
search: string;
|
|
7
|
+
onSearchChange: (search: string) => void;
|
|
6
8
|
isLoading?: boolean;
|
|
7
9
|
hasNextPage?: boolean;
|
|
8
10
|
loadNextPage?: () => void;
|
|
@@ -14,6 +16,6 @@ type GenAiChatContextChooserBodyProps = {
|
|
|
14
16
|
onSelect: (item: IGenAIContextObject) => void;
|
|
15
17
|
closeDropdown: () => void;
|
|
16
18
|
};
|
|
17
|
-
export declare function GenAiChatContextChooserBody({ inputItems, title, titleId, isLoading, hasNextPage, loadNextPage, ariaAttributes, onSelect, closeDropdown }: GenAiChatContextChooserBodyProps): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
export declare function GenAiChatContextChooserBody({ inputItems, title, titleId, search, onSearchChange, isLoading, hasNextPage, loadNextPage, ariaAttributes, onSelect, closeDropdown }: GenAiChatContextChooserBodyProps): import("react/jsx-runtime").JSX.Element;
|
|
18
20
|
export {};
|
|
19
21
|
//# sourceMappingURL=GenAiChatContextChooserBody.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenAiChatContextChooserBody.d.ts","sourceRoot":"","sources":["../../src/components/GenAiChatContextChooserBody.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GenAiChatContextChooserBody.d.ts","sourceRoot":"","sources":["../../src/components/GenAiChatContextChooserBody.tsx"],"names":[],"mappings":"AAuBA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AA8BvD,KAAK,gCAAgC,GAAG;IACpC,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,cAAc,EAAE;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC9B,CAAC;IACF,QAAQ,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC9C,aAAa,EAAE,MAAM,IAAI,CAAC;CAC7B,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,EACxC,UAAU,EACV,KAAK,EACL,OAAO,EACP,MAAM,EACN,cAAc,EACd,SAAiB,EACjB,WAAmB,EACnB,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,aAAa,EAChB,EAAE,gCAAgC,2CAmIlC"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
// (C) 2026 GoodData Corporation
|
|
3
|
-
import { useCallback,
|
|
3
|
+
import { useCallback, useEffect, useId } from "react";
|
|
4
4
|
import cx from "classnames";
|
|
5
5
|
import { defineMessages, useIntl } from "react-intl";
|
|
6
|
+
import { useDebouncedState } from "@gooddata/sdk-ui";
|
|
6
7
|
import { DEFAULT_ITEM_HEIGHT, DETAILED_ANNOUNCEMENT_THRESHOLD, Input, NoData, ScopedIdStore, ShortenedText, UiIcon, UiPagedVirtualList, UiSearchResultsAnnouncement, UiSubmenuHeader, isTypingKey, useScopedIdStoreValue, } from "@gooddata/sdk-ui-kit";
|
|
7
8
|
import { getIconByType } from "./utils/icons.js";
|
|
8
9
|
const SEARCH_FIELD_VISIBILITY_THRESHOLD = 7;
|
|
10
|
+
const SEARCH_DEBOUNCE_MS = 300;
|
|
9
11
|
const MAX_VISIBLE_ITEMS = 7;
|
|
10
12
|
const LOADING_SKELETON_ITEMS_COUNT = 3;
|
|
11
13
|
const msgs = defineMessages({
|
|
@@ -28,25 +30,23 @@ const msgs = defineMessages({
|
|
|
28
30
|
id: "gd.gen-ai.context.noDataAvailable",
|
|
29
31
|
},
|
|
30
32
|
});
|
|
31
|
-
export function GenAiChatContextChooserBody({ inputItems, title, titleId, isLoading = false, hasNextPage = false, loadNextPage, ariaAttributes, onSelect, closeDropdown, }) {
|
|
33
|
+
export function GenAiChatContextChooserBody({ inputItems, title, titleId, search, onSearchChange, isLoading = false, hasNextPage = false, loadNextPage, ariaAttributes, onSelect, closeDropdown, }) {
|
|
32
34
|
const intl = useIntl();
|
|
33
35
|
const listboxId = useId();
|
|
34
|
-
const [searchString, setSearchString] =
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
const filteredItems = useMemo(() => {
|
|
39
|
-
if (!normalizedSearch) {
|
|
40
|
-
return inputItems;
|
|
36
|
+
const [searchString, setSearchString, debouncedSearch] = useDebouncedState(search, SEARCH_DEBOUNCE_MS);
|
|
37
|
+
useEffect(() => {
|
|
38
|
+
if (debouncedSearch.trim() !== search) {
|
|
39
|
+
onSearchChange(debouncedSearch.trim());
|
|
41
40
|
}
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
}, [debouncedSearch, search, onSearchChange]);
|
|
42
|
+
const isSearchFieldVisible = inputItems.length > SEARCH_FIELD_VISIBILITY_THRESHOLD || searchString.length > 0 || hasNextPage;
|
|
43
|
+
const normalizedSearch = search.trim().toLowerCase();
|
|
44
44
|
const scopedIdStoreValue = useScopedIdStoreValue((item) => `${item.type}-${item.id}`);
|
|
45
45
|
const handleSelect = useCallback((item) => {
|
|
46
46
|
onSelect(item);
|
|
47
47
|
closeDropdown();
|
|
48
48
|
}, [closeDropdown, onSelect]);
|
|
49
|
-
const hasNoData = !isLoading &&
|
|
49
|
+
const hasNoData = !isLoading && inputItems.length === 0;
|
|
50
50
|
const hasNoMatchingData = hasNoData && normalizedSearch.length > 0;
|
|
51
51
|
const searchFilled = searchString.length > 0;
|
|
52
52
|
const onEscKeyPress = useCallback((event) => {
|
|
@@ -57,10 +57,9 @@ export function GenAiChatContextChooserBody({ inputItems, title, titleId, isLoad
|
|
|
57
57
|
closeDropdown();
|
|
58
58
|
}
|
|
59
59
|
}, [closeDropdown, searchFilled]);
|
|
60
|
-
const
|
|
61
|
-
const
|
|
62
|
-
const
|
|
63
|
-
const visibleRowsCount = filteredItems.length + skeletonItemsCount;
|
|
60
|
+
const shouldShowPagedList = !hasNoData || hasNextPage;
|
|
61
|
+
const skeletonItemsCount = isLoading || (hasNextPage && inputItems.length === 0) ? LOADING_SKELETON_ITEMS_COUNT : 0;
|
|
62
|
+
const visibleRowsCount = inputItems.length + skeletonItemsCount;
|
|
64
63
|
const listMaxHeight = Math.min(Math.max(visibleRowsCount, 1), MAX_VISIBLE_ITEMS) * DEFAULT_ITEM_HEIGHT;
|
|
65
64
|
return (_jsxs("div", { ...ariaAttributes, "aria-labelledby": titleId, className: "gd-gen-ai-chat__context-chooser", "data-testid": "context_chooser_menu", children: [
|
|
66
65
|
_jsx(UiSubmenuHeader, { title: title, titleId: titleId, height: "medium", onClose: closeDropdown, closeAriaLabel: intl.formatMessage(msgs.close) }), isSearchFieldVisible ? (_jsxs(_Fragment, { children: [
|
|
@@ -68,13 +67,13 @@ export function GenAiChatContextChooserBody({ inputItems, title, titleId, isLoad
|
|
|
68
67
|
if (isTypingKey(event)) {
|
|
69
68
|
event.stopPropagation();
|
|
70
69
|
}
|
|
71
|
-
}, children: _jsx(Input, { className: cx("gd-list-searchfield", "gd-flex-item"), value:
|
|
70
|
+
}, children: _jsx(Input, { className: cx("gd-list-searchfield", "gd-flex-item"), value: searchString, onChange: (value) => setSearchString(String(value)), onEscKeyPress: onEscKeyPress, placeholder: intl.formatMessage(msgs.searchPlaceholder), autofocus: true, clearOnEsc: true, isSearch: true, isSmall: true, type: "search", accessibilityConfig: {
|
|
72
71
|
ariaLabel: intl.formatMessage(msgs.searchAriaLabel),
|
|
73
72
|
ariaControls: listboxId,
|
|
74
|
-
} }) }), _jsx(UiSearchResultsAnnouncement, { totalResults: normalizedSearch ?
|
|
75
|
-
?
|
|
73
|
+
} }) }), _jsx(UiSearchResultsAnnouncement, { totalResults: normalizedSearch ? inputItems.length : undefined, resultValues: inputItems.length <= DETAILED_ANNOUNCEMENT_THRESHOLD
|
|
74
|
+
? inputItems.map((item) => item.title)
|
|
76
75
|
: undefined })
|
|
77
|
-
] })) : null, shouldShowPagedList ? (_jsx(ScopedIdStore, { value: scopedIdStoreValue, children: _jsx(UiPagedVirtualList, { maxHeight: listMaxHeight, items:
|
|
76
|
+
] })) : null, shouldShowPagedList ? (_jsx(ScopedIdStore, { value: scopedIdStoreValue, children: _jsx(UiPagedVirtualList, { maxHeight: listMaxHeight, items: inputItems, itemHeight: DEFAULT_ITEM_HEIGHT, itemsGap: 0, itemPadding: 0, skeletonItemsCount: skeletonItemsCount, isLoading: isLoading, hasNextPage: hasNextPage, loadNextPage: loadNextPage, representAs: "listbox", closeDropdown: closeDropdown, onKeyDownConfirm: handleSelect, listboxProps: {
|
|
78
77
|
id: listboxId,
|
|
79
78
|
"aria-label": intl.formatMessage(msgs.listAriaLabel),
|
|
80
79
|
}, children: (item) => _jsx(ContextChooserItem, { item: item, onSelect: () => handleSelect(item) }) }) })) : (_jsx(NoData, { hasNoMatchingData: hasNoMatchingData, notFoundLabel: intl.formatMessage(msgs.noMatchingData), noDataLabel: intl.formatMessage(msgs.noDataAvailable) }))] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenAiStore.d.ts","sourceRoot":"","sources":["../../src/components/GenAiStore.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAmC,MAAM,OAAO,CAAC;AAExE,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAGlE,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACjG,OAAO,EACH,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACxB,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"GenAiStore.d.ts","sourceRoot":"","sources":["../../src/components/GenAiStore.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAmC,MAAM,OAAO,CAAC;AAExE,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAGlE,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACjG,OAAO,EACH,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACxB,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAI3D,OAAO,EAAkB,KAAK,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEpG;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG;IAC1B;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/B;;OAEG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B;;;OAGG;IACH,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAChC;;;OAGG;IACH,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAElC;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,cAAc,EAAE,gBAAgB,KAAK,MAAM,GAAG,SAAS,CAAC;IACvE;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;OAEG;IACH,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACnC;;OAEG;IACH,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;IAChC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB;;OAEG;IACH,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B;;;;OAIG;IACH,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IAC7D;;OAEG;IACH,QAAQ,EAAE,SAAS,GAAG,CAAC,CAAC,UAAU,EAAE,aAAa,KAAK,SAAS,CAAC,CAAC;IAEjE;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;;;;OAOG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;CAC1C,CAAC;AAEF;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,kDAmDhD"}
|
|
@@ -45,17 +45,33 @@ export function GenAiStore(props) {
|
|
|
45
45
|
}
|
|
46
46
|
return (_jsx(ConfigProvider, { allowNativeLinks: props.allowNativeLinks, linkHandler: props.onLinkClick, children: _jsx(InternalStore, { ...props, children: children }) }));
|
|
47
47
|
}
|
|
48
|
-
function ExternalStore({ onDispatcher, children, currentStore, }) {
|
|
48
|
+
function ExternalStore({ onDispatcher, children, currentStore, onLinkClick, }) {
|
|
49
49
|
useEffect(() => {
|
|
50
50
|
onDispatcher?.(currentStore.dispatch);
|
|
51
51
|
}, [currentStore, onDispatcher]);
|
|
52
|
+
useEffect(() => {
|
|
53
|
+
const store = currentStore;
|
|
54
|
+
const dispatcher = store.optionsDispatcher;
|
|
55
|
+
if (dispatcher && onLinkClick) {
|
|
56
|
+
return dispatcher.registerLinkHandler(onLinkClick);
|
|
57
|
+
}
|
|
58
|
+
return undefined;
|
|
59
|
+
}, [currentStore, onLinkClick]);
|
|
52
60
|
const content = typeof children === "function" ? children(currentStore) : children;
|
|
53
61
|
return _jsx(_Fragment, { children: content });
|
|
54
62
|
}
|
|
55
|
-
function InjectedStore({ onDispatcher, children, currentStore, }) {
|
|
63
|
+
function InjectedStore({ onDispatcher, children, currentStore, onLinkClick, }) {
|
|
56
64
|
useEffect(() => {
|
|
57
65
|
onDispatcher?.(currentStore.dispatch);
|
|
58
66
|
}, [currentStore, onDispatcher]);
|
|
67
|
+
useEffect(() => {
|
|
68
|
+
const store = currentStore;
|
|
69
|
+
const dispatcher = store.optionsDispatcher;
|
|
70
|
+
if (dispatcher && onLinkClick) {
|
|
71
|
+
return dispatcher.registerLinkHandler(onLinkClick);
|
|
72
|
+
}
|
|
73
|
+
return undefined;
|
|
74
|
+
}, [currentStore, onLinkClick]);
|
|
59
75
|
const content = typeof children === "function" ? children(currentStore) : children;
|
|
60
76
|
return _jsx(StoreProvider, { store: currentStore, children: content });
|
|
61
77
|
}
|
|
@@ -2,6 +2,8 @@ import { type IGenAIUserContext } from "@gooddata/sdk-model";
|
|
|
2
2
|
import { type IGenAIContextObject } from "../../types.js";
|
|
3
3
|
export declare function useContextItems(ambient: IGenAIUserContext | undefined, active: IGenAIUserContext | undefined): {
|
|
4
4
|
items: IGenAIContextObject[];
|
|
5
|
+
search: string;
|
|
6
|
+
setSearch: (value: string) => void;
|
|
5
7
|
isLoading: boolean;
|
|
6
8
|
hasNextPage: boolean;
|
|
7
9
|
loadNextPage: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useContextItems.d.ts","sourceRoot":"","sources":["../../../src/components/hooks/useContextItems.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,iBAAiB,EAAmB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"useContextItems.d.ts","sourceRoot":"","sources":["../../../src/components/hooks/useContextItems.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,iBAAiB,EAAmB,MAAM,qBAAqB,CAAC;AAc9E,OAAO,EAIH,KAAK,mBAAmB,EAC3B,MAAM,gBAAgB,CAAC;AAExB,wBAAgB,eAAe,CAC3B,OAAO,EAAE,iBAAiB,GAAG,SAAS,EACtC,MAAM,EAAE,iBAAiB,GAAG,SAAS;;;;;;;EAqExC"}
|
|
@@ -4,31 +4,39 @@ import { useIntl } from "react-intl";
|
|
|
4
4
|
import { useDispatch, useSelector } from "react-redux";
|
|
5
5
|
import { serializeObjRef } from "@gooddata/sdk-model";
|
|
6
6
|
import { collectAvailableReferences, collectContextReferences, } from "../../context/collectContextReferences.js";
|
|
7
|
-
import { contextObjectsSelector } from "../../store/chatWindow/chatWindowSelectors.js";
|
|
8
|
-
import { loadContextObjectsNextPageAction } from "../../store/chatWindow/chatWindowSlice.js";
|
|
7
|
+
import { contextObjectsSearchSelector, contextObjectsSelector, } from "../../store/chatWindow/chatWindowSelectors.js";
|
|
8
|
+
import { loadContextObjectsNextPageAction, setContextObjectsSearchAction, } from "../../store/chatWindow/chatWindowSlice.js";
|
|
9
9
|
export function useContextItems(ambient, active) {
|
|
10
10
|
const intl = useIntl();
|
|
11
11
|
const dispatch = useDispatch();
|
|
12
12
|
const emptyReferenceLabel = intl.formatMessage({ id: "gd.gen-ai.context.untitled" });
|
|
13
13
|
const contextObjects = useSelector(contextObjectsSelector);
|
|
14
|
+
const search = useSelector(contextObjectsSearchSelector);
|
|
14
15
|
const dashboards = contextObjects.dashboard;
|
|
15
16
|
const visualizations = contextObjects.visualization;
|
|
16
17
|
const items = useMemo(() => {
|
|
17
|
-
const
|
|
18
|
+
const matchesSearch = titleMatcher(search);
|
|
19
|
+
const ambientReferences = collectAvailableReferences(ambient, emptyReferenceLabel).filter(matchesSearch);
|
|
18
20
|
const selectedReferences = collectContextReferences(active, emptyReferenceLabel);
|
|
19
21
|
const offered = new Set();
|
|
20
|
-
|
|
22
|
+
collectAvailableReferences(ambient, emptyReferenceLabel).forEach((reference) => {
|
|
21
23
|
offered.add(serializeObjRef(reference.ref));
|
|
22
24
|
if (reference.insightRef) {
|
|
23
25
|
offered.add(serializeObjRef(reference.insightRef));
|
|
24
26
|
}
|
|
25
27
|
});
|
|
26
28
|
const workspaceReferences = [
|
|
27
|
-
...
|
|
28
|
-
...
|
|
29
|
+
...searchable(dashboards, "dashboard", emptyReferenceLabel, matchesSearch),
|
|
30
|
+
...searchable(visualizations, "visualization", emptyReferenceLabel, matchesSearch),
|
|
29
31
|
].filter((reference) => !offered.has(serializeObjRef(reference.ref)));
|
|
30
32
|
return [...ambientReferences, ...workspaceReferences].filter((reference) => !selectedReferences.some((selectedReference) => isSameObject(selectedReference, reference)));
|
|
31
|
-
}, [active, ambient, dashboards
|
|
33
|
+
}, [active, ambient, dashboards, visualizations, emptyReferenceLabel, search]);
|
|
34
|
+
const setSearch = useCallback((value) => {
|
|
35
|
+
if (value === search) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
dispatch(setContextObjectsSearchAction({ search: value }));
|
|
39
|
+
}, [dispatch, search]);
|
|
32
40
|
const nextPageKind = dashboards.hasNextPage
|
|
33
41
|
? "dashboard"
|
|
34
42
|
: visualizations.hasNextPage
|
|
@@ -42,11 +50,21 @@ export function useContextItems(ambient, active) {
|
|
|
42
50
|
}, [dispatch, nextPageKind]);
|
|
43
51
|
return {
|
|
44
52
|
items,
|
|
53
|
+
search,
|
|
54
|
+
setSearch,
|
|
45
55
|
isLoading: dashboards.isLoading || visualizations.isLoading,
|
|
46
56
|
hasNextPage: nextPageKind !== undefined,
|
|
47
57
|
loadNextPage,
|
|
48
58
|
};
|
|
49
59
|
}
|
|
60
|
+
function titleMatcher(search) {
|
|
61
|
+
const normalized = search.trim().toLowerCase();
|
|
62
|
+
return normalized ? (reference) => reference.title.toLowerCase().includes(normalized) : () => true;
|
|
63
|
+
}
|
|
64
|
+
function searchable(list, type, emptyReferenceLabel, matchesSearch) {
|
|
65
|
+
const references = toContextObjects(list.items, type, emptyReferenceLabel);
|
|
66
|
+
return list.isExternal ? references.filter(matchesSearch) : references;
|
|
67
|
+
}
|
|
50
68
|
function toContextObjects(items, type, emptyReferenceLabel) {
|
|
51
69
|
return items.map((item) => ({
|
|
52
70
|
id: item.id,
|
|
@@ -23,6 +23,7 @@ export declare const tagsSelector: (state: RootState) => {
|
|
|
23
23
|
};
|
|
24
24
|
export declare const catalogItemsSelector: (state: RootState) => CatalogItem[];
|
|
25
25
|
export declare const contextObjectsSelector: (state: RootState) => ContextObjectsState;
|
|
26
|
+
export declare const contextObjectsSearchSelector: (state: RootState) => string;
|
|
26
27
|
export declare const keyDriverAnalysisSelector: (state: RootState) => IKdaDefinition | undefined;
|
|
27
28
|
export declare const keyDriverAnalysisMinimizedSelector: (state: RootState) => boolean | undefined;
|
|
28
29
|
export declare const userContextSelector: (state: RootState) => IGenAIUserContext | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatWindowSelectors.d.ts","sourceRoot":"","sources":["../../../src/store/chatWindow/chatWindowSelectors.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EACH,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,wBAAwB,EAC7B,KAAK,aAAa,EAClB,KAAK,iBAAiB,EAEzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAM7C,eAAO,MAAM,cAAc,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGlD,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGxD,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGrD,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,aAAa,GAAG,SAGxE,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,sBAAsB,GAAG,SAG7E,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGrD,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGjE,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAG/D,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGlE,CAAC;AAKF,eAAO,MAAM,4BAA4B,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAIhE,CAAC;AAEF,eAAO,MAAM,oCAAoC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGxE,CAAC;AAKF,eAAO,MAAM,sCAAsC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAK1E,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,eAAe,EAAE,GAAG,SAG3E,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,wBAAwB,EAAE,GAAG,SACZ,CAAC;AAEvF,eAAO,MAAM,YAAY,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK;IAC7C,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAClC,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CAMpC,CAAC;AAEH,eAAO,MAAM,oBAAoB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,WAAW,EAKnE,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,mBAG1D,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,cAAc,GAAG,SAG9E,CAAC;AAEF,eAAO,MAAM,kCAAkC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,GAAG,SAGhF,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,iBAAiB,GAAG,SAG3E,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,iBAAiB,GAAG,SAG9E,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAe5D,CAAC"}
|
|
1
|
+
{"version":3,"file":"chatWindowSelectors.d.ts","sourceRoot":"","sources":["../../../src/store/chatWindow/chatWindowSelectors.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EACH,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,wBAAwB,EAC7B,KAAK,aAAa,EAClB,KAAK,iBAAiB,EAEzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAM7C,eAAO,MAAM,cAAc,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGlD,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGxD,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGrD,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,aAAa,GAAG,SAGxE,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,sBAAsB,GAAG,SAG7E,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGrD,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGjE,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAG/D,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGlE,CAAC;AAKF,eAAO,MAAM,4BAA4B,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAIhE,CAAC;AAEF,eAAO,MAAM,oCAAoC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGxE,CAAC;AAKF,eAAO,MAAM,sCAAsC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAK1E,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,eAAe,EAAE,GAAG,SAG3E,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,wBAAwB,EAAE,GAAG,SACZ,CAAC;AAEvF,eAAO,MAAM,YAAY,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK;IAC7C,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAClC,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CAMpC,CAAC;AAEH,eAAO,MAAM,oBAAoB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,WAAW,EAKnE,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,mBAG1D,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAGhE,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,cAAc,GAAG,SAG9E,CAAC;AAEF,eAAO,MAAM,kCAAkC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,GAAG,SAGhF,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,iBAAiB,GAAG,SAG3E,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,iBAAiB,GAAG,SAG9E,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAe5D,CAAC"}
|
|
@@ -33,6 +33,7 @@ export const catalogItemsSelector = createSelector(chatWindowSliceSelector, (sta
|
|
|
33
33
|
return state.catalogItems ?? [];
|
|
34
34
|
});
|
|
35
35
|
export const contextObjectsSelector = createSelector(chatWindowSliceSelector, (state) => state.contextObjects);
|
|
36
|
+
export const contextObjectsSearchSelector = createSelector(chatWindowSliceSelector, (state) => state.contextObjectsSearch);
|
|
36
37
|
export const keyDriverAnalysisSelector = createSelector(chatWindowSliceSelector, (state) => state.keyDriverAnalysis);
|
|
37
38
|
export const keyDriverAnalysisMinimizedSelector = createSelector(chatWindowSliceSelector, (state) => state.keyDriverAnalysisMinimized);
|
|
38
39
|
export const userContextSelector = createSelector(chatWindowSliceSelector, (state) => state.context.active);
|
|
@@ -44,6 +44,10 @@ type ChatWindowSliceState = {
|
|
|
44
44
|
* Dashboards and visualizations offered by the context chooser, on top of the ambient ones.
|
|
45
45
|
*/
|
|
46
46
|
contextObjects: ContextObjectsState;
|
|
47
|
+
/**
|
|
48
|
+
* Title the context chooser lists are filtered by. Empty means no filter.
|
|
49
|
+
*/
|
|
50
|
+
contextObjectsSearch: string;
|
|
47
51
|
/**
|
|
48
52
|
* Only objects with these tags will be included
|
|
49
53
|
*/
|
|
@@ -101,7 +105,9 @@ export declare const setOpenAction: import("@reduxjs/toolkit").ActionCreatorWith
|
|
|
101
105
|
}, "chatWindow/loadContextObjectsNextPageAction">, setContextObjectsAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
102
106
|
kind: ContextObjectKind;
|
|
103
107
|
items: IGenAIContextListItem[];
|
|
104
|
-
}, "chatWindow/setContextObjectsAction">,
|
|
108
|
+
}, "chatWindow/setContextObjectsAction">, setContextObjectsSearchAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
109
|
+
search: string;
|
|
110
|
+
}, "chatWindow/setContextObjectsSearchAction">, contextObjectsLoadingAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
105
111
|
kind: ContextObjectKind;
|
|
106
112
|
}, "chatWindow/contextObjectsLoadingAction">, contextObjectsPageLoadedAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
107
113
|
kind: ContextObjectKind;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatWindowSlice.d.ts","sourceRoot":"","sources":["../../../src/store/chatWindow/chatWindowSlice.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,OAAO,EAAe,MAAM,kBAAkB,CAAC;AAEjF,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EACH,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,wBAAwB,EAC7B,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EAEhB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAKjE,OAAO,EACH,KAAK,iBAAiB,EAEtB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACpB,MAAM,gBAAgB,CAAC;AAGxB,KAAK,oBAAoB,GAAG;IACxB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B;;OAEG;IACH,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC;;OAEG;IACH,iBAAiB,CAAC,EAAE,cAAc,CAAC;IACnC;;OAEG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC;;OAEG;IACH,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;IAChC;;OAEG;IACH,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B;;OAEG;IACH,cAAc,EAAE,mBAAmB,CAAC;IACpC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB;;OAEG;IACH,wBAAwB,CAAC,EAAE,wBAAwB,EAAE,CAAC;IACtD;;OAEG;IACH,OAAO,EAAE,YAAY,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;CAC1C,CAAC;AAEF,eAAO,MAAM,mBAAmB,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"chatWindowSlice.d.ts","sourceRoot":"","sources":["../../../src/store/chatWindow/chatWindowSlice.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,OAAO,EAAe,MAAM,kBAAkB,CAAC;AAEjF,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EACH,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,wBAAwB,EAC7B,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EAEhB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAKjE,OAAO,EACH,KAAK,iBAAiB,EAEtB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACpB,MAAM,gBAAgB,CAAC;AAGxB,KAAK,oBAAoB,GAAG;IACxB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B;;OAEG;IACH,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC;;OAEG;IACH,iBAAiB,CAAC,EAAE,cAAc,CAAC;IACnC;;OAEG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC;;OAEG;IACH,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;IAChC;;OAEG;IACH,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B;;OAEG;IACH,cAAc,EAAE,mBAAmB,CAAC;IACpC;;OAEG;IACH,oBAAoB,EAAE,MAAM,CAAC;IAC7B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB;;OAEG;IACH,wBAAwB,CAAC,EAAE,wBAAwB,EAAE,CAAC;IACtD;;OAEG;IACH,OAAO,EAAE,YAAY,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;CAC1C,CAAC;AAEF,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAuChD,eAAO,MAAM,yBAAyB;;;0BAYpC,CAAC;AA+MH,eAAO,MAAM,sBAAsB,EAAE,OAAO,CAAC,oBAAoB,CAA2B,CAAC;AAC7F,eAAO,MACH,aAAa;;gCACb,gBAAgB;;mCAChB,qBAAqB;;wCACrB,iBAAiB;;oCACjB,qBAAqB;;wCACrB,0BAA0B;;6CAC1B,mCAAmC;;sDACnC,oBAAoB;;uCACpB,aAAa;;;gCACb,sBAAsB,+HACtB,wBAAwB,iGACxB,gCAAgC;;mDAChC,uBAAuB;;;0CACvB,6BAA6B;;gDAC7B,2BAA2B;;8CAC3B,8BAA8B;;;;iDAC9B,8BAA8B;;iDAC9B,iCAAiC;;oDACjC,0BAA0B;;;;;;;;6CAC1B,yBAAyB;;4CACzB,4BAA4B;;+CAC5B,kBAAkB;;;AAClB;;;GAGG;AACH,mBAAmB;;;AACnB;;GAEG;AACH,2BAA2B;;;AAC3B;;GAEG;AACH,oBAAoB;;;qCACG,CAAC"}
|
|
@@ -6,12 +6,13 @@ import { mergeContexts } from "../../context/build.js";
|
|
|
6
6
|
import { removeContextReference, removeUserContextReferences } from "../../context/removeContextReference.js";
|
|
7
7
|
import { clearThreadAction, startNewConversationAction } from "../messages/messagesSlice.js";
|
|
8
8
|
export const chatWindowSliceName = "chatWindow";
|
|
9
|
-
function emptyContextObjectList() {
|
|
9
|
+
function emptyContextObjectList(isExternal = false) {
|
|
10
10
|
return {
|
|
11
11
|
items: [],
|
|
12
12
|
loadedPages: 0,
|
|
13
13
|
hasNextPage: true,
|
|
14
14
|
isLoading: false,
|
|
15
|
+
isExternal,
|
|
15
16
|
};
|
|
16
17
|
}
|
|
17
18
|
function emptyContextObjects() {
|
|
@@ -31,6 +32,7 @@ const initialState = {
|
|
|
31
32
|
excludeTags: undefined,
|
|
32
33
|
allowedRelationshipTypes: undefined,
|
|
33
34
|
contextObjects: emptyContextObjects(),
|
|
35
|
+
contextObjectsSearch: "",
|
|
34
36
|
context: {
|
|
35
37
|
ambient: undefined,
|
|
36
38
|
active: undefined,
|
|
@@ -41,6 +43,7 @@ const initialState = {
|
|
|
41
43
|
export const getInitialChatWindowState = ({ isPreview, allowInteractionIntelligence, } = {}) => ({
|
|
42
44
|
...initialState,
|
|
43
45
|
contextObjects: emptyContextObjects(),
|
|
46
|
+
contextObjectsSearch: "",
|
|
44
47
|
isPreview,
|
|
45
48
|
allowInteractionIntelligence,
|
|
46
49
|
});
|
|
@@ -90,8 +93,17 @@ const chatWindowSlice = createSlice({
|
|
|
90
93
|
loadedPages: 1,
|
|
91
94
|
hasNextPage: false,
|
|
92
95
|
isLoading: false,
|
|
96
|
+
isExternal: true,
|
|
93
97
|
};
|
|
94
98
|
},
|
|
99
|
+
setContextObjectsSearchAction: (state, { payload: { search } }) => {
|
|
100
|
+
state.contextObjectsSearch = search;
|
|
101
|
+
["dashboard", "visualization"].forEach((kind) => {
|
|
102
|
+
if (!state.contextObjects[kind].isExternal) {
|
|
103
|
+
state.contextObjects[kind] = emptyContextObjectList();
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
},
|
|
95
107
|
contextObjectsLoadingAction: (state, { payload: { kind } }) => {
|
|
96
108
|
state.contextObjects[kind].isLoading = true;
|
|
97
109
|
},
|
|
@@ -156,7 +168,7 @@ const chatWindowSlice = createSlice({
|
|
|
156
168
|
},
|
|
157
169
|
});
|
|
158
170
|
export const chatWindowSliceReducer = chatWindowSlice.reducer;
|
|
159
|
-
export const { setOpenAction, setHistoryAction, setColorPaletteAction, setSettingsAction, copyToClipboardAction, setKeyDriverAnalysisAction, setKeyDriverAnalysisMinimizedAction, setObjectTypesAction, setTagsAction, setCatalogItemsActions, initContextObjectsAction, loadContextObjectsNextPageAction, setContextObjectsAction, contextObjectsLoadingAction, contextObjectsPageLoadedAction, contextObjectsLoadFailedAction, setAllowedRelationshipTypesAction, onDefinitionReceivedAction, addContextReferenceAction, removeContextReferenceAction, setIsPreviewAction,
|
|
171
|
+
export const { setOpenAction, setHistoryAction, setColorPaletteAction, setSettingsAction, copyToClipboardAction, setKeyDriverAnalysisAction, setKeyDriverAnalysisMinimizedAction, setObjectTypesAction, setTagsAction, setCatalogItemsActions, initContextObjectsAction, loadContextObjectsNextPageAction, setContextObjectsAction, setContextObjectsSearchAction, contextObjectsLoadingAction, contextObjectsPageLoadedAction, contextObjectsLoadFailedAction, setAllowedRelationshipTypesAction, onDefinitionReceivedAction, addContextReferenceAction, removeContextReferenceAction, setIsPreviewAction,
|
|
160
172
|
/**
|
|
161
173
|
* Switches the assistant between the docked and the fullscreen layout.
|
|
162
174
|
* @public
|
package/esm/store/options.d.ts
CHANGED
|
@@ -16,10 +16,12 @@ export declare class OptionsDispatcher {
|
|
|
16
16
|
private visualizations;
|
|
17
17
|
private mode;
|
|
18
18
|
private onLinkClick;
|
|
19
|
+
private onLinkClickHandlers;
|
|
19
20
|
private allowNativeLinks;
|
|
20
21
|
setColorPalette(colorPalette: IColorPalette | undefined): void;
|
|
21
22
|
getColorPalette(): IColorPalette | undefined;
|
|
22
23
|
setOnLinkClick(onLinkClick?: (linkClickEvent: LinkHandlerEvent) => string | undefined, allowNativeLinks?: boolean): void;
|
|
24
|
+
registerLinkHandler(handler: (linkClickEvent: LinkHandlerEvent) => string | undefined): () => void;
|
|
23
25
|
getOnLinkClick(): {
|
|
24
26
|
onLinkClick?: (linkClickEvent: LinkHandlerEvent) => string | undefined;
|
|
25
27
|
allowNativeLinks?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/store/options.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EACH,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAE3F;;;GAGG;AACH,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,YAAY,CAAwC;IAC5D,OAAO,CAAC,QAAQ,CAAiD;IACjE,OAAO,CAAC,WAAW,CAA4C;IAC/D,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,YAAY,CAAwC;IAC5D,OAAO,CAAC,UAAU,CAA6C;IAC/D,OAAO,CAAC,cAAc,CAAqC;IAC3D,OAAO,CAAC,IAAI,CAA6C;IACzD,OAAO,CAAC,WAAW,CAAqF;IACxG,OAAO,CAAC,gBAAgB,CAAkC;IAEnD,eAAe,CAAC,YAAY,EAAE,aAAa,GAAG,SAAS,GAAG,IAAI,CAEpE;IAEM,eAAe,IAAI,aAAa,GAAG,SAAS,CAElD;IAEM,cAAc,CACjB,WAAW,CAAC,EAAE,CAAC,cAAc,EAAE,gBAAgB,KAAK,MAAM,GAAG,SAAS,EACtE,gBAAgB,CAAC,EAAE,OAAO,GAC3B,IAAI,CAGN;IAEM,cAAc,IAAI;QACrB,WAAW,CAAC,EAAE,CAAC,cAAc,EAAE,gBAAgB,KAAK,MAAM,GAAG,SAAS,CAAC;QACvE,gBAAgB,CAAC,EAAE,OAAO,CAAC;KAC9B,
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/store/options.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EACH,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAE3F;;;GAGG;AACH,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,YAAY,CAAwC;IAC5D,OAAO,CAAC,QAAQ,CAAiD;IACjE,OAAO,CAAC,WAAW,CAA4C;IAC/D,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,YAAY,CAAwC;IAC5D,OAAO,CAAC,UAAU,CAA6C;IAC/D,OAAO,CAAC,cAAc,CAAqC;IAC3D,OAAO,CAAC,IAAI,CAA6C;IACzD,OAAO,CAAC,WAAW,CAAqF;IACxG,OAAO,CAAC,mBAAmB,CAAuE;IAClG,OAAO,CAAC,gBAAgB,CAAkC;IAEnD,eAAe,CAAC,YAAY,EAAE,aAAa,GAAG,SAAS,GAAG,IAAI,CAEpE;IAEM,eAAe,IAAI,aAAa,GAAG,SAAS,CAElD;IAEM,cAAc,CACjB,WAAW,CAAC,EAAE,CAAC,cAAc,EAAE,gBAAgB,KAAK,MAAM,GAAG,SAAS,EACtE,gBAAgB,CAAC,EAAE,OAAO,GAC3B,IAAI,CAGN;IAEM,mBAAmB,CACtB,OAAO,EAAE,CAAC,cAAc,EAAE,gBAAgB,KAAK,MAAM,GAAG,SAAS,GAClE,MAAM,IAAI,CAGZ;IAEM,cAAc,IAAI;QACrB,WAAW,CAAC,EAAE,CAAC,cAAc,EAAE,gBAAgB,KAAK,MAAM,GAAG,SAAS,CAAC;QACvE,gBAAgB,CAAC,EAAE,OAAO,CAAC;KAC9B,CAiBA;IAEM,WAAW,CAAC,QAAQ,EAAE,sBAAsB,GAAG,SAAS,GAAG,IAAI,CAErE;IAEM,WAAW,IAAI,sBAAsB,GAAG,SAAS,CAEvD;IAEM,cAAc,CAAC,WAAW,EAAE,eAAe,EAAE,GAAG,SAAS,GAAG,IAAI,CAEtE;IAEM,cAAc,IAAI,eAAe,EAAE,GAAG,SAAS,CAErD;IAEM,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,IAAI,CAGzF;IAEM,OAAO,IAAI;QAAE,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;QAAC,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;KAAE,CAKzF;IAEM,eAAe,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,SAAS,GAAG,IAAI,CAEpE;IAEM,eAAe,IAAI,WAAW,EAAE,GAAG,SAAS,CAElD;IAEM,aAAa,CAAC,UAAU,EAAE,gBAAgB,EAAE,GAAG,SAAS,GAAG,IAAI,CAErE;IAEM,aAAa,IAAI,gBAAgB,EAAE,GAAG,SAAS,CAErD;IAEM,iBAAiB,CAAC,cAAc,EAAE,QAAQ,EAAE,GAAG,SAAS,GAAG,IAAI,CAErE;IAEM,iBAAiB,IAAI,QAAQ,EAAE,GAAG,SAAS,CAEjD;IAEM,OAAO,CAAC,IAAI,EAAE,kBAAkB,GAAG,SAAS,GAAG,IAAI,CAEzD;IAEM,OAAO,IAAI,kBAAkB,GAAG,SAAS,CAE/C;CACJ"}
|
package/esm/store/options.js
CHANGED
|
@@ -14,6 +14,7 @@ export class OptionsDispatcher {
|
|
|
14
14
|
visualizations = undefined;
|
|
15
15
|
mode = undefined;
|
|
16
16
|
onLinkClick = undefined;
|
|
17
|
+
onLinkClickHandlers = new Set();
|
|
17
18
|
allowNativeLinks = undefined;
|
|
18
19
|
setColorPalette(colorPalette) {
|
|
19
20
|
this.colorPalette = colorPalette;
|
|
@@ -25,9 +26,23 @@ export class OptionsDispatcher {
|
|
|
25
26
|
this.onLinkClick = onLinkClick;
|
|
26
27
|
this.allowNativeLinks = allowNativeLinks;
|
|
27
28
|
}
|
|
29
|
+
registerLinkHandler(handler) {
|
|
30
|
+
this.onLinkClickHandlers.add(handler);
|
|
31
|
+
return () => this.onLinkClickHandlers.delete(handler);
|
|
32
|
+
}
|
|
28
33
|
getOnLinkClick() {
|
|
34
|
+
const onLinkClick = this.onLinkClick || this.onLinkClickHandlers.size > 0
|
|
35
|
+
? (event) => {
|
|
36
|
+
const resultCurrent = this.onLinkClick?.(event);
|
|
37
|
+
let resultParents;
|
|
38
|
+
this.onLinkClickHandlers.forEach((handler) => {
|
|
39
|
+
resultParents = handler(event) ?? resultParents;
|
|
40
|
+
});
|
|
41
|
+
return resultParents ?? resultCurrent;
|
|
42
|
+
}
|
|
43
|
+
: undefined;
|
|
29
44
|
return {
|
|
30
|
-
onLinkClick
|
|
45
|
+
onLinkClick,
|
|
31
46
|
allowNativeLinks: this.allowNativeLinks,
|
|
32
47
|
};
|
|
33
48
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/index.ts"],"names":[],"mappings":"AAiDA;;;GAGG;AACH,wBAAiB,QAAQ,4HA4BxB"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
// (C) 2024-2026 GoodData Corporation
|
|
2
2
|
import { call, fork, takeEvery, takeLatest, takeLeading } from "redux-saga/effects";
|
|
3
|
-
import { initContextObjectsAction, loadContextObjectsNextPageAction, setOpenAction, } from "../chatWindow/chatWindowSlice.js";
|
|
3
|
+
import { initContextObjectsAction, loadContextObjectsNextPageAction, setContextObjectsSearchAction, setOpenAction, } from "../chatWindow/chatWindowSlice.js";
|
|
4
4
|
import { clearThreadAction, deleteConversationAction, evaluateMessageUpdateAction, loadThreadAction, newMessageAction, pinConversationAction, renameConversationAction, saveVisualisationRenderStatusAction, saveVisualizationAction, saveVisualizationSuccessAction, setUserFeedback, setVerboseAction, } from "../messages/messagesSlice.js";
|
|
5
5
|
import { loadAgents } from "./loadAgents.js";
|
|
6
6
|
import { loadCatalogItems } from "./loadCatalogItems.js";
|
|
7
7
|
import { loadColorPalette } from "./loadColorPalette.js";
|
|
8
|
-
import { initContextObjects, loadContextObjectsNextPage } from "./loadContextObjects.js";
|
|
8
|
+
import { initContextObjects, loadContextObjectsNextPage, reloadContextObjects, } from "./loadContextObjects.js";
|
|
9
9
|
import { loadSettings } from "./loadSettings.js";
|
|
10
10
|
import { onChatOpenSync } from "./onChatOpenSync.js";
|
|
11
11
|
import { onConversationDelete } from "./onConversationDelete.js";
|
|
@@ -45,6 +45,7 @@ export function* rootSaga() {
|
|
|
45
45
|
//context chooser
|
|
46
46
|
yield takeLeading(initContextObjectsAction.type, initContextObjects);
|
|
47
47
|
yield takeEvery(loadContextObjectsNextPageAction.type, loadContextObjectsNextPage);
|
|
48
|
+
yield takeLatest(setContextObjectsSearchAction.type, reloadContextObjects);
|
|
48
49
|
//others
|
|
49
50
|
yield takeEvery(setVerboseAction.type, onVerboseStore);
|
|
50
51
|
yield fork(onEvent);
|
|
@@ -6,6 +6,13 @@ import { type loadContextObjectsNextPageAction } from "../chatWindow/chatWindowS
|
|
|
6
6
|
* @internal
|
|
7
7
|
*/
|
|
8
8
|
export declare function initContextObjects(): Generator<import("redux-saga/effects").CallEffect<void>, void, unknown>;
|
|
9
|
+
/**
|
|
10
|
+
* Reload both lists after the searched title changed - a match among the visualizations has to be
|
|
11
|
+
* part of the answer, not something the reader has to scroll the dashboards out of the way to see.
|
|
12
|
+
* The visualizations wait when the dashboards have more pages, which would land above them.
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
export declare function reloadContextObjects(): Generator<import("redux-saga/effects").CallEffect<void> | import("redux-saga/effects").SelectEffect, void, ContextObjectsState>;
|
|
9
16
|
/**
|
|
10
17
|
* Load the next page of one of the object lists offered by the context chooser. Each kind is
|
|
11
18
|
* paged on its own, so a load in flight for one kind does not block the other.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadContextObjects.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/loadContextObjects.ts"],"names":[],"mappings":"AAOA,OAAO,EAA0B,KAAK,mBAAmB,EAA8B,MAAM,gBAAgB,CAAC;AAG9G,OAAO,EAIH,KAAK,gCAAgC,EAExC,MAAM,kCAAkC,CAAC;AAU1C;;;;GAIG;AACH,wBAAiB,kBAAkB,4EAElC;AAED;;;;GAIG;AACH,wBAAiB,0BAA0B,CAAC,EACxC,OAAO,EAAE,EAAE,IAAI,EAAE,EACpB,EAAE,UAAU,CAAC,OAAO,gCAAgC,CAAC,mIASrD"}
|
|
1
|
+
{"version":3,"file":"loadContextObjects.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/loadContextObjects.ts"],"names":[],"mappings":"AAOA,OAAO,EAA0B,KAAK,mBAAmB,EAA8B,MAAM,gBAAgB,CAAC;AAG9G,OAAO,EAIH,KAAK,gCAAgC,EAExC,MAAM,kCAAkC,CAAC;AAU1C;;;;GAIG;AACH,wBAAiB,kBAAkB,4EAElC;AAED;;;;;GAKG;AACH,wBAAiB,oBAAoB,oIAQpC;AAED;;;;GAIG;AACH,wBAAiB,0BAA0B,CAAC,EACxC,OAAO,EAAE,EAAE,IAAI,EAAE,EACpB,EAAE,UAAU,CAAC,OAAO,gCAAgC,CAAC,mIASrD"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { call, cancelled, getContext, put, select } from "redux-saga/effects";
|
|
3
3
|
import { insightRef, insightTitle } from "@gooddata/sdk-model";
|
|
4
4
|
import { toContextListItem } from "../../utils.js";
|
|
5
|
-
import { contextObjectsSelector } from "../chatWindow/chatWindowSelectors.js";
|
|
5
|
+
import { contextObjectsSearchSelector, contextObjectsSelector } from "../chatWindow/chatWindowSelectors.js";
|
|
6
6
|
import { contextObjectsLoadFailedAction, contextObjectsLoadingAction, contextObjectsPageLoadedAction, setContextObjectsAction, } from "../chatWindow/chatWindowSlice.js";
|
|
7
7
|
const PAGE_SIZE = 100;
|
|
8
8
|
/**
|
|
@@ -13,6 +13,19 @@ const PAGE_SIZE = 100;
|
|
|
13
13
|
export function* initContextObjects() {
|
|
14
14
|
yield call(initContextObjectList, "dashboard");
|
|
15
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Reload both lists after the searched title changed - a match among the visualizations has to be
|
|
18
|
+
* part of the answer, not something the reader has to scroll the dashboards out of the way to see.
|
|
19
|
+
* The visualizations wait when the dashboards have more pages, which would land above them.
|
|
20
|
+
* @internal
|
|
21
|
+
*/
|
|
22
|
+
export function* reloadContextObjects() {
|
|
23
|
+
yield call(loadContextObjectsPage, "dashboard", 0);
|
|
24
|
+
const state = yield select(contextObjectsSelector);
|
|
25
|
+
if (!state.dashboard.hasNextPage) {
|
|
26
|
+
yield call(loadContextObjectsPage, "visualization", 0);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
16
29
|
/**
|
|
17
30
|
* Load the next page of one of the object lists offered by the context chooser. Each kind is
|
|
18
31
|
* paged on its own, so a load in flight for one kind does not block the other.
|
|
@@ -42,7 +55,8 @@ function* loadContextObjectsPage(kind, page) {
|
|
|
42
55
|
}
|
|
43
56
|
yield put(contextObjectsLoadingAction({ kind }));
|
|
44
57
|
try {
|
|
45
|
-
const
|
|
58
|
+
const search = yield select(contextObjectsSearchSelector);
|
|
59
|
+
const loaded = yield call(kind === "dashboard" ? queryDashboardsPage : queryVisualizationsPage, page, search);
|
|
46
60
|
yield put(contextObjectsPageLoadedAction({ kind, ...loaded }));
|
|
47
61
|
}
|
|
48
62
|
catch (e) {
|
|
@@ -65,16 +79,16 @@ function* getExternalItems(kind) {
|
|
|
65
79
|
.getVisualizations()
|
|
66
80
|
?.map((insight) => toContextListItem(insightRef(insight), insightTitle(insight)));
|
|
67
81
|
}
|
|
68
|
-
function* queryDashboardsPage(page) {
|
|
82
|
+
function* queryDashboardsPage(page, search) {
|
|
69
83
|
const backend = yield getContext("backend");
|
|
70
84
|
const workspace = yield getContext("workspace");
|
|
71
|
-
const query = backend
|
|
85
|
+
const query = withTitleFilter(backend
|
|
72
86
|
.workspace(workspace)
|
|
73
87
|
.dashboards()
|
|
74
88
|
.getDashboardsQuery()
|
|
75
89
|
.withPage(page)
|
|
76
90
|
.withSize(PAGE_SIZE)
|
|
77
|
-
.withSorting(["title,asc"]);
|
|
91
|
+
.withSorting(["title,asc"]), search);
|
|
78
92
|
const queryCall = query.query.bind(query);
|
|
79
93
|
const result = yield call(queryCall);
|
|
80
94
|
return {
|
|
@@ -82,16 +96,16 @@ function* queryDashboardsPage(page) {
|
|
|
82
96
|
hasNextPage: hasNextPage(result),
|
|
83
97
|
};
|
|
84
98
|
}
|
|
85
|
-
function* queryVisualizationsPage(page) {
|
|
99
|
+
function* queryVisualizationsPage(page, search) {
|
|
86
100
|
const backend = yield getContext("backend");
|
|
87
101
|
const workspace = yield getContext("workspace");
|
|
88
|
-
const query = backend
|
|
102
|
+
const query = withTitleFilter(backend
|
|
89
103
|
.workspace(workspace)
|
|
90
104
|
.insights()
|
|
91
105
|
.getInsightsQuery()
|
|
92
106
|
.withPage(page)
|
|
93
107
|
.withSize(PAGE_SIZE)
|
|
94
|
-
.withSorting(["title,asc"]);
|
|
108
|
+
.withSorting(["title,asc"]), search);
|
|
95
109
|
const queryCall = query.query.bind(query);
|
|
96
110
|
const result = yield call(queryCall);
|
|
97
111
|
return {
|
|
@@ -102,3 +116,7 @@ function* queryVisualizationsPage(page) {
|
|
|
102
116
|
function hasNextPage(result) {
|
|
103
117
|
return result.offset + result.items.length < result.totalCount;
|
|
104
118
|
}
|
|
119
|
+
function withTitleFilter(query, search) {
|
|
120
|
+
const title = search.trim();
|
|
121
|
+
return title ? query.withFilter({ title }) : query;
|
|
122
|
+
}
|
package/esm/store/store.d.ts
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
|
+
import { type EnhancedStore } from "@reduxjs/toolkit";
|
|
1
2
|
import { type IAnalyticalBackend } from "@gooddata/sdk-backend-spi";
|
|
3
|
+
import { chatWindowSliceName, chatWindowSliceReducer } from "./chatWindow/chatWindowSlice.js";
|
|
2
4
|
import { type EventDispatcher } from "./events.js";
|
|
5
|
+
import { messagesSliceName, messagesSliceReducer } from "./messages/messagesSlice.js";
|
|
3
6
|
import { type OptionsDispatcher } from "./options.js";
|
|
4
|
-
export
|
|
7
|
+
export type GenAiStore = EnhancedStore<{
|
|
8
|
+
[messagesSliceName]: ReturnType<typeof messagesSliceReducer>;
|
|
9
|
+
[chatWindowSliceName]: ReturnType<typeof chatWindowSliceReducer>;
|
|
10
|
+
}> & {
|
|
11
|
+
optionsDispatcher: OptionsDispatcher;
|
|
12
|
+
};
|
|
13
|
+
export declare const getStore: (backend: IAnalyticalBackend, workspace: string, eventDispatcher: EventDispatcher, optionsDispatcher: OptionsDispatcher, isPreview: boolean | undefined, allowInteractionIntelligence: boolean | undefined) => GenAiStore;
|
|
5
14
|
//# sourceMappingURL=store.d.ts.map
|
package/esm/store/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAkB,MAAM,kBAAkB,CAAC;AAItE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EACH,mBAAmB,EACnB,sBAAsB,EAEzB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACtF,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAStD,MAAM,MAAM,UAAU,GAAG,aAAa,CAAC;IACnC,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;IAC7D,CAAC,mBAAmB,CAAC,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;CACpE,CAAC,GAAG;IACD,iBAAiB,EAAE,iBAAiB,CAAC;CACxC,CAAC;AAEF,eAAO,MAAM,QAAQ,2NA4CpB,CAAC"}
|
package/esm/store/store.js
CHANGED
package/esm/types.d.ts
CHANGED
package/esm/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gooddata/sdk-ui-gen-ai",
|
|
3
|
-
"version": "11.53.0-alpha.
|
|
3
|
+
"version": "11.53.0-alpha.6",
|
|
4
4
|
"description": "GoodData GenAI SDK",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "GoodData Corporation",
|
|
@@ -57,18 +57,18 @@
|
|
|
57
57
|
"reselect": "5.1.1",
|
|
58
58
|
"tslib": "2.8.1",
|
|
59
59
|
"uuid": "11.1.1",
|
|
60
|
-
"@gooddata/api-client-tiger": "11.53.0-alpha.
|
|
61
|
-
"@gooddata/sdk-backend-spi": "11.53.0-alpha.
|
|
62
|
-
"@gooddata/sdk-
|
|
63
|
-
"@gooddata/sdk-
|
|
64
|
-
"@gooddata/sdk-ui
|
|
65
|
-
"@gooddata/sdk-ui-dashboard": "11.53.0-alpha.
|
|
66
|
-
"@gooddata/sdk-ui-filters": "11.53.0-alpha.
|
|
67
|
-
"@gooddata/sdk-ui-kit": "11.53.0-alpha.
|
|
68
|
-
"@gooddata/sdk-ui-
|
|
69
|
-
"@gooddata/sdk-ui-
|
|
70
|
-
"@gooddata/sdk-ui-theme-provider": "11.53.0-alpha.
|
|
71
|
-
"@gooddata/util": "11.53.0-alpha.
|
|
60
|
+
"@gooddata/api-client-tiger": "11.53.0-alpha.6",
|
|
61
|
+
"@gooddata/sdk-backend-spi": "11.53.0-alpha.6",
|
|
62
|
+
"@gooddata/sdk-model": "11.53.0-alpha.6",
|
|
63
|
+
"@gooddata/sdk-ui-charts": "11.53.0-alpha.6",
|
|
64
|
+
"@gooddata/sdk-ui": "11.53.0-alpha.6",
|
|
65
|
+
"@gooddata/sdk-ui-dashboard": "11.53.0-alpha.6",
|
|
66
|
+
"@gooddata/sdk-ui-filters": "11.53.0-alpha.6",
|
|
67
|
+
"@gooddata/sdk-ui-kit": "11.53.0-alpha.6",
|
|
68
|
+
"@gooddata/sdk-ui-semantic-search": "11.53.0-alpha.6",
|
|
69
|
+
"@gooddata/sdk-ui-pivot": "11.53.0-alpha.6",
|
|
70
|
+
"@gooddata/sdk-ui-theme-provider": "11.53.0-alpha.6",
|
|
71
|
+
"@gooddata/util": "11.53.0-alpha.6"
|
|
72
72
|
},
|
|
73
73
|
"devDependencies": {
|
|
74
74
|
"@microsoft/api-documenter": "^7.17.0",
|
|
@@ -111,13 +111,13 @@
|
|
|
111
111
|
"typescript": "5.9.3",
|
|
112
112
|
"vitest": "4.1.8",
|
|
113
113
|
"vitest-dom": "0.1.1",
|
|
114
|
-
"@gooddata/eslint-config": "11.53.0-alpha.
|
|
115
|
-
"@gooddata/i18n-toolkit": "11.53.0-alpha.
|
|
116
|
-
"@gooddata/oxlint-config": "11.53.0-alpha.
|
|
117
|
-
"@gooddata/reference-workspace": "11.53.0-alpha.
|
|
118
|
-
"@gooddata/sdk-backend-mockingbird": "11.53.0-alpha.
|
|
119
|
-
"@gooddata/sdk-ui-theme-provider": "11.53.0-alpha.
|
|
120
|
-
"@gooddata/stylelint-config": "11.53.0-alpha.
|
|
114
|
+
"@gooddata/eslint-config": "11.53.0-alpha.6",
|
|
115
|
+
"@gooddata/i18n-toolkit": "11.53.0-alpha.6",
|
|
116
|
+
"@gooddata/oxlint-config": "11.53.0-alpha.6",
|
|
117
|
+
"@gooddata/reference-workspace": "11.53.0-alpha.6",
|
|
118
|
+
"@gooddata/sdk-backend-mockingbird": "11.53.0-alpha.6",
|
|
119
|
+
"@gooddata/sdk-ui-theme-provider": "11.53.0-alpha.6",
|
|
120
|
+
"@gooddata/stylelint-config": "11.53.0-alpha.6"
|
|
121
121
|
},
|
|
122
122
|
"peerDependencies": {
|
|
123
123
|
"react": "^18.0.0 || ^19.0.0",
|