@thoughtspot/visual-embed-sdk 1.35.2 → 1.35.4
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/auth.spec.js +12 -0
- package/cjs/src/auth.spec.js.map +1 -1
- package/cjs/src/authToken.spec.js +1 -1
- package/cjs/src/authToken.spec.js.map +1 -1
- package/cjs/src/embed/app.d.ts +1 -1
- package/cjs/src/embed/app.d.ts.map +1 -1
- package/cjs/src/embed/app.js +4 -3
- package/cjs/src/embed/app.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/bodyless-conversation.spec.js +0 -1
- package/cjs/src/embed/bodyless-conversation.spec.js.map +1 -1
- package/cjs/src/embed/hostEventClient/contracts.d.ts +79 -0
- package/cjs/src/embed/hostEventClient/contracts.d.ts.map +1 -0
- package/cjs/src/embed/hostEventClient/contracts.js +14 -0
- package/cjs/src/embed/hostEventClient/contracts.js.map +1 -0
- package/cjs/src/embed/hostEventClient/host-event-client.d.ts +25 -0
- package/cjs/src/embed/hostEventClient/host-event-client.d.ts.map +1 -0
- package/cjs/src/embed/hostEventClient/host-event-client.js +89 -0
- package/cjs/src/embed/hostEventClient/host-event-client.js.map +1 -0
- package/cjs/src/embed/hostEventClient/host-event-client.spec.d.ts +2 -0
- package/cjs/src/embed/hostEventClient/host-event-client.spec.d.ts.map +1 -0
- package/cjs/src/embed/hostEventClient/host-event-client.spec.js +191 -0
- package/cjs/src/embed/hostEventClient/host-event-client.spec.js.map +1 -0
- package/cjs/src/embed/liveboard.d.ts +10 -8
- package/cjs/src/embed/liveboard.d.ts.map +1 -1
- package/cjs/src/embed/liveboard.js +3 -3
- package/cjs/src/embed/liveboard.js.map +1 -1
- package/cjs/src/embed/liveboard.spec.js +34 -2
- package/cjs/src/embed/liveboard.spec.js.map +1 -1
- package/cjs/src/embed/search.spec.js +11 -0
- package/cjs/src/embed/search.spec.js.map +1 -1
- package/cjs/src/embed/searchEmbed-basic-auth.spec.d.ts +2 -0
- package/cjs/src/embed/searchEmbed-basic-auth.spec.d.ts.map +1 -0
- package/cjs/src/embed/searchEmbed-basic-auth.spec.js +104 -0
- package/cjs/src/embed/searchEmbed-basic-auth.spec.js.map +1 -0
- package/cjs/src/embed/ts-embed.d.ts +21 -4
- package/cjs/src/embed/ts-embed.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.js +33 -9
- package/cjs/src/embed/ts-embed.js.map +1 -1
- package/cjs/src/embed/ts-embed.spec.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.spec.js +38 -1
- package/cjs/src/embed/ts-embed.spec.js.map +1 -1
- package/cjs/src/hostEventsTypeMapping.d.ts +2 -0
- package/cjs/src/hostEventsTypeMapping.d.ts.map +1 -0
- package/cjs/src/hostEventsTypeMapping.js +4 -0
- package/cjs/src/hostEventsTypeMapping.js.map +1 -0
- package/cjs/src/index.d.ts +2 -1
- package/cjs/src/index.d.ts.map +1 -1
- package/cjs/src/index.js +3 -1
- package/cjs/src/index.js.map +1 -1
- package/cjs/src/react/all-types-export.d.ts +1 -1
- package/cjs/src/react/all-types-export.d.ts.map +1 -1
- package/cjs/src/react/all-types-export.js +2 -1
- package/cjs/src/react/all-types-export.js.map +1 -1
- package/cjs/src/types.d.ts +38 -23
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +31 -20
- package/cjs/src/types.js.map +1 -1
- package/cjs/src/utils/embedApi/contracts.d.ts +101 -0
- package/cjs/src/utils/embedApi/contracts.d.ts.map +1 -0
- package/cjs/src/utils/embedApi/contracts.js +17 -0
- package/cjs/src/utils/embedApi/contracts.js.map +1 -0
- package/cjs/src/utils/embedApi/embedApiClient.d.ts +12 -0
- package/cjs/src/utils/embedApi/embedApiClient.d.ts.map +1 -0
- package/cjs/src/utils/embedApi/embedApiClient.js +46 -0
- package/cjs/src/utils/embedApi/embedApiClient.js.map +1 -0
- package/cjs/src/utils/embedApi/processEmbedApi.d.ts +9 -0
- package/cjs/src/utils/embedApi/processEmbedApi.d.ts.map +1 -0
- package/cjs/src/utils/embedApi/processEmbedApi.js +18 -0
- package/cjs/src/utils/embedApi/processEmbedApi.js.map +1 -0
- package/dist/{index-DoPTJLbd.js → index-BBBimG1x.js} +1 -1
- package/dist/index-CENLvayL.js +7370 -0
- package/dist/index-CbltIawo.js +7370 -0
- package/dist/index-CoQfqaHj.js +7370 -0
- package/dist/index-CzwzS0P4.js +7370 -0
- package/dist/index-DFwi_pV_.js +7370 -0
- package/dist/index-DOIjN0N_.js +7370 -0
- package/dist/index-DYBx8SuE.js +7370 -0
- package/dist/index-DaLHJaLd.js +7370 -0
- package/dist/index-nWevLycs.js +7370 -0
- package/dist/src/embed/app.d.ts +1 -1
- package/dist/src/embed/app.d.ts.map +1 -1
- package/dist/src/embed/base.d.ts +1 -1
- package/dist/src/embed/hostEventClient/contracts.d.ts +79 -0
- package/dist/src/embed/hostEventClient/contracts.d.ts.map +1 -0
- package/dist/src/embed/hostEventClient/host-event-client.d.ts +25 -0
- package/dist/src/embed/hostEventClient/host-event-client.d.ts.map +1 -0
- package/dist/src/embed/hostEventClient/host-event-client.spec.d.ts +2 -0
- package/dist/src/embed/hostEventClient/host-event-client.spec.d.ts.map +1 -0
- package/dist/src/embed/liveboard.d.ts +10 -8
- package/dist/src/embed/liveboard.d.ts.map +1 -1
- package/dist/src/embed/searchEmbed-basic-auth.spec.d.ts +2 -0
- package/dist/src/embed/searchEmbed-basic-auth.spec.d.ts.map +1 -0
- package/dist/src/embed/ts-embed.d.ts +21 -4
- package/dist/src/embed/ts-embed.d.ts.map +1 -1
- package/dist/src/embed/ts-embed.spec.d.ts.map +1 -1
- package/dist/src/hostEventsTypeMapping.d.ts +2 -0
- package/dist/src/hostEventsTypeMapping.d.ts.map +1 -0
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/react/all-types-export.d.ts +1 -1
- package/dist/src/react/all-types-export.d.ts.map +1 -1
- package/dist/src/types.d.ts +38 -23
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/embedApi/contracts.d.ts +101 -0
- package/dist/src/utils/embedApi/contracts.d.ts.map +1 -0
- package/dist/src/utils/embedApi/embedApiClient.d.ts +12 -0
- package/dist/src/utils/embedApi/embedApiClient.d.ts.map +1 -0
- package/dist/src/utils/embedApi/processEmbedApi.d.ts +9 -0
- package/dist/src/utils/embedApi/processEmbedApi.d.ts.map +1 -0
- package/dist/tsembed-react.es.js +164 -37
- package/dist/tsembed-react.js +163 -36
- package/dist/tsembed.es.js +166 -39
- package/dist/tsembed.js +164 -37
- package/dist/visual-embed-sdk-react-full.d.ts +170 -38
- package/dist/visual-embed-sdk-react.d.ts +170 -38
- package/dist/visual-embed-sdk.d.ts +170 -38
- package/lib/package.json +1 -1
- package/lib/src/auth.spec.js +12 -0
- package/lib/src/auth.spec.js.map +1 -1
- package/lib/src/authToken.spec.js +1 -1
- package/lib/src/authToken.spec.js.map +1 -1
- package/lib/src/embed/app.d.ts +1 -1
- package/lib/src/embed/app.d.ts.map +1 -1
- package/lib/src/embed/app.js +4 -3
- package/lib/src/embed/app.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/bodyless-conversation.spec.js +0 -1
- package/lib/src/embed/bodyless-conversation.spec.js.map +1 -1
- package/lib/src/embed/hostEventClient/contracts.d.ts +79 -0
- package/lib/src/embed/hostEventClient/contracts.d.ts.map +1 -0
- package/lib/src/embed/hostEventClient/contracts.js +11 -0
- package/lib/src/embed/hostEventClient/contracts.js.map +1 -0
- package/lib/src/embed/hostEventClient/host-event-client.d.ts +25 -0
- package/lib/src/embed/hostEventClient/host-event-client.d.ts.map +1 -0
- package/lib/src/embed/hostEventClient/host-event-client.js +85 -0
- package/lib/src/embed/hostEventClient/host-event-client.js.map +1 -0
- package/lib/src/embed/hostEventClient/host-event-client.spec.d.ts +2 -0
- package/lib/src/embed/hostEventClient/host-event-client.spec.d.ts.map +1 -0
- package/lib/src/embed/hostEventClient/host-event-client.spec.js +188 -0
- package/lib/src/embed/hostEventClient/host-event-client.spec.js.map +1 -0
- package/lib/src/embed/liveboard.d.ts +10 -8
- package/lib/src/embed/liveboard.d.ts.map +1 -1
- package/lib/src/embed/liveboard.js +3 -3
- package/lib/src/embed/liveboard.js.map +1 -1
- package/lib/src/embed/liveboard.spec.js +34 -2
- package/lib/src/embed/liveboard.spec.js.map +1 -1
- package/lib/src/embed/search.spec.js +11 -0
- package/lib/src/embed/search.spec.js.map +1 -1
- package/lib/src/embed/searchEmbed-basic-auth.spec.d.ts +2 -0
- package/lib/src/embed/searchEmbed-basic-auth.spec.d.ts.map +1 -0
- package/lib/src/embed/searchEmbed-basic-auth.spec.js +101 -0
- package/lib/src/embed/searchEmbed-basic-auth.spec.js.map +1 -0
- package/lib/src/embed/ts-embed.d.ts +21 -4
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +33 -9
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +40 -3
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/hostEventsTypeMapping.d.ts +2 -0
- package/lib/src/hostEventsTypeMapping.d.ts.map +1 -0
- package/lib/src/hostEventsTypeMapping.js +2 -0
- package/lib/src/hostEventsTypeMapping.js.map +1 -0
- package/lib/src/index.d.ts +2 -1
- package/lib/src/index.d.ts.map +1 -1
- package/lib/src/index.js +2 -1
- package/lib/src/index.js.map +1 -1
- package/lib/src/react/all-types-export.d.ts +1 -1
- package/lib/src/react/all-types-export.d.ts.map +1 -1
- package/lib/src/react/all-types-export.js +1 -1
- package/lib/src/react/all-types-export.js.map +1 -1
- package/lib/src/types.d.ts +38 -23
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +31 -20
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils/embedApi/contracts.d.ts +101 -0
- package/lib/src/utils/embedApi/contracts.d.ts.map +1 -0
- package/lib/src/utils/embedApi/contracts.js +14 -0
- package/lib/src/utils/embedApi/contracts.js.map +1 -0
- package/lib/src/utils/embedApi/embedApiClient.d.ts +12 -0
- package/lib/src/utils/embedApi/embedApiClient.d.ts.map +1 -0
- package/lib/src/utils/embedApi/embedApiClient.js +42 -0
- package/lib/src/utils/embedApi/embedApiClient.js.map +1 -0
- package/lib/src/utils/embedApi/processEmbedApi.d.ts +9 -0
- package/lib/src/utils/embedApi/processEmbedApi.d.ts.map +1 -0
- package/lib/src/utils/embedApi/processEmbedApi.js +14 -0
- package/lib/src/utils/embedApi/processEmbedApi.js.map +1 -0
- package/lib/src/visual-embed-sdk.d.ts +181 -38
- package/package.json +1 -1
- package/src/auth.spec.ts +13 -0
- package/src/authToken.spec.ts +1 -1
- package/src/embed/app.ts +7 -4
- package/src/embed/base.ts +1 -1
- package/src/embed/bodyless-conversation.spec.ts +0 -1
- package/src/embed/hostEventClient/contracts.ts +105 -0
- package/src/embed/hostEventClient/host-event-client.spec.ts +254 -0
- package/src/embed/hostEventClient/host-event-client.ts +139 -0
- package/src/embed/liveboard.spec.ts +36 -2
- package/src/embed/liveboard.ts +13 -8
- package/src/embed/search.spec.ts +15 -0
- package/src/embed/ts-embed.spec.ts +53 -1
- package/src/embed/ts-embed.ts +60 -16
- package/src/index.ts +2 -0
- package/src/react/all-types-export.ts +1 -0
- package/src/types.ts +37 -22
package/dist/tsembed.es.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* @thoughtspot/visual-embed-sdk version 1.35.
|
|
1
|
+
/* @thoughtspot/visual-embed-sdk version 1.35.4 */
|
|
2
2
|
function _mergeNamespaces(n, m) {
|
|
3
3
|
m.forEach(function (e) {
|
|
4
4
|
e && typeof e !== 'string' && !Array.isArray(e) && Object.keys(e).forEach(function (k) {
|
|
@@ -1063,8 +1063,8 @@ var EmbedEvent;
|
|
|
1063
1063
|
*
|
|
1064
1064
|
* **Note**: This event is deprecated in v1.21.0.
|
|
1065
1065
|
* To fire an event when a download action is initiated on a chart or table,
|
|
1066
|
-
* use `EmbedEvent.DownloadAsPng`, `EmbedEvent.DownloadAsPDF`,
|
|
1067
|
-
* or `EmbedEvent.DownloadAsXLSX`
|
|
1066
|
+
* use `EmbedEvent.DownloadAsPng`, `EmbedEvent.DownloadAsPDF`,
|
|
1067
|
+
* `EmbedEvent.DownloadAsCSV`, or `EmbedEvent.DownloadAsXLSX`
|
|
1068
1068
|
* @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl, 8.4.1.sw
|
|
1069
1069
|
* @example
|
|
1070
1070
|
*```js
|
|
@@ -1714,7 +1714,7 @@ var HostEvent;
|
|
|
1714
1714
|
* @param - autoDrillDown - Optional. If true, the drill down will be
|
|
1715
1715
|
* done automatically on the most popular column.
|
|
1716
1716
|
* @param - vizId [TS >= 9.8.0] - Optional. The GUID of the visualization to drill
|
|
1717
|
-
* in case of a
|
|
1717
|
+
* in case of a Liveboard.
|
|
1718
1718
|
* @example
|
|
1719
1719
|
* ```js
|
|
1720
1720
|
* searchEmbed.on(EmbedEvent.VizPointDoubleClick, (payload) => {
|
|
@@ -1801,26 +1801,26 @@ var HostEvent;
|
|
|
1801
1801
|
*/
|
|
1802
1802
|
HostEvent["SetActiveTab"] = "SetActiveTab";
|
|
1803
1803
|
/**
|
|
1804
|
-
*
|
|
1805
|
-
*
|
|
1806
|
-
* filters.
|
|
1804
|
+
* Updates the runtime filters applied on a Liveboard. The filter
|
|
1805
|
+
* attributes passed with this event are appended to the existing runtime
|
|
1806
|
+
* filters applied on a Liveboard.
|
|
1807
|
+
*
|
|
1807
1808
|
* Pass an array of runtime filters with the following attributes:
|
|
1808
1809
|
*
|
|
1809
|
-
* `columnName`
|
|
1810
|
-
* _String_. The name of the column to filter on.
|
|
1810
|
+
* `columnName` - _String_. The name of the column to filter on.
|
|
1811
1811
|
*
|
|
1812
|
-
* `operator`
|
|
1813
|
-
* Runtime filter operator to apply. For information,
|
|
1812
|
+
* `operator` - Runtime filter operator to apply. For more information,
|
|
1814
1813
|
* see link:https://developers.thoughtspot.com/docs/?pageid=runtime-filters#rtOperator[Developer Documentation].
|
|
1815
1814
|
*
|
|
1816
|
-
* `values`
|
|
1817
|
-
*
|
|
1818
|
-
*
|
|
1815
|
+
* `values` - List of operands. Some operators such as EQ and LE allow a
|
|
1816
|
+
* single value, whereas BW and IN accept multiple values.
|
|
1817
|
+
*
|
|
1818
|
+
* **Note**: `HostEvent.UpdateRuntimeFilters` is supported in `LiveboardEmbed`
|
|
1819
|
+
* and `AppEmbed` only. In full application embedding, this event updates
|
|
1820
|
+
* the runtime filters applied on the Liveboard and saved Answer objects.
|
|
1819
1821
|
*
|
|
1820
|
-
* **Note**: `HostEvent.UpdateRuntimeFilters` is not supported in
|
|
1821
|
-
* Search embedding (SearchEmbed) and Natural Language Search
|
|
1822
|
-
* embedding (SageEmbed).
|
|
1823
1822
|
* @param - {@link RuntimeFilter}[] an array of {@link RuntimeFilter} Types.
|
|
1823
|
+
*
|
|
1824
1824
|
* @example
|
|
1825
1825
|
* ```js
|
|
1826
1826
|
* liveboardEmbed.trigger(HostEvent.UpdateRuntimeFilters, [
|
|
@@ -2519,7 +2519,7 @@ var HostEvent;
|
|
|
2519
2519
|
*/
|
|
2520
2520
|
HostEvent["ResetLiveboardPersonalisedView"] = "ResetLiveboardPersonalisedView";
|
|
2521
2521
|
/**
|
|
2522
|
-
* Triggers Update
|
|
2522
|
+
* Triggers an event to Update Parameter values for Answers and Liveboard
|
|
2523
2523
|
* @example
|
|
2524
2524
|
* ```js
|
|
2525
2525
|
* liveboardEmbed.trigger(HostEvent.UpdateParameters, [{
|
|
@@ -2541,13 +2541,23 @@ var HostEvent;
|
|
|
2541
2541
|
*/
|
|
2542
2542
|
HostEvent["GetParameters"] = "GetParameters";
|
|
2543
2543
|
/**
|
|
2544
|
-
* Triggers update
|
|
2544
|
+
* Triggers an event to update a persoanlised view of a Liveboard
|
|
2545
2545
|
* ```js
|
|
2546
2546
|
* liveboardEmbed.trigger(HostEvent.UpdatePersonalisedView, {viewId: '1234'})
|
|
2547
2547
|
* ```
|
|
2548
2548
|
* @version SDK: 1.36.0 | Thoughtspot: 10.6.0.cl
|
|
2549
2549
|
*/
|
|
2550
2550
|
HostEvent["UpdatePersonalisedView"] = "UpdatePersonalisedView";
|
|
2551
|
+
/**
|
|
2552
|
+
* Triggers the action to get the current view of the liveboard
|
|
2553
|
+
* @version SDK: 1.36.0 | Thoughtspot: 10.6.0.cl
|
|
2554
|
+
*/
|
|
2555
|
+
HostEvent["SaveAnswer"] = "saveAnswer";
|
|
2556
|
+
/**
|
|
2557
|
+
* EmbedApi
|
|
2558
|
+
* @hidden
|
|
2559
|
+
*/
|
|
2560
|
+
HostEvent["UIPassthrough"] = "UiPassthrough";
|
|
2551
2561
|
})(HostEvent || (HostEvent = {}));
|
|
2552
2562
|
/**
|
|
2553
2563
|
* The different visual modes that the data sources panel within
|
|
@@ -3527,7 +3537,7 @@ var Action;
|
|
|
3527
3537
|
*/
|
|
3528
3538
|
Action["ModifySageAnswer"] = "modifySageAnswer";
|
|
3529
3539
|
/**
|
|
3530
|
-
* The **Move to Tab** menu action on visualizations in
|
|
3540
|
+
* The **Move to Tab** menu action on visualizations in Liveboard edit mode.
|
|
3531
3541
|
* Allows moving a visualization to a different tab.
|
|
3532
3542
|
* @example
|
|
3533
3543
|
* ```js
|
|
@@ -3580,7 +3590,8 @@ var Action;
|
|
|
3580
3590
|
*/
|
|
3581
3591
|
Action["TML"] = "tml";
|
|
3582
3592
|
/**
|
|
3583
|
-
* Action
|
|
3593
|
+
* Action ID for the create Liveboard option on the Liveboard list page
|
|
3594
|
+
* and Pin modal
|
|
3584
3595
|
* @example
|
|
3585
3596
|
* ```js
|
|
3586
3597
|
* hiddenAction: [Action.CreateLiveboard]
|
|
@@ -7049,7 +7060,7 @@ class AnswerService {
|
|
|
7049
7060
|
async getTML() {
|
|
7050
7061
|
const { object } = await this.executeQuery(getAnswerTML, {});
|
|
7051
7062
|
const edoc = object[0].edoc;
|
|
7052
|
-
const YAML = await import('./index-
|
|
7063
|
+
const YAML = await import('./index-BBBimG1x.js');
|
|
7053
7064
|
const parsedDoc = YAML.parse(edoc);
|
|
7054
7065
|
return {
|
|
7055
7066
|
answer: {
|
|
@@ -14429,7 +14440,7 @@ function backwardCompat(embedConfig) {
|
|
|
14429
14440
|
/**
|
|
14430
14441
|
* Initializes the Visual Embed SDK globally and perform
|
|
14431
14442
|
* authentication if applicable. This function needs to be called before any ThoughtSpot
|
|
14432
|
-
* component like
|
|
14443
|
+
* component like Liveboard etc can be embedded. But need not wait for AuthEvent.SUCCESS
|
|
14433
14444
|
* to actually embed. That is handled internally.
|
|
14434
14445
|
* @param embedConfig The configuration object containing ThoughtSpot host,
|
|
14435
14446
|
* authentication mechanism and so on.
|
|
@@ -14735,6 +14746,8 @@ function processEventData(type, e, thoughtSpotHost, containerEl) {
|
|
|
14735
14746
|
return e;
|
|
14736
14747
|
}
|
|
14737
14748
|
|
|
14749
|
+
var name="@thoughtspot/visual-embed-sdk";var version$1="1.35.4";var description="ThoughtSpot Embed SDK";var module="lib/src/index.js";var main="dist/tsembed.js";var types="lib/src/index.d.ts";var files=["dist/**","lib/**","src/**","cjs/**"];var exports={".":{"import":"./lib/src/index.js",require:"./cjs/src/index.js",types:"./lib/src/index.d.ts"},"./react":{"import":"./lib/src/react/all-types-export.js",require:"./cjs/src/react/all-types-export.js",types:"./lib/src/react/all-types-export.d.ts"},"./lib/src/react":{"import":"./lib/src/react/all-types-export.js",require:"./cjs/src/react/all-types-export.js",types:"./lib/src/react/all-types-export.d.ts"}};var typesVersions={"*":{react:["./lib/src/react/all-types-export.d.ts"]}};var scripts={lint:"eslint 'src/**'","lint:fix":"eslint 'src/**/*.*' --fix",tsc:"tsc -p . --incremental false; tsc -p . --incremental false --module commonjs --outDir cjs","build-and-publish":"npm run build:gatsby && npm run publish","bundle-dts-file":"dts-bundle --name @thoughtspot/visual-embed-sdk --out visual-embed-sdk.d.ts --main lib/src/index.d.ts","bundle-dts":"dts-bundle --name ../../dist/visual-embed-sdk --main lib/src/index.d.ts --outputAsModuleFolder=true","bundle-dts-react":"dts-bundle --name ../../../dist/visual-embed-sdk-react --main lib/src/react/index.d.ts --outputAsModuleFolder=true","bundle-dts-react-full":"dts-bundle --name ../../../dist/visual-embed-sdk-react-full --main lib/src/react/all-types-export.d.ts --outputAsModuleFolder=true",build:"rollup -c",watch:"rollup -cw",docgen:"typedoc --tsconfig tsconfig.json --theme typedoc-theme --json static/typedoc/typedoc.json --disableOutputCheck","test-sdk":"jest -c jest.config.sdk.js --runInBand",test:"npm run test-sdk",posttest:"cat ./coverage/sdk/lcov.info | coveralls","is-publish-allowed":"node scripts/is-publish-allowed.js",prepublishOnly:"npm run is-publish-allowed && npm run test && npm run tsc && npm run bundle-dts-file && npm run bundle-dts && npm run bundle-dts-react && npm run bundle-dts-react-full && npm run build","check-size":"npm run build && size-limit","publish-dev":"npm publish --tag dev","publish-prod":"npm publish --tag latest",dev:"vite -c vite.local.config.ts"};var peerDependencies={react:"> 16.8.0","react-dom":"> 16.8.0"};var dependencies={algoliasearch:"^4.10.5",classnames:"^2.3.1",dompurify:"^2.3.4",eventemitter3:"^4.0.7","gatsby-plugin-vercel":"^1.0.3","html-react-parser":"^1.4.12",lodash:"^4.17.21","mixpanel-browser":"2.47.0","ts-deepmerge":"^6.0.2",tslib:"^2.5.3","use-deep-compare-effect":"^1.8.1",yaml:"^2.5.1"};var devDependencies={"@mdx-js/mdx":"^1.6.22","@mdx-js/react":"^1.6.22","@react-icons/all-files":"^4.1.0","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-node-resolve":"^11.2.1","@rollup/plugin-replace":"^5.0.2","@size-limit/preset-big-lib":"^8.2.6","@testing-library/dom":"^7.31.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^11.2.7","@testing-library/user-event":"^13.1.8","@types/jest":"^22.2.3","@types/lodash":"^4.17.0","@types/mixpanel-browser":"^2.35.6","@types/react-test-renderer":"^17.0.1","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.0",asciidoctor:"^2.2.1","babel-jest":"^26.6.3","babel-preset-gatsby":"^1.10.0","command-line-args":"^5.1.1",coveralls:"^3.1.0",crypto:"^1.0.1","current-git-branch":"^1.1.0","dts-bundle":"^0.7.3",eslint:"^7.12.1","eslint-config-airbnb-base":"^14.2.0","eslint-config-prettier":"^6.15.0","eslint-import-resolver-typescript":"^2.3.0","eslint-plugin-import":"^2.22.1","eslint-plugin-prettier":"^3.1.4","eslint-plugin-react-hooks":"^4.2.0","eslint-plugin-comment-length":"1.7.3","eslint-plugin-jsdoc":"^46.9.0","fs-extra":"^10.0.0","gh-pages":"^3.1.0","highlight.js":"^10.6.0","html-to-text":"^8.0.0","identity-obj-proxy":"^3.0.0","istanbul-merge":"^1.1.1",jest:"^26.6.3","jest-fetch-mock":"^3.0.3",jsdom:"^17.0.0","node-sass":"^8.0.0",prettier:"2.1.2",react:"^16.14.0","react-dom":"^16.14.0","react-resizable":"^1.11.0","react-resize-detector":"^6.6.0","react-test-renderer":"^17.0.2","react-use-flexsearch":"^0.1.1",rollup:"4.24.0","rollup-plugin-typescript2":"0.27.3","ts-jest":"^26.5.5","ts-loader":"8.0.4",typedoc:"0.21.6","typedoc-plugin-toc-group":"thoughtspot/typedoc-plugin-toc-group",typescript:"^4.9.4","url-search-params-polyfill":"^8.1.0",util:"^0.12.4",vite:"^5.3.4"};var author="ThoughtSpot";var email="support@thoughtspot.com";var license="ThoughtSpot Development Tools End User License Agreement";var directories={lib:"lib"};var repository={type:"git",url:"git+https://github.com/thoughtspot/visual-embed-sdk.git"};var publishConfig={registry:"https://registry.npmjs.org"};var keywords=["thoughtspot","everywhere","embedded","embed","sdk","analytics"];var bugs={url:"https://github.com/thoughtspot/visual-embed-sdk/issues"};var homepage="https://github.com/thoughtspot/visual-embed-sdk#readme";var globals={window:{}};var pkgInfo = {name:name,version:version$1,description:description,module:module,main:main,types:types,files:files,exports:exports,typesVersions:typesVersions,"size-limit":[{path:"dist/tsembed.es.js",limit:"31 kB"}],scripts:scripts,peerDependencies:peerDependencies,dependencies:dependencies,devDependencies:devDependencies,author:author,email:email,license:license,directories:directories,repository:repository,publishConfig:publishConfig,keywords:keywords,bugs:bugs,homepage:homepage,globals:globals};
|
|
14750
|
+
|
|
14738
14751
|
/**
|
|
14739
14752
|
* Reloads the ThoughtSpot iframe.
|
|
14740
14753
|
* @param iFrame
|
|
@@ -14793,7 +14806,96 @@ function processTrigger(iFrame, messageType, thoughtSpotHost, data) {
|
|
|
14793
14806
|
});
|
|
14794
14807
|
}
|
|
14795
14808
|
|
|
14796
|
-
var
|
|
14809
|
+
var UIPassthroughEvent;
|
|
14810
|
+
(function (UIPassthroughEvent) {
|
|
14811
|
+
UIPassthroughEvent["PinAnswerToLiveboard"] = "addVizToPinboard";
|
|
14812
|
+
UIPassthroughEvent["SaveAnswer"] = "saveAnswer";
|
|
14813
|
+
UIPassthroughEvent["GetDiscoverabilityStatus"] = "getDiscoverabilityStatus";
|
|
14814
|
+
UIPassthroughEvent["GetAvailableUIPassthroughs"] = "getAvailableUIPassthroughs";
|
|
14815
|
+
UIPassthroughEvent["GetAnswerConfig"] = "getAnswerPageConfig";
|
|
14816
|
+
UIPassthroughEvent["GetLiveboardConfig"] = "getPinboardPageConfig";
|
|
14817
|
+
})(UIPassthroughEvent || (UIPassthroughEvent = {}));
|
|
14818
|
+
|
|
14819
|
+
class HostEventClient {
|
|
14820
|
+
constructor(iFrame) {
|
|
14821
|
+
this.iFrame = iFrame;
|
|
14822
|
+
}
|
|
14823
|
+
/**
|
|
14824
|
+
* A wrapper over process trigger to
|
|
14825
|
+
* @param {HostEvent} message Host event to send
|
|
14826
|
+
* @param {any} data Data to send with the host event
|
|
14827
|
+
* @returns {Promise<any>} - the response from the process trigger
|
|
14828
|
+
*/
|
|
14829
|
+
async processTrigger(message, data) {
|
|
14830
|
+
if (!this.iFrame) {
|
|
14831
|
+
throw new Error('Iframe element is not set');
|
|
14832
|
+
}
|
|
14833
|
+
const thoughtspotHost = getEmbedConfig().thoughtSpotHost;
|
|
14834
|
+
return processTrigger(this.iFrame, message, thoughtspotHost, data);
|
|
14835
|
+
}
|
|
14836
|
+
async handleHostEventWithParam(apiName, parameters) {
|
|
14837
|
+
var _a, _b, _c, _d;
|
|
14838
|
+
const response = (_b = (_a = (await this.triggerUIPassthroughApi(apiName, parameters))) === null || _a === void 0 ? void 0 : _a.filter) === null || _b === void 0 ? void 0 : _b.call(_a, (r) => r.error || r.value)[0];
|
|
14839
|
+
if (!response) {
|
|
14840
|
+
const error = `No answer found${parameters.vizId ? ` for vizId: ${parameters.vizId}` : ''}.`;
|
|
14841
|
+
// eslint-disable-next-line no-throw-literal
|
|
14842
|
+
throw { error };
|
|
14843
|
+
}
|
|
14844
|
+
const errors = response.error
|
|
14845
|
+
|| ((_c = response.value) === null || _c === void 0 ? void 0 : _c.errors)
|
|
14846
|
+
|| ((_d = response.value) === null || _d === void 0 ? void 0 : _d.error);
|
|
14847
|
+
if (errors) {
|
|
14848
|
+
// eslint-disable-next-line no-throw-literal
|
|
14849
|
+
throw { error: response.error };
|
|
14850
|
+
}
|
|
14851
|
+
return { ...response.value };
|
|
14852
|
+
}
|
|
14853
|
+
async hostEventFallback(hostEvent, data) {
|
|
14854
|
+
return this.processTrigger(hostEvent, data);
|
|
14855
|
+
}
|
|
14856
|
+
/**
|
|
14857
|
+
* Setter for the iframe element used for host events
|
|
14858
|
+
* @param {HTMLIFrameElement} iFrame - the iframe element to set
|
|
14859
|
+
*/
|
|
14860
|
+
setIframeElement(iFrame) {
|
|
14861
|
+
this.iFrame = iFrame;
|
|
14862
|
+
}
|
|
14863
|
+
async triggerUIPassthroughApi(apiName, parameters) {
|
|
14864
|
+
const res = await this.processTrigger(HostEvent.UIPassthrough, {
|
|
14865
|
+
type: apiName,
|
|
14866
|
+
parameters,
|
|
14867
|
+
});
|
|
14868
|
+
return res;
|
|
14869
|
+
}
|
|
14870
|
+
async handlePinEvent(payload) {
|
|
14871
|
+
if (!payload || !('newVizName' in payload)) {
|
|
14872
|
+
return this.hostEventFallback(HostEvent.Pin, payload);
|
|
14873
|
+
}
|
|
14874
|
+
return this.handleHostEventWithParam(UIPassthroughEvent.PinAnswerToLiveboard, payload);
|
|
14875
|
+
}
|
|
14876
|
+
async handleSaveAnswerEvent(payload) {
|
|
14877
|
+
var _a, _b, _c, _d;
|
|
14878
|
+
if (!payload || !('name' in payload) || !('description' in payload)) {
|
|
14879
|
+
// Save is the fallback for SaveAnswer
|
|
14880
|
+
return this.hostEventFallback(HostEvent.Save, payload);
|
|
14881
|
+
}
|
|
14882
|
+
const data = await this.handleHostEventWithParam(UIPassthroughEvent.SaveAnswer, payload);
|
|
14883
|
+
return {
|
|
14884
|
+
...data,
|
|
14885
|
+
answerId: (_d = (_c = (_b = (_a = data === null || data === void 0 ? void 0 : data.saveResponse) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.Answer__save) === null || _c === void 0 ? void 0 : _c.answer) === null || _d === void 0 ? void 0 : _d.id,
|
|
14886
|
+
};
|
|
14887
|
+
}
|
|
14888
|
+
async triggerHostEvent(hostEvent, payload) {
|
|
14889
|
+
switch (hostEvent) {
|
|
14890
|
+
case HostEvent.Pin:
|
|
14891
|
+
return this.handlePinEvent(payload);
|
|
14892
|
+
case HostEvent.SaveAnswer:
|
|
14893
|
+
return this.handleSaveAnswerEvent(payload);
|
|
14894
|
+
default:
|
|
14895
|
+
return this.hostEventFallback(hostEvent, payload);
|
|
14896
|
+
}
|
|
14897
|
+
}
|
|
14898
|
+
}
|
|
14797
14899
|
|
|
14798
14900
|
/**
|
|
14799
14901
|
* Copyright (c) 2022
|
|
@@ -14821,6 +14923,14 @@ const V1EventMap = {};
|
|
|
14821
14923
|
* React+GraphQL
|
|
14822
14924
|
*/
|
|
14823
14925
|
class TsEmbed {
|
|
14926
|
+
/**
|
|
14927
|
+
* Setter for the iframe element
|
|
14928
|
+
* @param {HTMLIFrameElement} iFrame HTMLIFrameElement
|
|
14929
|
+
*/
|
|
14930
|
+
setIframeElement(iFrame) {
|
|
14931
|
+
this.iFrame = iFrame;
|
|
14932
|
+
this.hostEventClient.setIframeElement(iFrame);
|
|
14933
|
+
}
|
|
14824
14934
|
constructor(domSelector, viewConfig) {
|
|
14825
14935
|
/**
|
|
14826
14936
|
* The key to store the embed instance in the DOM node
|
|
@@ -14949,6 +15059,7 @@ class TsEmbed {
|
|
|
14949
15059
|
uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_EMBED_CREATE, {
|
|
14950
15060
|
...viewConfig,
|
|
14951
15061
|
});
|
|
15062
|
+
this.hostEventClient = new HostEventClient(this.iFrame);
|
|
14952
15063
|
}
|
|
14953
15064
|
/**
|
|
14954
15065
|
* Throws error encountered during initialization.
|
|
@@ -15223,6 +15334,9 @@ class TsEmbed {
|
|
|
15223
15334
|
setAttributes(iFrame, restParams);
|
|
15224
15335
|
iFrame.style.width = `${width}`;
|
|
15225
15336
|
iFrame.style.height = `${height}`;
|
|
15337
|
+
// Set minimum height to the frame so that,
|
|
15338
|
+
// scaling down on the fullheight doesn't make it too small.
|
|
15339
|
+
iFrame.style.minHeight = `${height}`;
|
|
15226
15340
|
iFrame.style.border = '0';
|
|
15227
15341
|
iFrame.name = 'ThoughtSpot Embedded Analytics';
|
|
15228
15342
|
return iFrame;
|
|
@@ -15266,7 +15380,7 @@ class TsEmbed {
|
|
|
15266
15380
|
this.handleInsertionIntoDOM(this.embedConfig.loginFailedMessage);
|
|
15267
15381
|
return;
|
|
15268
15382
|
}
|
|
15269
|
-
this.
|
|
15383
|
+
this.setIframeElement(this.iFrame || this.createIframeEl(url));
|
|
15270
15384
|
this.iFrame.addEventListener('load', () => {
|
|
15271
15385
|
nextInQueue();
|
|
15272
15386
|
const loadTimestamp = Date.now();
|
|
@@ -15325,7 +15439,7 @@ class TsEmbed {
|
|
|
15325
15439
|
if (this.preRenderWrapper && this.preRenderChild) {
|
|
15326
15440
|
this.isPreRendered = true;
|
|
15327
15441
|
if (this.preRenderChild instanceof HTMLIFrameElement) {
|
|
15328
|
-
this.
|
|
15442
|
+
this.setIframeElement(this.preRenderChild);
|
|
15329
15443
|
}
|
|
15330
15444
|
this.insertedDomEl = this.preRenderWrapper;
|
|
15331
15445
|
this.isRendered = true;
|
|
@@ -15363,7 +15477,7 @@ class TsEmbed {
|
|
|
15363
15477
|
this.preRenderChild = preRenderChild;
|
|
15364
15478
|
this.preRenderWrapper = preRenderWrapper;
|
|
15365
15479
|
if (preRenderChild instanceof HTMLIFrameElement) {
|
|
15366
|
-
this.
|
|
15480
|
+
this.setIframeElement(preRenderChild);
|
|
15367
15481
|
}
|
|
15368
15482
|
this.insertedDomEl = preRenderWrapper;
|
|
15369
15483
|
if (this.showPreRenderByDefault) {
|
|
@@ -15562,10 +15676,11 @@ class TsEmbed {
|
|
|
15562
15676
|
}
|
|
15563
15677
|
/**
|
|
15564
15678
|
* Triggers an event to the embedded app
|
|
15565
|
-
* @param messageType The event type
|
|
15566
|
-
* @param data The payload to send with the message
|
|
15679
|
+
* @param {HostEvent} messageType The event type
|
|
15680
|
+
* @param {any} data The payload to send with the message
|
|
15681
|
+
* @returns A promise that resolves with the response from the embedded app
|
|
15567
15682
|
*/
|
|
15568
|
-
trigger(messageType, data
|
|
15683
|
+
async trigger(messageType, data) {
|
|
15569
15684
|
uploadMixpanelEvent(`${MIXPANEL_EVENT.VISUAL_SDK_TRIGGER}-${messageType}`);
|
|
15570
15685
|
if (!this.isRendered) {
|
|
15571
15686
|
this.handleError('Please call render before triggering events');
|
|
@@ -15575,7 +15690,18 @@ class TsEmbed {
|
|
|
15575
15690
|
this.handleError('Host event type is undefined');
|
|
15576
15691
|
return null;
|
|
15577
15692
|
}
|
|
15578
|
-
return
|
|
15693
|
+
return this.hostEventClient.triggerHostEvent(messageType, data);
|
|
15694
|
+
}
|
|
15695
|
+
/**
|
|
15696
|
+
* Triggers an event to the embedded app, skipping the UI flow.
|
|
15697
|
+
* @param {UIPassthroughEvent} apiName - The name of the API to be triggered.
|
|
15698
|
+
* @param {UIPassthroughRequest} parameters - The parameters to be passed to the API.
|
|
15699
|
+
* @returns {Promise<UIPassthroughRequest>} - A promise that resolves with the response
|
|
15700
|
+
* from the embedded app.
|
|
15701
|
+
*/
|
|
15702
|
+
async triggerUIPassThrough(apiName, parameters) {
|
|
15703
|
+
const response = this.hostEventClient.triggerUIPassthroughApi(apiName, parameters);
|
|
15704
|
+
return response;
|
|
15579
15705
|
}
|
|
15580
15706
|
/**
|
|
15581
15707
|
* Marks the ThoughtSpot object to have been rendered
|
|
@@ -15764,7 +15890,7 @@ class TsEmbed {
|
|
|
15764
15890
|
/**
|
|
15765
15891
|
* Returns the answerService which can be used to make arbitrary graphql calls on top
|
|
15766
15892
|
* session.
|
|
15767
|
-
* @param vizId [Optional] to get for a specific viz in case of a
|
|
15893
|
+
* @param vizId [Optional] to get for a specific viz in case of a Liveboard.
|
|
15768
15894
|
* @version SDK: 1.25.0 / ThoughtSpot 9.10.0
|
|
15769
15895
|
*/
|
|
15770
15896
|
async getAnswerService(vizId) {
|
|
@@ -15933,10 +16059,11 @@ class AppEmbed extends V1Embed {
|
|
|
15933
16059
|
responder({ type: EmbedEvent.EmbedIframeCenter, data: obj });
|
|
15934
16060
|
};
|
|
15935
16061
|
this.setIframeHeightForNonEmbedLiveboard = (data) => {
|
|
15936
|
-
|
|
15937
|
-
|
|
15938
|
-
|
|
16062
|
+
if (data.data.currentPath.startsWith('/embed/viz/')
|
|
16063
|
+
|| data.data.currentPath.startsWith('/embed/insights/viz/')) {
|
|
16064
|
+
return;
|
|
15939
16065
|
}
|
|
16066
|
+
this.setIFrameHeight(this.defaultHeight);
|
|
15940
16067
|
};
|
|
15941
16068
|
if (this.viewConfig.fullHeight === true) {
|
|
15942
16069
|
this.on(EmbedEvent.RouteChange, this.setIframeHeightForNonEmbedLiveboard);
|
|
@@ -16389,7 +16516,7 @@ class LiveboardEmbed extends V1Embed {
|
|
|
16389
16516
|
* @param messageType The event type
|
|
16390
16517
|
* @param data The payload to send with the message
|
|
16391
16518
|
*/
|
|
16392
|
-
trigger(messageType, data
|
|
16519
|
+
trigger(messageType, data) {
|
|
16393
16520
|
const dataWithVizId = data;
|
|
16394
16521
|
if (messageType === HostEvent.SetActiveTab) {
|
|
16395
16522
|
this.setActiveTab(data);
|
|
@@ -16428,8 +16555,8 @@ class LiveboardEmbed extends V1Embed {
|
|
|
16428
16555
|
}
|
|
16429
16556
|
}
|
|
16430
16557
|
/**
|
|
16431
|
-
* Returns the full url of the
|
|
16432
|
-
* this
|
|
16558
|
+
* Returns the full url of the Liveboard/visualization which can be used to open
|
|
16559
|
+
* this Liveboard inside the full Thoughtspot application in a new tab.
|
|
16433
16560
|
* @returns url string
|
|
16434
16561
|
*/
|
|
16435
16562
|
getLiveboardUrl() {
|
|
@@ -17783,4 +17910,4 @@ const createLiveboardWithAnswers = async (answers, name) => {
|
|
|
17783
17910
|
return result;
|
|
17784
17911
|
};
|
|
17785
17912
|
|
|
17786
|
-
export { Action, AnswerService, AppEmbed, AuthEvent, AuthFailureType, AuthStatus, AuthType, BodylessConversation, ContextMenuTriggerOptions, ConversationEmbed, DataSourceVisualMode, EmbedEvent, HomeLeftNavItem, HomePageSearchBarMode, HomepageModule, HostEvent, LiveboardEmbed, LogLevel, MIXPANEL_EVENT, Page, PinboardEmbed, PrefetchFeatures, RuntimeFilterOp, SageEmbed, SearchBarEmbed, SearchEmbed, createLiveboardWithAnswers, executeTML, exportTML, getAnswerFromQuery, getEmbedConfig as getInitConfig, getSessionInfo, init, logout, prefetch, resetCachedAuthToken, tokenizedFetch, uploadMixpanelEvent };
|
|
17913
|
+
export { Action, AnswerService, AppEmbed, AuthEvent, AuthFailureType, AuthStatus, AuthType, BodylessConversation, ContextMenuTriggerOptions, ConversationEmbed, DataSourceVisualMode, EmbedEvent, HomeLeftNavItem, HomePageSearchBarMode, HomepageModule, HostEvent, LiveboardEmbed, LogLevel, MIXPANEL_EVENT, Page, PinboardEmbed, PrefetchFeatures, RuntimeFilterOp, SageEmbed, SearchBarEmbed, SearchEmbed, UIPassthroughEvent, createLiveboardWithAnswers, executeTML, exportTML, getAnswerFromQuery, getEmbedConfig as getInitConfig, getSessionInfo, init, logout, prefetch, resetCachedAuthToken, tokenizedFetch, uploadMixpanelEvent };
|