@thoughtspot/visual-embed-sdk 1.51.0 → 1.51.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 +27 -0
- package/cjs/src/css-variables.d.ts.map +1 -1
- package/cjs/src/embed/app.d.ts +43 -12
- package/cjs/src/embed/app.d.ts.map +1 -1
- package/cjs/src/embed/app.js +29 -3
- package/cjs/src/embed/app.js.map +1 -1
- package/cjs/src/embed/app.spec.js +253 -1
- 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 +171 -1
- package/cjs/src/embed/conversation.d.ts.map +1 -1
- package/cjs/src/embed/conversation.js +4 -2
- package/cjs/src/embed/conversation.js.map +1 -1
- package/cjs/src/embed/conversation.spec.js +125 -0
- package/cjs/src/embed/conversation.spec.js.map +1 -1
- package/cjs/src/embed/events.spec.js +3 -0
- package/cjs/src/embed/events.spec.js.map +1 -1
- package/cjs/src/embed/host-events.spec.js +36 -0
- package/cjs/src/embed/host-events.spec.js.map +1 -1
- package/cjs/src/embed/hostEventClient/host-event-client.d.ts +1 -1
- package/cjs/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
- package/cjs/src/embed/hostEventClient/host-event-client.spec.js +18 -0
- package/cjs/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
- package/cjs/src/embed/liveboard.d.ts +40 -13
- package/cjs/src/embed/liveboard.d.ts.map +1 -1
- package/cjs/src/embed/liveboard.js +25 -4
- package/cjs/src/embed/liveboard.js.map +1 -1
- package/cjs/src/embed/liveboard.spec.js +349 -2
- package/cjs/src/embed/liveboard.spec.js.map +1 -1
- package/cjs/src/embed/search.spec.js +28 -0
- package/cjs/src/embed/search.spec.js.map +1 -1
- package/cjs/src/embed/spotter-utils.d.ts +8 -1
- package/cjs/src/embed/spotter-utils.d.ts.map +1 -1
- package/cjs/src/embed/spotter-utils.js +15 -1
- package/cjs/src/embed/spotter-utils.js.map +1 -1
- package/cjs/src/embed/spotter-utils.spec.js +68 -0
- package/cjs/src/embed/spotter-utils.spec.js.map +1 -1
- package/cjs/src/embed/spotter-viz-utils.d.ts +9 -10
- 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/ts-embed.d.ts +97 -9
- package/cjs/src/embed/ts-embed.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.js +76 -35
- package/cjs/src/embed/ts-embed.js.map +1 -1
- package/cjs/src/embed/ts-embed.spec.js +537 -3
- package/cjs/src/embed/ts-embed.spec.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 +3 -2
- package/cjs/src/index.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/types.d.ts +330 -18
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +182 -12
- package/cjs/src/types.js.map +1 -1
- package/cjs/src/utils.d.ts +5 -0
- package/cjs/src/utils.d.ts.map +1 -1
- package/cjs/src/utils.js +19 -1
- package/cjs/src/utils.js.map +1 -1
- package/cjs/src/utils.spec.js +37 -0
- package/cjs/src/utils.spec.js.map +1 -1
- package/dist/{index-aBzH5ZwF.js → index-D8_Zs-Nr.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 +27 -0
- package/dist/src/css-variables.d.ts.map +1 -1
- package/dist/src/embed/app.d.ts +43 -12
- 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 +171 -1
- package/dist/src/embed/conversation.d.ts.map +1 -1
- package/dist/src/embed/hostEventClient/host-event-client.d.ts +1 -1
- package/dist/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
- package/dist/src/embed/liveboard.d.ts +40 -13
- package/dist/src/embed/liveboard.d.ts.map +1 -1
- package/dist/src/embed/spotter-utils.d.ts +8 -1
- package/dist/src/embed/spotter-utils.d.ts.map +1 -1
- package/dist/src/embed/spotter-viz-utils.d.ts +9 -10
- package/dist/src/embed/spotter-viz-utils.d.ts.map +1 -1
- package/dist/src/embed/ts-embed.d.ts +97 -9
- package/dist/src/embed/ts-embed.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/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 +330 -18
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils.d.ts +5 -0
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/tsembed-react.es.js +354 -64
- package/dist/tsembed-react.js +353 -63
- package/dist/tsembed.es.js +414 -126
- package/dist/tsembed.js +416 -128
- package/dist/visual-embed-sdk-react-full.d.ts +777 -90
- package/dist/visual-embed-sdk-react.d.ts +773 -89
- package/dist/visual-embed-sdk.d.ts +713 -60
- 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 +27 -0
- package/lib/src/css-variables.d.ts.map +1 -1
- package/lib/src/embed/app.d.ts +43 -12
- package/lib/src/embed/app.d.ts.map +1 -1
- package/lib/src/embed/app.js +30 -4
- package/lib/src/embed/app.js.map +1 -1
- package/lib/src/embed/app.spec.js +253 -1
- 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 +171 -1
- package/lib/src/embed/conversation.d.ts.map +1 -1
- package/lib/src/embed/conversation.js +5 -3
- package/lib/src/embed/conversation.js.map +1 -1
- package/lib/src/embed/conversation.spec.js +125 -0
- package/lib/src/embed/conversation.spec.js.map +1 -1
- package/lib/src/embed/events.spec.js +3 -0
- package/lib/src/embed/events.spec.js.map +1 -1
- package/lib/src/embed/host-events.spec.js +36 -0
- package/lib/src/embed/host-events.spec.js.map +1 -1
- package/lib/src/embed/hostEventClient/host-event-client.d.ts +1 -1
- package/lib/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
- package/lib/src/embed/hostEventClient/host-event-client.spec.js +18 -0
- package/lib/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
- package/lib/src/embed/liveboard.d.ts +40 -13
- package/lib/src/embed/liveboard.d.ts.map +1 -1
- package/lib/src/embed/liveboard.js +25 -4
- package/lib/src/embed/liveboard.js.map +1 -1
- package/lib/src/embed/liveboard.spec.js +349 -2
- package/lib/src/embed/liveboard.spec.js.map +1 -1
- package/lib/src/embed/search.spec.js +28 -0
- package/lib/src/embed/search.spec.js.map +1 -1
- package/lib/src/embed/spotter-utils.d.ts +8 -1
- package/lib/src/embed/spotter-utils.d.ts.map +1 -1
- package/lib/src/embed/spotter-utils.js +13 -0
- package/lib/src/embed/spotter-utils.js.map +1 -1
- package/lib/src/embed/spotter-utils.spec.js +69 -1
- package/lib/src/embed/spotter-utils.spec.js.map +1 -1
- package/lib/src/embed/spotter-viz-utils.d.ts +9 -10
- 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/ts-embed.d.ts +97 -9
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +77 -36
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +537 -3
- package/lib/src/embed/ts-embed.spec.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 +2 -2
- package/lib/src/index.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/types.d.ts +330 -18
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +182 -12
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils.d.ts +5 -0
- package/lib/src/utils.d.ts.map +1 -1
- package/lib/src/utils.js +17 -0
- package/lib/src/utils.js.map +1 -1
- package/lib/src/utils.spec.js +38 -1
- package/lib/src/utils.spec.js.map +1 -1
- package/lib/src/visual-embed-sdk.d.ts +713 -60
- package/package.json +1 -1
- package/src/config.ts +1 -0
- package/src/css-variables.ts +32 -0
- package/src/embed/app.spec.ts +335 -1
- package/src/embed/app.ts +71 -13
- package/src/embed/base.ts +1 -1
- package/src/embed/conversation.spec.ts +136 -0
- package/src/embed/conversation.ts +181 -3
- package/src/embed/events.spec.ts +4 -0
- package/src/embed/host-events.spec.ts +48 -0
- package/src/embed/hostEventClient/host-event-client.spec.ts +34 -0
- package/src/embed/hostEventClient/host-event-client.ts +2 -2
- package/src/embed/liveboard.spec.ts +457 -2
- package/src/embed/liveboard.ts +74 -15
- package/src/embed/search.spec.ts +31 -0
- package/src/embed/spotter-utils.spec.ts +72 -0
- package/src/embed/spotter-utils.ts +21 -1
- package/src/embed/spotter-viz-utils.ts +9 -10
- package/src/embed/ts-embed.spec.ts +699 -3
- package/src/embed/ts-embed.ts +91 -41
- package/src/index.ts +43 -2
- 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/types.ts +329 -16
- package/src/utils.spec.ts +49 -0
- package/src/utils.ts +16 -0
package/dist/tsembed.es.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* @thoughtspot/visual-embed-sdk version 1.51.
|
|
1
|
+
/* @thoughtspot/visual-embed-sdk version 1.51.2 */
|
|
2
2
|
'use client';
|
|
3
3
|
function _mergeNamespaces(n, m) {
|
|
4
4
|
m.forEach(function (e) {
|
|
@@ -518,7 +518,7 @@ var EmbedEvent;
|
|
|
518
518
|
* @returns nonFilteredColumns - The columns that were not filtered
|
|
519
519
|
* @example
|
|
520
520
|
* ```js
|
|
521
|
-
* searchEmbed.on(EmbedEvent.
|
|
521
|
+
* searchEmbed.on(EmbedEvent.Drilldown, {
|
|
522
522
|
* points: {
|
|
523
523
|
* clickedPoint,
|
|
524
524
|
* selectedPoints: selectedPoint
|
|
@@ -579,7 +579,7 @@ var EmbedEvent;
|
|
|
579
579
|
* @version SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 8.4.1.sw
|
|
580
580
|
* @example
|
|
581
581
|
* ```js
|
|
582
|
-
* appEmbed.on(EmbedEvent.
|
|
582
|
+
* appEmbed.on(EmbedEvent.CustomAction, payload => {
|
|
583
583
|
* const data = payload.data;
|
|
584
584
|
* if (data.id === 'insert Custom Action ID here') {
|
|
585
585
|
* console.log('Custom Action event:', data.embedAnswerData);
|
|
@@ -845,8 +845,8 @@ var EmbedEvent;
|
|
|
845
845
|
*
|
|
846
846
|
* **Note**: This event is deprecated in v1.21.0.
|
|
847
847
|
* To fire an event when a download action is initiated on a chart or table,
|
|
848
|
-
* use `EmbedEvent.DownloadAsPng`, `EmbedEvent.
|
|
849
|
-
* `EmbedEvent.
|
|
848
|
+
* use `EmbedEvent.DownloadAsPng`, `EmbedEvent.DownloadAsPdf`,
|
|
849
|
+
* `EmbedEvent.DownloadAsCsv`, or `EmbedEvent.DownloadAsXlsx`
|
|
850
850
|
* @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
|
|
851
851
|
* @example
|
|
852
852
|
* ```js
|
|
@@ -896,10 +896,10 @@ var EmbedEvent;
|
|
|
896
896
|
* @example
|
|
897
897
|
* ```js
|
|
898
898
|
* //emit when action starts
|
|
899
|
-
* searchEmbed.on(EmbedEvent.
|
|
899
|
+
* searchEmbed.on(EmbedEvent.DownloadAsCsv, payload => {
|
|
900
900
|
* console.log('download CSV', payload)}, {start: true })
|
|
901
901
|
* //emit when action ends
|
|
902
|
-
* searchEmbed.on(EmbedEvent.
|
|
902
|
+
* searchEmbed.on(EmbedEvent.DownloadAsCsv, payload => {
|
|
903
903
|
* console.log('download CSV', payload)})
|
|
904
904
|
* ```
|
|
905
905
|
*/
|
|
@@ -2356,6 +2356,7 @@ var HostEvent;
|
|
|
2356
2356
|
* const url = await appEmbed.trigger(HostEvent.GetIframeUrl, {}, ContextType.Answer);
|
|
2357
2357
|
* console.log("iFrameURL", url);
|
|
2358
2358
|
* ```
|
|
2359
|
+
* @returns iframeUrl - The URL currently loaded in the embedded iframe.
|
|
2359
2360
|
* @version SDK: 1.35.0 | ThoughtSpot: 10.4.0.cl
|
|
2360
2361
|
*/
|
|
2361
2362
|
HostEvent["GetIframeUrl"] = "GetIframeUrl";
|
|
@@ -2522,6 +2523,41 @@ var HostEvent;
|
|
|
2522
2523
|
* @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl
|
|
2523
2524
|
*/
|
|
2524
2525
|
HostEvent["OpenFilter"] = "openFilter";
|
|
2526
|
+
/**
|
|
2527
|
+
* Open the add-filter modal of a Liveboard, the same dialog that the
|
|
2528
|
+
* *Add filter* button in the Liveboard edit header opens, so the host
|
|
2529
|
+
* app can start the add-filter flow from its own UI.
|
|
2530
|
+
*
|
|
2531
|
+
* The Liveboard must be in edit mode; the event is ignored otherwise.
|
|
2532
|
+
* Hiding the *Add filter* button with `hiddenActions:
|
|
2533
|
+
* [Action.AddFilter]` does not block this event, but disabling it with
|
|
2534
|
+
* `disabledActions` does.
|
|
2535
|
+
*
|
|
2536
|
+
* Unlike {@link HostEvent.OpenFilter}, which opens the panel of an
|
|
2537
|
+
* existing filter, this event starts the creation of a new filter.
|
|
2538
|
+
* @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
|
|
2539
|
+
* @example
|
|
2540
|
+
* ```js
|
|
2541
|
+
* liveboardEmbed.trigger(HostEvent.OpenAddFilterModal);
|
|
2542
|
+
* ```
|
|
2543
|
+
*/
|
|
2544
|
+
HostEvent["OpenAddFilterModal"] = "openAddFilterModal";
|
|
2545
|
+
/**
|
|
2546
|
+
* Open the add-parameter panel of a Liveboard, the same panel that the
|
|
2547
|
+
* *Add parameter* button in the Liveboard edit header opens.
|
|
2548
|
+
* Mirrors {@link HostEvent.OpenAddFilterModal} for parameters.
|
|
2549
|
+
*
|
|
2550
|
+
* The Liveboard must be in edit mode; the event is ignored otherwise.
|
|
2551
|
+
* Hiding the *Add parameter* button with `hiddenActions:
|
|
2552
|
+
* [Action.AddParameter]` does not block this event, but disabling it
|
|
2553
|
+
* with `disabledActions` does.
|
|
2554
|
+
* @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
|
|
2555
|
+
* @example
|
|
2556
|
+
* ```js
|
|
2557
|
+
* liveboardEmbed.trigger(HostEvent.OpenAddParameterModal);
|
|
2558
|
+
* ```
|
|
2559
|
+
*/
|
|
2560
|
+
HostEvent["OpenAddParameterModal"] = "openAddParameterModal";
|
|
2525
2561
|
/**
|
|
2526
2562
|
* Open the parameter panel for a particular parameter on a Liveboard.
|
|
2527
2563
|
* Mirrors {@link HostEvent.OpenFilter} for parameters.
|
|
@@ -2603,6 +2639,10 @@ var HostEvent;
|
|
|
2603
2639
|
* liveboardEmbed.trigger(HostEvent.getExportRequestForCurrentPinboard).then(
|
|
2604
2640
|
* data=>console.log(data))
|
|
2605
2641
|
* ```
|
|
2642
|
+
* @returns data - Object with a `v2Content` string: the export request
|
|
2643
|
+
* payload for the current Liveboard.
|
|
2644
|
+
* @returns type - The passthrough event name,
|
|
2645
|
+
* `getExportRequestForCurrentPinboard`.
|
|
2606
2646
|
* @version SDK: 1.13.0 | ThoughtSpot: 8.5.0.cl, 8.8.1.sw
|
|
2607
2647
|
*/
|
|
2608
2648
|
HostEvent["getExportRequestForCurrentPinboard"] = "getExportRequestForCurrentPinboard";
|
|
@@ -2705,6 +2745,9 @@ var HostEvent;
|
|
|
2705
2745
|
* }, ContextType.Spotter);
|
|
2706
2746
|
* ```
|
|
2707
2747
|
*
|
|
2748
|
+
* @returns liveboardId - GUID of the Liveboard the Answer was pinned to.
|
|
2749
|
+
* @returns tabId - GUID of the tab within that Liveboard.
|
|
2750
|
+
* @returns vizId - GUID of the newly created visualization.
|
|
2708
2751
|
* @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
|
|
2709
2752
|
*/
|
|
2710
2753
|
HostEvent["Pin"] = "pin";
|
|
@@ -2743,13 +2786,13 @@ var HostEvent;
|
|
|
2743
2786
|
* Trigger the **Manage schedule** action on an embedded Liveboard
|
|
2744
2787
|
* @example
|
|
2745
2788
|
* ```js
|
|
2746
|
-
* liveboardEmbed.trigger(HostEvent.
|
|
2789
|
+
* liveboardEmbed.trigger(HostEvent.SchedulesList)
|
|
2747
2790
|
* ```
|
|
2748
2791
|
* @example
|
|
2749
2792
|
* ```js
|
|
2750
2793
|
* // Manage schedules from liveboard context
|
|
2751
2794
|
* import { ContextType } from '@thoughtspot/visual-embed-sdk';
|
|
2752
|
-
* liveboardEmbed.trigger(HostEvent.
|
|
2795
|
+
* liveboardEmbed.trigger(HostEvent.SchedulesList, {}, ContextType.Liveboard);
|
|
2753
2796
|
* ```
|
|
2754
2797
|
* @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
|
|
2755
2798
|
*/
|
|
@@ -3194,6 +3237,7 @@ var HostEvent;
|
|
|
3194
3237
|
* console.log(tml.answer);
|
|
3195
3238
|
* });
|
|
3196
3239
|
* ```
|
|
3240
|
+
* @returns The TML representation of the current Answer, as an object.
|
|
3197
3241
|
* @version SDK: 1.18.0 | ThoughtSpot: 8.10.0.cl, 9.0.1.sw
|
|
3198
3242
|
* @important
|
|
3199
3243
|
*/
|
|
@@ -3638,6 +3682,8 @@ var HostEvent;
|
|
|
3638
3682
|
* const data = await liveboardEmbed.trigger(HostEvent.GetFilters, {}, ContextType.Liveboard);
|
|
3639
3683
|
* console.log('filters', data);
|
|
3640
3684
|
* ```
|
|
3685
|
+
* @returns liveboardFilters - Filters applied on the Liveboard.
|
|
3686
|
+
* @returns runtimeFilters - Runtime filters applied on the Liveboard.
|
|
3641
3687
|
* @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
|
|
3642
3688
|
*/
|
|
3643
3689
|
HostEvent["GetFilters"] = "getFilters";
|
|
@@ -3787,6 +3833,9 @@ var HostEvent;
|
|
|
3787
3833
|
* console.log('tabs', tabDetails);
|
|
3788
3834
|
* });
|
|
3789
3835
|
* ```
|
|
3836
|
+
* @returns orderedTabIds - Tab GUIDs in the order they appear.
|
|
3837
|
+
* @returns numberOfTabs - Total number of tabs on the Liveboard.
|
|
3838
|
+
* @returns Tabs - Tab details, each with at least `id` and `name`.
|
|
3790
3839
|
* @version SDK: 1.26.0 | ThoughtSpot: 9.7.0.cl
|
|
3791
3840
|
*/
|
|
3792
3841
|
HostEvent["GetTabs"] = "getTabs";
|
|
@@ -3809,6 +3858,9 @@ var HostEvent;
|
|
|
3809
3858
|
* console.log('groups', groupDetails);
|
|
3810
3859
|
* });
|
|
3811
3860
|
* ```
|
|
3861
|
+
* @returns orderedGroupIds - Group GUIDs in the order they appear.
|
|
3862
|
+
* @returns numberOfGroups - Total number of groups on the Liveboard.
|
|
3863
|
+
* @returns Groups - Group details, each with at least `id` and `name`.
|
|
3812
3864
|
* @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
|
|
3813
3865
|
*/
|
|
3814
3866
|
HostEvent["GetGroups"] = "getGroups";
|
|
@@ -3883,6 +3935,9 @@ var HostEvent;
|
|
|
3883
3935
|
* // Alternative direct usage (not recommended)
|
|
3884
3936
|
* const {session} = await embed.trigger( HostEvent.GetAnswerSession )
|
|
3885
3937
|
* ```
|
|
3938
|
+
* @returns session - Session identifier for the Answer, for use with the
|
|
3939
|
+
* `AnswerService`.
|
|
3940
|
+
* @returns embedAnswerData - Data backing the Answer, when available.
|
|
3886
3941
|
* @version SDK: 1.26.0 | ThoughtSpot: 9.10.0.cl, 10.1.0.sw
|
|
3887
3942
|
*/
|
|
3888
3943
|
HostEvent["GetAnswerSession"] = "getAnswerSession";
|
|
@@ -4016,12 +4071,16 @@ var HostEvent;
|
|
|
4016
4071
|
* console.log('parameters', parameters);
|
|
4017
4072
|
* });
|
|
4018
4073
|
* ```
|
|
4074
|
+
* @returns parameters - Parameters currently applied on the Liveboard.
|
|
4019
4075
|
* @version SDK: 1.29.0 | ThoughtSpot: 10.1.0.cl, 10.1.0.sw
|
|
4020
4076
|
*/
|
|
4021
4077
|
HostEvent["GetParameters"] = "GetParameters";
|
|
4022
4078
|
/**
|
|
4023
4079
|
* Triggers an event to update a personalized view of a Liveboard.
|
|
4024
|
-
* This event is deprecated. Use {@link HostEvent.
|
|
4080
|
+
* This event is deprecated. Use {@link HostEvent.SelectPersonalizedView} instead,
|
|
4081
|
+
* which additionally accepts a `viewName`, resets to the original view when
|
|
4082
|
+
* called with an empty payload, and reports an error when a named view
|
|
4083
|
+
* cannot be found.
|
|
4025
4084
|
* ```js
|
|
4026
4085
|
* liveboardEmbed.trigger(HostEvent.UpdatePersonalisedView, {viewId: '1234'})
|
|
4027
4086
|
* ```
|
|
@@ -4039,10 +4098,15 @@ var HostEvent;
|
|
|
4039
4098
|
HostEvent["UpdatePersonalisedView"] = "UpdatePersonalisedView";
|
|
4040
4099
|
/**
|
|
4041
4100
|
* Triggers an event to update a personalized view of a Liveboard.
|
|
4101
|
+
* This event is deprecated. Use {@link HostEvent.SelectPersonalizedView} instead,
|
|
4102
|
+
* which additionally accepts a `viewName`, resets to the original view when
|
|
4103
|
+
* called with an empty payload, and reports an error when a named view
|
|
4104
|
+
* cannot be found.
|
|
4042
4105
|
* ```js
|
|
4043
4106
|
* liveboardEmbed.trigger(HostEvent.UpdatePersonalisedView, {viewId: '1234'})
|
|
4044
4107
|
* ```
|
|
4045
4108
|
* @version SDK: 1.48.0 | ThoughtSpot: 26.5.0.cl
|
|
4109
|
+
* @deprecated SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
|
|
4046
4110
|
*/
|
|
4047
4111
|
HostEvent["UpdatePersonalizedView"] = "UpdatePersonalisedView";
|
|
4048
4112
|
/**
|
|
@@ -4145,6 +4209,10 @@ var HostEvent;
|
|
|
4145
4209
|
* description: "Generated from Spotter"
|
|
4146
4210
|
* }, ContextType.Spotter);
|
|
4147
4211
|
* ```
|
|
4212
|
+
* @returns answerId - GUID of the saved Answer.
|
|
4213
|
+
* @returns saveResponse - Raw response from the save operation.
|
|
4214
|
+
* @returns shareResponse - Raw response from the share operation, when the
|
|
4215
|
+
* Answer was also made discoverable.
|
|
4148
4216
|
* @version SDK: 1.36.0 | ThoughtSpot: 10.6.0.cl
|
|
4149
4217
|
*/
|
|
4150
4218
|
HostEvent["SaveAnswer"] = "saveAnswer";
|
|
@@ -4626,6 +4694,7 @@ var Param;
|
|
|
4626
4694
|
Param["NumberFormatLocale"] = "numberFormatLocale";
|
|
4627
4695
|
Param["CurrencyFormat"] = "currencyFormat";
|
|
4628
4696
|
Param["Enable2ColumnLayout"] = "enable2ColumnLayout";
|
|
4697
|
+
Param["IsLiveboardAlwaysOn12ColLayout"] = "isLiveboardAlwaysOn12ColLayout";
|
|
4629
4698
|
Param["IsFullAppEmbed"] = "isFullAppEmbed";
|
|
4630
4699
|
Param["IsOnBeforeGetVizDataInterceptEnabled"] = "isOnBeforeGetVizDataInterceptEnabled";
|
|
4631
4700
|
Param["FocusSearchBarOnRender"] = "focusSearchBarOnRender";
|
|
@@ -4649,6 +4718,7 @@ var Param;
|
|
|
4649
4718
|
Param["PrimaryAction"] = "primaryAction";
|
|
4650
4719
|
Param["isSpotterAgentEmbed"] = "isSpotterAgentEmbed";
|
|
4651
4720
|
Param["IsLiveboardStylingAndGroupingEnabled"] = "isLiveboardStylingAndGroupingEnabled";
|
|
4721
|
+
Param["LiveboardGutter"] = "liveboardGutter";
|
|
4652
4722
|
Param["IsLazyLoadingForEmbedEnabled"] = "isLazyLoadingForEmbedEnabled";
|
|
4653
4723
|
Param["RootMarginForLazyLoad"] = "rootMarginForLazyLoad";
|
|
4654
4724
|
Param["isPNGInScheduledEmailsEnabled"] = "isPNGInScheduledEmailsEnabled";
|
|
@@ -4684,14 +4754,17 @@ var Param;
|
|
|
4684
4754
|
Param["IsStarterPromptsEnabled"] = "enableStarterPrompts";
|
|
4685
4755
|
Param["UpdatedSpotterExperience"] = "updatedSpotterExperience";
|
|
4686
4756
|
Param["SpotterDataSources"] = "spotterDataSources";
|
|
4757
|
+
Param["AnalystId"] = "analystId";
|
|
4758
|
+
Param["OpenSpotterOnLiveboardByDefault"] = "openSpotterOnLiveboardByDefault";
|
|
4687
4759
|
})(Param || (Param = {}));
|
|
4688
4760
|
/**
|
|
4689
4761
|
* ThoughtSpot application pages include actions and menu commands
|
|
4690
4762
|
* for various user-initiated operations. These actions are represented
|
|
4691
4763
|
* as enumeration members in the SDK. To control actions in the embedded view:
|
|
4692
|
-
* - disabledActions — the action is grayed out and still visible, but non-interactive
|
|
4693
|
-
* - hiddenActions — the action is completely removed from
|
|
4694
|
-
* - visibleActions — allowlist, only these actions
|
|
4764
|
+
* - disabledActions — the action is grayed out and still visible, but non-interactive
|
|
4765
|
+
* (user can see but not click). - hiddenActions — the action is completely removed from
|
|
4766
|
+
* the UI (user cannot see it at all). - visibleActions — allowlist, only these actions
|
|
4767
|
+
* are shown; all others are hidden.
|
|
4695
4768
|
*
|
|
4696
4769
|
* Use disabledActions to disable (gray out) an action.
|
|
4697
4770
|
* Use hiddenActions to hide (fully remove) an action.
|
|
@@ -4745,6 +4818,17 @@ var Action;
|
|
|
4745
4818
|
* ```
|
|
4746
4819
|
*/
|
|
4747
4820
|
Action["SaveAsView"] = "saveAsView";
|
|
4821
|
+
/**
|
|
4822
|
+
* The **EditInputTable** action on a Liveboard
|
|
4823
|
+
* page. Allows users to edit an input table used in an Answer directly from
|
|
4824
|
+
* a Liveboard.
|
|
4825
|
+
* @example
|
|
4826
|
+
* ```js
|
|
4827
|
+
* disabledActions: [Action.EditInputTable]
|
|
4828
|
+
* ```
|
|
4829
|
+
* @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
|
|
4830
|
+
*/
|
|
4831
|
+
Action["EditInputTable"] = "editInputTable";
|
|
4748
4832
|
/**
|
|
4749
4833
|
* The **Make a copy** action on a Liveboard or Answer
|
|
4750
4834
|
* page. Creates a copy of the Liveboard.
|
|
@@ -6062,6 +6146,10 @@ var Action;
|
|
|
6062
6146
|
* The **Add to Coaching** feature allows adding reference questions and
|
|
6063
6147
|
* business terms to improve Spotter’s responses. This feature is generally available
|
|
6064
6148
|
* (GA) from version 26.2.0.cl and enabled by default on embed deployments.
|
|
6149
|
+
*
|
|
6150
|
+
* This action governs both the answer-card **Add to memory** CTA and its
|
|
6151
|
+
* Spotter 3 successor, the response-footer **Remember this** CTA
|
|
6152
|
+
* (they are mutually exclusive).
|
|
6065
6153
|
* @example
|
|
6066
6154
|
* ```js
|
|
6067
6155
|
* hiddenAction: [Action.InConversationTraining]
|
|
@@ -6442,6 +6530,56 @@ var Action;
|
|
|
6442
6530
|
* @version SDK: 1.48.0 | ThoughtSpot Cloud: 26.5.0.cl
|
|
6443
6531
|
*/
|
|
6444
6532
|
Action["SpotterChatModeSwitcher"] = "spotterChatModeSwitcher";
|
|
6533
|
+
/**
|
|
6534
|
+
* The **Basic Search** starter prompt pill.
|
|
6535
|
+
*
|
|
6536
|
+
* Starter prompt pills are the row of category buttons shown above the
|
|
6537
|
+
* Spotter chat input before a conversation starts. They give a new user
|
|
6538
|
+
* ready-made questions to click instead of typing one from scratch, and
|
|
6539
|
+
* disappear once the conversation begins. There are three, one per action
|
|
6540
|
+
* below.
|
|
6541
|
+
*
|
|
6542
|
+
* Clicking this pill opens a card of suggested simple questions; picking one
|
|
6543
|
+
* submits it to Spotter right away. Visible by default, and hidden along
|
|
6544
|
+
* with the other pills when the surface itself is off (see
|
|
6545
|
+
* {@link SpotterChatViewConfig.starterPrompts}).
|
|
6546
|
+
* @example
|
|
6547
|
+
* ```js
|
|
6548
|
+
* hiddenActions: [Action.QuickSearchPill]
|
|
6549
|
+
* ```
|
|
6550
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
6551
|
+
*/
|
|
6552
|
+
Action["QuickSearchPill"] = "quickSearchPill";
|
|
6553
|
+
/**
|
|
6554
|
+
* The **Deep Analysis** starter prompt pill, next to
|
|
6555
|
+
* {@link Action.QuickSearchPill} above the Spotter chat input.
|
|
6556
|
+
*
|
|
6557
|
+
* Clicking it opens a card of suggested investigative questions ("why did
|
|
6558
|
+
* revenue drop?"). Picking one fills the chat input in Deep Analysis mode
|
|
6559
|
+
* rather than submitting immediately, so the user can edit it first.
|
|
6560
|
+
* Visible by default.
|
|
6561
|
+
* @example
|
|
6562
|
+
* ```js
|
|
6563
|
+
* hiddenActions: [Action.DeepAnalysisPill]
|
|
6564
|
+
* ```
|
|
6565
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
6566
|
+
*/
|
|
6567
|
+
Action["DeepAnalysisPill"] = "deepAnalysisPill";
|
|
6568
|
+
/**
|
|
6569
|
+
* The **Data Literacy** starter prompt pill, next to
|
|
6570
|
+
* {@link Action.QuickSearchPill} above the Spotter chat input.
|
|
6571
|
+
*
|
|
6572
|
+
* Unlike the other two pills it opens no card: clicking it submits a prompt
|
|
6573
|
+
* that describes the data the model can answer over, helping a user who does
|
|
6574
|
+
* not yet know what is in the data source. The prompt text always comes from
|
|
6575
|
+
* ThoughtSpot, so only its label is customizable. Visible by default.
|
|
6576
|
+
* @example
|
|
6577
|
+
* ```js
|
|
6578
|
+
* hiddenActions: [Action.DataLiteracyPill]
|
|
6579
|
+
* ```
|
|
6580
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
6581
|
+
*/
|
|
6582
|
+
Action["DataLiteracyPill"] = "dataLiteracyPill";
|
|
6445
6583
|
/**
|
|
6446
6584
|
* The **Include current period** checkbox for date filters.
|
|
6447
6585
|
* Controls the visibility and availability of the option to include
|
|
@@ -6590,6 +6728,38 @@ var Action;
|
|
|
6590
6728
|
* ```
|
|
6591
6729
|
*/
|
|
6592
6730
|
Action["SpotterAnalystSidebar"] = "spotterAnalystSidebar";
|
|
6731
|
+
/**
|
|
6732
|
+
* Controls visibility and disable state of the analyst list
|
|
6733
|
+
* ("Show all") in the Spotter Analyst interface.
|
|
6734
|
+
* @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
|
|
6735
|
+
* @example
|
|
6736
|
+
* ```js
|
|
6737
|
+
* hiddenActions: [Action.SpotterAnalystList]
|
|
6738
|
+
* disabledActions: [Action.SpotterAnalystList]
|
|
6739
|
+
* ```
|
|
6740
|
+
*/
|
|
6741
|
+
Action["SpotterAnalystList"] = "spotterAnalystList";
|
|
6742
|
+
/**
|
|
6743
|
+
* Controls visibility and disable state of the default Spotter analyst
|
|
6744
|
+
* entry in the Spotter Analyst interface.
|
|
6745
|
+
* @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
|
|
6746
|
+
* @example
|
|
6747
|
+
* ```js
|
|
6748
|
+
* hiddenActions: [Action.SpotterDefaultAnalyst]
|
|
6749
|
+
* disabledActions: [Action.SpotterDefaultAnalyst]
|
|
6750
|
+
* ```
|
|
6751
|
+
*/
|
|
6752
|
+
Action["SpotterDefaultAnalyst"] = "spotterDefaultAnalyst";
|
|
6753
|
+
/**
|
|
6754
|
+
* The **Spotter** button in the Liveboard header.
|
|
6755
|
+
* @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
|
|
6756
|
+
* @example
|
|
6757
|
+
* ```js
|
|
6758
|
+
* hiddenActions: [Action.SpotterOnLiveboard]
|
|
6759
|
+
* disabledActions: [Action.SpotterOnLiveboard]
|
|
6760
|
+
* ```
|
|
6761
|
+
*/
|
|
6762
|
+
Action["SpotterOnLiveboard"] = "spotterOnLiveboard";
|
|
6593
6763
|
})(Action || (Action = {}));
|
|
6594
6764
|
var PrefetchFeatures;
|
|
6595
6765
|
(function (PrefetchFeatures) {
|
|
@@ -7057,7 +7227,7 @@ var TableContentDensity;
|
|
|
7057
7227
|
TableContentDensity["Compact"] = "COMPACT";
|
|
7058
7228
|
})(TableContentDensity || (TableContentDensity = {}));
|
|
7059
7229
|
|
|
7060
|
-
var version$1="1.51.
|
|
7230
|
+
var version$1="1.51.2";var pkg = {version:version$1};
|
|
7061
7231
|
|
|
7062
7232
|
const { version } = pkg;
|
|
7063
7233
|
|
|
@@ -7305,6 +7475,23 @@ const serializeParam = (value) => {
|
|
|
7305
7475
|
}
|
|
7306
7476
|
return JSON.stringify(value);
|
|
7307
7477
|
};
|
|
7478
|
+
/**
|
|
7479
|
+
* Inverse of serializeParam: JSON.parse with fallback to the raw string,
|
|
7480
|
+
* matching how the app parses the same values from the iframe URL.
|
|
7481
|
+
*/
|
|
7482
|
+
const deserializeParam = (value) => {
|
|
7483
|
+
if (typeof value !== 'string')
|
|
7484
|
+
return value;
|
|
7485
|
+
try {
|
|
7486
|
+
const parsed = JSON.parse(value);
|
|
7487
|
+
// Numeric strings stay strings ('123' !== 123), same as the app's
|
|
7488
|
+
// URL parser — param consumers expect string ids/versions.
|
|
7489
|
+
return typeof parsed === 'number' ? value : parsed;
|
|
7490
|
+
}
|
|
7491
|
+
catch (e) {
|
|
7492
|
+
return value;
|
|
7493
|
+
}
|
|
7494
|
+
};
|
|
7308
7495
|
/**
|
|
7309
7496
|
* Convert a value to a string:
|
|
7310
7497
|
* in case of an array, we convert it to CSV.
|
|
@@ -7864,6 +8051,72 @@ const setParamIfDefined = (queryParams, param, value, asBoolean = false) => {
|
|
|
7864
8051
|
}
|
|
7865
8052
|
};
|
|
7866
8053
|
|
|
8054
|
+
/**
|
|
8055
|
+
* Copyright (c) 2023
|
|
8056
|
+
*
|
|
8057
|
+
* Utilities related to reading configuration objects
|
|
8058
|
+
* @summary Config-related utils
|
|
8059
|
+
* @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
|
|
8060
|
+
*/
|
|
8061
|
+
const urlRegex = new RegExp([
|
|
8062
|
+
'(^(https?:)//)?',
|
|
8063
|
+
'(([^:/?#]*)(?::([0-9]+))?)',
|
|
8064
|
+
'(/{0,1}[^?#]*)',
|
|
8065
|
+
'(\\?[^#]*|)',
|
|
8066
|
+
'(#.*|)$', // hash
|
|
8067
|
+
].join(''));
|
|
8068
|
+
/**
|
|
8069
|
+
* Parse and construct the ThoughtSpot hostname or IP address
|
|
8070
|
+
* from the embed configuration object.
|
|
8071
|
+
* @param config
|
|
8072
|
+
*/
|
|
8073
|
+
const getThoughtSpotHost = (config) => {
|
|
8074
|
+
if (!config.thoughtSpotHost) {
|
|
8075
|
+
throw new Error(ERROR_MESSAGE.INVALID_THOUGHTSPOT_HOST);
|
|
8076
|
+
}
|
|
8077
|
+
const urlParts = config.thoughtSpotHost.match(urlRegex);
|
|
8078
|
+
if (!urlParts) {
|
|
8079
|
+
throw new Error(ERROR_MESSAGE.INVALID_THOUGHTSPOT_HOST);
|
|
8080
|
+
}
|
|
8081
|
+
const protocol = urlParts[2] || window.location.protocol;
|
|
8082
|
+
const host = urlParts[3];
|
|
8083
|
+
let path = urlParts[6];
|
|
8084
|
+
// Lose the trailing / if any
|
|
8085
|
+
if (path.charAt(path.length - 1) === '/') {
|
|
8086
|
+
path = path.substring(0, path.length - 1);
|
|
8087
|
+
}
|
|
8088
|
+
// const urlParams = urlParts[7];
|
|
8089
|
+
// const hash = urlParts[8];
|
|
8090
|
+
return `${protocol}//${host}${path}`;
|
|
8091
|
+
};
|
|
8092
|
+
const getV2BasePath = (config) => {
|
|
8093
|
+
if (config.basepath) {
|
|
8094
|
+
return config.basepath;
|
|
8095
|
+
}
|
|
8096
|
+
const tsHost = getThoughtSpotHost(config);
|
|
8097
|
+
// This is to handle when e2e's. Search is run on pods for
|
|
8098
|
+
// comp-blink-test-pipeline with baseUrl=https://localhost:8443.
|
|
8099
|
+
// This is to handle when the developer is developing in their local
|
|
8100
|
+
// environment.
|
|
8101
|
+
if (tsHost.includes('://localhost') && !tsHost.includes(':8443')) {
|
|
8102
|
+
return '';
|
|
8103
|
+
}
|
|
8104
|
+
return 'v2';
|
|
8105
|
+
};
|
|
8106
|
+
/**
|
|
8107
|
+
* It is a good idea to keep URLs under 2000 chars.
|
|
8108
|
+
* If this is ever breached, since we pass view configuration through
|
|
8109
|
+
* URL params, we would like to log a warning.
|
|
8110
|
+
* Reference: https://stackoverflow.com/questions/417142/what-is-the-maximum-length-of-a-url-in-different-browsers
|
|
8111
|
+
*/
|
|
8112
|
+
const URL_MAX_LENGTH = 2000;
|
|
8113
|
+
/**
|
|
8114
|
+
* The default CSS dimensions of the embedded app
|
|
8115
|
+
*/
|
|
8116
|
+
const DEFAULT_EMBED_WIDTH = '100%';
|
|
8117
|
+
const DEFAULT_EMBED_HEIGHT = '100%';
|
|
8118
|
+
const DEFAULT_LAZY_LOADING_MARGIN = '500px 0px';
|
|
8119
|
+
|
|
7867
8120
|
/** Used for built-in method references. */
|
|
7868
8121
|
var objectProto$d = Object.prototype;
|
|
7869
8122
|
|
|
@@ -9706,7 +9959,7 @@ class AnswerService {
|
|
|
9706
9959
|
async getTML() {
|
|
9707
9960
|
const { object } = await this.executeQuery(getAnswerTML, {});
|
|
9708
9961
|
const edoc = object[0].edoc;
|
|
9709
|
-
const YAML = await import('./index-
|
|
9962
|
+
const YAML = await import('./index-D8_Zs-Nr.js');
|
|
9710
9963
|
const parsedDoc = YAML.parse(edoc);
|
|
9711
9964
|
return {
|
|
9712
9965
|
answer: {
|
|
@@ -12592,71 +12845,6 @@ const getCustomActions = (customActions) => {
|
|
|
12592
12845
|
};
|
|
12593
12846
|
};
|
|
12594
12847
|
|
|
12595
|
-
/**
|
|
12596
|
-
* Copyright (c) 2023
|
|
12597
|
-
*
|
|
12598
|
-
* Utilities related to reading configuration objects
|
|
12599
|
-
* @summary Config-related utils
|
|
12600
|
-
* @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
|
|
12601
|
-
*/
|
|
12602
|
-
const urlRegex = new RegExp([
|
|
12603
|
-
'(^(https?:)//)?',
|
|
12604
|
-
'(([^:/?#]*)(?::([0-9]+))?)',
|
|
12605
|
-
'(/{0,1}[^?#]*)',
|
|
12606
|
-
'(\\?[^#]*|)',
|
|
12607
|
-
'(#.*|)$', // hash
|
|
12608
|
-
].join(''));
|
|
12609
|
-
/**
|
|
12610
|
-
* Parse and construct the ThoughtSpot hostname or IP address
|
|
12611
|
-
* from the embed configuration object.
|
|
12612
|
-
* @param config
|
|
12613
|
-
*/
|
|
12614
|
-
const getThoughtSpotHost = (config) => {
|
|
12615
|
-
if (!config.thoughtSpotHost) {
|
|
12616
|
-
throw new Error(ERROR_MESSAGE.INVALID_THOUGHTSPOT_HOST);
|
|
12617
|
-
}
|
|
12618
|
-
const urlParts = config.thoughtSpotHost.match(urlRegex);
|
|
12619
|
-
if (!urlParts) {
|
|
12620
|
-
throw new Error(ERROR_MESSAGE.INVALID_THOUGHTSPOT_HOST);
|
|
12621
|
-
}
|
|
12622
|
-
const protocol = urlParts[2] || window.location.protocol;
|
|
12623
|
-
const host = urlParts[3];
|
|
12624
|
-
let path = urlParts[6];
|
|
12625
|
-
// Lose the trailing / if any
|
|
12626
|
-
if (path.charAt(path.length - 1) === '/') {
|
|
12627
|
-
path = path.substring(0, path.length - 1);
|
|
12628
|
-
}
|
|
12629
|
-
// const urlParams = urlParts[7];
|
|
12630
|
-
// const hash = urlParts[8];
|
|
12631
|
-
return `${protocol}//${host}${path}`;
|
|
12632
|
-
};
|
|
12633
|
-
const getV2BasePath = (config) => {
|
|
12634
|
-
if (config.basepath) {
|
|
12635
|
-
return config.basepath;
|
|
12636
|
-
}
|
|
12637
|
-
const tsHost = getThoughtSpotHost(config);
|
|
12638
|
-
// This is to handle when e2e's. Search is run on pods for
|
|
12639
|
-
// comp-blink-test-pipeline with baseUrl=https://localhost:8443.
|
|
12640
|
-
// This is to handle when the developer is developing in their local
|
|
12641
|
-
// environment.
|
|
12642
|
-
if (tsHost.includes('://localhost') && !tsHost.includes(':8443')) {
|
|
12643
|
-
return '';
|
|
12644
|
-
}
|
|
12645
|
-
return 'v2';
|
|
12646
|
-
};
|
|
12647
|
-
/**
|
|
12648
|
-
* It is a good idea to keep URLs under 2000 chars.
|
|
12649
|
-
* If this is ever breached, since we pass view configuration through
|
|
12650
|
-
* URL params, we would like to log a warning.
|
|
12651
|
-
* Reference: https://stackoverflow.com/questions/417142/what-is-the-maximum-length-of-a-url-in-different-browsers
|
|
12652
|
-
*/
|
|
12653
|
-
const URL_MAX_LENGTH = 2000;
|
|
12654
|
-
/**
|
|
12655
|
-
* The default CSS dimensions of the embedded app
|
|
12656
|
-
*/
|
|
12657
|
-
const DEFAULT_EMBED_WIDTH = '100%';
|
|
12658
|
-
const DEFAULT_EMBED_HEIGHT = '100%';
|
|
12659
|
-
|
|
12660
12848
|
var Config = {
|
|
12661
12849
|
DEBUG: false,
|
|
12662
12850
|
LIB_VERSION: '2.47.0'
|
|
@@ -20218,7 +20406,7 @@ const getIsInitCalled = () => { var _a; return !!((_a = getValueFromWindow(initF
|
|
|
20218
20406
|
/**
|
|
20219
20407
|
* Initializes the Visual Embed SDK globally and perform
|
|
20220
20408
|
* authentication if applicable. This function needs to be called before any ThoughtSpot
|
|
20221
|
-
* component like Liveboard etc can be embedded. But need not wait for
|
|
20409
|
+
* component like Liveboard etc can be embedded. But need not wait for AuthStatus.SUCCESS
|
|
20222
20410
|
* to actually embed. That is handled internally.
|
|
20223
20411
|
* @param embedConfig The configuration object containing ThoughtSpot host,
|
|
20224
20412
|
* authentication mechanism and so on.
|
|
@@ -21198,7 +21386,7 @@ class TsEmbed {
|
|
|
21198
21386
|
*/
|
|
21199
21387
|
this.shouldEncodeUrlQueryParams = false;
|
|
21200
21388
|
this.defaultHiddenActions = [Action.ReportError];
|
|
21201
|
-
this.preRenderContainerEl =
|
|
21389
|
+
this.preRenderContainerEl = document.body;
|
|
21202
21390
|
this.containerScrollListener = null;
|
|
21203
21391
|
/**
|
|
21204
21392
|
* Handler for fullscreen change events
|
|
@@ -21676,10 +21864,14 @@ class TsEmbed {
|
|
|
21676
21864
|
return `${basePath}#`;
|
|
21677
21865
|
}
|
|
21678
21866
|
async getUpdateEmbedParamsObject() {
|
|
21679
|
-
|
|
21867
|
+
const queryParams = this.getEmbedParamsObject();
|
|
21868
|
+
// Values are URL-serialized (e.g. dataSources as '["guid"]'); parse
|
|
21869
|
+
// them back so the event payload matches a URL load (SCAL-334713).
|
|
21870
|
+
Object.keys(queryParams).forEach((key) => {
|
|
21871
|
+
queryParams[key] = deserializeParam(queryParams[key]);
|
|
21872
|
+
});
|
|
21680
21873
|
const appInitData = await this.getAppInitData();
|
|
21681
|
-
|
|
21682
|
-
return queryParams;
|
|
21874
|
+
return { ...this.viewConfig, ...queryParams, ...appInitData };
|
|
21683
21875
|
}
|
|
21684
21876
|
/**
|
|
21685
21877
|
* Common query params set for all the embed modes.
|
|
@@ -21886,11 +22078,27 @@ class TsEmbed {
|
|
|
21886
22078
|
iFrame.name = 'ThoughtSpot Embedded Analytics';
|
|
21887
22079
|
return iFrame;
|
|
21888
22080
|
}
|
|
22081
|
+
/**
|
|
22082
|
+
* Returns a merged {@link PreRenderConfig} object where each shared key
|
|
22083
|
+
* prefers `preRenderConfig.key` over the top-level `viewConfig.key` for
|
|
22084
|
+
* backward compatibility.
|
|
22085
|
+
*/
|
|
22086
|
+
getPreRenderConfig() {
|
|
22087
|
+
var _a, _b, _c, _d;
|
|
22088
|
+
const viewCfg = this.viewConfig;
|
|
22089
|
+
const preRenderCfg = (_a = viewCfg.preRenderConfig) !== null && _a !== void 0 ? _a : {};
|
|
22090
|
+
return {
|
|
22091
|
+
...preRenderCfg,
|
|
22092
|
+
preRenderId: (_b = preRenderCfg.preRenderId) !== null && _b !== void 0 ? _b : viewCfg.preRenderId,
|
|
22093
|
+
preRenderContainer: (_c = preRenderCfg.preRenderContainer) !== null && _c !== void 0 ? _c : viewCfg.preRenderContainer,
|
|
22094
|
+
doNotTrackPreRenderSize: (_d = preRenderCfg.doNotTrackPreRenderSize) !== null && _d !== void 0 ? _d : viewCfg.doNotTrackPreRenderSize,
|
|
22095
|
+
};
|
|
22096
|
+
}
|
|
21889
22097
|
/**
|
|
21890
22098
|
* Returns true if this embed instance is configured for pre-rendering.
|
|
21891
22099
|
*/
|
|
21892
22100
|
isPreRenderEmbed() {
|
|
21893
|
-
return !!this.
|
|
22101
|
+
return !!this.getPreRenderConfig().preRenderId;
|
|
21894
22102
|
}
|
|
21895
22103
|
handleInsertionIntoDOM(child) {
|
|
21896
22104
|
if (this.isPreRenderEmbed()) {
|
|
@@ -22026,6 +22234,7 @@ class TsEmbed {
|
|
|
22026
22234
|
this.setIframeElement(this.preRenderChild);
|
|
22027
22235
|
}
|
|
22028
22236
|
this.isRendered = true;
|
|
22237
|
+
this.inheritPreRenderContainer();
|
|
22029
22238
|
}
|
|
22030
22239
|
return this.isPreRenderConnected();
|
|
22031
22240
|
}
|
|
@@ -22076,7 +22285,7 @@ class TsEmbed {
|
|
|
22076
22285
|
*/
|
|
22077
22286
|
resolvePreRenderContainerTarget() {
|
|
22078
22287
|
var _a;
|
|
22079
|
-
const containerConfig = this.
|
|
22288
|
+
const containerConfig = this.getPreRenderConfig().preRenderContainer;
|
|
22080
22289
|
let container = null;
|
|
22081
22290
|
if (typeof containerConfig === 'string') {
|
|
22082
22291
|
try {
|
|
@@ -22094,15 +22303,35 @@ class TsEmbed {
|
|
|
22094
22303
|
}
|
|
22095
22304
|
return (_a = container) !== null && _a !== void 0 ? _a : document.body;
|
|
22096
22305
|
}
|
|
22306
|
+
inheritPreRenderContainer() {
|
|
22307
|
+
var _a;
|
|
22308
|
+
const preRenderedObject = this.getPreRenderObj();
|
|
22309
|
+
if (!preRenderedObject || preRenderedObject === this) {
|
|
22310
|
+
return;
|
|
22311
|
+
}
|
|
22312
|
+
const ownerContainer = (_a = preRenderedObject.preRenderContainerEl) !== null && _a !== void 0 ? _a : document.body;
|
|
22313
|
+
if (this.getPreRenderConfig().preRenderContainer
|
|
22314
|
+
&& this.resolvePreRenderContainerTarget() !== ownerContainer) {
|
|
22315
|
+
logger$3.warn('preRenderContainer is applied only by the component that creates the preRender; '
|
|
22316
|
+
+ 'the one passed here is ignored. Set it on the PreRender component instead.');
|
|
22317
|
+
}
|
|
22318
|
+
this.preRenderContainerEl = ownerContainer;
|
|
22319
|
+
this.applyPreRenderContainerPositioning();
|
|
22320
|
+
}
|
|
22321
|
+
getCustomPreRenderContainer() {
|
|
22322
|
+
const container = this.preRenderContainerEl;
|
|
22323
|
+
return container && container !== document.body ? container : null;
|
|
22324
|
+
}
|
|
22097
22325
|
/**
|
|
22098
|
-
* Makes the container a positioning context for the absolutely
|
|
22099
|
-
* wrapper, stashing the original inline `position` on the element
|
|
22100
|
-
* destroy() can restore it exactly, leaving no trace. Recording it
|
|
22101
|
-
* element rather than per-instance lets the override be reverted even
|
|
22102
|
-
* embeds share the same container.
|
|
22326
|
+
* Makes the resolved container a positioning context for the absolutely
|
|
22327
|
+
* positioned wrapper, stashing the original inline `position` on the element
|
|
22328
|
+
* (once) so destroy() can restore it exactly, leaving no trace. Recording it
|
|
22329
|
+
* on the element rather than per-instance lets the override be reverted even
|
|
22330
|
+
* when embeds share the same container.
|
|
22103
22331
|
*/
|
|
22104
|
-
applyPreRenderContainerPositioning(
|
|
22105
|
-
|
|
22332
|
+
applyPreRenderContainerPositioning() {
|
|
22333
|
+
const container = this.getCustomPreRenderContainer();
|
|
22334
|
+
if (!container) {
|
|
22106
22335
|
return;
|
|
22107
22336
|
}
|
|
22108
22337
|
const pos = window.getComputedStyle(container).position;
|
|
@@ -22145,11 +22374,11 @@ class TsEmbed {
|
|
|
22145
22374
|
resolved.addEventListener('scroll', this.containerScrollListener);
|
|
22146
22375
|
}
|
|
22147
22376
|
}
|
|
22148
|
-
this.
|
|
22377
|
+
this.preRenderContainerEl = resolved;
|
|
22378
|
+
this.applyPreRenderContainerPositioning();
|
|
22149
22379
|
if (wrapper.parentNode !== resolved) {
|
|
22150
22380
|
resolved.appendChild(wrapper);
|
|
22151
22381
|
}
|
|
22152
|
-
this.preRenderContainerEl = resolved;
|
|
22153
22382
|
}
|
|
22154
22383
|
insertIntoDOMForPreRender(child) {
|
|
22155
22384
|
const preRenderChild = this.createPreRenderChild(child);
|
|
@@ -22172,7 +22401,7 @@ class TsEmbed {
|
|
|
22172
22401
|
}
|
|
22173
22402
|
const targetContainer = this.resolvePreRenderContainerTarget();
|
|
22174
22403
|
this.preRenderContainerEl = targetContainer;
|
|
22175
|
-
this.applyPreRenderContainerPositioning(
|
|
22404
|
+
this.applyPreRenderContainerPositioning();
|
|
22176
22405
|
targetContainer.appendChild(preRenderWrapper);
|
|
22177
22406
|
}
|
|
22178
22407
|
insertIntoDOM(child) {
|
|
@@ -22578,7 +22807,7 @@ class TsEmbed {
|
|
|
22578
22807
|
showPreRenderByDefault,
|
|
22579
22808
|
replaceExistingPreRender,
|
|
22580
22809
|
});
|
|
22581
|
-
if (!this.
|
|
22810
|
+
if (!this.getPreRenderConfig().preRenderId) {
|
|
22582
22811
|
logger$3.error(ERROR_MESSAGE.PRERENDER_ID_MISSING);
|
|
22583
22812
|
return this;
|
|
22584
22813
|
}
|
|
@@ -22634,7 +22863,7 @@ class TsEmbed {
|
|
|
22634
22863
|
}
|
|
22635
22864
|
// Drop our reference up front so a destroyed embed never pins a
|
|
22636
22865
|
// detached container in memory; restoration uses the local handle.
|
|
22637
|
-
this.preRenderContainerEl =
|
|
22866
|
+
this.preRenderContainerEl = document.body;
|
|
22638
22867
|
const originalPosition = container.dataset[PRERENDER_CONTAINER_ORIGINAL_POSITION_KEY];
|
|
22639
22868
|
if (originalPosition === undefined) {
|
|
22640
22869
|
// We never overrode this container's position; nothing to restore.
|
|
@@ -22657,9 +22886,7 @@ class TsEmbed {
|
|
|
22657
22886
|
if (!this.containerScrollListener) {
|
|
22658
22887
|
return;
|
|
22659
22888
|
}
|
|
22660
|
-
const customContainer = this.
|
|
22661
|
-
? this.preRenderContainerEl
|
|
22662
|
-
: null;
|
|
22889
|
+
const customContainer = this.getCustomPreRenderContainer();
|
|
22663
22890
|
customContainer === null || customContainer === void 0 ? void 0 : customContainer.removeEventListener('scroll', this.containerScrollListener);
|
|
22664
22891
|
this.containerScrollListener = null;
|
|
22665
22892
|
}
|
|
@@ -22756,12 +22983,12 @@ class TsEmbed {
|
|
|
22756
22983
|
async showPreRender() {
|
|
22757
22984
|
var _a, _b;
|
|
22758
22985
|
uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_SHOW_PRE_RENDER, {
|
|
22759
|
-
preRenderId: this.
|
|
22986
|
+
preRenderId: this.getPreRenderConfig().preRenderId,
|
|
22760
22987
|
embedComponentType: this.viewConfig.embedComponentType,
|
|
22761
22988
|
});
|
|
22762
22989
|
if (this.shouldWaitForRenderPromise)
|
|
22763
22990
|
await this.isReadyForRenderPromise;
|
|
22764
|
-
if (!this.
|
|
22991
|
+
if (!this.getPreRenderConfig().preRenderId) {
|
|
22765
22992
|
logger$3.error(ERROR_MESSAGE.PRERENDER_ID_MISSING);
|
|
22766
22993
|
return this;
|
|
22767
22994
|
}
|
|
@@ -22792,14 +23019,12 @@ class TsEmbed {
|
|
|
22792
23019
|
(_a = this.hostElement.querySelector(`#${placeHolderId}`)) === null || _a === void 0 ? void 0 : _a.remove();
|
|
22793
23020
|
this.hostElement.appendChild(this.insertedDomEl);
|
|
22794
23021
|
this.syncPreRenderStyle();
|
|
22795
|
-
const customContainer = this.
|
|
22796
|
-
? this.preRenderContainerEl
|
|
22797
|
-
: null;
|
|
23022
|
+
const customContainer = this.getCustomPreRenderContainer();
|
|
22798
23023
|
if (customContainer && !this.containerScrollListener) {
|
|
22799
23024
|
this.containerScrollListener = () => this.syncPreRenderStyle();
|
|
22800
23025
|
customContainer.addEventListener('scroll', this.containerScrollListener);
|
|
22801
23026
|
}
|
|
22802
|
-
if (!this.
|
|
23027
|
+
if (!this.getPreRenderConfig().doNotTrackPreRenderSize) {
|
|
22803
23028
|
const observeTarget = (_b = this.insertedDomEl) !== null && _b !== void 0 ? _b : this.hostElement;
|
|
22804
23029
|
this.resizeObserver = new ResizeObserver((entries) => {
|
|
22805
23030
|
entries.forEach((entry) => {
|
|
@@ -22841,13 +23066,15 @@ class TsEmbed {
|
|
|
22841
23066
|
logger$3.error(ERROR_MESSAGE.SYNC_STYLE_CALLED_BEFORE_RENDER);
|
|
22842
23067
|
return;
|
|
22843
23068
|
}
|
|
23069
|
+
if (!this.getPreRenderPlaceHolderElement().isConnected) {
|
|
23070
|
+
logger$3.debug('syncPreRenderStyle skipped: placeholder is detached');
|
|
23071
|
+
return;
|
|
23072
|
+
}
|
|
22844
23073
|
// Self-heal if the resolved container was remounted/detached, so we
|
|
22845
23074
|
// never measure a stale node (which would collapse the wrapper).
|
|
22846
23075
|
this.reconcilePreRenderContainer();
|
|
22847
23076
|
const elBoundingClient = this.getPreRenderPlaceHolderElement().getBoundingClientRect();
|
|
22848
|
-
const containerEl = this.
|
|
22849
|
-
? this.preRenderContainerEl
|
|
22850
|
-
: null;
|
|
23077
|
+
const containerEl = this.getCustomPreRenderContainer();
|
|
22851
23078
|
const containerRect = (_a = containerEl === null || containerEl === void 0 ? void 0 : containerEl.getBoundingClientRect()) !== null && _a !== void 0 ? _a : { x: 0, y: 0 };
|
|
22852
23079
|
const scrollX = containerEl ? containerEl.scrollLeft : window.scrollX;
|
|
22853
23080
|
const scrollY = containerEl ? containerEl.scrollTop : window.scrollY;
|
|
@@ -22865,7 +23092,7 @@ class TsEmbed {
|
|
|
22865
23092
|
*/
|
|
22866
23093
|
hidePreRender() {
|
|
22867
23094
|
uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_HIDE_PRE_RENDER, {
|
|
22868
|
-
preRenderId: this.
|
|
23095
|
+
preRenderId: this.getPreRenderConfig().preRenderId,
|
|
22869
23096
|
embedComponentType: this.viewConfig.embedComponentType,
|
|
22870
23097
|
});
|
|
22871
23098
|
logger$3.debug('HidePreRender Called');
|
|
@@ -22874,10 +23101,11 @@ class TsEmbed {
|
|
|
22874
23101
|
logger$3.warn('PreRender should be called before hiding it using hidePreRender.');
|
|
22875
23102
|
return;
|
|
22876
23103
|
}
|
|
23104
|
+
const { zIndex } = this.getPreRenderConfig();
|
|
22877
23105
|
const preRenderHideStyles = {
|
|
22878
23106
|
opacity: '0',
|
|
22879
23107
|
pointerEvents: 'none',
|
|
22880
|
-
zIndex: '-1000',
|
|
23108
|
+
zIndex: zIndex !== undefined ? String(zIndex) : '-1000',
|
|
22881
23109
|
position: 'absolute',
|
|
22882
23110
|
top: '0',
|
|
22883
23111
|
left: '0',
|
|
@@ -22902,10 +23130,11 @@ class TsEmbed {
|
|
|
22902
23130
|
* @property {string} child - The HTML element ID for the PreRender child.
|
|
22903
23131
|
*/
|
|
22904
23132
|
getPreRenderIds() {
|
|
23133
|
+
const preRenderId = this.getPreRenderConfig().preRenderId;
|
|
22905
23134
|
return {
|
|
22906
|
-
wrapper: `${PRERENDER_WRAPPER_ID_PREFIX}${
|
|
22907
|
-
child: `tsEmbed-pre-render-child-${
|
|
22908
|
-
placeHolder: `tsEmbed-pre-render-placeholder-${
|
|
23135
|
+
wrapper: `${PRERENDER_WRAPPER_ID_PREFIX}${preRenderId}`,
|
|
23136
|
+
child: `tsEmbed-pre-render-child-${preRenderId}`,
|
|
23137
|
+
placeHolder: `tsEmbed-pre-render-placeholder-${preRenderId}`,
|
|
22909
23138
|
};
|
|
22910
23139
|
}
|
|
22911
23140
|
/**
|
|
@@ -23087,6 +23316,19 @@ function buildSpotterShareConversationAppInitData(initData, viewConfig) {
|
|
|
23087
23316
|
spotterShareConversationConfig,
|
|
23088
23317
|
},
|
|
23089
23318
|
};
|
|
23319
|
+
}
|
|
23320
|
+
function buildStarterPromptsAppInitData(initData, viewConfig) {
|
|
23321
|
+
var _a;
|
|
23322
|
+
const starterPrompts = (_a = viewConfig.spotterChatConfig) === null || _a === void 0 ? void 0 : _a.starterPrompts;
|
|
23323
|
+
if (!starterPrompts)
|
|
23324
|
+
return initData;
|
|
23325
|
+
return {
|
|
23326
|
+
...initData,
|
|
23327
|
+
embedParams: {
|
|
23328
|
+
...(initData.embedParams || {}),
|
|
23329
|
+
starterPrompts,
|
|
23330
|
+
},
|
|
23331
|
+
};
|
|
23090
23332
|
}
|
|
23091
23333
|
|
|
23092
23334
|
function buildSpotterVizAppInitData(initData, viewConfig) {
|
|
@@ -23152,6 +23394,10 @@ var Page;
|
|
|
23152
23394
|
* Collections listing page
|
|
23153
23395
|
*/
|
|
23154
23396
|
Page["Collections"] = "collections";
|
|
23397
|
+
/**
|
|
23398
|
+
* Liveboard schedules listing page
|
|
23399
|
+
*/
|
|
23400
|
+
Page["LiveboardSchedules"] = "liveboard-schedules";
|
|
23155
23401
|
})(Page || (Page = {}));
|
|
23156
23402
|
/**
|
|
23157
23403
|
* Define the initial state of column custom group accordions
|
|
@@ -23297,6 +23543,15 @@ class AppEmbed extends V1Embed {
|
|
|
23297
23543
|
this.setIFrameHeight(frameHeight || this.defaultHeight);
|
|
23298
23544
|
};
|
|
23299
23545
|
if (this.viewConfig.fullHeight === true) {
|
|
23546
|
+
if (this.viewConfig.lazyLoadingForFullHeight === undefined) {
|
|
23547
|
+
this.viewConfig.lazyLoadingForFullHeight = true;
|
|
23548
|
+
}
|
|
23549
|
+
if (this.viewConfig.enableScrollableContainerLazyLoading === undefined) {
|
|
23550
|
+
this.viewConfig.enableScrollableContainerLazyLoading = true;
|
|
23551
|
+
}
|
|
23552
|
+
if (this.viewConfig.lazyLoadingMargin === undefined) {
|
|
23553
|
+
this.viewConfig.lazyLoadingMargin = DEFAULT_LAZY_LOADING_MARGIN;
|
|
23554
|
+
}
|
|
23300
23555
|
this.on(EmbedEvent.RouteChange, this.setIframeHeightForNonEmbedLiveboard);
|
|
23301
23556
|
this.on(EmbedEvent.EmbedHeight, this.updateIFrameHeight);
|
|
23302
23557
|
this.on(EmbedEvent.EmbedIframeCenter, this.embedIframeCenter);
|
|
@@ -23319,7 +23574,8 @@ class AppEmbed extends V1Embed {
|
|
|
23319
23574
|
const defaultAppInitData = await super.getAppInitData();
|
|
23320
23575
|
const sidebarInitData = buildSpotterSidebarAppInitData(defaultAppInitData, this.viewConfig, this.handleError.bind(this));
|
|
23321
23576
|
const vizInitData = buildSpotterVizAppInitData(sidebarInitData, this.viewConfig);
|
|
23322
|
-
|
|
23577
|
+
const shareInitData = buildSpotterShareConversationAppInitData(vizInitData, this.viewConfig);
|
|
23578
|
+
return buildStarterPromptsAppInitData(shareInitData, this.viewConfig);
|
|
23323
23579
|
}
|
|
23324
23580
|
/**
|
|
23325
23581
|
* Constructs a map of parameters to be passed on to the
|
|
@@ -23330,7 +23586,7 @@ class AppEmbed extends V1Embed {
|
|
|
23330
23586
|
return getQueryParamString(params, true);
|
|
23331
23587
|
}
|
|
23332
23588
|
getEmbedParamsObject() {
|
|
23333
|
-
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, enableCustomColumnGroups = false, dataPanelCustomGroupsAccordionInitialState = DataPanelCustomColumnGroupsAccordionState$1.EXPAND_ALL, collapseSearchBar = true, isLiveboardCompactHeaderEnabled, showLiveboardVerifiedBadge = true, showLiveboardReverifyBanner = true, hideIrrelevantChipsInLiveboardTabs, isEnhancedFilterInteractivityEnabled, homePageSearchBarMode, isUnifiedSearchExperienceEnabled = true, enablePendoHelp = true, discoveryExperience, coverAndFilterOptionInPDF, isLiveboardStylingAndGroupingEnabled, isPNGInScheduledEmailsEnabled = false, isLiveboardXLSXCSVDownloadEnabled, isGranularXLSXCSVSchedulesEnabled, isCentralizedLiveboardFilterUXEnabled = false, isScopedLiveboardFilteringEnabled, isLinkParametersEnabled, updatedSpotterChatPrompt, showSpotterRadiance, defaultQueryMode, enableStopAnswerGenerationEmbed, spotterChatConfig, spotterDataSources, minimumHeight, isThisPeriodInDateFiltersEnabled, enableHomepageAnnouncement = false, isContinuousLiveboardPDFEnabled, enableLiveboardDataCache, } = this.viewConfig;
|
|
23589
|
+
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$1.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;
|
|
23334
23590
|
let params = {};
|
|
23335
23591
|
params[Param.PrimaryNavHidden] = !showPrimaryNavbar;
|
|
23336
23592
|
params[Param.HideProfleAndHelp] = !!disableProfileAndHelp;
|
|
@@ -23384,7 +23640,7 @@ class AppEmbed extends V1Embed {
|
|
|
23384
23640
|
}
|
|
23385
23641
|
// Handle spotterChatConfig params
|
|
23386
23642
|
if (spotterChatConfig) {
|
|
23387
|
-
const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, spotterFileUploadEnabled, spotterFileUploadFileTypes, enableStarterPrompts, } = spotterChatConfig;
|
|
23643
|
+
const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, spotterFileUploadEnabled, spotterFileUploadFileTypes, enableStarterPrompts, openSpotterOnLiveboardByDefault, } = spotterChatConfig;
|
|
23388
23644
|
setParamIfDefined(params, Param.HideToolResponseCardBranding, hideToolResponseCardBranding, true);
|
|
23389
23645
|
setParamIfDefined(params, Param.ToolResponseCardBrandingLabel, toolResponseCardBrandingLabel);
|
|
23390
23646
|
if (spotterFileUploadEnabled !== undefined) {
|
|
@@ -23393,6 +23649,9 @@ class AppEmbed extends V1Embed {
|
|
|
23393
23649
|
if (enableStarterPrompts !== undefined) {
|
|
23394
23650
|
params[Param.IsStarterPromptsEnabled] = enableStarterPrompts;
|
|
23395
23651
|
}
|
|
23652
|
+
if (openSpotterOnLiveboardByDefault !== undefined) {
|
|
23653
|
+
params[Param.OpenSpotterOnLiveboardByDefault] = openSpotterOnLiveboardByDefault;
|
|
23654
|
+
}
|
|
23396
23655
|
if (spotterFileUploadFileTypes !== undefined) {
|
|
23397
23656
|
params[Param.SpotterFileUploadFileTypes] = JSON.stringify(spotterFileUploadFileTypes);
|
|
23398
23657
|
}
|
|
@@ -23436,6 +23695,9 @@ class AppEmbed extends V1Embed {
|
|
|
23436
23695
|
if (enable2ColumnLayout !== undefined) {
|
|
23437
23696
|
params[Param.Enable2ColumnLayout] = enable2ColumnLayout;
|
|
23438
23697
|
}
|
|
23698
|
+
if (isLiveboardAlwaysOn12ColLayout !== undefined) {
|
|
23699
|
+
params[Param.IsLiveboardAlwaysOn12ColLayout] = isLiveboardAlwaysOn12ColLayout;
|
|
23700
|
+
}
|
|
23439
23701
|
if (enableAskSage) {
|
|
23440
23702
|
params[Param.enableAskSage] = enableAskSage;
|
|
23441
23703
|
}
|
|
@@ -23448,6 +23710,9 @@ class AppEmbed extends V1Embed {
|
|
|
23448
23710
|
if (isLiveboardStylingAndGroupingEnabled !== undefined) {
|
|
23449
23711
|
params[Param.IsLiveboardStylingAndGroupingEnabled] = isLiveboardStylingAndGroupingEnabled;
|
|
23450
23712
|
}
|
|
23713
|
+
if (liveboardGutter !== undefined) {
|
|
23714
|
+
params[Param.LiveboardGutter] = liveboardGutter;
|
|
23715
|
+
}
|
|
23451
23716
|
if (isPNGInScheduledEmailsEnabled !== undefined) {
|
|
23452
23717
|
params[Param.isPNGInScheduledEmailsEnabled] = isPNGInScheduledEmailsEnabled;
|
|
23453
23718
|
}
|
|
@@ -23558,6 +23823,8 @@ class AppEmbed extends V1Embed {
|
|
|
23558
23823
|
return modularHomeExperience ? 'home/monitor-alerts' : 'insights/monitor-alerts';
|
|
23559
23824
|
case Page.Collections:
|
|
23560
23825
|
return 'collections';
|
|
23826
|
+
case Page.LiveboardSchedules:
|
|
23827
|
+
return 'home/liveboard-schedules';
|
|
23561
23828
|
case Page.Home:
|
|
23562
23829
|
default:
|
|
23563
23830
|
return 'home';
|
|
@@ -23843,6 +24110,15 @@ class LiveboardEmbed extends V1Embed {
|
|
|
23843
24110
|
logger$3.warn('Full height is currently only supported for Liveboard embeds.' +
|
|
23844
24111
|
'Using full height with vizId might lead to unexpected behavior.');
|
|
23845
24112
|
}
|
|
24113
|
+
if (this.viewConfig.lazyLoadingForFullHeight === undefined) {
|
|
24114
|
+
this.viewConfig.lazyLoadingForFullHeight = true;
|
|
24115
|
+
}
|
|
24116
|
+
if (this.viewConfig.enableScrollableContainerLazyLoading === undefined) {
|
|
24117
|
+
this.viewConfig.enableScrollableContainerLazyLoading = true;
|
|
24118
|
+
}
|
|
24119
|
+
if (this.viewConfig.lazyLoadingMargin === undefined) {
|
|
24120
|
+
this.viewConfig.lazyLoadingMargin = DEFAULT_LAZY_LOADING_MARGIN;
|
|
24121
|
+
}
|
|
23846
24122
|
this.on(EmbedEvent.RouteChange, this.setIframeHeightForNonEmbedLiveboard);
|
|
23847
24123
|
this.on(EmbedEvent.EmbedHeight, this.updateIFrameHeight);
|
|
23848
24124
|
this.on(EmbedEvent.EmbedIframeCenter, this.embedIframeCenter);
|
|
@@ -23851,7 +24127,8 @@ class LiveboardEmbed extends V1Embed {
|
|
|
23851
24127
|
}
|
|
23852
24128
|
async getAppInitData() {
|
|
23853
24129
|
const defaultAppInitData = await super.getAppInitData();
|
|
23854
|
-
|
|
24130
|
+
const vizInitData = buildSpotterVizAppInitData(defaultAppInitData, this.viewConfig);
|
|
24131
|
+
return buildStarterPromptsAppInitData(vizInitData, this.viewConfig);
|
|
23855
24132
|
}
|
|
23856
24133
|
/**
|
|
23857
24134
|
* Construct a map of params to be passed on to the
|
|
@@ -23865,7 +24142,7 @@ class LiveboardEmbed extends V1Embed {
|
|
|
23865
24142
|
getEmbedParamsObject() {
|
|
23866
24143
|
let params = {};
|
|
23867
24144
|
params = this.getBaseQueryParams(params);
|
|
23868
|
-
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, dataPanelV2 = true, updatedSpotterExperience, enableCustomColumnGroups = false, oAuthPollingInterval, isForceRedirect, dataSourceId, coverAndFilterOptionInPDF, isLiveboardStylingAndGroupingEnabled, isPNGInScheduledEmailsEnabled = false, isLiveboardXLSXCSVDownloadEnabled, isGranularXLSXCSVSchedulesEnabled, showSpotterLimitations, isCentralizedLiveboardFilterUXEnabled = false, isScopedLiveboardFilteringEnabled, isLinkParametersEnabled, updatedSpotterChatPrompt, showSpotterRadiance, enableStopAnswerGenerationEmbed, spotterChatConfig, isThisPeriodInDateFiltersEnabled, isContinuousLiveboardPDFEnabled, enableLiveboardDataCache, } = this.viewConfig;
|
|
24145
|
+
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;
|
|
23869
24146
|
const preventLiveboardFilterRemoval = this.viewConfig.preventLiveboardFilterRemoval
|
|
23870
24147
|
|| this.viewConfig.preventPinboardFilterRemoval;
|
|
23871
24148
|
if (fullHeight === true) {
|
|
@@ -23906,6 +24183,9 @@ class LiveboardEmbed extends V1Embed {
|
|
|
23906
24183
|
if (enable2ColumnLayout !== undefined) {
|
|
23907
24184
|
params[Param.Enable2ColumnLayout] = enable2ColumnLayout;
|
|
23908
24185
|
}
|
|
24186
|
+
if (isLiveboardAlwaysOn12ColLayout !== undefined) {
|
|
24187
|
+
params[Param.IsLiveboardAlwaysOn12ColLayout] = isLiveboardAlwaysOn12ColLayout;
|
|
24188
|
+
}
|
|
23909
24189
|
if (hideTabPanel) {
|
|
23910
24190
|
params[Param.HideTabPanel] = hideTabPanel;
|
|
23911
24191
|
}
|
|
@@ -23933,6 +24213,9 @@ class LiveboardEmbed extends V1Embed {
|
|
|
23933
24213
|
if (isLiveboardStylingAndGroupingEnabled !== undefined) {
|
|
23934
24214
|
params[Param.IsLiveboardStylingAndGroupingEnabled] = isLiveboardStylingAndGroupingEnabled;
|
|
23935
24215
|
}
|
|
24216
|
+
if (liveboardGutter !== undefined) {
|
|
24217
|
+
params[Param.LiveboardGutter] = liveboardGutter;
|
|
24218
|
+
}
|
|
23936
24219
|
if (isPNGInScheduledEmailsEnabled !== undefined) {
|
|
23937
24220
|
params[Param.isPNGInScheduledEmailsEnabled] = isPNGInScheduledEmailsEnabled;
|
|
23938
24221
|
}
|
|
@@ -23950,7 +24233,7 @@ class LiveboardEmbed extends V1Embed {
|
|
|
23950
24233
|
}
|
|
23951
24234
|
// Handle spotterChatConfig params
|
|
23952
24235
|
if (spotterChatConfig) {
|
|
23953
|
-
const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, spotterFileUploadEnabled, spotterFileUploadFileTypes, enableStarterPrompts, } = spotterChatConfig;
|
|
24236
|
+
const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, spotterFileUploadEnabled, spotterFileUploadFileTypes, enableStarterPrompts, openSpotterOnLiveboardByDefault, } = spotterChatConfig;
|
|
23954
24237
|
setParamIfDefined(params, Param.HideToolResponseCardBranding, hideToolResponseCardBranding, true);
|
|
23955
24238
|
setParamIfDefined(params, Param.ToolResponseCardBrandingLabel, toolResponseCardBrandingLabel);
|
|
23956
24239
|
if (spotterFileUploadEnabled !== undefined) {
|
|
@@ -23959,6 +24242,9 @@ class LiveboardEmbed extends V1Embed {
|
|
|
23959
24242
|
if (enableStarterPrompts !== undefined) {
|
|
23960
24243
|
params[Param.IsStarterPromptsEnabled] = enableStarterPrompts;
|
|
23961
24244
|
}
|
|
24245
|
+
if (openSpotterOnLiveboardByDefault !== undefined) {
|
|
24246
|
+
params[Param.OpenSpotterOnLiveboardByDefault] = openSpotterOnLiveboardByDefault;
|
|
24247
|
+
}
|
|
23962
24248
|
if (spotterFileUploadFileTypes !== undefined) {
|
|
23963
24249
|
params[Param.SpotterFileUploadFileTypes] = JSON.stringify(spotterFileUploadFileTypes);
|
|
23964
24250
|
}
|
|
@@ -24204,7 +24490,7 @@ class LiveboardEmbed extends V1Embed {
|
|
|
24204
24490
|
if (this.isRendered) {
|
|
24205
24491
|
this.trigger(HostEvent.Navigate, path.substring(1));
|
|
24206
24492
|
}
|
|
24207
|
-
else if (this.
|
|
24493
|
+
else if (this.getPreRenderConfig().preRenderId) {
|
|
24208
24494
|
this.preRender(true);
|
|
24209
24495
|
}
|
|
24210
24496
|
else {
|
|
@@ -25077,10 +25363,11 @@ class SpotterEmbed extends TsEmbed {
|
|
|
25077
25363
|
async getAppInitData() {
|
|
25078
25364
|
const defaultAppInitData = await super.getAppInitData();
|
|
25079
25365
|
const sidebarInitData = buildSpotterSidebarAppInitData(defaultAppInitData, this.viewConfig, this.handleError.bind(this));
|
|
25080
|
-
|
|
25366
|
+
const shareInitData = buildSpotterShareConversationAppInitData(sidebarInitData, this.viewConfig);
|
|
25367
|
+
return buildStarterPromptsAppInitData(shareInitData, this.viewConfig);
|
|
25081
25368
|
}
|
|
25082
25369
|
getEmbedParamsObject() {
|
|
25083
|
-
const { searchOptions, disableSourceSelection, hideSourceSelection, dataPanelV2, updatedSpotterExperience, showSpotterLimitations, hideSampleQuestions, runtimeFilters, excludeRuntimeFiltersfromURL, runtimeParameters, excludeRuntimeParametersfromURL, updatedSpotterChatPrompt, showSpotterRadiance, defaultQueryMode, enableStopAnswerGenerationEmbed, spotterChatConfig, } = this.viewConfig;
|
|
25370
|
+
const { searchOptions, disableSourceSelection, hideSourceSelection, dataPanelV2, updatedSpotterExperience, showSpotterLimitations, hideSampleQuestions, runtimeFilters, excludeRuntimeFiltersfromURL, runtimeParameters, excludeRuntimeParametersfromURL, updatedSpotterChatPrompt, showSpotterRadiance, defaultQueryMode, enableStopAnswerGenerationEmbed, spotterChatConfig, spotterAnalystConfig, } = this.viewConfig;
|
|
25084
25371
|
const queryParams = this.getBaseQueryParams();
|
|
25085
25372
|
queryParams[Param.SpotterEnabled] = true;
|
|
25086
25373
|
// Boolean params
|
|
@@ -25093,6 +25380,7 @@ class SpotterEmbed extends TsEmbed {
|
|
|
25093
25380
|
setParamIfDefined(queryParams, Param.ShowSpotterRadiance, showSpotterRadiance, true);
|
|
25094
25381
|
setParamIfDefined(queryParams, Param.DefaultQueryMode, defaultQueryMode);
|
|
25095
25382
|
setParamIfDefined(queryParams, Param.EnableStopAnswerGenerationEmbed, enableStopAnswerGenerationEmbed, true);
|
|
25383
|
+
setParamIfDefined(queryParams, Param.AnalystId, spotterAnalystConfig === null || spotterAnalystConfig === void 0 ? void 0 : spotterAnalystConfig.analystId);
|
|
25096
25384
|
// Handle spotterChatConfig params
|
|
25097
25385
|
if (spotterChatConfig) {
|
|
25098
25386
|
const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, spotterFileUploadEnabled, spotterFileUploadFileTypes, enableStarterPrompts, } = spotterChatConfig;
|
|
@@ -25842,4 +26130,4 @@ class AutoFrameRenderer extends TsEmbed {
|
|
|
25842
26130
|
}
|
|
25843
26131
|
}
|
|
25844
26132
|
|
|
25845
|
-
export { Action, AnswerService, AppEmbed, AuthEvent, AuthFailureType, AuthStatus, AuthType, BackgroundFormatType, BodylessConversation, ConditionalFormattingComparisonType, ConditionalFormattingOperator, ContextMenuTriggerOptions, ContextType, ConversationEmbed, CustomActionTarget, CustomActionsPosition, DataLabelFilterOperator, DataPanelCustomColumnGroupsAccordionState$1 as DataPanelCustomColumnGroupsAccordionState, DataSourceVisualMode, EmbedErrorCodes, EmbedEvent, ErrorDetailsTypes, HomeLeftNavItem, HomePage, HomePageSearchBarMode, HomepageModule, HostEvent, InterceptedApiType, LegendPosition, ListPage, ListPageColumns, LiveboardEmbed, LogLevel, MIXPANEL_EVENT, Page, PinboardEmbed, PrefetchFeatures, PrimaryNavbarVersion, RuntimeFilterOp, SearchBarEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, SpotterQueryMode, TableContentDensity, TableTheme, UIPassthroughEvent, createLiveboardWithAnswers, executeTML, exportTML, getAnswerFromQuery, getEmbedConfig as getInitConfig, getSessionInfo, init, logout, prefetch, reloadIframe, resetCachedAuthToken, startAutoMCPFrameRenderer, tokenizedFetch, uploadMixpanelEvent };
|
|
26133
|
+
export { Action, AnswerService, AppEmbed, ApplicabilityLevel, AuthEvent, AuthFailureType, AuthStatus, AuthType, BackgroundFormatType, BodylessConversation, ConditionalFormattingComparisonType, ConditionalFormattingOperator, ContextMenuTriggerOptions, ContextType, ConversationEmbed, CustomActionTarget, CustomActionsPosition, DataLabelFilterOperator, DataPanelCustomColumnGroupsAccordionState$1 as DataPanelCustomColumnGroupsAccordionState, DataSourceVisualMode, EmbedErrorCodes, EmbedEvent, ErrorDetailsTypes, HomeLeftNavItem, HomePage, HomePageSearchBarMode, HomepageModule, HostEvent, InterceptedApiType, LegendPosition, ListPage, ListPageColumns, LiveboardEmbed, LogLevel, MIXPANEL_EVENT, Page, PinboardEmbed, PrefetchFeatures, PrimaryNavbarVersion, RuntimeFilterOp, SearchBarEmbed, SearchEmbed, SpotterAgentEmbed, SpotterEmbed, SpotterQueryMode, TableContentDensity, TableTheme, UIPassthroughEvent, createLiveboardWithAnswers, executeTML, exportTML, getAnswerFromQuery, getEmbedConfig as getInitConfig, getSessionInfo, init, logout, prefetch, reloadIframe, resetCachedAuthToken, startAutoMCPFrameRenderer, tokenizedFetch, uploadMixpanelEvent };
|