@gooddata/sdk-ui-gen-ai 11.61.0-alpha.2 → 11.61.0-alpha.3
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/NOTICE +20 -20
- package/esm/components/GenAIChatDialog.d.ts.map +1 -1
- package/esm/components/GenAIChatDialog.js +4 -4
- package/esm/components/GenAIChatDialogConnected.d.ts +7 -1
- package/esm/components/GenAIChatDialogConnected.d.ts.map +1 -1
- package/esm/components/GenAIChatDialogConnected.js +3 -1
- package/esm/components/GenAIStandaloneInput.js +2 -2
- package/esm/components/GenAiKeyDriverAnalysis.d.ts +7 -0
- package/esm/components/GenAiKeyDriverAnalysis.d.ts.map +1 -0
- package/esm/components/{KeyDriverAnalysis.js → GenAiKeyDriverAnalysis.js} +14 -3
- package/esm/components/Input.js +2 -2
- package/esm/components/customized/types.d.ts +5 -0
- package/esm/components/customized/types.d.ts.map +1 -1
- package/esm/components/hooks/useContextItems.d.ts +1 -1
- package/esm/components/hooks/useContextItems.d.ts.map +1 -1
- package/esm/components/hooks/useContextItems.js +4 -2
- package/esm/components/hooks/useReportSavedSync.d.ts +18 -0
- package/esm/components/hooks/useReportSavedSync.d.ts.map +1 -0
- package/esm/components/hooks/useReportSavedSync.js +18 -0
- package/esm/components/intelligence/data/categoryDetailRows.d.ts.map +1 -1
- package/esm/components/intelligence/data/categoryDetailRows.js +1 -0
- package/esm/components/messages/contents/CustomHyperlink.d.ts.map +1 -1
- package/esm/components/messages/contents/CustomHyperlink.js +2 -2
- package/esm/components/messages/conversationContents/ConversationMultipartContent.d.ts.map +1 -1
- package/esm/components/messages/conversationContents/ConversationMultipartContent.js +4 -0
- package/esm/components/messages/conversationContents/ConversationReportContent.d.ts +12 -0
- package/esm/components/messages/conversationContents/ConversationReportContent.d.ts.map +1 -0
- package/esm/components/messages/conversationContents/ConversationReportContent.js +66 -0
- package/esm/components/messages/conversationContents/ConversationVisualizationContent.d.ts +2 -1
- package/esm/components/messages/conversationContents/ConversationVisualizationContent.d.ts.map +1 -1
- package/esm/components/messages/conversationContents/ConversationVisualizationContent.js +5 -3
- package/esm/context/addContextReference.d.ts.map +1 -1
- package/esm/context/addContextReference.js +3 -0
- package/esm/context/collectContextReferences.d.ts.map +1 -1
- package/esm/context/collectContextReferences.js +3 -2
- package/esm/context/removeContextReference.d.ts.map +1 -1
- package/esm/context/removeContextReference.js +2 -1
- package/esm/context/selectContextReferences.d.ts.map +1 -1
- package/esm/context/selectContextReferences.js +2 -1
- package/esm/context/viewReport.d.ts +16 -0
- package/esm/context/viewReport.d.ts.map +1 -0
- package/esm/context/viewReport.js +20 -0
- package/esm/index.d.ts +1 -0
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +1 -0
- package/esm/internal.d.ts +1 -0
- package/esm/internal.d.ts.map +1 -1
- package/esm/localization/bundles/en-US.localization-bundle.d.ts +24 -0
- package/esm/localization/bundles/en-US.localization-bundle.d.ts.map +1 -1
- package/esm/localization/bundles/en-US.localization-bundle.js +24 -0
- package/esm/sdk-ui-gen-ai.d.ts +12 -0
- 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 +4 -2
- 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 +5 -1
- package/esm/store/messages/messagesSlice.d.ts +6 -1
- package/esm/store/messages/messagesSlice.d.ts.map +1 -1
- package/esm/store/messages/messagesSlice.js +16 -1
- package/esm/types.d.ts +1 -1
- package/esm/types.d.ts.map +1 -1
- package/esm/utils.d.ts +16 -0
- package/esm/utils.d.ts.map +1 -1
- package/esm/utils.js +32 -0
- package/package.json +20 -20
- package/styles/css/main.css +79 -22
- package/styles/css/main.css.map +1 -1
- package/styles/css/messages.css +79 -22
- package/styles/css/messages.css.map +1 -1
- package/styles/scss/messages.scss +12 -6
- package/esm/components/KeyDriverAnalysis.d.ts +0 -2
- package/esm/components/KeyDriverAnalysis.d.ts.map +0 -1
package/NOTICE
CHANGED
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
|
|
8
8
|
The following 3rd-party software packages may be used by or distributed with gooddata-ui-sdk. Any information relevant to third-party vendors listed below are collected using common, reasonable means.
|
|
9
9
|
|
|
10
|
-
Date generated: 2026-
|
|
10
|
+
Date generated: 2026-10-5
|
|
11
11
|
|
|
12
|
-
Revision ID:
|
|
12
|
+
Revision ID: 56682f8cf5cae43670d656db095664f10acbf10f
|
|
13
13
|
|
|
14
14
|
================================================================================
|
|
15
15
|
================================================================================
|
|
@@ -16014,7 +16014,7 @@ MIT
|
|
|
16014
16014
|
|
|
16015
16015
|
Authors: colinmcd94@gmail.com, hillerfabian11@gmail.com
|
|
16016
16016
|
Package Manager: NPM
|
|
16017
|
-
Project URL: https://
|
|
16017
|
+
Project URL: https://github.com/standard-schema/standard-schema#readme
|
|
16018
16018
|
Package Download URL: https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz
|
|
16019
16019
|
Dependency Path: @reduxjs/toolkit > @standard-schema/utils
|
|
16020
16020
|
File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
@@ -17419,7 +17419,7 @@ MIT
|
|
|
17419
17419
|
|
|
17420
17420
|
Authors: ts-npm-types@microsoft.com
|
|
17421
17421
|
Package Manager: NPM
|
|
17422
|
-
Project URL: https://
|
|
17422
|
+
Project URL: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/ms
|
|
17423
17423
|
Package Download URL: https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz
|
|
17424
17424
|
Dependency Path: react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-expression > mdast-util-from-markdown > micromark > @types/debug > @types/ms > react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-jsx > mdast-util-from-markdown > micromark > @types/debug > @types/ms > react-markdown > hast-util-to-jsx-runtime > mdast-util-mdxjs-esm > mdast-util-from-markdown > micromark > @types/debug > @types/ms > react-markdown > remark-parse > mdast-util-from-markdown > micromark > @types/debug > @types/ms > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > @types/debug > @types/ms > remark-gfm > mdast-util-gfm > mdast-util-gfm-footnote > mdast-util-from-markdown > micromark > @types/debug > @types/ms > remark-gfm > mdast-util-gfm > mdast-util-gfm-strikethrough > mdast-util-from-markdown > micromark > @types/debug > @types/ms > remark-gfm > mdast-util-gfm > mdast-util-gfm-table > mdast-util-from-markdown > micromark > @types/debug > @types/ms > remark-gfm > mdast-util-gfm > mdast-util-gfm-task-list-item > mdast-util-from-markdown > micromark > @types/debug > @types/ms > remark-parse > mdast-util-from-markdown > micromark > @types/debug > @types/ms
|
|
17425
17425
|
File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
@@ -22219,7 +22219,7 @@ MIT
|
|
|
22219
22219
|
|
|
22220
22220
|
Authors: sindresorhus@gmail.com
|
|
22221
22221
|
Package Manager: NPM
|
|
22222
|
-
Project URL: https://
|
|
22222
|
+
Project URL: https://github.com/sindresorhus/cli-cursor#readme
|
|
22223
22223
|
Package Download URL: https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz
|
|
22224
22224
|
Dependency Path: inquirer > ora > cli-cursor > ora > cli-cursor
|
|
22225
22225
|
File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
@@ -22664,7 +22664,7 @@ MIT
|
|
|
22664
22664
|
|
|
22665
22665
|
Authors: npm@josh.junon.me
|
|
22666
22666
|
Package Manager: NPM
|
|
22667
|
-
Project URL: https://
|
|
22667
|
+
Project URL: https://github.com/Qix-/color-convert#readme
|
|
22668
22668
|
Package Download URL: https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz
|
|
22669
22669
|
Dependency Path: @formatjs/cli-lib > @formatjs/ts-transformer > chalk > ansi-styles > color-convert > @formatjs/cli-lib > chalk > ansi-styles > color-convert > inquirer > wrap-ansi > ansi-styles > color-convert > ora > log-symbols > chalk > ansi-styles > color-convert > stylelint > table > slice-ansi > ansi-styles > color-convert > stylelint-config-standard > stylelint > table > slice-ansi > ansi-styles > color-convert > stylelint-config-standard > stylelint-config-recommended > stylelint > table > slice-ansi > ansi-styles > color-convert > stylelint-order > stylelint > table > slice-ansi > ansi-styles > color-convert > stylelint-plugin-defensive-css > stylelint > table > slice-ansi > ansi-styles > color-convert > stylelint-scss > stylelint > table > slice-ansi > ansi-styles > color-convert
|
|
22670
22670
|
File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
@@ -26527,7 +26527,7 @@ MIT
|
|
|
26527
26527
|
|
|
26528
26528
|
Authors: sindresorhus@gmail.com
|
|
26529
26529
|
Package Manager: NPM
|
|
26530
|
-
Project URL: https://
|
|
26530
|
+
Project URL: https://github.com/sindresorhus/env-paths#readme
|
|
26531
26531
|
Package Download URL: https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz
|
|
26532
26532
|
Dependency Path: stylelint > cosmiconfig > env-paths > stylelint-config-standard > stylelint > cosmiconfig > env-paths > stylelint-config-standard > stylelint-config-recommended > stylelint > cosmiconfig > env-paths > stylelint-order > stylelint > cosmiconfig > env-paths > stylelint-plugin-defensive-css > stylelint > cosmiconfig > env-paths > stylelint-scss > stylelint > cosmiconfig > env-paths
|
|
26533
26533
|
File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
@@ -27662,7 +27662,7 @@ Apache-2.0
|
|
|
27662
27662
|
|
|
27663
27663
|
Authors: aboissinot@coveo.com, itaccounts@coveo.com, lbompart@coveo.com, mmitiche@coveo.com, msrioux@coveo.com, ndlabarre@coveo.com, nlegros@coveo.com, npmcoveo@coveo.com, oa-npmcoveo@oacvo.com, olamothe@coveo.com, sallain@coveo.com, sandbox_JSUI@coveo.com, ssayegh@coveo.com, talao@coveo.com, ylakhdar@coveo.com
|
|
27664
27664
|
Package Manager: NPM
|
|
27665
|
-
Project URL: https://
|
|
27665
|
+
Project URL: https://github.com/coveooss/exponential-backoff#readme
|
|
27666
27666
|
Package Download URL: https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.3.tgz
|
|
27667
27667
|
Dependency Path: exponential-backoff
|
|
27668
27668
|
File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
@@ -27825,7 +27825,7 @@ MIT
|
|
|
27825
27825
|
|
|
27826
27826
|
Authors: e.poberezkin@me.com
|
|
27827
27827
|
Package Manager: NPM
|
|
27828
|
-
Project URL: https://
|
|
27828
|
+
Project URL: https://github.com/epoberezkin/fast-deep-equal#readme
|
|
27829
27829
|
Package Download URL: https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz
|
|
27830
27830
|
Dependency Path: @evil-internetmann/react-dnd > fast-deep-equal > html-validate > @sidvind/better-ajv-errors > ajv > fast-deep-equal > html-validate > ajv > fast-deep-equal > stylelint > table > ajv > fast-deep-equal > stylelint-config-standard > stylelint > table > ajv > fast-deep-equal > stylelint-config-standard > stylelint-config-recommended > stylelint > table > ajv > fast-deep-equal > stylelint-order > stylelint > table > ajv > fast-deep-equal > stylelint-plugin-defensive-css > stylelint > table > ajv > fast-deep-equal > stylelint-scss > stylelint > table > ajv > fast-deep-equal
|
|
27831
27831
|
File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
@@ -30634,7 +30634,7 @@ MIT
|
|
|
30634
30634
|
|
|
30635
30635
|
Authors: ljharb@gmail.com
|
|
30636
30636
|
Package Manager: NPM
|
|
30637
|
-
Project URL: https://
|
|
30637
|
+
Project URL: https://github.com/inspect-js/has-tostringtag#readme
|
|
30638
30638
|
Package Download URL: https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz
|
|
30639
30639
|
Dependency Path: axios > form-data > es-set-tostringtag > has-tostringtag > axios-cache-interceptor > axios > form-data > es-set-tostringtag > has-tostringtag
|
|
30640
30640
|
File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
@@ -32937,7 +32937,7 @@ MIT
|
|
|
32937
32937
|
|
|
32938
32938
|
Authors: sindresorhus@gmail.com
|
|
32939
32939
|
Package Manager: NPM
|
|
32940
|
-
Project URL: https://
|
|
32940
|
+
Project URL: https://github.com/sindresorhus/import-fresh#readme
|
|
32941
32941
|
Package Download URL: https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz
|
|
32942
32942
|
Dependency Path: react-select > @emotion/react > @emotion/babel-plugin > babel-plugin-macros > cosmiconfig > import-fresh > react-select-async-paginate > react-select > @emotion/react > @emotion/babel-plugin > babel-plugin-macros > cosmiconfig > import-fresh > stylelint > cosmiconfig > import-fresh > stylelint-config-standard > stylelint > cosmiconfig > import-fresh > stylelint-config-standard > stylelint-config-recommended > stylelint > cosmiconfig > import-fresh > stylelint-order > stylelint > cosmiconfig > import-fresh > stylelint-plugin-defensive-css > stylelint > cosmiconfig > import-fresh > stylelint-scss > stylelint > cosmiconfig > import-fresh
|
|
32943
32943
|
File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
@@ -33883,7 +33883,7 @@ MIT
|
|
|
33883
33883
|
|
|
33884
33884
|
Authors: sindresorhus@gmail.com
|
|
33885
33885
|
Package Manager: NPM
|
|
33886
|
-
Project URL: https://
|
|
33886
|
+
Project URL: https://github.com/sindresorhus/is-docker#readme
|
|
33887
33887
|
Package Download URL: https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz
|
|
33888
33888
|
Dependency Path: open > is-docker > open > is-wsl > is-docker
|
|
33889
33889
|
File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
@@ -34035,7 +34035,7 @@ MIT
|
|
|
34035
34035
|
|
|
34036
34036
|
Authors: sindresorhus@gmail.com
|
|
34037
34037
|
Package Manager: NPM
|
|
34038
|
-
Project URL: https://
|
|
34038
|
+
Project URL: https://github.com/sindresorhus/is-fullwidth-code-point#readme
|
|
34039
34039
|
Package Download URL: https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz
|
|
34040
34040
|
Dependency Path: inquirer > string-width > is-fullwidth-code-point > inquirer > wrap-ansi > string-width > is-fullwidth-code-point > stylelint > string-width > is-fullwidth-code-point > stylelint > table > slice-ansi > is-fullwidth-code-point > stylelint > table > string-width > is-fullwidth-code-point > stylelint-config-standard > stylelint > table > string-width > is-fullwidth-code-point > stylelint-config-standard > stylelint-config-recommended > stylelint > table > string-width > is-fullwidth-code-point > stylelint-order > stylelint > table > string-width > is-fullwidth-code-point > stylelint-plugin-defensive-css > stylelint > table > string-width > is-fullwidth-code-point > stylelint-scss > stylelint > table > string-width > is-fullwidth-code-point
|
|
34041
34041
|
File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
@@ -52894,7 +52894,7 @@ MIT
|
|
|
52894
52894
|
|
|
52895
52895
|
Authors: vojtech@miksu.cz
|
|
52896
52896
|
Package Manager: NPM
|
|
52897
|
-
Project URL: https://
|
|
52897
|
+
Project URL: https://github.com/tajo/react-portal#readme
|
|
52898
52898
|
Package Download URL: https://registry.npmjs.org/react-portal/-/react-portal-4.3.0.tgz
|
|
52899
52899
|
Dependency Path: react-portal
|
|
52900
52900
|
File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
@@ -55333,7 +55333,7 @@ MIT
|
|
|
55333
55333
|
|
|
55334
55334
|
Authors: johnotander@gmail.com, remcohaszing@gmail.com, tituswormer@gmail.com
|
|
55335
55335
|
Package Manager: NPM
|
|
55336
|
-
Project URL: https://
|
|
55336
|
+
Project URL: https://github.com/remarkjs/remark-gfm#readme
|
|
55337
55337
|
Package Download URL: https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz
|
|
55338
55338
|
Dependency Path: remark-gfm
|
|
55339
55339
|
File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
@@ -56255,7 +56255,7 @@ MIT
|
|
|
56255
56255
|
|
|
56256
56256
|
Authors: hello@matteocollina.com
|
|
56257
56257
|
Package Manager: NPM
|
|
56258
|
-
Project URL: https://
|
|
56258
|
+
Project URL: https://github.com/mcollina/reusify#readme
|
|
56259
56259
|
Package Download URL: https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz
|
|
56260
56260
|
Dependency Path: @formatjs/cli-lib > fast-glob > @nodelib/fs.walk > fastq > reusify > fast-glob > @nodelib/fs.walk > fastq > reusify > stylelint > fast-glob > @nodelib/fs.walk > fastq > reusify > stylelint > globby > fast-glob > @nodelib/fs.walk > fastq > reusify > stylelint-config-standard > stylelint > fast-glob > @nodelib/fs.walk > fastq > reusify > stylelint-config-standard > stylelint-config-recommended > stylelint > fast-glob > @nodelib/fs.walk > fastq > reusify > stylelint-config-standard > stylelint-config-recommended > stylelint > globby > fast-glob > @nodelib/fs.walk > fastq > reusify > stylelint-order > stylelint > fast-glob > @nodelib/fs.walk > fastq > reusify > stylelint-plugin-defensive-css > stylelint > fast-glob > @nodelib/fs.walk > fastq > reusify > stylelint-scss > stylelint > fast-glob > @nodelib/fs.walk > fastq > reusify
|
|
56261
56261
|
File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
@@ -57490,7 +57490,7 @@ MIT
|
|
|
57490
57490
|
|
|
57491
57491
|
Authors: terkel@terkel.com
|
|
57492
57492
|
Package Manager: NPM
|
|
57493
|
-
Project URL: https://
|
|
57493
|
+
Project URL: https://github.com/terkelg/sisteransi#readme
|
|
57494
57494
|
Package Download URL: https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz
|
|
57495
57495
|
Dependency Path: html-validate > prompts > sisteransi
|
|
57496
57496
|
File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
@@ -63881,8 +63881,8 @@ SOFTWARE.
|
|
|
63881
63881
|
* Copyrights *
|
|
63882
63882
|
MIT
|
|
63883
63883
|
- Copyright (c) 2013 James Halliday
|
|
63884
|
-
- Copyright (c) 2015 Titus Wormer <tituswormer@gmail.com>
|
|
63885
63884
|
- Copyright (c) Joyent, Inc. and other Node contributors.
|
|
63885
|
+
- Copyright (c) 2015 Titus Wormer <tituswormer@gmail.com>
|
|
63886
63886
|
|
|
63887
63887
|
* Package Info *
|
|
63888
63888
|
|
|
@@ -64727,7 +64727,7 @@ MIT
|
|
|
64727
64727
|
|
|
64728
64728
|
Authors: sindresorhus@gmail.com
|
|
64729
64729
|
Package Manager: NPM
|
|
64730
|
-
Project URL: https://
|
|
64730
|
+
Project URL: https://github.com/sindresorhus/yoctocolors#readme
|
|
64731
64731
|
Package Download URL: https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz
|
|
64732
64732
|
Dependency Path: inquirer > yoctocolors-cjs
|
|
64733
64733
|
File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
@@ -64914,4 +64914,4 @@ File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
|
64914
64914
|
--------------------------------------------------------------------------------
|
|
64915
64915
|
--------------------------------------------------------------------------------
|
|
64916
64916
|
|
|
64917
|
-
Report Generated by FOSSA on 2026-
|
|
64917
|
+
Report Generated by FOSSA on 2026-10-5
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenAIChatDialog.d.ts","sourceRoot":"","sources":["../../src/components/GenAIChatDialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAA2C,MAAM,OAAO,CAAC;AAchF,OAAO,EAAkD,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3G,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"GenAIChatDialog.d.ts","sourceRoot":"","sources":["../../src/components/GenAIChatDialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAA2C,MAAM,OAAO,CAAC;AAchF,OAAO,EAAkD,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3G,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAGlE,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEnE,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,GAAG;IACnE,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,aAAa,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC;IACvD,WAAW,CAAC,EAAE,CAAC,cAAc,EAAE,gBAAgB,KAAK,MAAM,GAAG,SAAS,CAAC;IAEvE;;OAEG;IACH,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAE7B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AASF,wBAAgB,eAAe,CAAC,EAC5B,OAAO,EACP,SAAS,EACT,MAAM,EACN,QAAQ,EACR,MAAM,EACN,MAAM,EACN,OAAO,EACP,QAAQ,EACR,SAAS,EACT,cAAc,EACd,gBAAuB,EACvB,aAAa,EACb,WAAW,EACX,WAAW,EACX,WAAW,EACX,SAAiB,EACjB,UAAkB,EAClB,cAAsB,EACtB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,IAAI,EACJ,WAAW,EACX,KAAK,EACL,aAAa,GAChB,EAAE,oBAAoB,2CA8CtB"}
|
|
@@ -10,8 +10,8 @@ import { getIsOpened } from "../store/localStorage.js";
|
|
|
10
10
|
import { ConfigProvider } from "./ConfigContext.js";
|
|
11
11
|
import { CustomizationProvider } from "./CustomizationProvider.js";
|
|
12
12
|
import { GenAIChatOverlay } from "./GenAIChatOverlay.js";
|
|
13
|
+
import { GenAiKeyDriverAnalysis } from "./GenAiKeyDriverAnalysis.js";
|
|
13
14
|
import { GenAiStore } from "./GenAiStore.js";
|
|
14
|
-
import { KeyDriverAnalysis } from "./KeyDriverAnalysis.js";
|
|
15
15
|
// Default z-index:
|
|
16
16
|
// - High enough to be over other dialogs
|
|
17
17
|
// - Below chart tooltips
|
|
@@ -21,9 +21,9 @@ const DEFAULT_KDA_Z_INDEX = 3050;
|
|
|
21
21
|
export function GenAIChatDialog({ backend, workspace, locale, disabled, isOpen, onOpen, onClose, settings, className, dialogPosition, allowNativeLinks = true, returnFocusTo, objectTypes, includeTags, excludeTags, canManage = false, canAnalyze = false, canFullControl = false, eventHandlers, catalogItems, colorPalette, onLinkClick, onDispatcher, mode, displayMode, slots, closeOnEscape, }) {
|
|
22
22
|
const effectiveBackend = useBackendStrict(backend);
|
|
23
23
|
const effectiveWorkspace = useWorkspaceStrict(workspace);
|
|
24
|
-
return (_jsx(IntlWrapper, { locale: locale, children: _jsx(GenAiStore, { backend: effectiveBackend, workspace: effectiveWorkspace, onDispatcher: onDispatcher, eventHandlers: eventHandlers, colorPalette: colorPalette, allowNativeLinks: allowNativeLinks, onLinkClick: onLinkClick, settings: settings, objectTypes: objectTypes, includeTags: includeTags, excludeTags: excludeTags, catalogItems: catalogItems, mode: mode, children: (genAIStore) => (_jsx(GenAIChatDialogContent, { genAIStore: genAIStore, backend: effectiveBackend, workspace: effectiveWorkspace, className: className, dialogPosition: dialogPosition, disabled: disabled, isOpen: isOpen, onOpen: onOpen, onClose: onClose, returnFocusTo: returnFocusTo, closeOnEscape: closeOnEscape, allowNativeLinks: allowNativeLinks,
|
|
24
|
+
return (_jsx(IntlWrapper, { locale: locale, children: _jsx(GenAiStore, { backend: effectiveBackend, workspace: effectiveWorkspace, onDispatcher: onDispatcher, eventHandlers: eventHandlers, colorPalette: colorPalette, allowNativeLinks: allowNativeLinks, onLinkClick: onLinkClick, settings: settings, objectTypes: objectTypes, includeTags: includeTags, excludeTags: excludeTags, catalogItems: catalogItems, mode: mode, children: (genAIStore) => (_jsx(GenAIChatDialogContent, { genAIStore: genAIStore, backend: effectiveBackend, workspace: effectiveWorkspace, className: className, dialogPosition: dialogPosition, disabled: disabled, isOpen: isOpen, onOpen: onOpen, onClose: onClose, returnFocusTo: returnFocusTo, closeOnEscape: closeOnEscape, allowNativeLinks: allowNativeLinks, catalogItems: catalogItems, canManage: canManage, canAnalyze: canAnalyze, canFullControl: canFullControl, slots: slots, displayMode: displayMode })) }) }));
|
|
25
25
|
}
|
|
26
|
-
function GenAIChatDialogContent({ genAIStore, backend, workspace, className, dialogPosition, disabled, isOpen, onOpen, onClose, returnFocusTo,
|
|
26
|
+
function GenAIChatDialogContent({ genAIStore, backend, workspace, className, dialogPosition, disabled, isOpen, onOpen, onClose, returnFocusTo, allowNativeLinks, catalogItems, canManage, canAnalyze, canFullControl, slots, displayMode, closeOnEscape, }) {
|
|
27
27
|
const open = useRef(onOpen);
|
|
28
28
|
open.current = onOpen;
|
|
29
29
|
const close = useRef(onClose);
|
|
@@ -63,5 +63,5 @@ function GenAIChatDialogContent({ genAIStore, backend, workspace, className, dia
|
|
|
63
63
|
const parentOverlayController = useOverlayController();
|
|
64
64
|
const chatOverlayController = useMemo(() => parentOverlayController ?? OverlayController.getInstance(DEFAULT_CHAT_Z_INDEX), [parentOverlayController]);
|
|
65
65
|
const kdaOverlayController = useMemo(() => parentOverlayController ?? OverlayController.getInstance(DEFAULT_KDA_Z_INDEX), [parentOverlayController]);
|
|
66
|
-
return (_jsx(BackendProvider, { backend: backend, children: _jsx(WorkspaceProvider, { workspace: workspace, children: _jsxs(OverlayControllerProvider, { overlayController: chatOverlayController, children: [isOpen && !disabled ? (_jsx(ConfigProvider, { allowNativeLinks: allowNativeLinks,
|
|
66
|
+
return (_jsx(BackendProvider, { backend: backend, children: _jsx(WorkspaceProvider, { workspace: workspace, children: _jsxs(OverlayControllerProvider, { overlayController: chatOverlayController, children: [isOpen && !disabled ? (_jsx(ConfigProvider, { allowNativeLinks: allowNativeLinks, catalogItems: catalogItems, canManage: canManage, canAnalyze: canAnalyze, canFullControl: canFullControl, children: _jsx(CustomizationProvider, { slots: slots, children: _jsx(GenAIChatOverlay, { className: className, dialogPosition: dialogPosition, returnFocusTo: returnFocusTo, closeOnEscape: closeOnEscape, displayMode: displayMode, onClose: onCloseHandler }) }) })) : null, _jsx(OverlayControllerProvider, { overlayController: kdaOverlayController, children: _jsx(GenAiKeyDriverAnalysis, {}) })] }) }) }));
|
|
67
67
|
}
|
|
@@ -3,6 +3,7 @@ import { type IAnalyticalBackend, type IUserWorkspaceSettings } from "@gooddata/
|
|
|
3
3
|
import type { GenAIObjectType, IColorPalette, IGenAIUserContext } from "@gooddata/sdk-model";
|
|
4
4
|
import { type ChatAssistantMessageEvent, type ChatClosedEvent, type ChatCopyToClipboardEvent, type ChatDefinitionReceivedEvent, type ChatEvent, type ChatFeedbackErrorEvent, type ChatFeedbackEvent, type ChatModeChangeEvent, type ChatOpenedEvent, type ChatResetEvent, type ChatSaveVisualizationErrorEvent, type ChatSaveVisualizationSuccessEvent, type ChatUserMessageEvent } from "../store/events.js";
|
|
5
5
|
import { type GenAIAssistantDisplayMode, type LinkHandlerEvent } from "./ConfigContext.js";
|
|
6
|
+
import { type IReportSaved } from "./hooks/useReportSavedSync.js";
|
|
6
7
|
/**
|
|
7
8
|
* Discriminated union of GenAI chat events surfaced to a caller via {@link IGenAIChatDialogConnectedProps.onEvent}.
|
|
8
9
|
*
|
|
@@ -105,6 +106,11 @@ export interface IGenAIChatDialogConnectedProps {
|
|
|
105
106
|
* Whether the ambient user context is currently loading.
|
|
106
107
|
*/
|
|
107
108
|
ambientUserContextLoading?: boolean;
|
|
109
|
+
/**
|
|
110
|
+
* A report of the conversation that an application saved. The report in the chat then reads as
|
|
111
|
+
* saved without the conversation being loaded again. Each save carries a new `seq`.
|
|
112
|
+
*/
|
|
113
|
+
reportSaved?: IReportSaved;
|
|
108
114
|
/**
|
|
109
115
|
* Agent ID to use for the seeded question. If not provided, the default agent will be used.
|
|
110
116
|
*/
|
|
@@ -142,5 +148,5 @@ export interface IGenAIChatDialogConnectedProps {
|
|
|
142
148
|
*
|
|
143
149
|
* @internal
|
|
144
150
|
*/
|
|
145
|
-
export declare function GenAIChatDialogConnected({ backend, workspace, locale, canManage, canAnalyze, canFullControl, settings, agentId, isOpen, isDisabled, displayMode, onOpen, onClose, askedQuestion, askSeq, userContext, ambientUserContext, ambientUserContextLoading, appendToChat, replaceUserContext, includeTags, excludeTags, objectTypes: objectTypesOverride, onEvent, onAnyEvent, dialogPosition, className, colorPalette, allowNativeLinks, onLinkClick, returnFocusTo, }: IGenAIChatDialogConnectedProps): import("react/jsx-runtime").JSX.Element;
|
|
151
|
+
export declare function GenAIChatDialogConnected({ backend, workspace, locale, canManage, canAnalyze, canFullControl, settings, agentId, isOpen, isDisabled, displayMode, onOpen, onClose, askedQuestion, askSeq, userContext, ambientUserContext, ambientUserContextLoading, reportSaved, appendToChat, replaceUserContext, includeTags, excludeTags, objectTypes: objectTypesOverride, onEvent, onAnyEvent, dialogPosition, className, colorPalette, allowNativeLinks, onLinkClick, returnFocusTo, }: IGenAIChatDialogConnectedProps): import("react/jsx-runtime").JSX.Element;
|
|
146
152
|
//# sourceMappingURL=GenAIChatDialogConnected.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenAIChatDialogConnected.d.ts","sourceRoot":"","sources":["../../src/components/GenAIChatDialogConnected.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAqD,MAAM,OAAO,CAAC;AAE1F,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACjG,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAI7F,OAAO,EACH,KAAK,yBAAyB,EAC9B,KAAK,eAAe,EACpB,KAAK,wBAAwB,EAC7B,KAAK,2BAA2B,EAChC,KAAK,SAAS,EACd,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,+BAA+B,EACpC,KAAK,iCAAiC,EACtC,KAAK,oBAAoB,EAa5B,MAAM,oBAAoB,CAAC;AAO5B,OAAO,EAAE,KAAK,yBAAyB,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"GenAIChatDialogConnected.d.ts","sourceRoot":"","sources":["../../src/components/GenAIChatDialogConnected.tsx"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ import { setAmbientUserContextAction, setUserContextAction } from "../store/chat
|
|
|
6
6
|
import { isChatAssistantMessageEvent, isChatClosedEvent, isChatCopyToClipboardEvent, isChatDefinitionReceivedEvent, isChatFeedbackErrorEvent, isChatFeedbackEvent, isChatModeChangeEvent, isChatOpenedEvent, isChatResetEvent, isChatSaveVisualizationErrorEvent, isChatSaveVisualizationSuccessEvent, isChatUserMessageEvent, } from "../store/events.js";
|
|
7
7
|
import { clearThreadAction, newMessageAction, setSelectedAgentAction, } from "../store/messages/messagesSlice.js";
|
|
8
8
|
import { GenAIChatDialog } from "./GenAIChatDialog.js";
|
|
9
|
+
import { useReportSavedSync } from "./hooks/useReportSavedSync.js";
|
|
9
10
|
/**
|
|
10
11
|
* A "connected" wrapper over {@link GenAIChatDialog} that centralizes the wiring every consumer otherwise
|
|
11
12
|
* duplicates: object-type derivation, the dispatcher-based seeding flow (clear thread / set user context), default link handling, and normalizing
|
|
@@ -16,7 +17,7 @@ import { GenAIChatDialog } from "./GenAIChatDialog.js";
|
|
|
16
17
|
*
|
|
17
18
|
* @internal
|
|
18
19
|
*/
|
|
19
|
-
export function GenAIChatDialogConnected({ backend, workspace, locale, canManage, canAnalyze, canFullControl, settings, agentId, isOpen, isDisabled = true, displayMode, onOpen, onClose, askedQuestion, askSeq, userContext, ambientUserContext, ambientUserContextLoading, appendToChat, replaceUserContext, includeTags, excludeTags, objectTypes: objectTypesOverride, onEvent, onAnyEvent, dialogPosition, className, colorPalette, allowNativeLinks = true, onLinkClick, returnFocusTo, }) {
|
|
20
|
+
export function GenAIChatDialogConnected({ backend, workspace, locale, canManage, canAnalyze, canFullControl, settings, agentId, isOpen, isDisabled = true, displayMode, onOpen, onClose, askedQuestion, askSeq, userContext, ambientUserContext, ambientUserContextLoading, reportSaved, appendToChat, replaceUserContext, includeTags, excludeTags, objectTypes: objectTypesOverride, onEvent, onAnyEvent, dialogPosition, className, colorPalette, allowNativeLinks = true, onLinkClick, returnFocusTo, }) {
|
|
20
21
|
const defaultLinkClick = useCallback(({ itemUrl, newTab, preventDefault, type, dashboardStatus, }) => {
|
|
21
22
|
// NOTE: If dashboard is draft, do nothing for now
|
|
22
23
|
if (type === "dashboard" && dashboardStatus === "draft") {
|
|
@@ -106,6 +107,7 @@ export function GenAIChatDialogConnected({ backend, workspace, locale, canManage
|
|
|
106
107
|
loading: ambientUserContextLoading,
|
|
107
108
|
}));
|
|
108
109
|
}, [chatDispatcher, ambientUserContext, ambientUserContextLoading]);
|
|
110
|
+
useReportSavedSync(chatDispatcher, reportSaved);
|
|
109
111
|
// The token of the last seed we applied. Each ask is identified by `askSeq` (bumped on every ask,
|
|
110
112
|
// so even a repeated identical question re-seeds); we seed once per token. Without this guard the
|
|
111
113
|
// effect would replay the question whenever `settings`/`userContext` merely change object identity.
|
|
@@ -4,7 +4,7 @@ import { useCallback, useEffect, useMemo, useState } from "react";
|
|
|
4
4
|
import cx from "classnames";
|
|
5
5
|
import { defineMessages, useIntl } from "react-intl";
|
|
6
6
|
import { useBackendStrict, useWorkspaceStrict } from "@gooddata/sdk-ui";
|
|
7
|
-
import {
|
|
7
|
+
import { DefaultSyntaxHighlightingInput } from "@gooddata/sdk-ui-kit";
|
|
8
8
|
import { useGenAIStandaloneInputData } from "../hooks/useGenAIStandaloneInputData.js";
|
|
9
9
|
import { IntlWrapper } from "../localization/IntlWrapper.js";
|
|
10
10
|
import { useCompletion } from "./completion/useCompletion.js";
|
|
@@ -67,7 +67,7 @@ function StandaloneInputContent({ onStart, onAgentSet, onAgentsLoaded, className
|
|
|
67
67
|
"gd-gen-ai-chat__input--big-screen": isBigScreen,
|
|
68
68
|
"gd-gen-ai-chat__input--small-screen": isSmallScreen,
|
|
69
69
|
"gd-gen-ai-chat__input--agent-switching": agentSwitchingEnabled,
|
|
70
|
-
}), children: _jsx("div", { className: "gd-gen-ai-chat__input__content", children: _jsxs("div", { className: "gd-gen-ai-chat__input__container", children: [_jsx("div", { className: "gd-gen-ai-chat__input__text", ...ref, children: _jsx(
|
|
70
|
+
}), children: _jsx("div", { className: "gd-gen-ai-chat__input__content", children: _jsxs("div", { className: "gd-gen-ai-chat__input__container", children: [_jsx("div", { className: "gd-gen-ai-chat__input__text", ...ref, children: _jsx(DefaultSyntaxHighlightingInput, { className: "gd-gen-ai-chat__input__mc", placeholder: placeholder ?? intl.formatMessage(msgs.placeholder), value: value, onApi: setApi, onChange: setValue, onKeyDown: handleKeyDown, beforeExtensions: beforeExtensions, extensions: extensions, onCompletion: onCompletion }) }), _jsx(GenAiChatAgentSwitching, { agentsOverride: agents, disabled: !value.trim(), agentDropdownDisabled: false, isAssistantLoading: false, isConversationsLoading: false, handleSubmit: handleSubmit })] }) }) }));
|
|
71
71
|
}
|
|
72
72
|
/**
|
|
73
73
|
* @internal
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UI component that renders the Key Driver Analysis dialog when requested in the GenAI store.
|
|
3
|
+
*
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
export declare function GenAiKeyDriverAnalysis(): import("react/jsx-runtime").JSX.Element | null;
|
|
7
|
+
//# sourceMappingURL=GenAiKeyDriverAnalysis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenAiKeyDriverAnalysis.d.ts","sourceRoot":"","sources":["../../src/components/GenAiKeyDriverAnalysis.tsx"],"names":[],"mappings":"AAuBA;;;;GAIG;AACH,wBAAgB,sBAAsB,mDAsFrC"}
|
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
// (C) 2025-2026 GoodData Corporation
|
|
3
|
-
import { useCallback, useMemo } from "react";
|
|
3
|
+
import { useCallback, useEffect, useMemo } from "react";
|
|
4
4
|
import { useIntl } from "react-intl";
|
|
5
5
|
import { useDispatch, useSelector } from "react-redux";
|
|
6
6
|
import { IntlWrapper, KdaDialogController, KdaStoreProvider } from "@gooddata/sdk-ui-dashboard/internal";
|
|
7
7
|
import { useOverlayController } from "@gooddata/sdk-ui-kit";
|
|
8
8
|
import { keyDriverAnalysisSelector, settingsSelector, tagsSelector, } from "../store/chatWindow/chatWindowSelectors.js";
|
|
9
|
-
import { setKeyDriverAnalysisAction, setKeyDriverAnalysisMinimizedAction, } from "../store/chatWindow/chatWindowSlice.js";
|
|
9
|
+
import { setKeyDriverAnalysisAction, setKeyDriverAnalysisMinimizedAction, setKeyDriverAnalysisMountedAction, } from "../store/chatWindow/chatWindowSlice.js";
|
|
10
10
|
import { returnFocusToKdaTrigger } from "../utils/kdaReturnFocus.js";
|
|
11
|
-
|
|
11
|
+
/**
|
|
12
|
+
* UI component that renders the Key Driver Analysis dialog when requested in the GenAI store.
|
|
13
|
+
*
|
|
14
|
+
* @public
|
|
15
|
+
*/
|
|
16
|
+
export function GenAiKeyDriverAnalysis() {
|
|
12
17
|
const intl = useIntl();
|
|
13
18
|
const parentOverlayController = useOverlayController();
|
|
14
19
|
const settings = useSelector(settingsSelector);
|
|
@@ -19,6 +24,12 @@ export function KeyDriverAnalysis() {
|
|
|
19
24
|
const includeTags = tags?.includeTags;
|
|
20
25
|
const excludeTags = tags?.excludeTags;
|
|
21
26
|
const dispatch = useDispatch();
|
|
27
|
+
useEffect(() => {
|
|
28
|
+
dispatch(setKeyDriverAnalysisMountedAction({ isMounted: true }));
|
|
29
|
+
return () => {
|
|
30
|
+
dispatch(setKeyDriverAnalysisMountedAction({ isMounted: false }));
|
|
31
|
+
};
|
|
32
|
+
}, [dispatch]);
|
|
22
33
|
const setKeyDriverAnalysis = useCallback((...args) => {
|
|
23
34
|
dispatch(setKeyDriverAnalysisAction(...args));
|
|
24
35
|
}, [dispatch]);
|
package/esm/components/Input.js
CHANGED
|
@@ -4,7 +4,7 @@ import { useMemo, useState } from "react";
|
|
|
4
4
|
import cx from "classnames";
|
|
5
5
|
import { FormattedMessage, defineMessages, useIntl } from "react-intl";
|
|
6
6
|
import { useDispatch, useSelector } from "react-redux";
|
|
7
|
-
import {
|
|
7
|
+
import { DefaultSyntaxHighlightingInput } from "@gooddata/sdk-ui-kit";
|
|
8
8
|
import { makeUserItem } from "../model.js";
|
|
9
9
|
import { agentSwitchingEnabledSelector, inputValueSelector, } from "../store/chatWindow/chatWindowSelectors.js";
|
|
10
10
|
import { setInputValueAction } from "../store/chatWindow/chatWindowSlice.js";
|
|
@@ -104,7 +104,7 @@ function InputComponent({ autofocus = false, canManage, canAnalyze, targetRef })
|
|
|
104
104
|
"gd-gen-ai-chat__input--empty": isEmpty,
|
|
105
105
|
"gd-gen-ai-chat__input--agent-switching": agentSwitchingEnabled,
|
|
106
106
|
"gd-gen-ai-chat__input--no-agents": hasNoAgents,
|
|
107
|
-
}), children: _jsxs("div", { className: "gd-gen-ai-chat__input__content", children: [_jsx(HintText, { focused: focused, where: "top" }), _jsxs("div", { className: "gd-gen-ai-chat__input__container", children: [_jsx("div", { className: "gd-gen-ai-chat__input__context", onMouseDown: handleContextMouseDown, children: _jsx(GenAIChatContextIndicator, { onUpdate: handleOnFocus }) }), _jsx("div", { ref: targetRef, onFocus: handleOnFocus }), _jsx("div", { className: "gd-gen-ai-chat__input__text", ...ref, children: _jsx(
|
|
107
|
+
}), children: _jsxs("div", { className: "gd-gen-ai-chat__input__content", children: [_jsx(HintText, { focused: focused, where: "top" }), _jsxs("div", { className: "gd-gen-ai-chat__input__container", children: [_jsx("div", { className: "gd-gen-ai-chat__input__context", onMouseDown: handleContextMouseDown, children: _jsx(GenAIChatContextIndicator, { onUpdate: handleOnFocus }) }), _jsx("div", { ref: targetRef, onFocus: handleOnFocus }), _jsx("div", { className: "gd-gen-ai-chat__input__text", ...ref, children: _jsx(DefaultSyntaxHighlightingInput, { className: "gd-gen-ai-chat__input__mc", placeholder: intl.formatMessage(msgs.placeholder), label: intl.formatMessage(msgs.label), value: value, autocompletion: {
|
|
108
108
|
aboveCursor: true,
|
|
109
109
|
whenTyping: true,
|
|
110
110
|
whenTypingDelay: 300,
|
|
@@ -258,6 +258,11 @@ export type IGenAIAssistantConversationVisualizationContentProps = {
|
|
|
258
258
|
*/
|
|
259
259
|
copyLink?: boolean;
|
|
260
260
|
};
|
|
261
|
+
/**
|
|
262
|
+
* Controls whether key driver analysis (explain on charts) is enabled.
|
|
263
|
+
* When undefined, defaults to whether KeyDriverAnalysis is mounted and the enableChangeAnalysis setting is active.
|
|
264
|
+
*/
|
|
265
|
+
enableKeyDriverAnalysis?: boolean;
|
|
261
266
|
};
|
|
262
267
|
/**
|
|
263
268
|
* Properties for the FollowUpButtons slot.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/customized/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/customized/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ export declare function useUserContextItems(ambientContext: IGenAIUserContext |
|
|
|
11
11
|
export declare function useAmbientContextItems(ambientContext: IGenAIUserContext | undefined): {
|
|
12
12
|
items: (IGenAIContextObject | {
|
|
13
13
|
id: string;
|
|
14
|
-
ref
|
|
14
|
+
ref?: ObjRef;
|
|
15
15
|
title: string;
|
|
16
16
|
nesting: number;
|
|
17
17
|
type: import("@gooddata/sdk-model").GenAIObjectType | "widget" | "report";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useContextItems.d.ts","sourceRoot":"","sources":["../../../src/components/hooks/useContextItems.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,MAAM,EAAmB,MAAM,qBAAqB,CAAC;AAe3F,OAAO,EAIH,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACvB,MAAM,gBAAgB,CAAC;AAExB,wBAAgB,mBAAmB,CAC/B,cAAc,EAAE,iBAAiB,GAAG,SAAS,EAC7C,eAAe,EAAE,eAAe,GAAG,SAAS,EAC5C,aAAa,EAAE,iBAAiB,GAAG,SAAS;;;
|
|
1
|
+
{"version":3,"file":"useContextItems.d.ts","sourceRoot":"","sources":["../../../src/components/hooks/useContextItems.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,MAAM,EAAmB,MAAM,qBAAqB,CAAC;AAe3F,OAAO,EAIH,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACvB,MAAM,gBAAgB,CAAC;AAExB,wBAAgB,mBAAmB,CAC/B,cAAc,EAAE,iBAAiB,GAAG,SAAS,EAC7C,eAAe,EAAE,eAAe,GAAG,SAAS,EAC5C,aAAa,EAAE,iBAAiB,GAAG,SAAS;;;uBAgDhC,MAAM;;;;EAgCrB;AAED,wBAAgB,sBAAsB,CAAC,cAAc,EAAE,iBAAiB,GAAG,SAAS;;;;;;;;;;;;;;uBAwBpE,MAAM;iBAgBO,MAAM,EAAE;EAEpC"}
|
|
@@ -19,7 +19,9 @@ export function useUserContextItems(ambientContext, selectedContext, activeConte
|
|
|
19
19
|
const selectedReferences = collectContextReferences(activeContext, selectedContext, emptyReferenceLabel);
|
|
20
20
|
const offered = new Set();
|
|
21
21
|
collectAvailableReferences(ambientContext, emptyReferenceLabel).forEach((reference) => {
|
|
22
|
-
|
|
22
|
+
if (reference.ref) {
|
|
23
|
+
offered.add(serializeObjRef(reference.ref));
|
|
24
|
+
}
|
|
23
25
|
if (reference.insightRef) {
|
|
24
26
|
offered.add(serializeObjRef(reference.insightRef));
|
|
25
27
|
}
|
|
@@ -27,7 +29,7 @@ export function useUserContextItems(ambientContext, selectedContext, activeConte
|
|
|
27
29
|
const workspaceReferences = [
|
|
28
30
|
...searchable(dashboards, "dashboard", emptyReferenceLabel, matchesSearch),
|
|
29
31
|
...searchable(visualizations, "visualization", emptyReferenceLabel, matchesSearch),
|
|
30
|
-
].filter((reference) => !offered.has(serializeObjRef(reference.ref)));
|
|
32
|
+
].filter((reference) => !reference.ref || !offered.has(serializeObjRef(reference.ref)));
|
|
31
33
|
return workspaceReferences.filter((reference) => !selectedReferences.some((selectedReference) => isSameObject(selectedReference, reference)));
|
|
32
34
|
}, [
|
|
33
35
|
search,
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { reportSavedAction } from "../../store/messages/messagesSlice.js";
|
|
2
|
+
/**
|
|
3
|
+
* A report of the chat that an application saved. `seq` tells one save from the next, so saving the
|
|
4
|
+
* same report again is reported again.
|
|
5
|
+
*/
|
|
6
|
+
export interface IReportSaved {
|
|
7
|
+
seq: number;
|
|
8
|
+
conversationId: string;
|
|
9
|
+
itemId: string;
|
|
10
|
+
reportRef?: string;
|
|
11
|
+
savedReportId: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Tells the chat store about a report an application saved, so the report in the chat reads as saved
|
|
15
|
+
* without the conversation being loaded again.
|
|
16
|
+
*/
|
|
17
|
+
export declare function useReportSavedSync(dispatch: ((action: ReturnType<typeof reportSavedAction>) => void) | null, reportSaved: IReportSaved | undefined): void;
|
|
18
|
+
//# sourceMappingURL=useReportSavedSync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useReportSavedSync.d.ts","sourceRoot":"","sources":["../../../src/components/hooks/useReportSavedSync.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAE1E;;;GAGG;AACH,MAAM,WAAW,YAAY;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,EACzE,WAAW,EAAE,YAAY,GAAG,SAAS,QAYxC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// (C) 2026 GoodData Corporation
|
|
2
|
+
import { useEffect, useRef } from "react";
|
|
3
|
+
import { reportSavedAction } from "../../store/messages/messagesSlice.js";
|
|
4
|
+
/**
|
|
5
|
+
* Tells the chat store about a report an application saved, so the report in the chat reads as saved
|
|
6
|
+
* without the conversation being loaded again.
|
|
7
|
+
*/
|
|
8
|
+
export function useReportSavedSync(dispatch, reportSaved) {
|
|
9
|
+
const lastSeq = useRef(undefined);
|
|
10
|
+
useEffect(() => {
|
|
11
|
+
if (!dispatch || !reportSaved || lastSeq.current === reportSaved.seq) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
lastSeq.current = reportSaved.seq;
|
|
15
|
+
const { seq: _seq, ...payload } = reportSaved;
|
|
16
|
+
dispatch(reportSavedAction(payload));
|
|
17
|
+
}, [dispatch, reportSaved]);
|
|
18
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"categoryDetailRows.d.ts","sourceRoot":"","sources":["../../../../src/components/intelligence/data/categoryDetailRows.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAKR,2BAA2B,EAI9B,MAAM,2BAA2B,CAAC;AAGnC,OAAO,KAAK,EACR,mCAAmC,EAEnC,yBAAyB,EAC5B,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"categoryDetailRows.d.ts","sourceRoot":"","sources":["../../../../src/components/intelligence/data/categoryDetailRows.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAKR,2BAA2B,EAI9B,MAAM,2BAA2B,CAAC;AAGnC,OAAO,KAAK,EACR,mCAAmC,EAEnC,yBAAyB,EAC5B,MAAM,YAAY,CAAC;AAmDpB;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,2BAA2B,GAAG,mCAAmC,EAAE,CAmB3G;AAqED,uEAAuE;AACvE,wBAAgB,aAAa,CAAC,MAAM,EAAE,2BAA2B,GAAG,yBAAyB,EAAE,CAmB9F"}
|
|
@@ -6,6 +6,7 @@ const ANSWER_OUTPUT_LABEL_MESSAGES = defineMessages({
|
|
|
6
6
|
text: { id: "gd.gen-ai.interactionIntelligence.detail.output.text" },
|
|
7
7
|
visualization: { id: "gd.gen-ai.interactionIntelligence.detail.output.visualization" },
|
|
8
8
|
dashboard: { id: "gd.gen-ai.interactionIntelligence.detail.output.dashboard" },
|
|
9
|
+
report: { id: "gd.gen-ai.interactionIntelligence.detail.output.report" },
|
|
9
10
|
keyDriverAnalysis: { id: "gd.gen-ai.interactionIntelligence.detail.output.keyDriverAnalysis" },
|
|
10
11
|
whatIf: { id: "gd.gen-ai.interactionIntelligence.detail.output.whatIf" },
|
|
11
12
|
searchResults: { id: "gd.gen-ai.interactionIntelligence.detail.output.searchResults" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomHyperlink.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/contents/CustomHyperlink.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"CustomHyperlink.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/contents/CustomHyperlink.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAOxE,MAAM,MAAM,uBAAuB,GAAG;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,oBAAoB,GAAG,uBAAuB,GAAG;IAClD,QAAQ,CAAC,EAAE,sBAAsB,CAAC;CACrC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,oBAAoB,oDA0FtF;AAwBD,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,uBAAuB,2CAItE"}
|
|
@@ -3,6 +3,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
3
3
|
import { useMemo } from "react";
|
|
4
4
|
import { useSelector } from "react-redux";
|
|
5
5
|
import { settingsSelector } from "../../../store/chatWindow/chatWindowSelectors.js";
|
|
6
|
+
import { getReportHref } from "../../../utils.js";
|
|
6
7
|
import { useConfig } from "../../ConfigContext.js";
|
|
7
8
|
import { removeMarkdown } from "../../utils/markdownUtils.js";
|
|
8
9
|
/**
|
|
@@ -90,8 +91,7 @@ const getItemUrl = (workspaceId, id, objectType, enableShellApplication_dashboar
|
|
|
90
91
|
case "metric":
|
|
91
92
|
return `/workspace/${workspaceId}/metrics/metric/${id}`;
|
|
92
93
|
case "report":
|
|
93
|
-
|
|
94
|
-
return `/workspace/${workspaceId}/publisher/report/${encodeURIComponent(id)}`;
|
|
94
|
+
return getReportHref(workspaceId, id);
|
|
95
95
|
default:
|
|
96
96
|
return null;
|
|
97
97
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConversationMultipartContent.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/conversationContents/ConversationMultipartContent.tsx"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,0BAA0B,EAC/B,KAAK,mCAAmC,EACxC,KAAK,iBAAiB,EACzB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"ConversationMultipartContent.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/conversationContents/ConversationMultipartContent.tsx"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,0BAA0B,EAC/B,KAAK,mCAAmC,EACxC,KAAK,iBAAiB,EACzB,MAAM,mBAAmB,CAAC;AAa3B,MAAM,MAAM,iCAAiC,GAAG;IAC5C,OAAO,EAAE,0BAA0B,CAAC;IACpC,KAAK,EAAE,mCAAmC,EAAE,CAAC;IAC7C,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,wBAAgB,4BAA4B,CAAC,EACzC,OAAO,EACP,KAAK,EACL,UAAU,EACV,MAAM,GACT,EAAE,iCAAiC,2CA2GnC"}
|
|
@@ -7,6 +7,7 @@ import { ConversationAlertProposalContent } from "./ConversationAlertProposalCon
|
|
|
7
7
|
import { ConversationClarifyingQuestionsContent } from "./ConversationClarifyingQuestionsContent.js";
|
|
8
8
|
import { ConversationDashboardContent } from "./ConversationDashboardContent.js";
|
|
9
9
|
import { ConversationKdaContent } from "./ConversationKdaContent.js";
|
|
10
|
+
import { ConversationReportContent } from "./ConversationReportContent.js";
|
|
10
11
|
import { ConversationSearchContent } from "./ConversationSearchContent.js";
|
|
11
12
|
import { ConversationTextContent } from "./ConversationTextContent.js";
|
|
12
13
|
import { ConversationWhatIfContent } from "./ConversationWhatIfContent.js";
|
|
@@ -39,6 +40,9 @@ export function ConversationMultipartContent({ message, parts, references, isLas
|
|
|
39
40
|
if (part.type === "dashboard") {
|
|
40
41
|
return (_jsx(ConversationDashboardContent, { message: message, part: part, dashboard: part.dashboard, insights: part.insights, saved: part.saved }, index));
|
|
41
42
|
}
|
|
43
|
+
if (part.type === "report") {
|
|
44
|
+
return (_jsx(ConversationReportContent, { message: message, report: part.report, saved: part.saved, baseReportId: part.baseReportId, refines: part.refines }, index));
|
|
45
|
+
}
|
|
42
46
|
// Add more multipart types if needed
|
|
43
47
|
return null;
|
|
44
48
|
}) }));
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type IReportDefinition } from "@gooddata/sdk-model";
|
|
2
|
+
import type { IChatConversationLocalItem } from "../../../model.js";
|
|
3
|
+
export type ConversationReportContentProps = {
|
|
4
|
+
message: IChatConversationLocalItem;
|
|
5
|
+
report: IReportDefinition | null;
|
|
6
|
+
saved?: string | null;
|
|
7
|
+
baseReportId?: string | null;
|
|
8
|
+
refines?: string | null;
|
|
9
|
+
className?: string;
|
|
10
|
+
};
|
|
11
|
+
export declare function ConversationReportContent({ message, report, saved, baseReportId, refines, className, }: ConversationReportContentProps): import("react/jsx-runtime").JSX.Element | null;
|
|
12
|
+
//# sourceMappingURL=ConversationReportContent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConversationReportContent.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/conversationContents/ConversationReportContent.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,iBAAiB,EAAgC,MAAM,qBAAqB,CAAC;AAI3F,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAUpE,MAAM,MAAM,8BAA8B,GAAG;IACzC,OAAO,EAAE,0BAA0B,CAAC;IACpC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAMF,wBAAgB,yBAAyB,CAAC,EACtC,OAAO,EACP,MAAM,EACN,KAAK,EACL,YAAY,EACZ,OAAO,EACP,SAAS,GACZ,EAAE,8BAA8B,kDAiGhC"}
|