@thoughtspot/visual-embed-sdk 1.52.1 → 1.52.2-beta
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 +11 -4
- package/cjs/src/contracts/host-event-contracts.d.ts +49 -11
- package/cjs/src/contracts/host-event-contracts.d.ts.map +1 -1
- package/cjs/src/embed/app.d.ts +4 -3
- package/cjs/src/embed/app.d.ts.map +1 -1
- package/cjs/src/embed/app.js +1 -1
- package/cjs/src/embed/app.js.map +1 -1
- package/cjs/src/embed/app.spec.js +10 -0
- package/cjs/src/embed/app.spec.js.map +1 -1
- package/cjs/src/embed/auto-frame-renderer.js +1 -1
- package/cjs/src/embed/auto-frame-renderer.js.map +1 -1
- package/cjs/src/embed/auto-frame-renderer.spec.js +24 -13
- package/cjs/src/embed/auto-frame-renderer.spec.js.map +1 -1
- package/cjs/src/embed/bodyless-conversation.js +1 -1
- package/cjs/src/embed/bodyless-conversation.js.map +1 -1
- package/cjs/src/embed/conversation.d.ts +1 -0
- package/cjs/src/embed/conversation.d.ts.map +1 -1
- package/cjs/src/embed/conversation.js +4 -4
- package/cjs/src/embed/conversation.js.map +1 -1
- package/cjs/src/embed/conversation.spec.js +35 -24
- package/cjs/src/embed/conversation.spec.js.map +1 -1
- package/cjs/src/embed/embedConfig.spec.js +2 -1
- package/cjs/src/embed/embedConfig.spec.js.map +1 -1
- package/cjs/src/embed/hostEventClient/host-event-client.d.ts +2 -2
- package/cjs/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
- package/cjs/src/embed/hostEventClient/host-event-client.js +16 -10
- package/cjs/src/embed/hostEventClient/host-event-client.js.map +1 -1
- package/cjs/src/embed/hostEventClient/host-event-client.spec.js +14 -8
- package/cjs/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
- package/cjs/src/embed/hostEventClient/utils.d.ts +9 -0
- package/cjs/src/embed/hostEventClient/utils.d.ts.map +1 -1
- package/cjs/src/embed/hostEventClient/utils.js +49 -3
- package/cjs/src/embed/hostEventClient/utils.js.map +1 -1
- package/cjs/src/embed/hostEventClient/utils.spec.js +151 -0
- package/cjs/src/embed/hostEventClient/utils.spec.js.map +1 -1
- package/cjs/src/embed/liveboard.d.ts +4 -3
- package/cjs/src/embed/liveboard.d.ts.map +1 -1
- package/cjs/src/embed/liveboard.js +18 -13
- package/cjs/src/embed/liveboard.js.map +1 -1
- package/cjs/src/embed/liveboard.spec.js +2 -1
- package/cjs/src/embed/liveboard.spec.js.map +1 -1
- package/cjs/src/embed/search-bar.js +1 -1
- package/cjs/src/embed/search-bar.js.map +1 -1
- package/cjs/src/embed/search.js +1 -1
- package/cjs/src/embed/search.js.map +1 -1
- package/cjs/src/embed/search.spec.js +20 -0
- package/cjs/src/embed/search.spec.js.map +1 -1
- package/cjs/src/embed/spotter-utils.d.ts +8 -1
- package/cjs/src/embed/spotter-utils.d.ts.map +1 -1
- package/cjs/src/embed/spotter-utils.js +14 -1
- package/cjs/src/embed/spotter-utils.js.map +1 -1
- package/cjs/src/embed/spotter-utils.spec.js +26 -0
- package/cjs/src/embed/spotter-utils.spec.js.map +1 -1
- package/cjs/src/embed/ts-embed.d.ts +3 -0
- package/cjs/src/embed/ts-embed.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.js +108 -29
- package/cjs/src/embed/ts-embed.js.map +1 -1
- package/cjs/src/embed/ts-embed.spec.js +163 -23
- package/cjs/src/embed/ts-embed.spec.js.map +1 -1
- package/cjs/src/errors.js +1 -1
- package/cjs/src/errors.js.map +1 -1
- 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 +45 -22
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +44 -21
- package/cjs/src/types.js.map +1 -1
- package/cjs/src/utils/authService/tokenizedAuthService.spec.js +2 -1
- package/cjs/src/utils/authService/tokenizedAuthService.spec.js.map +1 -1
- package/cjs/src/utils/custom-actions.spec.js +4 -2
- package/cjs/src/utils/custom-actions.spec.js.map +1 -1
- package/cjs/src/utils/filterConverter.d.ts +106 -0
- package/cjs/src/utils/filterConverter.d.ts.map +1 -0
- package/cjs/src/utils/filterConverter.js +215 -0
- package/cjs/src/utils/filterConverter.js.map +1 -0
- package/cjs/src/utils/filterConverter.spec.d.ts +2 -0
- package/cjs/src/utils/filterConverter.spec.d.ts.map +1 -0
- package/cjs/src/utils/filterConverter.spec.js +709 -0
- package/cjs/src/utils/filterConverter.spec.js.map +1 -0
- package/cjs/src/utils/processData.spec.js +2 -1
- package/cjs/src/utils/processData.spec.js.map +1 -1
- package/dist/{index-C1pmYb5H.js → index-CcBYlGo9.js} +1 -1
- package/dist/src/contracts/host-event-contracts.d.ts +49 -11
- package/dist/src/contracts/host-event-contracts.d.ts.map +1 -1
- package/dist/src/embed/app.d.ts +4 -3
- package/dist/src/embed/app.d.ts.map +1 -1
- package/dist/src/embed/conversation.d.ts +1 -0
- package/dist/src/embed/conversation.d.ts.map +1 -1
- package/dist/src/embed/hostEventClient/host-event-client.d.ts +2 -2
- package/dist/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
- package/dist/src/embed/hostEventClient/utils.d.ts +9 -0
- package/dist/src/embed/hostEventClient/utils.d.ts.map +1 -1
- package/dist/src/embed/liveboard.d.ts +4 -3
- package/dist/src/embed/liveboard.d.ts.map +1 -1
- package/dist/src/embed/spotter-utils.d.ts +8 -1
- package/dist/src/embed/spotter-utils.d.ts.map +1 -1
- package/dist/src/embed/ts-embed.d.ts +3 -0
- package/dist/src/embed/ts-embed.d.ts.map +1 -1
- 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 +45 -22
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/filterConverter.d.ts +106 -0
- package/dist/src/utils/filterConverter.d.ts.map +1 -0
- package/dist/src/utils/filterConverter.spec.d.ts +2 -0
- package/dist/src/utils/filterConverter.spec.d.ts.map +1 -0
- package/dist/tsembed-react.es.js +257 -87
- package/dist/tsembed-react.js +256 -86
- package/dist/tsembed.es.js +466 -89
- package/dist/tsembed.js +465 -87
- package/dist/visual-embed-sdk-react-full.d.ts +202 -40
- package/dist/visual-embed-sdk-react.d.ts +108 -40
- package/dist/visual-embed-sdk.d.ts +202 -40
- package/lib/package.json +11 -4
- package/lib/src/contracts/host-event-contracts.d.ts +49 -11
- package/lib/src/contracts/host-event-contracts.d.ts.map +1 -1
- package/lib/src/embed/app.d.ts +4 -3
- package/lib/src/embed/app.d.ts.map +1 -1
- package/lib/src/embed/app.js +1 -1
- package/lib/src/embed/app.js.map +1 -1
- package/lib/src/embed/app.spec.js +10 -0
- package/lib/src/embed/app.spec.js.map +1 -1
- package/lib/src/embed/auto-frame-renderer.js +1 -1
- package/lib/src/embed/auto-frame-renderer.js.map +1 -1
- package/lib/src/embed/auto-frame-renderer.spec.js +24 -13
- package/lib/src/embed/auto-frame-renderer.spec.js.map +1 -1
- package/lib/src/embed/bodyless-conversation.js +1 -1
- package/lib/src/embed/bodyless-conversation.js.map +1 -1
- package/lib/src/embed/conversation.d.ts +1 -0
- package/lib/src/embed/conversation.d.ts.map +1 -1
- package/lib/src/embed/conversation.js +5 -5
- package/lib/src/embed/conversation.js.map +1 -1
- package/lib/src/embed/conversation.spec.js +35 -24
- package/lib/src/embed/conversation.spec.js.map +1 -1
- package/lib/src/embed/embedConfig.spec.js +2 -1
- package/lib/src/embed/embedConfig.spec.js.map +1 -1
- package/lib/src/embed/hostEventClient/host-event-client.d.ts +2 -2
- package/lib/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
- package/lib/src/embed/hostEventClient/host-event-client.js +17 -11
- package/lib/src/embed/hostEventClient/host-event-client.js.map +1 -1
- package/lib/src/embed/hostEventClient/host-event-client.spec.js +14 -8
- package/lib/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
- package/lib/src/embed/hostEventClient/utils.d.ts +9 -0
- package/lib/src/embed/hostEventClient/utils.d.ts.map +1 -1
- package/lib/src/embed/hostEventClient/utils.js +47 -2
- package/lib/src/embed/hostEventClient/utils.js.map +1 -1
- package/lib/src/embed/hostEventClient/utils.spec.js +152 -1
- package/lib/src/embed/hostEventClient/utils.spec.js.map +1 -1
- package/lib/src/embed/liveboard.d.ts +4 -3
- package/lib/src/embed/liveboard.d.ts.map +1 -1
- package/lib/src/embed/liveboard.js +18 -13
- package/lib/src/embed/liveboard.js.map +1 -1
- package/lib/src/embed/liveboard.spec.js +2 -1
- package/lib/src/embed/liveboard.spec.js.map +1 -1
- package/lib/src/embed/search-bar.js +1 -1
- package/lib/src/embed/search-bar.js.map +1 -1
- package/lib/src/embed/search.js +1 -1
- package/lib/src/embed/search.js.map +1 -1
- package/lib/src/embed/search.spec.js +20 -0
- package/lib/src/embed/search.spec.js.map +1 -1
- package/lib/src/embed/spotter-utils.d.ts +8 -1
- package/lib/src/embed/spotter-utils.d.ts.map +1 -1
- package/lib/src/embed/spotter-utils.js +12 -0
- package/lib/src/embed/spotter-utils.js.map +1 -1
- package/lib/src/embed/spotter-utils.spec.js +27 -1
- package/lib/src/embed/spotter-utils.spec.js.map +1 -1
- package/lib/src/embed/ts-embed.d.ts +3 -0
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +108 -29
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +164 -24
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/errors.js +1 -1
- package/lib/src/errors.js.map +1 -1
- 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 +45 -22
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +44 -21
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils/authService/tokenizedAuthService.spec.js +2 -1
- package/lib/src/utils/authService/tokenizedAuthService.spec.js.map +1 -1
- package/lib/src/utils/custom-actions.spec.js +4 -2
- package/lib/src/utils/custom-actions.spec.js.map +1 -1
- package/lib/src/utils/filterConverter.d.ts +106 -0
- package/lib/src/utils/filterConverter.d.ts.map +1 -0
- package/lib/src/utils/filterConverter.js +210 -0
- package/lib/src/utils/filterConverter.js.map +1 -0
- package/lib/src/utils/filterConverter.spec.d.ts +2 -0
- package/lib/src/utils/filterConverter.spec.d.ts.map +1 -0
- package/lib/src/utils/filterConverter.spec.js +707 -0
- package/lib/src/utils/filterConverter.spec.js.map +1 -0
- package/lib/src/utils/processData.spec.js +2 -1
- package/lib/src/utils/processData.spec.js.map +1 -1
- package/lib/src/visual-embed-sdk.d.ts +202 -40
- package/package.json +11 -4
- package/src/contracts/host-event-contracts.ts +55 -11
- package/src/embed/app.spec.ts +15 -0
- package/src/embed/app.ts +5 -4
- package/src/embed/auto-frame-renderer.spec.ts +24 -13
- package/src/embed/auto-frame-renderer.ts +1 -1
- package/src/embed/bodyless-conversation.ts +1 -1
- package/src/embed/conversation.spec.ts +38 -27
- package/src/embed/conversation.ts +5 -5
- package/src/embed/embedConfig.spec.ts +2 -1
- package/src/embed/hostEventClient/host-event-client.spec.ts +14 -8
- package/src/embed/hostEventClient/host-event-client.ts +18 -10
- package/src/embed/hostEventClient/utils.spec.ts +176 -1
- package/src/embed/hostEventClient/utils.ts +51 -2
- package/src/embed/liveboard.spec.ts +4 -3
- package/src/embed/liveboard.ts +22 -16
- package/src/embed/search-bar.tsx +1 -1
- package/src/embed/search.spec.ts +23 -0
- package/src/embed/search.ts +1 -1
- package/src/embed/spotter-utils.spec.ts +29 -0
- package/src/embed/spotter-utils.ts +16 -0
- package/src/embed/ts-embed.spec.ts +204 -23
- package/src/embed/ts-embed.ts +114 -28
- package/src/errors.ts +1 -1
- package/src/index.ts +10 -0
- package/src/react/all-types-export.ts +4 -0
- package/src/types.ts +44 -21
- package/src/utils/authService/tokenizedAuthService.spec.ts +2 -1
- package/src/utils/custom-actions.spec.ts +4 -2
- package/src/utils/filterConverter.spec.ts +801 -0
- package/src/utils/filterConverter.ts +304 -0
- package/src/utils/processData.spec.ts +2 -1
package/dist/tsembed-react.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* @thoughtspot/visual-embed-sdk version 1.52.
|
|
1
|
+
/* @thoughtspot/visual-embed-sdk version 1.52.2-beta */
|
|
2
2
|
'use client';
|
|
3
3
|
(function (global, factory) {
|
|
4
4
|
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) :
|
|
@@ -3973,6 +3973,12 @@
|
|
|
3973
3973
|
* ```js
|
|
3974
3974
|
* const data = await liveboardEmbed.trigger(HostEvent.GetFilters);
|
|
3975
3975
|
* console.log('data', data);
|
|
3976
|
+
* // {
|
|
3977
|
+
* // liveboardFilters: [ ... ],
|
|
3978
|
+
* // runtimeFilters: [
|
|
3979
|
+
* // { columnName: "Region", operator: "IN", values: ["West"] }
|
|
3980
|
+
* // ]
|
|
3981
|
+
* // }
|
|
3976
3982
|
* ```
|
|
3977
3983
|
* @example
|
|
3978
3984
|
* ```js
|
|
@@ -3997,9 +4003,9 @@
|
|
|
3997
4003
|
*
|
|
3998
4004
|
* Each filter object must include the following attributes:
|
|
3999
4005
|
*
|
|
4000
|
-
* `
|
|
4006
|
+
* `columnName` - Name of the column to filter on.
|
|
4001
4007
|
*
|
|
4002
|
-
* `
|
|
4008
|
+
* `operator` - Filter operator, for example, EQ, IN, CONTAINS.
|
|
4003
4009
|
* For information about the supported filter operators,
|
|
4004
4010
|
* see link:https://developers.thoughtspot.com/docs/runtime-filters#rtOperator[Developer Documentation].
|
|
4005
4011
|
*
|
|
@@ -4026,8 +4032,8 @@
|
|
|
4026
4032
|
*
|
|
4027
4033
|
* liveboardEmbed.trigger(HostEvent.UpdateFilters, {
|
|
4028
4034
|
* filter: {
|
|
4029
|
-
*
|
|
4030
|
-
*
|
|
4035
|
+
* columnName: "item type",
|
|
4036
|
+
* operator: "IN",
|
|
4031
4037
|
* values: ["bags","shirts"]
|
|
4032
4038
|
* }
|
|
4033
4039
|
* });
|
|
@@ -4037,8 +4043,8 @@
|
|
|
4037
4043
|
*
|
|
4038
4044
|
* liveboardEmbed.trigger(HostEvent.UpdateFilters, {
|
|
4039
4045
|
* filter: {
|
|
4040
|
-
*
|
|
4041
|
-
*
|
|
4046
|
+
* columnName: "date",
|
|
4047
|
+
* operator: "EQ",
|
|
4042
4048
|
* values: ["JULY","2023"],
|
|
4043
4049
|
* type: "MONTH_YEAR"
|
|
4044
4050
|
* }
|
|
@@ -4049,18 +4055,18 @@
|
|
|
4049
4055
|
* ```js
|
|
4050
4056
|
* liveboardEmbed.trigger(HostEvent.UpdateFilters, {
|
|
4051
4057
|
* filters: [{
|
|
4052
|
-
*
|
|
4053
|
-
*
|
|
4058
|
+
* columnName: "Item Type",
|
|
4059
|
+
* operator: 'IN',
|
|
4054
4060
|
* values: ["bags","shirts"]
|
|
4055
4061
|
* },
|
|
4056
4062
|
* {
|
|
4057
|
-
*
|
|
4058
|
-
*
|
|
4063
|
+
* columnName: "Region",
|
|
4064
|
+
* operator: 'IN',
|
|
4059
4065
|
* values: ["West","Midwest"]
|
|
4060
4066
|
* },
|
|
4061
4067
|
* {
|
|
4062
|
-
*
|
|
4063
|
-
*
|
|
4068
|
+
* columnName: "Date",
|
|
4069
|
+
* operator: 'EQ',
|
|
4064
4070
|
* values: ["2023-07-31"],
|
|
4065
4071
|
* type: "EXACT_DATE"
|
|
4066
4072
|
* }]
|
|
@@ -4074,13 +4080,13 @@
|
|
|
4074
4080
|
* ```js
|
|
4075
4081
|
* liveboardEmbed.trigger(HostEvent.UpdateFilters, {
|
|
4076
4082
|
* filters: [{
|
|
4077
|
-
*
|
|
4078
|
-
*
|
|
4083
|
+
* columnName: "(Sample) Retail - Apparel::city",
|
|
4084
|
+
* operator: 'IN',
|
|
4079
4085
|
* values: ["atlanta"]
|
|
4080
4086
|
* },
|
|
4081
4087
|
* {
|
|
4082
|
-
*
|
|
4083
|
-
*
|
|
4088
|
+
* columnName: "(Sample) Retail - Apparel::Region",
|
|
4089
|
+
* operator: 'IN',
|
|
4084
4090
|
* values: ["West","Midwest"]
|
|
4085
4091
|
* }]
|
|
4086
4092
|
* });
|
|
@@ -4091,8 +4097,8 @@
|
|
|
4091
4097
|
* import { ContextType } from '@thoughtspot/visual-embed-sdk';
|
|
4092
4098
|
* liveboardEmbed.trigger(HostEvent.UpdateFilters, {
|
|
4093
4099
|
* filter: {
|
|
4094
|
-
*
|
|
4095
|
-
*
|
|
4100
|
+
* columnName: "item type",
|
|
4101
|
+
* operator: "IN",
|
|
4096
4102
|
* values: ["shoes", "boots"]
|
|
4097
4103
|
* }
|
|
4098
4104
|
* }, ContextType.Liveboard);
|
|
@@ -4102,8 +4108,8 @@
|
|
|
4102
4108
|
* // Scope the filter to a specific Liveboard tab
|
|
4103
4109
|
* liveboardEmbed.trigger(HostEvent.UpdateFilters, {
|
|
4104
4110
|
* filter: {
|
|
4105
|
-
*
|
|
4106
|
-
*
|
|
4111
|
+
* columnName: "item type",
|
|
4112
|
+
* operator: "IN",
|
|
4107
4113
|
* values: ["bags", "shirts"],
|
|
4108
4114
|
* applicability: {
|
|
4109
4115
|
* level: "TAB",
|
|
@@ -4112,6 +4118,12 @@
|
|
|
4112
4118
|
* }
|
|
4113
4119
|
* });
|
|
4114
4120
|
* ```
|
|
4121
|
+
* Use `columnName` and `operator` - the same spelling as
|
|
4122
|
+
* {@link RuntimeFilter}. The older `column` and `oper` spellings are
|
|
4123
|
+
* deprecated; they are still accepted, but pass only one spelling of each
|
|
4124
|
+
* field, never both. To reapply the filter state captured from
|
|
4125
|
+
* {@link EmbedEvent.FilterChanged}, use `convertFilterChangedToUpdateFiltersPayload`
|
|
4126
|
+
* to convert its payload into the shape expected here.
|
|
4115
4127
|
* @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
|
|
4116
4128
|
*/
|
|
4117
4129
|
HostEvent["UpdateFilters"] = "updateFilters";
|
|
@@ -5097,7 +5109,6 @@
|
|
|
5097
5109
|
Param["IsStarterPromptsEnabled"] = "enableStarterPrompts";
|
|
5098
5110
|
Param["UpdatedSpotterExperience"] = "updatedSpotterExperience";
|
|
5099
5111
|
Param["SpotterDataSources"] = "spotterDataSources";
|
|
5100
|
-
Param["AnalystId"] = "analystId";
|
|
5101
5112
|
Param["OpenSpotterOnLiveboardByDefault"] = "openSpotterOnLiveboardByDefault";
|
|
5102
5113
|
Param["ShowAnswerEditPanel"] = "showAnswerEditPanel";
|
|
5103
5114
|
})(Param || (Param = {}));
|
|
@@ -7323,6 +7334,18 @@
|
|
|
7323
7334
|
* ```
|
|
7324
7335
|
*/
|
|
7325
7336
|
Action["DeleteCollection"] = "deleteCollection";
|
|
7337
|
+
/**
|
|
7338
|
+
* Controls the visibility of the "Customize homepage" button on the
|
|
7339
|
+
* embedded home page.
|
|
7340
|
+
* @version SDK: 1.55.0 | ThoughtSpot Cloud: 26.12.0.cl
|
|
7341
|
+
* @example
|
|
7342
|
+
* ```js
|
|
7343
|
+
* {
|
|
7344
|
+
* hiddenActions: [Action.CustomizeHomepage],
|
|
7345
|
+
* }
|
|
7346
|
+
* ```
|
|
7347
|
+
*/
|
|
7348
|
+
Action["CustomizeHomepage"] = "customizeHomepage";
|
|
7326
7349
|
})(exports.Action || (exports.Action = {}));
|
|
7327
7350
|
var PrefetchFeatures;
|
|
7328
7351
|
(function (PrefetchFeatures) {
|
|
@@ -7827,7 +7850,7 @@
|
|
|
7827
7850
|
TableContentDensity["Compact"] = "COMPACT";
|
|
7828
7851
|
})(TableContentDensity || (TableContentDensity = {}));
|
|
7829
7852
|
|
|
7830
|
-
var version$1="1.52.
|
|
7853
|
+
var version$1="1.52.2-beta";var pkg = {version:version$1};
|
|
7831
7854
|
|
|
7832
7855
|
const { version } = pkg;
|
|
7833
7856
|
|
|
@@ -7931,7 +7954,7 @@
|
|
|
7931
7954
|
SSR_ENVIRONMENT_ERROR: 'SSR environment detected. This function cannot be called in SSR environment.',
|
|
7932
7955
|
UPDATE_PARAMS_FAILED: 'Failed to update embed parameters',
|
|
7933
7956
|
INVALID_SPOTTER_DOCUMENTATION_URL: 'Invalid spotterDocumentationUrl. Please provide a valid http or https URL.',
|
|
7934
|
-
UPDATEFILTERS_INVALID_PAYLOAD: 'UpdateFilters requires a valid filter or filters array. Expected: { filter: {
|
|
7957
|
+
UPDATEFILTERS_INVALID_PAYLOAD: 'UpdateFilters requires a valid filter or filters array. Expected: { filter: { columnName, operator, values } } or { filters: [{ columnName, operator, values }, ...] }',
|
|
7935
7958
|
DRILLDOWN_INVALID_PAYLOAD: 'DrillDown requires a valid points object. Expected: { points: { clickedPoint?, selectedPoints? }, autoDrillDown?, vizId? }',
|
|
7936
7959
|
UPDATEPARAMETERS_INVALID_PAYLOAD: 'UpdateParameters received an invalid applicability. Expected: { level: LIVEBOARD | TAB | GROUP, targetId } where targetId is required for TAB and GROUP levels',
|
|
7937
7960
|
};
|
|
@@ -21358,7 +21381,8 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
|
|
|
21358
21381
|
const isValidApplicability = (a) => {
|
|
21359
21382
|
if (isUndefined_1(a))
|
|
21360
21383
|
return true;
|
|
21361
|
-
// targetId is not required at LIVEBOARD level, since the filter applies to
|
|
21384
|
+
// targetId is not required at LIVEBOARD level, since the filter applies to
|
|
21385
|
+
// the whole Liveboard
|
|
21362
21386
|
return isPlainObject_1(a)
|
|
21363
21387
|
&& Object.values(ApplicabilityLevel).includes(a.level)
|
|
21364
21388
|
&& (a.level === ApplicabilityLevel.Liveboard || (isString_1(a.targetId) && a.targetId.trim().length > 0));
|
|
@@ -21377,8 +21401,52 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
|
|
|
21377
21401
|
const hasValidFilters = Array.isArray(payload.filters) && payload.filters.length > 0 && payload.filters.every(isValidFilter);
|
|
21378
21402
|
return !!(hasValidFilter || hasValidFilters);
|
|
21379
21403
|
}
|
|
21404
|
+
/**
|
|
21405
|
+
* Rewrites one filter's `columnName`/`operator` to `column`/`oper`.
|
|
21406
|
+
*
|
|
21407
|
+
* Callers may use either spelling: `columnName`/`operator` match
|
|
21408
|
+
* {@link RuntimeFilter} and the `EmbedEvent.FilterChanged` payload, so a
|
|
21409
|
+
* converted payload can be replayed as-is. But the payload is forwarded to the
|
|
21410
|
+
* embedded app unchanged, and only `column`/`oper` are known to be understood
|
|
21411
|
+
* there - so the alias must be swapped here, or it would pass validation and
|
|
21412
|
+
* then be silently ignored.
|
|
21413
|
+
*
|
|
21414
|
+
* If a caller supplies both spellings of a field - which TypeScript rejects,
|
|
21415
|
+
* but JavaScript callers can still do - the documented `columnName`/`operator`
|
|
21416
|
+
* wins. Deferring to the deprecated spelling would quietly discard the value
|
|
21417
|
+
* the rest of the SDK tells people to use.
|
|
21418
|
+
* @param filter One entry from the UpdateFilters payload.
|
|
21419
|
+
*/
|
|
21420
|
+
function resolveFilterAliases(filter) {
|
|
21421
|
+
var _a, _b;
|
|
21422
|
+
if (!isPlainObject_1(filter))
|
|
21423
|
+
return filter;
|
|
21424
|
+
const column = (_a = filter.columnName) !== null && _a !== void 0 ? _a : filter.column;
|
|
21425
|
+
const oper = (_b = filter.operator) !== null && _b !== void 0 ? _b : filter.oper;
|
|
21426
|
+
const { columnName, operator, ...rest } = filter;
|
|
21427
|
+
return {
|
|
21428
|
+
...rest,
|
|
21429
|
+
...(isUndefined_1(column) ? {} : { column }),
|
|
21430
|
+
...(isUndefined_1(oper) ? {} : { oper }),
|
|
21431
|
+
};
|
|
21432
|
+
}
|
|
21433
|
+
/**
|
|
21434
|
+
* Rewrites every filter in an UpdateFilters payload to use `column`/`oper`,
|
|
21435
|
+
* whichever spelling the caller supplied. Call after validation.
|
|
21436
|
+
* @param payload The UpdateFilters host event payload.
|
|
21437
|
+
*/
|
|
21438
|
+
function resolveUpdateFiltersAliases(payload) {
|
|
21439
|
+
if (!isPlainObject_1(payload))
|
|
21440
|
+
return payload;
|
|
21441
|
+
return {
|
|
21442
|
+
...payload,
|
|
21443
|
+
...(payload.filter ? { filter: resolveFilterAliases(payload.filter) } : {}),
|
|
21444
|
+
...(Array.isArray(payload.filters) ? { filters: payload.filters.map(resolveFilterAliases) } : {}),
|
|
21445
|
+
};
|
|
21446
|
+
}
|
|
21380
21447
|
function isValidUpdateParametersPayload(payload) {
|
|
21381
|
-
// Only validates the applicability of each parameter (null treated as
|
|
21448
|
+
// Only validates the applicability of each parameter (null treated as
|
|
21449
|
+
// absent); the rest is forwarded as-is for backward compatibility.
|
|
21382
21450
|
if (!Array.isArray(payload))
|
|
21383
21451
|
return true;
|
|
21384
21452
|
return payload.every((p) => {
|
|
@@ -21426,7 +21494,8 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
|
|
|
21426
21494
|
/**
|
|
21427
21495
|
* Maps HostEvent to its corresponding UIPassthroughEvent.
|
|
21428
21496
|
* Includes both custom-handler events (Pin, SaveAnswer, UpdateFilters, DrillDown)
|
|
21429
|
-
* and getter events (GetAnswerSession, GetFilters, etc.) that use
|
|
21497
|
+
* and getter events (GetAnswerSession, GetFilters, etc.) that use
|
|
21498
|
+
* getDataWithPassthroughFallback.
|
|
21430
21499
|
*/
|
|
21431
21500
|
const PASSTHROUGH_MAP = {
|
|
21432
21501
|
// Custom handlers (setters with special logic)
|
|
@@ -21577,17 +21646,21 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
|
|
|
21577
21646
|
throwUpdateFiltersValidationError();
|
|
21578
21647
|
}
|
|
21579
21648
|
// The shared contract accepts both current (columnName/operator) and
|
|
21580
|
-
// legacy (column/oper) filter field names
|
|
21581
|
-
//
|
|
21582
|
-
//
|
|
21583
|
-
//
|
|
21584
|
-
|
|
21649
|
+
// legacy (column/oper) filter field names, but only the legacy pair is
|
|
21650
|
+
// understood downstream, so the payload is rewritten before it is
|
|
21651
|
+
// forwarded — otherwise a columnName/operator filter passes validation
|
|
21652
|
+
// here and is then silently ignored by the app. The cast bridges the
|
|
21653
|
+
// UIPassthrough FilterUpdate type, which still declares only the legacy
|
|
21654
|
+
// names.
|
|
21655
|
+
const resolvedPayload = resolveUpdateFiltersAliases(payload);
|
|
21656
|
+
return this.handleHostEventWithParam(UIPassthroughEvent.UpdateFilters, resolvedPayload, context);
|
|
21585
21657
|
}
|
|
21586
21658
|
handleUpdateParametersEvent(payload, context) {
|
|
21587
21659
|
if (!isValidUpdateParametersPayload(payload)) {
|
|
21588
21660
|
throwUpdateParametersValidationError();
|
|
21589
21661
|
}
|
|
21590
|
-
// UpdateParameters has no UI passthrough contract; dispatch over the
|
|
21662
|
+
// UpdateParameters has no UI passthrough contract; dispatch over the
|
|
21663
|
+
// legacy channel
|
|
21591
21664
|
return this.hostEventFallback(exports.HostEvent.UpdateParameters, payload, context);
|
|
21592
21665
|
}
|
|
21593
21666
|
handleDrillDownEvent(payload, context) {
|
|
@@ -21598,8 +21671,8 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
|
|
|
21598
21671
|
}
|
|
21599
21672
|
/**
|
|
21600
21673
|
* Dispatches a host event using the appropriate channel:
|
|
21601
|
-
* 1. If the embedded app supports UI passthrough for this event, use it (custom
|
|
21602
|
-
* 2. Otherwise fall back to the legacy host event channel.
|
|
21674
|
+
* 1. If the embedded app supports UI passthrough for this event, use it (custom
|
|
21675
|
+
* handler or getter). 2. Otherwise fall back to the legacy host event channel.
|
|
21603
21676
|
*
|
|
21604
21677
|
* @param hostEvent - The host event to trigger
|
|
21605
21678
|
* @param payload - Optional payload for the event
|
|
@@ -21608,7 +21681,8 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
|
|
|
21608
21681
|
async triggerHostEvent(hostEvent, payload, context) {
|
|
21609
21682
|
const customHandler = this.customHandlers[hostEvent];
|
|
21610
21683
|
const passthroughEvent = PASSTHROUGH_MAP[hostEvent];
|
|
21611
|
-
// If embedded app supports passthrough but not this event, use legacy
|
|
21684
|
+
// If embedded app supports passthrough but not this event, use legacy
|
|
21685
|
+
// channel
|
|
21612
21686
|
const keys = passthroughEvent ? await this.getAvailableUIPassthroughKeys(context) : [];
|
|
21613
21687
|
if (passthroughEvent && keys.length > 0 && !keys.includes(passthroughEvent)) {
|
|
21614
21688
|
return this.hostEventFallback(hostEvent, payload, context);
|
|
@@ -21818,9 +21892,60 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
|
|
|
21818
21892
|
// The container applies UpdateEmbedParams through React state, so a delivered
|
|
21819
21893
|
// post is not the same as the params being in effect.
|
|
21820
21894
|
const UPDATE_EMBED_PARAMS_SETTLE_MS = 200;
|
|
21821
|
-
// The container ignores runtimeFilterParams/runtimeParameterParams unless
|
|
21822
|
-
// null or '' leaves the previous embed's values in place. '&' is
|
|
21895
|
+
// The container ignores runtimeFilterParams/runtimeParameterParams unless
|
|
21896
|
+
// truthy, so null or '' leaves the previous embed's values in place. '&' is
|
|
21897
|
+
// truthy and parses to {}.
|
|
21823
21898
|
const NO_RUNTIME_PARAMS = '&';
|
|
21899
|
+
/**
|
|
21900
|
+
* Query parameters that stay on the iframe `src` while config is excluded from
|
|
21901
|
+
* the URL, which is the default unless the embed sets the
|
|
21902
|
+
* `excludeConfigFromURL` additional flag to `false`. These are the parameters the
|
|
21903
|
+
* application shell needs before it can receive a postMessage at all: the
|
|
21904
|
+
* embed marker, the host application URL used to validate the message origin,
|
|
21905
|
+
* the SDK version, the flags that pick the authentication flow, and the
|
|
21906
|
+
* boot-time settings that would otherwise be applied a frame late (viewport,
|
|
21907
|
+
* log level, locale, formatting and org). Everything else is delivered over
|
|
21908
|
+
* `HostEvent.UpdateEmbedParams`.
|
|
21909
|
+
* @internal
|
|
21910
|
+
*/
|
|
21911
|
+
const BOOTSTRAP_URL_PARAMS = new Set([
|
|
21912
|
+
Param.EmbedApp,
|
|
21913
|
+
Param.HostAppUrl,
|
|
21914
|
+
Param.Version,
|
|
21915
|
+
Param.AuthType,
|
|
21916
|
+
Param.AutoLogin,
|
|
21917
|
+
Param.DisableLoginRedirect,
|
|
21918
|
+
Param.ForceSAMLAutoRedirect,
|
|
21919
|
+
Param.cookieless,
|
|
21920
|
+
Param.preAuthCache,
|
|
21921
|
+
Param.blockNonEmbedFullAppAccess,
|
|
21922
|
+
Param.OverrideOrgId,
|
|
21923
|
+
Param.ViewPortHeight,
|
|
21924
|
+
Param.ViewPortWidth,
|
|
21925
|
+
Param.ClientLogLevel,
|
|
21926
|
+
Param.OverrideNativeConsole,
|
|
21927
|
+
Param.PendoTrackingKey,
|
|
21928
|
+
Param.NumberFormatLocale,
|
|
21929
|
+
Param.DateFormatLocale,
|
|
21930
|
+
Param.CurrencyFormat,
|
|
21931
|
+
Param.Locale,
|
|
21932
|
+
Param.searchEmbed,
|
|
21933
|
+
Param.livedBoardEmbed,
|
|
21934
|
+
Param.isSpotterAgentEmbed,
|
|
21935
|
+
Param.SpotterEnabled,
|
|
21936
|
+
Param.IsFullAppEmbed,
|
|
21937
|
+
Param.IsOnBeforeGetVizDataInterceptEnabled,
|
|
21938
|
+
Param.LinkOverride,
|
|
21939
|
+
Param.EnableLinkOverridesV2,
|
|
21940
|
+
Param.DisableRedirectionLinksInNewTab,
|
|
21941
|
+
Param.OverrideHistoryState,
|
|
21942
|
+
Param.ForceTable,
|
|
21943
|
+
Param.StringIDsUrl,
|
|
21944
|
+
Param.DataSources,
|
|
21945
|
+
Param.ExposeTranslationIDs,
|
|
21946
|
+
Param.IconSpriteUrl,
|
|
21947
|
+
Param.Tag,
|
|
21948
|
+
]);
|
|
21824
21949
|
/**
|
|
21825
21950
|
* The event id map from v2 event names to v1 event id
|
|
21826
21951
|
* v1 events are the classic embed events implemented in Blink v1
|
|
@@ -22017,15 +22142,20 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
|
|
|
22017
22142
|
const AUTH_INIT_FALLBACK_DELAY = 1000;
|
|
22018
22143
|
// Wait for 1 second to ensure the embed container is loaded
|
|
22019
22144
|
// This is a workaround to ensure the embed container is loaded
|
|
22020
|
-
// this is needed until all clusters have EmbedListenerReady
|
|
22145
|
+
// this is needed until all clusters have EmbedListenerReady
|
|
22146
|
+
// event
|
|
22021
22147
|
setTimeout(processEmbedContainerReady, AUTH_INIT_FALLBACK_DELAY);
|
|
22022
22148
|
}
|
|
22023
22149
|
else if (source === exports.EmbedEvent.EmbedListenerReady) {
|
|
22024
22150
|
processEmbedContainerReady();
|
|
22151
|
+
if (this.isConfigExcludedFromUrl()) {
|
|
22152
|
+
this.triggerUpdateEmbedParams();
|
|
22153
|
+
}
|
|
22025
22154
|
}
|
|
22026
22155
|
};
|
|
22027
22156
|
// Subclasses that navigate the pre-render on show must await this before
|
|
22028
|
-
// triggering Navigate. Resolves even on failure, so navigation is never
|
|
22157
|
+
// triggering Navigate. Resolves even on failure, so navigation is never
|
|
22158
|
+
// blocked.
|
|
22029
22159
|
this.preRenderParamsApplied = Promise.resolve();
|
|
22030
22160
|
this.hostElement = getDOMNode(domSelector);
|
|
22031
22161
|
this.eventHandlerMap = new Map();
|
|
@@ -22355,8 +22485,9 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
|
|
|
22355
22485
|
...this.viewConfig,
|
|
22356
22486
|
...queryParams,
|
|
22357
22487
|
...appInitData,
|
|
22358
|
-
// A show cycle has no URL to carry these, so the payload always
|
|
22359
|
-
// — including "none", which is the case that leaks the
|
|
22488
|
+
// A show cycle has no URL to carry these, so the payload always
|
|
22489
|
+
// states them — including "none", which is the case that leaks the
|
|
22490
|
+
// previous filters.
|
|
22360
22491
|
runtimeFilterParams: getFilterQuery((_a = this.viewConfig.runtimeFilters) !== null && _a !== void 0 ? _a : []) || NO_RUNTIME_PARAMS,
|
|
22361
22492
|
runtimeParameterParams: getRuntimeParameters((_b = this.viewConfig.runtimeParameters) !== null && _b !== void 0 ? _b : [])
|
|
22362
22493
|
|| NO_RUNTIME_PARAMS,
|
|
@@ -22524,13 +22655,20 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
|
|
|
22524
22655
|
return path;
|
|
22525
22656
|
}
|
|
22526
22657
|
getEmbedParams() {
|
|
22527
|
-
const queryParams = this.
|
|
22658
|
+
const queryParams = this.getUrlQueryParamsObject();
|
|
22528
22659
|
return getQueryParamString(queryParams);
|
|
22529
22660
|
}
|
|
22530
22661
|
getEmbedParamsObject() {
|
|
22531
22662
|
const params = this.getBaseQueryParams();
|
|
22532
22663
|
return params;
|
|
22533
22664
|
}
|
|
22665
|
+
getUrlQueryParamsObject() {
|
|
22666
|
+
const queryParams = this.getEmbedParamsObject();
|
|
22667
|
+
if (!this.isConfigExcludedFromUrl()) {
|
|
22668
|
+
return queryParams;
|
|
22669
|
+
}
|
|
22670
|
+
return Object.fromEntries(Object.entries(queryParams).filter(([key]) => BOOTSTRAP_URL_PARAMS.has(key)));
|
|
22671
|
+
}
|
|
22534
22672
|
getRootIframeSrc() {
|
|
22535
22673
|
const query = this.getEmbedParams();
|
|
22536
22674
|
return this.getEmbedBasePath(query);
|
|
@@ -23083,8 +23221,9 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
|
|
|
23083
23221
|
return;
|
|
23084
23222
|
this.preRenderWrapper[this.embedNodeKey] = this;
|
|
23085
23223
|
}
|
|
23086
|
-
// The flag lives on the wrapper because it describes the iframe: an
|
|
23087
|
-
// hidden when the container announced itself would otherwise
|
|
23224
|
+
// The flag lives on the wrapper because it describes the iframe: an
|
|
23225
|
+
// instance hidden when the container announced itself would otherwise
|
|
23226
|
+
// report false forever.
|
|
23088
23227
|
markEmbedContainerLoaded() {
|
|
23089
23228
|
this.isEmbedContainerLoaded = true;
|
|
23090
23229
|
if (this.preRenderWrapper) {
|
|
@@ -23437,6 +23576,27 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
|
|
|
23437
23576
|
this.isRendered = true;
|
|
23438
23577
|
return this.renderIFrame(prerenderFrameSrc);
|
|
23439
23578
|
}
|
|
23579
|
+
isConfigExcludedFromUrl() {
|
|
23580
|
+
var _a, _b, _c;
|
|
23581
|
+
const flag = (_b = (_a = this.viewConfig.additionalFlags) === null || _a === void 0 ? void 0 : _a.excludeConfigFromURL) !== null && _b !== void 0 ? _b : (_c = this.embedConfig.additionalFlags) === null || _c === void 0 ? void 0 : _c.excludeConfigFromURL;
|
|
23582
|
+
// Enabled by default; only an explicit false opts out.
|
|
23583
|
+
return flag !== false && flag !== 'false';
|
|
23584
|
+
}
|
|
23585
|
+
async triggerUpdateEmbedParams() {
|
|
23586
|
+
try {
|
|
23587
|
+
const params = await this.getUpdateEmbedParamsObject();
|
|
23588
|
+
this.trigger(exports.HostEvent.UpdateEmbedParams, params);
|
|
23589
|
+
}
|
|
23590
|
+
catch (error) {
|
|
23591
|
+
logger$3.error(ERROR_MESSAGE.UPDATE_PARAMS_FAILED, error);
|
|
23592
|
+
this.handleError({
|
|
23593
|
+
errorType: ErrorDetailsTypes.API,
|
|
23594
|
+
message: (error === null || error === void 0 ? void 0 : error.message) || ERROR_MESSAGE.UPDATE_PARAMS_FAILED,
|
|
23595
|
+
code: EmbedErrorCodes.UPDATE_PARAMS_FAILED,
|
|
23596
|
+
error: (error === null || error === void 0 ? void 0 : error.message) || error,
|
|
23597
|
+
});
|
|
23598
|
+
}
|
|
23599
|
+
}
|
|
23440
23600
|
beforePrerenderVisible() {
|
|
23441
23601
|
// We can ignore this as its a bit expensive and the newer customers
|
|
23442
23602
|
// have moved on to UpdateEmbedParams supported clusters
|
|
@@ -23447,17 +23607,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
|
|
|
23447
23607
|
this.preRenderParamsApplied = new Promise((resolve) => {
|
|
23448
23608
|
this.executeAfterEmbedContainerLoaded(async () => {
|
|
23449
23609
|
try {
|
|
23450
|
-
|
|
23451
|
-
this.trigger(exports.HostEvent.UpdateEmbedParams, params);
|
|
23452
|
-
}
|
|
23453
|
-
catch (error) {
|
|
23454
|
-
logger$3.error(ERROR_MESSAGE.UPDATE_PARAMS_FAILED, error);
|
|
23455
|
-
this.handleError({
|
|
23456
|
-
errorType: ErrorDetailsTypes.API,
|
|
23457
|
-
message: (error === null || error === void 0 ? void 0 : error.message) || ERROR_MESSAGE.UPDATE_PARAMS_FAILED,
|
|
23458
|
-
code: EmbedErrorCodes.UPDATE_PARAMS_FAILED,
|
|
23459
|
-
error: (error === null || error === void 0 ? void 0 : error.message) || error,
|
|
23460
|
-
});
|
|
23610
|
+
await this.triggerUpdateEmbedParams();
|
|
23461
23611
|
}
|
|
23462
23612
|
finally {
|
|
23463
23613
|
setTimeout(resolve, UPDATE_EMBED_PARAMS_SETTLE_MS);
|
|
@@ -23492,8 +23642,9 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
|
|
|
23492
23642
|
if (this.hostElement) {
|
|
23493
23643
|
this.insertedDomEl = this.createPreRenderPlaceholder();
|
|
23494
23644
|
if (this.viewConfig.fullHeight) {
|
|
23495
|
-
// If fullHeight has already sized the wrapper, seed the
|
|
23496
|
-
// with the same height so syncPreRenderStyle gets
|
|
23645
|
+
// If fullHeight has already sized the wrapper, seed the
|
|
23646
|
+
// placeholder with the same height so syncPreRenderStyle gets
|
|
23647
|
+
// an accurate rect.
|
|
23497
23648
|
const existingHeight = this.preRenderWrapper.style.height;
|
|
23498
23649
|
if (existingHeight) {
|
|
23499
23650
|
this.insertedDomEl.style.height = existingHeight;
|
|
@@ -23501,12 +23652,13 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
|
|
|
23501
23652
|
}
|
|
23502
23653
|
const placeHolderId = this.getPreRenderIds().placeHolder;
|
|
23503
23654
|
// Remove any stale placeholder from a previous cycle. It is located
|
|
23504
|
-
// via a subtree-wide querySelector, so it may be nested deeper
|
|
23505
|
-
// direct child (E.g.: with fullHeight the host app can wrap
|
|
23506
|
-
// Element.remove() — which detaches from whatever the real
|
|
23507
|
-
// rather than hostElement.removeChild(), which throws
|
|
23508
|
-
// when the match is not a direct child. Mirrors the
|
|
23509
|
-
// cleanup in
|
|
23655
|
+
// via a subtree-wide querySelector, so it may be nested deeper
|
|
23656
|
+
// than a direct child (E.g.: with fullHeight the host app can wrap
|
|
23657
|
+
// it). Use Element.remove() — which detaches from whatever the real
|
|
23658
|
+
// parent is — rather than hostElement.removeChild(), which throws
|
|
23659
|
+
// NotFoundError when the match is not a direct child. Mirrors the
|
|
23660
|
+
// wrapper/child cleanup in
|
|
23661
|
+
// createPreRenderWrapper()/createPreRenderChild().
|
|
23510
23662
|
(_a = this.hostElement.querySelector(`#${placeHolderId}`)) === null || _a === void 0 ? void 0 : _a.remove();
|
|
23511
23663
|
this.hostElement.appendChild(this.insertedDomEl);
|
|
23512
23664
|
this.syncPreRenderStyle();
|
|
@@ -23538,7 +23690,8 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
|
|
|
23538
23690
|
if (this.iFrame) {
|
|
23539
23691
|
this.setupFullscreenChangeHandler();
|
|
23540
23692
|
}
|
|
23541
|
-
// Last, so everything above still sees the instance being taken over
|
|
23693
|
+
// Last, so everything above still sees the instance being taken over
|
|
23694
|
+
// from.
|
|
23542
23695
|
this.takeOverPreRender();
|
|
23543
23696
|
return this;
|
|
23544
23697
|
}
|
|
@@ -23793,7 +23946,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
|
|
|
23793
23946
|
* @param dataSources A list of data source GUIDs
|
|
23794
23947
|
*/
|
|
23795
23948
|
getIFrameSrc() {
|
|
23796
|
-
const queryParams = this.
|
|
23949
|
+
const queryParams = this.getUrlQueryParamsObject();
|
|
23797
23950
|
const path = 'search-bar-embed';
|
|
23798
23951
|
let query = '';
|
|
23799
23952
|
const queryParamsString = getQueryParamString(queryParams, true);
|
|
@@ -23980,7 +24133,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
|
|
|
23980
24133
|
}
|
|
23981
24134
|
getEmbedParams() {
|
|
23982
24135
|
const { runtimeParameters, runtimeFilters, excludeRuntimeParametersfromURL, excludeRuntimeFiltersfromURL, } = this.viewConfig;
|
|
23983
|
-
const queryParams = this.
|
|
24136
|
+
const queryParams = this.getUrlQueryParamsObject();
|
|
23984
24137
|
let query = '';
|
|
23985
24138
|
const queryParamsString = getQueryParamString(queryParams, true);
|
|
23986
24139
|
if (queryParamsString) {
|
|
@@ -24364,6 +24517,18 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
|
|
|
24364
24517
|
starterPrompts,
|
|
24365
24518
|
},
|
|
24366
24519
|
};
|
|
24520
|
+
}
|
|
24521
|
+
function buildSpotterAnalystAppInitData(initData, viewConfig) {
|
|
24522
|
+
const { spotterAnalystConfig } = viewConfig;
|
|
24523
|
+
if (!(spotterAnalystConfig === null || spotterAnalystConfig === void 0 ? void 0 : spotterAnalystConfig.analystId))
|
|
24524
|
+
return initData;
|
|
24525
|
+
return {
|
|
24526
|
+
...initData,
|
|
24527
|
+
embedParams: {
|
|
24528
|
+
...(initData.embedParams || {}),
|
|
24529
|
+
spotterAnalystConfig,
|
|
24530
|
+
},
|
|
24531
|
+
};
|
|
24367
24532
|
}
|
|
24368
24533
|
|
|
24369
24534
|
function buildSpotterVizAppInitData(initData, viewConfig) {
|
|
@@ -24561,7 +24726,7 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
|
|
|
24561
24726
|
* embedded Liveboard or visualization.
|
|
24562
24727
|
*/
|
|
24563
24728
|
getEmbedParams() {
|
|
24564
|
-
const params = this.
|
|
24729
|
+
const params = this.getUrlQueryParamsObject();
|
|
24565
24730
|
return getQueryParamString(params, true);
|
|
24566
24731
|
}
|
|
24567
24732
|
getEmbedParamsObject() {
|
|
@@ -24957,8 +25122,9 @@ query GetEurekaVizSnapshots(
|
|
|
24957
25122
|
* @summary Liveboard & visualization embed
|
|
24958
25123
|
* @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
|
|
24959
25124
|
*/
|
|
24960
|
-
// Home unmounts the liveboard container, which is how its state gets cleared.
|
|
24961
|
-
// settle window gives the container time to do it before we ask for the
|
|
25125
|
+
// Home unmounts the liveboard container, which is how its state gets cleared.
|
|
25126
|
+
// The settle window gives the container time to do it before we ask for the
|
|
25127
|
+
// liveboard back.
|
|
24962
25128
|
const HOME_ROUTE = 'home';
|
|
24963
25129
|
const HOME_SETTLE_MS = 200;
|
|
24964
25130
|
/**
|
|
@@ -25018,7 +25184,7 @@ query GetEurekaVizSnapshots(
|
|
|
25018
25184
|
* embedded Liveboard or visualization.
|
|
25019
25185
|
*/
|
|
25020
25186
|
getEmbedParams() {
|
|
25021
|
-
const params = this.
|
|
25187
|
+
const params = this.getUrlQueryParamsObject();
|
|
25022
25188
|
const queryParams = getQueryParamString(params, true);
|
|
25023
25189
|
return queryParams;
|
|
25024
25190
|
}
|
|
@@ -25256,21 +25422,24 @@ query GetEurekaVizSnapshots(
|
|
|
25256
25422
|
}
|
|
25257
25423
|
beforePrerenderVisible() {
|
|
25258
25424
|
super.beforePrerenderVisible();
|
|
25259
|
-
// Captured before showPreRender() hands the wrapper over to this
|
|
25260
|
-
// Itself means a hide/show, not a hand-over, so there is
|
|
25425
|
+
// Captured before showPreRender() hands the wrapper over to this
|
|
25426
|
+
// instance. Itself means a hide/show, not a hand-over, so there is
|
|
25427
|
+
// nothing stale to clear.
|
|
25261
25428
|
const previous = this.getPreRenderObj();
|
|
25262
25429
|
const showing = previous === this ? undefined : previous === null || previous === void 0 ? void 0 : previous.currentLiveboardState;
|
|
25263
25430
|
this.executeAfterEmbedContainerLoaded(async () => {
|
|
25264
|
-
// Without this the params callback suspends on its await and
|
|
25265
|
-
// goes out first, so the container loads with the previous
|
|
25431
|
+
// Without this the params callback suspends on its await and
|
|
25432
|
+
// Navigate goes out first, so the container loads with the previous
|
|
25433
|
+
// config's filters.
|
|
25266
25434
|
await this.preRenderParamsApplied;
|
|
25267
25435
|
if (this.isShowingLiveboardRoute(showing)) {
|
|
25268
|
-
// Navigate to the route we are already on is a no-op, so the
|
|
25269
|
-
// keeps its state. Home unmounts the container, which
|
|
25436
|
+
// Navigate to the route we are already on is a no-op, so the
|
|
25437
|
+
// liveboard keeps its state. Home unmounts the container, which
|
|
25438
|
+
// clears it.
|
|
25270
25439
|
this.trigger(exports.HostEvent.Navigate, HOME_ROUTE)
|
|
25271
25440
|
.catch((error) => logger$3.warn('Could not route via home', error));
|
|
25272
|
-
// Not awaited above: the container never acks Navigate, so
|
|
25273
|
-
// only settles on the 30s trigger timeout.
|
|
25441
|
+
// Not awaited above: the container never acks Navigate, so
|
|
25442
|
+
// that promise only settles on the 30s trigger timeout.
|
|
25274
25443
|
await new Promise((resolve) => {
|
|
25275
25444
|
setTimeout(resolve, HOME_SETTLE_MS);
|
|
25276
25445
|
});
|
|
@@ -25284,8 +25453,9 @@ query GetEurekaVizSnapshots(
|
|
|
25284
25453
|
};
|
|
25285
25454
|
});
|
|
25286
25455
|
}
|
|
25287
|
-
// The whole route, not just the liveboard id: the path is built from the
|
|
25288
|
-
// and view too, so a same-liveboard show onto another tab is a
|
|
25456
|
+
// The whole route, not just the liveboard id: the path is built from the
|
|
25457
|
+
// viz, tab and view too, so a same-liveboard show onto another tab is a
|
|
25458
|
+
// real navigation.
|
|
25289
25459
|
isShowingLiveboardRoute(showing) {
|
|
25290
25460
|
if (!(showing === null || showing === void 0 ? void 0 : showing.liveboardId))
|
|
25291
25461
|
return false;
|
|
@@ -25787,7 +25957,7 @@ query SendMessage($params: Input_convassist_SendMessageRequest) {
|
|
|
25787
25957
|
getIframeSrc() {
|
|
25788
25958
|
const { sessionId, genNo, acSessionId, acGenNo, convId, messageId, } = this.viewConfig;
|
|
25789
25959
|
const path = 'conv-assist-answer';
|
|
25790
|
-
const queryParams = this.
|
|
25960
|
+
const queryParams = this.getUrlQueryParamsObject();
|
|
25791
25961
|
let query = '';
|
|
25792
25962
|
const queryParamsString = getQueryParamString(queryParams, true);
|
|
25793
25963
|
if (queryParamsString) {
|
|
@@ -25950,10 +26120,11 @@ query SendMessage($params: Input_convassist_SendMessageRequest) {
|
|
|
25950
26120
|
const defaultAppInitData = await super.getAppInitData();
|
|
25951
26121
|
const sidebarInitData = buildSpotterSidebarAppInitData(defaultAppInitData, this.viewConfig, this.handleError.bind(this));
|
|
25952
26122
|
const shareInitData = buildSpotterShareConversationAppInitData(sidebarInitData, this.viewConfig);
|
|
25953
|
-
|
|
26123
|
+
const starterPromptsInitData = buildStarterPromptsAppInitData(shareInitData, this.viewConfig);
|
|
26124
|
+
return buildSpotterAnalystAppInitData(starterPromptsInitData, this.viewConfig);
|
|
25954
26125
|
}
|
|
25955
26126
|
getEmbedParamsObject() {
|
|
25956
|
-
const { searchOptions, disableSourceSelection, hideSourceSelection, dataPanelV2, updatedSpotterExperience, showSpotterLimitations, hideSampleQuestions, runtimeFilters, excludeRuntimeFiltersfromURL, runtimeParameters, excludeRuntimeParametersfromURL, updatedSpotterChatPrompt, showSpotterRadiance, defaultQueryMode, enableStopAnswerGenerationEmbed, spotterChatConfig,
|
|
26127
|
+
const { searchOptions, disableSourceSelection, hideSourceSelection, dataPanelV2, updatedSpotterExperience, showSpotterLimitations, hideSampleQuestions, runtimeFilters, excludeRuntimeFiltersfromURL, runtimeParameters, excludeRuntimeParametersfromURL, updatedSpotterChatPrompt, showSpotterRadiance, defaultQueryMode, enableStopAnswerGenerationEmbed, spotterChatConfig, } = this.viewConfig;
|
|
25957
26128
|
const queryParams = this.getBaseQueryParams();
|
|
25958
26129
|
queryParams[Param.SpotterEnabled] = true;
|
|
25959
26130
|
// Boolean params
|
|
@@ -25966,7 +26137,6 @@ query SendMessage($params: Input_convassist_SendMessageRequest) {
|
|
|
25966
26137
|
setParamIfDefined(queryParams, Param.ShowSpotterRadiance, showSpotterRadiance, true);
|
|
25967
26138
|
setParamIfDefined(queryParams, Param.DefaultQueryMode, defaultQueryMode);
|
|
25968
26139
|
setParamIfDefined(queryParams, Param.EnableStopAnswerGenerationEmbed, enableStopAnswerGenerationEmbed, true);
|
|
25969
|
-
setParamIfDefined(queryParams, Param.AnalystId, spotterAnalystConfig === null || spotterAnalystConfig === void 0 ? void 0 : spotterAnalystConfig.analystId);
|
|
25970
26140
|
// Handle spotterChatConfig params
|
|
25971
26141
|
if (spotterChatConfig) {
|
|
25972
26142
|
const { hideToolResponseCardBranding, toolResponseCardBrandingLabel, spotterFileUploadEnabled, spotterFileUploadFileTypes, enableStarterPrompts, } = spotterChatConfig;
|
|
@@ -25990,7 +26160,7 @@ query SendMessage($params: Input_convassist_SendMessageRequest) {
|
|
|
25990
26160
|
const path = sharedConversationId
|
|
25991
26161
|
? `insights/conv-assist/s/${encodeURIComponent(sharedConversationId)}`
|
|
25992
26162
|
: 'insights/conv-assist';
|
|
25993
|
-
const queryParams = this.
|
|
26163
|
+
const queryParams = this.getUrlQueryParamsObject();
|
|
25994
26164
|
let query = '';
|
|
25995
26165
|
const queryParamsString = getQueryParamString(queryParams, true);
|
|
25996
26166
|
if (queryParamsString) {
|