@thoughtspot/visual-embed-sdk 1.50.0 → 1.51.0-test
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/cjs/package.json +1 -1
- package/cjs/src/config.d.ts +1 -0
- package/cjs/src/config.d.ts.map +1 -1
- package/cjs/src/config.js +2 -1
- package/cjs/src/config.js.map +1 -1
- package/cjs/src/css-variables.d.ts +122 -0
- package/cjs/src/css-variables.d.ts.map +1 -1
- package/cjs/src/embed/app.d.ts +176 -24
- package/cjs/src/embed/app.d.ts.map +1 -1
- package/cjs/src/embed/app.js +86 -38
- package/cjs/src/embed/app.js.map +1 -1
- package/cjs/src/embed/app.spec.js +672 -150
- package/cjs/src/embed/app.spec.js.map +1 -1
- package/cjs/src/embed/base.d.ts +1 -1
- package/cjs/src/embed/base.js +1 -1
- package/cjs/src/embed/conversation.d.ts +401 -2
- package/cjs/src/embed/conversation.d.ts.map +1 -1
- package/cjs/src/embed/conversation.js +32 -16
- package/cjs/src/embed/conversation.js.map +1 -1
- package/cjs/src/embed/conversation.spec.js +346 -17
- package/cjs/src/embed/conversation.spec.js.map +1 -1
- package/cjs/src/embed/events.spec.js +638 -0
- package/cjs/src/embed/events.spec.js.map +1 -1
- package/cjs/src/embed/host-events.spec.js +187 -0
- package/cjs/src/embed/host-events.spec.js.map +1 -1
- package/cjs/src/embed/hostEventClient/contracts.d.ts +51 -14
- package/cjs/src/embed/hostEventClient/contracts.d.ts.map +1 -1
- package/cjs/src/embed/hostEventClient/contracts.js +11 -1
- package/cjs/src/embed/hostEventClient/contracts.js.map +1 -1
- package/cjs/src/embed/hostEventClient/host-event-client.d.ts +2 -1
- package/cjs/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
- package/cjs/src/embed/hostEventClient/host-event-client.js +9 -0
- package/cjs/src/embed/hostEventClient/host-event-client.js.map +1 -1
- package/cjs/src/embed/hostEventClient/host-event-client.spec.js +236 -0
- package/cjs/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
- package/cjs/src/embed/hostEventClient/utils.d.ts +2 -0
- package/cjs/src/embed/hostEventClient/utils.d.ts.map +1 -1
- package/cjs/src/embed/hostEventClient/utils.js +32 -2
- package/cjs/src/embed/hostEventClient/utils.js.map +1 -1
- package/cjs/src/embed/hostEventClient/utils.spec.js +178 -0
- package/cjs/src/embed/hostEventClient/utils.spec.js.map +1 -1
- package/cjs/src/embed/liveboard.d.ts +81 -13
- package/cjs/src/embed/liveboard.d.ts.map +1 -1
- package/cjs/src/embed/liveboard.js +50 -9
- package/cjs/src/embed/liveboard.js.map +1 -1
- package/cjs/src/embed/liveboard.spec.js +432 -4
- package/cjs/src/embed/liveboard.spec.js.map +1 -1
- package/cjs/src/embed/spotter-utils.d.ts +15 -1
- package/cjs/src/embed/spotter-utils.d.ts.map +1 -1
- package/cjs/src/embed/spotter-utils.js +28 -1
- package/cjs/src/embed/spotter-utils.js.map +1 -1
- package/cjs/src/embed/spotter-utils.spec.js +129 -0
- package/cjs/src/embed/spotter-utils.spec.js.map +1 -1
- package/cjs/src/embed/spotter-viz-utils.d.ts +37 -4
- package/cjs/src/embed/spotter-viz-utils.d.ts.map +1 -1
- package/cjs/src/embed/spotter-viz-utils.js.map +1 -1
- package/cjs/src/embed/spotter-viz-utils.spec.js +17 -0
- package/cjs/src/embed/spotter-viz-utils.spec.js.map +1 -1
- package/cjs/src/embed/ts-embed.d.ts +16 -8
- package/cjs/src/embed/ts-embed.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.js +96 -37
- package/cjs/src/embed/ts-embed.js.map +1 -1
- package/cjs/src/embed/ts-embed.spec.js +683 -3
- package/cjs/src/embed/ts-embed.spec.js.map +1 -1
- package/cjs/src/errors.d.ts +1 -0
- package/cjs/src/errors.d.ts.map +1 -1
- package/cjs/src/errors.js +1 -0
- package/cjs/src/errors.js.map +1 -1
- package/cjs/src/index.d.ts +3 -3
- package/cjs/src/index.d.ts.map +1 -1
- package/cjs/src/index.js +4 -2
- package/cjs/src/index.js.map +1 -1
- package/cjs/src/mixpanel-service.d.ts +4 -0
- package/cjs/src/mixpanel-service.d.ts.map +1 -1
- package/cjs/src/mixpanel-service.js +4 -0
- package/cjs/src/mixpanel-service.js.map +1 -1
- package/cjs/src/react/all-types-export.d.ts +1 -1
- package/cjs/src/react/all-types-export.d.ts.map +1 -1
- package/cjs/src/react/all-types-export.js +2 -1
- package/cjs/src/react/all-types-export.js.map +1 -1
- package/cjs/src/react/all-types-export.parity.spec.d.ts +2 -0
- package/cjs/src/react/all-types-export.parity.spec.d.ts.map +1 -0
- package/cjs/src/react/all-types-export.parity.spec.js +194 -0
- package/cjs/src/react/all-types-export.parity.spec.js.map +1 -0
- package/cjs/src/react/index.d.ts +66 -32
- package/cjs/src/react/index.d.ts.map +1 -1
- package/cjs/src/react/index.js +5 -3
- package/cjs/src/react/index.js.map +1 -1
- package/cjs/src/react/index.spec.js +101 -0
- package/cjs/src/react/index.spec.js.map +1 -1
- package/cjs/src/react/util.spec.js +251 -0
- package/cjs/src/react/util.spec.js.map +1 -1
- package/cjs/src/types.d.ts +902 -28
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +701 -14
- package/cjs/src/types.js.map +1 -1
- package/cjs/src/utils/processData.spec.js +93 -0
- package/cjs/src/utils/processData.spec.js.map +1 -1
- package/cjs/src/utils/processTrigger.spec.js +61 -0
- package/cjs/src/utils/processTrigger.spec.js.map +1 -1
- package/cjs/src/utils.spec.js +4 -0
- package/cjs/src/utils.spec.js.map +1 -1
- package/dist/{index-B5xoN6Cp.js → index-Bivg-mDx.js} +1 -1
- package/dist/src/config.d.ts +1 -0
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/css-variables.d.ts +122 -0
- package/dist/src/css-variables.d.ts.map +1 -1
- package/dist/src/embed/app.d.ts +176 -24
- package/dist/src/embed/app.d.ts.map +1 -1
- package/dist/src/embed/base.d.ts +1 -1
- package/dist/src/embed/conversation.d.ts +401 -2
- package/dist/src/embed/conversation.d.ts.map +1 -1
- package/dist/src/embed/hostEventClient/contracts.d.ts +51 -14
- package/dist/src/embed/hostEventClient/contracts.d.ts.map +1 -1
- package/dist/src/embed/hostEventClient/host-event-client.d.ts +2 -1
- package/dist/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
- package/dist/src/embed/hostEventClient/utils.d.ts +2 -0
- package/dist/src/embed/hostEventClient/utils.d.ts.map +1 -1
- package/dist/src/embed/liveboard.d.ts +81 -13
- package/dist/src/embed/liveboard.d.ts.map +1 -1
- package/dist/src/embed/spotter-utils.d.ts +15 -1
- package/dist/src/embed/spotter-utils.d.ts.map +1 -1
- package/dist/src/embed/spotter-viz-utils.d.ts +37 -4
- package/dist/src/embed/spotter-viz-utils.d.ts.map +1 -1
- package/dist/src/embed/ts-embed.d.ts +16 -8
- package/dist/src/embed/ts-embed.d.ts.map +1 -1
- package/dist/src/errors.d.ts +1 -0
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/index.d.ts +3 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/mixpanel-service.d.ts +4 -0
- package/dist/src/mixpanel-service.d.ts.map +1 -1
- package/dist/src/react/all-types-export.d.ts +1 -1
- package/dist/src/react/all-types-export.d.ts.map +1 -1
- package/dist/src/react/all-types-export.parity.spec.d.ts +2 -0
- package/dist/src/react/all-types-export.parity.spec.d.ts.map +1 -0
- package/dist/src/react/index.d.ts +66 -32
- package/dist/src/react/index.d.ts.map +1 -1
- package/dist/src/types.d.ts +902 -28
- package/dist/src/types.d.ts.map +1 -1
- package/dist/tsembed-react.es.js +1269 -206
- package/dist/tsembed-react.js +1268 -205
- package/dist/tsembed.es.js +1364 -304
- package/dist/tsembed.js +1362 -302
- package/dist/visual-embed-sdk-react-full.d.ts +1867 -157
- package/dist/visual-embed-sdk-react.d.ts +1872 -161
- package/dist/visual-embed-sdk.d.ts +1815 -127
- package/lib/package.json +1 -1
- package/lib/src/config.d.ts +1 -0
- package/lib/src/config.d.ts.map +1 -1
- package/lib/src/config.js +1 -0
- package/lib/src/config.js.map +1 -1
- package/lib/src/css-variables.d.ts +122 -0
- package/lib/src/css-variables.d.ts.map +1 -1
- package/lib/src/embed/app.d.ts +176 -24
- package/lib/src/embed/app.d.ts.map +1 -1
- package/lib/src/embed/app.js +87 -39
- package/lib/src/embed/app.js.map +1 -1
- package/lib/src/embed/app.spec.js +673 -151
- package/lib/src/embed/app.spec.js.map +1 -1
- package/lib/src/embed/base.d.ts +1 -1
- package/lib/src/embed/base.js +1 -1
- package/lib/src/embed/conversation.d.ts +401 -2
- package/lib/src/embed/conversation.d.ts.map +1 -1
- package/lib/src/embed/conversation.js +33 -17
- package/lib/src/embed/conversation.js.map +1 -1
- package/lib/src/embed/conversation.spec.js +347 -18
- package/lib/src/embed/conversation.spec.js.map +1 -1
- package/lib/src/embed/events.spec.js +638 -0
- package/lib/src/embed/events.spec.js.map +1 -1
- package/lib/src/embed/host-events.spec.js +188 -1
- package/lib/src/embed/host-events.spec.js.map +1 -1
- package/lib/src/embed/hostEventClient/contracts.d.ts +51 -14
- package/lib/src/embed/hostEventClient/contracts.d.ts.map +1 -1
- package/lib/src/embed/hostEventClient/contracts.js +10 -0
- package/lib/src/embed/hostEventClient/contracts.js.map +1 -1
- package/lib/src/embed/hostEventClient/host-event-client.d.ts +2 -1
- package/lib/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
- package/lib/src/embed/hostEventClient/host-event-client.js +10 -1
- package/lib/src/embed/hostEventClient/host-event-client.js.map +1 -1
- package/lib/src/embed/hostEventClient/host-event-client.spec.js +236 -0
- package/lib/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
- package/lib/src/embed/hostEventClient/utils.d.ts +2 -0
- package/lib/src/embed/hostEventClient/utils.d.ts.map +1 -1
- package/lib/src/embed/hostEventClient/utils.js +28 -1
- package/lib/src/embed/hostEventClient/utils.js.map +1 -1
- package/lib/src/embed/hostEventClient/utils.spec.js +179 -1
- package/lib/src/embed/hostEventClient/utils.spec.js.map +1 -1
- package/lib/src/embed/liveboard.d.ts +81 -13
- package/lib/src/embed/liveboard.d.ts.map +1 -1
- package/lib/src/embed/liveboard.js +50 -9
- package/lib/src/embed/liveboard.js.map +1 -1
- package/lib/src/embed/liveboard.spec.js +432 -4
- package/lib/src/embed/liveboard.spec.js.map +1 -1
- package/lib/src/embed/spotter-utils.d.ts +15 -1
- package/lib/src/embed/spotter-utils.d.ts.map +1 -1
- package/lib/src/embed/spotter-utils.js +25 -0
- package/lib/src/embed/spotter-utils.js.map +1 -1
- package/lib/src/embed/spotter-utils.spec.js +130 -1
- package/lib/src/embed/spotter-utils.spec.js.map +1 -1
- package/lib/src/embed/spotter-viz-utils.d.ts +37 -4
- package/lib/src/embed/spotter-viz-utils.d.ts.map +1 -1
- package/lib/src/embed/spotter-viz-utils.js.map +1 -1
- package/lib/src/embed/spotter-viz-utils.spec.js +17 -0
- package/lib/src/embed/spotter-viz-utils.spec.js.map +1 -1
- package/lib/src/embed/ts-embed.d.ts +16 -8
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +96 -37
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +683 -3
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/errors.d.ts +1 -0
- package/lib/src/errors.d.ts.map +1 -1
- package/lib/src/errors.js +1 -0
- package/lib/src/errors.js.map +1 -1
- package/lib/src/index.d.ts +3 -3
- package/lib/src/index.d.ts.map +1 -1
- package/lib/src/index.js +3 -3
- package/lib/src/index.js.map +1 -1
- package/lib/src/mixpanel-service.d.ts +4 -0
- package/lib/src/mixpanel-service.d.ts.map +1 -1
- package/lib/src/mixpanel-service.js +4 -0
- package/lib/src/mixpanel-service.js.map +1 -1
- package/lib/src/react/all-types-export.d.ts +1 -1
- package/lib/src/react/all-types-export.d.ts.map +1 -1
- package/lib/src/react/all-types-export.js +1 -1
- package/lib/src/react/all-types-export.js.map +1 -1
- package/lib/src/react/all-types-export.parity.spec.d.ts +2 -0
- package/lib/src/react/all-types-export.parity.spec.d.ts.map +1 -0
- package/lib/src/react/all-types-export.parity.spec.js +191 -0
- package/lib/src/react/all-types-export.parity.spec.js.map +1 -0
- package/lib/src/react/index.d.ts +66 -32
- package/lib/src/react/index.d.ts.map +1 -1
- package/lib/src/react/index.js +5 -3
- package/lib/src/react/index.js.map +1 -1
- package/lib/src/react/index.spec.js +102 -1
- package/lib/src/react/index.spec.js.map +1 -1
- package/lib/src/react/util.spec.js +251 -0
- package/lib/src/react/util.spec.js.map +1 -1
- package/lib/src/types.d.ts +902 -28
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +701 -14
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils/processData.spec.js +93 -0
- package/lib/src/utils/processData.spec.js.map +1 -1
- package/lib/src/utils/processTrigger.spec.js +61 -0
- package/lib/src/utils/processTrigger.spec.js.map +1 -1
- package/lib/src/utils.spec.js +4 -0
- package/lib/src/utils.spec.js.map +1 -1
- package/lib/src/visual-embed-sdk.d.ts +1815 -127
- package/package.json +1 -1
- package/src/config.ts +1 -0
- package/src/css-variables.ts +150 -0
- package/src/embed/app.spec.ts +877 -196
- package/src/embed/app.ts +276 -75
- package/src/embed/base.ts +1 -1
- package/src/embed/conversation.spec.ts +411 -21
- package/src/embed/conversation.ts +441 -18
- package/src/embed/events.spec.ts +761 -1
- package/src/embed/host-events.spec.ts +242 -0
- package/src/embed/hostEventClient/contracts.ts +57 -14
- package/src/embed/hostEventClient/host-event-client.spec.ts +372 -0
- package/src/embed/hostEventClient/host-event-client.ts +18 -2
- package/src/embed/hostEventClient/utils.spec.ts +204 -0
- package/src/embed/hostEventClient/utils.ts +37 -10
- package/src/embed/liveboard.spec.ts +565 -4
- package/src/embed/liveboard.ts +155 -28
- package/src/embed/spotter-utils.spec.ts +140 -1
- package/src/embed/spotter-utils.ts +36 -1
- package/src/embed/spotter-viz-utils.spec.ts +17 -0
- package/src/embed/spotter-viz-utils.ts +37 -4
- package/src/embed/ts-embed.spec.ts +885 -3
- package/src/embed/ts-embed.ts +111 -39
- package/src/errors.ts +1 -0
- package/src/index.ts +45 -2
- package/src/mixpanel-service.ts +4 -0
- package/src/react/all-types-export.parity.spec.ts +208 -0
- package/src/react/all-types-export.ts +22 -0
- package/src/react/index.spec.tsx +158 -0
- package/src/react/index.tsx +70 -33
- package/src/react/util.spec.tsx +255 -0
- package/src/types.ts +904 -24
- package/src/utils/processData.spec.ts +97 -0
- package/src/utils/processTrigger.spec.ts +91 -0
- package/src/utils.spec.ts +5 -0
package/dist/tsembed-react.es.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* @thoughtspot/visual-embed-sdk version 1.
|
|
1
|
+
/* @thoughtspot/visual-embed-sdk version 1.51.0-test */
|
|
2
2
|
'use client';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import React__default, { useRef, useCallback } from 'react';
|
|
@@ -374,7 +374,9 @@ var AuthType;
|
|
|
374
374
|
})(AuthType || (AuthType = {}));
|
|
375
375
|
/**
|
|
376
376
|
*
|
|
377
|
-
* **Note**:
|
|
377
|
+
* **Note**: The classic (V1) and Modular (V2) home page experiences are
|
|
378
|
+
* deprecated. This attribute applies to V3 (ModularWithStylingChanges) and
|
|
379
|
+
* V4 (Focused) home page experiences.
|
|
378
380
|
*
|
|
379
381
|
*/
|
|
380
382
|
var HomeLeftNavItem;
|
|
@@ -442,6 +444,13 @@ var HomeLeftNavItem;
|
|
|
442
444
|
* @version SDK: 1.41.0 | ThoughtSpot: 10.12.0.cl
|
|
443
445
|
*/
|
|
444
446
|
HomeLeftNavItem["Favorites"] = "favorites";
|
|
447
|
+
/**
|
|
448
|
+
* The *Collections* menu option in
|
|
449
|
+
* the *Insights* left navigation panel.
|
|
450
|
+
* Shown when collections are enabled on the cluster.
|
|
451
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
452
|
+
*/
|
|
453
|
+
HomeLeftNavItem["Collections"] = "collections";
|
|
445
454
|
})(HomeLeftNavItem || (HomeLeftNavItem = {}));
|
|
446
455
|
/**
|
|
447
456
|
* A map of the supported runtime filter operations
|
|
@@ -514,7 +523,9 @@ var RuntimeFilterOp;
|
|
|
514
523
|
* via `hiddenHomepageModules` and reordered via
|
|
515
524
|
* `reorderedHomepageModules`.
|
|
516
525
|
*
|
|
517
|
-
* **Note**:
|
|
526
|
+
* **Note**: The classic (V1) and Modular (V2) home page experiences are
|
|
527
|
+
* deprecated. These modules apply to V3 (ModularWithStylingChanges) and
|
|
528
|
+
* V4 (Focused) home page experiences.
|
|
518
529
|
* @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl, 10.1.0.sw
|
|
519
530
|
*/
|
|
520
531
|
var HomepageModule;
|
|
@@ -692,7 +703,7 @@ var EmbedEvent;
|
|
|
692
703
|
* @returns nonFilteredColumns - The columns that were not filtered
|
|
693
704
|
* @example
|
|
694
705
|
* ```js
|
|
695
|
-
* searchEmbed.on(EmbedEvent.
|
|
706
|
+
* searchEmbed.on(EmbedEvent.Drilldown, {
|
|
696
707
|
* points: {
|
|
697
708
|
* clickedPoint,
|
|
698
709
|
* selectedPoints: selectedPoint
|
|
@@ -753,7 +764,7 @@ var EmbedEvent;
|
|
|
753
764
|
* @version SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 8.4.1.sw
|
|
754
765
|
* @example
|
|
755
766
|
* ```js
|
|
756
|
-
* appEmbed.on(EmbedEvent.
|
|
767
|
+
* appEmbed.on(EmbedEvent.CustomAction, payload => {
|
|
757
768
|
* const data = payload.data;
|
|
758
769
|
* if (data.id === 'insert Custom Action ID here') {
|
|
759
770
|
* console.log('Custom Action event:', data.embedAnswerData);
|
|
@@ -1019,8 +1030,8 @@ var EmbedEvent;
|
|
|
1019
1030
|
*
|
|
1020
1031
|
* **Note**: This event is deprecated in v1.21.0.
|
|
1021
1032
|
* To fire an event when a download action is initiated on a chart or table,
|
|
1022
|
-
* use `EmbedEvent.DownloadAsPng`, `EmbedEvent.
|
|
1023
|
-
* `EmbedEvent.
|
|
1033
|
+
* use `EmbedEvent.DownloadAsPng`, `EmbedEvent.DownloadAsPdf`,
|
|
1034
|
+
* `EmbedEvent.DownloadAsCsv`, or `EmbedEvent.DownloadAsXlsx`
|
|
1024
1035
|
* @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
|
|
1025
1036
|
* @example
|
|
1026
1037
|
* ```js
|
|
@@ -1070,10 +1081,10 @@ var EmbedEvent;
|
|
|
1070
1081
|
* @example
|
|
1071
1082
|
* ```js
|
|
1072
1083
|
* //emit when action starts
|
|
1073
|
-
* searchEmbed.on(EmbedEvent.
|
|
1084
|
+
* searchEmbed.on(EmbedEvent.DownloadAsCsv, payload => {
|
|
1074
1085
|
* console.log('download CSV', payload)}, {start: true })
|
|
1075
1086
|
* //emit when action ends
|
|
1076
|
-
* searchEmbed.on(EmbedEvent.
|
|
1087
|
+
* searchEmbed.on(EmbedEvent.DownloadAsCsv, payload => {
|
|
1077
1088
|
* console.log('download CSV', payload)})
|
|
1078
1089
|
* ```
|
|
1079
1090
|
*/
|
|
@@ -1472,11 +1483,19 @@ var EmbedEvent;
|
|
|
1472
1483
|
* Emitted when a user changes any filter on a Liveboard.
|
|
1473
1484
|
* Returns filter type and name, column name and ID, and runtime
|
|
1474
1485
|
* filter details.
|
|
1486
|
+
* The payload includes an optional `applicability` attribute indicating the
|
|
1487
|
+
* scope of the changed filter. It contains a `level` (`LIVEBOARD`,
|
|
1488
|
+
* `TAB`, or `GROUP`) and, when `level` is `TAB` or `GROUP`, a
|
|
1489
|
+
* `targetId` with the GUID of the target. At `LIVEBOARD` level there
|
|
1490
|
+
* is no `targetId`, since the filter applies to the whole Liveboard.
|
|
1491
|
+
* The `applicability` attribute is available from SDK: 1.53.0 |
|
|
1492
|
+
* ThoughtSpot: 26.10.0.cl.
|
|
1475
1493
|
* @example
|
|
1476
1494
|
*
|
|
1477
1495
|
* ```js
|
|
1478
1496
|
* LiveboardEmbed.on(EmbedEvent.FilterChanged, (payload) => {
|
|
1479
1497
|
* console.log('payload', payload);
|
|
1498
|
+
* // payload.data optionally includes applicability: { level, targetId }
|
|
1480
1499
|
* })
|
|
1481
1500
|
* ```
|
|
1482
1501
|
* @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl, 9.5.0.sw
|
|
@@ -1668,9 +1687,17 @@ var EmbedEvent;
|
|
|
1668
1687
|
/**
|
|
1669
1688
|
* Emitted when parameter changes in an Answer
|
|
1670
1689
|
* or Liveboard.
|
|
1690
|
+
* The payload includes an optional `applicability` attribute indicating the
|
|
1691
|
+
* scope of the changed parameter. It contains a `level` (`LIVEBOARD`,
|
|
1692
|
+
* `TAB`, or `GROUP`) and, when `level` is `TAB` or `GROUP`, a
|
|
1693
|
+
* `targetId` with the GUID of the target. At `LIVEBOARD` level there
|
|
1694
|
+
* is no `targetId`, since the parameter applies to the whole Liveboard.
|
|
1695
|
+
* The `applicability` attribute is available from SDK: 1.53.0 |
|
|
1696
|
+
* ThoughtSpot: 26.10.0.cl.
|
|
1671
1697
|
* ```js
|
|
1672
1698
|
* liveboardEmbed.on(EmbedEvent.ParameterChanged, (payload) => {
|
|
1673
1699
|
* console.log('payload', payload);
|
|
1700
|
+
* // payload.data optionally includes applicability: { level, targetId }
|
|
1674
1701
|
* })
|
|
1675
1702
|
* ```
|
|
1676
1703
|
* @version SDK: 1.29.0 | ThoughtSpot: 10.3.0.cl
|
|
@@ -1972,6 +1999,158 @@ var EmbedEvent;
|
|
|
1972
1999
|
* @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
|
|
1973
2000
|
*/
|
|
1974
2001
|
EmbedEvent["SpotterConversationDeleted"] = "spotterConversationDeleted";
|
|
2002
|
+
/**
|
|
2003
|
+
* Emitted when the header Share button is clicked. Fires `Start` then `End`
|
|
2004
|
+
* to bracket the interaction. App→host counterpart of the
|
|
2005
|
+
* `ShareSpotterConversation` host event (user-driven vs programmatic open).
|
|
2006
|
+
* @example
|
|
2007
|
+
* ```js
|
|
2008
|
+
* spotterEmbed.on(EmbedEvent.SpotterShareConversationButtonHeaderClicked, (payload) => {
|
|
2009
|
+
* // payload: { convId: string }
|
|
2010
|
+
* })
|
|
2011
|
+
* ```
|
|
2012
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
2013
|
+
*/
|
|
2014
|
+
EmbedEvent["SpotterShareConversationButtonHeaderClicked"] = "spotterShareConversationButtonHeaderClicked";
|
|
2015
|
+
/**
|
|
2016
|
+
* Emitted when the sidebar Share item is clicked. Fires `Start` then `End`
|
|
2017
|
+
* to bracket the interaction.
|
|
2018
|
+
* @example
|
|
2019
|
+
* ```js
|
|
2020
|
+
* spotterEmbed.on(EmbedEvent.SpotterShareConversationMenuItemSidebarClicked, (payload) => {
|
|
2021
|
+
* // payload: { convId: string }
|
|
2022
|
+
* })
|
|
2023
|
+
* ```
|
|
2024
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
2025
|
+
*/
|
|
2026
|
+
EmbedEvent["SpotterShareConversationMenuItemSidebarClicked"] = "spotterShareConversationMenuItemSidebarClicked";
|
|
2027
|
+
/**
|
|
2028
|
+
* Emitted when a Spotter conversation is shared (recipients added, or a new
|
|
2029
|
+
* share created). The host builds its own link from shareId/convId + its
|
|
2030
|
+
* configured CONVERSATION_URL — no link string is sent. Distinct from
|
|
2031
|
+
* `SpotterShareModalConfirmButtonClicked`, which fires at click time before
|
|
2032
|
+
* the save resolves.
|
|
2033
|
+
* @example
|
|
2034
|
+
* ```js
|
|
2035
|
+
* spotterEmbed.on(EmbedEvent.SpotterConversationShared, (payload) => {
|
|
2036
|
+
* // payload: { convId: string, shareId: string,
|
|
2037
|
+
* // recipientsAdded: string[], recipientsRemoved: string[] }
|
|
2038
|
+
* })
|
|
2039
|
+
* ```
|
|
2040
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
2041
|
+
*/
|
|
2042
|
+
EmbedEvent["SpotterConversationShared"] = "spotterConversationShared";
|
|
2043
|
+
/**
|
|
2044
|
+
* Emitted when access to a shared Spotter conversation is revoked
|
|
2045
|
+
* (recipients removed). `fullyRevoked` is true when the last sharee is removed
|
|
2046
|
+
* and the share is deleted entirely.
|
|
2047
|
+
* @example
|
|
2048
|
+
* ```js
|
|
2049
|
+
* spotterEmbed.on(EmbedEvent.SpotterConversationShareRevoked, (payload) => {
|
|
2050
|
+
* // payload: { convId: string, shareId: string,
|
|
2051
|
+
* // recipientsRemoved: string[], fullyRevoked: boolean }
|
|
2052
|
+
* })
|
|
2053
|
+
* ```
|
|
2054
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
2055
|
+
*/
|
|
2056
|
+
EmbedEvent["SpotterConversationShareRevoked"] = "spotterConversationShareRevoked";
|
|
2057
|
+
/**
|
|
2058
|
+
* Emitted when a recipient opens a shared Spotter conversation (read-only
|
|
2059
|
+
* view). No shareId available viewer-side.
|
|
2060
|
+
* @example
|
|
2061
|
+
* ```js
|
|
2062
|
+
* spotterEmbed.on(EmbedEvent.SpotterSharedConversationViewed, (payload) => {
|
|
2063
|
+
* // payload: { convId: string, sourceConvId: string }
|
|
2064
|
+
* // convId = resolved snapshot conv id; sourceConvId = the shared URL id
|
|
2065
|
+
* })
|
|
2066
|
+
* ```
|
|
2067
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
2068
|
+
*/
|
|
2069
|
+
EmbedEvent["SpotterSharedConversationViewed"] = "spotterSharedConversationViewed";
|
|
2070
|
+
/**
|
|
2071
|
+
* Emitted when the user toggles the share-modal "include new messages since
|
|
2072
|
+
* last shared version" checkbox.
|
|
2073
|
+
* @example
|
|
2074
|
+
* ```js
|
|
2075
|
+
* spotterEmbed.on(EmbedEvent.SpotterShareIncludeNewMessagesCheckboxToggled, (payload) => {
|
|
2076
|
+
* // payload: { convId: string, includeNewMessages: boolean }
|
|
2077
|
+
* })
|
|
2078
|
+
* ```
|
|
2079
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
2080
|
+
*/
|
|
2081
|
+
EmbedEvent["SpotterShareIncludeNewMessagesCheckboxToggled"] = "spotterShareIncludeNewMessagesCheckboxToggled";
|
|
2082
|
+
/**
|
|
2083
|
+
* Emitted when the user dismisses the stale-snapshot info banner via its
|
|
2084
|
+
* cross (distinct from the include-new-messages checkbox toggle).
|
|
2085
|
+
* @example
|
|
2086
|
+
* ```js
|
|
2087
|
+
* spotterEmbed.on(EmbedEvent.SpotterShareStaleInfoBannerDismissed, (payload) => {
|
|
2088
|
+
* // payload: { convId: string }
|
|
2089
|
+
* })
|
|
2090
|
+
* ```
|
|
2091
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
2092
|
+
*/
|
|
2093
|
+
EmbedEvent["SpotterShareStaleInfoBannerDismissed"] = "spotterShareStaleInfoBannerDismissed";
|
|
2094
|
+
/**
|
|
2095
|
+
* Emitted when the modal Share (confirm) button is clicked — fires at click
|
|
2096
|
+
* time, before the save resolves. Distinct from the `SpotterConversationShared`
|
|
2097
|
+
* / `SpotterConversationShareRevoked` result events.
|
|
2098
|
+
* @example
|
|
2099
|
+
* ```js
|
|
2100
|
+
* spotterEmbed.on(EmbedEvent.SpotterShareModalConfirmButtonClicked, (payload) => {
|
|
2101
|
+
* // payload: { convId: string }
|
|
2102
|
+
* })
|
|
2103
|
+
* ```
|
|
2104
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
2105
|
+
*/
|
|
2106
|
+
EmbedEvent["SpotterShareModalConfirmButtonClicked"] = "spotterShareModalConfirmButtonClicked";
|
|
2107
|
+
/**
|
|
2108
|
+
* Emitted when the share modal is dismissed via the Cancel button.
|
|
2109
|
+
* @example
|
|
2110
|
+
* ```js
|
|
2111
|
+
* spotterEmbed.on(EmbedEvent.SpotterShareModalCancelButtonClicked, (payload) => {
|
|
2112
|
+
* // payload: { convId: string }
|
|
2113
|
+
* })
|
|
2114
|
+
* ```
|
|
2115
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
2116
|
+
*/
|
|
2117
|
+
EmbedEvent["SpotterShareModalCancelButtonClicked"] = "spotterShareModalCancelButtonClicked";
|
|
2118
|
+
/**
|
|
2119
|
+
* Emitted when a recipient leaves the read-only shared view via the Exit
|
|
2120
|
+
* button.
|
|
2121
|
+
* @example
|
|
2122
|
+
* ```js
|
|
2123
|
+
* spotterEmbed.on(EmbedEvent.SpotterSharedConversationExitButtonClicked, (payload) => {
|
|
2124
|
+
* // payload: { convId: string }
|
|
2125
|
+
* })
|
|
2126
|
+
* ```
|
|
2127
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
2128
|
+
*/
|
|
2129
|
+
EmbedEvent["SpotterSharedConversationExitButtonClicked"] = "spotterSharedConversationExitButtonClicked";
|
|
2130
|
+
/**
|
|
2131
|
+
* Emitted when a Spotter conversation is pinned.
|
|
2132
|
+
* @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
|
|
2133
|
+
* @example
|
|
2134
|
+
* ```js
|
|
2135
|
+
* spotterEmbed.on(EmbedEvent.SpotterConversationPinned, (payload) => {
|
|
2136
|
+
* console.log('Conversation pinned', payload);
|
|
2137
|
+
* // payload: { conversationId: string, pinnedAt: string (ISO 8601) }
|
|
2138
|
+
* })
|
|
2139
|
+
* ```
|
|
2140
|
+
*/
|
|
2141
|
+
EmbedEvent["SpotterConversationPinned"] = "spotterConversationPinned";
|
|
2142
|
+
/**
|
|
2143
|
+
* Emitted when a Spotter conversation is unpinned.
|
|
2144
|
+
* @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
|
|
2145
|
+
* @example
|
|
2146
|
+
* ```js
|
|
2147
|
+
* spotterEmbed.on(EmbedEvent.SpotterConversationUnpinned, (payload) => {
|
|
2148
|
+
* console.log('Conversation unpinned', payload);
|
|
2149
|
+
* // payload: { conversationId: string, unpinnedAt: string (ISO 8601) }
|
|
2150
|
+
* })
|
|
2151
|
+
* ```
|
|
2152
|
+
*/
|
|
2153
|
+
EmbedEvent["SpotterConversationUnpinned"] = "spotterConversationUnpinned";
|
|
1975
2154
|
/**
|
|
1976
2155
|
* Emitted when a Spotter conversation is selected/clicked.
|
|
1977
2156
|
* @example
|
|
@@ -1984,6 +2163,30 @@ var EmbedEvent;
|
|
|
1984
2163
|
* @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
|
|
1985
2164
|
*/
|
|
1986
2165
|
EmbedEvent["SpotterConversationSelected"] = "spotterConversationSelected";
|
|
2166
|
+
/**
|
|
2167
|
+
* Emitted when the Spotter agent finishes streaming/rendering a response.
|
|
2168
|
+
* Includes the conversation and message identifiers so the host app can
|
|
2169
|
+
* fetch the full conversation history via the REST API if needed.
|
|
2170
|
+
*
|
|
2171
|
+
* The payload data has the shape `{ convId: string, messageId: string }`.
|
|
2172
|
+
*
|
|
2173
|
+
* Works with SpotterEmbed as well as AppEmbed (when Spotter is reached
|
|
2174
|
+
* inside the full application).
|
|
2175
|
+
* @example
|
|
2176
|
+
* ```js
|
|
2177
|
+
* spotterEmbed.on(EmbedEvent.SpotterResponseComplete, (payload) => {
|
|
2178
|
+
* console.log('Spotter response complete', payload);
|
|
2179
|
+
* })
|
|
2180
|
+
* ```
|
|
2181
|
+
* @example
|
|
2182
|
+
* ```js
|
|
2183
|
+
* appEmbed.on(EmbedEvent.SpotterResponseComplete, (payload) => {
|
|
2184
|
+
* console.log('Spotter response complete', payload);
|
|
2185
|
+
* })
|
|
2186
|
+
* ```
|
|
2187
|
+
* @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
2188
|
+
*/
|
|
2189
|
+
EmbedEvent["SpotterResponseComplete"] = "spotterResponseComplete";
|
|
1987
2190
|
/**
|
|
1988
2191
|
* @hidden
|
|
1989
2192
|
* Emitted when the auth token is about to get expired and needs to be refreshed.
|
|
@@ -2338,6 +2541,7 @@ var HostEvent;
|
|
|
2338
2541
|
* const url = await appEmbed.trigger(HostEvent.GetIframeUrl, {}, ContextType.Answer);
|
|
2339
2542
|
* console.log("iFrameURL", url);
|
|
2340
2543
|
* ```
|
|
2544
|
+
* @returns iframeUrl - The URL currently loaded in the embedded iframe.
|
|
2341
2545
|
* @version SDK: 1.35.0 | ThoughtSpot: 10.4.0.cl
|
|
2342
2546
|
*/
|
|
2343
2547
|
HostEvent["GetIframeUrl"] = "GetIframeUrl";
|
|
@@ -2464,6 +2668,17 @@ var HostEvent;
|
|
|
2464
2668
|
* name: string,
|
|
2465
2669
|
* type: ATTRIBUTE/MEASURE,
|
|
2466
2670
|
* dataType: INT64/CHAR/DATE }
|
|
2671
|
+
*
|
|
2672
|
+
* `applicability` - Optional. Scopes the filter to a specific target,
|
|
2673
|
+
* for example, a single Liveboard tab, so the panel for the correct
|
|
2674
|
+
* scoped filter is opened. Available from SDK: 1.53.0 |
|
|
2675
|
+
* ThoughtSpot: 26.10.0.cl. Includes the following attributes:
|
|
2676
|
+
*
|
|
2677
|
+
* - `level`: The scope of the filter: `LIVEBOARD`, `TAB`, or `GROUP`.
|
|
2678
|
+
* - `targetId`: The GUID of the target, for example, the tab GUID.
|
|
2679
|
+
* Required when `level` is `TAB` or `GROUP`. Do not pass it when
|
|
2680
|
+
* `level` is `LIVEBOARD`, since the filter applies to the whole
|
|
2681
|
+
* Liveboard. Omitting `applicability` targets the `LIVEBOARD` level.
|
|
2467
2682
|
* @example
|
|
2468
2683
|
* ```js
|
|
2469
2684
|
* searchEmbed.trigger(HostEvent.OpenFilter,
|
|
@@ -2476,6 +2691,14 @@ var HostEvent;
|
|
|
2476
2691
|
* ```
|
|
2477
2692
|
* @example
|
|
2478
2693
|
* ```js
|
|
2694
|
+
* // Open a filter scoped to a specific Liveboard tab
|
|
2695
|
+
* liveboardEmbed.trigger(HostEvent.OpenFilter, {
|
|
2696
|
+
* column: { columnId: '<column-GUID>' },
|
|
2697
|
+
* applicability: { level: 'TAB', targetId: '<tab-GUID>' }
|
|
2698
|
+
* });
|
|
2699
|
+
* ```
|
|
2700
|
+
* @example
|
|
2701
|
+
* ```js
|
|
2479
2702
|
* // Open filter from search context
|
|
2480
2703
|
* import { ContextType } from '@thoughtspot/visual-embed-sdk';
|
|
2481
2704
|
* searchEmbed.trigger(HostEvent.OpenFilter, {
|
|
@@ -2485,6 +2708,73 @@ var HostEvent;
|
|
|
2485
2708
|
* @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl
|
|
2486
2709
|
*/
|
|
2487
2710
|
HostEvent["OpenFilter"] = "openFilter";
|
|
2711
|
+
/**
|
|
2712
|
+
* Open the add-filter modal of a Liveboard, the same dialog that the
|
|
2713
|
+
* *Add filter* button in the Liveboard edit header opens, so the host
|
|
2714
|
+
* app can start the add-filter flow from its own UI.
|
|
2715
|
+
*
|
|
2716
|
+
* The Liveboard must be in edit mode; the event is ignored otherwise.
|
|
2717
|
+
* Hiding the *Add filter* button with `hiddenActions:
|
|
2718
|
+
* [Action.AddFilter]` does not block this event, but disabling it with
|
|
2719
|
+
* `disabledActions` does.
|
|
2720
|
+
*
|
|
2721
|
+
* Unlike {@link HostEvent.OpenFilter}, which opens the panel of an
|
|
2722
|
+
* existing filter, this event starts the creation of a new filter.
|
|
2723
|
+
* @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
|
|
2724
|
+
* @example
|
|
2725
|
+
* ```js
|
|
2726
|
+
* liveboardEmbed.trigger(HostEvent.OpenAddFilterModal);
|
|
2727
|
+
* ```
|
|
2728
|
+
*/
|
|
2729
|
+
HostEvent["OpenAddFilterModal"] = "openAddFilterModal";
|
|
2730
|
+
/**
|
|
2731
|
+
* Open the add-parameter panel of a Liveboard, the same panel that the
|
|
2732
|
+
* *Add parameter* button in the Liveboard edit header opens.
|
|
2733
|
+
* Mirrors {@link HostEvent.OpenAddFilterModal} for parameters.
|
|
2734
|
+
*
|
|
2735
|
+
* The Liveboard must be in edit mode; the event is ignored otherwise.
|
|
2736
|
+
* Hiding the *Add parameter* button with `hiddenActions:
|
|
2737
|
+
* [Action.AddParameter]` does not block this event, but disabling it
|
|
2738
|
+
* with `disabledActions` does.
|
|
2739
|
+
* @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
|
|
2740
|
+
* @example
|
|
2741
|
+
* ```js
|
|
2742
|
+
* liveboardEmbed.trigger(HostEvent.OpenAddParameterModal);
|
|
2743
|
+
* ```
|
|
2744
|
+
*/
|
|
2745
|
+
HostEvent["OpenAddParameterModal"] = "openAddParameterModal";
|
|
2746
|
+
/**
|
|
2747
|
+
* Open the parameter panel for a particular parameter on a Liveboard.
|
|
2748
|
+
* Mirrors {@link HostEvent.OpenFilter} for parameters.
|
|
2749
|
+
* @param - Includes the following keys:
|
|
2750
|
+
* - `parameter`: An object identifying the parameter to open, for
|
|
2751
|
+
* example, `{ parameterId: '<parameter-GUID>' }`.
|
|
2752
|
+
* - `applicability`: Optional. Scopes the parameter to a specific target,
|
|
2753
|
+
* for example, a single Liveboard tab, so the panel for the correct
|
|
2754
|
+
* scoped parameter is opened. Includes the following attributes:
|
|
2755
|
+
*
|
|
2756
|
+
* - `level`: The scope of the parameter: `LIVEBOARD`, `TAB`, or `GROUP`.
|
|
2757
|
+
* - `targetId`: The GUID of the target, for example, the tab GUID.
|
|
2758
|
+
* Required when `level` is `TAB` or `GROUP`. Do not pass it when
|
|
2759
|
+
* `level` is `LIVEBOARD`, since the parameter applies to the whole
|
|
2760
|
+
* Liveboard. Omitting `applicability` targets the `LIVEBOARD` level.
|
|
2761
|
+
* @example
|
|
2762
|
+
* ```js
|
|
2763
|
+
* liveboardEmbed.trigger(HostEvent.OpenParameter, {
|
|
2764
|
+
* parameter: { parameterId: '<parameter-GUID>' }
|
|
2765
|
+
* });
|
|
2766
|
+
* ```
|
|
2767
|
+
* @example
|
|
2768
|
+
* ```js
|
|
2769
|
+
* // Open a parameter scoped to a specific group
|
|
2770
|
+
* liveboardEmbed.trigger(HostEvent.OpenParameter, {
|
|
2771
|
+
* parameter: { parameterId: '<parameter-GUID>' },
|
|
2772
|
+
* applicability: { level: 'GROUP', targetId: '<group-GUID>' }
|
|
2773
|
+
* });
|
|
2774
|
+
* ```
|
|
2775
|
+
* @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
|
|
2776
|
+
*/
|
|
2777
|
+
HostEvent["OpenParameter"] = "openParameter";
|
|
2488
2778
|
/**
|
|
2489
2779
|
* Add columns to the current search query.
|
|
2490
2780
|
* @param - { columnIds: string[] }
|
|
@@ -2534,6 +2824,10 @@ var HostEvent;
|
|
|
2534
2824
|
* liveboardEmbed.trigger(HostEvent.getExportRequestForCurrentPinboard).then(
|
|
2535
2825
|
* data=>console.log(data))
|
|
2536
2826
|
* ```
|
|
2827
|
+
* @returns data - Object with a `v2Content` string: the export request
|
|
2828
|
+
* payload for the current Liveboard.
|
|
2829
|
+
* @returns type - The passthrough event name,
|
|
2830
|
+
* `getExportRequestForCurrentPinboard`.
|
|
2537
2831
|
* @version SDK: 1.13.0 | ThoughtSpot: 8.5.0.cl, 8.8.1.sw
|
|
2538
2832
|
*/
|
|
2539
2833
|
HostEvent["getExportRequestForCurrentPinboard"] = "getExportRequestForCurrentPinboard";
|
|
@@ -2636,6 +2930,9 @@ var HostEvent;
|
|
|
2636
2930
|
* }, ContextType.Spotter);
|
|
2637
2931
|
* ```
|
|
2638
2932
|
*
|
|
2933
|
+
* @returns liveboardId - GUID of the Liveboard the Answer was pinned to.
|
|
2934
|
+
* @returns tabId - GUID of the tab within that Liveboard.
|
|
2935
|
+
* @returns vizId - GUID of the newly created visualization.
|
|
2639
2936
|
* @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
|
|
2640
2937
|
*/
|
|
2641
2938
|
HostEvent["Pin"] = "pin";
|
|
@@ -2674,13 +2971,13 @@ var HostEvent;
|
|
|
2674
2971
|
* Trigger the **Manage schedule** action on an embedded Liveboard
|
|
2675
2972
|
* @example
|
|
2676
2973
|
* ```js
|
|
2677
|
-
* liveboardEmbed.trigger(HostEvent.
|
|
2974
|
+
* liveboardEmbed.trigger(HostEvent.SchedulesList)
|
|
2678
2975
|
* ```
|
|
2679
2976
|
* @example
|
|
2680
2977
|
* ```js
|
|
2681
2978
|
* // Manage schedules from liveboard context
|
|
2682
2979
|
* import { ContextType } from '@thoughtspot/visual-embed-sdk';
|
|
2683
|
-
* liveboardEmbed.trigger(HostEvent.
|
|
2980
|
+
* liveboardEmbed.trigger(HostEvent.SchedulesList, {}, ContextType.Liveboard);
|
|
2684
2981
|
* ```
|
|
2685
2982
|
* @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
|
|
2686
2983
|
*/
|
|
@@ -3125,6 +3422,7 @@ var HostEvent;
|
|
|
3125
3422
|
* console.log(tml.answer);
|
|
3126
3423
|
* });
|
|
3127
3424
|
* ```
|
|
3425
|
+
* @returns The TML representation of the current Answer, as an object.
|
|
3128
3426
|
* @version SDK: 1.18.0 | ThoughtSpot: 8.10.0.cl, 9.0.1.sw
|
|
3129
3427
|
* @important
|
|
3130
3428
|
*/
|
|
@@ -3549,6 +3847,14 @@ var HostEvent;
|
|
|
3549
3847
|
/**
|
|
3550
3848
|
* Get details of filters applied on the Liveboard.
|
|
3551
3849
|
* Returns arrays containing Liveboard filter and runtime filter elements.
|
|
3850
|
+
* Each Liveboard filter includes an optional `applicability` attribute
|
|
3851
|
+
* indicating the scope of the filter. It contains a `level`
|
|
3852
|
+
* (`LIVEBOARD`, `TAB`, or `GROUP`) and, when `level` is `TAB` or
|
|
3853
|
+
* `GROUP`, a `targetId` with the GUID of the target. At `LIVEBOARD`
|
|
3854
|
+
* level there is no `targetId`, since the filter applies to the
|
|
3855
|
+
* whole Liveboard.
|
|
3856
|
+
* The `applicability` attribute is available from SDK: 1.53.0 |
|
|
3857
|
+
* ThoughtSpot: 26.10.0.cl.
|
|
3552
3858
|
* @example
|
|
3553
3859
|
* ```js
|
|
3554
3860
|
* const data = await liveboardEmbed.trigger(HostEvent.GetFilters);
|
|
@@ -3561,6 +3867,8 @@ var HostEvent;
|
|
|
3561
3867
|
* const data = await liveboardEmbed.trigger(HostEvent.GetFilters, {}, ContextType.Liveboard);
|
|
3562
3868
|
* console.log('filters', data);
|
|
3563
3869
|
* ```
|
|
3870
|
+
* @returns liveboardFilters - Filters applied on the Liveboard.
|
|
3871
|
+
* @returns runtimeFilters - Runtime filters applied on the Liveboard.
|
|
3564
3872
|
* @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
|
|
3565
3873
|
*/
|
|
3566
3874
|
HostEvent["GetFilters"] = "getFilters";
|
|
@@ -3588,6 +3896,16 @@ var HostEvent;
|
|
|
3588
3896
|
*
|
|
3589
3897
|
* `type` - To update filters for date time, specify the date format type.
|
|
3590
3898
|
* For more information and examples, see link:https://developers.thoughtspot.com/docs/embed-liveboard#_date_filters[Date filters].
|
|
3899
|
+
*
|
|
3900
|
+
* `applicability` - Optional. Scopes the filter to a specific target,
|
|
3901
|
+
* for example, a single Liveboard tab. Available from SDK: 1.53.0 |
|
|
3902
|
+
* ThoughtSpot: 26.10.0.cl. Includes the following attributes:
|
|
3903
|
+
*
|
|
3904
|
+
* - `level`: The scope of the filter: `LIVEBOARD`, `TAB`, or `GROUP`.
|
|
3905
|
+
* - `targetId`: The GUID of the target, for example, the tab GUID.
|
|
3906
|
+
* Required when `level` is `TAB` or `GROUP`. Do not pass it when
|
|
3907
|
+
* `level` is `LIVEBOARD`, since the filter applies to the whole
|
|
3908
|
+
* Liveboard.
|
|
3591
3909
|
* @example
|
|
3592
3910
|
* ```js
|
|
3593
3911
|
*
|
|
@@ -3664,6 +3982,21 @@ var HostEvent;
|
|
|
3664
3982
|
* }
|
|
3665
3983
|
* }, ContextType.Liveboard);
|
|
3666
3984
|
* ```
|
|
3985
|
+
* @example
|
|
3986
|
+
* ```js
|
|
3987
|
+
* // Scope the filter to a specific Liveboard tab
|
|
3988
|
+
* liveboardEmbed.trigger(HostEvent.UpdateFilters, {
|
|
3989
|
+
* filter: {
|
|
3990
|
+
* column: "item type",
|
|
3991
|
+
* oper: "IN",
|
|
3992
|
+
* values: ["bags", "shirts"],
|
|
3993
|
+
* applicability: {
|
|
3994
|
+
* level: "TAB",
|
|
3995
|
+
* targetId: "e0836cad-4fdf-42d4-bd97-567a6b2a6058"
|
|
3996
|
+
* }
|
|
3997
|
+
* }
|
|
3998
|
+
* });
|
|
3999
|
+
* ```
|
|
3667
4000
|
* @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
|
|
3668
4001
|
*/
|
|
3669
4002
|
HostEvent["UpdateFilters"] = "updateFilters";
|
|
@@ -3685,9 +4018,37 @@ var HostEvent;
|
|
|
3685
4018
|
* console.log('tabs', tabDetails);
|
|
3686
4019
|
* });
|
|
3687
4020
|
* ```
|
|
4021
|
+
* @returns orderedTabIds - Tab GUIDs in the order they appear.
|
|
4022
|
+
* @returns numberOfTabs - Total number of tabs on the Liveboard.
|
|
4023
|
+
* @returns Tabs - Tab details, each with at least `id` and `name`.
|
|
3688
4024
|
* @version SDK: 1.26.0 | ThoughtSpot: 9.7.0.cl
|
|
3689
4025
|
*/
|
|
3690
4026
|
HostEvent["GetTabs"] = "getTabs";
|
|
4027
|
+
/**
|
|
4028
|
+
* Get group details for the current Liveboard.
|
|
4029
|
+
* Mirrors {@link HostEvent.GetTabs} for filter/parameter groups.
|
|
4030
|
+
* @example
|
|
4031
|
+
* ```js
|
|
4032
|
+
* liveboardEmbed.trigger(HostEvent.GetGroups).then((groupDetails) => {
|
|
4033
|
+
* console.log(
|
|
4034
|
+
* groupDetails // GroupDetails of current Liveboard
|
|
4035
|
+
* );
|
|
4036
|
+
* })
|
|
4037
|
+
* ```
|
|
4038
|
+
* @example
|
|
4039
|
+
* ```js
|
|
4040
|
+
* // Get groups from liveboard context
|
|
4041
|
+
* import { ContextType } from '@thoughtspot/visual-embed-sdk';
|
|
4042
|
+
* liveboardEmbed.trigger(HostEvent.GetGroups, {}, ContextType.Liveboard).then((groupDetails) => {
|
|
4043
|
+
* console.log('groups', groupDetails);
|
|
4044
|
+
* });
|
|
4045
|
+
* ```
|
|
4046
|
+
* @returns orderedGroupIds - Group GUIDs in the order they appear.
|
|
4047
|
+
* @returns numberOfGroups - Total number of groups on the Liveboard.
|
|
4048
|
+
* @returns Groups - Group details, each with at least `id` and `name`.
|
|
4049
|
+
* @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
|
|
4050
|
+
*/
|
|
4051
|
+
HostEvent["GetGroups"] = "getGroups";
|
|
3691
4052
|
/**
|
|
3692
4053
|
* Set the visible tabs on a Liveboard.
|
|
3693
4054
|
* @param - an array of ids of tabs to show, the IDs not passed
|
|
@@ -3759,6 +4120,9 @@ var HostEvent;
|
|
|
3759
4120
|
* // Alternative direct usage (not recommended)
|
|
3760
4121
|
* const {session} = await embed.trigger( HostEvent.GetAnswerSession )
|
|
3761
4122
|
* ```
|
|
4123
|
+
* @returns session - Session identifier for the Answer, for use with the
|
|
4124
|
+
* `AnswerService`.
|
|
4125
|
+
* @returns embedAnswerData - Data backing the Answer, when available.
|
|
3762
4126
|
* @version SDK: 1.26.0 | ThoughtSpot: 9.10.0.cl, 10.1.0.sw
|
|
3763
4127
|
*/
|
|
3764
4128
|
HostEvent["GetAnswerSession"] = "getAnswerSession";
|
|
@@ -3815,6 +4179,15 @@ var HostEvent;
|
|
|
3815
4179
|
* - `name`: Name of the parameter.
|
|
3816
4180
|
* - `value`: The value to set for the parameter.
|
|
3817
4181
|
* - `isVisibleToUser`: Optional. To control the visibility of the parameter chip.
|
|
4182
|
+
* - `applicability`: Optional. Scopes the parameter to a specific target,
|
|
4183
|
+
* for example, a single Liveboard tab. Available from SDK: 1.53.0 |
|
|
4184
|
+
* ThoughtSpot: 26.10.0.cl. Includes the following attributes:
|
|
4185
|
+
*
|
|
4186
|
+
* - `level`: The scope of the parameter: `LIVEBOARD`, `TAB`, or `GROUP`.
|
|
4187
|
+
* - `targetId`: The GUID of the target, for example, the tab GUID.
|
|
4188
|
+
* Required when `level` is `TAB` or `GROUP`. Do not pass it when
|
|
4189
|
+
* `level` is `LIVEBOARD`, since the parameter applies to the whole
|
|
4190
|
+
* Liveboard.
|
|
3818
4191
|
*
|
|
3819
4192
|
* @example
|
|
3820
4193
|
* ```js
|
|
@@ -3826,6 +4199,18 @@ var HostEvent;
|
|
|
3826
4199
|
* ```
|
|
3827
4200
|
* @example
|
|
3828
4201
|
* ```js
|
|
4202
|
+
* // Scope the parameter to a specific Liveboard tab
|
|
4203
|
+
* liveboardEmbed.trigger(HostEvent.UpdateParameters, [{
|
|
4204
|
+
* name: "Integer Range Param",
|
|
4205
|
+
* value: 10,
|
|
4206
|
+
* applicability: {
|
|
4207
|
+
* level: "TAB",
|
|
4208
|
+
* targetId: "e0836cad-4fdf-42d4-bd97-567a6b2a6058"
|
|
4209
|
+
* }
|
|
4210
|
+
* }])
|
|
4211
|
+
* ```
|
|
4212
|
+
* @example
|
|
4213
|
+
* ```js
|
|
3829
4214
|
* // Update parameters from liveboard context
|
|
3830
4215
|
* import { ContextType } from '@thoughtspot/visual-embed-sdk';
|
|
3831
4216
|
* liveboardEmbed.trigger(HostEvent.UpdateParameters, [{
|
|
@@ -3839,6 +4224,14 @@ var HostEvent;
|
|
|
3839
4224
|
HostEvent["UpdateParameters"] = "UpdateParameters";
|
|
3840
4225
|
/**
|
|
3841
4226
|
* Triggers GetParameters to fetch the runtime Parameters.
|
|
4227
|
+
* Each parameter includes an optional `applicability` attribute
|
|
4228
|
+
* indicating the scope of the parameter. It contains a `level`
|
|
4229
|
+
* (`LIVEBOARD`, `TAB`, or `GROUP`) and, when `level` is `TAB` or
|
|
4230
|
+
* `GROUP`, a `targetId` with the GUID of the target. At `LIVEBOARD`
|
|
4231
|
+
* level there is no `targetId`, since the parameter applies to the
|
|
4232
|
+
* whole Liveboard.
|
|
4233
|
+
* The `applicability` attribute is available from SDK: 1.53.0 |
|
|
4234
|
+
* ThoughtSpot: 26.10.0.cl.
|
|
3842
4235
|
* @param - `vizId` refers to the Answer ID in Spotter embed and is required in Spotter embed.
|
|
3843
4236
|
* ```js
|
|
3844
4237
|
* liveboardEmbed.trigger(HostEvent.GetParameters).then((parameter) => {
|
|
@@ -3863,12 +4256,16 @@ var HostEvent;
|
|
|
3863
4256
|
* console.log('parameters', parameters);
|
|
3864
4257
|
* });
|
|
3865
4258
|
* ```
|
|
4259
|
+
* @returns parameters - Parameters currently applied on the Liveboard.
|
|
3866
4260
|
* @version SDK: 1.29.0 | ThoughtSpot: 10.1.0.cl, 10.1.0.sw
|
|
3867
4261
|
*/
|
|
3868
4262
|
HostEvent["GetParameters"] = "GetParameters";
|
|
3869
4263
|
/**
|
|
3870
4264
|
* Triggers an event to update a personalized view of a Liveboard.
|
|
3871
|
-
* This event is deprecated. Use {@link HostEvent.
|
|
4265
|
+
* This event is deprecated. Use {@link HostEvent.SelectPersonalizedView} instead,
|
|
4266
|
+
* which additionally accepts a `viewName`, resets to the original view when
|
|
4267
|
+
* called with an empty payload, and reports an error when a named view
|
|
4268
|
+
* cannot be found.
|
|
3872
4269
|
* ```js
|
|
3873
4270
|
* liveboardEmbed.trigger(HostEvent.UpdatePersonalisedView, {viewId: '1234'})
|
|
3874
4271
|
* ```
|
|
@@ -3886,10 +4283,15 @@ var HostEvent;
|
|
|
3886
4283
|
HostEvent["UpdatePersonalisedView"] = "UpdatePersonalisedView";
|
|
3887
4284
|
/**
|
|
3888
4285
|
* Triggers an event to update a personalized view of a Liveboard.
|
|
4286
|
+
* This event is deprecated. Use {@link HostEvent.SelectPersonalizedView} instead,
|
|
4287
|
+
* which additionally accepts a `viewName`, resets to the original view when
|
|
4288
|
+
* called with an empty payload, and reports an error when a named view
|
|
4289
|
+
* cannot be found.
|
|
3889
4290
|
* ```js
|
|
3890
4291
|
* liveboardEmbed.trigger(HostEvent.UpdatePersonalisedView, {viewId: '1234'})
|
|
3891
4292
|
* ```
|
|
3892
4293
|
* @version SDK: 1.48.0 | ThoughtSpot: 26.5.0.cl
|
|
4294
|
+
* @deprecated SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
|
|
3893
4295
|
*/
|
|
3894
4296
|
HostEvent["UpdatePersonalizedView"] = "UpdatePersonalisedView";
|
|
3895
4297
|
/**
|
|
@@ -3992,6 +4394,10 @@ var HostEvent;
|
|
|
3992
4394
|
* description: "Generated from Spotter"
|
|
3993
4395
|
* }, ContextType.Spotter);
|
|
3994
4396
|
* ```
|
|
4397
|
+
* @returns answerId - GUID of the saved Answer.
|
|
4398
|
+
* @returns saveResponse - Raw response from the save operation.
|
|
4399
|
+
* @returns shareResponse - Raw response from the share operation, when the
|
|
4400
|
+
* Answer was also made discoverable.
|
|
3995
4401
|
* @version SDK: 1.36.0 | ThoughtSpot: 10.6.0.cl
|
|
3996
4402
|
*/
|
|
3997
4403
|
HostEvent["SaveAnswer"] = "saveAnswer";
|
|
@@ -4105,6 +4511,36 @@ var HostEvent;
|
|
|
4105
4511
|
* @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
|
|
4106
4512
|
*/
|
|
4107
4513
|
HostEvent["ResetSpotterConversation"] = "ResetSpotterConversation";
|
|
4514
|
+
/**
|
|
4515
|
+
* Opens the Spotter share-conversation modal for the given conversation.
|
|
4516
|
+
* `conversationId` is **mandatory** — you must pass the id of the
|
|
4517
|
+
* conversation to share. Also no-op when sharing is disabled
|
|
4518
|
+
* (enableShareConversation off) or when already in the read-only shared view.
|
|
4519
|
+
* @example
|
|
4520
|
+
* ```js
|
|
4521
|
+
* spotterEmbed.trigger(HostEvent.ShareSpotterConversation, { conversationId: 'abc' });
|
|
4522
|
+
* ```
|
|
4523
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
4524
|
+
*/
|
|
4525
|
+
HostEvent["ShareSpotterConversation"] = "ShareSpotterConversation";
|
|
4526
|
+
/**
|
|
4527
|
+
* Closes the Spotter share-conversation modal. No-op if none is open.
|
|
4528
|
+
* @example
|
|
4529
|
+
* ```js
|
|
4530
|
+
* spotterEmbed.trigger(HostEvent.CloseSpotterShareConversation);
|
|
4531
|
+
* ```
|
|
4532
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
4533
|
+
*/
|
|
4534
|
+
HostEvent["CloseSpotterShareConversation"] = "CloseSpotterShareConversation";
|
|
4535
|
+
/**
|
|
4536
|
+
* Exits the read-only shared-conversation view.
|
|
4537
|
+
* @example
|
|
4538
|
+
* ```js
|
|
4539
|
+
* spotterEmbed.trigger(HostEvent.ExitSpotterSharedConversation);
|
|
4540
|
+
* ```
|
|
4541
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
4542
|
+
*/
|
|
4543
|
+
HostEvent["ExitSpotterSharedConversation"] = "ExitSpotterSharedConversation";
|
|
4108
4544
|
/**
|
|
4109
4545
|
* Deletes the last prompt in spotter embed.
|
|
4110
4546
|
* @example
|
|
@@ -4200,6 +4636,41 @@ var HostEvent;
|
|
|
4200
4636
|
* @version SDK: 1.45.0 | ThoughtSpot: 26.2.0.cl
|
|
4201
4637
|
*/
|
|
4202
4638
|
HostEvent["StartNewSpotterConversation"] = "StartNewSpotterConversation";
|
|
4639
|
+
/**
|
|
4640
|
+
* Pins a saved Spotter conversation so it floats to the top of the past
|
|
4641
|
+
* conversations sidebar. The `conversationId` of the conversation to pin is
|
|
4642
|
+
* required.
|
|
4643
|
+
*
|
|
4644
|
+
* This feature is available only when chat history is enabled on your ThoughtSpot
|
|
4645
|
+
* instance. Contact your admin or ThoughtSpot Support to enable chat history on your
|
|
4646
|
+
* instance.
|
|
4647
|
+
*
|
|
4648
|
+
* @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
|
|
4649
|
+
* @example
|
|
4650
|
+
* ```js
|
|
4651
|
+
* spotterEmbed.trigger(HostEvent.PinSpotterConversation, {
|
|
4652
|
+
* conversationId: '<conversation-id>',
|
|
4653
|
+
* });
|
|
4654
|
+
* ```
|
|
4655
|
+
*/
|
|
4656
|
+
HostEvent["PinSpotterConversation"] = "PinSpotterConversation";
|
|
4657
|
+
/**
|
|
4658
|
+
* Unpins a previously pinned Spotter conversation. The `conversationId` of the
|
|
4659
|
+
* conversation to unpin is required.
|
|
4660
|
+
*
|
|
4661
|
+
* This feature is available only when chat history is enabled on your ThoughtSpot
|
|
4662
|
+
* instance. Contact your admin or ThoughtSpot Support to enable chat history on your
|
|
4663
|
+
* instance.
|
|
4664
|
+
*
|
|
4665
|
+
* @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
|
|
4666
|
+
* @example
|
|
4667
|
+
* ```js
|
|
4668
|
+
* spotterEmbed.trigger(HostEvent.UnpinSpotterConversation, {
|
|
4669
|
+
* conversationId: '<conversation-id>',
|
|
4670
|
+
* });
|
|
4671
|
+
* ```
|
|
4672
|
+
*/
|
|
4673
|
+
HostEvent["UnpinSpotterConversation"] = "UnpinSpotterConversation";
|
|
4203
4674
|
/**
|
|
4204
4675
|
* @hidden
|
|
4205
4676
|
* Get the current context of the embedded page.
|
|
@@ -4408,6 +4879,7 @@ var Param;
|
|
|
4408
4879
|
Param["NumberFormatLocale"] = "numberFormatLocale";
|
|
4409
4880
|
Param["CurrencyFormat"] = "currencyFormat";
|
|
4410
4881
|
Param["Enable2ColumnLayout"] = "enable2ColumnLayout";
|
|
4882
|
+
Param["IsLiveboardAlwaysOn12ColLayout"] = "isLiveboardAlwaysOn12ColLayout";
|
|
4411
4883
|
Param["IsFullAppEmbed"] = "isFullAppEmbed";
|
|
4412
4884
|
Param["IsOnBeforeGetVizDataInterceptEnabled"] = "isOnBeforeGetVizDataInterceptEnabled";
|
|
4413
4885
|
Param["FocusSearchBarOnRender"] = "focusSearchBarOnRender";
|
|
@@ -4421,6 +4893,7 @@ var Param;
|
|
|
4421
4893
|
Param["SpotterEnabled"] = "isSpotterExperienceEnabled";
|
|
4422
4894
|
Param["IsUnifiedSearchExperienceEnabled"] = "isUnifiedSearchExperienceEnabled";
|
|
4423
4895
|
Param["OverrideOrgId"] = "orgId";
|
|
4896
|
+
Param["OverrideHistoryState"] = "overrideHistoryState";
|
|
4424
4897
|
Param["OauthPollingInterval"] = "oAuthPollingInterval";
|
|
4425
4898
|
Param["IsForceRedirect"] = "isForceRedirect";
|
|
4426
4899
|
Param["DataSourceId"] = "dataSourceId";
|
|
@@ -4430,6 +4903,7 @@ var Param;
|
|
|
4430
4903
|
Param["PrimaryAction"] = "primaryAction";
|
|
4431
4904
|
Param["isSpotterAgentEmbed"] = "isSpotterAgentEmbed";
|
|
4432
4905
|
Param["IsLiveboardStylingAndGroupingEnabled"] = "isLiveboardStylingAndGroupingEnabled";
|
|
4906
|
+
Param["LiveboardGutter"] = "liveboardGutter";
|
|
4433
4907
|
Param["IsLazyLoadingForEmbedEnabled"] = "isLazyLoadingForEmbedEnabled";
|
|
4434
4908
|
Param["RootMarginForLazyLoad"] = "rootMarginForLazyLoad";
|
|
4435
4909
|
Param["isPNGInScheduledEmailsEnabled"] = "isPNGInScheduledEmailsEnabled";
|
|
@@ -4438,9 +4912,12 @@ var Param;
|
|
|
4438
4912
|
Param["isGranularXLSXCSVSchedulesEnabled"] = "isGranularXLSXCSVSchedulesEnabled";
|
|
4439
4913
|
Param["isSendNowLiveboardSchedulingEnabled"] = "isSendNowLiveboardSchedulingEnabled";
|
|
4440
4914
|
Param["isCentralizedLiveboardFilterUXEnabled"] = "isCentralizedLiveboardFilterUXEnabled";
|
|
4915
|
+
Param["isScopedLiveboardFilteringEnabled"] = "isScopedLiveboardFilteringEnabled";
|
|
4441
4916
|
Param["isLinkParametersEnabled"] = "isLinkParametersEnabled";
|
|
4442
4917
|
Param["EnablePastConversationsSidebar"] = "enablePastConversationsSidebar";
|
|
4443
4918
|
Param["UpdatedSpotterChatPrompt"] = "updatedSpotterChatPrompt";
|
|
4919
|
+
Param["ShowSpotterRadiance"] = "showSpotterRadiance";
|
|
4920
|
+
Param["DefaultQueryMode"] = "defaultQueryMode";
|
|
4444
4921
|
Param["EnableStopAnswerGenerationEmbed"] = "enableStopAnswerGenerationEmbed";
|
|
4445
4922
|
Param["SpotterSidebarTitle"] = "spotterSidebarTitle";
|
|
4446
4923
|
Param["SpotterSidebarDefaultExpanded"] = "spotterSidebarDefaultExpanded";
|
|
@@ -4460,14 +4937,19 @@ var Param;
|
|
|
4460
4937
|
Param["SpotterFileUploadEnabled"] = "spotterFileUploadEnabled";
|
|
4461
4938
|
Param["SpotterFileUploadFileTypes"] = "spotterFileUploadFileTypes";
|
|
4462
4939
|
Param["IsStarterPromptsEnabled"] = "enableStarterPrompts";
|
|
4940
|
+
Param["UpdatedSpotterExperience"] = "updatedSpotterExperience";
|
|
4941
|
+
Param["SpotterDataSources"] = "spotterDataSources";
|
|
4942
|
+
Param["AnalystId"] = "analystId";
|
|
4943
|
+
Param["OpenSpotterOnLiveboardByDefault"] = "openSpotterOnLiveboardByDefault";
|
|
4463
4944
|
})(Param || (Param = {}));
|
|
4464
4945
|
/**
|
|
4465
4946
|
* ThoughtSpot application pages include actions and menu commands
|
|
4466
4947
|
* for various user-initiated operations. These actions are represented
|
|
4467
4948
|
* as enumeration members in the SDK. To control actions in the embedded view:
|
|
4468
|
-
* - disabledActions — the action is grayed out and still visible, but non-interactive
|
|
4469
|
-
* - hiddenActions — the action is completely removed from
|
|
4470
|
-
* - visibleActions — allowlist, only these actions
|
|
4949
|
+
* - disabledActions — the action is grayed out and still visible, but non-interactive
|
|
4950
|
+
* (user can see but not click). - hiddenActions — the action is completely removed from
|
|
4951
|
+
* the UI (user cannot see it at all). - visibleActions — allowlist, only these actions
|
|
4952
|
+
* are shown; all others are hidden.
|
|
4471
4953
|
*
|
|
4472
4954
|
* Use disabledActions to disable (gray out) an action.
|
|
4473
4955
|
* Use hiddenActions to hide (fully remove) an action.
|
|
@@ -4521,6 +5003,17 @@ var Action;
|
|
|
4521
5003
|
* ```
|
|
4522
5004
|
*/
|
|
4523
5005
|
Action["SaveAsView"] = "saveAsView";
|
|
5006
|
+
/**
|
|
5007
|
+
* The **EditInputTable** action on a Liveboard
|
|
5008
|
+
* page. Allows users to edit an input table used in an Answer directly from
|
|
5009
|
+
* a Liveboard.
|
|
5010
|
+
* @example
|
|
5011
|
+
* ```js
|
|
5012
|
+
* disabledActions: [Action.EditInputTable]
|
|
5013
|
+
* ```
|
|
5014
|
+
* @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
|
|
5015
|
+
*/
|
|
5016
|
+
Action["EditInputTable"] = "editInputTable";
|
|
4524
5017
|
/**
|
|
4525
5018
|
* The **Make a copy** action on a Liveboard or Answer
|
|
4526
5019
|
* page. Creates a copy of the Liveboard.
|
|
@@ -5724,6 +6217,19 @@ var Action;
|
|
|
5724
6217
|
* @version SDK: 1.36.0 | ThoughtSpot Cloud: 10.6.0.cl
|
|
5725
6218
|
*/
|
|
5726
6219
|
Action["ChangeFilterVisibilityInTab"] = "changeFilterVisibilityInTab";
|
|
6220
|
+
/**
|
|
6221
|
+
* Action ID to show, hide, or disable all filter surfaces on a Liveboard,
|
|
6222
|
+
* including filter, parameter, and cross-filter chips at the liveboard,
|
|
6223
|
+
* tab, and group levels. Parameter and cross-filter chips are hide-only.
|
|
6224
|
+
*
|
|
6225
|
+
* @example
|
|
6226
|
+
* ```js
|
|
6227
|
+
* hiddenActions: [Action.AllLiveboardFilters]
|
|
6228
|
+
* disabledActions: [Action.AllLiveboardFilters]
|
|
6229
|
+
* ```
|
|
6230
|
+
* @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
|
|
6231
|
+
*/
|
|
6232
|
+
Action["AllLiveboardFilters"] = "allLiveboardFilters";
|
|
5727
6233
|
/**
|
|
5728
6234
|
* The **Data model instructions** button on the Spotter interface.
|
|
5729
6235
|
* Allows opening the data model instructions modal.
|
|
@@ -5825,6 +6331,10 @@ var Action;
|
|
|
5825
6331
|
* The **Add to Coaching** feature allows adding reference questions and
|
|
5826
6332
|
* business terms to improve Spotter’s responses. This feature is generally available
|
|
5827
6333
|
* (GA) from version 26.2.0.cl and enabled by default on embed deployments.
|
|
6334
|
+
*
|
|
6335
|
+
* This action governs both the answer-card **Add to memory** CTA and its
|
|
6336
|
+
* Spotter 3 successor, the response-footer **Remember this** CTA
|
|
6337
|
+
* (they are mutually exclusive).
|
|
5828
6338
|
* @example
|
|
5829
6339
|
* ```js
|
|
5830
6340
|
* hiddenAction: [Action.InConversationTraining]
|
|
@@ -6059,6 +6569,89 @@ var Action;
|
|
|
6059
6569
|
* @version SDK: 1.46.0 | ThoughtSpot Cloud: 26.3.0.cl
|
|
6060
6570
|
*/
|
|
6061
6571
|
Action["SpotterChatRename"] = "spotterChatRename";
|
|
6572
|
+
/**
|
|
6573
|
+
* Controls visibility and disable state of the Spotter conversation Share
|
|
6574
|
+
* button in the chat header. Only takes effect once sharing is enabled
|
|
6575
|
+
* (enableShareConversation on).
|
|
6576
|
+
* @example
|
|
6577
|
+
* ```js
|
|
6578
|
+
* disabledActions: [Action.SpotterShareConversationButtonHeader]
|
|
6579
|
+
* ```
|
|
6580
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
6581
|
+
*/
|
|
6582
|
+
Action["SpotterShareConversationButtonHeader"] = "spotterShareConversationButtonHeader";
|
|
6583
|
+
/**
|
|
6584
|
+
* Controls visibility and disable state of the Share item in the Spotter
|
|
6585
|
+
* conversation history (sidebar) edit menu. Independent of the header button
|
|
6586
|
+
* above, so a host can show Share in one entry point and hide it in the other.
|
|
6587
|
+
* @example
|
|
6588
|
+
* ```js
|
|
6589
|
+
* disabledActions: [Action.SpotterShareConversationMenuItemSidebar]
|
|
6590
|
+
* ```
|
|
6591
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
6592
|
+
*/
|
|
6593
|
+
Action["SpotterShareConversationMenuItemSidebar"] = "spotterShareConversationMenuItemSidebar";
|
|
6594
|
+
/**
|
|
6595
|
+
* Controls visibility of the entire read-only shared-conversation data-access
|
|
6596
|
+
* banner shown when a recipient opens a shared view. Hide-only.
|
|
6597
|
+
* @example
|
|
6598
|
+
* ```js
|
|
6599
|
+
* hiddenActions: [Action.SpotterSharedConversationBanner]
|
|
6600
|
+
* ```
|
|
6601
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
6602
|
+
*/
|
|
6603
|
+
Action["SpotterSharedConversationBanner"] = "spotterSharedConversationBanner";
|
|
6604
|
+
/**
|
|
6605
|
+
* Controls visibility and disable state of the cross/close button on the
|
|
6606
|
+
* read-only shared-conversation data-access banner (keeps the banner itself).
|
|
6607
|
+
* @example
|
|
6608
|
+
* ```js
|
|
6609
|
+
* hiddenActions: [Action.SpotterSharedConversationBannerDismissButton]
|
|
6610
|
+
* ```
|
|
6611
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
6612
|
+
*/
|
|
6613
|
+
Action["SpotterSharedConversationBannerDismissButton"] = "spotterSharedConversationBannerDismissButton";
|
|
6614
|
+
/**
|
|
6615
|
+
* Controls visibility and disable state of the Exit button in the read-only
|
|
6616
|
+
* shared-view header. Hiding it does not disable the ExitSpotterSharedConversation
|
|
6617
|
+
* host event.
|
|
6618
|
+
* @example
|
|
6619
|
+
* ```js
|
|
6620
|
+
* hiddenActions: [Action.SpotterSharedConversationExitButton]
|
|
6621
|
+
* ```
|
|
6622
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
6623
|
+
*/
|
|
6624
|
+
Action["SpotterSharedConversationExitButton"] = "spotterSharedConversationExitButton";
|
|
6625
|
+
/**
|
|
6626
|
+
* Controls visibility of the share-modal footer note ("Chat will be shared up
|
|
6627
|
+
* to the current moment…"). Hide-only.
|
|
6628
|
+
* @example
|
|
6629
|
+
* ```js
|
|
6630
|
+
* hiddenActions: [Action.SpotterShareUpToCurrentInfo]
|
|
6631
|
+
* ```
|
|
6632
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
6633
|
+
*/
|
|
6634
|
+
Action["SpotterShareUpToCurrentInfo"] = "spotterShareUpToCurrentInfo";
|
|
6635
|
+
/**
|
|
6636
|
+
* Controls visibility and disable state of the share-modal "include new
|
|
6637
|
+
* messages since last shared version" checkbox.
|
|
6638
|
+
* @example
|
|
6639
|
+
* ```js
|
|
6640
|
+
* disabledActions: [Action.SpotterShareIncludeNewMessagesCheckbox]
|
|
6641
|
+
* ```
|
|
6642
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
6643
|
+
*/
|
|
6644
|
+
Action["SpotterShareIncludeNewMessagesCheckbox"] = "spotterShareIncludeNewMessagesCheckbox";
|
|
6645
|
+
/**
|
|
6646
|
+
* Controls visibility and disable state of the cross on the share-modal
|
|
6647
|
+
* stale-snapshot info banner.
|
|
6648
|
+
* @example
|
|
6649
|
+
* ```js
|
|
6650
|
+
* hiddenActions: [Action.SpotterShareStaleInfoBannerDismissButton]
|
|
6651
|
+
* ```
|
|
6652
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
6653
|
+
*/
|
|
6654
|
+
Action["SpotterShareStaleInfoBannerDismissButton"] = "spotterShareStaleInfoBannerDismissButton";
|
|
6062
6655
|
/**
|
|
6063
6656
|
* Controls visibility and disable state of the delete action
|
|
6064
6657
|
* in the Spotter conversation edit menu.
|
|
@@ -6069,6 +6662,16 @@ var Action;
|
|
|
6069
6662
|
* @version SDK: 1.46.0 | ThoughtSpot Cloud: 26.3.0.cl
|
|
6070
6663
|
*/
|
|
6071
6664
|
Action["SpotterChatDelete"] = "spotterChatDelete";
|
|
6665
|
+
/**
|
|
6666
|
+
* Controls visibility and disable state of the pin/unpin action
|
|
6667
|
+
* in the Spotter conversation edit menu.
|
|
6668
|
+
* @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
|
|
6669
|
+
* @example
|
|
6670
|
+
* ```js
|
|
6671
|
+
* disabledActions: [Action.SpotterChatPin]
|
|
6672
|
+
* ```
|
|
6673
|
+
*/
|
|
6674
|
+
Action["SpotterChatPin"] = "spotterChatPin";
|
|
6072
6675
|
/**
|
|
6073
6676
|
* Controls visibility and disable state of the documentation/best practices
|
|
6074
6677
|
* link in the Spotter sidebar footer.
|
|
@@ -6112,6 +6715,56 @@ var Action;
|
|
|
6112
6715
|
* @version SDK: 1.48.0 | ThoughtSpot Cloud: 26.5.0.cl
|
|
6113
6716
|
*/
|
|
6114
6717
|
Action["SpotterChatModeSwitcher"] = "spotterChatModeSwitcher";
|
|
6718
|
+
/**
|
|
6719
|
+
* The **Basic Search** starter prompt pill.
|
|
6720
|
+
*
|
|
6721
|
+
* Starter prompt pills are the row of category buttons shown above the
|
|
6722
|
+
* Spotter chat input before a conversation starts. They give a new user
|
|
6723
|
+
* ready-made questions to click instead of typing one from scratch, and
|
|
6724
|
+
* disappear once the conversation begins. There are three, one per action
|
|
6725
|
+
* below.
|
|
6726
|
+
*
|
|
6727
|
+
* Clicking this pill opens a card of suggested simple questions; picking one
|
|
6728
|
+
* submits it to Spotter right away. Visible by default, and hidden along
|
|
6729
|
+
* with the other pills when the surface itself is off (see
|
|
6730
|
+
* {@link SpotterChatViewConfig.starterPrompts}).
|
|
6731
|
+
* @example
|
|
6732
|
+
* ```js
|
|
6733
|
+
* hiddenActions: [Action.QuickSearchPill]
|
|
6734
|
+
* ```
|
|
6735
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
6736
|
+
*/
|
|
6737
|
+
Action["QuickSearchPill"] = "quickSearchPill";
|
|
6738
|
+
/**
|
|
6739
|
+
* The **Deep Analysis** starter prompt pill, next to
|
|
6740
|
+
* {@link Action.QuickSearchPill} above the Spotter chat input.
|
|
6741
|
+
*
|
|
6742
|
+
* Clicking it opens a card of suggested investigative questions ("why did
|
|
6743
|
+
* revenue drop?"). Picking one fills the chat input in Deep Analysis mode
|
|
6744
|
+
* rather than submitting immediately, so the user can edit it first.
|
|
6745
|
+
* Visible by default.
|
|
6746
|
+
* @example
|
|
6747
|
+
* ```js
|
|
6748
|
+
* hiddenActions: [Action.DeepAnalysisPill]
|
|
6749
|
+
* ```
|
|
6750
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
6751
|
+
*/
|
|
6752
|
+
Action["DeepAnalysisPill"] = "deepAnalysisPill";
|
|
6753
|
+
/**
|
|
6754
|
+
* The **Data Literacy** starter prompt pill, next to
|
|
6755
|
+
* {@link Action.QuickSearchPill} above the Spotter chat input.
|
|
6756
|
+
*
|
|
6757
|
+
* Unlike the other two pills it opens no card: clicking it submits a prompt
|
|
6758
|
+
* that describes the data the model can answer over, helping a user who does
|
|
6759
|
+
* not yet know what is in the data source. The prompt text always comes from
|
|
6760
|
+
* ThoughtSpot, so only its label is customizable. Visible by default.
|
|
6761
|
+
* @example
|
|
6762
|
+
* ```js
|
|
6763
|
+
* hiddenActions: [Action.DataLiteracyPill]
|
|
6764
|
+
* ```
|
|
6765
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
6766
|
+
*/
|
|
6767
|
+
Action["DataLiteracyPill"] = "dataLiteracyPill";
|
|
6115
6768
|
/**
|
|
6116
6769
|
* The **Include current period** checkbox for date filters.
|
|
6117
6770
|
* Controls the visibility and availability of the option to include
|
|
@@ -6237,29 +6890,61 @@ var Action;
|
|
|
6237
6890
|
* disabledActions: [Action.SpotterAnalystDelete]
|
|
6238
6891
|
* ```
|
|
6239
6892
|
*/
|
|
6240
|
-
Action["SpotterAnalystDelete"] = "spotterAnalystDelete";
|
|
6893
|
+
Action["SpotterAnalystDelete"] = "spotterAnalystDelete";
|
|
6894
|
+
/**
|
|
6895
|
+
* Controls visibility and disable state of the make a copy action
|
|
6896
|
+
* in the Spotter Analyst interface.
|
|
6897
|
+
* @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
|
|
6898
|
+
* @example
|
|
6899
|
+
* ```js
|
|
6900
|
+
* hiddenActions: [Action.SpotterAnalystMakeACopy]
|
|
6901
|
+
* disabledActions: [Action.SpotterAnalystMakeACopy]
|
|
6902
|
+
* ```
|
|
6903
|
+
*/
|
|
6904
|
+
Action["SpotterAnalystMakeACopy"] = "spotterAnalystMakeACopy";
|
|
6905
|
+
/**
|
|
6906
|
+
* Controls visibility and disable state of the sidebar
|
|
6907
|
+
* in the Spotter Analyst interface.
|
|
6908
|
+
* @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
|
|
6909
|
+
* @example
|
|
6910
|
+
* ```js
|
|
6911
|
+
* hiddenActions: [Action.SpotterAnalystSidebar]
|
|
6912
|
+
* disabledActions: [Action.SpotterAnalystSidebar]
|
|
6913
|
+
* ```
|
|
6914
|
+
*/
|
|
6915
|
+
Action["SpotterAnalystSidebar"] = "spotterAnalystSidebar";
|
|
6916
|
+
/**
|
|
6917
|
+
* Controls visibility and disable state of the analyst list
|
|
6918
|
+
* ("Show all") in the Spotter Analyst interface.
|
|
6919
|
+
* @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
|
|
6920
|
+
* @example
|
|
6921
|
+
* ```js
|
|
6922
|
+
* hiddenActions: [Action.SpotterAnalystList]
|
|
6923
|
+
* disabledActions: [Action.SpotterAnalystList]
|
|
6924
|
+
* ```
|
|
6925
|
+
*/
|
|
6926
|
+
Action["SpotterAnalystList"] = "spotterAnalystList";
|
|
6241
6927
|
/**
|
|
6242
|
-
* Controls visibility and disable state of the
|
|
6243
|
-
* in the Spotter Analyst interface.
|
|
6244
|
-
* @version SDK: 1.
|
|
6928
|
+
* Controls visibility and disable state of the default Spotter analyst
|
|
6929
|
+
* entry in the Spotter Analyst interface.
|
|
6930
|
+
* @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
|
|
6245
6931
|
* @example
|
|
6246
6932
|
* ```js
|
|
6247
|
-
* hiddenActions: [Action.
|
|
6248
|
-
* disabledActions: [Action.
|
|
6933
|
+
* hiddenActions: [Action.SpotterDefaultAnalyst]
|
|
6934
|
+
* disabledActions: [Action.SpotterDefaultAnalyst]
|
|
6249
6935
|
* ```
|
|
6250
6936
|
*/
|
|
6251
|
-
Action["
|
|
6937
|
+
Action["SpotterDefaultAnalyst"] = "spotterDefaultAnalyst";
|
|
6252
6938
|
/**
|
|
6253
|
-
*
|
|
6254
|
-
*
|
|
6255
|
-
* @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.8.0.cl
|
|
6939
|
+
* The **Spotter** button in the Liveboard header.
|
|
6940
|
+
* @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
|
|
6256
6941
|
* @example
|
|
6257
6942
|
* ```js
|
|
6258
|
-
* hiddenActions: [Action.
|
|
6259
|
-
* disabledActions: [Action.
|
|
6943
|
+
* hiddenActions: [Action.SpotterOnLiveboard]
|
|
6944
|
+
* disabledActions: [Action.SpotterOnLiveboard]
|
|
6260
6945
|
* ```
|
|
6261
6946
|
*/
|
|
6262
|
-
Action["
|
|
6947
|
+
Action["SpotterOnLiveboard"] = "spotterOnLiveboard";
|
|
6263
6948
|
})(Action || (Action = {}));
|
|
6264
6949
|
var PrefetchFeatures;
|
|
6265
6950
|
(function (PrefetchFeatures) {
|
|
@@ -6547,6 +7232,8 @@ var EmbedErrorCodes;
|
|
|
6547
7232
|
EmbedErrorCodes["UPDATEFILTERS_INVALID_PAYLOAD"] = "UPDATEFILTERS_INVALID_PAYLOAD";
|
|
6548
7233
|
/** DrillDown payload is invalid - missing or malformed points */
|
|
6549
7234
|
EmbedErrorCodes["DRILLDOWN_INVALID_PAYLOAD"] = "DRILLDOWN_INVALID_PAYLOAD";
|
|
7235
|
+
/** UpdateParameters payload is invalid - malformed applicability */
|
|
7236
|
+
EmbedErrorCodes["UPDATEPARAMETERS_INVALID_PAYLOAD"] = "UPDATEPARAMETERS_INVALID_PAYLOAD";
|
|
6550
7237
|
})(EmbedErrorCodes || (EmbedErrorCodes = {}));
|
|
6551
7238
|
/**
|
|
6552
7239
|
* Context types for specifying the page context when triggering host events.
|
|
@@ -6725,7 +7412,7 @@ var TableContentDensity;
|
|
|
6725
7412
|
TableContentDensity["Compact"] = "COMPACT";
|
|
6726
7413
|
})(TableContentDensity || (TableContentDensity = {}));
|
|
6727
7414
|
|
|
6728
|
-
var version$1="1.
|
|
7415
|
+
var version$1="1.51.0-test";var pkg = {version:version$1};
|
|
6729
7416
|
|
|
6730
7417
|
const { version } = pkg;
|
|
6731
7418
|
|
|
@@ -6801,7 +7488,6 @@ const logger$3 = new Logger();
|
|
|
6801
7488
|
|
|
6802
7489
|
const ERROR_MESSAGE = {
|
|
6803
7490
|
INVALID_THOUGHTSPOT_HOST: 'Error parsing ThoughtSpot host. Please provide a valid URL.',
|
|
6804
|
-
SPOTTER_EMBED_WORKSHEED_ID_NOT_FOUND: 'Please select a Model to get started',
|
|
6805
7491
|
LIVEBOARD_VIZ_ID_VALIDATION: 'Please select a Liveboard to embed.',
|
|
6806
7492
|
TRIGGER_TIMED_OUT: 'Trigger timed-out in getting a response',
|
|
6807
7493
|
SEARCHEMBED_BETA_WRANING_MESSAGE: 'SearchEmbed is in Beta in this release.',
|
|
@@ -6832,6 +7518,7 @@ const ERROR_MESSAGE = {
|
|
|
6832
7518
|
INVALID_SPOTTER_DOCUMENTATION_URL: 'Invalid spotterDocumentationUrl. Please provide a valid http or https URL.',
|
|
6833
7519
|
UPDATEFILTERS_INVALID_PAYLOAD: 'UpdateFilters requires a valid filter or filters array. Expected: { filter: { column, oper, values } } or { filters: [{ column, oper, values }, ...] }',
|
|
6834
7520
|
DRILLDOWN_INVALID_PAYLOAD: 'DrillDown requires a valid points object. Expected: { points: { clickedPoint?, selectedPoints? }, autoDrillDown?, vizId? }',
|
|
7521
|
+
UPDATEPARAMETERS_INVALID_PAYLOAD: 'UpdateParameters received an invalid applicability. Expected: { level: LIVEBOARD | TAB | GROUP, targetId } where targetId is required for TAB and GROUP levels',
|
|
6835
7522
|
};
|
|
6836
7523
|
const CUSTOM_ACTIONS_ERROR_MESSAGE = {
|
|
6837
7524
|
INVALID_ACTION_OBJECT: 'Custom Action Validation Error: Invalid action object provided',
|
|
@@ -6950,7 +7637,7 @@ const getCssDimension = (value) => {
|
|
|
6950
7637
|
* @returns true if the value is a valid CSS margin value, false otherwise
|
|
6951
7638
|
*/
|
|
6952
7639
|
const isValidCssMargin = (value) => {
|
|
6953
|
-
if (isUndefined(value)) {
|
|
7640
|
+
if (isUndefined$1(value)) {
|
|
6954
7641
|
return false;
|
|
6955
7642
|
}
|
|
6956
7643
|
if (typeof value !== 'string') {
|
|
@@ -7159,7 +7846,7 @@ const removeStyleProperties = (element, styleProperties) => {
|
|
|
7159
7846
|
element.style.removeProperty(styleProperty);
|
|
7160
7847
|
});
|
|
7161
7848
|
};
|
|
7162
|
-
const isUndefined = (value) => value === undefined;
|
|
7849
|
+
const isUndefined$1 = (value) => value === undefined;
|
|
7163
7850
|
// Return if the value is a string, double or boolean.
|
|
7164
7851
|
const getTypeFromValue = (value) => {
|
|
7165
7852
|
if (typeof value === 'string') {
|
|
@@ -7464,7 +8151,7 @@ const setParamIfDefined = (queryParams, param, value, asBoolean = false) => {
|
|
|
7464
8151
|
};
|
|
7465
8152
|
|
|
7466
8153
|
/** Used for built-in method references. */
|
|
7467
|
-
var objectProto$
|
|
8154
|
+
var objectProto$d = Object.prototype;
|
|
7468
8155
|
|
|
7469
8156
|
/**
|
|
7470
8157
|
* Checks if `value` is likely a prototype object.
|
|
@@ -7475,7 +8162,7 @@ var objectProto$c = Object.prototype;
|
|
|
7475
8162
|
*/
|
|
7476
8163
|
function isPrototype(value) {
|
|
7477
8164
|
var Ctor = value && value.constructor,
|
|
7478
|
-
proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto$
|
|
8165
|
+
proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto$d;
|
|
7479
8166
|
|
|
7480
8167
|
return value === proto;
|
|
7481
8168
|
}
|
|
@@ -7504,10 +8191,10 @@ var nativeKeys = _overArg(Object.keys, Object);
|
|
|
7504
8191
|
var _nativeKeys = nativeKeys;
|
|
7505
8192
|
|
|
7506
8193
|
/** Used for built-in method references. */
|
|
7507
|
-
var objectProto$
|
|
8194
|
+
var objectProto$c = Object.prototype;
|
|
7508
8195
|
|
|
7509
8196
|
/** Used to check objects for own properties. */
|
|
7510
|
-
var hasOwnProperty$
|
|
8197
|
+
var hasOwnProperty$b = objectProto$c.hasOwnProperty;
|
|
7511
8198
|
|
|
7512
8199
|
/**
|
|
7513
8200
|
* The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
|
|
@@ -7522,7 +8209,7 @@ function baseKeys(object) {
|
|
|
7522
8209
|
}
|
|
7523
8210
|
var result = [];
|
|
7524
8211
|
for (var key in Object(object)) {
|
|
7525
|
-
if (hasOwnProperty$
|
|
8212
|
+
if (hasOwnProperty$b.call(object, key) && key != 'constructor') {
|
|
7526
8213
|
result.push(key);
|
|
7527
8214
|
}
|
|
7528
8215
|
}
|
|
@@ -7558,17 +8245,17 @@ var Symbol$1 = _root.Symbol;
|
|
|
7558
8245
|
var _Symbol = Symbol$1;
|
|
7559
8246
|
|
|
7560
8247
|
/** Used for built-in method references. */
|
|
7561
|
-
var objectProto$
|
|
8248
|
+
var objectProto$b = Object.prototype;
|
|
7562
8249
|
|
|
7563
8250
|
/** Used to check objects for own properties. */
|
|
7564
|
-
var hasOwnProperty$
|
|
8251
|
+
var hasOwnProperty$a = objectProto$b.hasOwnProperty;
|
|
7565
8252
|
|
|
7566
8253
|
/**
|
|
7567
8254
|
* Used to resolve the
|
|
7568
8255
|
* [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
|
|
7569
8256
|
* of values.
|
|
7570
8257
|
*/
|
|
7571
|
-
var nativeObjectToString$1 = objectProto$
|
|
8258
|
+
var nativeObjectToString$1 = objectProto$b.toString;
|
|
7572
8259
|
|
|
7573
8260
|
/** Built-in value references. */
|
|
7574
8261
|
var symToStringTag$1 = _Symbol ? _Symbol.toStringTag : undefined;
|
|
@@ -7581,7 +8268,7 @@ var symToStringTag$1 = _Symbol ? _Symbol.toStringTag : undefined;
|
|
|
7581
8268
|
* @returns {string} Returns the raw `toStringTag`.
|
|
7582
8269
|
*/
|
|
7583
8270
|
function getRawTag(value) {
|
|
7584
|
-
var isOwn = hasOwnProperty$
|
|
8271
|
+
var isOwn = hasOwnProperty$a.call(value, symToStringTag$1),
|
|
7585
8272
|
tag = value[symToStringTag$1];
|
|
7586
8273
|
|
|
7587
8274
|
try {
|
|
@@ -7603,14 +8290,14 @@ function getRawTag(value) {
|
|
|
7603
8290
|
var _getRawTag = getRawTag;
|
|
7604
8291
|
|
|
7605
8292
|
/** Used for built-in method references. */
|
|
7606
|
-
var objectProto$
|
|
8293
|
+
var objectProto$a = Object.prototype;
|
|
7607
8294
|
|
|
7608
8295
|
/**
|
|
7609
8296
|
* Used to resolve the
|
|
7610
8297
|
* [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
|
|
7611
8298
|
* of values.
|
|
7612
8299
|
*/
|
|
7613
|
-
var nativeObjectToString = objectProto$
|
|
8300
|
+
var nativeObjectToString = objectProto$a.toString;
|
|
7614
8301
|
|
|
7615
8302
|
/**
|
|
7616
8303
|
* Converts `value` to a string using `Object.prototype.toString`.
|
|
@@ -7742,10 +8429,10 @@ function isMasked(func) {
|
|
|
7742
8429
|
var _isMasked = isMasked;
|
|
7743
8430
|
|
|
7744
8431
|
/** Used for built-in method references. */
|
|
7745
|
-
var funcProto$
|
|
8432
|
+
var funcProto$2 = Function.prototype;
|
|
7746
8433
|
|
|
7747
8434
|
/** Used to resolve the decompiled source of functions. */
|
|
7748
|
-
var funcToString$
|
|
8435
|
+
var funcToString$2 = funcProto$2.toString;
|
|
7749
8436
|
|
|
7750
8437
|
/**
|
|
7751
8438
|
* Converts `func` to its source code.
|
|
@@ -7757,7 +8444,7 @@ var funcToString$1 = funcProto$1.toString;
|
|
|
7757
8444
|
function toSource(func) {
|
|
7758
8445
|
if (func != null) {
|
|
7759
8446
|
try {
|
|
7760
|
-
return funcToString$
|
|
8447
|
+
return funcToString$2.call(func);
|
|
7761
8448
|
} catch (e) {}
|
|
7762
8449
|
try {
|
|
7763
8450
|
return (func + '');
|
|
@@ -7778,18 +8465,18 @@ var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
|
|
|
7778
8465
|
var reIsHostCtor = /^\[object .+?Constructor\]$/;
|
|
7779
8466
|
|
|
7780
8467
|
/** Used for built-in method references. */
|
|
7781
|
-
var funcProto = Function.prototype,
|
|
7782
|
-
objectProto$
|
|
8468
|
+
var funcProto$1 = Function.prototype,
|
|
8469
|
+
objectProto$9 = Object.prototype;
|
|
7783
8470
|
|
|
7784
8471
|
/** Used to resolve the decompiled source of functions. */
|
|
7785
|
-
var funcToString = funcProto.toString;
|
|
8472
|
+
var funcToString$1 = funcProto$1.toString;
|
|
7786
8473
|
|
|
7787
8474
|
/** Used to check objects for own properties. */
|
|
7788
|
-
var hasOwnProperty$
|
|
8475
|
+
var hasOwnProperty$9 = objectProto$9.hasOwnProperty;
|
|
7789
8476
|
|
|
7790
8477
|
/** Used to detect if a method is native. */
|
|
7791
8478
|
var reIsNative = RegExp('^' +
|
|
7792
|
-
funcToString.call(hasOwnProperty$
|
|
8479
|
+
funcToString$1.call(hasOwnProperty$9).replace(reRegExpChar, '\\$&')
|
|
7793
8480
|
.replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
|
|
7794
8481
|
);
|
|
7795
8482
|
|
|
@@ -7867,7 +8554,7 @@ var _WeakMap = WeakMap;
|
|
|
7867
8554
|
|
|
7868
8555
|
/** `Object#toString` result references. */
|
|
7869
8556
|
var mapTag$3 = '[object Map]',
|
|
7870
|
-
objectTag$
|
|
8557
|
+
objectTag$3 = '[object Object]',
|
|
7871
8558
|
promiseTag = '[object Promise]',
|
|
7872
8559
|
setTag$3 = '[object Set]',
|
|
7873
8560
|
weakMapTag$1 = '[object WeakMap]';
|
|
@@ -7898,7 +8585,7 @@ if ((_DataView && getTag(new _DataView(new ArrayBuffer(1))) != dataViewTag$2) ||
|
|
|
7898
8585
|
(_WeakMap && getTag(new _WeakMap) != weakMapTag$1)) {
|
|
7899
8586
|
getTag = function(value) {
|
|
7900
8587
|
var result = _baseGetTag(value),
|
|
7901
|
-
Ctor = result == objectTag$
|
|
8588
|
+
Ctor = result == objectTag$3 ? value.constructor : undefined,
|
|
7902
8589
|
ctorString = Ctor ? _toSource(Ctor) : '';
|
|
7903
8590
|
|
|
7904
8591
|
if (ctorString) {
|
|
@@ -7963,13 +8650,13 @@ function baseIsArguments(value) {
|
|
|
7963
8650
|
var _baseIsArguments = baseIsArguments;
|
|
7964
8651
|
|
|
7965
8652
|
/** Used for built-in method references. */
|
|
7966
|
-
var objectProto$
|
|
8653
|
+
var objectProto$8 = Object.prototype;
|
|
7967
8654
|
|
|
7968
8655
|
/** Used to check objects for own properties. */
|
|
7969
|
-
var hasOwnProperty$
|
|
8656
|
+
var hasOwnProperty$8 = objectProto$8.hasOwnProperty;
|
|
7970
8657
|
|
|
7971
8658
|
/** Built-in value references. */
|
|
7972
|
-
var propertyIsEnumerable$1 = objectProto$
|
|
8659
|
+
var propertyIsEnumerable$1 = objectProto$8.propertyIsEnumerable;
|
|
7973
8660
|
|
|
7974
8661
|
/**
|
|
7975
8662
|
* Checks if `value` is likely an `arguments` object.
|
|
@@ -7990,7 +8677,7 @@ var propertyIsEnumerable$1 = objectProto$7.propertyIsEnumerable;
|
|
|
7990
8677
|
* // => false
|
|
7991
8678
|
*/
|
|
7992
8679
|
var isArguments = _baseIsArguments(function() { return arguments; }()) ? _baseIsArguments : function(value) {
|
|
7993
|
-
return isObjectLike_1(value) && hasOwnProperty$
|
|
8680
|
+
return isObjectLike_1(value) && hasOwnProperty$8.call(value, 'callee') &&
|
|
7994
8681
|
!propertyIsEnumerable$1.call(value, 'callee');
|
|
7995
8682
|
};
|
|
7996
8683
|
|
|
@@ -8156,10 +8843,10 @@ var argsTag$1 = '[object Arguments]',
|
|
|
8156
8843
|
funcTag = '[object Function]',
|
|
8157
8844
|
mapTag$2 = '[object Map]',
|
|
8158
8845
|
numberTag$1 = '[object Number]',
|
|
8159
|
-
objectTag$
|
|
8846
|
+
objectTag$2 = '[object Object]',
|
|
8160
8847
|
regexpTag$1 = '[object RegExp]',
|
|
8161
8848
|
setTag$2 = '[object Set]',
|
|
8162
|
-
stringTag$
|
|
8849
|
+
stringTag$2 = '[object String]',
|
|
8163
8850
|
weakMapTag = '[object WeakMap]';
|
|
8164
8851
|
|
|
8165
8852
|
var arrayBufferTag$1 = '[object ArrayBuffer]',
|
|
@@ -8186,8 +8873,8 @@ typedArrayTags[arrayBufferTag$1] = typedArrayTags[boolTag$2] =
|
|
|
8186
8873
|
typedArrayTags[dataViewTag$1] = typedArrayTags[dateTag$1] =
|
|
8187
8874
|
typedArrayTags[errorTag$1] = typedArrayTags[funcTag] =
|
|
8188
8875
|
typedArrayTags[mapTag$2] = typedArrayTags[numberTag$1] =
|
|
8189
|
-
typedArrayTags[objectTag$
|
|
8190
|
-
typedArrayTags[setTag$2] = typedArrayTags[stringTag$
|
|
8876
|
+
typedArrayTags[objectTag$2] = typedArrayTags[regexpTag$1] =
|
|
8877
|
+
typedArrayTags[setTag$2] = typedArrayTags[stringTag$2] =
|
|
8191
8878
|
typedArrayTags[weakMapTag] = false;
|
|
8192
8879
|
|
|
8193
8880
|
/**
|
|
@@ -8279,10 +8966,10 @@ var mapTag$1 = '[object Map]',
|
|
|
8279
8966
|
setTag$1 = '[object Set]';
|
|
8280
8967
|
|
|
8281
8968
|
/** Used for built-in method references. */
|
|
8282
|
-
var objectProto$
|
|
8969
|
+
var objectProto$7 = Object.prototype;
|
|
8283
8970
|
|
|
8284
8971
|
/** Used to check objects for own properties. */
|
|
8285
|
-
var hasOwnProperty$
|
|
8972
|
+
var hasOwnProperty$7 = objectProto$7.hasOwnProperty;
|
|
8286
8973
|
|
|
8287
8974
|
/**
|
|
8288
8975
|
* Checks if `value` is an empty object, collection, map, or set.
|
|
@@ -8334,7 +9021,7 @@ function isEmpty$1(value) {
|
|
|
8334
9021
|
return !_baseKeys(value).length;
|
|
8335
9022
|
}
|
|
8336
9023
|
for (var key in value) {
|
|
8337
|
-
if (hasOwnProperty$
|
|
9024
|
+
if (hasOwnProperty$7.call(value, key)) {
|
|
8338
9025
|
return false;
|
|
8339
9026
|
}
|
|
8340
9027
|
}
|
|
@@ -8343,6 +9030,15 @@ function isEmpty$1(value) {
|
|
|
8343
9030
|
|
|
8344
9031
|
var isEmpty_1 = isEmpty$1;
|
|
8345
9032
|
|
|
9033
|
+
/**
|
|
9034
|
+
* Levels at which a filter or parameter can be applied.
|
|
9035
|
+
*/
|
|
9036
|
+
var ApplicabilityLevel;
|
|
9037
|
+
(function (ApplicabilityLevel) {
|
|
9038
|
+
ApplicabilityLevel["Liveboard"] = "LIVEBOARD";
|
|
9039
|
+
ApplicabilityLevel["Tab"] = "TAB";
|
|
9040
|
+
ApplicabilityLevel["Group"] = "GROUP";
|
|
9041
|
+
})(ApplicabilityLevel || (ApplicabilityLevel = {}));
|
|
8346
9042
|
var UIPassthroughEvent;
|
|
8347
9043
|
(function (UIPassthroughEvent) {
|
|
8348
9044
|
UIPassthroughEvent["PinAnswerToLiveboard"] = "addVizToPinboard";
|
|
@@ -8360,6 +9056,7 @@ var UIPassthroughEvent;
|
|
|
8360
9056
|
UIPassthroughEvent["GetParameters"] = "getParameters";
|
|
8361
9057
|
UIPassthroughEvent["GetTML"] = "getTML";
|
|
8362
9058
|
UIPassthroughEvent["GetTabs"] = "getTabs";
|
|
9059
|
+
UIPassthroughEvent["GetGroups"] = "getGroups";
|
|
8363
9060
|
UIPassthroughEvent["GetExportRequestForCurrentPinboard"] = "getExportRequestForCurrentPinboard";
|
|
8364
9061
|
})(UIPassthroughEvent || (UIPassthroughEvent = {}));
|
|
8365
9062
|
|
|
@@ -9295,7 +9992,7 @@ class AnswerService {
|
|
|
9295
9992
|
async getTML() {
|
|
9296
9993
|
const { object } = await this.executeQuery(getAnswerTML, {});
|
|
9297
9994
|
const edoc = object[0].edoc;
|
|
9298
|
-
const YAML = await import('./index-
|
|
9995
|
+
const YAML = await import('./index-Bivg-mDx.js');
|
|
9299
9996
|
const parsedDoc = YAML.parse(edoc);
|
|
9300
9997
|
return {
|
|
9301
9998
|
answer: {
|
|
@@ -9580,10 +10277,10 @@ var _hashDelete = hashDelete;
|
|
|
9580
10277
|
var HASH_UNDEFINED$2 = '__lodash_hash_undefined__';
|
|
9581
10278
|
|
|
9582
10279
|
/** Used for built-in method references. */
|
|
9583
|
-
var objectProto$
|
|
10280
|
+
var objectProto$6 = Object.prototype;
|
|
9584
10281
|
|
|
9585
10282
|
/** Used to check objects for own properties. */
|
|
9586
|
-
var hasOwnProperty$
|
|
10283
|
+
var hasOwnProperty$6 = objectProto$6.hasOwnProperty;
|
|
9587
10284
|
|
|
9588
10285
|
/**
|
|
9589
10286
|
* Gets the hash value for `key`.
|
|
@@ -9600,16 +10297,16 @@ function hashGet(key) {
|
|
|
9600
10297
|
var result = data[key];
|
|
9601
10298
|
return result === HASH_UNDEFINED$2 ? undefined : result;
|
|
9602
10299
|
}
|
|
9603
|
-
return hasOwnProperty$
|
|
10300
|
+
return hasOwnProperty$6.call(data, key) ? data[key] : undefined;
|
|
9604
10301
|
}
|
|
9605
10302
|
|
|
9606
10303
|
var _hashGet = hashGet;
|
|
9607
10304
|
|
|
9608
10305
|
/** Used for built-in method references. */
|
|
9609
|
-
var objectProto$
|
|
10306
|
+
var objectProto$5 = Object.prototype;
|
|
9610
10307
|
|
|
9611
10308
|
/** Used to check objects for own properties. */
|
|
9612
|
-
var hasOwnProperty$
|
|
10309
|
+
var hasOwnProperty$5 = objectProto$5.hasOwnProperty;
|
|
9613
10310
|
|
|
9614
10311
|
/**
|
|
9615
10312
|
* Checks if a hash value for `key` exists.
|
|
@@ -9622,7 +10319,7 @@ var hasOwnProperty$4 = objectProto$4.hasOwnProperty;
|
|
|
9622
10319
|
*/
|
|
9623
10320
|
function hashHas(key) {
|
|
9624
10321
|
var data = this.__data__;
|
|
9625
|
-
return _nativeCreate ? (data[key] !== undefined) : hasOwnProperty$
|
|
10322
|
+
return _nativeCreate ? (data[key] !== undefined) : hasOwnProperty$5.call(data, key);
|
|
9626
10323
|
}
|
|
9627
10324
|
|
|
9628
10325
|
var _hashHas = hashHas;
|
|
@@ -10597,7 +11294,7 @@ var boolTag$1 = '[object Boolean]',
|
|
|
10597
11294
|
numberTag = '[object Number]',
|
|
10598
11295
|
regexpTag = '[object RegExp]',
|
|
10599
11296
|
setTag = '[object Set]',
|
|
10600
|
-
stringTag = '[object String]',
|
|
11297
|
+
stringTag$1 = '[object String]',
|
|
10601
11298
|
symbolTag = '[object Symbol]';
|
|
10602
11299
|
|
|
10603
11300
|
var arrayBufferTag = '[object ArrayBuffer]',
|
|
@@ -10652,7 +11349,7 @@ function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {
|
|
|
10652
11349
|
return object.name == other.name && object.message == other.message;
|
|
10653
11350
|
|
|
10654
11351
|
case regexpTag:
|
|
10655
|
-
case stringTag:
|
|
11352
|
+
case stringTag$1:
|
|
10656
11353
|
// Coerce regexes to strings and treat strings, primitives and objects,
|
|
10657
11354
|
// as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring
|
|
10658
11355
|
// for more details.
|
|
@@ -10760,10 +11457,10 @@ function stubArray() {
|
|
|
10760
11457
|
var stubArray_1 = stubArray;
|
|
10761
11458
|
|
|
10762
11459
|
/** Used for built-in method references. */
|
|
10763
|
-
var objectProto$
|
|
11460
|
+
var objectProto$4 = Object.prototype;
|
|
10764
11461
|
|
|
10765
11462
|
/** Built-in value references. */
|
|
10766
|
-
var propertyIsEnumerable = objectProto$
|
|
11463
|
+
var propertyIsEnumerable = objectProto$4.propertyIsEnumerable;
|
|
10767
11464
|
|
|
10768
11465
|
/* Built-in method references for those with the same name as other `lodash` methods. */
|
|
10769
11466
|
var nativeGetSymbols = Object.getOwnPropertySymbols;
|
|
@@ -10835,10 +11532,10 @@ function isIndex(value, length) {
|
|
|
10835
11532
|
var _isIndex = isIndex;
|
|
10836
11533
|
|
|
10837
11534
|
/** Used for built-in method references. */
|
|
10838
|
-
var objectProto$
|
|
11535
|
+
var objectProto$3 = Object.prototype;
|
|
10839
11536
|
|
|
10840
11537
|
/** Used to check objects for own properties. */
|
|
10841
|
-
var hasOwnProperty$
|
|
11538
|
+
var hasOwnProperty$4 = objectProto$3.hasOwnProperty;
|
|
10842
11539
|
|
|
10843
11540
|
/**
|
|
10844
11541
|
* Creates an array of the enumerable property names of the array-like `value`.
|
|
@@ -10858,7 +11555,7 @@ function arrayLikeKeys(value, inherited) {
|
|
|
10858
11555
|
length = result.length;
|
|
10859
11556
|
|
|
10860
11557
|
for (var key in value) {
|
|
10861
|
-
if ((inherited || hasOwnProperty$
|
|
11558
|
+
if ((inherited || hasOwnProperty$4.call(value, key)) &&
|
|
10862
11559
|
!(skipIndexes && (
|
|
10863
11560
|
// Safari 9 has enumerable `arguments.length` in strict mode.
|
|
10864
11561
|
key == 'length' ||
|
|
@@ -10928,10 +11625,10 @@ var _getAllKeys = getAllKeys;
|
|
|
10928
11625
|
var COMPARE_PARTIAL_FLAG$3 = 1;
|
|
10929
11626
|
|
|
10930
11627
|
/** Used for built-in method references. */
|
|
10931
|
-
var objectProto$
|
|
11628
|
+
var objectProto$2 = Object.prototype;
|
|
10932
11629
|
|
|
10933
11630
|
/** Used to check objects for own properties. */
|
|
10934
|
-
var hasOwnProperty$
|
|
11631
|
+
var hasOwnProperty$3 = objectProto$2.hasOwnProperty;
|
|
10935
11632
|
|
|
10936
11633
|
/**
|
|
10937
11634
|
* A specialized version of `baseIsEqualDeep` for objects with support for
|
|
@@ -10959,7 +11656,7 @@ function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
|
|
|
10959
11656
|
var index = objLength;
|
|
10960
11657
|
while (index--) {
|
|
10961
11658
|
var key = objProps[index];
|
|
10962
|
-
if (!(isPartial ? key in other : hasOwnProperty$
|
|
11659
|
+
if (!(isPartial ? key in other : hasOwnProperty$3.call(other, key))) {
|
|
10963
11660
|
return false;
|
|
10964
11661
|
}
|
|
10965
11662
|
}
|
|
@@ -11019,13 +11716,13 @@ var COMPARE_PARTIAL_FLAG$2 = 1;
|
|
|
11019
11716
|
/** `Object#toString` result references. */
|
|
11020
11717
|
var argsTag = '[object Arguments]',
|
|
11021
11718
|
arrayTag = '[object Array]',
|
|
11022
|
-
objectTag = '[object Object]';
|
|
11719
|
+
objectTag$1 = '[object Object]';
|
|
11023
11720
|
|
|
11024
11721
|
/** Used for built-in method references. */
|
|
11025
|
-
var objectProto = Object.prototype;
|
|
11722
|
+
var objectProto$1 = Object.prototype;
|
|
11026
11723
|
|
|
11027
11724
|
/** Used to check objects for own properties. */
|
|
11028
|
-
var hasOwnProperty$
|
|
11725
|
+
var hasOwnProperty$2 = objectProto$1.hasOwnProperty;
|
|
11029
11726
|
|
|
11030
11727
|
/**
|
|
11031
11728
|
* A specialized version of `baseIsEqual` for arrays and objects which performs
|
|
@@ -11047,11 +11744,11 @@ function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
|
|
|
11047
11744
|
objTag = objIsArr ? arrayTag : _getTag(object),
|
|
11048
11745
|
othTag = othIsArr ? arrayTag : _getTag(other);
|
|
11049
11746
|
|
|
11050
|
-
objTag = objTag == argsTag ? objectTag : objTag;
|
|
11051
|
-
othTag = othTag == argsTag ? objectTag : othTag;
|
|
11747
|
+
objTag = objTag == argsTag ? objectTag$1 : objTag;
|
|
11748
|
+
othTag = othTag == argsTag ? objectTag$1 : othTag;
|
|
11052
11749
|
|
|
11053
|
-
var objIsObj = objTag == objectTag,
|
|
11054
|
-
othIsObj = othTag == objectTag,
|
|
11750
|
+
var objIsObj = objTag == objectTag$1,
|
|
11751
|
+
othIsObj = othTag == objectTag$1,
|
|
11055
11752
|
isSameTag = objTag == othTag;
|
|
11056
11753
|
|
|
11057
11754
|
if (isSameTag && isBuffer_1(object)) {
|
|
@@ -11068,8 +11765,8 @@ function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
|
|
|
11068
11765
|
: _equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
|
|
11069
11766
|
}
|
|
11070
11767
|
if (!(bitmask & COMPARE_PARTIAL_FLAG$2)) {
|
|
11071
|
-
var objIsWrapped = objIsObj && hasOwnProperty$
|
|
11072
|
-
othIsWrapped = othIsObj && hasOwnProperty$
|
|
11768
|
+
var objIsWrapped = objIsObj && hasOwnProperty$2.call(object, '__wrapped__'),
|
|
11769
|
+
othIsWrapped = othIsObj && hasOwnProperty$2.call(other, '__wrapped__');
|
|
11073
11770
|
|
|
11074
11771
|
if (objIsWrapped || othIsWrapped) {
|
|
11075
11772
|
var objUnwrapped = objIsWrapped ? object.value() : object,
|
|
@@ -12244,7 +12941,8 @@ const URL_MAX_LENGTH = 2000;
|
|
|
12244
12941
|
* The default CSS dimensions of the embedded app
|
|
12245
12942
|
*/
|
|
12246
12943
|
const DEFAULT_EMBED_WIDTH = '100%';
|
|
12247
|
-
const DEFAULT_EMBED_HEIGHT = '100%';
|
|
12944
|
+
const DEFAULT_EMBED_HEIGHT = '100%';
|
|
12945
|
+
const DEFAULT_LAZY_LOADING_MARGIN = '500px 0px';
|
|
12248
12946
|
|
|
12249
12947
|
var Config = {
|
|
12250
12948
|
DEBUG: false,
|
|
@@ -12280,7 +12978,7 @@ var FuncProto = Function.prototype;
|
|
|
12280
12978
|
var ObjProto = Object.prototype;
|
|
12281
12979
|
var slice = ArrayProto.slice;
|
|
12282
12980
|
var toString = ObjProto.toString;
|
|
12283
|
-
var hasOwnProperty = ObjProto.hasOwnProperty;
|
|
12981
|
+
var hasOwnProperty$1 = ObjProto.hasOwnProperty;
|
|
12284
12982
|
var windowConsole = window$1.console;
|
|
12285
12983
|
var navigator = window$1.navigator;
|
|
12286
12984
|
var document$1 = window$1.document;
|
|
@@ -12417,7 +13115,7 @@ _.each = function(obj, iterator, context) {
|
|
|
12417
13115
|
}
|
|
12418
13116
|
} else {
|
|
12419
13117
|
for (var key in obj) {
|
|
12420
|
-
if (hasOwnProperty.call(obj, key)) {
|
|
13118
|
+
if (hasOwnProperty$1.call(obj, key)) {
|
|
12421
13119
|
if (iterator.call(context, obj[key], key, obj) === breaker) {
|
|
12422
13120
|
return;
|
|
12423
13121
|
}
|
|
@@ -12453,7 +13151,7 @@ _.isFunction = function(f) {
|
|
|
12453
13151
|
};
|
|
12454
13152
|
|
|
12455
13153
|
_.isArguments = function(obj) {
|
|
12456
|
-
return !!(obj && hasOwnProperty.call(obj, 'callee'));
|
|
13154
|
+
return !!(obj && hasOwnProperty$1.call(obj, 'callee'));
|
|
12457
13155
|
};
|
|
12458
13156
|
|
|
12459
13157
|
_.toArray = function(iterable) {
|
|
@@ -12541,7 +13239,7 @@ _.isObject = function(obj) {
|
|
|
12541
13239
|
_.isEmptyObject = function(obj) {
|
|
12542
13240
|
if (_.isObject(obj)) {
|
|
12543
13241
|
for (var key in obj) {
|
|
12544
|
-
if (hasOwnProperty.call(obj, key)) {
|
|
13242
|
+
if (hasOwnProperty$1.call(obj, key)) {
|
|
12545
13243
|
return false;
|
|
12546
13244
|
}
|
|
12547
13245
|
}
|
|
@@ -12733,7 +13431,7 @@ _.JSONEncode = (function() {
|
|
|
12733
13431
|
|
|
12734
13432
|
// Iterate through all of the keys in the object.
|
|
12735
13433
|
for (k in value) {
|
|
12736
|
-
if (hasOwnProperty.call(value, k)) {
|
|
13434
|
+
if (hasOwnProperty$1.call(value, k)) {
|
|
12737
13435
|
v = str(k, value);
|
|
12738
13436
|
if (v) {
|
|
12739
13437
|
partial.push(quote(k) + (gap ? ': ' : ':') + v);
|
|
@@ -18399,7 +19097,12 @@ const MIXPANEL_EVENT = {
|
|
|
18399
19097
|
VISUAL_SDK_RENDER_FAILED: 'visual-sdk-render-failed',
|
|
18400
19098
|
VISUAL_SDK_TRIGGER: 'visual-sdk-trigger',
|
|
18401
19099
|
VISUAL_SDK_ON: 'visual-sdk-on',
|
|
18402
|
-
VISUAL_SDK_EMBED_CREATE: 'visual-sdk-embed-create'
|
|
19100
|
+
VISUAL_SDK_EMBED_CREATE: 'visual-sdk-embed-create',
|
|
19101
|
+
VISUAL_SDK_RENDER_CALLED: 'visual-sdk-render-called',
|
|
19102
|
+
VISUAL_SDK_PRE_RENDER: 'visual-sdk-pre-render',
|
|
19103
|
+
VISUAL_SDK_SHOW_PRE_RENDER: 'visual-sdk-show-pre-render',
|
|
19104
|
+
VISUAL_SDK_HIDE_PRE_RENDER: 'visual-sdk-hide-pre-render',
|
|
19105
|
+
};
|
|
18403
19106
|
let isMixpanelInitialized = false;
|
|
18404
19107
|
let eventQueue = [];
|
|
18405
19108
|
/**
|
|
@@ -19774,7 +20477,7 @@ const getIsInitCalled = () => { var _a; return !!((_a = getValueFromWindow(initF
|
|
|
19774
20477
|
/**
|
|
19775
20478
|
* Initializes the Visual Embed SDK globally and perform
|
|
19776
20479
|
* authentication if applicable. This function needs to be called before any ThoughtSpot
|
|
19777
|
-
* component like Liveboard etc can be embedded. But need not wait for
|
|
20480
|
+
* component like Liveboard etc can be embedded. But need not wait for AuthStatus.SUCCESS
|
|
19778
20481
|
* to actually embed. That is handled internally.
|
|
19779
20482
|
* @param embedConfig The configuration object containing ThoughtSpot host,
|
|
19780
20483
|
* authentication mechanism and so on.
|
|
@@ -19972,6 +20675,154 @@ function processEventData(type, eventData, thoughtSpotHost, containerEl) {
|
|
|
19972
20675
|
return eventData;
|
|
19973
20676
|
}
|
|
19974
20677
|
|
|
20678
|
+
/**
|
|
20679
|
+
* Checks if `value` is `null` or `undefined`.
|
|
20680
|
+
*
|
|
20681
|
+
* @static
|
|
20682
|
+
* @memberOf _
|
|
20683
|
+
* @since 4.0.0
|
|
20684
|
+
* @category Lang
|
|
20685
|
+
* @param {*} value The value to check.
|
|
20686
|
+
* @returns {boolean} Returns `true` if `value` is nullish, else `false`.
|
|
20687
|
+
* @example
|
|
20688
|
+
*
|
|
20689
|
+
* _.isNil(null);
|
|
20690
|
+
* // => true
|
|
20691
|
+
*
|
|
20692
|
+
* _.isNil(void 0);
|
|
20693
|
+
* // => true
|
|
20694
|
+
*
|
|
20695
|
+
* _.isNil(NaN);
|
|
20696
|
+
* // => false
|
|
20697
|
+
*/
|
|
20698
|
+
function isNil(value) {
|
|
20699
|
+
return value == null;
|
|
20700
|
+
}
|
|
20701
|
+
|
|
20702
|
+
var isNil_1 = isNil;
|
|
20703
|
+
|
|
20704
|
+
/** Built-in value references. */
|
|
20705
|
+
var getPrototype = _overArg(Object.getPrototypeOf, Object);
|
|
20706
|
+
|
|
20707
|
+
var _getPrototype = getPrototype;
|
|
20708
|
+
|
|
20709
|
+
/** `Object#toString` result references. */
|
|
20710
|
+
var objectTag = '[object Object]';
|
|
20711
|
+
|
|
20712
|
+
/** Used for built-in method references. */
|
|
20713
|
+
var funcProto = Function.prototype,
|
|
20714
|
+
objectProto = Object.prototype;
|
|
20715
|
+
|
|
20716
|
+
/** Used to resolve the decompiled source of functions. */
|
|
20717
|
+
var funcToString = funcProto.toString;
|
|
20718
|
+
|
|
20719
|
+
/** Used to check objects for own properties. */
|
|
20720
|
+
var hasOwnProperty = objectProto.hasOwnProperty;
|
|
20721
|
+
|
|
20722
|
+
/** Used to infer the `Object` constructor. */
|
|
20723
|
+
var objectCtorString = funcToString.call(Object);
|
|
20724
|
+
|
|
20725
|
+
/**
|
|
20726
|
+
* Checks if `value` is a plain object, that is, an object created by the
|
|
20727
|
+
* `Object` constructor or one with a `[[Prototype]]` of `null`.
|
|
20728
|
+
*
|
|
20729
|
+
* @static
|
|
20730
|
+
* @memberOf _
|
|
20731
|
+
* @since 0.8.0
|
|
20732
|
+
* @category Lang
|
|
20733
|
+
* @param {*} value The value to check.
|
|
20734
|
+
* @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
|
|
20735
|
+
* @example
|
|
20736
|
+
*
|
|
20737
|
+
* function Foo() {
|
|
20738
|
+
* this.a = 1;
|
|
20739
|
+
* }
|
|
20740
|
+
*
|
|
20741
|
+
* _.isPlainObject(new Foo);
|
|
20742
|
+
* // => false
|
|
20743
|
+
*
|
|
20744
|
+
* _.isPlainObject([1, 2, 3]);
|
|
20745
|
+
* // => false
|
|
20746
|
+
*
|
|
20747
|
+
* _.isPlainObject({ 'x': 0, 'y': 0 });
|
|
20748
|
+
* // => true
|
|
20749
|
+
*
|
|
20750
|
+
* _.isPlainObject(Object.create(null));
|
|
20751
|
+
* // => true
|
|
20752
|
+
*/
|
|
20753
|
+
function isPlainObject(value) {
|
|
20754
|
+
if (!isObjectLike_1(value) || _baseGetTag(value) != objectTag) {
|
|
20755
|
+
return false;
|
|
20756
|
+
}
|
|
20757
|
+
var proto = _getPrototype(value);
|
|
20758
|
+
if (proto === null) {
|
|
20759
|
+
return true;
|
|
20760
|
+
}
|
|
20761
|
+
var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;
|
|
20762
|
+
return typeof Ctor == 'function' && Ctor instanceof Ctor &&
|
|
20763
|
+
funcToString.call(Ctor) == objectCtorString;
|
|
20764
|
+
}
|
|
20765
|
+
|
|
20766
|
+
var isPlainObject_1 = isPlainObject;
|
|
20767
|
+
|
|
20768
|
+
/** `Object#toString` result references. */
|
|
20769
|
+
var stringTag = '[object String]';
|
|
20770
|
+
|
|
20771
|
+
/**
|
|
20772
|
+
* Checks if `value` is classified as a `String` primitive or object.
|
|
20773
|
+
*
|
|
20774
|
+
* @static
|
|
20775
|
+
* @since 0.1.0
|
|
20776
|
+
* @memberOf _
|
|
20777
|
+
* @category Lang
|
|
20778
|
+
* @param {*} value The value to check.
|
|
20779
|
+
* @returns {boolean} Returns `true` if `value` is a string, else `false`.
|
|
20780
|
+
* @example
|
|
20781
|
+
*
|
|
20782
|
+
* _.isString('abc');
|
|
20783
|
+
* // => true
|
|
20784
|
+
*
|
|
20785
|
+
* _.isString(1);
|
|
20786
|
+
* // => false
|
|
20787
|
+
*/
|
|
20788
|
+
function isString(value) {
|
|
20789
|
+
return typeof value == 'string' ||
|
|
20790
|
+
(!isArray_1(value) && isObjectLike_1(value) && _baseGetTag(value) == stringTag);
|
|
20791
|
+
}
|
|
20792
|
+
|
|
20793
|
+
var isString_1 = isString;
|
|
20794
|
+
|
|
20795
|
+
/**
|
|
20796
|
+
* Checks if `value` is `undefined`.
|
|
20797
|
+
*
|
|
20798
|
+
* @static
|
|
20799
|
+
* @since 0.1.0
|
|
20800
|
+
* @memberOf _
|
|
20801
|
+
* @category Lang
|
|
20802
|
+
* @param {*} value The value to check.
|
|
20803
|
+
* @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.
|
|
20804
|
+
* @example
|
|
20805
|
+
*
|
|
20806
|
+
* _.isUndefined(void 0);
|
|
20807
|
+
* // => true
|
|
20808
|
+
*
|
|
20809
|
+
* _.isUndefined(null);
|
|
20810
|
+
* // => false
|
|
20811
|
+
*/
|
|
20812
|
+
function isUndefined(value) {
|
|
20813
|
+
return value === undefined;
|
|
20814
|
+
}
|
|
20815
|
+
|
|
20816
|
+
var isUndefined_1 = isUndefined;
|
|
20817
|
+
|
|
20818
|
+
const isValidApplicability = (a) => {
|
|
20819
|
+
if (isUndefined_1(a))
|
|
20820
|
+
return true;
|
|
20821
|
+
// targetId is not required at LIVEBOARD level, since the filter applies to the whole Liveboard
|
|
20822
|
+
return isPlainObject_1(a)
|
|
20823
|
+
&& Object.values(ApplicabilityLevel).includes(a.level)
|
|
20824
|
+
&& (a.level === ApplicabilityLevel.Liveboard || (isString_1(a.targetId) && a.targetId.trim().length > 0));
|
|
20825
|
+
};
|
|
19975
20826
|
function isValidUpdateFiltersPayload(payload) {
|
|
19976
20827
|
if (!payload)
|
|
19977
20828
|
return false;
|
|
@@ -19980,12 +20831,23 @@ function isValidUpdateFiltersPayload(payload) {
|
|
|
19980
20831
|
const hasOperator = typeof f.oper === 'string' || typeof f.operator === 'string';
|
|
19981
20832
|
const hasValues = Array.isArray(f.values);
|
|
19982
20833
|
const validType = !f.type || typeof f.type === 'string';
|
|
19983
|
-
return hasColumn && hasOperator && hasValues && validType;
|
|
20834
|
+
return hasColumn && hasOperator && hasValues && validType && isValidApplicability(f.applicability);
|
|
19984
20835
|
};
|
|
19985
20836
|
const hasValidFilter = payload.filter && isValidFilter(payload.filter);
|
|
19986
20837
|
const hasValidFilters = Array.isArray(payload.filters) && payload.filters.length > 0 && payload.filters.every(isValidFilter);
|
|
19987
20838
|
return !!(hasValidFilter || hasValidFilters);
|
|
19988
20839
|
}
|
|
20840
|
+
function isValidUpdateParametersPayload(payload) {
|
|
20841
|
+
// Only validates the applicability of each parameter (null treated as absent); the rest is forwarded as-is for backward compatibility.
|
|
20842
|
+
if (!Array.isArray(payload))
|
|
20843
|
+
return true;
|
|
20844
|
+
return payload.every((p) => {
|
|
20845
|
+
if (!isPlainObject_1(p))
|
|
20846
|
+
return true;
|
|
20847
|
+
const { applicability } = p;
|
|
20848
|
+
return isNil_1(applicability) || isValidApplicability(applicability);
|
|
20849
|
+
});
|
|
20850
|
+
}
|
|
19989
20851
|
function isValidDrillDownPayload(payload) {
|
|
19990
20852
|
if (!payload)
|
|
19991
20853
|
return false;
|
|
@@ -20016,6 +20878,9 @@ function throwUpdateFiltersValidationError() {
|
|
|
20016
20878
|
}
|
|
20017
20879
|
function throwDrillDownValidationError() {
|
|
20018
20880
|
createValidationError(ERROR_MESSAGE.DRILLDOWN_INVALID_PAYLOAD);
|
|
20881
|
+
}
|
|
20882
|
+
function throwUpdateParametersValidationError() {
|
|
20883
|
+
createValidationError(ERROR_MESSAGE.UPDATEPARAMETERS_INVALID_PAYLOAD);
|
|
20019
20884
|
}
|
|
20020
20885
|
|
|
20021
20886
|
/**
|
|
@@ -20036,6 +20901,7 @@ const PASSTHROUGH_MAP = {
|
|
|
20036
20901
|
[HostEvent.GetParameters]: UIPassthroughEvent.GetParameters,
|
|
20037
20902
|
[HostEvent.GetTML]: UIPassthroughEvent.GetTML,
|
|
20038
20903
|
[HostEvent.GetTabs]: UIPassthroughEvent.GetTabs,
|
|
20904
|
+
[HostEvent.GetGroups]: UIPassthroughEvent.GetGroups,
|
|
20039
20905
|
[HostEvent.getExportRequestForCurrentPinboard]: UIPassthroughEvent.GetExportRequestForCurrentPinboard,
|
|
20040
20906
|
};
|
|
20041
20907
|
class HostEventClient {
|
|
@@ -20047,6 +20913,7 @@ class HostEventClient {
|
|
|
20047
20913
|
[HostEvent.Pin]: (p, c) => this.handlePinEvent(p, c),
|
|
20048
20914
|
[HostEvent.SaveAnswer]: (p, c) => this.handleSaveAnswerEvent(p, c),
|
|
20049
20915
|
[HostEvent.UpdateFilters]: (p, c) => this.handleUpdateFiltersEvent(p, c),
|
|
20916
|
+
[HostEvent.UpdateParameters]: (p, c) => this.handleUpdateParametersEvent(p, c),
|
|
20050
20917
|
[HostEvent.DrillDown]: (p, c) => this.handleDrillDownEvent(p, c),
|
|
20051
20918
|
};
|
|
20052
20919
|
}
|
|
@@ -20171,6 +21038,13 @@ class HostEventClient {
|
|
|
20171
21038
|
}
|
|
20172
21039
|
return this.handleHostEventWithParam(UIPassthroughEvent.UpdateFilters, payload, context);
|
|
20173
21040
|
}
|
|
21041
|
+
handleUpdateParametersEvent(payload, context) {
|
|
21042
|
+
if (!isValidUpdateParametersPayload(payload)) {
|
|
21043
|
+
throwUpdateParametersValidationError();
|
|
21044
|
+
}
|
|
21045
|
+
// UpdateParameters has no UI passthrough contract; dispatch over the legacy channel
|
|
21046
|
+
return this.hostEventFallback(HostEvent.UpdateParameters, payload, context);
|
|
21047
|
+
}
|
|
20174
21048
|
handleDrillDownEvent(payload, context) {
|
|
20175
21049
|
if (!isValidDrillDownPayload(payload)) {
|
|
20176
21050
|
throwDrillDownValidationError();
|
|
@@ -20430,7 +21304,7 @@ class TsEmbed {
|
|
|
20430
21304
|
*/
|
|
20431
21305
|
this.shouldEncodeUrlQueryParams = false;
|
|
20432
21306
|
this.defaultHiddenActions = [Action.ReportError];
|
|
20433
|
-
this.preRenderContainerEl =
|
|
21307
|
+
this.preRenderContainerEl = document.body;
|
|
20434
21308
|
this.containerScrollListener = null;
|
|
20435
21309
|
/**
|
|
20436
21310
|
* Handler for fullscreen change events
|
|
@@ -20956,7 +21830,7 @@ class TsEmbed {
|
|
|
20956
21830
|
if (this.embedConfig.currencyFormat) {
|
|
20957
21831
|
queryParams[Param.CurrencyFormat] = this.embedConfig.currencyFormat;
|
|
20958
21832
|
}
|
|
20959
|
-
const { disabledActions, disabledActionReason, hiddenActions, visibleActions, hiddenTabs, visibleTabs, showAlerts, additionalFlags: additionalFlagsFromView, locale, customizations, contextMenuTrigger, linkOverride, enableLinkOverridesV2, insertInToSlide, disableRedirectionLinksInNewTab, overrideOrgId, exposeTranslationIDs, primaryAction, } = this.viewConfig;
|
|
21833
|
+
const { disabledActions, disabledActionReason, hiddenActions, visibleActions, hiddenTabs, visibleTabs, showAlerts, additionalFlags: additionalFlagsFromView, locale, customizations, contextMenuTrigger, linkOverride, enableLinkOverridesV2, insertInToSlide, disableRedirectionLinksInNewTab, overrideOrgId, overrideHistoryState, exposeTranslationIDs, primaryAction, } = this.viewConfig;
|
|
20960
21834
|
const { additionalFlags: additionalFlagsFromInit } = this.embedConfig;
|
|
20961
21835
|
const additionalFlags = {
|
|
20962
21836
|
...additionalFlagsFromInit,
|
|
@@ -21044,6 +21918,9 @@ class TsEmbed {
|
|
|
21044
21918
|
if (overrideOrgId !== undefined) {
|
|
21045
21919
|
queryParams[Param.OverrideOrgId] = overrideOrgId;
|
|
21046
21920
|
}
|
|
21921
|
+
if (overrideHistoryState !== undefined) {
|
|
21922
|
+
queryParams[Param.OverrideHistoryState] = overrideHistoryState;
|
|
21923
|
+
}
|
|
21047
21924
|
if (this.isPreAuthCacheEnabled()) {
|
|
21048
21925
|
queryParams[Param.preAuthCache] = true;
|
|
21049
21926
|
}
|
|
@@ -21115,11 +21992,27 @@ class TsEmbed {
|
|
|
21115
21992
|
iFrame.name = 'ThoughtSpot Embedded Analytics';
|
|
21116
21993
|
return iFrame;
|
|
21117
21994
|
}
|
|
21995
|
+
/**
|
|
21996
|
+
* Returns a merged {@link PreRenderConfig} object where each shared key
|
|
21997
|
+
* prefers `preRenderConfig.key` over the top-level `viewConfig.key` for
|
|
21998
|
+
* backward compatibility.
|
|
21999
|
+
*/
|
|
22000
|
+
getPreRenderConfig() {
|
|
22001
|
+
var _a, _b, _c, _d;
|
|
22002
|
+
const viewCfg = this.viewConfig;
|
|
22003
|
+
const preRenderCfg = (_a = viewCfg.preRenderConfig) !== null && _a !== void 0 ? _a : {};
|
|
22004
|
+
return {
|
|
22005
|
+
...preRenderCfg,
|
|
22006
|
+
preRenderId: (_b = preRenderCfg.preRenderId) !== null && _b !== void 0 ? _b : viewCfg.preRenderId,
|
|
22007
|
+
preRenderContainer: (_c = preRenderCfg.preRenderContainer) !== null && _c !== void 0 ? _c : viewCfg.preRenderContainer,
|
|
22008
|
+
doNotTrackPreRenderSize: (_d = preRenderCfg.doNotTrackPreRenderSize) !== null && _d !== void 0 ? _d : viewCfg.doNotTrackPreRenderSize,
|
|
22009
|
+
};
|
|
22010
|
+
}
|
|
21118
22011
|
/**
|
|
21119
22012
|
* Returns true if this embed instance is configured for pre-rendering.
|
|
21120
22013
|
*/
|
|
21121
22014
|
isPreRenderEmbed() {
|
|
21122
|
-
return !!this.
|
|
22015
|
+
return !!this.getPreRenderConfig().preRenderId;
|
|
21123
22016
|
}
|
|
21124
22017
|
handleInsertionIntoDOM(child) {
|
|
21125
22018
|
if (this.isPreRenderEmbed()) {
|
|
@@ -21255,6 +22148,7 @@ class TsEmbed {
|
|
|
21255
22148
|
this.setIframeElement(this.preRenderChild);
|
|
21256
22149
|
}
|
|
21257
22150
|
this.isRendered = true;
|
|
22151
|
+
this.inheritPreRenderContainer();
|
|
21258
22152
|
}
|
|
21259
22153
|
return this.isPreRenderConnected();
|
|
21260
22154
|
}
|
|
@@ -21305,7 +22199,7 @@ class TsEmbed {
|
|
|
21305
22199
|
*/
|
|
21306
22200
|
resolvePreRenderContainerTarget() {
|
|
21307
22201
|
var _a;
|
|
21308
|
-
const containerConfig = this.
|
|
22202
|
+
const containerConfig = this.getPreRenderConfig().preRenderContainer;
|
|
21309
22203
|
let container = null;
|
|
21310
22204
|
if (typeof containerConfig === 'string') {
|
|
21311
22205
|
try {
|
|
@@ -21323,15 +22217,35 @@ class TsEmbed {
|
|
|
21323
22217
|
}
|
|
21324
22218
|
return (_a = container) !== null && _a !== void 0 ? _a : document.body;
|
|
21325
22219
|
}
|
|
22220
|
+
inheritPreRenderContainer() {
|
|
22221
|
+
var _a;
|
|
22222
|
+
const preRenderedObject = this.getPreRenderObj();
|
|
22223
|
+
if (!preRenderedObject || preRenderedObject === this) {
|
|
22224
|
+
return;
|
|
22225
|
+
}
|
|
22226
|
+
const ownerContainer = (_a = preRenderedObject.preRenderContainerEl) !== null && _a !== void 0 ? _a : document.body;
|
|
22227
|
+
if (this.getPreRenderConfig().preRenderContainer
|
|
22228
|
+
&& this.resolvePreRenderContainerTarget() !== ownerContainer) {
|
|
22229
|
+
logger$3.warn('preRenderContainer is applied only by the component that creates the preRender; '
|
|
22230
|
+
+ 'the one passed here is ignored. Set it on the PreRender component instead.');
|
|
22231
|
+
}
|
|
22232
|
+
this.preRenderContainerEl = ownerContainer;
|
|
22233
|
+
this.applyPreRenderContainerPositioning();
|
|
22234
|
+
}
|
|
22235
|
+
getCustomPreRenderContainer() {
|
|
22236
|
+
const container = this.preRenderContainerEl;
|
|
22237
|
+
return container && container !== document.body ? container : null;
|
|
22238
|
+
}
|
|
21326
22239
|
/**
|
|
21327
|
-
* Makes the container a positioning context for the absolutely
|
|
21328
|
-
* wrapper, stashing the original inline `position` on the element
|
|
21329
|
-
* destroy() can restore it exactly, leaving no trace. Recording it
|
|
21330
|
-
* element rather than per-instance lets the override be reverted even
|
|
21331
|
-
* embeds share the same container.
|
|
22240
|
+
* Makes the resolved container a positioning context for the absolutely
|
|
22241
|
+
* positioned wrapper, stashing the original inline `position` on the element
|
|
22242
|
+
* (once) so destroy() can restore it exactly, leaving no trace. Recording it
|
|
22243
|
+
* on the element rather than per-instance lets the override be reverted even
|
|
22244
|
+
* when embeds share the same container.
|
|
21332
22245
|
*/
|
|
21333
|
-
applyPreRenderContainerPositioning(
|
|
21334
|
-
|
|
22246
|
+
applyPreRenderContainerPositioning() {
|
|
22247
|
+
const container = this.getCustomPreRenderContainer();
|
|
22248
|
+
if (!container) {
|
|
21335
22249
|
return;
|
|
21336
22250
|
}
|
|
21337
22251
|
const pos = window.getComputedStyle(container).position;
|
|
@@ -21374,11 +22288,11 @@ class TsEmbed {
|
|
|
21374
22288
|
resolved.addEventListener('scroll', this.containerScrollListener);
|
|
21375
22289
|
}
|
|
21376
22290
|
}
|
|
21377
|
-
this.
|
|
22291
|
+
this.preRenderContainerEl = resolved;
|
|
22292
|
+
this.applyPreRenderContainerPositioning();
|
|
21378
22293
|
if (wrapper.parentNode !== resolved) {
|
|
21379
22294
|
resolved.appendChild(wrapper);
|
|
21380
22295
|
}
|
|
21381
|
-
this.preRenderContainerEl = resolved;
|
|
21382
22296
|
}
|
|
21383
22297
|
insertIntoDOMForPreRender(child) {
|
|
21384
22298
|
const preRenderChild = this.createPreRenderChild(child);
|
|
@@ -21401,7 +22315,7 @@ class TsEmbed {
|
|
|
21401
22315
|
}
|
|
21402
22316
|
const targetContainer = this.resolvePreRenderContainerTarget();
|
|
21403
22317
|
this.preRenderContainerEl = targetContainer;
|
|
21404
|
-
this.applyPreRenderContainerPositioning(
|
|
22318
|
+
this.applyPreRenderContainerPositioning();
|
|
21405
22319
|
targetContainer.appendChild(preRenderWrapper);
|
|
21406
22320
|
}
|
|
21407
22321
|
insertIntoDOM(child) {
|
|
@@ -21729,6 +22643,9 @@ class TsEmbed {
|
|
|
21729
22643
|
* @param args
|
|
21730
22644
|
*/
|
|
21731
22645
|
async render() {
|
|
22646
|
+
uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_RENDER_CALLED, {
|
|
22647
|
+
embedComponentType: this.viewConfig.embedComponentType,
|
|
22648
|
+
});
|
|
21732
22649
|
if (!getIsInitCalled()) {
|
|
21733
22650
|
logger$3.error(ERROR_MESSAGE.RENDER_CALLED_BEFORE_INIT);
|
|
21734
22651
|
}
|
|
@@ -21800,7 +22717,11 @@ class TsEmbed {
|
|
|
21800
22717
|
* @param showPreRenderByDefault - Show the preRender after render, hidden by default
|
|
21801
22718
|
*/
|
|
21802
22719
|
async preRender(showPreRenderByDefault = false, replaceExistingPreRender = false) {
|
|
21803
|
-
|
|
22720
|
+
uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_PRE_RENDER, {
|
|
22721
|
+
showPreRenderByDefault,
|
|
22722
|
+
replaceExistingPreRender,
|
|
22723
|
+
});
|
|
22724
|
+
if (!this.getPreRenderConfig().preRenderId) {
|
|
21804
22725
|
logger$3.error(ERROR_MESSAGE.PRERENDER_ID_MISSING);
|
|
21805
22726
|
return this;
|
|
21806
22727
|
}
|
|
@@ -21856,7 +22777,7 @@ class TsEmbed {
|
|
|
21856
22777
|
}
|
|
21857
22778
|
// Drop our reference up front so a destroyed embed never pins a
|
|
21858
22779
|
// detached container in memory; restoration uses the local handle.
|
|
21859
|
-
this.preRenderContainerEl =
|
|
22780
|
+
this.preRenderContainerEl = document.body;
|
|
21860
22781
|
const originalPosition = container.dataset[PRERENDER_CONTAINER_ORIGINAL_POSITION_KEY];
|
|
21861
22782
|
if (originalPosition === undefined) {
|
|
21862
22783
|
// We never overrode this container's position; nothing to restore.
|
|
@@ -21879,9 +22800,7 @@ class TsEmbed {
|
|
|
21879
22800
|
if (!this.containerScrollListener) {
|
|
21880
22801
|
return;
|
|
21881
22802
|
}
|
|
21882
|
-
const customContainer = this.
|
|
21883
|
-
? this.preRenderContainerEl
|
|
21884
|
-
: null;
|
|
22803
|
+
const customContainer = this.getCustomPreRenderContainer();
|
|
21885
22804
|
customContainer === null || customContainer === void 0 ? void 0 : customContainer.removeEventListener('scroll', this.containerScrollListener);
|
|
21886
22805
|
this.containerScrollListener = null;
|
|
21887
22806
|
}
|
|
@@ -21976,10 +22895,14 @@ class TsEmbed {
|
|
|
21976
22895
|
* wrapper to overlay it.
|
|
21977
22896
|
*/
|
|
21978
22897
|
async showPreRender() {
|
|
21979
|
-
var _a;
|
|
22898
|
+
var _a, _b;
|
|
22899
|
+
uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_SHOW_PRE_RENDER, {
|
|
22900
|
+
preRenderId: this.getPreRenderConfig().preRenderId,
|
|
22901
|
+
embedComponentType: this.viewConfig.embedComponentType,
|
|
22902
|
+
});
|
|
21980
22903
|
if (this.shouldWaitForRenderPromise)
|
|
21981
22904
|
await this.isReadyForRenderPromise;
|
|
21982
|
-
if (!this.
|
|
22905
|
+
if (!this.getPreRenderConfig().preRenderId) {
|
|
21983
22906
|
logger$3.error(ERROR_MESSAGE.PRERENDER_ID_MISSING);
|
|
21984
22907
|
return this;
|
|
21985
22908
|
}
|
|
@@ -22000,21 +22923,23 @@ class TsEmbed {
|
|
|
22000
22923
|
}
|
|
22001
22924
|
}
|
|
22002
22925
|
const placeHolderId = this.getPreRenderIds().placeHolder;
|
|
22003
|
-
|
|
22004
|
-
|
|
22005
|
-
|
|
22006
|
-
|
|
22926
|
+
// Remove any stale placeholder from a previous cycle. It is located
|
|
22927
|
+
// via a subtree-wide querySelector, so it may be nested deeper than a
|
|
22928
|
+
// direct child (E.g.: with fullHeight the host app can wrap it). Use
|
|
22929
|
+
// Element.remove() — which detaches from whatever the real parent is —
|
|
22930
|
+
// rather than hostElement.removeChild(), which throws NotFoundError
|
|
22931
|
+
// when the match is not a direct child. Mirrors the wrapper/child
|
|
22932
|
+
// cleanup in createPreRenderWrapper()/createPreRenderChild().
|
|
22933
|
+
(_a = this.hostElement.querySelector(`#${placeHolderId}`)) === null || _a === void 0 ? void 0 : _a.remove();
|
|
22007
22934
|
this.hostElement.appendChild(this.insertedDomEl);
|
|
22008
22935
|
this.syncPreRenderStyle();
|
|
22009
|
-
const customContainer = this.
|
|
22010
|
-
? this.preRenderContainerEl
|
|
22011
|
-
: null;
|
|
22936
|
+
const customContainer = this.getCustomPreRenderContainer();
|
|
22012
22937
|
if (customContainer && !this.containerScrollListener) {
|
|
22013
22938
|
this.containerScrollListener = () => this.syncPreRenderStyle();
|
|
22014
22939
|
customContainer.addEventListener('scroll', this.containerScrollListener);
|
|
22015
22940
|
}
|
|
22016
|
-
if (!this.
|
|
22017
|
-
const observeTarget = (
|
|
22941
|
+
if (!this.getPreRenderConfig().doNotTrackPreRenderSize) {
|
|
22942
|
+
const observeTarget = (_b = this.insertedDomEl) !== null && _b !== void 0 ? _b : this.hostElement;
|
|
22018
22943
|
this.resizeObserver = new ResizeObserver((entries) => {
|
|
22019
22944
|
entries.forEach((entry) => {
|
|
22020
22945
|
if (entry.target === observeTarget) {
|
|
@@ -22055,13 +22980,15 @@ class TsEmbed {
|
|
|
22055
22980
|
logger$3.error(ERROR_MESSAGE.SYNC_STYLE_CALLED_BEFORE_RENDER);
|
|
22056
22981
|
return;
|
|
22057
22982
|
}
|
|
22983
|
+
if (!this.getPreRenderPlaceHolderElement().isConnected) {
|
|
22984
|
+
logger$3.debug('syncPreRenderStyle skipped: placeholder is detached');
|
|
22985
|
+
return;
|
|
22986
|
+
}
|
|
22058
22987
|
// Self-heal if the resolved container was remounted/detached, so we
|
|
22059
22988
|
// never measure a stale node (which would collapse the wrapper).
|
|
22060
22989
|
this.reconcilePreRenderContainer();
|
|
22061
22990
|
const elBoundingClient = this.getPreRenderPlaceHolderElement().getBoundingClientRect();
|
|
22062
|
-
const containerEl = this.
|
|
22063
|
-
? this.preRenderContainerEl
|
|
22064
|
-
: null;
|
|
22991
|
+
const containerEl = this.getCustomPreRenderContainer();
|
|
22065
22992
|
const containerRect = (_a = containerEl === null || containerEl === void 0 ? void 0 : containerEl.getBoundingClientRect()) !== null && _a !== void 0 ? _a : { x: 0, y: 0 };
|
|
22066
22993
|
const scrollX = containerEl ? containerEl.scrollLeft : window.scrollX;
|
|
22067
22994
|
const scrollY = containerEl ? containerEl.scrollTop : window.scrollY;
|
|
@@ -22078,16 +23005,21 @@ class TsEmbed {
|
|
|
22078
23005
|
* If the component is not preRendered, it issues a warning.
|
|
22079
23006
|
*/
|
|
22080
23007
|
hidePreRender() {
|
|
23008
|
+
uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_HIDE_PRE_RENDER, {
|
|
23009
|
+
preRenderId: this.getPreRenderConfig().preRenderId,
|
|
23010
|
+
embedComponentType: this.viewConfig.embedComponentType,
|
|
23011
|
+
});
|
|
22081
23012
|
logger$3.debug('HidePreRender Called');
|
|
22082
23013
|
if (!this.isPreRenderConnected()) {
|
|
22083
23014
|
// if the embed component is not preRendered , nothing to hide
|
|
22084
23015
|
logger$3.warn('PreRender should be called before hiding it using hidePreRender.');
|
|
22085
23016
|
return;
|
|
22086
23017
|
}
|
|
23018
|
+
const { zIndex } = this.getPreRenderConfig();
|
|
22087
23019
|
const preRenderHideStyles = {
|
|
22088
23020
|
opacity: '0',
|
|
22089
23021
|
pointerEvents: 'none',
|
|
22090
|
-
zIndex: '-1000',
|
|
23022
|
+
zIndex: zIndex !== undefined ? String(zIndex) : '-1000',
|
|
22091
23023
|
position: 'absolute',
|
|
22092
23024
|
top: '0',
|
|
22093
23025
|
left: '0',
|
|
@@ -22112,10 +23044,11 @@ class TsEmbed {
|
|
|
22112
23044
|
* @property {string} child - The HTML element ID for the PreRender child.
|
|
22113
23045
|
*/
|
|
22114
23046
|
getPreRenderIds() {
|
|
23047
|
+
const preRenderId = this.getPreRenderConfig().preRenderId;
|
|
22115
23048
|
return {
|
|
22116
|
-
wrapper: `${PRERENDER_WRAPPER_ID_PREFIX}${
|
|
22117
|
-
child: `tsEmbed-pre-render-child-${
|
|
22118
|
-
placeHolder: `tsEmbed-pre-render-placeholder-${
|
|
23049
|
+
wrapper: `${PRERENDER_WRAPPER_ID_PREFIX}${preRenderId}`,
|
|
23050
|
+
child: `tsEmbed-pre-render-child-${preRenderId}`,
|
|
23051
|
+
placeHolder: `tsEmbed-pre-render-placeholder-${preRenderId}`,
|
|
22119
23052
|
};
|
|
22120
23053
|
}
|
|
22121
23054
|
/**
|
|
@@ -22557,6 +23490,31 @@ function buildSpotterSidebarAppInitData(defaultAppInitData, viewConfig, handleEr
|
|
|
22557
23490
|
...(visualOverrides !== undefined ? { visualOverridesParams: visualOverrides } : {}),
|
|
22558
23491
|
},
|
|
22559
23492
|
};
|
|
23493
|
+
}
|
|
23494
|
+
function buildSpotterShareConversationAppInitData(initData, viewConfig) {
|
|
23495
|
+
const { spotterShareConversationConfig } = viewConfig;
|
|
23496
|
+
if (!spotterShareConversationConfig)
|
|
23497
|
+
return initData;
|
|
23498
|
+
return {
|
|
23499
|
+
...initData,
|
|
23500
|
+
embedParams: {
|
|
23501
|
+
...(initData.embedParams || {}),
|
|
23502
|
+
spotterShareConversationConfig,
|
|
23503
|
+
},
|
|
23504
|
+
};
|
|
23505
|
+
}
|
|
23506
|
+
function buildStarterPromptsAppInitData(initData, viewConfig) {
|
|
23507
|
+
var _a;
|
|
23508
|
+
const starterPrompts = (_a = viewConfig.spotterChatConfig) === null || _a === void 0 ? void 0 : _a.starterPrompts;
|
|
23509
|
+
if (!starterPrompts)
|
|
23510
|
+
return initData;
|
|
23511
|
+
return {
|
|
23512
|
+
...initData,
|
|
23513
|
+
embedParams: {
|
|
23514
|
+
...(initData.embedParams || {}),
|
|
23515
|
+
starterPrompts,
|
|
23516
|
+
},
|
|
23517
|
+
};
|
|
22560
23518
|
}
|
|
22561
23519
|
|
|
22562
23520
|
function buildSpotterVizAppInitData(initData, viewConfig) {
|
|
@@ -22618,6 +23576,14 @@ var Page;
|
|
|
22618
23576
|
* Monitor Alerts Page
|
|
22619
23577
|
*/
|
|
22620
23578
|
Page["Monitor"] = "monitor";
|
|
23579
|
+
/**
|
|
23580
|
+
* Collections listing page
|
|
23581
|
+
*/
|
|
23582
|
+
Page["Collections"] = "collections";
|
|
23583
|
+
/**
|
|
23584
|
+
* Liveboard schedules listing page
|
|
23585
|
+
*/
|
|
23586
|
+
Page["LiveboardSchedules"] = "liveboard-schedules";
|
|
22621
23587
|
})(Page || (Page = {}));
|
|
22622
23588
|
/**
|
|
22623
23589
|
* Define the initial state of column custom group accordions
|
|
@@ -22666,6 +23632,9 @@ var HomePage;
|
|
|
22666
23632
|
/**
|
|
22667
23633
|
* Modular (v2) introduces the updated Modular Home Experience.
|
|
22668
23634
|
* It serves as the foundational version of the home page.
|
|
23635
|
+
* Use {@link HomePage.ModularWithStylingChanges} (V3) or
|
|
23636
|
+
* {@link HomePage.Focused} (V4) instead.
|
|
23637
|
+
* @deprecated V1 and V2 home page experiences are deprecated.
|
|
22669
23638
|
*/
|
|
22670
23639
|
HomePage["Modular"] = "v2";
|
|
22671
23640
|
/**
|
|
@@ -22760,6 +23729,15 @@ let AppEmbed$1 = class AppEmbed extends V1Embed {
|
|
|
22760
23729
|
this.setIFrameHeight(frameHeight || this.defaultHeight);
|
|
22761
23730
|
};
|
|
22762
23731
|
if (this.viewConfig.fullHeight === true) {
|
|
23732
|
+
if (this.viewConfig.lazyLoadingForFullHeight === undefined) {
|
|
23733
|
+
this.viewConfig.lazyLoadingForFullHeight = true;
|
|
23734
|
+
}
|
|
23735
|
+
if (this.viewConfig.enableScrollableContainerLazyLoading === undefined) {
|
|
23736
|
+
this.viewConfig.enableScrollableContainerLazyLoading = true;
|
|
23737
|
+
}
|
|
23738
|
+
if (this.viewConfig.lazyLoadingMargin === undefined) {
|
|
23739
|
+
this.viewConfig.lazyLoadingMargin = DEFAULT_LAZY_LOADING_MARGIN;
|
|
23740
|
+
}
|
|
22763
23741
|
this.on(EmbedEvent.RouteChange, this.setIframeHeightForNonEmbedLiveboard);
|
|
22764
23742
|
this.on(EmbedEvent.EmbedHeight, this.updateIFrameHeight);
|
|
22765
23743
|
this.on(EmbedEvent.EmbedIframeCenter, this.embedIframeCenter);
|
|
@@ -22781,14 +23759,20 @@ let AppEmbed$1 = class AppEmbed extends V1Embed {
|
|
|
22781
23759
|
async getAppInitData() {
|
|
22782
23760
|
const defaultAppInitData = await super.getAppInitData();
|
|
22783
23761
|
const sidebarInitData = buildSpotterSidebarAppInitData(defaultAppInitData, this.viewConfig, this.handleError.bind(this));
|
|
22784
|
-
|
|
23762
|
+
const vizInitData = buildSpotterVizAppInitData(sidebarInitData, this.viewConfig);
|
|
23763
|
+
const shareInitData = buildSpotterShareConversationAppInitData(vizInitData, this.viewConfig);
|
|
23764
|
+
return buildStarterPromptsAppInitData(shareInitData, this.viewConfig);
|
|
22785
23765
|
}
|
|
22786
23766
|
/**
|
|
22787
23767
|
* Constructs a map of parameters to be passed on to the
|
|
22788
23768
|
* embedded Liveboard or visualization.
|
|
22789
23769
|
*/
|
|
22790
23770
|
getEmbedParams() {
|
|
22791
|
-
const
|
|
23771
|
+
const params = this.getEmbedParamsObject();
|
|
23772
|
+
return getQueryParamString(params, true);
|
|
23773
|
+
}
|
|
23774
|
+
getEmbedParamsObject() {
|
|
23775
|
+
const { tag, hideTagFilterChips, hideObjects, liveboardV2, showPrimaryNavbar, disableProfileAndHelp, hideHamburger, hideObjectSearch, hideNotification, hideApplicationSwitcher, hideOrgSwitcher, enableSearchAssist, newConnectionsExperience, fullHeight, dataPanelV2 = true, updatedSpotterExperience, hideLiveboardHeader = false, showLiveboardTitle = true, showLiveboardDescription = true, showMaskedFilterChip = false, isLiveboardMasterpiecesEnabled, newChartsLibrary, hideHomepageLeftNav = false, modularHomeExperience, isLiveboardHeaderSticky = true, enableAskSage, collapseSearchBarInitially = false, enable2ColumnLayout, isLiveboardAlwaysOn12ColLayout, enableCustomColumnGroups = false, dataPanelCustomGroupsAccordionInitialState = DataPanelCustomColumnGroupsAccordionState.EXPAND_ALL, collapseSearchBar = true, isLiveboardCompactHeaderEnabled, showLiveboardVerifiedBadge = true, showLiveboardReverifyBanner = true, hideIrrelevantChipsInLiveboardTabs, isEnhancedFilterInteractivityEnabled, homePageSearchBarMode, isUnifiedSearchExperienceEnabled = true, enablePendoHelp = true, discoveryExperience, coverAndFilterOptionInPDF, isLiveboardStylingAndGroupingEnabled, liveboardGutter, isPNGInScheduledEmailsEnabled = false, isLiveboardXLSXCSVDownloadEnabled, isGranularXLSXCSVSchedulesEnabled, isCentralizedLiveboardFilterUXEnabled = false, isScopedLiveboardFilteringEnabled, isLinkParametersEnabled, updatedSpotterChatPrompt, showSpotterRadiance, defaultQueryMode, enableStopAnswerGenerationEmbed, spotterChatConfig, spotterDataSources, minimumHeight, isThisPeriodInDateFiltersEnabled, enableHomepageAnnouncement = false, isContinuousLiveboardPDFEnabled, enableLiveboardDataCache, } = this.viewConfig;
|
|
22792
23776
|
let params = {};
|
|
22793
23777
|
params[Param.PrimaryNavHidden] = !showPrimaryNavbar;
|
|
22794
23778
|
params[Param.HideProfleAndHelp] = !!disableProfileAndHelp;
|
|
@@ -22798,31 +23782,51 @@ let AppEmbed$1 = class AppEmbed extends V1Embed {
|
|
|
22798
23782
|
params[Param.ShowLiveboardTitle] = showLiveboardTitle;
|
|
22799
23783
|
params[Param.ShowLiveboardDescription] = !!showLiveboardDescription;
|
|
22800
23784
|
params[Param.ShowMaskedFilterChip] = showMaskedFilterChip;
|
|
22801
|
-
|
|
23785
|
+
if (!isUndefined$1(isLiveboardMasterpiecesEnabled)) {
|
|
23786
|
+
params[Param.IsLiveboardMasterpiecesEnabled] = isLiveboardMasterpiecesEnabled;
|
|
23787
|
+
}
|
|
22802
23788
|
if (newChartsLibrary !== undefined) {
|
|
22803
23789
|
params[Param.EnableNewChartLibrary] = newChartsLibrary;
|
|
22804
23790
|
}
|
|
22805
23791
|
params[Param.LiveboardHeaderSticky] = isLiveboardHeaderSticky;
|
|
22806
23792
|
params[Param.IsFullAppEmbed] = true;
|
|
22807
|
-
|
|
22808
|
-
|
|
23793
|
+
if (!isUndefined$1(isLiveboardCompactHeaderEnabled)) {
|
|
23794
|
+
params[Param.LiveboardHeaderV2] = isLiveboardCompactHeaderEnabled;
|
|
23795
|
+
}
|
|
23796
|
+
if (!isUndefined$1(isEnhancedFilterInteractivityEnabled)) {
|
|
23797
|
+
params[Param.IsEnhancedFilterInteractivityEnabled] =
|
|
23798
|
+
isEnhancedFilterInteractivityEnabled;
|
|
23799
|
+
}
|
|
22809
23800
|
params[Param.ShowLiveboardVerifiedBadge] = showLiveboardVerifiedBadge;
|
|
22810
23801
|
params[Param.ShowLiveboardReverifyBanner] = showLiveboardReverifyBanner;
|
|
22811
|
-
|
|
23802
|
+
if (!isUndefined$1(hideIrrelevantChipsInLiveboardTabs)) {
|
|
23803
|
+
params[Param.HideIrrelevantFiltersInTab] = hideIrrelevantChipsInLiveboardTabs;
|
|
23804
|
+
}
|
|
22812
23805
|
if (isUnifiedSearchExperienceEnabled !== undefined) {
|
|
22813
23806
|
params[Param.IsUnifiedSearchExperienceEnabled] = isUnifiedSearchExperienceEnabled;
|
|
22814
23807
|
}
|
|
22815
|
-
|
|
23808
|
+
if (!isUndefined$1(coverAndFilterOptionInPDF)) {
|
|
23809
|
+
params[Param.CoverAndFilterOptionInPDF] = !!coverAndFilterOptionInPDF;
|
|
23810
|
+
}
|
|
22816
23811
|
params = this.getBaseQueryParams(params);
|
|
22817
|
-
if (!isUndefined(updatedSpotterChatPrompt)) {
|
|
23812
|
+
if (!isUndefined$1(updatedSpotterChatPrompt)) {
|
|
22818
23813
|
params[Param.UpdatedSpotterChatPrompt] = !!updatedSpotterChatPrompt;
|
|
22819
23814
|
}
|
|
22820
|
-
if (!isUndefined(
|
|
23815
|
+
if (!isUndefined$1(showSpotterRadiance)) {
|
|
23816
|
+
params[Param.ShowSpotterRadiance] = !!showSpotterRadiance;
|
|
23817
|
+
}
|
|
23818
|
+
if (!isUndefined$1(defaultQueryMode)) {
|
|
23819
|
+
params[Param.DefaultQueryMode] = defaultQueryMode;
|
|
23820
|
+
}
|
|
23821
|
+
if (!isUndefined$1(enableStopAnswerGenerationEmbed)) {
|
|
22821
23822
|
params[Param.EnableStopAnswerGenerationEmbed] = !!enableStopAnswerGenerationEmbed;
|
|
22822
23823
|
}
|
|
23824
|
+
if (spotterDataSources && spotterDataSources.length) {
|
|
23825
|
+
params[Param.SpotterDataSources] = JSON.stringify(spotterDataSources);
|
|
23826
|
+
}
|
|
22823
23827
|
// Handle spotterChatConfig params
|
|
22824
23828
|
if (spotterChatConfig) {
|
|
22825
|
-
const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, spotterFileUploadEnabled, spotterFileUploadFileTypes, enableStarterPrompts, } = spotterChatConfig;
|
|
23829
|
+
const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, spotterFileUploadEnabled, spotterFileUploadFileTypes, enableStarterPrompts, openSpotterOnLiveboardByDefault, } = spotterChatConfig;
|
|
22826
23830
|
setParamIfDefined(params, Param.HideToolResponseCardBranding, hideToolResponseCardBranding, true);
|
|
22827
23831
|
setParamIfDefined(params, Param.ToolResponseCardBrandingLabel, toolResponseCardBrandingLabel);
|
|
22828
23832
|
if (spotterFileUploadEnabled !== undefined) {
|
|
@@ -22831,10 +23835,16 @@ let AppEmbed$1 = class AppEmbed extends V1Embed {
|
|
|
22831
23835
|
if (enableStarterPrompts !== undefined) {
|
|
22832
23836
|
params[Param.IsStarterPromptsEnabled] = enableStarterPrompts;
|
|
22833
23837
|
}
|
|
23838
|
+
if (openSpotterOnLiveboardByDefault !== undefined) {
|
|
23839
|
+
params[Param.OpenSpotterOnLiveboardByDefault] = openSpotterOnLiveboardByDefault;
|
|
23840
|
+
}
|
|
22834
23841
|
if (spotterFileUploadFileTypes !== undefined) {
|
|
22835
23842
|
params[Param.SpotterFileUploadFileTypes] = JSON.stringify(spotterFileUploadFileTypes);
|
|
22836
23843
|
}
|
|
22837
23844
|
}
|
|
23845
|
+
if (!isUndefined$1(updatedSpotterExperience)) {
|
|
23846
|
+
params[Param.UpdatedSpotterExperience] = !!updatedSpotterExperience;
|
|
23847
|
+
}
|
|
22838
23848
|
if (hideObjectSearch) {
|
|
22839
23849
|
params[Param.HideObjectSearch] = !!hideObjectSearch;
|
|
22840
23850
|
}
|
|
@@ -22871,6 +23881,9 @@ let AppEmbed$1 = class AppEmbed extends V1Embed {
|
|
|
22871
23881
|
if (enable2ColumnLayout !== undefined) {
|
|
22872
23882
|
params[Param.Enable2ColumnLayout] = enable2ColumnLayout;
|
|
22873
23883
|
}
|
|
23884
|
+
if (isLiveboardAlwaysOn12ColLayout !== undefined) {
|
|
23885
|
+
params[Param.IsLiveboardAlwaysOn12ColLayout] = isLiveboardAlwaysOn12ColLayout;
|
|
23886
|
+
}
|
|
22874
23887
|
if (enableAskSage) {
|
|
22875
23888
|
params[Param.enableAskSage] = enableAskSage;
|
|
22876
23889
|
}
|
|
@@ -22883,6 +23896,9 @@ let AppEmbed$1 = class AppEmbed extends V1Embed {
|
|
|
22883
23896
|
if (isLiveboardStylingAndGroupingEnabled !== undefined) {
|
|
22884
23897
|
params[Param.IsLiveboardStylingAndGroupingEnabled] = isLiveboardStylingAndGroupingEnabled;
|
|
22885
23898
|
}
|
|
23899
|
+
if (liveboardGutter !== undefined) {
|
|
23900
|
+
params[Param.LiveboardGutter] = liveboardGutter;
|
|
23901
|
+
}
|
|
22886
23902
|
if (isPNGInScheduledEmailsEnabled !== undefined) {
|
|
22887
23903
|
params[Param.isPNGInScheduledEmailsEnabled] = isPNGInScheduledEmailsEnabled;
|
|
22888
23904
|
}
|
|
@@ -22901,6 +23917,9 @@ let AppEmbed$1 = class AppEmbed extends V1Embed {
|
|
|
22901
23917
|
if (isCentralizedLiveboardFilterUXEnabled != undefined) {
|
|
22902
23918
|
params[Param.isCentralizedLiveboardFilterUXEnabled] = isCentralizedLiveboardFilterUXEnabled;
|
|
22903
23919
|
}
|
|
23920
|
+
if (isScopedLiveboardFilteringEnabled !== undefined) {
|
|
23921
|
+
params[Param.isScopedLiveboardFilteringEnabled] = isScopedLiveboardFilteringEnabled;
|
|
23922
|
+
}
|
|
22904
23923
|
if (isThisPeriodInDateFiltersEnabled !== undefined) {
|
|
22905
23924
|
params[Param.IsThisPeriodInDateFiltersEnabled] = isThisPeriodInDateFiltersEnabled;
|
|
22906
23925
|
}
|
|
@@ -22916,7 +23935,6 @@ let AppEmbed$1 = class AppEmbed extends V1Embed {
|
|
|
22916
23935
|
}
|
|
22917
23936
|
params[Param.DataPanelV2Enabled] = dataPanelV2;
|
|
22918
23937
|
params[Param.HideHomepageLeftNav] = hideHomepageLeftNav;
|
|
22919
|
-
params[Param.ModularHomeExperienceEnabled] = modularHomeExperience;
|
|
22920
23938
|
params[Param.CollapseSearchBarInitially] = collapseSearchBarInitially || collapseSearchBar;
|
|
22921
23939
|
params[Param.EnableCustomColumnGroups] = enableCustomColumnGroups;
|
|
22922
23940
|
if (dataPanelCustomGroupsAccordionInitialState
|
|
@@ -22931,33 +23949,15 @@ let AppEmbed$1 = class AppEmbed extends V1Embed {
|
|
|
22931
23949
|
if (modularHomeExperience !== undefined) {
|
|
22932
23950
|
params[Param.ModularHomeExperienceEnabled] = modularHomeExperience;
|
|
22933
23951
|
}
|
|
22934
|
-
//
|
|
22935
|
-
//
|
|
22936
|
-
//
|
|
22937
|
-
//
|
|
22938
|
-
//
|
|
22939
|
-
|
|
22940
|
-
|
|
22941
|
-
|
|
22942
|
-
params[Param.HomepageVersion] = 'v2';
|
|
23952
|
+
// Navigation V1/V2 and home page V1/V2 are deprecated. V3 is now the
|
|
23953
|
+
// default experience, Need to send navigationVersion=v3 and
|
|
23954
|
+
// homepageVersion=v3 even when the no discoveryExperience /
|
|
23955
|
+
// modularHomeExperience config is set. Without these
|
|
23956
|
+
// params, older TSA versions (< 26.7) fall back to V2 for nav and
|
|
23957
|
+
// home page, so the defaults must be sent explicitly from the SDK.
|
|
23958
|
+
params[Param.NavigationVersion] = PrimaryNavbarVersion.Sliding;
|
|
23959
|
+
params[Param.HomepageVersion] = HomePage.ModularWithStylingChanges;
|
|
22943
23960
|
if (discoveryExperience) {
|
|
22944
|
-
// primaryNavbarVersion v3 will enabled the new left navigation
|
|
22945
|
-
if (discoveryExperience.primaryNavbarVersion === PrimaryNavbarVersion.Sliding) {
|
|
22946
|
-
params[Param.NavigationVersion] = discoveryExperience.primaryNavbarVersion;
|
|
22947
|
-
// Enable the modularHomeExperience when Sliding is enabled.
|
|
22948
|
-
params[Param.ModularHomeExperienceEnabled] = true;
|
|
22949
|
-
}
|
|
22950
|
-
// homePage v2 will enable the modular home page
|
|
22951
|
-
// and it will override the modularHomeExperience value
|
|
22952
|
-
if (discoveryExperience.homePage === HomePage.Modular) {
|
|
22953
|
-
params[Param.ModularHomeExperienceEnabled] = true;
|
|
22954
|
-
}
|
|
22955
|
-
// ModularWithStylingChanges (v3) introduces the styling changes
|
|
22956
|
-
// to the Modular Homepage.
|
|
22957
|
-
// v3 will be the base version of homePageVersion.
|
|
22958
|
-
if (discoveryExperience.homePage === HomePage.ModularWithStylingChanges) {
|
|
22959
|
-
params[Param.HomepageVersion] = HomePage.ModularWithStylingChanges;
|
|
22960
|
-
}
|
|
22961
23961
|
// listPageVersion can be changed to v2 or v3
|
|
22962
23962
|
if (discoveryExperience.listPageVersion !== undefined) {
|
|
22963
23963
|
params[Param.ListPageVersion] = discoveryExperience.listPageVersion;
|
|
@@ -22967,13 +23967,12 @@ let AppEmbed$1 = class AppEmbed extends V1Embed {
|
|
|
22967
23967
|
// The Focused (V4) homepage experience requires the updated
|
|
22968
23968
|
// Spotter chat prompt. Enable it automatically unless the
|
|
22969
23969
|
// developer has explicitly set updatedSpotterChatPrompt.
|
|
22970
|
-
if (isUndefined(updatedSpotterChatPrompt)) {
|
|
23970
|
+
if (isUndefined$1(updatedSpotterChatPrompt)) {
|
|
22971
23971
|
params[Param.UpdatedSpotterChatPrompt] = true;
|
|
22972
23972
|
}
|
|
22973
23973
|
}
|
|
22974
23974
|
}
|
|
22975
|
-
|
|
22976
|
-
return queryParams;
|
|
23975
|
+
return params;
|
|
22977
23976
|
}
|
|
22978
23977
|
/**
|
|
22979
23978
|
* Constructs the URL of the ThoughtSpot app page to be rendered.
|
|
@@ -23008,6 +24007,10 @@ let AppEmbed$1 = class AppEmbed extends V1Embed {
|
|
|
23008
24007
|
return modularHomeExperience ? 'home/spotiq-analysis' : 'insights/results';
|
|
23009
24008
|
case Page.Monitor:
|
|
23010
24009
|
return modularHomeExperience ? 'home/monitor-alerts' : 'insights/monitor-alerts';
|
|
24010
|
+
case Page.Collections:
|
|
24011
|
+
return 'collections';
|
|
24012
|
+
case Page.LiveboardSchedules:
|
|
24013
|
+
return 'home/liveboard-schedules';
|
|
23011
24014
|
case Page.Home:
|
|
23012
24015
|
default:
|
|
23013
24016
|
return 'home';
|
|
@@ -23040,11 +24043,13 @@ let AppEmbed$1 = class AppEmbed extends V1Embed {
|
|
|
23040
24043
|
* @version SDK: 1.12.0 | ThoughtSpot: 8.4.0.cl, 8.4.1-sw
|
|
23041
24044
|
*/
|
|
23042
24045
|
navigateToPage(path, noReload = false) {
|
|
24046
|
+
var _a;
|
|
23043
24047
|
if (!this.iFrame) {
|
|
23044
24048
|
logger$3.log('Please call render before invoking this method');
|
|
23045
24049
|
return;
|
|
23046
24050
|
}
|
|
23047
|
-
|
|
24051
|
+
const overrideHistoryState = (_a = this.viewConfig) === null || _a === void 0 ? void 0 : _a.overrideHistoryState;
|
|
24052
|
+
if (noReload || overrideHistoryState) {
|
|
23048
24053
|
this.trigger(HostEvent.Navigate, path);
|
|
23049
24054
|
}
|
|
23050
24055
|
else {
|
|
@@ -23291,6 +24296,15 @@ let LiveboardEmbed$1 = class LiveboardEmbed extends V1Embed {
|
|
|
23291
24296
|
logger$3.warn('Full height is currently only supported for Liveboard embeds.' +
|
|
23292
24297
|
'Using full height with vizId might lead to unexpected behavior.');
|
|
23293
24298
|
}
|
|
24299
|
+
if (this.viewConfig.lazyLoadingForFullHeight === undefined) {
|
|
24300
|
+
this.viewConfig.lazyLoadingForFullHeight = true;
|
|
24301
|
+
}
|
|
24302
|
+
if (this.viewConfig.enableScrollableContainerLazyLoading === undefined) {
|
|
24303
|
+
this.viewConfig.enableScrollableContainerLazyLoading = true;
|
|
24304
|
+
}
|
|
24305
|
+
if (this.viewConfig.lazyLoadingMargin === undefined) {
|
|
24306
|
+
this.viewConfig.lazyLoadingMargin = DEFAULT_LAZY_LOADING_MARGIN;
|
|
24307
|
+
}
|
|
23294
24308
|
this.on(EmbedEvent.RouteChange, this.setIframeHeightForNonEmbedLiveboard);
|
|
23295
24309
|
this.on(EmbedEvent.EmbedHeight, this.updateIFrameHeight);
|
|
23296
24310
|
this.on(EmbedEvent.EmbedIframeCenter, this.embedIframeCenter);
|
|
@@ -23299,7 +24313,8 @@ let LiveboardEmbed$1 = class LiveboardEmbed extends V1Embed {
|
|
|
23299
24313
|
}
|
|
23300
24314
|
async getAppInitData() {
|
|
23301
24315
|
const defaultAppInitData = await super.getAppInitData();
|
|
23302
|
-
|
|
24316
|
+
const vizInitData = buildSpotterVizAppInitData(defaultAppInitData, this.viewConfig);
|
|
24317
|
+
return buildStarterPromptsAppInitData(vizInitData, this.viewConfig);
|
|
23303
24318
|
}
|
|
23304
24319
|
/**
|
|
23305
24320
|
* Construct a map of params to be passed on to the
|
|
@@ -23313,7 +24328,7 @@ let LiveboardEmbed$1 = class LiveboardEmbed extends V1Embed {
|
|
|
23313
24328
|
getEmbedParamsObject() {
|
|
23314
24329
|
let params = {};
|
|
23315
24330
|
params = this.getBaseQueryParams(params);
|
|
23316
|
-
const { enableVizTransformations, fullHeight, defaultHeight, minimumHeight, visibleVizs, liveboardV2, vizId, hideTabPanel, activeTabId, hideLiveboardHeader, showLiveboardDescription, showLiveboardTitle, isLiveboardHeaderSticky = true, isLiveboardCompactHeaderEnabled
|
|
24331
|
+
const { enableVizTransformations, fullHeight, defaultHeight, minimumHeight, visibleVizs, liveboardV2, vizId, hideTabPanel, activeTabId, hideLiveboardHeader, showLiveboardDescription, showLiveboardTitle, isLiveboardHeaderSticky = true, isLiveboardCompactHeaderEnabled, showLiveboardVerifiedBadge = true, showLiveboardReverifyBanner = true, hideIrrelevantChipsInLiveboardTabs, showMaskedFilterChip = false, isLiveboardMasterpiecesEnabled, newChartsLibrary, isEnhancedFilterInteractivityEnabled, enableAskSage, enable2ColumnLayout, isLiveboardAlwaysOn12ColLayout, dataPanelV2 = true, updatedSpotterExperience, enableCustomColumnGroups = false, oAuthPollingInterval, isForceRedirect, dataSourceId, coverAndFilterOptionInPDF, isLiveboardStylingAndGroupingEnabled, liveboardGutter, isPNGInScheduledEmailsEnabled = false, isLiveboardXLSXCSVDownloadEnabled, isGranularXLSXCSVSchedulesEnabled, showSpotterLimitations, isCentralizedLiveboardFilterUXEnabled = false, isScopedLiveboardFilteringEnabled, isLinkParametersEnabled, updatedSpotterChatPrompt, showSpotterRadiance, enableStopAnswerGenerationEmbed, spotterChatConfig, isThisPeriodInDateFiltersEnabled, isContinuousLiveboardPDFEnabled, enableLiveboardDataCache, } = this.viewConfig;
|
|
23317
24332
|
const preventLiveboardFilterRemoval = this.viewConfig.preventLiveboardFilterRemoval
|
|
23318
24333
|
|| this.viewConfig.preventPinboardFilterRemoval;
|
|
23319
24334
|
if (fullHeight === true) {
|
|
@@ -23332,10 +24347,13 @@ let LiveboardEmbed$1 = class LiveboardEmbed extends V1Embed {
|
|
|
23332
24347
|
if (preventLiveboardFilterRemoval) {
|
|
23333
24348
|
params[Param.preventLiveboardFilterRemoval] = true;
|
|
23334
24349
|
}
|
|
23335
|
-
if (!isUndefined(updatedSpotterChatPrompt)) {
|
|
24350
|
+
if (!isUndefined$1(updatedSpotterChatPrompt)) {
|
|
23336
24351
|
params[Param.UpdatedSpotterChatPrompt] = !!updatedSpotterChatPrompt;
|
|
23337
24352
|
}
|
|
23338
|
-
if (!isUndefined(
|
|
24353
|
+
if (!isUndefined$1(showSpotterRadiance)) {
|
|
24354
|
+
params[Param.ShowSpotterRadiance] = !!showSpotterRadiance;
|
|
24355
|
+
}
|
|
24356
|
+
if (!isUndefined$1(enableStopAnswerGenerationEmbed)) {
|
|
23339
24357
|
params[Param.EnableStopAnswerGenerationEmbed] = !!enableStopAnswerGenerationEmbed;
|
|
23340
24358
|
}
|
|
23341
24359
|
if (visibleVizs) {
|
|
@@ -23351,6 +24369,9 @@ let LiveboardEmbed$1 = class LiveboardEmbed extends V1Embed {
|
|
|
23351
24369
|
if (enable2ColumnLayout !== undefined) {
|
|
23352
24370
|
params[Param.Enable2ColumnLayout] = enable2ColumnLayout;
|
|
23353
24371
|
}
|
|
24372
|
+
if (isLiveboardAlwaysOn12ColLayout !== undefined) {
|
|
24373
|
+
params[Param.IsLiveboardAlwaysOn12ColLayout] = isLiveboardAlwaysOn12ColLayout;
|
|
24374
|
+
}
|
|
23354
24375
|
if (hideTabPanel) {
|
|
23355
24376
|
params[Param.HideTabPanel] = hideTabPanel;
|
|
23356
24377
|
}
|
|
@@ -23378,6 +24399,9 @@ let LiveboardEmbed$1 = class LiveboardEmbed extends V1Embed {
|
|
|
23378
24399
|
if (isLiveboardStylingAndGroupingEnabled !== undefined) {
|
|
23379
24400
|
params[Param.IsLiveboardStylingAndGroupingEnabled] = isLiveboardStylingAndGroupingEnabled;
|
|
23380
24401
|
}
|
|
24402
|
+
if (liveboardGutter !== undefined) {
|
|
24403
|
+
params[Param.LiveboardGutter] = liveboardGutter;
|
|
24404
|
+
}
|
|
23381
24405
|
if (isPNGInScheduledEmailsEnabled !== undefined) {
|
|
23382
24406
|
params[Param.isPNGInScheduledEmailsEnabled] = isPNGInScheduledEmailsEnabled;
|
|
23383
24407
|
}
|
|
@@ -23390,9 +24414,12 @@ let LiveboardEmbed$1 = class LiveboardEmbed extends V1Embed {
|
|
|
23390
24414
|
if (showSpotterLimitations !== undefined) {
|
|
23391
24415
|
params[Param.ShowSpotterLimitations] = showSpotterLimitations;
|
|
23392
24416
|
}
|
|
24417
|
+
if (!isUndefined$1(updatedSpotterExperience)) {
|
|
24418
|
+
params[Param.UpdatedSpotterExperience] = !!updatedSpotterExperience;
|
|
24419
|
+
}
|
|
23393
24420
|
// Handle spotterChatConfig params
|
|
23394
24421
|
if (spotterChatConfig) {
|
|
23395
|
-
const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, spotterFileUploadEnabled, spotterFileUploadFileTypes, enableStarterPrompts, } = spotterChatConfig;
|
|
24422
|
+
const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, spotterFileUploadEnabled, spotterFileUploadFileTypes, enableStarterPrompts, openSpotterOnLiveboardByDefault, } = spotterChatConfig;
|
|
23396
24423
|
setParamIfDefined(params, Param.HideToolResponseCardBranding, hideToolResponseCardBranding, true);
|
|
23397
24424
|
setParamIfDefined(params, Param.ToolResponseCardBrandingLabel, toolResponseCardBrandingLabel);
|
|
23398
24425
|
if (spotterFileUploadEnabled !== undefined) {
|
|
@@ -23401,6 +24428,9 @@ let LiveboardEmbed$1 = class LiveboardEmbed extends V1Embed {
|
|
|
23401
24428
|
if (enableStarterPrompts !== undefined) {
|
|
23402
24429
|
params[Param.IsStarterPromptsEnabled] = enableStarterPrompts;
|
|
23403
24430
|
}
|
|
24431
|
+
if (openSpotterOnLiveboardByDefault !== undefined) {
|
|
24432
|
+
params[Param.OpenSpotterOnLiveboardByDefault] = openSpotterOnLiveboardByDefault;
|
|
24433
|
+
}
|
|
23404
24434
|
if (spotterFileUploadFileTypes !== undefined) {
|
|
23405
24435
|
params[Param.SpotterFileUploadFileTypes] = JSON.stringify(spotterFileUploadFileTypes);
|
|
23406
24436
|
}
|
|
@@ -23411,6 +24441,9 @@ let LiveboardEmbed$1 = class LiveboardEmbed extends V1Embed {
|
|
|
23411
24441
|
if (isCentralizedLiveboardFilterUXEnabled !== undefined) {
|
|
23412
24442
|
params[Param.isCentralizedLiveboardFilterUXEnabled] = isCentralizedLiveboardFilterUXEnabled;
|
|
23413
24443
|
}
|
|
24444
|
+
if (isScopedLiveboardFilteringEnabled !== undefined) {
|
|
24445
|
+
params[Param.isScopedLiveboardFilteringEnabled] = isScopedLiveboardFilteringEnabled;
|
|
24446
|
+
}
|
|
23414
24447
|
if (isThisPeriodInDateFiltersEnabled !== undefined) {
|
|
23415
24448
|
params[Param.IsThisPeriodInDateFiltersEnabled] = isThisPeriodInDateFiltersEnabled;
|
|
23416
24449
|
}
|
|
@@ -23424,16 +24457,27 @@ let LiveboardEmbed$1 = class LiveboardEmbed extends V1Embed {
|
|
|
23424
24457
|
params[Param.EnableNewChartLibrary] = newChartsLibrary;
|
|
23425
24458
|
}
|
|
23426
24459
|
params[Param.LiveboardHeaderSticky] = isLiveboardHeaderSticky;
|
|
23427
|
-
|
|
24460
|
+
if (!isUndefined$1(isLiveboardCompactHeaderEnabled)) {
|
|
24461
|
+
params[Param.LiveboardHeaderV2] = isLiveboardCompactHeaderEnabled;
|
|
24462
|
+
}
|
|
23428
24463
|
params[Param.ShowLiveboardVerifiedBadge] = showLiveboardVerifiedBadge;
|
|
23429
24464
|
params[Param.ShowLiveboardReverifyBanner] = showLiveboardReverifyBanner;
|
|
23430
|
-
|
|
24465
|
+
if (!isUndefined$1(hideIrrelevantChipsInLiveboardTabs)) {
|
|
24466
|
+
params[Param.HideIrrelevantFiltersInTab] = hideIrrelevantChipsInLiveboardTabs;
|
|
24467
|
+
}
|
|
23431
24468
|
params[Param.ShowMaskedFilterChip] = showMaskedFilterChip;
|
|
23432
|
-
|
|
23433
|
-
|
|
24469
|
+
if (!isUndefined$1(isLiveboardMasterpiecesEnabled)) {
|
|
24470
|
+
params[Param.IsLiveboardMasterpiecesEnabled] = isLiveboardMasterpiecesEnabled;
|
|
24471
|
+
}
|
|
24472
|
+
if (!isUndefined$1(isEnhancedFilterInteractivityEnabled)) {
|
|
24473
|
+
params[Param.IsEnhancedFilterInteractivityEnabled] =
|
|
24474
|
+
isEnhancedFilterInteractivityEnabled;
|
|
24475
|
+
}
|
|
23434
24476
|
params[Param.DataPanelV2Enabled] = dataPanelV2;
|
|
23435
24477
|
params[Param.EnableCustomColumnGroups] = enableCustomColumnGroups;
|
|
23436
|
-
|
|
24478
|
+
if (!isUndefined$1(coverAndFilterOptionInPDF)) {
|
|
24479
|
+
params[Param.CoverAndFilterOptionInPDF] = coverAndFilterOptionInPDF;
|
|
24480
|
+
}
|
|
23437
24481
|
getQueryParamString(params, true);
|
|
23438
24482
|
return params;
|
|
23439
24483
|
}
|
|
@@ -23536,7 +24580,7 @@ let LiveboardEmbed$1 = class LiveboardEmbed extends V1Embed {
|
|
|
23536
24580
|
});
|
|
23537
24581
|
}
|
|
23538
24582
|
async handleRenderForPrerender() {
|
|
23539
|
-
if (isUndefined(this.viewConfig.liveboardId)) {
|
|
24583
|
+
if (isUndefined$1(this.viewConfig.liveboardId)) {
|
|
23540
24584
|
return this.prerenderGeneric();
|
|
23541
24585
|
}
|
|
23542
24586
|
return super.handleRenderForPrerender();
|
|
@@ -23632,7 +24676,7 @@ let LiveboardEmbed$1 = class LiveboardEmbed extends V1Embed {
|
|
|
23632
24676
|
if (this.isRendered) {
|
|
23633
24677
|
this.trigger(HostEvent.Navigate, path.substring(1));
|
|
23634
24678
|
}
|
|
23635
|
-
else if (this.
|
|
24679
|
+
else if (this.getPreRenderConfig().preRenderId) {
|
|
23636
24680
|
this.preRender(true);
|
|
23637
24681
|
}
|
|
23638
24682
|
else {
|
|
@@ -24173,6 +25217,15 @@ function getViewPropsAndListeners(props) {
|
|
|
24173
25217
|
});
|
|
24174
25218
|
}
|
|
24175
25219
|
|
|
25220
|
+
/**
|
|
25221
|
+
* The query mode Spotter uses when answering a question.
|
|
25222
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
25223
|
+
*/
|
|
25224
|
+
var SpotterQueryMode;
|
|
25225
|
+
(function (SpotterQueryMode) {
|
|
25226
|
+
SpotterQueryMode["FAST_SEARCH"] = "fastSearch";
|
|
25227
|
+
SpotterQueryMode["RESEARCH"] = "research";
|
|
25228
|
+
})(SpotterQueryMode || (SpotterQueryMode = {}));
|
|
24176
25229
|
/**
|
|
24177
25230
|
* Embed ThoughtSpot AI Conversation.
|
|
24178
25231
|
* @version SDK: 1.37.0 | ThoughtSpot: 10.9.0.cl
|
|
@@ -24213,18 +25266,12 @@ let SpotterEmbed$1 = class SpotterEmbed extends TsEmbed {
|
|
|
24213
25266
|
*/
|
|
24214
25267
|
async getAppInitData() {
|
|
24215
25268
|
const defaultAppInitData = await super.getAppInitData();
|
|
24216
|
-
|
|
25269
|
+
const sidebarInitData = buildSpotterSidebarAppInitData(defaultAppInitData, this.viewConfig, this.handleError.bind(this));
|
|
25270
|
+
const shareInitData = buildSpotterShareConversationAppInitData(sidebarInitData, this.viewConfig);
|
|
25271
|
+
return buildStarterPromptsAppInitData(shareInitData, this.viewConfig);
|
|
24217
25272
|
}
|
|
24218
25273
|
getEmbedParamsObject() {
|
|
24219
|
-
const {
|
|
24220
|
-
if (!worksheetId) {
|
|
24221
|
-
this.handleError({
|
|
24222
|
-
errorType: ErrorDetailsTypes.VALIDATION_ERROR,
|
|
24223
|
-
message: ERROR_MESSAGE.SPOTTER_EMBED_WORKSHEED_ID_NOT_FOUND,
|
|
24224
|
-
code: EmbedErrorCodes.WORKSHEET_ID_NOT_FOUND,
|
|
24225
|
-
error: ERROR_MESSAGE.SPOTTER_EMBED_WORKSHEED_ID_NOT_FOUND,
|
|
24226
|
-
});
|
|
24227
|
-
}
|
|
25274
|
+
const { searchOptions, disableSourceSelection, hideSourceSelection, dataPanelV2, updatedSpotterExperience, showSpotterLimitations, hideSampleQuestions, runtimeFilters, excludeRuntimeFiltersfromURL, runtimeParameters, excludeRuntimeParametersfromURL, updatedSpotterChatPrompt, showSpotterRadiance, defaultQueryMode, enableStopAnswerGenerationEmbed, spotterChatConfig, spotterAnalystConfig, } = this.viewConfig;
|
|
24228
25275
|
const queryParams = this.getBaseQueryParams();
|
|
24229
25276
|
queryParams[Param.SpotterEnabled] = true;
|
|
24230
25277
|
// Boolean params
|
|
@@ -24234,7 +25281,10 @@ let SpotterEmbed$1 = class SpotterEmbed extends TsEmbed {
|
|
|
24234
25281
|
setParamIfDefined(queryParams, Param.ShowSpotterLimitations, showSpotterLimitations, true);
|
|
24235
25282
|
setParamIfDefined(queryParams, Param.HideSampleQuestions, hideSampleQuestions, true);
|
|
24236
25283
|
setParamIfDefined(queryParams, Param.UpdatedSpotterChatPrompt, updatedSpotterChatPrompt, true);
|
|
25284
|
+
setParamIfDefined(queryParams, Param.ShowSpotterRadiance, showSpotterRadiance, true);
|
|
25285
|
+
setParamIfDefined(queryParams, Param.DefaultQueryMode, defaultQueryMode);
|
|
24237
25286
|
setParamIfDefined(queryParams, Param.EnableStopAnswerGenerationEmbed, enableStopAnswerGenerationEmbed, true);
|
|
25287
|
+
setParamIfDefined(queryParams, Param.AnalystId, spotterAnalystConfig === null || spotterAnalystConfig === void 0 ? void 0 : spotterAnalystConfig.analystId);
|
|
24238
25288
|
// Handle spotterChatConfig params
|
|
24239
25289
|
if (spotterChatConfig) {
|
|
24240
25290
|
const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, spotterFileUploadEnabled, spotterFileUploadFileTypes, enableStarterPrompts, } = spotterChatConfig;
|
|
@@ -24246,11 +25296,18 @@ let SpotterEmbed$1 = class SpotterEmbed extends TsEmbed {
|
|
|
24246
25296
|
queryParams[Param.SpotterFileUploadFileTypes] = JSON.stringify(spotterFileUploadFileTypes);
|
|
24247
25297
|
}
|
|
24248
25298
|
}
|
|
25299
|
+
setParamIfDefined(queryParams, Param.UpdatedSpotterExperience, updatedSpotterExperience, true);
|
|
24249
25300
|
return queryParams;
|
|
24250
25301
|
}
|
|
24251
25302
|
getIframeSrc() {
|
|
24252
|
-
const { worksheetId, searchOptions, runtimeFilters, excludeRuntimeFiltersfromURL, runtimeParameters, excludeRuntimeParametersfromURL, } = this.viewConfig;
|
|
24253
|
-
|
|
25303
|
+
const { worksheetId, searchOptions, runtimeFilters, excludeRuntimeFiltersfromURL, runtimeParameters, excludeRuntimeParametersfromURL, sharedConversationId, dataSources, } = this.viewConfig;
|
|
25304
|
+
// Deep-link into the read-only shared-conversation reader view when a
|
|
25305
|
+
// shared conversation id is supplied (e.g. a recipient landing from a
|
|
25306
|
+
// host-configured CONVERSATION_URL share link); otherwise the normal
|
|
25307
|
+
// Spotter conversation surface.
|
|
25308
|
+
const path = sharedConversationId
|
|
25309
|
+
? `insights/conv-assist/s/${encodeURIComponent(sharedConversationId)}`
|
|
25310
|
+
: 'insights/conv-assist';
|
|
24254
25311
|
const queryParams = this.getEmbedParamsObject();
|
|
24255
25312
|
let query = '';
|
|
24256
25313
|
const queryParamsString = getQueryParamString(queryParams, true);
|
|
@@ -24266,8 +25323,12 @@ let SpotterEmbed$1 = class SpotterEmbed extends TsEmbed {
|
|
|
24266
25323
|
query += `&${parameterQuery}`;
|
|
24267
25324
|
}
|
|
24268
25325
|
const tsPostHashParams = this.getThoughtSpotPostUrlParams({
|
|
24269
|
-
|
|
24270
|
-
|
|
25326
|
+
...(!(Array.isArray(dataSources) && dataSources.length > 0) && worksheetId
|
|
25327
|
+
&& { worksheet: worksheetId }),
|
|
25328
|
+
...((searchOptions === null || searchOptions === void 0 ? void 0 : searchOptions.searchQuery) && { query: searchOptions.searchQuery }),
|
|
25329
|
+
...(Array.isArray(dataSources)
|
|
25330
|
+
&& dataSources.length > 0
|
|
25331
|
+
&& { dataSources: JSON.stringify(dataSources) }),
|
|
24271
25332
|
});
|
|
24272
25333
|
return `${this.getEmbedBasePath(query)}/embed/${path}${tsPostHashParams}`;
|
|
24273
25334
|
}
|
|
@@ -24315,15 +25376,17 @@ const componentFactory = (EmbedConstructor,
|
|
|
24315
25376
|
// not be destroyed when the component is unmounted.
|
|
24316
25377
|
isPreRenderedComponent = false) => {
|
|
24317
25378
|
const Component = React__default.forwardRef((props, forwardedRef) => {
|
|
25379
|
+
var _a, _b;
|
|
24318
25380
|
const ref = React__default.useRef(null);
|
|
24319
25381
|
const { className, style, ...embedProps } = props;
|
|
24320
25382
|
const { viewConfig, listeners } = getViewPropsAndListeners(embedProps);
|
|
25383
|
+
const preRenderId = (_b = (_a = props.preRenderConfig) === null || _a === void 0 ? void 0 : _a.preRenderId) !== null && _b !== void 0 ? _b : props.preRenderId;
|
|
24321
25384
|
const handleDestroy = (tsEmbed) => {
|
|
24322
25385
|
// do not destroy if it is a preRender component
|
|
24323
25386
|
if (isPreRenderedComponent)
|
|
24324
25387
|
return;
|
|
24325
25388
|
// if component is connected to a preRendered component
|
|
24326
|
-
if (
|
|
25389
|
+
if (preRenderId) {
|
|
24327
25390
|
tsEmbed.hidePreRender();
|
|
24328
25391
|
return;
|
|
24329
25392
|
}
|
|
@@ -24334,7 +25397,7 @@ isPreRenderedComponent = false) => {
|
|
|
24334
25397
|
};
|
|
24335
25398
|
const handleDefaultRendering = (tsEmbed) => {
|
|
24336
25399
|
// if component is connected to a preRendered component
|
|
24337
|
-
if (
|
|
25400
|
+
if (preRenderId) {
|
|
24338
25401
|
tsEmbed.showPreRender();
|
|
24339
25402
|
return;
|
|
24340
25403
|
}
|
|
@@ -24583,7 +25646,7 @@ const PreRenderedConversationEmbed = componentFactory(SpotterEmbed$1, true);
|
|
|
24583
25646
|
* const ref = useEmbedRef();
|
|
24584
25647
|
* useEffect(() => {
|
|
24585
25648
|
* ref.current.trigger(
|
|
24586
|
-
*
|
|
25649
|
+
* HostEvent.UpdateRuntimeFilters,
|
|
24587
25650
|
* [{ columnName: 'name', operator: 'EQ', values: ['value']}]);
|
|
24588
25651
|
* }, [])
|
|
24589
25652
|
* return <LiveboardEmbed ref={ref} liveboardId={<id>} />
|