@gooddata/sdk-ui-gen-ai 11.57.0-alpha.0 → 11.57.0-alpha.2
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 +18 -18
- package/esm/components/messages/contents/CustomHyperlink.d.ts.map +1 -1
- package/esm/components/messages/contents/CustomHyperlink.js +15 -6
- package/esm/components/messages/conversationContents/ConversationVisualisation.d.ts.map +1 -1
- package/esm/components/messages/conversationContents/ConversationVisualisation.js +20 -1
- package/esm/components/utils/markdownUtils.d.ts.map +1 -1
- package/esm/components/utils/markdownUtils.js +4 -2
- package/esm/context.js +1 -1
- package/esm/index.js +1 -1
- package/esm/internal.js +1 -1
- package/esm/localization/bundles/zh-HK.localization-bundle.js +18 -18
- package/esm/store/chatWindow/chatWindowSlice.d.ts.map +1 -1
- package/esm/store/chatWindow/chatWindowSlice.js +1 -0
- package/esm/store/localStorage.d.ts +2 -0
- package/esm/store/localStorage.d.ts.map +1 -1
- package/esm/store/localStorage.js +25 -0
- package/esm/store/sideEffects/conversationSession.d.ts +20 -0
- package/esm/store/sideEffects/conversationSession.d.ts.map +1 -0
- package/esm/store/sideEffects/conversationSession.js +40 -0
- package/esm/store/sideEffects/index.d.ts.map +1 -1
- package/esm/store/sideEffects/index.js +3 -1
- package/esm/store/sideEffects/onChatOpenSync.d.ts +3 -0
- package/esm/store/sideEffects/onChatOpenSync.d.ts.map +1 -1
- package/esm/store/sideEffects/onChatOpenSync.js +14 -5
- package/esm/store/sideEffects/onThreadLoad.d.ts.map +1 -1
- package/esm/store/sideEffects/onThreadLoad.js +11 -0
- package/package.json +23 -22
- package/styles/css/conversations.css +3 -3
- package/styles/css/main.css +15 -14
- package/styles/css/main.css.map +1 -1
- package/styles/css/messages.css +3 -3
- package/styles/css/window.css +1 -0
- package/styles/css/window.css.map +1 -1
- package/styles/scss/window.scss +1 -0
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-9-
|
|
10
|
+
Date generated: 2026-9-13
|
|
11
11
|
|
|
12
|
-
Revision ID:
|
|
12
|
+
Revision ID: 6137e079cb078a0bcfbae6cca294b0e3b8efb320
|
|
13
13
|
|
|
14
14
|
================================================================================
|
|
15
15
|
================================================================================
|
|
@@ -38312,7 +38312,7 @@ MIT
|
|
|
38312
38312
|
|
|
38313
38313
|
Authors: react-core@meta.com
|
|
38314
38314
|
Package Manager: NPM
|
|
38315
|
-
Project URL: https://github.com/
|
|
38315
|
+
Project URL: https://github.com/react/react#readme
|
|
38316
38316
|
Package Download URL: https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz
|
|
38317
38317
|
Dependency Path: @react-aria/interactions > react-aria > react-stately > use-sync-external-store > @react-aria/interactions > react-aria > use-sync-external-store > react-redux > use-sync-external-store
|
|
38318
38318
|
File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
@@ -43212,7 +43212,7 @@ MIT
|
|
|
43212
43212
|
|
|
43213
43213
|
Authors: richiebendall@gmail.com
|
|
43214
43214
|
Package Manager: NPM
|
|
43215
|
-
Project URL: https://
|
|
43215
|
+
Project URL: https://github.com/Richienb/char-regex#readme
|
|
43216
43216
|
Package Download URL: https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz
|
|
43217
43217
|
Dependency Path: remark-emoji > node-emoji > char-regex
|
|
43218
43218
|
File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
@@ -47906,7 +47906,7 @@ MIT
|
|
|
47906
47906
|
|
|
47907
47907
|
Authors: tituswormer@gmail.com
|
|
47908
47908
|
Package Manager: NPM
|
|
47909
|
-
Project URL: https://
|
|
47909
|
+
Project URL: https://github.com/micromark/micromark/tree/main#readme
|
|
47910
47910
|
Package Download URL: https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz
|
|
47911
47911
|
Dependency Path: react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-expression > mdast-util-from-markdown > micromark > react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-jsx > mdast-util-from-markdown > micromark > react-markdown > hast-util-to-jsx-runtime > mdast-util-mdxjs-esm > mdast-util-from-markdown > micromark > react-markdown > remark-parse > mdast-util-from-markdown > micromark > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > remark-gfm > mdast-util-gfm > mdast-util-gfm-footnote > mdast-util-from-markdown > micromark > remark-gfm > mdast-util-gfm > mdast-util-gfm-strikethrough > mdast-util-from-markdown > micromark > remark-gfm > mdast-util-gfm > mdast-util-gfm-table > mdast-util-from-markdown > micromark > remark-gfm > mdast-util-gfm > mdast-util-gfm-task-list-item > mdast-util-from-markdown > micromark > remark-parse > mdast-util-from-markdown > micromark
|
|
47912
47912
|
File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
@@ -48198,7 +48198,7 @@ MIT
|
|
|
48198
48198
|
|
|
48199
48199
|
Authors: tituswormer@gmail.com
|
|
48200
48200
|
Package Manager: NPM
|
|
48201
|
-
Project URL: https://
|
|
48201
|
+
Project URL: https://github.com/micromark/micromark-extension-gfm-table#readme
|
|
48202
48202
|
Package Download URL: https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz
|
|
48203
48203
|
Dependency Path: remark-gfm > micromark-extension-gfm > micromark-extension-gfm-table
|
|
48204
48204
|
File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
@@ -48563,7 +48563,7 @@ MIT
|
|
|
48563
48563
|
|
|
48564
48564
|
Authors: tituswormer@gmail.com
|
|
48565
48565
|
Package Manager: NPM
|
|
48566
|
-
Project URL: https://
|
|
48566
|
+
Project URL: https://github.com/micromark/micromark/tree/main#readme
|
|
48567
48567
|
Package Download URL: https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz
|
|
48568
48568
|
Dependency Path: remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-types > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-util-types > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark-util-types > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-autolink-literal > micromark-util-types > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-footnote > micromark-util-types > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-strikethrough > micromark-util-types > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-table > micromark-util-types > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-tagfilter > micromark-util-types > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-task-list-item > micromark-util-types > remark-gfm > micromark-extension-gfm > micromark-util-types
|
|
48569
48569
|
File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
@@ -58083,7 +58083,7 @@ MIT
|
|
|
58083
58083
|
|
|
58084
58084
|
Authors: tituswormer@gmail.com
|
|
58085
58085
|
Package Manager: NPM
|
|
58086
|
-
Project URL: https://
|
|
58086
|
+
Project URL: https://github.com/micromark/micromark/tree/main#readme
|
|
58087
58087
|
Package Download URL: https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz
|
|
58088
58088
|
Dependency Path: remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-space > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-title > micromark-factory-space > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-whitespace > micromark-factory-space > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-factory-space > remark-gfm > mdast-util-gfm > mdast-util-gfm-footnote > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-whitespace > micromark-factory-space > remark-gfm > mdast-util-gfm > mdast-util-gfm-strikethrough > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-whitespace > micromark-factory-space > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-footnote > micromark-core-commonmark > micromark-factory-whitespace > micromark-factory-space > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-footnote > micromark-factory-space > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-table > micromark-factory-space > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-task-list-item > micromark-factory-space
|
|
58089
58089
|
File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
@@ -58229,7 +58229,7 @@ MIT
|
|
|
58229
58229
|
|
|
58230
58230
|
Authors: tituswormer@gmail.com
|
|
58231
58231
|
Package Manager: NPM
|
|
58232
|
-
Project URL: https://
|
|
58232
|
+
Project URL: https://github.com/micromark/micromark/tree/main#readme
|
|
58233
58233
|
Package Download URL: https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz
|
|
58234
58234
|
Dependency Path: remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-chunked > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-subtokenize > micromark-util-chunked > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-util-chunked > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-util-combine-extensions > micromark-util-chunked > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-util-subtokenize > micromark-util-chunked > remark-gfm > mdast-util-gfm > mdast-util-gfm-footnote > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-subtokenize > micromark-util-chunked > remark-gfm > mdast-util-gfm > mdast-util-gfm-strikethrough > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-subtokenize > micromark-util-chunked > remark-gfm > mdast-util-gfm > mdast-util-gfm-table > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-subtokenize > micromark-util-chunked > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-footnote > micromark-core-commonmark > micromark-util-subtokenize > micromark-util-chunked > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-strikethrough > micromark-util-chunked
|
|
58235
58235
|
File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
@@ -58302,7 +58302,7 @@ MIT
|
|
|
58302
58302
|
|
|
58303
58303
|
Authors: tituswormer@gmail.com
|
|
58304
58304
|
Package Manager: NPM
|
|
58305
|
-
Project URL: https://
|
|
58305
|
+
Project URL: https://github.com/micromark/micromark/tree/main#readme
|
|
58306
58306
|
Package Download URL: https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz
|
|
58307
58307
|
Dependency Path: react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-expression > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-classify-character > react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-jsx > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-classify-character > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-classify-character > remark-gfm > mdast-util-gfm > mdast-util-gfm-footnote > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-classify-character > remark-gfm > mdast-util-gfm > mdast-util-gfm-strikethrough > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-classify-character > remark-gfm > mdast-util-gfm > mdast-util-gfm-table > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-classify-character > remark-gfm > mdast-util-gfm > mdast-util-gfm-task-list-item > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-classify-character > remark-gfm > mdast-util-gfm > mdast-util-to-markdown > micromark-util-classify-character > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-footnote > micromark-core-commonmark > micromark-util-classify-character > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-strikethrough > micromark-util-classify-character
|
|
58308
58308
|
File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
@@ -58375,7 +58375,7 @@ MIT
|
|
|
58375
58375
|
|
|
58376
58376
|
Authors: tituswormer@gmail.com
|
|
58377
58377
|
Package Manager: NPM
|
|
58378
|
-
Project URL: https://
|
|
58378
|
+
Project URL: https://github.com/micromark/micromark/tree/main#readme
|
|
58379
58379
|
Package Download URL: https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz
|
|
58380
58380
|
Dependency Path: react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-expression > mdast-util-to-markdown > micromark-util-decode-string > micromark-util-decode-numeric-character-reference > react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-jsx > mdast-util-to-markdown > micromark-util-decode-string > micromark-util-decode-numeric-character-reference > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-util-decode-numeric-character-reference > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark-util-decode-numeric-character-reference > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark-util-decode-string > micromark-util-decode-numeric-character-reference > remark-gfm > mdast-util-gfm > mdast-util-gfm-footnote > mdast-util-to-markdown > micromark-util-decode-string > micromark-util-decode-numeric-character-reference > remark-gfm > mdast-util-gfm > mdast-util-gfm-strikethrough > mdast-util-to-markdown > micromark-util-decode-string > micromark-util-decode-numeric-character-reference > remark-gfm > mdast-util-gfm > mdast-util-gfm-table > mdast-util-to-markdown > micromark-util-decode-string > micromark-util-decode-numeric-character-reference > remark-gfm > mdast-util-gfm > mdast-util-gfm-task-list-item > mdast-util-to-markdown > micromark-util-decode-string > micromark-util-decode-numeric-character-reference > remark-gfm > mdast-util-gfm > mdast-util-to-markdown > micromark-util-decode-string > micromark-util-decode-numeric-character-reference
|
|
58381
58381
|
File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
@@ -58448,7 +58448,7 @@ MIT
|
|
|
58448
58448
|
|
|
58449
58449
|
Authors: tituswormer@gmail.com
|
|
58450
58450
|
Package Manager: NPM
|
|
58451
|
-
Project URL: https://
|
|
58451
|
+
Project URL: https://github.com/micromark/micromark/tree/main#readme
|
|
58452
58452
|
Package Download URL: https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz
|
|
58453
58453
|
Dependency Path: react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-expression > mdast-util-to-markdown > micromark-util-decode-string > react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-jsx > mdast-util-to-markdown > micromark-util-decode-string > react-markdown > hast-util-to-jsx-runtime > mdast-util-mdxjs-esm > mdast-util-to-markdown > micromark-util-decode-string > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark-util-decode-string > remark-gfm > mdast-util-gfm > mdast-util-gfm-footnote > mdast-util-to-markdown > micromark-util-decode-string > remark-gfm > mdast-util-gfm > mdast-util-gfm-strikethrough > mdast-util-to-markdown > micromark-util-decode-string > remark-gfm > mdast-util-gfm > mdast-util-gfm-table > mdast-util-to-markdown > micromark-util-decode-string > remark-gfm > mdast-util-gfm > mdast-util-gfm-task-list-item > mdast-util-to-markdown > micromark-util-decode-string > remark-gfm > mdast-util-gfm > mdast-util-to-markdown > micromark-util-decode-string > remark-gfm > remark-stringify > mdast-util-to-markdown > micromark-util-decode-string
|
|
58454
58454
|
File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
@@ -58667,7 +58667,7 @@ MIT
|
|
|
58667
58667
|
|
|
58668
58668
|
Authors: tituswormer@gmail.com
|
|
58669
58669
|
Package Manager: NPM
|
|
58670
|
-
Project URL: https://
|
|
58670
|
+
Project URL: https://github.com/micromark/micromark/tree/main#readme
|
|
58671
58671
|
Package Download URL: https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz
|
|
58672
58672
|
Dependency Path: react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-expression > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-resolve-all > react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-jsx > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-resolve-all > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-resolve-all > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-util-resolve-all > remark-gfm > mdast-util-gfm > mdast-util-gfm-footnote > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-resolve-all > remark-gfm > mdast-util-gfm > mdast-util-gfm-strikethrough > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-resolve-all > remark-gfm > mdast-util-gfm > mdast-util-gfm-table > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-resolve-all > remark-gfm > mdast-util-gfm > mdast-util-gfm-task-list-item > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-resolve-all > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-footnote > micromark-core-commonmark > micromark-util-resolve-all > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-strikethrough > micromark-util-resolve-all
|
|
58673
58673
|
File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
@@ -61836,7 +61836,7 @@ MIT
|
|
|
61836
61836
|
|
|
61837
61837
|
Authors: tituswormer@gmail.com
|
|
61838
61838
|
Package Manager: NPM
|
|
61839
|
-
Project URL: https://
|
|
61839
|
+
Project URL: https://github.com/micromark/micromark/tree/main#readme
|
|
61840
61840
|
Package Download URL: https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz
|
|
61841
61841
|
Dependency Path: react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-expression > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-destination > react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-jsx > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-destination > react-markdown > hast-util-to-jsx-runtime > mdast-util-mdxjs-esm > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-destination > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-destination > remark-gfm > mdast-util-gfm > mdast-util-gfm-footnote > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-destination > remark-gfm > mdast-util-gfm > mdast-util-gfm-strikethrough > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-destination > remark-gfm > mdast-util-gfm > mdast-util-gfm-table > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-destination > remark-gfm > mdast-util-gfm > mdast-util-gfm-task-list-item > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-destination > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-footnote > micromark-core-commonmark > micromark-factory-destination > remark-parse > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-destination
|
|
61842
61842
|
File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
@@ -61909,7 +61909,7 @@ MIT
|
|
|
61909
61909
|
|
|
61910
61910
|
Authors: tituswormer@gmail.com
|
|
61911
61911
|
Package Manager: NPM
|
|
61912
|
-
Project URL: https://
|
|
61912
|
+
Project URL: https://github.com/micromark/micromark/tree/main#readme
|
|
61913
61913
|
Package Download URL: https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz
|
|
61914
61914
|
Dependency Path: react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-expression > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-label > react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-jsx > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-label > react-markdown > hast-util-to-jsx-runtime > mdast-util-mdxjs-esm > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-label > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-label > remark-gfm > mdast-util-gfm > mdast-util-gfm-footnote > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-label > remark-gfm > mdast-util-gfm > mdast-util-gfm-strikethrough > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-label > remark-gfm > mdast-util-gfm > mdast-util-gfm-table > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-label > remark-gfm > mdast-util-gfm > mdast-util-gfm-task-list-item > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-label > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-footnote > micromark-core-commonmark > micromark-factory-label > remark-parse > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-label
|
|
61915
61915
|
File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
@@ -61982,7 +61982,7 @@ MIT
|
|
|
61982
61982
|
|
|
61983
61983
|
Authors: tituswormer@gmail.com
|
|
61984
61984
|
Package Manager: NPM
|
|
61985
|
-
Project URL: https://
|
|
61985
|
+
Project URL: https://github.com/micromark/micromark/tree/main#readme
|
|
61986
61986
|
Package Download URL: https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz
|
|
61987
61987
|
Dependency Path: react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-expression > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-title > react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-jsx > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-title > react-markdown > hast-util-to-jsx-runtime > mdast-util-mdxjs-esm > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-title > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-title > remark-gfm > mdast-util-gfm > mdast-util-gfm-footnote > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-title > remark-gfm > mdast-util-gfm > mdast-util-gfm-strikethrough > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-title > remark-gfm > mdast-util-gfm > mdast-util-gfm-table > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-title > remark-gfm > mdast-util-gfm > mdast-util-gfm-task-list-item > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-title > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-footnote > micromark-core-commonmark > micromark-factory-title > remark-parse > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-title
|
|
61988
61988
|
File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
@@ -62201,7 +62201,7 @@ MIT
|
|
|
62201
62201
|
|
|
62202
62202
|
Authors: tituswormer@gmail.com
|
|
62203
62203
|
Package Manager: NPM
|
|
62204
|
-
Project URL: https://
|
|
62204
|
+
Project URL: https://github.com/micromark/micromark/tree/main#readme
|
|
62205
62205
|
Package Download URL: https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz
|
|
62206
62206
|
Dependency Path: react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-expression > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-subtokenize > react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-jsx > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-subtokenize > react-markdown > hast-util-to-jsx-runtime > mdast-util-mdxjs-esm > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-subtokenize > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-subtokenize > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-util-subtokenize > remark-gfm > mdast-util-gfm > mdast-util-gfm-footnote > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-subtokenize > remark-gfm > mdast-util-gfm > mdast-util-gfm-strikethrough > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-subtokenize > remark-gfm > mdast-util-gfm > mdast-util-gfm-table > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-subtokenize > remark-gfm > mdast-util-gfm > mdast-util-gfm-task-list-item > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-subtokenize > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-footnote > micromark-core-commonmark > micromark-util-subtokenize
|
|
62207
62207
|
File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
@@ -64353,4 +64353,4 @@ File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
|
|
|
64353
64353
|
--------------------------------------------------------------------------------
|
|
64354
64354
|
--------------------------------------------------------------------------------
|
|
64355
64355
|
|
|
64356
|
-
Report Generated by FOSSA on 2026-9-
|
|
64356
|
+
Report Generated by FOSSA on 2026-9-13
|
|
@@ -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;AAMxE,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,oDAmGtF;AAyBD,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,uBAAuB,2CAItE"}
|
|
@@ -4,6 +4,7 @@ import { useMemo } from "react";
|
|
|
4
4
|
import { useSelector } from "react-redux";
|
|
5
5
|
import { settingsSelector } from "../../../store/chatWindow/chatWindowSelectors.js";
|
|
6
6
|
import { useConfig } from "../../ConfigContext.js";
|
|
7
|
+
import { removeMarkdown } from "../../utils/markdownUtils.js";
|
|
7
8
|
/**
|
|
8
9
|
* Similar to SDK Hyperlink, but can handle customer schemas
|
|
9
10
|
* used for links management
|
|
@@ -14,11 +15,19 @@ export function CustomHyperlinkComponent({ href, text, settings }) {
|
|
|
14
15
|
const enableShellApplication_dashboards = Boolean(settings?.enableShellApplication_dashboards);
|
|
15
16
|
const canManageMetrics = canManage || canAnalyze;
|
|
16
17
|
const canManageVisualisations = canManage || canAnalyze;
|
|
18
|
+
const plainText = removeMarkdown(text);
|
|
17
19
|
const parsedRef = useMemo(() => {
|
|
18
20
|
if (!href) {
|
|
19
21
|
return null;
|
|
20
22
|
}
|
|
21
|
-
|
|
23
|
+
let url;
|
|
24
|
+
try {
|
|
25
|
+
const decodedHref = decodeURIComponent(href);
|
|
26
|
+
url = new URL(decodedHref);
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
22
31
|
if (url.protocol !== "gooddata:") {
|
|
23
32
|
return null;
|
|
24
33
|
}
|
|
@@ -40,7 +49,7 @@ export function CustomHyperlinkComponent({ href, text, settings }) {
|
|
|
40
49
|
};
|
|
41
50
|
}, [href, enableShellApplication_analyticalDesigner, enableShellApplication_dashboards]);
|
|
42
51
|
if (!parsedRef) {
|
|
43
|
-
return
|
|
52
|
+
return plainText;
|
|
44
53
|
}
|
|
45
54
|
const handleLinkClick = (e) => {
|
|
46
55
|
if (!linkHandler) {
|
|
@@ -59,17 +68,17 @@ export function CustomHyperlinkComponent({ href, text, settings }) {
|
|
|
59
68
|
// If the link is for a metric and the user cannot manage metrics,
|
|
60
69
|
// we do not render the link
|
|
61
70
|
if (parsedRef.type === "metric" && !canManageMetrics) {
|
|
62
|
-
return
|
|
71
|
+
return plainText;
|
|
63
72
|
}
|
|
64
73
|
// If the link is for a visualization and the user cannot manage visualizations,
|
|
65
74
|
// we do not render the link
|
|
66
75
|
if (parsedRef.type === "visualization" && !canManageVisualisations) {
|
|
67
|
-
return
|
|
76
|
+
return plainText;
|
|
68
77
|
}
|
|
69
78
|
if (allowNativeLinks) {
|
|
70
|
-
return (_jsx("a", { className: "gd-hyperlink", href: parsedRef.itemUrl, onClick: handleLinkClick, children: _jsx("span", { className: "gd-hyperlink-text", children:
|
|
79
|
+
return (_jsx("a", { className: "gd-hyperlink", href: parsedRef.itemUrl, onClick: handleLinkClick, children: _jsx("span", { className: "gd-hyperlink-text", children: plainText }) }));
|
|
71
80
|
}
|
|
72
|
-
return (_jsx("span", { className: "gd-hyperlink", onClick: handleLinkClick, children: _jsx("span", { className: "gd-hyperlink-text", children:
|
|
81
|
+
return (_jsx("span", { className: "gd-hyperlink", onClick: handleLinkClick, children: _jsx("span", { className: "gd-hyperlink-text", children: plainText }) }));
|
|
73
82
|
}
|
|
74
83
|
const getItemUrl = (workspaceId, id, objectType, enableShellApplication_analyticalDesigner, enableShellApplication_dashboards) => {
|
|
75
84
|
switch (objectType) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConversationVisualisation.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/conversationContents/ConversationVisualisation.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,qCAAqC,EAAE,MAAM,2BAA2B,CAAC;AACvF,OAAO,EAEH,KAAK,aAAa,EAElB,KAAK,gBAAgB,EAGrB,KAAK,WAAW,EAKnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEH,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAInB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"ConversationVisualisation.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/conversationContents/ConversationVisualisation.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,qCAAqC,EAAE,MAAM,2BAA2B,CAAC;AACvF,OAAO,EAEH,KAAK,aAAa,EAElB,KAAK,gBAAgB,EAGrB,KAAK,WAAW,EAKnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEH,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAInB,MAAM,kBAAkB,CAAC;AAW1B,OAAO,EACH,KAAK,kCAAkC,EAE1C,MAAM,4BAA4B,CAAC;AAiBpC,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAyBpE,MAAM,MAAM,8BAA8B,GAAG;IACzC,OAAO,EAAE,0BAA0B,CAAC;IACpC,aAAa,EAAE,WAAW,CAAC,qCAAqC,CAAC,eAAe,CAAC,CAAC,CAAC;IACnF,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACzD,YAAY,CAAC,EAAE,CACX,IAAI,EAAE;QACF,aAAa,EAAE,kCAAkC,EAAE,CAAC;QACpD,KAAK,EAAE,WAAW,CAAC;KACtB,GAAG,IAAI,KACP,IAAI,CAAC;IACV,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,4BAA4B,CAAC,EAAE,OAAO,CAAC;CAC1C,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,EACtC,OAAO,EACP,YAAY,EACZ,UAAU,EACV,aAAa,EACb,UAAU,EACV,WAAW,EACX,OAAO,EACP,oBAAoB,EACpB,YAAY,EACZ,cAAqB,EACrB,oBAA4B,EAC5B,yBAAiC,EACjC,mBAA0B,EAC1B,4BAAoC,GACvC,EAAE,8BAA8B,2CAiRhC"}
|
|
@@ -4,7 +4,7 @@ import { useCallback, useMemo } from "react";
|
|
|
4
4
|
import { useIntl } from "react-intl";
|
|
5
5
|
import { useDispatch } from "react-redux";
|
|
6
6
|
import { isAttribute, isMeasure, } from "@gooddata/sdk-model";
|
|
7
|
-
import { BarChart, ColumnChart, Headline, LineChart, PieChart, ScatterPlot } from "@gooddata/sdk-ui-charts";
|
|
7
|
+
import { BarChart, ColumnChart, Headline, LineChart, PieChart, ScatterPlot, WaterfallChart, } from "@gooddata/sdk-ui-charts";
|
|
8
8
|
import { getKdaKeyDriverCombinations, } from "@gooddata/sdk-ui-dashboard";
|
|
9
9
|
import { PivotTable } from "@gooddata/sdk-ui-pivot";
|
|
10
10
|
import { PivotTableNext, useAgGridToken } from "@gooddata/sdk-ui-pivot/next";
|
|
@@ -162,6 +162,13 @@ export function ConversationVisualisation({ message, colorPalette, separators, v
|
|
|
162
162
|
execConfig,
|
|
163
163
|
separators,
|
|
164
164
|
});
|
|
165
|
+
case "local:waterfall":
|
|
166
|
+
return renderWaterfallChart(intl.locale, visualization, bucketsData, filters, sorts, colorPalette, handleSdkError, handleSuccess, handlerDrill, {
|
|
167
|
+
drillableItems,
|
|
168
|
+
enableAccessibleChartTooltip,
|
|
169
|
+
execConfig,
|
|
170
|
+
separators,
|
|
171
|
+
});
|
|
165
172
|
case "local:headline":
|
|
166
173
|
return renderHeadline(intl.locale, kpiTheme, bucketsData, filters, colorPalette, handleSdkError, handleSuccess, handlerDrill, {
|
|
167
174
|
drillableItems,
|
|
@@ -248,6 +255,18 @@ const renderScatterPlot = (locale, visualization, buckets, filters, sortBy, colo
|
|
|
248
255
|
...(clusteringConfig && clustering ? { clustering } : {}),
|
|
249
256
|
}, drillableItems: props.drillableItems, onDrill: onDrill, onError: onError, onExportReady: onSuccess, execConfig: props.execConfig }));
|
|
250
257
|
};
|
|
258
|
+
const renderWaterfallChart = (locale, visualization, buckets, filters, sortBy, colorPalette, onError, onSuccess, onDrill, props) => {
|
|
259
|
+
const { metrics, view } = buckets;
|
|
260
|
+
const total = visualization.insight.properties["controls"]?.["total"];
|
|
261
|
+
return (_jsx(WaterfallChart, { locale: locale, height: VIS_HEIGHT, measures: metrics, viewBy: view[0], filters: filters, sortBy: sortBy, config: {
|
|
262
|
+
...visualizationTooltipOptions,
|
|
263
|
+
...legendTooltipOptions,
|
|
264
|
+
colorPalette,
|
|
265
|
+
separators: props.separators,
|
|
266
|
+
enableAccessibleTooltip: props.enableAccessibleChartTooltip,
|
|
267
|
+
...(total ? { total } : {}),
|
|
268
|
+
}, drillableItems: props.drillableItems, onDrill: onDrill, onError: onError, onExportReady: onSuccess, execConfig: props.execConfig }));
|
|
269
|
+
};
|
|
251
270
|
const renderTable = (locale, buckets, filters, sortBy, onError, onSuccess, onDrill, props) => {
|
|
252
271
|
const TableComponent = props.enableNewPivotTable ? PivotTableNext : PivotTable;
|
|
253
272
|
const { metrics, attribute, trend, view, stack, segment, columns } = buckets;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdownUtils.d.ts","sourceRoot":"","sources":["../../../src/components/utils/markdownUtils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"markdownUtils.d.ts","sourceRoot":"","sources":["../../../src/components/utils/markdownUtils.ts"],"names":[],"mappings":"AAKA,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAcnD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,iBAa1C"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// (C) 2025-2026 GoodData Corporation
|
|
2
2
|
const MARKDOWN_ESCAPE_PATTERN = /(\{[^{}]*\})|[\\`*_{}[\]()#+\-.!]/g;
|
|
3
|
+
const MARKDOWN_UNESCAPE_PATTERN = /\\([\\`*_{}[\]()#+\-.!])/g;
|
|
3
4
|
export function escapeMarkdown(text) {
|
|
4
5
|
return text.replace(MARKDOWN_ESCAPE_PATTERN, (match, inBraces) => inBraces || `\\${match}`);
|
|
5
6
|
}
|
|
@@ -8,14 +9,15 @@ export function escapeMarkdown(text) {
|
|
|
8
9
|
*/
|
|
9
10
|
export function removeMarkdown(text) {
|
|
10
11
|
return text
|
|
11
|
-
.replace(/(\*\*|__)(.*?)\1/g, "$2") // bold
|
|
12
|
-
.replace(/(\*|_)(.*?)\1/g, "$2") // italic
|
|
12
|
+
.replace(/(?<!\\)(\*\*|__)(.*?)(?<!\\)\1/g, "$2") // bold
|
|
13
|
+
.replace(/(?<!\\)(\*|_)(.*?)(?<!\\)\1/g, "$2") // italic
|
|
13
14
|
.replace(/\[([^\]]+)\]\(([^)]+)\)/g, "$1") // links
|
|
14
15
|
.replace(/`([^`]+)`/g, "$1") // code
|
|
15
16
|
.replace(/#{1,6}\s+(.*)/gm, "$1") // headers
|
|
16
17
|
.replace(/>\s+(.*)/gm, "$1") // blockquotes
|
|
17
18
|
.replace(/^\s*[-*+]\s+(.*)/gm, "$1") // unordered lists
|
|
18
19
|
.replace(/^\s*\d+\.\s+(.*)/gm, "$1") // ordered lists
|
|
20
|
+
.replace(MARKDOWN_UNESCAPE_PATTERN, "$1") // unescape markdown escaped characters
|
|
19
21
|
.replace(/(\r\n|\n|\r)/gm, " ") // replace newlines with space
|
|
20
22
|
.replace(/ {2,}/g, " ") // remove double spaces
|
|
21
23
|
.trim();
|
package/esm/context.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// (C) 2026 GoodData Corporation
|
|
2
|
-
|
|
2
|
+
// oxlint-disable no-barrel-files/no-barrel-files
|
|
3
3
|
import { mergeContexts } from "./context/build.js";
|
|
4
4
|
import { buildDashboardContext, buildFiltersContext, buildWidgetContext, buildWidgetsContext, } from "./context/dashboard.js";
|
|
5
5
|
import { buildReferenceContext, buildReferencedContext } from "./context/referencedObjects.js";
|
package/esm/index.js
CHANGED
package/esm/internal.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// (C) 2024-2026 GoodData Corporation
|
|
2
|
-
|
|
2
|
+
// oxlint-disable no-barrel-files/no-barrel-files
|
|
3
3
|
import { makeTextContents, makeUserMessage } from "./model.js";
|
|
4
4
|
import { clearThreadAction, newMessageAction, setSelectedAgentAction, } from "./store/messages/messagesSlice.js";
|
|
5
5
|
export { ChatSkeleton } from "./components/ChatSkeleton.js";
|
|
@@ -27,8 +27,8 @@ export const zh_HK = {
|
|
|
27
27
|
"gd.gen-ai.visualization.error.data_too_large": "<b>資料過大。</b> 請套用篩選器以減少資料。",
|
|
28
28
|
"gd.gen-ai.visualization.unavailable": "無法顯示可視化。",
|
|
29
29
|
"gd.gen-ai.permission-error": "權限不足",
|
|
30
|
-
"gd.gen-ai.permission-error.description": "
|
|
31
|
-
"gd.gen-ai.input-placeholder": "
|
|
30
|
+
"gd.gen-ai.permission-error.description": "您無權訪問聊天機械人。 請與您的管理員聯繫以請求訪問權限。",
|
|
31
|
+
"gd.gen-ai.input-placeholder": "在此提問…",
|
|
32
32
|
"gd.gen-ai.input-label.mac": "提出您的問題。 使用control+space或cmd+I獲取建議。",
|
|
33
33
|
"gd.gen-ai.input-label.win": "提出您的問題。 使用control+space或control+I獲取建議。",
|
|
34
34
|
"gd.gen-ai.context.add_context": "新增上下文",
|
|
@@ -69,18 +69,18 @@ export const zh_HK = {
|
|
|
69
69
|
"gd.gen-ai.reasoning.thinking.description": "為複雜分析問題提供較慢但更詳盡的解答。",
|
|
70
70
|
"gd.gen-ai.feedback.like": "將此消息標記為有用",
|
|
71
71
|
"gd.gen-ai.feedback.dislike": "將此消息標記為無用",
|
|
72
|
-
"gd.gen-ai.feedback.popup.title": "
|
|
73
|
-
"gd.gen-ai.feedback.popup.reasons-label": "
|
|
74
|
-
"gd.gen-ai.feedback.popup.description-label": "
|
|
72
|
+
"gd.gen-ai.feedback.popup.title": "我們已收到您的意見",
|
|
73
|
+
"gd.gen-ai.feedback.popup.reasons-label": "告訴我們出了什麼問題",
|
|
74
|
+
"gd.gen-ai.feedback.popup.description-label": "請描述發生了什麼事",
|
|
75
75
|
"gd.gen-ai.feedback.popup.cancel": "取消",
|
|
76
76
|
"gd.gen-ai.feedback.popup.send": "發送",
|
|
77
77
|
"gd.gen-ai.feedback.popup.close": "關閉反饋對話框",
|
|
78
|
-
"gd.gen-ai.feedback.reason.forgot-context": "
|
|
78
|
+
"gd.gen-ai.feedback.reason.forgot-context": "忘記了先前的上下文",
|
|
79
79
|
"gd.gen-ai.feedback.reason.ignored-instructions": "無視或拒絕指示",
|
|
80
80
|
"gd.gen-ai.feedback.reason.factually-incorrect": "事實錯誤",
|
|
81
81
|
"gd.gen-ai.feedback.reason.answer-too-long": "答案需時過長",
|
|
82
82
|
"gd.gen-ai.feedback.reason.other": "其他",
|
|
83
|
-
"gd.gen-ai.disclaimer": "AI
|
|
83
|
+
"gd.gen-ai.disclaimer": "AI助手可能會犯錯。 在依賴這些答案之前請先檢查。",
|
|
84
84
|
"gd.gen-ai.dialog.label": "AI助手對話",
|
|
85
85
|
"gd.gen-ai.header.reset-tooltip": "重置",
|
|
86
86
|
"gd.gen-ai.header.conversations-tooltip": "最近對話",
|
|
@@ -88,14 +88,14 @@ export const zh_HK = {
|
|
|
88
88
|
"gd.gen-ai.header.contract-tooltip": "收縮",
|
|
89
89
|
"gd.gen-ai.header.expand-tooltip": "擴大",
|
|
90
90
|
"gd.gen-ai.header.close-tooltip": "關閉助手",
|
|
91
|
-
"gd.gen-ai.welcome.line-1": "
|
|
92
|
-
"gd.gen-ai.welcome.line-2": "
|
|
91
|
+
"gd.gen-ai.welcome.line-1": "嘿,您好",
|
|
92
|
+
"gd.gen-ai.welcome.line-2": "我該怎樣幫助您?",
|
|
93
93
|
"gd.gen-ai.welcome.option-1.title": "搜索儀表板或可視化",
|
|
94
|
-
"gd.gen-ai.welcome.option-1.answer": "
|
|
94
|
+
"gd.gen-ai.welcome.option-1.answer": "當然,您想看到什麼樣的儀表板或可視化?",
|
|
95
95
|
"gd.gen-ai.welcome.option-2.title": "創建新的可視化",
|
|
96
96
|
"gd.gen-ai.welcome.option-2.answer": "當然,您想創建点样的可視化效果?",
|
|
97
97
|
"gd.gen-ai.welcome.option-3.title": "答業務問題",
|
|
98
|
-
"gd.gen-ai.welcome.option-3.answer": "
|
|
98
|
+
"gd.gen-ai.welcome.option-3.answer": "當然,您想回答什麼商業問題?",
|
|
99
99
|
"gd.gen-ai.semantic-search.title": "搜尋",
|
|
100
100
|
"gd.gen-ai.alert-proposal.title": "通知",
|
|
101
101
|
"gd.gen-ai.alert-proposal.summary.title": "名字",
|
|
@@ -179,12 +179,12 @@ export const zh_HK = {
|
|
|
179
179
|
"gd.gen-ai.save-dialog.label": "名字",
|
|
180
180
|
"gd.gen-ai.save-dialog.title": "為可視化效果命名",
|
|
181
181
|
"gd.gen-ai.save-dialog.description": "為新的可視化效果指定一個新的描述性名稱,方便日後容易找到。",
|
|
182
|
-
"gd.gen-ai.save-dialog.description.explore": "
|
|
182
|
+
"gd.gen-ai.save-dialog.description.explore": "若要開啟此可視化,必須先儲存。 您可以在下方為其命名。",
|
|
183
183
|
"gd.gen-ai.autocomplete.type": "類型",
|
|
184
184
|
"gd.gen-ai.autocomplete.dataset": "數據",
|
|
185
185
|
"gd.gen-ai.autocomplete.id": "ID",
|
|
186
186
|
"gd.gen-ai.autocomplete.attribute": "屬性",
|
|
187
|
-
"gd.gen-ai.autocomplete.metric": "
|
|
187
|
+
"gd.gen-ai.autocomplete.metric": "指標",
|
|
188
188
|
"gd.gen-ai.autocomplete.fact": "事實",
|
|
189
189
|
"gd.gen-ai.autocomplete.date": "數據",
|
|
190
190
|
"gd.gen-ai.autocomplete.insight": "可視化",
|
|
@@ -198,7 +198,7 @@ export const zh_HK = {
|
|
|
198
198
|
"gd.gen-ai.visualisation.menu.button.save_as_visualisation": "保存可視化效果",
|
|
199
199
|
"gd.gen-ai.visualisation.menu.button.save_as_new_visualisation": "另存為新...",
|
|
200
200
|
"gd.gen-ai.visualisation.menu.button.open_in_analyze": "在Analyze中打開",
|
|
201
|
-
"gd.gen-ai.visualisation.menu.button.open_in_analyze.description": "
|
|
201
|
+
"gd.gen-ai.visualisation.menu.button.open_in_analyze.description": "這會要求您先儲存視覺化,然後才能打開它。",
|
|
202
202
|
"gd.gen-ai.visualisation.menu.button.copy_visualisation_link": "複製可視化效果link",
|
|
203
203
|
"gd.gen-ai.messages.label": "聊天消息",
|
|
204
204
|
"gd.gen-ai.message.label.user": "用戶:",
|
|
@@ -208,8 +208,8 @@ export const zh_HK = {
|
|
|
208
208
|
"gd.gen-ai.message.reasoning.tool-result": "<b>正在從工具收集資料</b>",
|
|
209
209
|
"gd.gen-ai.message.reasoned.tool-result": "<b>已從工具收集資料</b>",
|
|
210
210
|
"gd.gen-ai.skip-messages-history": "跳到AI助手輸入",
|
|
211
|
-
"gd.gen-ai.skip-navigation": "
|
|
212
|
-
"gd.gen-ai.changeAnalysis.default_message": "
|
|
211
|
+
"gd.gen-ai.skip-navigation": "跳過導航",
|
|
212
|
+
"gd.gen-ai.changeAnalysis.default_message": "以下是 <metric>{title}</metric> 在 <b>{range}</b> 之間的關鍵驅動因素分析。",
|
|
213
213
|
"gd.gen-ai.kda.default_message": "以下是 **{title}** 在 **{range}** 期間的關鍵驅動因素分析。",
|
|
214
214
|
"gd.gen-ai.changeAnalysis.splitter": "和",
|
|
215
215
|
"gd.gen-ai.changeAnalysis.explain_the_change": "開分析",
|
|
@@ -254,7 +254,7 @@ export const zh_HK = {
|
|
|
254
254
|
"gd.gen-ai.interactionIntelligence.detail.searched": "已搜尋",
|
|
255
255
|
"gd.gen-ai.interactionIntelligence.detail.found": "找到",
|
|
256
256
|
"gd.gen-ai.interactionIntelligence.detail.used": "已使用",
|
|
257
|
-
"gd.gen-ai.interactionIntelligence.detail.metrics": "
|
|
257
|
+
"gd.gen-ai.interactionIntelligence.detail.metrics": "指標",
|
|
258
258
|
"gd.gen-ai.interactionIntelligence.detail.groupedBy": "分組依據",
|
|
259
259
|
"gd.gen-ai.interactionIntelligence.detail.filteredBy": "篩選依據",
|
|
260
260
|
"gd.gen-ai.interactionIntelligence.detail.visualization": "可視化",
|
|
@@ -275,7 +275,7 @@ export const zh_HK = {
|
|
|
275
275
|
"gd.gen-ai.interactionIntelligence.detail.output.searchResults": "搜尋結果",
|
|
276
276
|
"gd.gen-ai.interactionIntelligence.detail.output.alertProposal": "警示建議",
|
|
277
277
|
"drill.kda.from": "從",
|
|
278
|
-
"drill.kda.in": "
|
|
278
|
+
"drill.kda.in": "在",
|
|
279
279
|
"drill.kda.drop": "下降 {where} {title}",
|
|
280
280
|
"drill.kda.increase": "增加 {where} {title}",
|
|
281
281
|
"drill.kda.no_change": "無變化 {where} {title}",
|
|
@@ -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;AAGjF,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;AAUjE,OAAO,EACH,KAAK,iBAAiB,EAEtB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,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,kDAGnC;IACC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,4BAA4B,CAAC,EAAE,OAAO,CAAC;CAC1C,KAAQ,oBAMP,CAAC;
|
|
1
|
+
{"version":3,"file":"chatWindowSlice.d.ts","sourceRoot":"","sources":["../../../src/store/chatWindow/chatWindowSlice.ts"],"names":[],"mappings":"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"}
|
|
@@ -170,6 +170,7 @@ const chatWindowSlice = createSlice({
|
|
|
170
170
|
extraReducers: (builder) => {
|
|
171
171
|
const resetContextToAmbient = (state) => {
|
|
172
172
|
state.context.active = mergeContexts(state.context.ambient);
|
|
173
|
+
state.context = selectContextReferences(state.context, state.context.ambientSelected);
|
|
173
174
|
};
|
|
174
175
|
builder
|
|
175
176
|
.addCase(startNewConversationAction, resetContextToAmbient)
|
|
@@ -4,4 +4,6 @@ export declare function setIsOpened(isOpened: boolean): void;
|
|
|
4
4
|
export declare function saveMessages(workspaceId: string, messages: Message[]): void;
|
|
5
5
|
export declare function loadMessages(workspaceId: string): Message[] | undefined;
|
|
6
6
|
export declare function clearCachedMessages(workspaceId: string): void;
|
|
7
|
+
export declare function getLastActiveAt(workspaceId: string): number | undefined;
|
|
8
|
+
export declare function setLastActiveAt(workspaceId: string, timestamp: number): void;
|
|
7
9
|
//# sourceMappingURL=localStorage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localStorage.d.ts","sourceRoot":"","sources":["../../src/store/localStorage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"localStorage.d.ts","sourceRoot":"","sources":["../../src/store/localStorage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAM3C,wBAAgB,WAAW,wBAU1B;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,OAAO,QAY5C;AAMD,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAS3E;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,SAAS,CAavE;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAS7D;AAMD,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAWvE;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAM5E"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// (C) 2026 GoodData Corporation
|
|
2
2
|
const OPENED_KEY = "gd-gen-ai-is-opened";
|
|
3
3
|
const MESSAGES_KEY_PREFIX = "gd-gen-ai-messages";
|
|
4
|
+
const LAST_ACTIVE_KEY_PREFIX = "gd-gen-ai-last-active";
|
|
4
5
|
export function getIsOpened() {
|
|
5
6
|
if (typeof localStorage !== "undefined") {
|
|
6
7
|
try {
|
|
@@ -68,3 +69,27 @@ export function clearCachedMessages(workspaceId) {
|
|
|
68
69
|
// Fail silently
|
|
69
70
|
}
|
|
70
71
|
}
|
|
72
|
+
function getLastActiveKey(workspaceId) {
|
|
73
|
+
return `${LAST_ACTIVE_KEY_PREFIX}-${workspaceId}`;
|
|
74
|
+
}
|
|
75
|
+
export function getLastActiveAt(workspaceId) {
|
|
76
|
+
try {
|
|
77
|
+
const raw = globalThis.localStorage?.getItem(getLastActiveKey(workspaceId));
|
|
78
|
+
if (!raw) {
|
|
79
|
+
return undefined;
|
|
80
|
+
}
|
|
81
|
+
const parsed = Number(raw);
|
|
82
|
+
return Number.isFinite(parsed) ? parsed : undefined;
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
export function setLastActiveAt(workspaceId, timestamp) {
|
|
89
|
+
try {
|
|
90
|
+
globalThis.localStorage?.setItem(getLastActiveKey(workspaceId), String(timestamp));
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
// Fail silently
|
|
94
|
+
}
|
|
95
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How long the assistant may sit unused before the next open counts as a new session.
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
5
|
+
export declare const CONVERSATION_SESSION_TIMEOUT_MS: number;
|
|
6
|
+
/**
|
|
7
|
+
* Whether the next open should start a fresh conversation instead of resuming the last one.
|
|
8
|
+
* A missing timestamp keeps the previous resume behaviour.
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
export declare function isConversationSessionStale(workspaceId: string, now?: number): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
export declare function touchConversationSession(workspaceId: string, now?: number): void;
|
|
16
|
+
/** Refresh the session timer on assistant interaction (not on open). @internal */
|
|
17
|
+
export declare function onConversationActivity(): Generator<import("redux-saga/effects").GetContextEffect, void, string>;
|
|
18
|
+
/** Read staleness and refresh the timer on open. Only one open path calls this per opening. @internal */
|
|
19
|
+
export declare function consumeStaleConversationSession(): Generator<any, boolean, any>;
|
|
20
|
+
//# sourceMappingURL=conversationSession.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversationSession.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/conversationSession.ts"],"names":[],"mappings":"AASA;;;GAGG;AACH,eAAO,MAAM,+BAA+B,QAAqB,CAAC;AAElE;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,GAAE,MAAmB,GAAG,OAAO,CAIjG;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,GAAE,MAAmB,GAAG,IAAI,CAE5F;AAED,kFAAkF;AAClF,wBAAiB,sBAAsB,2EAItC;AAED,yGAAyG;AACzG,wBAAiB,+BAA+B,IAAI,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,CAW/E"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// (C) 2026 GoodData Corporation
|
|
2
|
+
import { getContext, select } from "redux-saga/effects";
|
|
3
|
+
import { settingsSelector } from "../chatWindow/chatWindowSelectors.js";
|
|
4
|
+
import { getLastActiveAt, setLastActiveAt } from "../localStorage.js";
|
|
5
|
+
/**
|
|
6
|
+
* How long the assistant may sit unused before the next open counts as a new session.
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
export const CONVERSATION_SESSION_TIMEOUT_MS = 8 * 60 * 60 * 1000;
|
|
10
|
+
/**
|
|
11
|
+
* Whether the next open should start a fresh conversation instead of resuming the last one.
|
|
12
|
+
* A missing timestamp keeps the previous resume behaviour.
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
export function isConversationSessionStale(workspaceId, now = Date.now()) {
|
|
16
|
+
const lastActiveAt = getLastActiveAt(workspaceId);
|
|
17
|
+
return lastActiveAt !== undefined && now - lastActiveAt > CONVERSATION_SESSION_TIMEOUT_MS;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* @internal
|
|
21
|
+
*/
|
|
22
|
+
export function touchConversationSession(workspaceId, now = Date.now()) {
|
|
23
|
+
setLastActiveAt(workspaceId, now);
|
|
24
|
+
}
|
|
25
|
+
/** Refresh the session timer on assistant interaction (not on open). @internal */
|
|
26
|
+
export function* onConversationActivity() {
|
|
27
|
+
const workspace = yield getContext("workspace");
|
|
28
|
+
touchConversationSession(workspace);
|
|
29
|
+
}
|
|
30
|
+
/** Read staleness and refresh the timer on open. Only one open path calls this per opening. @internal */
|
|
31
|
+
export function* consumeStaleConversationSession() {
|
|
32
|
+
const settings = yield select(settingsSelector);
|
|
33
|
+
if (!settings?.enableAiAgenticConversations || !settings?.enableAiAgenticMultiConversations) {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
const workspace = yield getContext("workspace");
|
|
37
|
+
const stale = isConversationSessionStale(workspace);
|
|
38
|
+
touchConversationSession(workspace);
|
|
39
|
+
return stale;
|
|
40
|
+
}
|
|
@@ -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":"AAoDA;;;GAGG;AACH,wBAAiB,QAAQ,4HAgCxB"}
|