@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.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
|
function _mergeNamespaces(n, m) {
|
|
4
4
|
m.forEach(function (e) {
|
|
@@ -189,7 +189,9 @@ var AuthType;
|
|
|
189
189
|
})(AuthType || (AuthType = {}));
|
|
190
190
|
/**
|
|
191
191
|
*
|
|
192
|
-
* **Note**:
|
|
192
|
+
* **Note**: The classic (V1) and Modular (V2) home page experiences are
|
|
193
|
+
* deprecated. This attribute applies to V3 (ModularWithStylingChanges) and
|
|
194
|
+
* V4 (Focused) home page experiences.
|
|
193
195
|
*
|
|
194
196
|
*/
|
|
195
197
|
var HomeLeftNavItem;
|
|
@@ -257,6 +259,13 @@ var HomeLeftNavItem;
|
|
|
257
259
|
* @version SDK: 1.41.0 | ThoughtSpot: 10.12.0.cl
|
|
258
260
|
*/
|
|
259
261
|
HomeLeftNavItem["Favorites"] = "favorites";
|
|
262
|
+
/**
|
|
263
|
+
* The *Collections* menu option in
|
|
264
|
+
* the *Insights* left navigation panel.
|
|
265
|
+
* Shown when collections are enabled on the cluster.
|
|
266
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
267
|
+
*/
|
|
268
|
+
HomeLeftNavItem["Collections"] = "collections";
|
|
260
269
|
})(HomeLeftNavItem || (HomeLeftNavItem = {}));
|
|
261
270
|
/**
|
|
262
271
|
* A map of the supported runtime filter operations
|
|
@@ -329,7 +338,9 @@ var RuntimeFilterOp;
|
|
|
329
338
|
* via `hiddenHomepageModules` and reordered via
|
|
330
339
|
* `reorderedHomepageModules`.
|
|
331
340
|
*
|
|
332
|
-
* **Note**:
|
|
341
|
+
* **Note**: The classic (V1) and Modular (V2) home page experiences are
|
|
342
|
+
* deprecated. These modules apply to V3 (ModularWithStylingChanges) and
|
|
343
|
+
* V4 (Focused) home page experiences.
|
|
333
344
|
* @version SDK: 1.28.0 | ThoughtSpot: 9.12.5.cl, 10.1.0.sw
|
|
334
345
|
*/
|
|
335
346
|
var HomepageModule;
|
|
@@ -507,7 +518,7 @@ var EmbedEvent;
|
|
|
507
518
|
* @returns nonFilteredColumns - The columns that were not filtered
|
|
508
519
|
* @example
|
|
509
520
|
* ```js
|
|
510
|
-
* searchEmbed.on(EmbedEvent.
|
|
521
|
+
* searchEmbed.on(EmbedEvent.Drilldown, {
|
|
511
522
|
* points: {
|
|
512
523
|
* clickedPoint,
|
|
513
524
|
* selectedPoints: selectedPoint
|
|
@@ -568,7 +579,7 @@ var EmbedEvent;
|
|
|
568
579
|
* @version SDK: 1.1.0 | ThoughtSpot: ts7.may.cl, 8.4.1.sw
|
|
569
580
|
* @example
|
|
570
581
|
* ```js
|
|
571
|
-
* appEmbed.on(EmbedEvent.
|
|
582
|
+
* appEmbed.on(EmbedEvent.CustomAction, payload => {
|
|
572
583
|
* const data = payload.data;
|
|
573
584
|
* if (data.id === 'insert Custom Action ID here') {
|
|
574
585
|
* console.log('Custom Action event:', data.embedAnswerData);
|
|
@@ -834,8 +845,8 @@ var EmbedEvent;
|
|
|
834
845
|
*
|
|
835
846
|
* **Note**: This event is deprecated in v1.21.0.
|
|
836
847
|
* To fire an event when a download action is initiated on a chart or table,
|
|
837
|
-
* use `EmbedEvent.DownloadAsPng`, `EmbedEvent.
|
|
838
|
-
* `EmbedEvent.
|
|
848
|
+
* use `EmbedEvent.DownloadAsPng`, `EmbedEvent.DownloadAsPdf`,
|
|
849
|
+
* `EmbedEvent.DownloadAsCsv`, or `EmbedEvent.DownloadAsXlsx`
|
|
839
850
|
* @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
|
|
840
851
|
* @example
|
|
841
852
|
* ```js
|
|
@@ -885,10 +896,10 @@ var EmbedEvent;
|
|
|
885
896
|
* @example
|
|
886
897
|
* ```js
|
|
887
898
|
* //emit when action starts
|
|
888
|
-
* searchEmbed.on(EmbedEvent.
|
|
899
|
+
* searchEmbed.on(EmbedEvent.DownloadAsCsv, payload => {
|
|
889
900
|
* console.log('download CSV', payload)}, {start: true })
|
|
890
901
|
* //emit when action ends
|
|
891
|
-
* searchEmbed.on(EmbedEvent.
|
|
902
|
+
* searchEmbed.on(EmbedEvent.DownloadAsCsv, payload => {
|
|
892
903
|
* console.log('download CSV', payload)})
|
|
893
904
|
* ```
|
|
894
905
|
*/
|
|
@@ -1287,11 +1298,19 @@ var EmbedEvent;
|
|
|
1287
1298
|
* Emitted when a user changes any filter on a Liveboard.
|
|
1288
1299
|
* Returns filter type and name, column name and ID, and runtime
|
|
1289
1300
|
* filter details.
|
|
1301
|
+
* The payload includes an optional `applicability` attribute indicating the
|
|
1302
|
+
* scope of the changed filter. It contains a `level` (`LIVEBOARD`,
|
|
1303
|
+
* `TAB`, or `GROUP`) and, when `level` is `TAB` or `GROUP`, a
|
|
1304
|
+
* `targetId` with the GUID of the target. At `LIVEBOARD` level there
|
|
1305
|
+
* is no `targetId`, since the filter applies to the whole Liveboard.
|
|
1306
|
+
* The `applicability` attribute is available from SDK: 1.53.0 |
|
|
1307
|
+
* ThoughtSpot: 26.10.0.cl.
|
|
1290
1308
|
* @example
|
|
1291
1309
|
*
|
|
1292
1310
|
* ```js
|
|
1293
1311
|
* LiveboardEmbed.on(EmbedEvent.FilterChanged, (payload) => {
|
|
1294
1312
|
* console.log('payload', payload);
|
|
1313
|
+
* // payload.data optionally includes applicability: { level, targetId }
|
|
1295
1314
|
* })
|
|
1296
1315
|
* ```
|
|
1297
1316
|
* @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl, 9.5.0.sw
|
|
@@ -1483,9 +1502,17 @@ var EmbedEvent;
|
|
|
1483
1502
|
/**
|
|
1484
1503
|
* Emitted when parameter changes in an Answer
|
|
1485
1504
|
* or Liveboard.
|
|
1505
|
+
* The payload includes an optional `applicability` attribute indicating the
|
|
1506
|
+
* scope of the changed parameter. It contains a `level` (`LIVEBOARD`,
|
|
1507
|
+
* `TAB`, or `GROUP`) and, when `level` is `TAB` or `GROUP`, a
|
|
1508
|
+
* `targetId` with the GUID of the target. At `LIVEBOARD` level there
|
|
1509
|
+
* is no `targetId`, since the parameter applies to the whole Liveboard.
|
|
1510
|
+
* The `applicability` attribute is available from SDK: 1.53.0 |
|
|
1511
|
+
* ThoughtSpot: 26.10.0.cl.
|
|
1486
1512
|
* ```js
|
|
1487
1513
|
* liveboardEmbed.on(EmbedEvent.ParameterChanged, (payload) => {
|
|
1488
1514
|
* console.log('payload', payload);
|
|
1515
|
+
* // payload.data optionally includes applicability: { level, targetId }
|
|
1489
1516
|
* })
|
|
1490
1517
|
* ```
|
|
1491
1518
|
* @version SDK: 1.29.0 | ThoughtSpot: 10.3.0.cl
|
|
@@ -1787,6 +1814,158 @@ var EmbedEvent;
|
|
|
1787
1814
|
* @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
|
|
1788
1815
|
*/
|
|
1789
1816
|
EmbedEvent["SpotterConversationDeleted"] = "spotterConversationDeleted";
|
|
1817
|
+
/**
|
|
1818
|
+
* Emitted when the header Share button is clicked. Fires `Start` then `End`
|
|
1819
|
+
* to bracket the interaction. App→host counterpart of the
|
|
1820
|
+
* `ShareSpotterConversation` host event (user-driven vs programmatic open).
|
|
1821
|
+
* @example
|
|
1822
|
+
* ```js
|
|
1823
|
+
* spotterEmbed.on(EmbedEvent.SpotterShareConversationButtonHeaderClicked, (payload) => {
|
|
1824
|
+
* // payload: { convId: string }
|
|
1825
|
+
* })
|
|
1826
|
+
* ```
|
|
1827
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
1828
|
+
*/
|
|
1829
|
+
EmbedEvent["SpotterShareConversationButtonHeaderClicked"] = "spotterShareConversationButtonHeaderClicked";
|
|
1830
|
+
/**
|
|
1831
|
+
* Emitted when the sidebar Share item is clicked. Fires `Start` then `End`
|
|
1832
|
+
* to bracket the interaction.
|
|
1833
|
+
* @example
|
|
1834
|
+
* ```js
|
|
1835
|
+
* spotterEmbed.on(EmbedEvent.SpotterShareConversationMenuItemSidebarClicked, (payload) => {
|
|
1836
|
+
* // payload: { convId: string }
|
|
1837
|
+
* })
|
|
1838
|
+
* ```
|
|
1839
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
1840
|
+
*/
|
|
1841
|
+
EmbedEvent["SpotterShareConversationMenuItemSidebarClicked"] = "spotterShareConversationMenuItemSidebarClicked";
|
|
1842
|
+
/**
|
|
1843
|
+
* Emitted when a Spotter conversation is shared (recipients added, or a new
|
|
1844
|
+
* share created). The host builds its own link from shareId/convId + its
|
|
1845
|
+
* configured CONVERSATION_URL — no link string is sent. Distinct from
|
|
1846
|
+
* `SpotterShareModalConfirmButtonClicked`, which fires at click time before
|
|
1847
|
+
* the save resolves.
|
|
1848
|
+
* @example
|
|
1849
|
+
* ```js
|
|
1850
|
+
* spotterEmbed.on(EmbedEvent.SpotterConversationShared, (payload) => {
|
|
1851
|
+
* // payload: { convId: string, shareId: string,
|
|
1852
|
+
* // recipientsAdded: string[], recipientsRemoved: string[] }
|
|
1853
|
+
* })
|
|
1854
|
+
* ```
|
|
1855
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
1856
|
+
*/
|
|
1857
|
+
EmbedEvent["SpotterConversationShared"] = "spotterConversationShared";
|
|
1858
|
+
/**
|
|
1859
|
+
* Emitted when access to a shared Spotter conversation is revoked
|
|
1860
|
+
* (recipients removed). `fullyRevoked` is true when the last sharee is removed
|
|
1861
|
+
* and the share is deleted entirely.
|
|
1862
|
+
* @example
|
|
1863
|
+
* ```js
|
|
1864
|
+
* spotterEmbed.on(EmbedEvent.SpotterConversationShareRevoked, (payload) => {
|
|
1865
|
+
* // payload: { convId: string, shareId: string,
|
|
1866
|
+
* // recipientsRemoved: string[], fullyRevoked: boolean }
|
|
1867
|
+
* })
|
|
1868
|
+
* ```
|
|
1869
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
1870
|
+
*/
|
|
1871
|
+
EmbedEvent["SpotterConversationShareRevoked"] = "spotterConversationShareRevoked";
|
|
1872
|
+
/**
|
|
1873
|
+
* Emitted when a recipient opens a shared Spotter conversation (read-only
|
|
1874
|
+
* view). No shareId available viewer-side.
|
|
1875
|
+
* @example
|
|
1876
|
+
* ```js
|
|
1877
|
+
* spotterEmbed.on(EmbedEvent.SpotterSharedConversationViewed, (payload) => {
|
|
1878
|
+
* // payload: { convId: string, sourceConvId: string }
|
|
1879
|
+
* // convId = resolved snapshot conv id; sourceConvId = the shared URL id
|
|
1880
|
+
* })
|
|
1881
|
+
* ```
|
|
1882
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
1883
|
+
*/
|
|
1884
|
+
EmbedEvent["SpotterSharedConversationViewed"] = "spotterSharedConversationViewed";
|
|
1885
|
+
/**
|
|
1886
|
+
* Emitted when the user toggles the share-modal "include new messages since
|
|
1887
|
+
* last shared version" checkbox.
|
|
1888
|
+
* @example
|
|
1889
|
+
* ```js
|
|
1890
|
+
* spotterEmbed.on(EmbedEvent.SpotterShareIncludeNewMessagesCheckboxToggled, (payload) => {
|
|
1891
|
+
* // payload: { convId: string, includeNewMessages: boolean }
|
|
1892
|
+
* })
|
|
1893
|
+
* ```
|
|
1894
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
1895
|
+
*/
|
|
1896
|
+
EmbedEvent["SpotterShareIncludeNewMessagesCheckboxToggled"] = "spotterShareIncludeNewMessagesCheckboxToggled";
|
|
1897
|
+
/**
|
|
1898
|
+
* Emitted when the user dismisses the stale-snapshot info banner via its
|
|
1899
|
+
* cross (distinct from the include-new-messages checkbox toggle).
|
|
1900
|
+
* @example
|
|
1901
|
+
* ```js
|
|
1902
|
+
* spotterEmbed.on(EmbedEvent.SpotterShareStaleInfoBannerDismissed, (payload) => {
|
|
1903
|
+
* // payload: { convId: string }
|
|
1904
|
+
* })
|
|
1905
|
+
* ```
|
|
1906
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
1907
|
+
*/
|
|
1908
|
+
EmbedEvent["SpotterShareStaleInfoBannerDismissed"] = "spotterShareStaleInfoBannerDismissed";
|
|
1909
|
+
/**
|
|
1910
|
+
* Emitted when the modal Share (confirm) button is clicked — fires at click
|
|
1911
|
+
* time, before the save resolves. Distinct from the `SpotterConversationShared`
|
|
1912
|
+
* / `SpotterConversationShareRevoked` result events.
|
|
1913
|
+
* @example
|
|
1914
|
+
* ```js
|
|
1915
|
+
* spotterEmbed.on(EmbedEvent.SpotterShareModalConfirmButtonClicked, (payload) => {
|
|
1916
|
+
* // payload: { convId: string }
|
|
1917
|
+
* })
|
|
1918
|
+
* ```
|
|
1919
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
1920
|
+
*/
|
|
1921
|
+
EmbedEvent["SpotterShareModalConfirmButtonClicked"] = "spotterShareModalConfirmButtonClicked";
|
|
1922
|
+
/**
|
|
1923
|
+
* Emitted when the share modal is dismissed via the Cancel button.
|
|
1924
|
+
* @example
|
|
1925
|
+
* ```js
|
|
1926
|
+
* spotterEmbed.on(EmbedEvent.SpotterShareModalCancelButtonClicked, (payload) => {
|
|
1927
|
+
* // payload: { convId: string }
|
|
1928
|
+
* })
|
|
1929
|
+
* ```
|
|
1930
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
1931
|
+
*/
|
|
1932
|
+
EmbedEvent["SpotterShareModalCancelButtonClicked"] = "spotterShareModalCancelButtonClicked";
|
|
1933
|
+
/**
|
|
1934
|
+
* Emitted when a recipient leaves the read-only shared view via the Exit
|
|
1935
|
+
* button.
|
|
1936
|
+
* @example
|
|
1937
|
+
* ```js
|
|
1938
|
+
* spotterEmbed.on(EmbedEvent.SpotterSharedConversationExitButtonClicked, (payload) => {
|
|
1939
|
+
* // payload: { convId: string }
|
|
1940
|
+
* })
|
|
1941
|
+
* ```
|
|
1942
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
1943
|
+
*/
|
|
1944
|
+
EmbedEvent["SpotterSharedConversationExitButtonClicked"] = "spotterSharedConversationExitButtonClicked";
|
|
1945
|
+
/**
|
|
1946
|
+
* Emitted when a Spotter conversation is pinned.
|
|
1947
|
+
* @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
|
|
1948
|
+
* @example
|
|
1949
|
+
* ```js
|
|
1950
|
+
* spotterEmbed.on(EmbedEvent.SpotterConversationPinned, (payload) => {
|
|
1951
|
+
* console.log('Conversation pinned', payload);
|
|
1952
|
+
* // payload: { conversationId: string, pinnedAt: string (ISO 8601) }
|
|
1953
|
+
* })
|
|
1954
|
+
* ```
|
|
1955
|
+
*/
|
|
1956
|
+
EmbedEvent["SpotterConversationPinned"] = "spotterConversationPinned";
|
|
1957
|
+
/**
|
|
1958
|
+
* Emitted when a Spotter conversation is unpinned.
|
|
1959
|
+
* @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
|
|
1960
|
+
* @example
|
|
1961
|
+
* ```js
|
|
1962
|
+
* spotterEmbed.on(EmbedEvent.SpotterConversationUnpinned, (payload) => {
|
|
1963
|
+
* console.log('Conversation unpinned', payload);
|
|
1964
|
+
* // payload: { conversationId: string, unpinnedAt: string (ISO 8601) }
|
|
1965
|
+
* })
|
|
1966
|
+
* ```
|
|
1967
|
+
*/
|
|
1968
|
+
EmbedEvent["SpotterConversationUnpinned"] = "spotterConversationUnpinned";
|
|
1790
1969
|
/**
|
|
1791
1970
|
* Emitted when a Spotter conversation is selected/clicked.
|
|
1792
1971
|
* @example
|
|
@@ -1799,6 +1978,30 @@ var EmbedEvent;
|
|
|
1799
1978
|
* @version SDK: 1.46.0 | ThoughtSpot: 26.3.0.cl
|
|
1800
1979
|
*/
|
|
1801
1980
|
EmbedEvent["SpotterConversationSelected"] = "spotterConversationSelected";
|
|
1981
|
+
/**
|
|
1982
|
+
* Emitted when the Spotter agent finishes streaming/rendering a response.
|
|
1983
|
+
* Includes the conversation and message identifiers so the host app can
|
|
1984
|
+
* fetch the full conversation history via the REST API if needed.
|
|
1985
|
+
*
|
|
1986
|
+
* The payload data has the shape `{ convId: string, messageId: string }`.
|
|
1987
|
+
*
|
|
1988
|
+
* Works with SpotterEmbed as well as AppEmbed (when Spotter is reached
|
|
1989
|
+
* inside the full application).
|
|
1990
|
+
* @example
|
|
1991
|
+
* ```js
|
|
1992
|
+
* spotterEmbed.on(EmbedEvent.SpotterResponseComplete, (payload) => {
|
|
1993
|
+
* console.log('Spotter response complete', payload);
|
|
1994
|
+
* })
|
|
1995
|
+
* ```
|
|
1996
|
+
* @example
|
|
1997
|
+
* ```js
|
|
1998
|
+
* appEmbed.on(EmbedEvent.SpotterResponseComplete, (payload) => {
|
|
1999
|
+
* console.log('Spotter response complete', payload);
|
|
2000
|
+
* })
|
|
2001
|
+
* ```
|
|
2002
|
+
* @version SDK: 1.51.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
2003
|
+
*/
|
|
2004
|
+
EmbedEvent["SpotterResponseComplete"] = "spotterResponseComplete";
|
|
1802
2005
|
/**
|
|
1803
2006
|
* @hidden
|
|
1804
2007
|
* Emitted when the auth token is about to get expired and needs to be refreshed.
|
|
@@ -2153,6 +2356,7 @@ var HostEvent;
|
|
|
2153
2356
|
* const url = await appEmbed.trigger(HostEvent.GetIframeUrl, {}, ContextType.Answer);
|
|
2154
2357
|
* console.log("iFrameURL", url);
|
|
2155
2358
|
* ```
|
|
2359
|
+
* @returns iframeUrl - The URL currently loaded in the embedded iframe.
|
|
2156
2360
|
* @version SDK: 1.35.0 | ThoughtSpot: 10.4.0.cl
|
|
2157
2361
|
*/
|
|
2158
2362
|
HostEvent["GetIframeUrl"] = "GetIframeUrl";
|
|
@@ -2279,6 +2483,17 @@ var HostEvent;
|
|
|
2279
2483
|
* name: string,
|
|
2280
2484
|
* type: ATTRIBUTE/MEASURE,
|
|
2281
2485
|
* dataType: INT64/CHAR/DATE }
|
|
2486
|
+
*
|
|
2487
|
+
* `applicability` - Optional. Scopes the filter to a specific target,
|
|
2488
|
+
* for example, a single Liveboard tab, so the panel for the correct
|
|
2489
|
+
* scoped filter is opened. Available from SDK: 1.53.0 |
|
|
2490
|
+
* ThoughtSpot: 26.10.0.cl. Includes the following attributes:
|
|
2491
|
+
*
|
|
2492
|
+
* - `level`: The scope of the filter: `LIVEBOARD`, `TAB`, or `GROUP`.
|
|
2493
|
+
* - `targetId`: The GUID of the target, for example, the tab GUID.
|
|
2494
|
+
* Required when `level` is `TAB` or `GROUP`. Do not pass it when
|
|
2495
|
+
* `level` is `LIVEBOARD`, since the filter applies to the whole
|
|
2496
|
+
* Liveboard. Omitting `applicability` targets the `LIVEBOARD` level.
|
|
2282
2497
|
* @example
|
|
2283
2498
|
* ```js
|
|
2284
2499
|
* searchEmbed.trigger(HostEvent.OpenFilter,
|
|
@@ -2291,6 +2506,14 @@ var HostEvent;
|
|
|
2291
2506
|
* ```
|
|
2292
2507
|
* @example
|
|
2293
2508
|
* ```js
|
|
2509
|
+
* // Open a filter scoped to a specific Liveboard tab
|
|
2510
|
+
* liveboardEmbed.trigger(HostEvent.OpenFilter, {
|
|
2511
|
+
* column: { columnId: '<column-GUID>' },
|
|
2512
|
+
* applicability: { level: 'TAB', targetId: '<tab-GUID>' }
|
|
2513
|
+
* });
|
|
2514
|
+
* ```
|
|
2515
|
+
* @example
|
|
2516
|
+
* ```js
|
|
2294
2517
|
* // Open filter from search context
|
|
2295
2518
|
* import { ContextType } from '@thoughtspot/visual-embed-sdk';
|
|
2296
2519
|
* searchEmbed.trigger(HostEvent.OpenFilter, {
|
|
@@ -2300,6 +2523,73 @@ var HostEvent;
|
|
|
2300
2523
|
* @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl
|
|
2301
2524
|
*/
|
|
2302
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";
|
|
2561
|
+
/**
|
|
2562
|
+
* Open the parameter panel for a particular parameter on a Liveboard.
|
|
2563
|
+
* Mirrors {@link HostEvent.OpenFilter} for parameters.
|
|
2564
|
+
* @param - Includes the following keys:
|
|
2565
|
+
* - `parameter`: An object identifying the parameter to open, for
|
|
2566
|
+
* example, `{ parameterId: '<parameter-GUID>' }`.
|
|
2567
|
+
* - `applicability`: Optional. Scopes the parameter to a specific target,
|
|
2568
|
+
* for example, a single Liveboard tab, so the panel for the correct
|
|
2569
|
+
* scoped parameter is opened. Includes the following attributes:
|
|
2570
|
+
*
|
|
2571
|
+
* - `level`: The scope of the parameter: `LIVEBOARD`, `TAB`, or `GROUP`.
|
|
2572
|
+
* - `targetId`: The GUID of the target, for example, the tab GUID.
|
|
2573
|
+
* Required when `level` is `TAB` or `GROUP`. Do not pass it when
|
|
2574
|
+
* `level` is `LIVEBOARD`, since the parameter applies to the whole
|
|
2575
|
+
* Liveboard. Omitting `applicability` targets the `LIVEBOARD` level.
|
|
2576
|
+
* @example
|
|
2577
|
+
* ```js
|
|
2578
|
+
* liveboardEmbed.trigger(HostEvent.OpenParameter, {
|
|
2579
|
+
* parameter: { parameterId: '<parameter-GUID>' }
|
|
2580
|
+
* });
|
|
2581
|
+
* ```
|
|
2582
|
+
* @example
|
|
2583
|
+
* ```js
|
|
2584
|
+
* // Open a parameter scoped to a specific group
|
|
2585
|
+
* liveboardEmbed.trigger(HostEvent.OpenParameter, {
|
|
2586
|
+
* parameter: { parameterId: '<parameter-GUID>' },
|
|
2587
|
+
* applicability: { level: 'GROUP', targetId: '<group-GUID>' }
|
|
2588
|
+
* });
|
|
2589
|
+
* ```
|
|
2590
|
+
* @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
|
|
2591
|
+
*/
|
|
2592
|
+
HostEvent["OpenParameter"] = "openParameter";
|
|
2303
2593
|
/**
|
|
2304
2594
|
* Add columns to the current search query.
|
|
2305
2595
|
* @param - { columnIds: string[] }
|
|
@@ -2349,6 +2639,10 @@ var HostEvent;
|
|
|
2349
2639
|
* liveboardEmbed.trigger(HostEvent.getExportRequestForCurrentPinboard).then(
|
|
2350
2640
|
* data=>console.log(data))
|
|
2351
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`.
|
|
2352
2646
|
* @version SDK: 1.13.0 | ThoughtSpot: 8.5.0.cl, 8.8.1.sw
|
|
2353
2647
|
*/
|
|
2354
2648
|
HostEvent["getExportRequestForCurrentPinboard"] = "getExportRequestForCurrentPinboard";
|
|
@@ -2451,6 +2745,9 @@ var HostEvent;
|
|
|
2451
2745
|
* }, ContextType.Spotter);
|
|
2452
2746
|
* ```
|
|
2453
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.
|
|
2454
2751
|
* @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
|
|
2455
2752
|
*/
|
|
2456
2753
|
HostEvent["Pin"] = "pin";
|
|
@@ -2489,13 +2786,13 @@ var HostEvent;
|
|
|
2489
2786
|
* Trigger the **Manage schedule** action on an embedded Liveboard
|
|
2490
2787
|
* @example
|
|
2491
2788
|
* ```js
|
|
2492
|
-
* liveboardEmbed.trigger(HostEvent.
|
|
2789
|
+
* liveboardEmbed.trigger(HostEvent.SchedulesList)
|
|
2493
2790
|
* ```
|
|
2494
2791
|
* @example
|
|
2495
2792
|
* ```js
|
|
2496
2793
|
* // Manage schedules from liveboard context
|
|
2497
2794
|
* import { ContextType } from '@thoughtspot/visual-embed-sdk';
|
|
2498
|
-
* liveboardEmbed.trigger(HostEvent.
|
|
2795
|
+
* liveboardEmbed.trigger(HostEvent.SchedulesList, {}, ContextType.Liveboard);
|
|
2499
2796
|
* ```
|
|
2500
2797
|
* @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl, 8.8.1.sw
|
|
2501
2798
|
*/
|
|
@@ -2940,6 +3237,7 @@ var HostEvent;
|
|
|
2940
3237
|
* console.log(tml.answer);
|
|
2941
3238
|
* });
|
|
2942
3239
|
* ```
|
|
3240
|
+
* @returns The TML representation of the current Answer, as an object.
|
|
2943
3241
|
* @version SDK: 1.18.0 | ThoughtSpot: 8.10.0.cl, 9.0.1.sw
|
|
2944
3242
|
* @important
|
|
2945
3243
|
*/
|
|
@@ -3364,6 +3662,14 @@ var HostEvent;
|
|
|
3364
3662
|
/**
|
|
3365
3663
|
* Get details of filters applied on the Liveboard.
|
|
3366
3664
|
* Returns arrays containing Liveboard filter and runtime filter elements.
|
|
3665
|
+
* Each Liveboard filter includes an optional `applicability` attribute
|
|
3666
|
+
* indicating the scope of the filter. It contains a `level`
|
|
3667
|
+
* (`LIVEBOARD`, `TAB`, or `GROUP`) and, when `level` is `TAB` or
|
|
3668
|
+
* `GROUP`, a `targetId` with the GUID of the target. At `LIVEBOARD`
|
|
3669
|
+
* level there is no `targetId`, since the filter applies to the
|
|
3670
|
+
* whole Liveboard.
|
|
3671
|
+
* The `applicability` attribute is available from SDK: 1.53.0 |
|
|
3672
|
+
* ThoughtSpot: 26.10.0.cl.
|
|
3367
3673
|
* @example
|
|
3368
3674
|
* ```js
|
|
3369
3675
|
* const data = await liveboardEmbed.trigger(HostEvent.GetFilters);
|
|
@@ -3376,6 +3682,8 @@ var HostEvent;
|
|
|
3376
3682
|
* const data = await liveboardEmbed.trigger(HostEvent.GetFilters, {}, ContextType.Liveboard);
|
|
3377
3683
|
* console.log('filters', data);
|
|
3378
3684
|
* ```
|
|
3685
|
+
* @returns liveboardFilters - Filters applied on the Liveboard.
|
|
3686
|
+
* @returns runtimeFilters - Runtime filters applied on the Liveboard.
|
|
3379
3687
|
* @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
|
|
3380
3688
|
*/
|
|
3381
3689
|
HostEvent["GetFilters"] = "getFilters";
|
|
@@ -3403,6 +3711,16 @@ var HostEvent;
|
|
|
3403
3711
|
*
|
|
3404
3712
|
* `type` - To update filters for date time, specify the date format type.
|
|
3405
3713
|
* For more information and examples, see link:https://developers.thoughtspot.com/docs/embed-liveboard#_date_filters[Date filters].
|
|
3714
|
+
*
|
|
3715
|
+
* `applicability` - Optional. Scopes the filter to a specific target,
|
|
3716
|
+
* for example, a single Liveboard tab. Available from SDK: 1.53.0 |
|
|
3717
|
+
* ThoughtSpot: 26.10.0.cl. Includes the following attributes:
|
|
3718
|
+
*
|
|
3719
|
+
* - `level`: The scope of the filter: `LIVEBOARD`, `TAB`, or `GROUP`.
|
|
3720
|
+
* - `targetId`: The GUID of the target, for example, the tab GUID.
|
|
3721
|
+
* Required when `level` is `TAB` or `GROUP`. Do not pass it when
|
|
3722
|
+
* `level` is `LIVEBOARD`, since the filter applies to the whole
|
|
3723
|
+
* Liveboard.
|
|
3406
3724
|
* @example
|
|
3407
3725
|
* ```js
|
|
3408
3726
|
*
|
|
@@ -3479,6 +3797,21 @@ var HostEvent;
|
|
|
3479
3797
|
* }
|
|
3480
3798
|
* }, ContextType.Liveboard);
|
|
3481
3799
|
* ```
|
|
3800
|
+
* @example
|
|
3801
|
+
* ```js
|
|
3802
|
+
* // Scope the filter to a specific Liveboard tab
|
|
3803
|
+
* liveboardEmbed.trigger(HostEvent.UpdateFilters, {
|
|
3804
|
+
* filter: {
|
|
3805
|
+
* column: "item type",
|
|
3806
|
+
* oper: "IN",
|
|
3807
|
+
* values: ["bags", "shirts"],
|
|
3808
|
+
* applicability: {
|
|
3809
|
+
* level: "TAB",
|
|
3810
|
+
* targetId: "e0836cad-4fdf-42d4-bd97-567a6b2a6058"
|
|
3811
|
+
* }
|
|
3812
|
+
* }
|
|
3813
|
+
* });
|
|
3814
|
+
* ```
|
|
3482
3815
|
* @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
|
|
3483
3816
|
*/
|
|
3484
3817
|
HostEvent["UpdateFilters"] = "updateFilters";
|
|
@@ -3500,9 +3833,37 @@ var HostEvent;
|
|
|
3500
3833
|
* console.log('tabs', tabDetails);
|
|
3501
3834
|
* });
|
|
3502
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`.
|
|
3503
3839
|
* @version SDK: 1.26.0 | ThoughtSpot: 9.7.0.cl
|
|
3504
3840
|
*/
|
|
3505
3841
|
HostEvent["GetTabs"] = "getTabs";
|
|
3842
|
+
/**
|
|
3843
|
+
* Get group details for the current Liveboard.
|
|
3844
|
+
* Mirrors {@link HostEvent.GetTabs} for filter/parameter groups.
|
|
3845
|
+
* @example
|
|
3846
|
+
* ```js
|
|
3847
|
+
* liveboardEmbed.trigger(HostEvent.GetGroups).then((groupDetails) => {
|
|
3848
|
+
* console.log(
|
|
3849
|
+
* groupDetails // GroupDetails of current Liveboard
|
|
3850
|
+
* );
|
|
3851
|
+
* })
|
|
3852
|
+
* ```
|
|
3853
|
+
* @example
|
|
3854
|
+
* ```js
|
|
3855
|
+
* // Get groups from liveboard context
|
|
3856
|
+
* import { ContextType } from '@thoughtspot/visual-embed-sdk';
|
|
3857
|
+
* liveboardEmbed.trigger(HostEvent.GetGroups, {}, ContextType.Liveboard).then((groupDetails) => {
|
|
3858
|
+
* console.log('groups', groupDetails);
|
|
3859
|
+
* });
|
|
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`.
|
|
3864
|
+
* @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
|
|
3865
|
+
*/
|
|
3866
|
+
HostEvent["GetGroups"] = "getGroups";
|
|
3506
3867
|
/**
|
|
3507
3868
|
* Set the visible tabs on a Liveboard.
|
|
3508
3869
|
* @param - an array of ids of tabs to show, the IDs not passed
|
|
@@ -3574,6 +3935,9 @@ var HostEvent;
|
|
|
3574
3935
|
* // Alternative direct usage (not recommended)
|
|
3575
3936
|
* const {session} = await embed.trigger( HostEvent.GetAnswerSession )
|
|
3576
3937
|
* ```
|
|
3938
|
+
* @returns session - Session identifier for the Answer, for use with the
|
|
3939
|
+
* `AnswerService`.
|
|
3940
|
+
* @returns embedAnswerData - Data backing the Answer, when available.
|
|
3577
3941
|
* @version SDK: 1.26.0 | ThoughtSpot: 9.10.0.cl, 10.1.0.sw
|
|
3578
3942
|
*/
|
|
3579
3943
|
HostEvent["GetAnswerSession"] = "getAnswerSession";
|
|
@@ -3630,6 +3994,15 @@ var HostEvent;
|
|
|
3630
3994
|
* - `name`: Name of the parameter.
|
|
3631
3995
|
* - `value`: The value to set for the parameter.
|
|
3632
3996
|
* - `isVisibleToUser`: Optional. To control the visibility of the parameter chip.
|
|
3997
|
+
* - `applicability`: Optional. Scopes the parameter to a specific target,
|
|
3998
|
+
* for example, a single Liveboard tab. Available from SDK: 1.53.0 |
|
|
3999
|
+
* ThoughtSpot: 26.10.0.cl. Includes the following attributes:
|
|
4000
|
+
*
|
|
4001
|
+
* - `level`: The scope of the parameter: `LIVEBOARD`, `TAB`, or `GROUP`.
|
|
4002
|
+
* - `targetId`: The GUID of the target, for example, the tab GUID.
|
|
4003
|
+
* Required when `level` is `TAB` or `GROUP`. Do not pass it when
|
|
4004
|
+
* `level` is `LIVEBOARD`, since the parameter applies to the whole
|
|
4005
|
+
* Liveboard.
|
|
3633
4006
|
*
|
|
3634
4007
|
* @example
|
|
3635
4008
|
* ```js
|
|
@@ -3641,6 +4014,18 @@ var HostEvent;
|
|
|
3641
4014
|
* ```
|
|
3642
4015
|
* @example
|
|
3643
4016
|
* ```js
|
|
4017
|
+
* // Scope the parameter to a specific Liveboard tab
|
|
4018
|
+
* liveboardEmbed.trigger(HostEvent.UpdateParameters, [{
|
|
4019
|
+
* name: "Integer Range Param",
|
|
4020
|
+
* value: 10,
|
|
4021
|
+
* applicability: {
|
|
4022
|
+
* level: "TAB",
|
|
4023
|
+
* targetId: "e0836cad-4fdf-42d4-bd97-567a6b2a6058"
|
|
4024
|
+
* }
|
|
4025
|
+
* }])
|
|
4026
|
+
* ```
|
|
4027
|
+
* @example
|
|
4028
|
+
* ```js
|
|
3644
4029
|
* // Update parameters from liveboard context
|
|
3645
4030
|
* import { ContextType } from '@thoughtspot/visual-embed-sdk';
|
|
3646
4031
|
* liveboardEmbed.trigger(HostEvent.UpdateParameters, [{
|
|
@@ -3654,6 +4039,14 @@ var HostEvent;
|
|
|
3654
4039
|
HostEvent["UpdateParameters"] = "UpdateParameters";
|
|
3655
4040
|
/**
|
|
3656
4041
|
* Triggers GetParameters to fetch the runtime Parameters.
|
|
4042
|
+
* Each parameter includes an optional `applicability` attribute
|
|
4043
|
+
* indicating the scope of the parameter. It contains a `level`
|
|
4044
|
+
* (`LIVEBOARD`, `TAB`, or `GROUP`) and, when `level` is `TAB` or
|
|
4045
|
+
* `GROUP`, a `targetId` with the GUID of the target. At `LIVEBOARD`
|
|
4046
|
+
* level there is no `targetId`, since the parameter applies to the
|
|
4047
|
+
* whole Liveboard.
|
|
4048
|
+
* The `applicability` attribute is available from SDK: 1.53.0 |
|
|
4049
|
+
* ThoughtSpot: 26.10.0.cl.
|
|
3657
4050
|
* @param - `vizId` refers to the Answer ID in Spotter embed and is required in Spotter embed.
|
|
3658
4051
|
* ```js
|
|
3659
4052
|
* liveboardEmbed.trigger(HostEvent.GetParameters).then((parameter) => {
|
|
@@ -3678,12 +4071,16 @@ var HostEvent;
|
|
|
3678
4071
|
* console.log('parameters', parameters);
|
|
3679
4072
|
* });
|
|
3680
4073
|
* ```
|
|
4074
|
+
* @returns parameters - Parameters currently applied on the Liveboard.
|
|
3681
4075
|
* @version SDK: 1.29.0 | ThoughtSpot: 10.1.0.cl, 10.1.0.sw
|
|
3682
4076
|
*/
|
|
3683
4077
|
HostEvent["GetParameters"] = "GetParameters";
|
|
3684
4078
|
/**
|
|
3685
4079
|
* Triggers an event to update a personalized view of a Liveboard.
|
|
3686
|
-
* 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.
|
|
3687
4084
|
* ```js
|
|
3688
4085
|
* liveboardEmbed.trigger(HostEvent.UpdatePersonalisedView, {viewId: '1234'})
|
|
3689
4086
|
* ```
|
|
@@ -3701,10 +4098,15 @@ var HostEvent;
|
|
|
3701
4098
|
HostEvent["UpdatePersonalisedView"] = "UpdatePersonalisedView";
|
|
3702
4099
|
/**
|
|
3703
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.
|
|
3704
4105
|
* ```js
|
|
3705
4106
|
* liveboardEmbed.trigger(HostEvent.UpdatePersonalisedView, {viewId: '1234'})
|
|
3706
4107
|
* ```
|
|
3707
4108
|
* @version SDK: 1.48.0 | ThoughtSpot: 26.5.0.cl
|
|
4109
|
+
* @deprecated SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
|
|
3708
4110
|
*/
|
|
3709
4111
|
HostEvent["UpdatePersonalizedView"] = "UpdatePersonalisedView";
|
|
3710
4112
|
/**
|
|
@@ -3807,6 +4209,10 @@ var HostEvent;
|
|
|
3807
4209
|
* description: "Generated from Spotter"
|
|
3808
4210
|
* }, ContextType.Spotter);
|
|
3809
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.
|
|
3810
4216
|
* @version SDK: 1.36.0 | ThoughtSpot: 10.6.0.cl
|
|
3811
4217
|
*/
|
|
3812
4218
|
HostEvent["SaveAnswer"] = "saveAnswer";
|
|
@@ -3920,6 +4326,36 @@ var HostEvent;
|
|
|
3920
4326
|
* @version SDK: 1.40.0 | ThoughtSpot: 10.11.0.cl
|
|
3921
4327
|
*/
|
|
3922
4328
|
HostEvent["ResetSpotterConversation"] = "ResetSpotterConversation";
|
|
4329
|
+
/**
|
|
4330
|
+
* Opens the Spotter share-conversation modal for the given conversation.
|
|
4331
|
+
* `conversationId` is **mandatory** — you must pass the id of the
|
|
4332
|
+
* conversation to share. Also no-op when sharing is disabled
|
|
4333
|
+
* (enableShareConversation off) or when already in the read-only shared view.
|
|
4334
|
+
* @example
|
|
4335
|
+
* ```js
|
|
4336
|
+
* spotterEmbed.trigger(HostEvent.ShareSpotterConversation, { conversationId: 'abc' });
|
|
4337
|
+
* ```
|
|
4338
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
4339
|
+
*/
|
|
4340
|
+
HostEvent["ShareSpotterConversation"] = "ShareSpotterConversation";
|
|
4341
|
+
/**
|
|
4342
|
+
* Closes the Spotter share-conversation modal. No-op if none is open.
|
|
4343
|
+
* @example
|
|
4344
|
+
* ```js
|
|
4345
|
+
* spotterEmbed.trigger(HostEvent.CloseSpotterShareConversation);
|
|
4346
|
+
* ```
|
|
4347
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
4348
|
+
*/
|
|
4349
|
+
HostEvent["CloseSpotterShareConversation"] = "CloseSpotterShareConversation";
|
|
4350
|
+
/**
|
|
4351
|
+
* Exits the read-only shared-conversation view.
|
|
4352
|
+
* @example
|
|
4353
|
+
* ```js
|
|
4354
|
+
* spotterEmbed.trigger(HostEvent.ExitSpotterSharedConversation);
|
|
4355
|
+
* ```
|
|
4356
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
4357
|
+
*/
|
|
4358
|
+
HostEvent["ExitSpotterSharedConversation"] = "ExitSpotterSharedConversation";
|
|
3923
4359
|
/**
|
|
3924
4360
|
* Deletes the last prompt in spotter embed.
|
|
3925
4361
|
* @example
|
|
@@ -4015,6 +4451,41 @@ var HostEvent;
|
|
|
4015
4451
|
* @version SDK: 1.45.0 | ThoughtSpot: 26.2.0.cl
|
|
4016
4452
|
*/
|
|
4017
4453
|
HostEvent["StartNewSpotterConversation"] = "StartNewSpotterConversation";
|
|
4454
|
+
/**
|
|
4455
|
+
* Pins a saved Spotter conversation so it floats to the top of the past
|
|
4456
|
+
* conversations sidebar. The `conversationId` of the conversation to pin is
|
|
4457
|
+
* required.
|
|
4458
|
+
*
|
|
4459
|
+
* This feature is available only when chat history is enabled on your ThoughtSpot
|
|
4460
|
+
* instance. Contact your admin or ThoughtSpot Support to enable chat history on your
|
|
4461
|
+
* instance.
|
|
4462
|
+
*
|
|
4463
|
+
* @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
|
|
4464
|
+
* @example
|
|
4465
|
+
* ```js
|
|
4466
|
+
* spotterEmbed.trigger(HostEvent.PinSpotterConversation, {
|
|
4467
|
+
* conversationId: '<conversation-id>',
|
|
4468
|
+
* });
|
|
4469
|
+
* ```
|
|
4470
|
+
*/
|
|
4471
|
+
HostEvent["PinSpotterConversation"] = "PinSpotterConversation";
|
|
4472
|
+
/**
|
|
4473
|
+
* Unpins a previously pinned Spotter conversation. The `conversationId` of the
|
|
4474
|
+
* conversation to unpin is required.
|
|
4475
|
+
*
|
|
4476
|
+
* This feature is available only when chat history is enabled on your ThoughtSpot
|
|
4477
|
+
* instance. Contact your admin or ThoughtSpot Support to enable chat history on your
|
|
4478
|
+
* instance.
|
|
4479
|
+
*
|
|
4480
|
+
* @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
|
|
4481
|
+
* @example
|
|
4482
|
+
* ```js
|
|
4483
|
+
* spotterEmbed.trigger(HostEvent.UnpinSpotterConversation, {
|
|
4484
|
+
* conversationId: '<conversation-id>',
|
|
4485
|
+
* });
|
|
4486
|
+
* ```
|
|
4487
|
+
*/
|
|
4488
|
+
HostEvent["UnpinSpotterConversation"] = "UnpinSpotterConversation";
|
|
4018
4489
|
/**
|
|
4019
4490
|
* @hidden
|
|
4020
4491
|
* Get the current context of the embedded page.
|
|
@@ -4223,6 +4694,7 @@ var Param;
|
|
|
4223
4694
|
Param["NumberFormatLocale"] = "numberFormatLocale";
|
|
4224
4695
|
Param["CurrencyFormat"] = "currencyFormat";
|
|
4225
4696
|
Param["Enable2ColumnLayout"] = "enable2ColumnLayout";
|
|
4697
|
+
Param["IsLiveboardAlwaysOn12ColLayout"] = "isLiveboardAlwaysOn12ColLayout";
|
|
4226
4698
|
Param["IsFullAppEmbed"] = "isFullAppEmbed";
|
|
4227
4699
|
Param["IsOnBeforeGetVizDataInterceptEnabled"] = "isOnBeforeGetVizDataInterceptEnabled";
|
|
4228
4700
|
Param["FocusSearchBarOnRender"] = "focusSearchBarOnRender";
|
|
@@ -4236,6 +4708,7 @@ var Param;
|
|
|
4236
4708
|
Param["SpotterEnabled"] = "isSpotterExperienceEnabled";
|
|
4237
4709
|
Param["IsUnifiedSearchExperienceEnabled"] = "isUnifiedSearchExperienceEnabled";
|
|
4238
4710
|
Param["OverrideOrgId"] = "orgId";
|
|
4711
|
+
Param["OverrideHistoryState"] = "overrideHistoryState";
|
|
4239
4712
|
Param["OauthPollingInterval"] = "oAuthPollingInterval";
|
|
4240
4713
|
Param["IsForceRedirect"] = "isForceRedirect";
|
|
4241
4714
|
Param["DataSourceId"] = "dataSourceId";
|
|
@@ -4245,6 +4718,7 @@ var Param;
|
|
|
4245
4718
|
Param["PrimaryAction"] = "primaryAction";
|
|
4246
4719
|
Param["isSpotterAgentEmbed"] = "isSpotterAgentEmbed";
|
|
4247
4720
|
Param["IsLiveboardStylingAndGroupingEnabled"] = "isLiveboardStylingAndGroupingEnabled";
|
|
4721
|
+
Param["LiveboardGutter"] = "liveboardGutter";
|
|
4248
4722
|
Param["IsLazyLoadingForEmbedEnabled"] = "isLazyLoadingForEmbedEnabled";
|
|
4249
4723
|
Param["RootMarginForLazyLoad"] = "rootMarginForLazyLoad";
|
|
4250
4724
|
Param["isPNGInScheduledEmailsEnabled"] = "isPNGInScheduledEmailsEnabled";
|
|
@@ -4253,9 +4727,12 @@ var Param;
|
|
|
4253
4727
|
Param["isGranularXLSXCSVSchedulesEnabled"] = "isGranularXLSXCSVSchedulesEnabled";
|
|
4254
4728
|
Param["isSendNowLiveboardSchedulingEnabled"] = "isSendNowLiveboardSchedulingEnabled";
|
|
4255
4729
|
Param["isCentralizedLiveboardFilterUXEnabled"] = "isCentralizedLiveboardFilterUXEnabled";
|
|
4730
|
+
Param["isScopedLiveboardFilteringEnabled"] = "isScopedLiveboardFilteringEnabled";
|
|
4256
4731
|
Param["isLinkParametersEnabled"] = "isLinkParametersEnabled";
|
|
4257
4732
|
Param["EnablePastConversationsSidebar"] = "enablePastConversationsSidebar";
|
|
4258
4733
|
Param["UpdatedSpotterChatPrompt"] = "updatedSpotterChatPrompt";
|
|
4734
|
+
Param["ShowSpotterRadiance"] = "showSpotterRadiance";
|
|
4735
|
+
Param["DefaultQueryMode"] = "defaultQueryMode";
|
|
4259
4736
|
Param["EnableStopAnswerGenerationEmbed"] = "enableStopAnswerGenerationEmbed";
|
|
4260
4737
|
Param["SpotterSidebarTitle"] = "spotterSidebarTitle";
|
|
4261
4738
|
Param["SpotterSidebarDefaultExpanded"] = "spotterSidebarDefaultExpanded";
|
|
@@ -4275,14 +4752,19 @@ var Param;
|
|
|
4275
4752
|
Param["SpotterFileUploadEnabled"] = "spotterFileUploadEnabled";
|
|
4276
4753
|
Param["SpotterFileUploadFileTypes"] = "spotterFileUploadFileTypes";
|
|
4277
4754
|
Param["IsStarterPromptsEnabled"] = "enableStarterPrompts";
|
|
4755
|
+
Param["UpdatedSpotterExperience"] = "updatedSpotterExperience";
|
|
4756
|
+
Param["SpotterDataSources"] = "spotterDataSources";
|
|
4757
|
+
Param["AnalystId"] = "analystId";
|
|
4758
|
+
Param["OpenSpotterOnLiveboardByDefault"] = "openSpotterOnLiveboardByDefault";
|
|
4278
4759
|
})(Param || (Param = {}));
|
|
4279
4760
|
/**
|
|
4280
4761
|
* ThoughtSpot application pages include actions and menu commands
|
|
4281
4762
|
* for various user-initiated operations. These actions are represented
|
|
4282
4763
|
* as enumeration members in the SDK. To control actions in the embedded view:
|
|
4283
|
-
* - disabledActions — the action is grayed out and still visible, but non-interactive
|
|
4284
|
-
* - hiddenActions — the action is completely removed from
|
|
4285
|
-
* - 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.
|
|
4286
4768
|
*
|
|
4287
4769
|
* Use disabledActions to disable (gray out) an action.
|
|
4288
4770
|
* Use hiddenActions to hide (fully remove) an action.
|
|
@@ -4336,6 +4818,17 @@ var Action;
|
|
|
4336
4818
|
* ```
|
|
4337
4819
|
*/
|
|
4338
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";
|
|
4339
4832
|
/**
|
|
4340
4833
|
* The **Make a copy** action on a Liveboard or Answer
|
|
4341
4834
|
* page. Creates a copy of the Liveboard.
|
|
@@ -5539,6 +6032,19 @@ var Action;
|
|
|
5539
6032
|
* @version SDK: 1.36.0 | ThoughtSpot Cloud: 10.6.0.cl
|
|
5540
6033
|
*/
|
|
5541
6034
|
Action["ChangeFilterVisibilityInTab"] = "changeFilterVisibilityInTab";
|
|
6035
|
+
/**
|
|
6036
|
+
* Action ID to show, hide, or disable all filter surfaces on a Liveboard,
|
|
6037
|
+
* including filter, parameter, and cross-filter chips at the liveboard,
|
|
6038
|
+
* tab, and group levels. Parameter and cross-filter chips are hide-only.
|
|
6039
|
+
*
|
|
6040
|
+
* @example
|
|
6041
|
+
* ```js
|
|
6042
|
+
* hiddenActions: [Action.AllLiveboardFilters]
|
|
6043
|
+
* disabledActions: [Action.AllLiveboardFilters]
|
|
6044
|
+
* ```
|
|
6045
|
+
* @version SDK: 1.53.0 | ThoughtSpot: 26.10.0.cl
|
|
6046
|
+
*/
|
|
6047
|
+
Action["AllLiveboardFilters"] = "allLiveboardFilters";
|
|
5542
6048
|
/**
|
|
5543
6049
|
* The **Data model instructions** button on the Spotter interface.
|
|
5544
6050
|
* Allows opening the data model instructions modal.
|
|
@@ -5640,6 +6146,10 @@ var Action;
|
|
|
5640
6146
|
* The **Add to Coaching** feature allows adding reference questions and
|
|
5641
6147
|
* business terms to improve Spotter’s responses. This feature is generally available
|
|
5642
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).
|
|
5643
6153
|
* @example
|
|
5644
6154
|
* ```js
|
|
5645
6155
|
* hiddenAction: [Action.InConversationTraining]
|
|
@@ -5874,6 +6384,89 @@ var Action;
|
|
|
5874
6384
|
* @version SDK: 1.46.0 | ThoughtSpot Cloud: 26.3.0.cl
|
|
5875
6385
|
*/
|
|
5876
6386
|
Action["SpotterChatRename"] = "spotterChatRename";
|
|
6387
|
+
/**
|
|
6388
|
+
* Controls visibility and disable state of the Spotter conversation Share
|
|
6389
|
+
* button in the chat header. Only takes effect once sharing is enabled
|
|
6390
|
+
* (enableShareConversation on).
|
|
6391
|
+
* @example
|
|
6392
|
+
* ```js
|
|
6393
|
+
* disabledActions: [Action.SpotterShareConversationButtonHeader]
|
|
6394
|
+
* ```
|
|
6395
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
6396
|
+
*/
|
|
6397
|
+
Action["SpotterShareConversationButtonHeader"] = "spotterShareConversationButtonHeader";
|
|
6398
|
+
/**
|
|
6399
|
+
* Controls visibility and disable state of the Share item in the Spotter
|
|
6400
|
+
* conversation history (sidebar) edit menu. Independent of the header button
|
|
6401
|
+
* above, so a host can show Share in one entry point and hide it in the other.
|
|
6402
|
+
* @example
|
|
6403
|
+
* ```js
|
|
6404
|
+
* disabledActions: [Action.SpotterShareConversationMenuItemSidebar]
|
|
6405
|
+
* ```
|
|
6406
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
6407
|
+
*/
|
|
6408
|
+
Action["SpotterShareConversationMenuItemSidebar"] = "spotterShareConversationMenuItemSidebar";
|
|
6409
|
+
/**
|
|
6410
|
+
* Controls visibility of the entire read-only shared-conversation data-access
|
|
6411
|
+
* banner shown when a recipient opens a shared view. Hide-only.
|
|
6412
|
+
* @example
|
|
6413
|
+
* ```js
|
|
6414
|
+
* hiddenActions: [Action.SpotterSharedConversationBanner]
|
|
6415
|
+
* ```
|
|
6416
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
6417
|
+
*/
|
|
6418
|
+
Action["SpotterSharedConversationBanner"] = "spotterSharedConversationBanner";
|
|
6419
|
+
/**
|
|
6420
|
+
* Controls visibility and disable state of the cross/close button on the
|
|
6421
|
+
* read-only shared-conversation data-access banner (keeps the banner itself).
|
|
6422
|
+
* @example
|
|
6423
|
+
* ```js
|
|
6424
|
+
* hiddenActions: [Action.SpotterSharedConversationBannerDismissButton]
|
|
6425
|
+
* ```
|
|
6426
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
6427
|
+
*/
|
|
6428
|
+
Action["SpotterSharedConversationBannerDismissButton"] = "spotterSharedConversationBannerDismissButton";
|
|
6429
|
+
/**
|
|
6430
|
+
* Controls visibility and disable state of the Exit button in the read-only
|
|
6431
|
+
* shared-view header. Hiding it does not disable the ExitSpotterSharedConversation
|
|
6432
|
+
* host event.
|
|
6433
|
+
* @example
|
|
6434
|
+
* ```js
|
|
6435
|
+
* hiddenActions: [Action.SpotterSharedConversationExitButton]
|
|
6436
|
+
* ```
|
|
6437
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
6438
|
+
*/
|
|
6439
|
+
Action["SpotterSharedConversationExitButton"] = "spotterSharedConversationExitButton";
|
|
6440
|
+
/**
|
|
6441
|
+
* Controls visibility of the share-modal footer note ("Chat will be shared up
|
|
6442
|
+
* to the current moment…"). Hide-only.
|
|
6443
|
+
* @example
|
|
6444
|
+
* ```js
|
|
6445
|
+
* hiddenActions: [Action.SpotterShareUpToCurrentInfo]
|
|
6446
|
+
* ```
|
|
6447
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
6448
|
+
*/
|
|
6449
|
+
Action["SpotterShareUpToCurrentInfo"] = "spotterShareUpToCurrentInfo";
|
|
6450
|
+
/**
|
|
6451
|
+
* Controls visibility and disable state of the share-modal "include new
|
|
6452
|
+
* messages since last shared version" checkbox.
|
|
6453
|
+
* @example
|
|
6454
|
+
* ```js
|
|
6455
|
+
* disabledActions: [Action.SpotterShareIncludeNewMessagesCheckbox]
|
|
6456
|
+
* ```
|
|
6457
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
6458
|
+
*/
|
|
6459
|
+
Action["SpotterShareIncludeNewMessagesCheckbox"] = "spotterShareIncludeNewMessagesCheckbox";
|
|
6460
|
+
/**
|
|
6461
|
+
* Controls visibility and disable state of the cross on the share-modal
|
|
6462
|
+
* stale-snapshot info banner.
|
|
6463
|
+
* @example
|
|
6464
|
+
* ```js
|
|
6465
|
+
* hiddenActions: [Action.SpotterShareStaleInfoBannerDismissButton]
|
|
6466
|
+
* ```
|
|
6467
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
6468
|
+
*/
|
|
6469
|
+
Action["SpotterShareStaleInfoBannerDismissButton"] = "spotterShareStaleInfoBannerDismissButton";
|
|
5877
6470
|
/**
|
|
5878
6471
|
* Controls visibility and disable state of the delete action
|
|
5879
6472
|
* in the Spotter conversation edit menu.
|
|
@@ -5884,6 +6477,16 @@ var Action;
|
|
|
5884
6477
|
* @version SDK: 1.46.0 | ThoughtSpot Cloud: 26.3.0.cl
|
|
5885
6478
|
*/
|
|
5886
6479
|
Action["SpotterChatDelete"] = "spotterChatDelete";
|
|
6480
|
+
/**
|
|
6481
|
+
* Controls visibility and disable state of the pin/unpin action
|
|
6482
|
+
* in the Spotter conversation edit menu.
|
|
6483
|
+
* @version SDK: 1.53.0 | ThoughtSpot Cloud: 26.10.0.cl
|
|
6484
|
+
* @example
|
|
6485
|
+
* ```js
|
|
6486
|
+
* disabledActions: [Action.SpotterChatPin]
|
|
6487
|
+
* ```
|
|
6488
|
+
*/
|
|
6489
|
+
Action["SpotterChatPin"] = "spotterChatPin";
|
|
5887
6490
|
/**
|
|
5888
6491
|
* Controls visibility and disable state of the documentation/best practices
|
|
5889
6492
|
* link in the Spotter sidebar footer.
|
|
@@ -5927,6 +6530,56 @@ var Action;
|
|
|
5927
6530
|
* @version SDK: 1.48.0 | ThoughtSpot Cloud: 26.5.0.cl
|
|
5928
6531
|
*/
|
|
5929
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";
|
|
5930
6583
|
/**
|
|
5931
6584
|
* The **Include current period** checkbox for date filters.
|
|
5932
6585
|
* Controls the visibility and availability of the option to include
|
|
@@ -6075,6 +6728,38 @@ var Action;
|
|
|
6075
6728
|
* ```
|
|
6076
6729
|
*/
|
|
6077
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";
|
|
6078
6763
|
})(Action || (Action = {}));
|
|
6079
6764
|
var PrefetchFeatures;
|
|
6080
6765
|
(function (PrefetchFeatures) {
|
|
@@ -6362,6 +7047,8 @@ var EmbedErrorCodes;
|
|
|
6362
7047
|
EmbedErrorCodes["UPDATEFILTERS_INVALID_PAYLOAD"] = "UPDATEFILTERS_INVALID_PAYLOAD";
|
|
6363
7048
|
/** DrillDown payload is invalid - missing or malformed points */
|
|
6364
7049
|
EmbedErrorCodes["DRILLDOWN_INVALID_PAYLOAD"] = "DRILLDOWN_INVALID_PAYLOAD";
|
|
7050
|
+
/** UpdateParameters payload is invalid - malformed applicability */
|
|
7051
|
+
EmbedErrorCodes["UPDATEPARAMETERS_INVALID_PAYLOAD"] = "UPDATEPARAMETERS_INVALID_PAYLOAD";
|
|
6365
7052
|
})(EmbedErrorCodes || (EmbedErrorCodes = {}));
|
|
6366
7053
|
/**
|
|
6367
7054
|
* Context types for specifying the page context when triggering host events.
|
|
@@ -6540,7 +7227,7 @@ var TableContentDensity;
|
|
|
6540
7227
|
TableContentDensity["Compact"] = "COMPACT";
|
|
6541
7228
|
})(TableContentDensity || (TableContentDensity = {}));
|
|
6542
7229
|
|
|
6543
|
-
var version$1="1.
|
|
7230
|
+
var version$1="1.51.0-test";var pkg = {version:version$1};
|
|
6544
7231
|
|
|
6545
7232
|
const { version } = pkg;
|
|
6546
7233
|
|
|
@@ -6686,7 +7373,6 @@ merge$1.withOptions = (options, ...objects) => {
|
|
|
6686
7373
|
|
|
6687
7374
|
const ERROR_MESSAGE = {
|
|
6688
7375
|
INVALID_THOUGHTSPOT_HOST: 'Error parsing ThoughtSpot host. Please provide a valid URL.',
|
|
6689
|
-
SPOTTER_EMBED_WORKSHEED_ID_NOT_FOUND: 'Please select a Model to get started',
|
|
6690
7376
|
LIVEBOARD_VIZ_ID_VALIDATION: 'Please select a Liveboard to embed.',
|
|
6691
7377
|
TRIGGER_TIMED_OUT: 'Trigger timed-out in getting a response',
|
|
6692
7378
|
SEARCHEMBED_BETA_WRANING_MESSAGE: 'SearchEmbed is in Beta in this release.',
|
|
@@ -6716,6 +7402,7 @@ const ERROR_MESSAGE = {
|
|
|
6716
7402
|
INVALID_SPOTTER_DOCUMENTATION_URL: 'Invalid spotterDocumentationUrl. Please provide a valid http or https URL.',
|
|
6717
7403
|
UPDATEFILTERS_INVALID_PAYLOAD: 'UpdateFilters requires a valid filter or filters array. Expected: { filter: { column, oper, values } } or { filters: [{ column, oper, values }, ...] }',
|
|
6718
7404
|
DRILLDOWN_INVALID_PAYLOAD: 'DrillDown requires a valid points object. Expected: { points: { clickedPoint?, selectedPoints? }, autoDrillDown?, vizId? }',
|
|
7405
|
+
UPDATEPARAMETERS_INVALID_PAYLOAD: 'UpdateParameters received an invalid applicability. Expected: { level: LIVEBOARD | TAB | GROUP, targetId } where targetId is required for TAB and GROUP levels',
|
|
6719
7406
|
};
|
|
6720
7407
|
const CUSTOM_ACTIONS_ERROR_MESSAGE = {
|
|
6721
7408
|
INVALID_ACTION_OBJECT: 'Custom Action Validation Error: Invalid action object provided',
|
|
@@ -6834,7 +7521,7 @@ const getCssDimension = (value) => {
|
|
|
6834
7521
|
* @returns true if the value is a valid CSS margin value, false otherwise
|
|
6835
7522
|
*/
|
|
6836
7523
|
const isValidCssMargin = (value) => {
|
|
6837
|
-
if (isUndefined(value)) {
|
|
7524
|
+
if (isUndefined$1(value)) {
|
|
6838
7525
|
return false;
|
|
6839
7526
|
}
|
|
6840
7527
|
if (typeof value !== 'string') {
|
|
@@ -7043,7 +7730,7 @@ const removeStyleProperties = (element, styleProperties) => {
|
|
|
7043
7730
|
element.style.removeProperty(styleProperty);
|
|
7044
7731
|
});
|
|
7045
7732
|
};
|
|
7046
|
-
const isUndefined = (value) => value === undefined;
|
|
7733
|
+
const isUndefined$1 = (value) => value === undefined;
|
|
7047
7734
|
// Return if the value is a string, double or boolean.
|
|
7048
7735
|
const getTypeFromValue = (value) => {
|
|
7049
7736
|
if (typeof value === 'string') {
|
|
@@ -7347,8 +8034,74 @@ const setParamIfDefined = (queryParams, param, value, asBoolean = false) => {
|
|
|
7347
8034
|
}
|
|
7348
8035
|
};
|
|
7349
8036
|
|
|
8037
|
+
/**
|
|
8038
|
+
* Copyright (c) 2023
|
|
8039
|
+
*
|
|
8040
|
+
* Utilities related to reading configuration objects
|
|
8041
|
+
* @summary Config-related utils
|
|
8042
|
+
* @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
|
|
8043
|
+
*/
|
|
8044
|
+
const urlRegex = new RegExp([
|
|
8045
|
+
'(^(https?:)//)?',
|
|
8046
|
+
'(([^:/?#]*)(?::([0-9]+))?)',
|
|
8047
|
+
'(/{0,1}[^?#]*)',
|
|
8048
|
+
'(\\?[^#]*|)',
|
|
8049
|
+
'(#.*|)$', // hash
|
|
8050
|
+
].join(''));
|
|
8051
|
+
/**
|
|
8052
|
+
* Parse and construct the ThoughtSpot hostname or IP address
|
|
8053
|
+
* from the embed configuration object.
|
|
8054
|
+
* @param config
|
|
8055
|
+
*/
|
|
8056
|
+
const getThoughtSpotHost = (config) => {
|
|
8057
|
+
if (!config.thoughtSpotHost) {
|
|
8058
|
+
throw new Error(ERROR_MESSAGE.INVALID_THOUGHTSPOT_HOST);
|
|
8059
|
+
}
|
|
8060
|
+
const urlParts = config.thoughtSpotHost.match(urlRegex);
|
|
8061
|
+
if (!urlParts) {
|
|
8062
|
+
throw new Error(ERROR_MESSAGE.INVALID_THOUGHTSPOT_HOST);
|
|
8063
|
+
}
|
|
8064
|
+
const protocol = urlParts[2] || window.location.protocol;
|
|
8065
|
+
const host = urlParts[3];
|
|
8066
|
+
let path = urlParts[6];
|
|
8067
|
+
// Lose the trailing / if any
|
|
8068
|
+
if (path.charAt(path.length - 1) === '/') {
|
|
8069
|
+
path = path.substring(0, path.length - 1);
|
|
8070
|
+
}
|
|
8071
|
+
// const urlParams = urlParts[7];
|
|
8072
|
+
// const hash = urlParts[8];
|
|
8073
|
+
return `${protocol}//${host}${path}`;
|
|
8074
|
+
};
|
|
8075
|
+
const getV2BasePath = (config) => {
|
|
8076
|
+
if (config.basepath) {
|
|
8077
|
+
return config.basepath;
|
|
8078
|
+
}
|
|
8079
|
+
const tsHost = getThoughtSpotHost(config);
|
|
8080
|
+
// This is to handle when e2e's. Search is run on pods for
|
|
8081
|
+
// comp-blink-test-pipeline with baseUrl=https://localhost:8443.
|
|
8082
|
+
// This is to handle when the developer is developing in their local
|
|
8083
|
+
// environment.
|
|
8084
|
+
if (tsHost.includes('://localhost') && !tsHost.includes(':8443')) {
|
|
8085
|
+
return '';
|
|
8086
|
+
}
|
|
8087
|
+
return 'v2';
|
|
8088
|
+
};
|
|
8089
|
+
/**
|
|
8090
|
+
* It is a good idea to keep URLs under 2000 chars.
|
|
8091
|
+
* If this is ever breached, since we pass view configuration through
|
|
8092
|
+
* URL params, we would like to log a warning.
|
|
8093
|
+
* Reference: https://stackoverflow.com/questions/417142/what-is-the-maximum-length-of-a-url-in-different-browsers
|
|
8094
|
+
*/
|
|
8095
|
+
const URL_MAX_LENGTH = 2000;
|
|
8096
|
+
/**
|
|
8097
|
+
* The default CSS dimensions of the embedded app
|
|
8098
|
+
*/
|
|
8099
|
+
const DEFAULT_EMBED_WIDTH = '100%';
|
|
8100
|
+
const DEFAULT_EMBED_HEIGHT = '100%';
|
|
8101
|
+
const DEFAULT_LAZY_LOADING_MARGIN = '500px 0px';
|
|
8102
|
+
|
|
7350
8103
|
/** Used for built-in method references. */
|
|
7351
|
-
var objectProto$
|
|
8104
|
+
var objectProto$d = Object.prototype;
|
|
7352
8105
|
|
|
7353
8106
|
/**
|
|
7354
8107
|
* Checks if `value` is likely a prototype object.
|
|
@@ -7359,7 +8112,7 @@ var objectProto$c = Object.prototype;
|
|
|
7359
8112
|
*/
|
|
7360
8113
|
function isPrototype(value) {
|
|
7361
8114
|
var Ctor = value && value.constructor,
|
|
7362
|
-
proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto$
|
|
8115
|
+
proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto$d;
|
|
7363
8116
|
|
|
7364
8117
|
return value === proto;
|
|
7365
8118
|
}
|
|
@@ -7388,10 +8141,10 @@ var nativeKeys = _overArg(Object.keys, Object);
|
|
|
7388
8141
|
var _nativeKeys = nativeKeys;
|
|
7389
8142
|
|
|
7390
8143
|
/** Used for built-in method references. */
|
|
7391
|
-
var objectProto$
|
|
8144
|
+
var objectProto$c = Object.prototype;
|
|
7392
8145
|
|
|
7393
8146
|
/** Used to check objects for own properties. */
|
|
7394
|
-
var hasOwnProperty$
|
|
8147
|
+
var hasOwnProperty$b = objectProto$c.hasOwnProperty;
|
|
7395
8148
|
|
|
7396
8149
|
/**
|
|
7397
8150
|
* The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
|
|
@@ -7406,7 +8159,7 @@ function baseKeys(object) {
|
|
|
7406
8159
|
}
|
|
7407
8160
|
var result = [];
|
|
7408
8161
|
for (var key in Object(object)) {
|
|
7409
|
-
if (hasOwnProperty$
|
|
8162
|
+
if (hasOwnProperty$b.call(object, key) && key != 'constructor') {
|
|
7410
8163
|
result.push(key);
|
|
7411
8164
|
}
|
|
7412
8165
|
}
|
|
@@ -7442,17 +8195,17 @@ var Symbol$1 = _root.Symbol;
|
|
|
7442
8195
|
var _Symbol = Symbol$1;
|
|
7443
8196
|
|
|
7444
8197
|
/** Used for built-in method references. */
|
|
7445
|
-
var objectProto$
|
|
8198
|
+
var objectProto$b = Object.prototype;
|
|
7446
8199
|
|
|
7447
8200
|
/** Used to check objects for own properties. */
|
|
7448
|
-
var hasOwnProperty$
|
|
8201
|
+
var hasOwnProperty$a = objectProto$b.hasOwnProperty;
|
|
7449
8202
|
|
|
7450
8203
|
/**
|
|
7451
8204
|
* Used to resolve the
|
|
7452
8205
|
* [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
|
|
7453
8206
|
* of values.
|
|
7454
8207
|
*/
|
|
7455
|
-
var nativeObjectToString$1 = objectProto$
|
|
8208
|
+
var nativeObjectToString$1 = objectProto$b.toString;
|
|
7456
8209
|
|
|
7457
8210
|
/** Built-in value references. */
|
|
7458
8211
|
var symToStringTag$1 = _Symbol ? _Symbol.toStringTag : undefined;
|
|
@@ -7465,7 +8218,7 @@ var symToStringTag$1 = _Symbol ? _Symbol.toStringTag : undefined;
|
|
|
7465
8218
|
* @returns {string} Returns the raw `toStringTag`.
|
|
7466
8219
|
*/
|
|
7467
8220
|
function getRawTag(value) {
|
|
7468
|
-
var isOwn = hasOwnProperty$
|
|
8221
|
+
var isOwn = hasOwnProperty$a.call(value, symToStringTag$1),
|
|
7469
8222
|
tag = value[symToStringTag$1];
|
|
7470
8223
|
|
|
7471
8224
|
try {
|
|
@@ -7487,14 +8240,14 @@ function getRawTag(value) {
|
|
|
7487
8240
|
var _getRawTag = getRawTag;
|
|
7488
8241
|
|
|
7489
8242
|
/** Used for built-in method references. */
|
|
7490
|
-
var objectProto$
|
|
8243
|
+
var objectProto$a = Object.prototype;
|
|
7491
8244
|
|
|
7492
8245
|
/**
|
|
7493
8246
|
* Used to resolve the
|
|
7494
8247
|
* [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
|
|
7495
8248
|
* of values.
|
|
7496
8249
|
*/
|
|
7497
|
-
var nativeObjectToString = objectProto$
|
|
8250
|
+
var nativeObjectToString = objectProto$a.toString;
|
|
7498
8251
|
|
|
7499
8252
|
/**
|
|
7500
8253
|
* Converts `value` to a string using `Object.prototype.toString`.
|
|
@@ -7626,10 +8379,10 @@ function isMasked(func) {
|
|
|
7626
8379
|
var _isMasked = isMasked;
|
|
7627
8380
|
|
|
7628
8381
|
/** Used for built-in method references. */
|
|
7629
|
-
var funcProto$
|
|
8382
|
+
var funcProto$2 = Function.prototype;
|
|
7630
8383
|
|
|
7631
8384
|
/** Used to resolve the decompiled source of functions. */
|
|
7632
|
-
var funcToString$
|
|
8385
|
+
var funcToString$2 = funcProto$2.toString;
|
|
7633
8386
|
|
|
7634
8387
|
/**
|
|
7635
8388
|
* Converts `func` to its source code.
|
|
@@ -7641,7 +8394,7 @@ var funcToString$1 = funcProto$1.toString;
|
|
|
7641
8394
|
function toSource(func) {
|
|
7642
8395
|
if (func != null) {
|
|
7643
8396
|
try {
|
|
7644
|
-
return funcToString$
|
|
8397
|
+
return funcToString$2.call(func);
|
|
7645
8398
|
} catch (e) {}
|
|
7646
8399
|
try {
|
|
7647
8400
|
return (func + '');
|
|
@@ -7662,18 +8415,18 @@ var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
|
|
|
7662
8415
|
var reIsHostCtor = /^\[object .+?Constructor\]$/;
|
|
7663
8416
|
|
|
7664
8417
|
/** Used for built-in method references. */
|
|
7665
|
-
var funcProto = Function.prototype,
|
|
7666
|
-
objectProto$
|
|
8418
|
+
var funcProto$1 = Function.prototype,
|
|
8419
|
+
objectProto$9 = Object.prototype;
|
|
7667
8420
|
|
|
7668
8421
|
/** Used to resolve the decompiled source of functions. */
|
|
7669
|
-
var funcToString = funcProto.toString;
|
|
8422
|
+
var funcToString$1 = funcProto$1.toString;
|
|
7670
8423
|
|
|
7671
8424
|
/** Used to check objects for own properties. */
|
|
7672
|
-
var hasOwnProperty$
|
|
8425
|
+
var hasOwnProperty$9 = objectProto$9.hasOwnProperty;
|
|
7673
8426
|
|
|
7674
8427
|
/** Used to detect if a method is native. */
|
|
7675
8428
|
var reIsNative = RegExp('^' +
|
|
7676
|
-
funcToString.call(hasOwnProperty$
|
|
8429
|
+
funcToString$1.call(hasOwnProperty$9).replace(reRegExpChar, '\\$&')
|
|
7677
8430
|
.replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
|
|
7678
8431
|
);
|
|
7679
8432
|
|
|
@@ -7751,7 +8504,7 @@ var _WeakMap = WeakMap;
|
|
|
7751
8504
|
|
|
7752
8505
|
/** `Object#toString` result references. */
|
|
7753
8506
|
var mapTag$3 = '[object Map]',
|
|
7754
|
-
objectTag$
|
|
8507
|
+
objectTag$3 = '[object Object]',
|
|
7755
8508
|
promiseTag = '[object Promise]',
|
|
7756
8509
|
setTag$3 = '[object Set]',
|
|
7757
8510
|
weakMapTag$1 = '[object WeakMap]';
|
|
@@ -7782,7 +8535,7 @@ if ((_DataView && getTag(new _DataView(new ArrayBuffer(1))) != dataViewTag$2) ||
|
|
|
7782
8535
|
(_WeakMap && getTag(new _WeakMap) != weakMapTag$1)) {
|
|
7783
8536
|
getTag = function(value) {
|
|
7784
8537
|
var result = _baseGetTag(value),
|
|
7785
|
-
Ctor = result == objectTag$
|
|
8538
|
+
Ctor = result == objectTag$3 ? value.constructor : undefined,
|
|
7786
8539
|
ctorString = Ctor ? _toSource(Ctor) : '';
|
|
7787
8540
|
|
|
7788
8541
|
if (ctorString) {
|
|
@@ -7847,13 +8600,13 @@ function baseIsArguments(value) {
|
|
|
7847
8600
|
var _baseIsArguments = baseIsArguments;
|
|
7848
8601
|
|
|
7849
8602
|
/** Used for built-in method references. */
|
|
7850
|
-
var objectProto$
|
|
8603
|
+
var objectProto$8 = Object.prototype;
|
|
7851
8604
|
|
|
7852
8605
|
/** Used to check objects for own properties. */
|
|
7853
|
-
var hasOwnProperty$
|
|
8606
|
+
var hasOwnProperty$8 = objectProto$8.hasOwnProperty;
|
|
7854
8607
|
|
|
7855
8608
|
/** Built-in value references. */
|
|
7856
|
-
var propertyIsEnumerable$1 = objectProto$
|
|
8609
|
+
var propertyIsEnumerable$1 = objectProto$8.propertyIsEnumerable;
|
|
7857
8610
|
|
|
7858
8611
|
/**
|
|
7859
8612
|
* Checks if `value` is likely an `arguments` object.
|
|
@@ -7874,7 +8627,7 @@ var propertyIsEnumerable$1 = objectProto$7.propertyIsEnumerable;
|
|
|
7874
8627
|
* // => false
|
|
7875
8628
|
*/
|
|
7876
8629
|
var isArguments = _baseIsArguments(function() { return arguments; }()) ? _baseIsArguments : function(value) {
|
|
7877
|
-
return isObjectLike_1(value) && hasOwnProperty$
|
|
8630
|
+
return isObjectLike_1(value) && hasOwnProperty$8.call(value, 'callee') &&
|
|
7878
8631
|
!propertyIsEnumerable$1.call(value, 'callee');
|
|
7879
8632
|
};
|
|
7880
8633
|
|
|
@@ -8040,10 +8793,10 @@ var argsTag$1 = '[object Arguments]',
|
|
|
8040
8793
|
funcTag = '[object Function]',
|
|
8041
8794
|
mapTag$2 = '[object Map]',
|
|
8042
8795
|
numberTag$1 = '[object Number]',
|
|
8043
|
-
objectTag$
|
|
8796
|
+
objectTag$2 = '[object Object]',
|
|
8044
8797
|
regexpTag$1 = '[object RegExp]',
|
|
8045
8798
|
setTag$2 = '[object Set]',
|
|
8046
|
-
stringTag$
|
|
8799
|
+
stringTag$2 = '[object String]',
|
|
8047
8800
|
weakMapTag = '[object WeakMap]';
|
|
8048
8801
|
|
|
8049
8802
|
var arrayBufferTag$1 = '[object ArrayBuffer]',
|
|
@@ -8070,8 +8823,8 @@ typedArrayTags[arrayBufferTag$1] = typedArrayTags[boolTag$2] =
|
|
|
8070
8823
|
typedArrayTags[dataViewTag$1] = typedArrayTags[dateTag$1] =
|
|
8071
8824
|
typedArrayTags[errorTag$1] = typedArrayTags[funcTag] =
|
|
8072
8825
|
typedArrayTags[mapTag$2] = typedArrayTags[numberTag$1] =
|
|
8073
|
-
typedArrayTags[objectTag$
|
|
8074
|
-
typedArrayTags[setTag$2] = typedArrayTags[stringTag$
|
|
8826
|
+
typedArrayTags[objectTag$2] = typedArrayTags[regexpTag$1] =
|
|
8827
|
+
typedArrayTags[setTag$2] = typedArrayTags[stringTag$2] =
|
|
8075
8828
|
typedArrayTags[weakMapTag] = false;
|
|
8076
8829
|
|
|
8077
8830
|
/**
|
|
@@ -8163,10 +8916,10 @@ var mapTag$1 = '[object Map]',
|
|
|
8163
8916
|
setTag$1 = '[object Set]';
|
|
8164
8917
|
|
|
8165
8918
|
/** Used for built-in method references. */
|
|
8166
|
-
var objectProto$
|
|
8919
|
+
var objectProto$7 = Object.prototype;
|
|
8167
8920
|
|
|
8168
8921
|
/** Used to check objects for own properties. */
|
|
8169
|
-
var hasOwnProperty$
|
|
8922
|
+
var hasOwnProperty$7 = objectProto$7.hasOwnProperty;
|
|
8170
8923
|
|
|
8171
8924
|
/**
|
|
8172
8925
|
* Checks if `value` is an empty object, collection, map, or set.
|
|
@@ -8218,7 +8971,7 @@ function isEmpty$1(value) {
|
|
|
8218
8971
|
return !_baseKeys(value).length;
|
|
8219
8972
|
}
|
|
8220
8973
|
for (var key in value) {
|
|
8221
|
-
if (hasOwnProperty$
|
|
8974
|
+
if (hasOwnProperty$7.call(value, key)) {
|
|
8222
8975
|
return false;
|
|
8223
8976
|
}
|
|
8224
8977
|
}
|
|
@@ -8227,6 +8980,15 @@ function isEmpty$1(value) {
|
|
|
8227
8980
|
|
|
8228
8981
|
var isEmpty_1 = isEmpty$1;
|
|
8229
8982
|
|
|
8983
|
+
/**
|
|
8984
|
+
* Levels at which a filter or parameter can be applied.
|
|
8985
|
+
*/
|
|
8986
|
+
var ApplicabilityLevel;
|
|
8987
|
+
(function (ApplicabilityLevel) {
|
|
8988
|
+
ApplicabilityLevel["Liveboard"] = "LIVEBOARD";
|
|
8989
|
+
ApplicabilityLevel["Tab"] = "TAB";
|
|
8990
|
+
ApplicabilityLevel["Group"] = "GROUP";
|
|
8991
|
+
})(ApplicabilityLevel || (ApplicabilityLevel = {}));
|
|
8230
8992
|
var UIPassthroughEvent;
|
|
8231
8993
|
(function (UIPassthroughEvent) {
|
|
8232
8994
|
UIPassthroughEvent["PinAnswerToLiveboard"] = "addVizToPinboard";
|
|
@@ -8244,6 +9006,7 @@ var UIPassthroughEvent;
|
|
|
8244
9006
|
UIPassthroughEvent["GetParameters"] = "getParameters";
|
|
8245
9007
|
UIPassthroughEvent["GetTML"] = "getTML";
|
|
8246
9008
|
UIPassthroughEvent["GetTabs"] = "getTabs";
|
|
9009
|
+
UIPassthroughEvent["GetGroups"] = "getGroups";
|
|
8247
9010
|
UIPassthroughEvent["GetExportRequestForCurrentPinboard"] = "getExportRequestForCurrentPinboard";
|
|
8248
9011
|
})(UIPassthroughEvent || (UIPassthroughEvent = {}));
|
|
8249
9012
|
|
|
@@ -9179,7 +9942,7 @@ class AnswerService {
|
|
|
9179
9942
|
async getTML() {
|
|
9180
9943
|
const { object } = await this.executeQuery(getAnswerTML, {});
|
|
9181
9944
|
const edoc = object[0].edoc;
|
|
9182
|
-
const YAML = await import('./index-
|
|
9945
|
+
const YAML = await import('./index-Bivg-mDx.js');
|
|
9183
9946
|
const parsedDoc = YAML.parse(edoc);
|
|
9184
9947
|
return {
|
|
9185
9948
|
answer: {
|
|
@@ -9464,10 +10227,10 @@ var _hashDelete = hashDelete;
|
|
|
9464
10227
|
var HASH_UNDEFINED$2 = '__lodash_hash_undefined__';
|
|
9465
10228
|
|
|
9466
10229
|
/** Used for built-in method references. */
|
|
9467
|
-
var objectProto$
|
|
10230
|
+
var objectProto$6 = Object.prototype;
|
|
9468
10231
|
|
|
9469
10232
|
/** Used to check objects for own properties. */
|
|
9470
|
-
var hasOwnProperty$
|
|
10233
|
+
var hasOwnProperty$6 = objectProto$6.hasOwnProperty;
|
|
9471
10234
|
|
|
9472
10235
|
/**
|
|
9473
10236
|
* Gets the hash value for `key`.
|
|
@@ -9484,16 +10247,16 @@ function hashGet(key) {
|
|
|
9484
10247
|
var result = data[key];
|
|
9485
10248
|
return result === HASH_UNDEFINED$2 ? undefined : result;
|
|
9486
10249
|
}
|
|
9487
|
-
return hasOwnProperty$
|
|
10250
|
+
return hasOwnProperty$6.call(data, key) ? data[key] : undefined;
|
|
9488
10251
|
}
|
|
9489
10252
|
|
|
9490
10253
|
var _hashGet = hashGet;
|
|
9491
10254
|
|
|
9492
10255
|
/** Used for built-in method references. */
|
|
9493
|
-
var objectProto$
|
|
10256
|
+
var objectProto$5 = Object.prototype;
|
|
9494
10257
|
|
|
9495
10258
|
/** Used to check objects for own properties. */
|
|
9496
|
-
var hasOwnProperty$
|
|
10259
|
+
var hasOwnProperty$5 = objectProto$5.hasOwnProperty;
|
|
9497
10260
|
|
|
9498
10261
|
/**
|
|
9499
10262
|
* Checks if a hash value for `key` exists.
|
|
@@ -9506,7 +10269,7 @@ var hasOwnProperty$4 = objectProto$4.hasOwnProperty;
|
|
|
9506
10269
|
*/
|
|
9507
10270
|
function hashHas(key) {
|
|
9508
10271
|
var data = this.__data__;
|
|
9509
|
-
return _nativeCreate ? (data[key] !== undefined) : hasOwnProperty$
|
|
10272
|
+
return _nativeCreate ? (data[key] !== undefined) : hasOwnProperty$5.call(data, key);
|
|
9510
10273
|
}
|
|
9511
10274
|
|
|
9512
10275
|
var _hashHas = hashHas;
|
|
@@ -10481,7 +11244,7 @@ var boolTag$1 = '[object Boolean]',
|
|
|
10481
11244
|
numberTag = '[object Number]',
|
|
10482
11245
|
regexpTag = '[object RegExp]',
|
|
10483
11246
|
setTag = '[object Set]',
|
|
10484
|
-
stringTag = '[object String]',
|
|
11247
|
+
stringTag$1 = '[object String]',
|
|
10485
11248
|
symbolTag = '[object Symbol]';
|
|
10486
11249
|
|
|
10487
11250
|
var arrayBufferTag = '[object ArrayBuffer]',
|
|
@@ -10536,7 +11299,7 @@ function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {
|
|
|
10536
11299
|
return object.name == other.name && object.message == other.message;
|
|
10537
11300
|
|
|
10538
11301
|
case regexpTag:
|
|
10539
|
-
case stringTag:
|
|
11302
|
+
case stringTag$1:
|
|
10540
11303
|
// Coerce regexes to strings and treat strings, primitives and objects,
|
|
10541
11304
|
// as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring
|
|
10542
11305
|
// for more details.
|
|
@@ -10644,10 +11407,10 @@ function stubArray() {
|
|
|
10644
11407
|
var stubArray_1 = stubArray;
|
|
10645
11408
|
|
|
10646
11409
|
/** Used for built-in method references. */
|
|
10647
|
-
var objectProto$
|
|
11410
|
+
var objectProto$4 = Object.prototype;
|
|
10648
11411
|
|
|
10649
11412
|
/** Built-in value references. */
|
|
10650
|
-
var propertyIsEnumerable = objectProto$
|
|
11413
|
+
var propertyIsEnumerable = objectProto$4.propertyIsEnumerable;
|
|
10651
11414
|
|
|
10652
11415
|
/* Built-in method references for those with the same name as other `lodash` methods. */
|
|
10653
11416
|
var nativeGetSymbols = Object.getOwnPropertySymbols;
|
|
@@ -10719,10 +11482,10 @@ function isIndex(value, length) {
|
|
|
10719
11482
|
var _isIndex = isIndex;
|
|
10720
11483
|
|
|
10721
11484
|
/** Used for built-in method references. */
|
|
10722
|
-
var objectProto$
|
|
11485
|
+
var objectProto$3 = Object.prototype;
|
|
10723
11486
|
|
|
10724
11487
|
/** Used to check objects for own properties. */
|
|
10725
|
-
var hasOwnProperty$
|
|
11488
|
+
var hasOwnProperty$4 = objectProto$3.hasOwnProperty;
|
|
10726
11489
|
|
|
10727
11490
|
/**
|
|
10728
11491
|
* Creates an array of the enumerable property names of the array-like `value`.
|
|
@@ -10742,7 +11505,7 @@ function arrayLikeKeys(value, inherited) {
|
|
|
10742
11505
|
length = result.length;
|
|
10743
11506
|
|
|
10744
11507
|
for (var key in value) {
|
|
10745
|
-
if ((inherited || hasOwnProperty$
|
|
11508
|
+
if ((inherited || hasOwnProperty$4.call(value, key)) &&
|
|
10746
11509
|
!(skipIndexes && (
|
|
10747
11510
|
// Safari 9 has enumerable `arguments.length` in strict mode.
|
|
10748
11511
|
key == 'length' ||
|
|
@@ -10812,10 +11575,10 @@ var _getAllKeys = getAllKeys;
|
|
|
10812
11575
|
var COMPARE_PARTIAL_FLAG$3 = 1;
|
|
10813
11576
|
|
|
10814
11577
|
/** Used for built-in method references. */
|
|
10815
|
-
var objectProto$
|
|
11578
|
+
var objectProto$2 = Object.prototype;
|
|
10816
11579
|
|
|
10817
11580
|
/** Used to check objects for own properties. */
|
|
10818
|
-
var hasOwnProperty$
|
|
11581
|
+
var hasOwnProperty$3 = objectProto$2.hasOwnProperty;
|
|
10819
11582
|
|
|
10820
11583
|
/**
|
|
10821
11584
|
* A specialized version of `baseIsEqualDeep` for objects with support for
|
|
@@ -10843,7 +11606,7 @@ function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
|
|
|
10843
11606
|
var index = objLength;
|
|
10844
11607
|
while (index--) {
|
|
10845
11608
|
var key = objProps[index];
|
|
10846
|
-
if (!(isPartial ? key in other : hasOwnProperty$
|
|
11609
|
+
if (!(isPartial ? key in other : hasOwnProperty$3.call(other, key))) {
|
|
10847
11610
|
return false;
|
|
10848
11611
|
}
|
|
10849
11612
|
}
|
|
@@ -10903,13 +11666,13 @@ var COMPARE_PARTIAL_FLAG$2 = 1;
|
|
|
10903
11666
|
/** `Object#toString` result references. */
|
|
10904
11667
|
var argsTag = '[object Arguments]',
|
|
10905
11668
|
arrayTag = '[object Array]',
|
|
10906
|
-
objectTag = '[object Object]';
|
|
11669
|
+
objectTag$1 = '[object Object]';
|
|
10907
11670
|
|
|
10908
11671
|
/** Used for built-in method references. */
|
|
10909
|
-
var objectProto = Object.prototype;
|
|
11672
|
+
var objectProto$1 = Object.prototype;
|
|
10910
11673
|
|
|
10911
11674
|
/** Used to check objects for own properties. */
|
|
10912
|
-
var hasOwnProperty$
|
|
11675
|
+
var hasOwnProperty$2 = objectProto$1.hasOwnProperty;
|
|
10913
11676
|
|
|
10914
11677
|
/**
|
|
10915
11678
|
* A specialized version of `baseIsEqual` for arrays and objects which performs
|
|
@@ -10931,11 +11694,11 @@ function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
|
|
|
10931
11694
|
objTag = objIsArr ? arrayTag : _getTag(object),
|
|
10932
11695
|
othTag = othIsArr ? arrayTag : _getTag(other);
|
|
10933
11696
|
|
|
10934
|
-
objTag = objTag == argsTag ? objectTag : objTag;
|
|
10935
|
-
othTag = othTag == argsTag ? objectTag : othTag;
|
|
11697
|
+
objTag = objTag == argsTag ? objectTag$1 : objTag;
|
|
11698
|
+
othTag = othTag == argsTag ? objectTag$1 : othTag;
|
|
10936
11699
|
|
|
10937
|
-
var objIsObj = objTag == objectTag,
|
|
10938
|
-
othIsObj = othTag == objectTag,
|
|
11700
|
+
var objIsObj = objTag == objectTag$1,
|
|
11701
|
+
othIsObj = othTag == objectTag$1,
|
|
10939
11702
|
isSameTag = objTag == othTag;
|
|
10940
11703
|
|
|
10941
11704
|
if (isSameTag && isBuffer_1(object)) {
|
|
@@ -10952,8 +11715,8 @@ function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
|
|
|
10952
11715
|
: _equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
|
|
10953
11716
|
}
|
|
10954
11717
|
if (!(bitmask & COMPARE_PARTIAL_FLAG$2)) {
|
|
10955
|
-
var objIsWrapped = objIsObj && hasOwnProperty$
|
|
10956
|
-
othIsWrapped = othIsObj && hasOwnProperty$
|
|
11718
|
+
var objIsWrapped = objIsObj && hasOwnProperty$2.call(object, '__wrapped__'),
|
|
11719
|
+
othIsWrapped = othIsObj && hasOwnProperty$2.call(other, '__wrapped__');
|
|
10957
11720
|
|
|
10958
11721
|
if (objIsWrapped || othIsWrapped) {
|
|
10959
11722
|
var objUnwrapped = objIsWrapped ? object.value() : object,
|
|
@@ -12013,122 +12776,57 @@ const filterDuplicateIds = (actions) => {
|
|
|
12013
12776
|
return { actions: actionsWithUniqueIds, errors };
|
|
12014
12777
|
};
|
|
12015
12778
|
/**
|
|
12016
|
-
* Validates and processes custom actions
|
|
12017
|
-
* @param customActions - Array of custom actions to validate
|
|
12018
|
-
* @returns Object containing valid actions and any validation errors
|
|
12019
|
-
*/
|
|
12020
|
-
const getCustomActions = (customActions) => {
|
|
12021
|
-
const errors = [];
|
|
12022
|
-
if (!customActions || !Array.isArray(customActions)) {
|
|
12023
|
-
return { actions: [], errors: [] };
|
|
12024
|
-
}
|
|
12025
|
-
// Step 1: Handle invalid actions first (null, undefined, missing required
|
|
12026
|
-
// fields)
|
|
12027
|
-
const validActions = customActions.filter(action => {
|
|
12028
|
-
const validation = validateActionStructure(action);
|
|
12029
|
-
if (!validation.isValid) {
|
|
12030
|
-
if (!action || typeof action !== 'object') {
|
|
12031
|
-
errors.push(CUSTOM_ACTIONS_ERROR_MESSAGE.INVALID_ACTION_OBJECT);
|
|
12032
|
-
}
|
|
12033
|
-
else {
|
|
12034
|
-
errors.push(CUSTOM_ACTIONS_ERROR_MESSAGE.MISSING_REQUIRED_FIELDS(action.id, validation.missingFields));
|
|
12035
|
-
}
|
|
12036
|
-
return false;
|
|
12037
|
-
}
|
|
12038
|
-
return true;
|
|
12039
|
-
});
|
|
12040
|
-
// Step 2: Check for duplicate IDs among valid actions
|
|
12041
|
-
const { actions: actionsWithUniqueIds, errors: duplicateErrors } = filterDuplicateIds(validActions);
|
|
12042
|
-
// Add duplicate errors to the errors array
|
|
12043
|
-
duplicateErrors.forEach(error => errors.push(error));
|
|
12044
|
-
// Step 3: Validate actions with unique IDs
|
|
12045
|
-
const finalValidActions = [];
|
|
12046
|
-
actionsWithUniqueIds.forEach((action) => {
|
|
12047
|
-
const { isValid, errors: validationErrors } = validateCustomAction(action);
|
|
12048
|
-
validationErrors.forEach(error => errors.push(error));
|
|
12049
|
-
if (isValid) {
|
|
12050
|
-
finalValidActions.push(action);
|
|
12051
|
-
}
|
|
12052
|
-
});
|
|
12053
|
-
// Step 4: Collect warnings for long custom action names
|
|
12054
|
-
const MAX_ACTION_NAME_LENGTH = 30;
|
|
12055
|
-
const warnings = finalValidActions
|
|
12056
|
-
.filter(action => action.name.length > MAX_ACTION_NAME_LENGTH)
|
|
12057
|
-
.map(action => `Custom action name '${action.name}' exceeds ${MAX_ACTION_NAME_LENGTH} characters. This may cause display or truncation issues in the UI.`);
|
|
12058
|
-
if (warnings.length > 0) {
|
|
12059
|
-
logger$3.warn(warnings);
|
|
12060
|
-
}
|
|
12061
|
-
const sortedActions = sortBy_1(finalValidActions, (a) => a.name.toLocaleLowerCase());
|
|
12062
|
-
return {
|
|
12063
|
-
actions: sortedActions,
|
|
12064
|
-
errors: errors,
|
|
12065
|
-
};
|
|
12066
|
-
};
|
|
12067
|
-
|
|
12068
|
-
/**
|
|
12069
|
-
* Copyright (c) 2023
|
|
12070
|
-
*
|
|
12071
|
-
* Utilities related to reading configuration objects
|
|
12072
|
-
* @summary Config-related utils
|
|
12073
|
-
* @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
|
|
12074
|
-
*/
|
|
12075
|
-
const urlRegex = new RegExp([
|
|
12076
|
-
'(^(https?:)//)?',
|
|
12077
|
-
'(([^:/?#]*)(?::([0-9]+))?)',
|
|
12078
|
-
'(/{0,1}[^?#]*)',
|
|
12079
|
-
'(\\?[^#]*|)',
|
|
12080
|
-
'(#.*|)$', // hash
|
|
12081
|
-
].join(''));
|
|
12082
|
-
/**
|
|
12083
|
-
* Parse and construct the ThoughtSpot hostname or IP address
|
|
12084
|
-
* from the embed configuration object.
|
|
12085
|
-
* @param config
|
|
12086
|
-
*/
|
|
12087
|
-
const getThoughtSpotHost = (config) => {
|
|
12088
|
-
if (!config.thoughtSpotHost) {
|
|
12089
|
-
throw new Error(ERROR_MESSAGE.INVALID_THOUGHTSPOT_HOST);
|
|
12090
|
-
}
|
|
12091
|
-
const urlParts = config.thoughtSpotHost.match(urlRegex);
|
|
12092
|
-
if (!urlParts) {
|
|
12093
|
-
throw new Error(ERROR_MESSAGE.INVALID_THOUGHTSPOT_HOST);
|
|
12094
|
-
}
|
|
12095
|
-
const protocol = urlParts[2] || window.location.protocol;
|
|
12096
|
-
const host = urlParts[3];
|
|
12097
|
-
let path = urlParts[6];
|
|
12098
|
-
// Lose the trailing / if any
|
|
12099
|
-
if (path.charAt(path.length - 1) === '/') {
|
|
12100
|
-
path = path.substring(0, path.length - 1);
|
|
12101
|
-
}
|
|
12102
|
-
// const urlParams = urlParts[7];
|
|
12103
|
-
// const hash = urlParts[8];
|
|
12104
|
-
return `${protocol}//${host}${path}`;
|
|
12105
|
-
};
|
|
12106
|
-
const getV2BasePath = (config) => {
|
|
12107
|
-
if (config.basepath) {
|
|
12108
|
-
return config.basepath;
|
|
12109
|
-
}
|
|
12110
|
-
const tsHost = getThoughtSpotHost(config);
|
|
12111
|
-
// This is to handle when e2e's. Search is run on pods for
|
|
12112
|
-
// comp-blink-test-pipeline with baseUrl=https://localhost:8443.
|
|
12113
|
-
// This is to handle when the developer is developing in their local
|
|
12114
|
-
// environment.
|
|
12115
|
-
if (tsHost.includes('://localhost') && !tsHost.includes(':8443')) {
|
|
12116
|
-
return '';
|
|
12117
|
-
}
|
|
12118
|
-
return 'v2';
|
|
12119
|
-
};
|
|
12120
|
-
/**
|
|
12121
|
-
* It is a good idea to keep URLs under 2000 chars.
|
|
12122
|
-
* If this is ever breached, since we pass view configuration through
|
|
12123
|
-
* URL params, we would like to log a warning.
|
|
12124
|
-
* Reference: https://stackoverflow.com/questions/417142/what-is-the-maximum-length-of-a-url-in-different-browsers
|
|
12125
|
-
*/
|
|
12126
|
-
const URL_MAX_LENGTH = 2000;
|
|
12127
|
-
/**
|
|
12128
|
-
* The default CSS dimensions of the embedded app
|
|
12779
|
+
* Validates and processes custom actions
|
|
12780
|
+
* @param customActions - Array of custom actions to validate
|
|
12781
|
+
* @returns Object containing valid actions and any validation errors
|
|
12129
12782
|
*/
|
|
12130
|
-
const
|
|
12131
|
-
const
|
|
12783
|
+
const getCustomActions = (customActions) => {
|
|
12784
|
+
const errors = [];
|
|
12785
|
+
if (!customActions || !Array.isArray(customActions)) {
|
|
12786
|
+
return { actions: [], errors: [] };
|
|
12787
|
+
}
|
|
12788
|
+
// Step 1: Handle invalid actions first (null, undefined, missing required
|
|
12789
|
+
// fields)
|
|
12790
|
+
const validActions = customActions.filter(action => {
|
|
12791
|
+
const validation = validateActionStructure(action);
|
|
12792
|
+
if (!validation.isValid) {
|
|
12793
|
+
if (!action || typeof action !== 'object') {
|
|
12794
|
+
errors.push(CUSTOM_ACTIONS_ERROR_MESSAGE.INVALID_ACTION_OBJECT);
|
|
12795
|
+
}
|
|
12796
|
+
else {
|
|
12797
|
+
errors.push(CUSTOM_ACTIONS_ERROR_MESSAGE.MISSING_REQUIRED_FIELDS(action.id, validation.missingFields));
|
|
12798
|
+
}
|
|
12799
|
+
return false;
|
|
12800
|
+
}
|
|
12801
|
+
return true;
|
|
12802
|
+
});
|
|
12803
|
+
// Step 2: Check for duplicate IDs among valid actions
|
|
12804
|
+
const { actions: actionsWithUniqueIds, errors: duplicateErrors } = filterDuplicateIds(validActions);
|
|
12805
|
+
// Add duplicate errors to the errors array
|
|
12806
|
+
duplicateErrors.forEach(error => errors.push(error));
|
|
12807
|
+
// Step 3: Validate actions with unique IDs
|
|
12808
|
+
const finalValidActions = [];
|
|
12809
|
+
actionsWithUniqueIds.forEach((action) => {
|
|
12810
|
+
const { isValid, errors: validationErrors } = validateCustomAction(action);
|
|
12811
|
+
validationErrors.forEach(error => errors.push(error));
|
|
12812
|
+
if (isValid) {
|
|
12813
|
+
finalValidActions.push(action);
|
|
12814
|
+
}
|
|
12815
|
+
});
|
|
12816
|
+
// Step 4: Collect warnings for long custom action names
|
|
12817
|
+
const MAX_ACTION_NAME_LENGTH = 30;
|
|
12818
|
+
const warnings = finalValidActions
|
|
12819
|
+
.filter(action => action.name.length > MAX_ACTION_NAME_LENGTH)
|
|
12820
|
+
.map(action => `Custom action name '${action.name}' exceeds ${MAX_ACTION_NAME_LENGTH} characters. This may cause display or truncation issues in the UI.`);
|
|
12821
|
+
if (warnings.length > 0) {
|
|
12822
|
+
logger$3.warn(warnings);
|
|
12823
|
+
}
|
|
12824
|
+
const sortedActions = sortBy_1(finalValidActions, (a) => a.name.toLocaleLowerCase());
|
|
12825
|
+
return {
|
|
12826
|
+
actions: sortedActions,
|
|
12827
|
+
errors: errors,
|
|
12828
|
+
};
|
|
12829
|
+
};
|
|
12132
12830
|
|
|
12133
12831
|
var Config = {
|
|
12134
12832
|
DEBUG: false,
|
|
@@ -12164,7 +12862,7 @@ var FuncProto = Function.prototype;
|
|
|
12164
12862
|
var ObjProto = Object.prototype;
|
|
12165
12863
|
var slice = ArrayProto.slice;
|
|
12166
12864
|
var toString = ObjProto.toString;
|
|
12167
|
-
var hasOwnProperty = ObjProto.hasOwnProperty;
|
|
12865
|
+
var hasOwnProperty$1 = ObjProto.hasOwnProperty;
|
|
12168
12866
|
var windowConsole = window$1.console;
|
|
12169
12867
|
var navigator = window$1.navigator;
|
|
12170
12868
|
var document$1 = window$1.document;
|
|
@@ -12301,7 +12999,7 @@ _.each = function(obj, iterator, context) {
|
|
|
12301
12999
|
}
|
|
12302
13000
|
} else {
|
|
12303
13001
|
for (var key in obj) {
|
|
12304
|
-
if (hasOwnProperty.call(obj, key)) {
|
|
13002
|
+
if (hasOwnProperty$1.call(obj, key)) {
|
|
12305
13003
|
if (iterator.call(context, obj[key], key, obj) === breaker) {
|
|
12306
13004
|
return;
|
|
12307
13005
|
}
|
|
@@ -12337,7 +13035,7 @@ _.isFunction = function(f) {
|
|
|
12337
13035
|
};
|
|
12338
13036
|
|
|
12339
13037
|
_.isArguments = function(obj) {
|
|
12340
|
-
return !!(obj && hasOwnProperty.call(obj, 'callee'));
|
|
13038
|
+
return !!(obj && hasOwnProperty$1.call(obj, 'callee'));
|
|
12341
13039
|
};
|
|
12342
13040
|
|
|
12343
13041
|
_.toArray = function(iterable) {
|
|
@@ -12425,7 +13123,7 @@ _.isObject = function(obj) {
|
|
|
12425
13123
|
_.isEmptyObject = function(obj) {
|
|
12426
13124
|
if (_.isObject(obj)) {
|
|
12427
13125
|
for (var key in obj) {
|
|
12428
|
-
if (hasOwnProperty.call(obj, key)) {
|
|
13126
|
+
if (hasOwnProperty$1.call(obj, key)) {
|
|
12429
13127
|
return false;
|
|
12430
13128
|
}
|
|
12431
13129
|
}
|
|
@@ -12617,7 +13315,7 @@ _.JSONEncode = (function() {
|
|
|
12617
13315
|
|
|
12618
13316
|
// Iterate through all of the keys in the object.
|
|
12619
13317
|
for (k in value) {
|
|
12620
|
-
if (hasOwnProperty.call(value, k)) {
|
|
13318
|
+
if (hasOwnProperty$1.call(value, k)) {
|
|
12621
13319
|
v = str(k, value);
|
|
12622
13320
|
if (v) {
|
|
12623
13321
|
partial.push(quote(k) + (gap ? ': ' : ':') + v);
|
|
@@ -18286,6 +18984,10 @@ const MIXPANEL_EVENT = {
|
|
|
18286
18984
|
VISUAL_SDK_IFRAME_LOAD_PERFORMANCE: 'visual-sdk-iframe-load-performance',
|
|
18287
18985
|
VISUAL_SDK_EMBED_CREATE: 'visual-sdk-embed-create',
|
|
18288
18986
|
VERCEL_INTEGRATION_COMPLETED: 'vercel-integration-completed',
|
|
18987
|
+
VISUAL_SDK_RENDER_CALLED: 'visual-sdk-render-called',
|
|
18988
|
+
VISUAL_SDK_PRE_RENDER: 'visual-sdk-pre-render',
|
|
18989
|
+
VISUAL_SDK_SHOW_PRE_RENDER: 'visual-sdk-show-pre-render',
|
|
18990
|
+
VISUAL_SDK_HIDE_PRE_RENDER: 'visual-sdk-hide-pre-render',
|
|
18289
18991
|
};
|
|
18290
18992
|
let isMixpanelInitialized = false;
|
|
18291
18993
|
let eventQueue = [];
|
|
@@ -19687,7 +20389,7 @@ const getIsInitCalled = () => { var _a; return !!((_a = getValueFromWindow(initF
|
|
|
19687
20389
|
/**
|
|
19688
20390
|
* Initializes the Visual Embed SDK globally and perform
|
|
19689
20391
|
* authentication if applicable. This function needs to be called before any ThoughtSpot
|
|
19690
|
-
* component like Liveboard etc can be embedded. But need not wait for
|
|
20392
|
+
* component like Liveboard etc can be embedded. But need not wait for AuthStatus.SUCCESS
|
|
19691
20393
|
* to actually embed. That is handled internally.
|
|
19692
20394
|
* @param embedConfig The configuration object containing ThoughtSpot host,
|
|
19693
20395
|
* authentication mechanism and so on.
|
|
@@ -20038,6 +20740,154 @@ function processEventData(type, eventData, thoughtSpotHost, containerEl) {
|
|
|
20038
20740
|
return eventData;
|
|
20039
20741
|
}
|
|
20040
20742
|
|
|
20743
|
+
/**
|
|
20744
|
+
* Checks if `value` is `null` or `undefined`.
|
|
20745
|
+
*
|
|
20746
|
+
* @static
|
|
20747
|
+
* @memberOf _
|
|
20748
|
+
* @since 4.0.0
|
|
20749
|
+
* @category Lang
|
|
20750
|
+
* @param {*} value The value to check.
|
|
20751
|
+
* @returns {boolean} Returns `true` if `value` is nullish, else `false`.
|
|
20752
|
+
* @example
|
|
20753
|
+
*
|
|
20754
|
+
* _.isNil(null);
|
|
20755
|
+
* // => true
|
|
20756
|
+
*
|
|
20757
|
+
* _.isNil(void 0);
|
|
20758
|
+
* // => true
|
|
20759
|
+
*
|
|
20760
|
+
* _.isNil(NaN);
|
|
20761
|
+
* // => false
|
|
20762
|
+
*/
|
|
20763
|
+
function isNil(value) {
|
|
20764
|
+
return value == null;
|
|
20765
|
+
}
|
|
20766
|
+
|
|
20767
|
+
var isNil_1 = isNil;
|
|
20768
|
+
|
|
20769
|
+
/** Built-in value references. */
|
|
20770
|
+
var getPrototype = _overArg(Object.getPrototypeOf, Object);
|
|
20771
|
+
|
|
20772
|
+
var _getPrototype = getPrototype;
|
|
20773
|
+
|
|
20774
|
+
/** `Object#toString` result references. */
|
|
20775
|
+
var objectTag = '[object Object]';
|
|
20776
|
+
|
|
20777
|
+
/** Used for built-in method references. */
|
|
20778
|
+
var funcProto = Function.prototype,
|
|
20779
|
+
objectProto = Object.prototype;
|
|
20780
|
+
|
|
20781
|
+
/** Used to resolve the decompiled source of functions. */
|
|
20782
|
+
var funcToString = funcProto.toString;
|
|
20783
|
+
|
|
20784
|
+
/** Used to check objects for own properties. */
|
|
20785
|
+
var hasOwnProperty = objectProto.hasOwnProperty;
|
|
20786
|
+
|
|
20787
|
+
/** Used to infer the `Object` constructor. */
|
|
20788
|
+
var objectCtorString = funcToString.call(Object);
|
|
20789
|
+
|
|
20790
|
+
/**
|
|
20791
|
+
* Checks if `value` is a plain object, that is, an object created by the
|
|
20792
|
+
* `Object` constructor or one with a `[[Prototype]]` of `null`.
|
|
20793
|
+
*
|
|
20794
|
+
* @static
|
|
20795
|
+
* @memberOf _
|
|
20796
|
+
* @since 0.8.0
|
|
20797
|
+
* @category Lang
|
|
20798
|
+
* @param {*} value The value to check.
|
|
20799
|
+
* @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
|
|
20800
|
+
* @example
|
|
20801
|
+
*
|
|
20802
|
+
* function Foo() {
|
|
20803
|
+
* this.a = 1;
|
|
20804
|
+
* }
|
|
20805
|
+
*
|
|
20806
|
+
* _.isPlainObject(new Foo);
|
|
20807
|
+
* // => false
|
|
20808
|
+
*
|
|
20809
|
+
* _.isPlainObject([1, 2, 3]);
|
|
20810
|
+
* // => false
|
|
20811
|
+
*
|
|
20812
|
+
* _.isPlainObject({ 'x': 0, 'y': 0 });
|
|
20813
|
+
* // => true
|
|
20814
|
+
*
|
|
20815
|
+
* _.isPlainObject(Object.create(null));
|
|
20816
|
+
* // => true
|
|
20817
|
+
*/
|
|
20818
|
+
function isPlainObject(value) {
|
|
20819
|
+
if (!isObjectLike_1(value) || _baseGetTag(value) != objectTag) {
|
|
20820
|
+
return false;
|
|
20821
|
+
}
|
|
20822
|
+
var proto = _getPrototype(value);
|
|
20823
|
+
if (proto === null) {
|
|
20824
|
+
return true;
|
|
20825
|
+
}
|
|
20826
|
+
var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;
|
|
20827
|
+
return typeof Ctor == 'function' && Ctor instanceof Ctor &&
|
|
20828
|
+
funcToString.call(Ctor) == objectCtorString;
|
|
20829
|
+
}
|
|
20830
|
+
|
|
20831
|
+
var isPlainObject_1 = isPlainObject;
|
|
20832
|
+
|
|
20833
|
+
/** `Object#toString` result references. */
|
|
20834
|
+
var stringTag = '[object String]';
|
|
20835
|
+
|
|
20836
|
+
/**
|
|
20837
|
+
* Checks if `value` is classified as a `String` primitive or object.
|
|
20838
|
+
*
|
|
20839
|
+
* @static
|
|
20840
|
+
* @since 0.1.0
|
|
20841
|
+
* @memberOf _
|
|
20842
|
+
* @category Lang
|
|
20843
|
+
* @param {*} value The value to check.
|
|
20844
|
+
* @returns {boolean} Returns `true` if `value` is a string, else `false`.
|
|
20845
|
+
* @example
|
|
20846
|
+
*
|
|
20847
|
+
* _.isString('abc');
|
|
20848
|
+
* // => true
|
|
20849
|
+
*
|
|
20850
|
+
* _.isString(1);
|
|
20851
|
+
* // => false
|
|
20852
|
+
*/
|
|
20853
|
+
function isString(value) {
|
|
20854
|
+
return typeof value == 'string' ||
|
|
20855
|
+
(!isArray_1(value) && isObjectLike_1(value) && _baseGetTag(value) == stringTag);
|
|
20856
|
+
}
|
|
20857
|
+
|
|
20858
|
+
var isString_1 = isString;
|
|
20859
|
+
|
|
20860
|
+
/**
|
|
20861
|
+
* Checks if `value` is `undefined`.
|
|
20862
|
+
*
|
|
20863
|
+
* @static
|
|
20864
|
+
* @since 0.1.0
|
|
20865
|
+
* @memberOf _
|
|
20866
|
+
* @category Lang
|
|
20867
|
+
* @param {*} value The value to check.
|
|
20868
|
+
* @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.
|
|
20869
|
+
* @example
|
|
20870
|
+
*
|
|
20871
|
+
* _.isUndefined(void 0);
|
|
20872
|
+
* // => true
|
|
20873
|
+
*
|
|
20874
|
+
* _.isUndefined(null);
|
|
20875
|
+
* // => false
|
|
20876
|
+
*/
|
|
20877
|
+
function isUndefined(value) {
|
|
20878
|
+
return value === undefined;
|
|
20879
|
+
}
|
|
20880
|
+
|
|
20881
|
+
var isUndefined_1 = isUndefined;
|
|
20882
|
+
|
|
20883
|
+
const isValidApplicability = (a) => {
|
|
20884
|
+
if (isUndefined_1(a))
|
|
20885
|
+
return true;
|
|
20886
|
+
// targetId is not required at LIVEBOARD level, since the filter applies to the whole Liveboard
|
|
20887
|
+
return isPlainObject_1(a)
|
|
20888
|
+
&& Object.values(ApplicabilityLevel).includes(a.level)
|
|
20889
|
+
&& (a.level === ApplicabilityLevel.Liveboard || (isString_1(a.targetId) && a.targetId.trim().length > 0));
|
|
20890
|
+
};
|
|
20041
20891
|
function isValidUpdateFiltersPayload(payload) {
|
|
20042
20892
|
if (!payload)
|
|
20043
20893
|
return false;
|
|
@@ -20046,12 +20896,23 @@ function isValidUpdateFiltersPayload(payload) {
|
|
|
20046
20896
|
const hasOperator = typeof f.oper === 'string' || typeof f.operator === 'string';
|
|
20047
20897
|
const hasValues = Array.isArray(f.values);
|
|
20048
20898
|
const validType = !f.type || typeof f.type === 'string';
|
|
20049
|
-
return hasColumn && hasOperator && hasValues && validType;
|
|
20899
|
+
return hasColumn && hasOperator && hasValues && validType && isValidApplicability(f.applicability);
|
|
20050
20900
|
};
|
|
20051
20901
|
const hasValidFilter = payload.filter && isValidFilter(payload.filter);
|
|
20052
20902
|
const hasValidFilters = Array.isArray(payload.filters) && payload.filters.length > 0 && payload.filters.every(isValidFilter);
|
|
20053
20903
|
return !!(hasValidFilter || hasValidFilters);
|
|
20054
20904
|
}
|
|
20905
|
+
function isValidUpdateParametersPayload(payload) {
|
|
20906
|
+
// Only validates the applicability of each parameter (null treated as absent); the rest is forwarded as-is for backward compatibility.
|
|
20907
|
+
if (!Array.isArray(payload))
|
|
20908
|
+
return true;
|
|
20909
|
+
return payload.every((p) => {
|
|
20910
|
+
if (!isPlainObject_1(p))
|
|
20911
|
+
return true;
|
|
20912
|
+
const { applicability } = p;
|
|
20913
|
+
return isNil_1(applicability) || isValidApplicability(applicability);
|
|
20914
|
+
});
|
|
20915
|
+
}
|
|
20055
20916
|
function isValidDrillDownPayload(payload) {
|
|
20056
20917
|
if (!payload)
|
|
20057
20918
|
return false;
|
|
@@ -20082,6 +20943,9 @@ function throwUpdateFiltersValidationError() {
|
|
|
20082
20943
|
}
|
|
20083
20944
|
function throwDrillDownValidationError() {
|
|
20084
20945
|
createValidationError(ERROR_MESSAGE.DRILLDOWN_INVALID_PAYLOAD);
|
|
20946
|
+
}
|
|
20947
|
+
function throwUpdateParametersValidationError() {
|
|
20948
|
+
createValidationError(ERROR_MESSAGE.UPDATEPARAMETERS_INVALID_PAYLOAD);
|
|
20085
20949
|
}
|
|
20086
20950
|
|
|
20087
20951
|
/**
|
|
@@ -20102,6 +20966,7 @@ const PASSTHROUGH_MAP = {
|
|
|
20102
20966
|
[HostEvent.GetParameters]: UIPassthroughEvent.GetParameters,
|
|
20103
20967
|
[HostEvent.GetTML]: UIPassthroughEvent.GetTML,
|
|
20104
20968
|
[HostEvent.GetTabs]: UIPassthroughEvent.GetTabs,
|
|
20969
|
+
[HostEvent.GetGroups]: UIPassthroughEvent.GetGroups,
|
|
20105
20970
|
[HostEvent.getExportRequestForCurrentPinboard]: UIPassthroughEvent.GetExportRequestForCurrentPinboard,
|
|
20106
20971
|
};
|
|
20107
20972
|
class HostEventClient {
|
|
@@ -20113,6 +20978,7 @@ class HostEventClient {
|
|
|
20113
20978
|
[HostEvent.Pin]: (p, c) => this.handlePinEvent(p, c),
|
|
20114
20979
|
[HostEvent.SaveAnswer]: (p, c) => this.handleSaveAnswerEvent(p, c),
|
|
20115
20980
|
[HostEvent.UpdateFilters]: (p, c) => this.handleUpdateFiltersEvent(p, c),
|
|
20981
|
+
[HostEvent.UpdateParameters]: (p, c) => this.handleUpdateParametersEvent(p, c),
|
|
20116
20982
|
[HostEvent.DrillDown]: (p, c) => this.handleDrillDownEvent(p, c),
|
|
20117
20983
|
};
|
|
20118
20984
|
}
|
|
@@ -20237,6 +21103,13 @@ class HostEventClient {
|
|
|
20237
21103
|
}
|
|
20238
21104
|
return this.handleHostEventWithParam(UIPassthroughEvent.UpdateFilters, payload, context);
|
|
20239
21105
|
}
|
|
21106
|
+
handleUpdateParametersEvent(payload, context) {
|
|
21107
|
+
if (!isValidUpdateParametersPayload(payload)) {
|
|
21108
|
+
throwUpdateParametersValidationError();
|
|
21109
|
+
}
|
|
21110
|
+
// UpdateParameters has no UI passthrough contract; dispatch over the legacy channel
|
|
21111
|
+
return this.hostEventFallback(HostEvent.UpdateParameters, payload, context);
|
|
21112
|
+
}
|
|
20240
21113
|
handleDrillDownEvent(payload, context) {
|
|
20241
21114
|
if (!isValidDrillDownPayload(payload)) {
|
|
20242
21115
|
throwDrillDownValidationError();
|
|
@@ -20496,7 +21369,7 @@ class TsEmbed {
|
|
|
20496
21369
|
*/
|
|
20497
21370
|
this.shouldEncodeUrlQueryParams = false;
|
|
20498
21371
|
this.defaultHiddenActions = [Action.ReportError];
|
|
20499
|
-
this.preRenderContainerEl =
|
|
21372
|
+
this.preRenderContainerEl = document.body;
|
|
20500
21373
|
this.containerScrollListener = null;
|
|
20501
21374
|
/**
|
|
20502
21375
|
* Handler for fullscreen change events
|
|
@@ -21022,7 +21895,7 @@ class TsEmbed {
|
|
|
21022
21895
|
if (this.embedConfig.currencyFormat) {
|
|
21023
21896
|
queryParams[Param.CurrencyFormat] = this.embedConfig.currencyFormat;
|
|
21024
21897
|
}
|
|
21025
|
-
const { disabledActions, disabledActionReason, hiddenActions, visibleActions, hiddenTabs, visibleTabs, showAlerts, additionalFlags: additionalFlagsFromView, locale, customizations, contextMenuTrigger, linkOverride, enableLinkOverridesV2, insertInToSlide, disableRedirectionLinksInNewTab, overrideOrgId, exposeTranslationIDs, primaryAction, } = this.viewConfig;
|
|
21898
|
+
const { disabledActions, disabledActionReason, hiddenActions, visibleActions, hiddenTabs, visibleTabs, showAlerts, additionalFlags: additionalFlagsFromView, locale, customizations, contextMenuTrigger, linkOverride, enableLinkOverridesV2, insertInToSlide, disableRedirectionLinksInNewTab, overrideOrgId, overrideHistoryState, exposeTranslationIDs, primaryAction, } = this.viewConfig;
|
|
21026
21899
|
const { additionalFlags: additionalFlagsFromInit } = this.embedConfig;
|
|
21027
21900
|
const additionalFlags = {
|
|
21028
21901
|
...additionalFlagsFromInit,
|
|
@@ -21110,6 +21983,9 @@ class TsEmbed {
|
|
|
21110
21983
|
if (overrideOrgId !== undefined) {
|
|
21111
21984
|
queryParams[Param.OverrideOrgId] = overrideOrgId;
|
|
21112
21985
|
}
|
|
21986
|
+
if (overrideHistoryState !== undefined) {
|
|
21987
|
+
queryParams[Param.OverrideHistoryState] = overrideHistoryState;
|
|
21988
|
+
}
|
|
21113
21989
|
if (this.isPreAuthCacheEnabled()) {
|
|
21114
21990
|
queryParams[Param.preAuthCache] = true;
|
|
21115
21991
|
}
|
|
@@ -21181,11 +22057,27 @@ class TsEmbed {
|
|
|
21181
22057
|
iFrame.name = 'ThoughtSpot Embedded Analytics';
|
|
21182
22058
|
return iFrame;
|
|
21183
22059
|
}
|
|
22060
|
+
/**
|
|
22061
|
+
* Returns a merged {@link PreRenderConfig} object where each shared key
|
|
22062
|
+
* prefers `preRenderConfig.key` over the top-level `viewConfig.key` for
|
|
22063
|
+
* backward compatibility.
|
|
22064
|
+
*/
|
|
22065
|
+
getPreRenderConfig() {
|
|
22066
|
+
var _a, _b, _c, _d;
|
|
22067
|
+
const viewCfg = this.viewConfig;
|
|
22068
|
+
const preRenderCfg = (_a = viewCfg.preRenderConfig) !== null && _a !== void 0 ? _a : {};
|
|
22069
|
+
return {
|
|
22070
|
+
...preRenderCfg,
|
|
22071
|
+
preRenderId: (_b = preRenderCfg.preRenderId) !== null && _b !== void 0 ? _b : viewCfg.preRenderId,
|
|
22072
|
+
preRenderContainer: (_c = preRenderCfg.preRenderContainer) !== null && _c !== void 0 ? _c : viewCfg.preRenderContainer,
|
|
22073
|
+
doNotTrackPreRenderSize: (_d = preRenderCfg.doNotTrackPreRenderSize) !== null && _d !== void 0 ? _d : viewCfg.doNotTrackPreRenderSize,
|
|
22074
|
+
};
|
|
22075
|
+
}
|
|
21184
22076
|
/**
|
|
21185
22077
|
* Returns true if this embed instance is configured for pre-rendering.
|
|
21186
22078
|
*/
|
|
21187
22079
|
isPreRenderEmbed() {
|
|
21188
|
-
return !!this.
|
|
22080
|
+
return !!this.getPreRenderConfig().preRenderId;
|
|
21189
22081
|
}
|
|
21190
22082
|
handleInsertionIntoDOM(child) {
|
|
21191
22083
|
if (this.isPreRenderEmbed()) {
|
|
@@ -21321,6 +22213,7 @@ class TsEmbed {
|
|
|
21321
22213
|
this.setIframeElement(this.preRenderChild);
|
|
21322
22214
|
}
|
|
21323
22215
|
this.isRendered = true;
|
|
22216
|
+
this.inheritPreRenderContainer();
|
|
21324
22217
|
}
|
|
21325
22218
|
return this.isPreRenderConnected();
|
|
21326
22219
|
}
|
|
@@ -21371,7 +22264,7 @@ class TsEmbed {
|
|
|
21371
22264
|
*/
|
|
21372
22265
|
resolvePreRenderContainerTarget() {
|
|
21373
22266
|
var _a;
|
|
21374
|
-
const containerConfig = this.
|
|
22267
|
+
const containerConfig = this.getPreRenderConfig().preRenderContainer;
|
|
21375
22268
|
let container = null;
|
|
21376
22269
|
if (typeof containerConfig === 'string') {
|
|
21377
22270
|
try {
|
|
@@ -21389,15 +22282,35 @@ class TsEmbed {
|
|
|
21389
22282
|
}
|
|
21390
22283
|
return (_a = container) !== null && _a !== void 0 ? _a : document.body;
|
|
21391
22284
|
}
|
|
22285
|
+
inheritPreRenderContainer() {
|
|
22286
|
+
var _a;
|
|
22287
|
+
const preRenderedObject = this.getPreRenderObj();
|
|
22288
|
+
if (!preRenderedObject || preRenderedObject === this) {
|
|
22289
|
+
return;
|
|
22290
|
+
}
|
|
22291
|
+
const ownerContainer = (_a = preRenderedObject.preRenderContainerEl) !== null && _a !== void 0 ? _a : document.body;
|
|
22292
|
+
if (this.getPreRenderConfig().preRenderContainer
|
|
22293
|
+
&& this.resolvePreRenderContainerTarget() !== ownerContainer) {
|
|
22294
|
+
logger$3.warn('preRenderContainer is applied only by the component that creates the preRender; '
|
|
22295
|
+
+ 'the one passed here is ignored. Set it on the PreRender component instead.');
|
|
22296
|
+
}
|
|
22297
|
+
this.preRenderContainerEl = ownerContainer;
|
|
22298
|
+
this.applyPreRenderContainerPositioning();
|
|
22299
|
+
}
|
|
22300
|
+
getCustomPreRenderContainer() {
|
|
22301
|
+
const container = this.preRenderContainerEl;
|
|
22302
|
+
return container && container !== document.body ? container : null;
|
|
22303
|
+
}
|
|
21392
22304
|
/**
|
|
21393
|
-
* Makes the container a positioning context for the absolutely
|
|
21394
|
-
* wrapper, stashing the original inline `position` on the element
|
|
21395
|
-
* destroy() can restore it exactly, leaving no trace. Recording it
|
|
21396
|
-
* element rather than per-instance lets the override be reverted even
|
|
21397
|
-
* embeds share the same container.
|
|
22305
|
+
* Makes the resolved container a positioning context for the absolutely
|
|
22306
|
+
* positioned wrapper, stashing the original inline `position` on the element
|
|
22307
|
+
* (once) so destroy() can restore it exactly, leaving no trace. Recording it
|
|
22308
|
+
* on the element rather than per-instance lets the override be reverted even
|
|
22309
|
+
* when embeds share the same container.
|
|
21398
22310
|
*/
|
|
21399
|
-
applyPreRenderContainerPositioning(
|
|
21400
|
-
|
|
22311
|
+
applyPreRenderContainerPositioning() {
|
|
22312
|
+
const container = this.getCustomPreRenderContainer();
|
|
22313
|
+
if (!container) {
|
|
21401
22314
|
return;
|
|
21402
22315
|
}
|
|
21403
22316
|
const pos = window.getComputedStyle(container).position;
|
|
@@ -21440,11 +22353,11 @@ class TsEmbed {
|
|
|
21440
22353
|
resolved.addEventListener('scroll', this.containerScrollListener);
|
|
21441
22354
|
}
|
|
21442
22355
|
}
|
|
21443
|
-
this.
|
|
22356
|
+
this.preRenderContainerEl = resolved;
|
|
22357
|
+
this.applyPreRenderContainerPositioning();
|
|
21444
22358
|
if (wrapper.parentNode !== resolved) {
|
|
21445
22359
|
resolved.appendChild(wrapper);
|
|
21446
22360
|
}
|
|
21447
|
-
this.preRenderContainerEl = resolved;
|
|
21448
22361
|
}
|
|
21449
22362
|
insertIntoDOMForPreRender(child) {
|
|
21450
22363
|
const preRenderChild = this.createPreRenderChild(child);
|
|
@@ -21467,7 +22380,7 @@ class TsEmbed {
|
|
|
21467
22380
|
}
|
|
21468
22381
|
const targetContainer = this.resolvePreRenderContainerTarget();
|
|
21469
22382
|
this.preRenderContainerEl = targetContainer;
|
|
21470
|
-
this.applyPreRenderContainerPositioning(
|
|
22383
|
+
this.applyPreRenderContainerPositioning();
|
|
21471
22384
|
targetContainer.appendChild(preRenderWrapper);
|
|
21472
22385
|
}
|
|
21473
22386
|
insertIntoDOM(child) {
|
|
@@ -21795,6 +22708,9 @@ class TsEmbed {
|
|
|
21795
22708
|
* @param args
|
|
21796
22709
|
*/
|
|
21797
22710
|
async render() {
|
|
22711
|
+
uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_RENDER_CALLED, {
|
|
22712
|
+
embedComponentType: this.viewConfig.embedComponentType,
|
|
22713
|
+
});
|
|
21798
22714
|
if (!getIsInitCalled()) {
|
|
21799
22715
|
logger$3.error(ERROR_MESSAGE.RENDER_CALLED_BEFORE_INIT);
|
|
21800
22716
|
}
|
|
@@ -21866,7 +22782,11 @@ class TsEmbed {
|
|
|
21866
22782
|
* @param showPreRenderByDefault - Show the preRender after render, hidden by default
|
|
21867
22783
|
*/
|
|
21868
22784
|
async preRender(showPreRenderByDefault = false, replaceExistingPreRender = false) {
|
|
21869
|
-
|
|
22785
|
+
uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_PRE_RENDER, {
|
|
22786
|
+
showPreRenderByDefault,
|
|
22787
|
+
replaceExistingPreRender,
|
|
22788
|
+
});
|
|
22789
|
+
if (!this.getPreRenderConfig().preRenderId) {
|
|
21870
22790
|
logger$3.error(ERROR_MESSAGE.PRERENDER_ID_MISSING);
|
|
21871
22791
|
return this;
|
|
21872
22792
|
}
|
|
@@ -21922,7 +22842,7 @@ class TsEmbed {
|
|
|
21922
22842
|
}
|
|
21923
22843
|
// Drop our reference up front so a destroyed embed never pins a
|
|
21924
22844
|
// detached container in memory; restoration uses the local handle.
|
|
21925
|
-
this.preRenderContainerEl =
|
|
22845
|
+
this.preRenderContainerEl = document.body;
|
|
21926
22846
|
const originalPosition = container.dataset[PRERENDER_CONTAINER_ORIGINAL_POSITION_KEY];
|
|
21927
22847
|
if (originalPosition === undefined) {
|
|
21928
22848
|
// We never overrode this container's position; nothing to restore.
|
|
@@ -21945,9 +22865,7 @@ class TsEmbed {
|
|
|
21945
22865
|
if (!this.containerScrollListener) {
|
|
21946
22866
|
return;
|
|
21947
22867
|
}
|
|
21948
|
-
const customContainer = this.
|
|
21949
|
-
? this.preRenderContainerEl
|
|
21950
|
-
: null;
|
|
22868
|
+
const customContainer = this.getCustomPreRenderContainer();
|
|
21951
22869
|
customContainer === null || customContainer === void 0 ? void 0 : customContainer.removeEventListener('scroll', this.containerScrollListener);
|
|
21952
22870
|
this.containerScrollListener = null;
|
|
21953
22871
|
}
|
|
@@ -22042,10 +22960,14 @@ class TsEmbed {
|
|
|
22042
22960
|
* wrapper to overlay it.
|
|
22043
22961
|
*/
|
|
22044
22962
|
async showPreRender() {
|
|
22045
|
-
var _a;
|
|
22963
|
+
var _a, _b;
|
|
22964
|
+
uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_SHOW_PRE_RENDER, {
|
|
22965
|
+
preRenderId: this.getPreRenderConfig().preRenderId,
|
|
22966
|
+
embedComponentType: this.viewConfig.embedComponentType,
|
|
22967
|
+
});
|
|
22046
22968
|
if (this.shouldWaitForRenderPromise)
|
|
22047
22969
|
await this.isReadyForRenderPromise;
|
|
22048
|
-
if (!this.
|
|
22970
|
+
if (!this.getPreRenderConfig().preRenderId) {
|
|
22049
22971
|
logger$3.error(ERROR_MESSAGE.PRERENDER_ID_MISSING);
|
|
22050
22972
|
return this;
|
|
22051
22973
|
}
|
|
@@ -22066,21 +22988,23 @@ class TsEmbed {
|
|
|
22066
22988
|
}
|
|
22067
22989
|
}
|
|
22068
22990
|
const placeHolderId = this.getPreRenderIds().placeHolder;
|
|
22069
|
-
|
|
22070
|
-
|
|
22071
|
-
|
|
22072
|
-
|
|
22991
|
+
// Remove any stale placeholder from a previous cycle. It is located
|
|
22992
|
+
// via a subtree-wide querySelector, so it may be nested deeper than a
|
|
22993
|
+
// direct child (E.g.: with fullHeight the host app can wrap it). Use
|
|
22994
|
+
// Element.remove() — which detaches from whatever the real parent is —
|
|
22995
|
+
// rather than hostElement.removeChild(), which throws NotFoundError
|
|
22996
|
+
// when the match is not a direct child. Mirrors the wrapper/child
|
|
22997
|
+
// cleanup in createPreRenderWrapper()/createPreRenderChild().
|
|
22998
|
+
(_a = this.hostElement.querySelector(`#${placeHolderId}`)) === null || _a === void 0 ? void 0 : _a.remove();
|
|
22073
22999
|
this.hostElement.appendChild(this.insertedDomEl);
|
|
22074
23000
|
this.syncPreRenderStyle();
|
|
22075
|
-
const customContainer = this.
|
|
22076
|
-
? this.preRenderContainerEl
|
|
22077
|
-
: null;
|
|
23001
|
+
const customContainer = this.getCustomPreRenderContainer();
|
|
22078
23002
|
if (customContainer && !this.containerScrollListener) {
|
|
22079
23003
|
this.containerScrollListener = () => this.syncPreRenderStyle();
|
|
22080
23004
|
customContainer.addEventListener('scroll', this.containerScrollListener);
|
|
22081
23005
|
}
|
|
22082
|
-
if (!this.
|
|
22083
|
-
const observeTarget = (
|
|
23006
|
+
if (!this.getPreRenderConfig().doNotTrackPreRenderSize) {
|
|
23007
|
+
const observeTarget = (_b = this.insertedDomEl) !== null && _b !== void 0 ? _b : this.hostElement;
|
|
22084
23008
|
this.resizeObserver = new ResizeObserver((entries) => {
|
|
22085
23009
|
entries.forEach((entry) => {
|
|
22086
23010
|
if (entry.target === observeTarget) {
|
|
@@ -22121,13 +23045,15 @@ class TsEmbed {
|
|
|
22121
23045
|
logger$3.error(ERROR_MESSAGE.SYNC_STYLE_CALLED_BEFORE_RENDER);
|
|
22122
23046
|
return;
|
|
22123
23047
|
}
|
|
23048
|
+
if (!this.getPreRenderPlaceHolderElement().isConnected) {
|
|
23049
|
+
logger$3.debug('syncPreRenderStyle skipped: placeholder is detached');
|
|
23050
|
+
return;
|
|
23051
|
+
}
|
|
22124
23052
|
// Self-heal if the resolved container was remounted/detached, so we
|
|
22125
23053
|
// never measure a stale node (which would collapse the wrapper).
|
|
22126
23054
|
this.reconcilePreRenderContainer();
|
|
22127
23055
|
const elBoundingClient = this.getPreRenderPlaceHolderElement().getBoundingClientRect();
|
|
22128
|
-
const containerEl = this.
|
|
22129
|
-
? this.preRenderContainerEl
|
|
22130
|
-
: null;
|
|
23056
|
+
const containerEl = this.getCustomPreRenderContainer();
|
|
22131
23057
|
const containerRect = (_a = containerEl === null || containerEl === void 0 ? void 0 : containerEl.getBoundingClientRect()) !== null && _a !== void 0 ? _a : { x: 0, y: 0 };
|
|
22132
23058
|
const scrollX = containerEl ? containerEl.scrollLeft : window.scrollX;
|
|
22133
23059
|
const scrollY = containerEl ? containerEl.scrollTop : window.scrollY;
|
|
@@ -22144,16 +23070,21 @@ class TsEmbed {
|
|
|
22144
23070
|
* If the component is not preRendered, it issues a warning.
|
|
22145
23071
|
*/
|
|
22146
23072
|
hidePreRender() {
|
|
23073
|
+
uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_HIDE_PRE_RENDER, {
|
|
23074
|
+
preRenderId: this.getPreRenderConfig().preRenderId,
|
|
23075
|
+
embedComponentType: this.viewConfig.embedComponentType,
|
|
23076
|
+
});
|
|
22147
23077
|
logger$3.debug('HidePreRender Called');
|
|
22148
23078
|
if (!this.isPreRenderConnected()) {
|
|
22149
23079
|
// if the embed component is not preRendered , nothing to hide
|
|
22150
23080
|
logger$3.warn('PreRender should be called before hiding it using hidePreRender.');
|
|
22151
23081
|
return;
|
|
22152
23082
|
}
|
|
23083
|
+
const { zIndex } = this.getPreRenderConfig();
|
|
22153
23084
|
const preRenderHideStyles = {
|
|
22154
23085
|
opacity: '0',
|
|
22155
23086
|
pointerEvents: 'none',
|
|
22156
|
-
zIndex: '-1000',
|
|
23087
|
+
zIndex: zIndex !== undefined ? String(zIndex) : '-1000',
|
|
22157
23088
|
position: 'absolute',
|
|
22158
23089
|
top: '0',
|
|
22159
23090
|
left: '0',
|
|
@@ -22178,10 +23109,11 @@ class TsEmbed {
|
|
|
22178
23109
|
* @property {string} child - The HTML element ID for the PreRender child.
|
|
22179
23110
|
*/
|
|
22180
23111
|
getPreRenderIds() {
|
|
23112
|
+
const preRenderId = this.getPreRenderConfig().preRenderId;
|
|
22181
23113
|
return {
|
|
22182
|
-
wrapper: `${PRERENDER_WRAPPER_ID_PREFIX}${
|
|
22183
|
-
child: `tsEmbed-pre-render-child-${
|
|
22184
|
-
placeHolder: `tsEmbed-pre-render-placeholder-${
|
|
23114
|
+
wrapper: `${PRERENDER_WRAPPER_ID_PREFIX}${preRenderId}`,
|
|
23115
|
+
child: `tsEmbed-pre-render-child-${preRenderId}`,
|
|
23116
|
+
placeHolder: `tsEmbed-pre-render-placeholder-${preRenderId}`,
|
|
22185
23117
|
};
|
|
22186
23118
|
}
|
|
22187
23119
|
/**
|
|
@@ -22351,6 +23283,31 @@ function buildSpotterSidebarAppInitData(defaultAppInitData, viewConfig, handleEr
|
|
|
22351
23283
|
...(visualOverrides !== undefined ? { visualOverridesParams: visualOverrides } : {}),
|
|
22352
23284
|
},
|
|
22353
23285
|
};
|
|
23286
|
+
}
|
|
23287
|
+
function buildSpotterShareConversationAppInitData(initData, viewConfig) {
|
|
23288
|
+
const { spotterShareConversationConfig } = viewConfig;
|
|
23289
|
+
if (!spotterShareConversationConfig)
|
|
23290
|
+
return initData;
|
|
23291
|
+
return {
|
|
23292
|
+
...initData,
|
|
23293
|
+
embedParams: {
|
|
23294
|
+
...(initData.embedParams || {}),
|
|
23295
|
+
spotterShareConversationConfig,
|
|
23296
|
+
},
|
|
23297
|
+
};
|
|
23298
|
+
}
|
|
23299
|
+
function buildStarterPromptsAppInitData(initData, viewConfig) {
|
|
23300
|
+
var _a;
|
|
23301
|
+
const starterPrompts = (_a = viewConfig.spotterChatConfig) === null || _a === void 0 ? void 0 : _a.starterPrompts;
|
|
23302
|
+
if (!starterPrompts)
|
|
23303
|
+
return initData;
|
|
23304
|
+
return {
|
|
23305
|
+
...initData,
|
|
23306
|
+
embedParams: {
|
|
23307
|
+
...(initData.embedParams || {}),
|
|
23308
|
+
starterPrompts,
|
|
23309
|
+
},
|
|
23310
|
+
};
|
|
22354
23311
|
}
|
|
22355
23312
|
|
|
22356
23313
|
function buildSpotterVizAppInitData(initData, viewConfig) {
|
|
@@ -22412,6 +23369,14 @@ var Page;
|
|
|
22412
23369
|
* Monitor Alerts Page
|
|
22413
23370
|
*/
|
|
22414
23371
|
Page["Monitor"] = "monitor";
|
|
23372
|
+
/**
|
|
23373
|
+
* Collections listing page
|
|
23374
|
+
*/
|
|
23375
|
+
Page["Collections"] = "collections";
|
|
23376
|
+
/**
|
|
23377
|
+
* Liveboard schedules listing page
|
|
23378
|
+
*/
|
|
23379
|
+
Page["LiveboardSchedules"] = "liveboard-schedules";
|
|
22415
23380
|
})(Page || (Page = {}));
|
|
22416
23381
|
/**
|
|
22417
23382
|
* Define the initial state of column custom group accordions
|
|
@@ -22460,6 +23425,9 @@ var HomePage;
|
|
|
22460
23425
|
/**
|
|
22461
23426
|
* Modular (v2) introduces the updated Modular Home Experience.
|
|
22462
23427
|
* It serves as the foundational version of the home page.
|
|
23428
|
+
* Use {@link HomePage.ModularWithStylingChanges} (V3) or
|
|
23429
|
+
* {@link HomePage.Focused} (V4) instead.
|
|
23430
|
+
* @deprecated V1 and V2 home page experiences are deprecated.
|
|
22463
23431
|
*/
|
|
22464
23432
|
HomePage["Modular"] = "v2";
|
|
22465
23433
|
/**
|
|
@@ -22554,6 +23522,15 @@ class AppEmbed extends V1Embed {
|
|
|
22554
23522
|
this.setIFrameHeight(frameHeight || this.defaultHeight);
|
|
22555
23523
|
};
|
|
22556
23524
|
if (this.viewConfig.fullHeight === true) {
|
|
23525
|
+
if (this.viewConfig.lazyLoadingForFullHeight === undefined) {
|
|
23526
|
+
this.viewConfig.lazyLoadingForFullHeight = true;
|
|
23527
|
+
}
|
|
23528
|
+
if (this.viewConfig.enableScrollableContainerLazyLoading === undefined) {
|
|
23529
|
+
this.viewConfig.enableScrollableContainerLazyLoading = true;
|
|
23530
|
+
}
|
|
23531
|
+
if (this.viewConfig.lazyLoadingMargin === undefined) {
|
|
23532
|
+
this.viewConfig.lazyLoadingMargin = DEFAULT_LAZY_LOADING_MARGIN;
|
|
23533
|
+
}
|
|
22557
23534
|
this.on(EmbedEvent.RouteChange, this.setIframeHeightForNonEmbedLiveboard);
|
|
22558
23535
|
this.on(EmbedEvent.EmbedHeight, this.updateIFrameHeight);
|
|
22559
23536
|
this.on(EmbedEvent.EmbedIframeCenter, this.embedIframeCenter);
|
|
@@ -22575,14 +23552,20 @@ class AppEmbed extends V1Embed {
|
|
|
22575
23552
|
async getAppInitData() {
|
|
22576
23553
|
const defaultAppInitData = await super.getAppInitData();
|
|
22577
23554
|
const sidebarInitData = buildSpotterSidebarAppInitData(defaultAppInitData, this.viewConfig, this.handleError.bind(this));
|
|
22578
|
-
|
|
23555
|
+
const vizInitData = buildSpotterVizAppInitData(sidebarInitData, this.viewConfig);
|
|
23556
|
+
const shareInitData = buildSpotterShareConversationAppInitData(vizInitData, this.viewConfig);
|
|
23557
|
+
return buildStarterPromptsAppInitData(shareInitData, this.viewConfig);
|
|
22579
23558
|
}
|
|
22580
23559
|
/**
|
|
22581
23560
|
* Constructs a map of parameters to be passed on to the
|
|
22582
23561
|
* embedded Liveboard or visualization.
|
|
22583
23562
|
*/
|
|
22584
23563
|
getEmbedParams() {
|
|
22585
|
-
const
|
|
23564
|
+
const params = this.getEmbedParamsObject();
|
|
23565
|
+
return getQueryParamString(params, true);
|
|
23566
|
+
}
|
|
23567
|
+
getEmbedParamsObject() {
|
|
23568
|
+
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;
|
|
22586
23569
|
let params = {};
|
|
22587
23570
|
params[Param.PrimaryNavHidden] = !showPrimaryNavbar;
|
|
22588
23571
|
params[Param.HideProfleAndHelp] = !!disableProfileAndHelp;
|
|
@@ -22592,31 +23575,51 @@ class AppEmbed extends V1Embed {
|
|
|
22592
23575
|
params[Param.ShowLiveboardTitle] = showLiveboardTitle;
|
|
22593
23576
|
params[Param.ShowLiveboardDescription] = !!showLiveboardDescription;
|
|
22594
23577
|
params[Param.ShowMaskedFilterChip] = showMaskedFilterChip;
|
|
22595
|
-
|
|
23578
|
+
if (!isUndefined$1(isLiveboardMasterpiecesEnabled)) {
|
|
23579
|
+
params[Param.IsLiveboardMasterpiecesEnabled] = isLiveboardMasterpiecesEnabled;
|
|
23580
|
+
}
|
|
22596
23581
|
if (newChartsLibrary !== undefined) {
|
|
22597
23582
|
params[Param.EnableNewChartLibrary] = newChartsLibrary;
|
|
22598
23583
|
}
|
|
22599
23584
|
params[Param.LiveboardHeaderSticky] = isLiveboardHeaderSticky;
|
|
22600
23585
|
params[Param.IsFullAppEmbed] = true;
|
|
22601
|
-
|
|
22602
|
-
|
|
23586
|
+
if (!isUndefined$1(isLiveboardCompactHeaderEnabled)) {
|
|
23587
|
+
params[Param.LiveboardHeaderV2] = isLiveboardCompactHeaderEnabled;
|
|
23588
|
+
}
|
|
23589
|
+
if (!isUndefined$1(isEnhancedFilterInteractivityEnabled)) {
|
|
23590
|
+
params[Param.IsEnhancedFilterInteractivityEnabled] =
|
|
23591
|
+
isEnhancedFilterInteractivityEnabled;
|
|
23592
|
+
}
|
|
22603
23593
|
params[Param.ShowLiveboardVerifiedBadge] = showLiveboardVerifiedBadge;
|
|
22604
23594
|
params[Param.ShowLiveboardReverifyBanner] = showLiveboardReverifyBanner;
|
|
22605
|
-
|
|
23595
|
+
if (!isUndefined$1(hideIrrelevantChipsInLiveboardTabs)) {
|
|
23596
|
+
params[Param.HideIrrelevantFiltersInTab] = hideIrrelevantChipsInLiveboardTabs;
|
|
23597
|
+
}
|
|
22606
23598
|
if (isUnifiedSearchExperienceEnabled !== undefined) {
|
|
22607
23599
|
params[Param.IsUnifiedSearchExperienceEnabled] = isUnifiedSearchExperienceEnabled;
|
|
22608
23600
|
}
|
|
22609
|
-
|
|
23601
|
+
if (!isUndefined$1(coverAndFilterOptionInPDF)) {
|
|
23602
|
+
params[Param.CoverAndFilterOptionInPDF] = !!coverAndFilterOptionInPDF;
|
|
23603
|
+
}
|
|
22610
23604
|
params = this.getBaseQueryParams(params);
|
|
22611
|
-
if (!isUndefined(updatedSpotterChatPrompt)) {
|
|
23605
|
+
if (!isUndefined$1(updatedSpotterChatPrompt)) {
|
|
22612
23606
|
params[Param.UpdatedSpotterChatPrompt] = !!updatedSpotterChatPrompt;
|
|
22613
23607
|
}
|
|
22614
|
-
if (!isUndefined(
|
|
23608
|
+
if (!isUndefined$1(showSpotterRadiance)) {
|
|
23609
|
+
params[Param.ShowSpotterRadiance] = !!showSpotterRadiance;
|
|
23610
|
+
}
|
|
23611
|
+
if (!isUndefined$1(defaultQueryMode)) {
|
|
23612
|
+
params[Param.DefaultQueryMode] = defaultQueryMode;
|
|
23613
|
+
}
|
|
23614
|
+
if (!isUndefined$1(enableStopAnswerGenerationEmbed)) {
|
|
22615
23615
|
params[Param.EnableStopAnswerGenerationEmbed] = !!enableStopAnswerGenerationEmbed;
|
|
22616
23616
|
}
|
|
23617
|
+
if (spotterDataSources && spotterDataSources.length) {
|
|
23618
|
+
params[Param.SpotterDataSources] = JSON.stringify(spotterDataSources);
|
|
23619
|
+
}
|
|
22617
23620
|
// Handle spotterChatConfig params
|
|
22618
23621
|
if (spotterChatConfig) {
|
|
22619
|
-
const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, spotterFileUploadEnabled, spotterFileUploadFileTypes, enableStarterPrompts, } = spotterChatConfig;
|
|
23622
|
+
const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, spotterFileUploadEnabled, spotterFileUploadFileTypes, enableStarterPrompts, openSpotterOnLiveboardByDefault, } = spotterChatConfig;
|
|
22620
23623
|
setParamIfDefined(params, Param.HideToolResponseCardBranding, hideToolResponseCardBranding, true);
|
|
22621
23624
|
setParamIfDefined(params, Param.ToolResponseCardBrandingLabel, toolResponseCardBrandingLabel);
|
|
22622
23625
|
if (spotterFileUploadEnabled !== undefined) {
|
|
@@ -22625,10 +23628,16 @@ class AppEmbed extends V1Embed {
|
|
|
22625
23628
|
if (enableStarterPrompts !== undefined) {
|
|
22626
23629
|
params[Param.IsStarterPromptsEnabled] = enableStarterPrompts;
|
|
22627
23630
|
}
|
|
23631
|
+
if (openSpotterOnLiveboardByDefault !== undefined) {
|
|
23632
|
+
params[Param.OpenSpotterOnLiveboardByDefault] = openSpotterOnLiveboardByDefault;
|
|
23633
|
+
}
|
|
22628
23634
|
if (spotterFileUploadFileTypes !== undefined) {
|
|
22629
23635
|
params[Param.SpotterFileUploadFileTypes] = JSON.stringify(spotterFileUploadFileTypes);
|
|
22630
23636
|
}
|
|
22631
23637
|
}
|
|
23638
|
+
if (!isUndefined$1(updatedSpotterExperience)) {
|
|
23639
|
+
params[Param.UpdatedSpotterExperience] = !!updatedSpotterExperience;
|
|
23640
|
+
}
|
|
22632
23641
|
if (hideObjectSearch) {
|
|
22633
23642
|
params[Param.HideObjectSearch] = !!hideObjectSearch;
|
|
22634
23643
|
}
|
|
@@ -22665,6 +23674,9 @@ class AppEmbed extends V1Embed {
|
|
|
22665
23674
|
if (enable2ColumnLayout !== undefined) {
|
|
22666
23675
|
params[Param.Enable2ColumnLayout] = enable2ColumnLayout;
|
|
22667
23676
|
}
|
|
23677
|
+
if (isLiveboardAlwaysOn12ColLayout !== undefined) {
|
|
23678
|
+
params[Param.IsLiveboardAlwaysOn12ColLayout] = isLiveboardAlwaysOn12ColLayout;
|
|
23679
|
+
}
|
|
22668
23680
|
if (enableAskSage) {
|
|
22669
23681
|
params[Param.enableAskSage] = enableAskSage;
|
|
22670
23682
|
}
|
|
@@ -22677,6 +23689,9 @@ class AppEmbed extends V1Embed {
|
|
|
22677
23689
|
if (isLiveboardStylingAndGroupingEnabled !== undefined) {
|
|
22678
23690
|
params[Param.IsLiveboardStylingAndGroupingEnabled] = isLiveboardStylingAndGroupingEnabled;
|
|
22679
23691
|
}
|
|
23692
|
+
if (liveboardGutter !== undefined) {
|
|
23693
|
+
params[Param.LiveboardGutter] = liveboardGutter;
|
|
23694
|
+
}
|
|
22680
23695
|
if (isPNGInScheduledEmailsEnabled !== undefined) {
|
|
22681
23696
|
params[Param.isPNGInScheduledEmailsEnabled] = isPNGInScheduledEmailsEnabled;
|
|
22682
23697
|
}
|
|
@@ -22695,6 +23710,9 @@ class AppEmbed extends V1Embed {
|
|
|
22695
23710
|
if (isCentralizedLiveboardFilterUXEnabled != undefined) {
|
|
22696
23711
|
params[Param.isCentralizedLiveboardFilterUXEnabled] = isCentralizedLiveboardFilterUXEnabled;
|
|
22697
23712
|
}
|
|
23713
|
+
if (isScopedLiveboardFilteringEnabled !== undefined) {
|
|
23714
|
+
params[Param.isScopedLiveboardFilteringEnabled] = isScopedLiveboardFilteringEnabled;
|
|
23715
|
+
}
|
|
22698
23716
|
if (isThisPeriodInDateFiltersEnabled !== undefined) {
|
|
22699
23717
|
params[Param.IsThisPeriodInDateFiltersEnabled] = isThisPeriodInDateFiltersEnabled;
|
|
22700
23718
|
}
|
|
@@ -22710,7 +23728,6 @@ class AppEmbed extends V1Embed {
|
|
|
22710
23728
|
}
|
|
22711
23729
|
params[Param.DataPanelV2Enabled] = dataPanelV2;
|
|
22712
23730
|
params[Param.HideHomepageLeftNav] = hideHomepageLeftNav;
|
|
22713
|
-
params[Param.ModularHomeExperienceEnabled] = modularHomeExperience;
|
|
22714
23731
|
params[Param.CollapseSearchBarInitially] = collapseSearchBarInitially || collapseSearchBar;
|
|
22715
23732
|
params[Param.EnableCustomColumnGroups] = enableCustomColumnGroups;
|
|
22716
23733
|
if (dataPanelCustomGroupsAccordionInitialState
|
|
@@ -22725,33 +23742,15 @@ class AppEmbed extends V1Embed {
|
|
|
22725
23742
|
if (modularHomeExperience !== undefined) {
|
|
22726
23743
|
params[Param.ModularHomeExperienceEnabled] = modularHomeExperience;
|
|
22727
23744
|
}
|
|
22728
|
-
//
|
|
22729
|
-
//
|
|
22730
|
-
//
|
|
22731
|
-
//
|
|
22732
|
-
//
|
|
22733
|
-
|
|
22734
|
-
|
|
22735
|
-
|
|
22736
|
-
params[Param.HomepageVersion] = 'v2';
|
|
23745
|
+
// Navigation V1/V2 and home page V1/V2 are deprecated. V3 is now the
|
|
23746
|
+
// default experience, Need to send navigationVersion=v3 and
|
|
23747
|
+
// homepageVersion=v3 even when the no discoveryExperience /
|
|
23748
|
+
// modularHomeExperience config is set. Without these
|
|
23749
|
+
// params, older TSA versions (< 26.7) fall back to V2 for nav and
|
|
23750
|
+
// home page, so the defaults must be sent explicitly from the SDK.
|
|
23751
|
+
params[Param.NavigationVersion] = PrimaryNavbarVersion.Sliding;
|
|
23752
|
+
params[Param.HomepageVersion] = HomePage.ModularWithStylingChanges;
|
|
22737
23753
|
if (discoveryExperience) {
|
|
22738
|
-
// primaryNavbarVersion v3 will enabled the new left navigation
|
|
22739
|
-
if (discoveryExperience.primaryNavbarVersion === PrimaryNavbarVersion.Sliding) {
|
|
22740
|
-
params[Param.NavigationVersion] = discoveryExperience.primaryNavbarVersion;
|
|
22741
|
-
// Enable the modularHomeExperience when Sliding is enabled.
|
|
22742
|
-
params[Param.ModularHomeExperienceEnabled] = true;
|
|
22743
|
-
}
|
|
22744
|
-
// homePage v2 will enable the modular home page
|
|
22745
|
-
// and it will override the modularHomeExperience value
|
|
22746
|
-
if (discoveryExperience.homePage === HomePage.Modular) {
|
|
22747
|
-
params[Param.ModularHomeExperienceEnabled] = true;
|
|
22748
|
-
}
|
|
22749
|
-
// ModularWithStylingChanges (v3) introduces the styling changes
|
|
22750
|
-
// to the Modular Homepage.
|
|
22751
|
-
// v3 will be the base version of homePageVersion.
|
|
22752
|
-
if (discoveryExperience.homePage === HomePage.ModularWithStylingChanges) {
|
|
22753
|
-
params[Param.HomepageVersion] = HomePage.ModularWithStylingChanges;
|
|
22754
|
-
}
|
|
22755
23754
|
// listPageVersion can be changed to v2 or v3
|
|
22756
23755
|
if (discoveryExperience.listPageVersion !== undefined) {
|
|
22757
23756
|
params[Param.ListPageVersion] = discoveryExperience.listPageVersion;
|
|
@@ -22761,13 +23760,12 @@ class AppEmbed extends V1Embed {
|
|
|
22761
23760
|
// The Focused (V4) homepage experience requires the updated
|
|
22762
23761
|
// Spotter chat prompt. Enable it automatically unless the
|
|
22763
23762
|
// developer has explicitly set updatedSpotterChatPrompt.
|
|
22764
|
-
if (isUndefined(updatedSpotterChatPrompt)) {
|
|
23763
|
+
if (isUndefined$1(updatedSpotterChatPrompt)) {
|
|
22765
23764
|
params[Param.UpdatedSpotterChatPrompt] = true;
|
|
22766
23765
|
}
|
|
22767
23766
|
}
|
|
22768
23767
|
}
|
|
22769
|
-
|
|
22770
|
-
return queryParams;
|
|
23768
|
+
return params;
|
|
22771
23769
|
}
|
|
22772
23770
|
/**
|
|
22773
23771
|
* Constructs the URL of the ThoughtSpot app page to be rendered.
|
|
@@ -22802,6 +23800,10 @@ class AppEmbed extends V1Embed {
|
|
|
22802
23800
|
return modularHomeExperience ? 'home/spotiq-analysis' : 'insights/results';
|
|
22803
23801
|
case Page.Monitor:
|
|
22804
23802
|
return modularHomeExperience ? 'home/monitor-alerts' : 'insights/monitor-alerts';
|
|
23803
|
+
case Page.Collections:
|
|
23804
|
+
return 'collections';
|
|
23805
|
+
case Page.LiveboardSchedules:
|
|
23806
|
+
return 'home/liveboard-schedules';
|
|
22805
23807
|
case Page.Home:
|
|
22806
23808
|
default:
|
|
22807
23809
|
return 'home';
|
|
@@ -22834,11 +23836,13 @@ class AppEmbed extends V1Embed {
|
|
|
22834
23836
|
* @version SDK: 1.12.0 | ThoughtSpot: 8.4.0.cl, 8.4.1-sw
|
|
22835
23837
|
*/
|
|
22836
23838
|
navigateToPage(path, noReload = false) {
|
|
23839
|
+
var _a;
|
|
22837
23840
|
if (!this.iFrame) {
|
|
22838
23841
|
logger$3.log('Please call render before invoking this method');
|
|
22839
23842
|
return;
|
|
22840
23843
|
}
|
|
22841
|
-
|
|
23844
|
+
const overrideHistoryState = (_a = this.viewConfig) === null || _a === void 0 ? void 0 : _a.overrideHistoryState;
|
|
23845
|
+
if (noReload || overrideHistoryState) {
|
|
22842
23846
|
this.trigger(HostEvent.Navigate, path);
|
|
22843
23847
|
}
|
|
22844
23848
|
else {
|
|
@@ -23085,6 +24089,15 @@ class LiveboardEmbed extends V1Embed {
|
|
|
23085
24089
|
logger$3.warn('Full height is currently only supported for Liveboard embeds.' +
|
|
23086
24090
|
'Using full height with vizId might lead to unexpected behavior.');
|
|
23087
24091
|
}
|
|
24092
|
+
if (this.viewConfig.lazyLoadingForFullHeight === undefined) {
|
|
24093
|
+
this.viewConfig.lazyLoadingForFullHeight = true;
|
|
24094
|
+
}
|
|
24095
|
+
if (this.viewConfig.enableScrollableContainerLazyLoading === undefined) {
|
|
24096
|
+
this.viewConfig.enableScrollableContainerLazyLoading = true;
|
|
24097
|
+
}
|
|
24098
|
+
if (this.viewConfig.lazyLoadingMargin === undefined) {
|
|
24099
|
+
this.viewConfig.lazyLoadingMargin = DEFAULT_LAZY_LOADING_MARGIN;
|
|
24100
|
+
}
|
|
23088
24101
|
this.on(EmbedEvent.RouteChange, this.setIframeHeightForNonEmbedLiveboard);
|
|
23089
24102
|
this.on(EmbedEvent.EmbedHeight, this.updateIFrameHeight);
|
|
23090
24103
|
this.on(EmbedEvent.EmbedIframeCenter, this.embedIframeCenter);
|
|
@@ -23093,7 +24106,8 @@ class LiveboardEmbed extends V1Embed {
|
|
|
23093
24106
|
}
|
|
23094
24107
|
async getAppInitData() {
|
|
23095
24108
|
const defaultAppInitData = await super.getAppInitData();
|
|
23096
|
-
|
|
24109
|
+
const vizInitData = buildSpotterVizAppInitData(defaultAppInitData, this.viewConfig);
|
|
24110
|
+
return buildStarterPromptsAppInitData(vizInitData, this.viewConfig);
|
|
23097
24111
|
}
|
|
23098
24112
|
/**
|
|
23099
24113
|
* Construct a map of params to be passed on to the
|
|
@@ -23107,7 +24121,7 @@ class LiveboardEmbed extends V1Embed {
|
|
|
23107
24121
|
getEmbedParamsObject() {
|
|
23108
24122
|
let params = {};
|
|
23109
24123
|
params = this.getBaseQueryParams(params);
|
|
23110
|
-
const { enableVizTransformations, fullHeight, defaultHeight, minimumHeight, visibleVizs, liveboardV2, vizId, hideTabPanel, activeTabId, hideLiveboardHeader, showLiveboardDescription, showLiveboardTitle, isLiveboardHeaderSticky = true, isLiveboardCompactHeaderEnabled
|
|
24124
|
+
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;
|
|
23111
24125
|
const preventLiveboardFilterRemoval = this.viewConfig.preventLiveboardFilterRemoval
|
|
23112
24126
|
|| this.viewConfig.preventPinboardFilterRemoval;
|
|
23113
24127
|
if (fullHeight === true) {
|
|
@@ -23126,10 +24140,13 @@ class LiveboardEmbed extends V1Embed {
|
|
|
23126
24140
|
if (preventLiveboardFilterRemoval) {
|
|
23127
24141
|
params[Param.preventLiveboardFilterRemoval] = true;
|
|
23128
24142
|
}
|
|
23129
|
-
if (!isUndefined(updatedSpotterChatPrompt)) {
|
|
24143
|
+
if (!isUndefined$1(updatedSpotterChatPrompt)) {
|
|
23130
24144
|
params[Param.UpdatedSpotterChatPrompt] = !!updatedSpotterChatPrompt;
|
|
23131
24145
|
}
|
|
23132
|
-
if (!isUndefined(
|
|
24146
|
+
if (!isUndefined$1(showSpotterRadiance)) {
|
|
24147
|
+
params[Param.ShowSpotterRadiance] = !!showSpotterRadiance;
|
|
24148
|
+
}
|
|
24149
|
+
if (!isUndefined$1(enableStopAnswerGenerationEmbed)) {
|
|
23133
24150
|
params[Param.EnableStopAnswerGenerationEmbed] = !!enableStopAnswerGenerationEmbed;
|
|
23134
24151
|
}
|
|
23135
24152
|
if (visibleVizs) {
|
|
@@ -23145,6 +24162,9 @@ class LiveboardEmbed extends V1Embed {
|
|
|
23145
24162
|
if (enable2ColumnLayout !== undefined) {
|
|
23146
24163
|
params[Param.Enable2ColumnLayout] = enable2ColumnLayout;
|
|
23147
24164
|
}
|
|
24165
|
+
if (isLiveboardAlwaysOn12ColLayout !== undefined) {
|
|
24166
|
+
params[Param.IsLiveboardAlwaysOn12ColLayout] = isLiveboardAlwaysOn12ColLayout;
|
|
24167
|
+
}
|
|
23148
24168
|
if (hideTabPanel) {
|
|
23149
24169
|
params[Param.HideTabPanel] = hideTabPanel;
|
|
23150
24170
|
}
|
|
@@ -23172,6 +24192,9 @@ class LiveboardEmbed extends V1Embed {
|
|
|
23172
24192
|
if (isLiveboardStylingAndGroupingEnabled !== undefined) {
|
|
23173
24193
|
params[Param.IsLiveboardStylingAndGroupingEnabled] = isLiveboardStylingAndGroupingEnabled;
|
|
23174
24194
|
}
|
|
24195
|
+
if (liveboardGutter !== undefined) {
|
|
24196
|
+
params[Param.LiveboardGutter] = liveboardGutter;
|
|
24197
|
+
}
|
|
23175
24198
|
if (isPNGInScheduledEmailsEnabled !== undefined) {
|
|
23176
24199
|
params[Param.isPNGInScheduledEmailsEnabled] = isPNGInScheduledEmailsEnabled;
|
|
23177
24200
|
}
|
|
@@ -23184,9 +24207,12 @@ class LiveboardEmbed extends V1Embed {
|
|
|
23184
24207
|
if (showSpotterLimitations !== undefined) {
|
|
23185
24208
|
params[Param.ShowSpotterLimitations] = showSpotterLimitations;
|
|
23186
24209
|
}
|
|
24210
|
+
if (!isUndefined$1(updatedSpotterExperience)) {
|
|
24211
|
+
params[Param.UpdatedSpotterExperience] = !!updatedSpotterExperience;
|
|
24212
|
+
}
|
|
23187
24213
|
// Handle spotterChatConfig params
|
|
23188
24214
|
if (spotterChatConfig) {
|
|
23189
|
-
const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, spotterFileUploadEnabled, spotterFileUploadFileTypes, enableStarterPrompts, } = spotterChatConfig;
|
|
24215
|
+
const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, spotterFileUploadEnabled, spotterFileUploadFileTypes, enableStarterPrompts, openSpotterOnLiveboardByDefault, } = spotterChatConfig;
|
|
23190
24216
|
setParamIfDefined(params, Param.HideToolResponseCardBranding, hideToolResponseCardBranding, true);
|
|
23191
24217
|
setParamIfDefined(params, Param.ToolResponseCardBrandingLabel, toolResponseCardBrandingLabel);
|
|
23192
24218
|
if (spotterFileUploadEnabled !== undefined) {
|
|
@@ -23195,6 +24221,9 @@ class LiveboardEmbed extends V1Embed {
|
|
|
23195
24221
|
if (enableStarterPrompts !== undefined) {
|
|
23196
24222
|
params[Param.IsStarterPromptsEnabled] = enableStarterPrompts;
|
|
23197
24223
|
}
|
|
24224
|
+
if (openSpotterOnLiveboardByDefault !== undefined) {
|
|
24225
|
+
params[Param.OpenSpotterOnLiveboardByDefault] = openSpotterOnLiveboardByDefault;
|
|
24226
|
+
}
|
|
23198
24227
|
if (spotterFileUploadFileTypes !== undefined) {
|
|
23199
24228
|
params[Param.SpotterFileUploadFileTypes] = JSON.stringify(spotterFileUploadFileTypes);
|
|
23200
24229
|
}
|
|
@@ -23205,6 +24234,9 @@ class LiveboardEmbed extends V1Embed {
|
|
|
23205
24234
|
if (isCentralizedLiveboardFilterUXEnabled !== undefined) {
|
|
23206
24235
|
params[Param.isCentralizedLiveboardFilterUXEnabled] = isCentralizedLiveboardFilterUXEnabled;
|
|
23207
24236
|
}
|
|
24237
|
+
if (isScopedLiveboardFilteringEnabled !== undefined) {
|
|
24238
|
+
params[Param.isScopedLiveboardFilteringEnabled] = isScopedLiveboardFilteringEnabled;
|
|
24239
|
+
}
|
|
23208
24240
|
if (isThisPeriodInDateFiltersEnabled !== undefined) {
|
|
23209
24241
|
params[Param.IsThisPeriodInDateFiltersEnabled] = isThisPeriodInDateFiltersEnabled;
|
|
23210
24242
|
}
|
|
@@ -23218,16 +24250,27 @@ class LiveboardEmbed extends V1Embed {
|
|
|
23218
24250
|
params[Param.EnableNewChartLibrary] = newChartsLibrary;
|
|
23219
24251
|
}
|
|
23220
24252
|
params[Param.LiveboardHeaderSticky] = isLiveboardHeaderSticky;
|
|
23221
|
-
|
|
24253
|
+
if (!isUndefined$1(isLiveboardCompactHeaderEnabled)) {
|
|
24254
|
+
params[Param.LiveboardHeaderV2] = isLiveboardCompactHeaderEnabled;
|
|
24255
|
+
}
|
|
23222
24256
|
params[Param.ShowLiveboardVerifiedBadge] = showLiveboardVerifiedBadge;
|
|
23223
24257
|
params[Param.ShowLiveboardReverifyBanner] = showLiveboardReverifyBanner;
|
|
23224
|
-
|
|
24258
|
+
if (!isUndefined$1(hideIrrelevantChipsInLiveboardTabs)) {
|
|
24259
|
+
params[Param.HideIrrelevantFiltersInTab] = hideIrrelevantChipsInLiveboardTabs;
|
|
24260
|
+
}
|
|
23225
24261
|
params[Param.ShowMaskedFilterChip] = showMaskedFilterChip;
|
|
23226
|
-
|
|
23227
|
-
|
|
24262
|
+
if (!isUndefined$1(isLiveboardMasterpiecesEnabled)) {
|
|
24263
|
+
params[Param.IsLiveboardMasterpiecesEnabled] = isLiveboardMasterpiecesEnabled;
|
|
24264
|
+
}
|
|
24265
|
+
if (!isUndefined$1(isEnhancedFilterInteractivityEnabled)) {
|
|
24266
|
+
params[Param.IsEnhancedFilterInteractivityEnabled] =
|
|
24267
|
+
isEnhancedFilterInteractivityEnabled;
|
|
24268
|
+
}
|
|
23228
24269
|
params[Param.DataPanelV2Enabled] = dataPanelV2;
|
|
23229
24270
|
params[Param.EnableCustomColumnGroups] = enableCustomColumnGroups;
|
|
23230
|
-
|
|
24271
|
+
if (!isUndefined$1(coverAndFilterOptionInPDF)) {
|
|
24272
|
+
params[Param.CoverAndFilterOptionInPDF] = coverAndFilterOptionInPDF;
|
|
24273
|
+
}
|
|
23231
24274
|
getQueryParamString(params, true);
|
|
23232
24275
|
return params;
|
|
23233
24276
|
}
|
|
@@ -23330,7 +24373,7 @@ class LiveboardEmbed extends V1Embed {
|
|
|
23330
24373
|
});
|
|
23331
24374
|
}
|
|
23332
24375
|
async handleRenderForPrerender() {
|
|
23333
|
-
if (isUndefined(this.viewConfig.liveboardId)) {
|
|
24376
|
+
if (isUndefined$1(this.viewConfig.liveboardId)) {
|
|
23334
24377
|
return this.prerenderGeneric();
|
|
23335
24378
|
}
|
|
23336
24379
|
return super.handleRenderForPrerender();
|
|
@@ -23426,7 +24469,7 @@ class LiveboardEmbed extends V1Embed {
|
|
|
23426
24469
|
if (this.isRendered) {
|
|
23427
24470
|
this.trigger(HostEvent.Navigate, path.substring(1));
|
|
23428
24471
|
}
|
|
23429
|
-
else if (this.
|
|
24472
|
+
else if (this.getPreRenderConfig().preRenderId) {
|
|
23430
24473
|
this.preRender(true);
|
|
23431
24474
|
}
|
|
23432
24475
|
else {
|
|
@@ -24249,6 +25292,15 @@ class BodylessConversation extends SpotterAgentEmbed {
|
|
|
24249
25292
|
}
|
|
24250
25293
|
}
|
|
24251
25294
|
|
|
25295
|
+
/**
|
|
25296
|
+
* The query mode Spotter uses when answering a question.
|
|
25297
|
+
* @version SDK: 1.52.0 | ThoughtSpot Cloud: 26.9.0.cl
|
|
25298
|
+
*/
|
|
25299
|
+
var SpotterQueryMode;
|
|
25300
|
+
(function (SpotterQueryMode) {
|
|
25301
|
+
SpotterQueryMode["FAST_SEARCH"] = "fastSearch";
|
|
25302
|
+
SpotterQueryMode["RESEARCH"] = "research";
|
|
25303
|
+
})(SpotterQueryMode || (SpotterQueryMode = {}));
|
|
24252
25304
|
/**
|
|
24253
25305
|
* Embed ThoughtSpot AI Conversation.
|
|
24254
25306
|
* @version SDK: 1.37.0 | ThoughtSpot: 10.9.0.cl
|
|
@@ -24289,18 +25341,12 @@ class SpotterEmbed extends TsEmbed {
|
|
|
24289
25341
|
*/
|
|
24290
25342
|
async getAppInitData() {
|
|
24291
25343
|
const defaultAppInitData = await super.getAppInitData();
|
|
24292
|
-
|
|
25344
|
+
const sidebarInitData = buildSpotterSidebarAppInitData(defaultAppInitData, this.viewConfig, this.handleError.bind(this));
|
|
25345
|
+
const shareInitData = buildSpotterShareConversationAppInitData(sidebarInitData, this.viewConfig);
|
|
25346
|
+
return buildStarterPromptsAppInitData(shareInitData, this.viewConfig);
|
|
24293
25347
|
}
|
|
24294
25348
|
getEmbedParamsObject() {
|
|
24295
|
-
const {
|
|
24296
|
-
if (!worksheetId) {
|
|
24297
|
-
this.handleError({
|
|
24298
|
-
errorType: ErrorDetailsTypes.VALIDATION_ERROR,
|
|
24299
|
-
message: ERROR_MESSAGE.SPOTTER_EMBED_WORKSHEED_ID_NOT_FOUND,
|
|
24300
|
-
code: EmbedErrorCodes.WORKSHEET_ID_NOT_FOUND,
|
|
24301
|
-
error: ERROR_MESSAGE.SPOTTER_EMBED_WORKSHEED_ID_NOT_FOUND,
|
|
24302
|
-
});
|
|
24303
|
-
}
|
|
25349
|
+
const { searchOptions, disableSourceSelection, hideSourceSelection, dataPanelV2, updatedSpotterExperience, showSpotterLimitations, hideSampleQuestions, runtimeFilters, excludeRuntimeFiltersfromURL, runtimeParameters, excludeRuntimeParametersfromURL, updatedSpotterChatPrompt, showSpotterRadiance, defaultQueryMode, enableStopAnswerGenerationEmbed, spotterChatConfig, spotterAnalystConfig, } = this.viewConfig;
|
|
24304
25350
|
const queryParams = this.getBaseQueryParams();
|
|
24305
25351
|
queryParams[Param.SpotterEnabled] = true;
|
|
24306
25352
|
// Boolean params
|
|
@@ -24310,7 +25356,10 @@ class SpotterEmbed extends TsEmbed {
|
|
|
24310
25356
|
setParamIfDefined(queryParams, Param.ShowSpotterLimitations, showSpotterLimitations, true);
|
|
24311
25357
|
setParamIfDefined(queryParams, Param.HideSampleQuestions, hideSampleQuestions, true);
|
|
24312
25358
|
setParamIfDefined(queryParams, Param.UpdatedSpotterChatPrompt, updatedSpotterChatPrompt, true);
|
|
25359
|
+
setParamIfDefined(queryParams, Param.ShowSpotterRadiance, showSpotterRadiance, true);
|
|
25360
|
+
setParamIfDefined(queryParams, Param.DefaultQueryMode, defaultQueryMode);
|
|
24313
25361
|
setParamIfDefined(queryParams, Param.EnableStopAnswerGenerationEmbed, enableStopAnswerGenerationEmbed, true);
|
|
25362
|
+
setParamIfDefined(queryParams, Param.AnalystId, spotterAnalystConfig === null || spotterAnalystConfig === void 0 ? void 0 : spotterAnalystConfig.analystId);
|
|
24314
25363
|
// Handle spotterChatConfig params
|
|
24315
25364
|
if (spotterChatConfig) {
|
|
24316
25365
|
const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, spotterFileUploadEnabled, spotterFileUploadFileTypes, enableStarterPrompts, } = spotterChatConfig;
|
|
@@ -24322,11 +25371,18 @@ class SpotterEmbed extends TsEmbed {
|
|
|
24322
25371
|
queryParams[Param.SpotterFileUploadFileTypes] = JSON.stringify(spotterFileUploadFileTypes);
|
|
24323
25372
|
}
|
|
24324
25373
|
}
|
|
25374
|
+
setParamIfDefined(queryParams, Param.UpdatedSpotterExperience, updatedSpotterExperience, true);
|
|
24325
25375
|
return queryParams;
|
|
24326
25376
|
}
|
|
24327
25377
|
getIframeSrc() {
|
|
24328
|
-
const { worksheetId, searchOptions, runtimeFilters, excludeRuntimeFiltersfromURL, runtimeParameters, excludeRuntimeParametersfromURL, } = this.viewConfig;
|
|
24329
|
-
|
|
25378
|
+
const { worksheetId, searchOptions, runtimeFilters, excludeRuntimeFiltersfromURL, runtimeParameters, excludeRuntimeParametersfromURL, sharedConversationId, dataSources, } = this.viewConfig;
|
|
25379
|
+
// Deep-link into the read-only shared-conversation reader view when a
|
|
25380
|
+
// shared conversation id is supplied (e.g. a recipient landing from a
|
|
25381
|
+
// host-configured CONVERSATION_URL share link); otherwise the normal
|
|
25382
|
+
// Spotter conversation surface.
|
|
25383
|
+
const path = sharedConversationId
|
|
25384
|
+
? `insights/conv-assist/s/${encodeURIComponent(sharedConversationId)}`
|
|
25385
|
+
: 'insights/conv-assist';
|
|
24330
25386
|
const queryParams = this.getEmbedParamsObject();
|
|
24331
25387
|
let query = '';
|
|
24332
25388
|
const queryParamsString = getQueryParamString(queryParams, true);
|
|
@@ -24342,8 +25398,12 @@ class SpotterEmbed extends TsEmbed {
|
|
|
24342
25398
|
query += `&${parameterQuery}`;
|
|
24343
25399
|
}
|
|
24344
25400
|
const tsPostHashParams = this.getThoughtSpotPostUrlParams({
|
|
24345
|
-
|
|
24346
|
-
|
|
25401
|
+
...(!(Array.isArray(dataSources) && dataSources.length > 0) && worksheetId
|
|
25402
|
+
&& { worksheet: worksheetId }),
|
|
25403
|
+
...((searchOptions === null || searchOptions === void 0 ? void 0 : searchOptions.searchQuery) && { query: searchOptions.searchQuery }),
|
|
25404
|
+
...(Array.isArray(dataSources)
|
|
25405
|
+
&& dataSources.length > 0
|
|
25406
|
+
&& { dataSources: JSON.stringify(dataSources) }),
|
|
24347
25407
|
});
|
|
24348
25408
|
return `${this.getEmbedBasePath(query)}/embed/${path}${tsPostHashParams}`;
|
|
24349
25409
|
}
|
|
@@ -25049,4 +26109,4 @@ class AutoFrameRenderer extends TsEmbed {
|
|
|
25049
26109
|
}
|
|
25050
26110
|
}
|
|
25051
26111
|
|
|
25052
|
-
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, TableContentDensity, TableTheme, UIPassthroughEvent, createLiveboardWithAnswers, executeTML, exportTML, getAnswerFromQuery, getEmbedConfig as getInitConfig, getSessionInfo, init, logout, prefetch, reloadIframe, resetCachedAuthToken, startAutoMCPFrameRenderer, tokenizedFetch, uploadMixpanelEvent };
|
|
26112
|
+
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 };
|