@thoughtspot/visual-embed-sdk 1.39.2-alpha.1 → 1.39.2-alpha.3
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.spec.js +9 -0
- package/cjs/src/config.spec.js.map +1 -1
- package/cjs/src/embed/app.d.ts +75 -15
- package/cjs/src/embed/app.d.ts.map +1 -1
- package/cjs/src/embed/app.js +68 -9
- package/cjs/src/embed/app.js.map +1 -1
- package/cjs/src/embed/app.spec.js +360 -7
- package/cjs/src/embed/app.spec.js.map +1 -1
- package/cjs/src/embed/bodyless-conversation.d.ts +19 -7
- package/cjs/src/embed/bodyless-conversation.d.ts.map +1 -1
- package/cjs/src/embed/bodyless-conversation.js +24 -4
- package/cjs/src/embed/bodyless-conversation.js.map +1 -1
- package/cjs/src/embed/bodyless-conversation.spec.js +8 -190
- package/cjs/src/embed/bodyless-conversation.spec.js.map +1 -1
- package/cjs/src/embed/conversation.d.ts +2 -60
- package/cjs/src/embed/conversation.d.ts.map +1 -1
- package/cjs/src/embed/conversation.js +1 -9
- package/cjs/src/embed/conversation.js.map +1 -1
- package/cjs/src/embed/conversation.spec.js +0 -102
- package/cjs/src/embed/conversation.spec.js.map +1 -1
- package/cjs/src/embed/liveboard.d.ts +56 -0
- package/cjs/src/embed/liveboard.d.ts.map +1 -1
- package/cjs/src/embed/liveboard.js +46 -0
- package/cjs/src/embed/liveboard.js.map +1 -1
- package/cjs/src/embed/liveboard.spec.js +206 -0
- package/cjs/src/embed/liveboard.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 +2 -2
- package/cjs/src/index.d.ts.map +1 -1
- package/cjs/src/index.js +2 -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 +3 -2
- package/cjs/src/react/all-types-export.js.map +1 -1
- package/cjs/src/react/index.d.ts +71 -20
- package/cjs/src/react/index.d.ts.map +1 -1
- package/cjs/src/react/index.js +79 -42
- package/cjs/src/react/index.js.map +1 -1
- package/cjs/src/react/index.spec.js +436 -100
- package/cjs/src/react/index.spec.js.map +1 -1
- package/cjs/src/types.d.ts +46 -4
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +28 -0
- package/cjs/src/types.js.map +1 -1
- package/cjs/src/utils/graphql/nlsService/conversation-service.d.ts.map +1 -1
- package/cjs/src/utils/graphql/nlsService/conversation-service.js +2 -0
- package/cjs/src/utils/graphql/nlsService/conversation-service.js.map +1 -1
- package/cjs/src/utils/processTrigger.js +2 -1
- package/cjs/src/utils/processTrigger.js.map +1 -1
- package/cjs/src/utils.d.ts +6 -0
- package/cjs/src/utils.d.ts.map +1 -1
- package/cjs/src/utils.js +23 -3
- package/cjs/src/utils.js.map +1 -1
- package/cjs/src/utils.spec.js +237 -1
- package/cjs/src/utils.spec.js.map +1 -1
- package/dist/index-D1pyb7RG.js +7371 -0
- package/dist/index-e3Uw3YFO.js +7371 -0
- package/dist/src/embed/app.d.ts +75 -15
- package/dist/src/embed/app.d.ts.map +1 -1
- package/dist/src/embed/bodyless-conversation.d.ts +19 -7
- package/dist/src/embed/bodyless-conversation.d.ts.map +1 -1
- package/dist/src/embed/conversation.d.ts +2 -60
- package/dist/src/embed/conversation.d.ts.map +1 -1
- package/dist/src/embed/liveboard.d.ts +56 -0
- package/dist/src/embed/liveboard.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 +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/react/all-types-export.d.ts +1 -1
- package/dist/src/react/all-types-export.d.ts.map +1 -1
- package/dist/src/react/index.d.ts +71 -20
- package/dist/src/react/index.d.ts.map +1 -1
- package/dist/src/types.d.ts +46 -4
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/graphql/nlsService/conversation-service.d.ts.map +1 -1
- package/dist/src/utils.d.ts +6 -0
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/tsembed-react.es.js +276 -74
- package/dist/tsembed-react.js +276 -72
- package/dist/tsembed.es.js +194 -27
- package/dist/tsembed.js +192 -25
- package/dist/visual-embed-sdk-react-full.d.ts +246 -105
- package/dist/visual-embed-sdk-react.d.ts +246 -105
- package/dist/visual-embed-sdk.d.ts +176 -86
- package/lib/package.json +1 -1
- package/lib/src/config.spec.js +9 -0
- package/lib/src/config.spec.js.map +1 -1
- package/lib/src/embed/app.d.ts +75 -15
- package/lib/src/embed/app.d.ts.map +1 -1
- package/lib/src/embed/app.js +68 -9
- package/lib/src/embed/app.js.map +1 -1
- package/lib/src/embed/app.spec.js +361 -8
- package/lib/src/embed/app.spec.js.map +1 -1
- package/lib/src/embed/bodyless-conversation.d.ts +19 -7
- package/lib/src/embed/bodyless-conversation.d.ts.map +1 -1
- package/lib/src/embed/bodyless-conversation.js +23 -4
- package/lib/src/embed/bodyless-conversation.js.map +1 -1
- package/lib/src/embed/bodyless-conversation.spec.js +9 -191
- package/lib/src/embed/bodyless-conversation.spec.js.map +1 -1
- package/lib/src/embed/conversation.d.ts +2 -60
- package/lib/src/embed/conversation.d.ts.map +1 -1
- package/lib/src/embed/conversation.js +2 -10
- package/lib/src/embed/conversation.js.map +1 -1
- package/lib/src/embed/conversation.spec.js +2 -104
- package/lib/src/embed/conversation.spec.js.map +1 -1
- package/lib/src/embed/liveboard.d.ts +56 -0
- package/lib/src/embed/liveboard.d.ts.map +1 -1
- package/lib/src/embed/liveboard.js +47 -1
- package/lib/src/embed/liveboard.js.map +1 -1
- package/lib/src/embed/liveboard.spec.js +206 -0
- package/lib/src/embed/liveboard.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 +2 -2
- package/lib/src/index.d.ts.map +1 -1
- package/lib/src/index.js +2 -2
- package/lib/src/index.js.map +1 -1
- package/lib/src/react/all-types-export.d.ts +1 -1
- package/lib/src/react/all-types-export.d.ts.map +1 -1
- package/lib/src/react/all-types-export.js +1 -1
- package/lib/src/react/all-types-export.js.map +1 -1
- package/lib/src/react/index.d.ts +71 -20
- package/lib/src/react/index.d.ts.map +1 -1
- package/lib/src/react/index.js +79 -43
- package/lib/src/react/index.js.map +1 -1
- package/lib/src/react/index.spec.js +439 -103
- package/lib/src/react/index.spec.js.map +1 -1
- package/lib/src/types.d.ts +46 -4
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +28 -0
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils/graphql/nlsService/conversation-service.d.ts.map +1 -1
- package/lib/src/utils/graphql/nlsService/conversation-service.js +2 -0
- package/lib/src/utils/graphql/nlsService/conversation-service.js.map +1 -1
- package/lib/src/utils/processTrigger.js +2 -1
- package/lib/src/utils/processTrigger.js.map +1 -1
- package/lib/src/utils.d.ts +6 -0
- package/lib/src/utils.d.ts.map +1 -1
- package/lib/src/utils.js +21 -2
- package/lib/src/utils.js.map +1 -1
- package/lib/src/utils.spec.js +238 -2
- package/lib/src/utils.spec.js.map +1 -1
- package/lib/src/visual-embed-sdk.d.ts +178 -88
- package/package.json +1 -1
- package/src/config.spec.ts +11 -0
- package/src/embed/app.spec.ts +451 -8
- package/src/embed/app.ts +131 -27
- package/src/embed/bodyless-conversation.spec.ts +9 -203
- package/src/embed/bodyless-conversation.ts +24 -10
- package/src/embed/conversation.spec.ts +5 -131
- package/src/embed/conversation.ts +10 -82
- package/src/embed/liveboard.spec.ts +254 -1
- package/src/embed/liveboard.ts +96 -5
- package/src/errors.ts +1 -0
- package/src/index.ts +2 -0
- package/src/react/all-types-export.ts +2 -1
- package/src/react/index.spec.tsx +556 -157
- package/src/react/index.tsx +117 -51
- package/src/types.ts +42 -0
- package/src/utils/graphql/nlsService/conversation-service.ts +2 -0
- package/src/utils/processTrigger.ts +1 -1
- package/src/utils.spec.ts +279 -2
- package/src/utils.ts +28 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../../src/embed/conversation.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../../src/embed/conversation.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAkB,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAgH/C;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,YAAa,SAAQ,OAAO;IACrC,YAAY,SAAsB,EAAY,UAAkC;QAC5E,UAAU,CAAC,kBAAkB,GAAG,cAAc,CAAC;QAC/C,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAFa,eAAU,GAAV,UAAU,CAAwB;IAGhF,CAAC;IAEM,YAAY;QACf,MAAM,EACF,WAAW,EACX,aAAa,EACb,sBAAsB,EACtB,mBAAmB,EACnB,WAAW,EACX,sBAAsB,EACtB,mBAAmB,GACtB,GAAG,IAAI,CAAC,UAAU,CAAC;QACpB,MAAM,IAAI,GAAG,sBAAsB,CAAC;QACpC,IAAI,CAAC,WAAW,EAAE;YACd,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,oCAAoC,CAAC,CAAC;SACxE;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC9C,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;QACzC,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,EAAE;YACtC,WAAW,CAAC,KAAK,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,sBAAsB,CAAC;SACxE;QACD,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,EAAE;YACnC,WAAW,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,mBAAmB,CAAC;SAClE;QAED,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE;YAC3B,WAAW,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC;SACzD;QAED,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,EAAE;YACtC,WAAW,CAAC,KAAK,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,sBAAsB,CAAC;SACxE;QAED,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,EAAE;YACnC,WAAW,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,mBAAmB,CAAC;SAClE;QAED,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACjE,IAAI,iBAAiB,EAAE;YACnB,KAAK,GAAG,IAAI,iBAAiB,EAAE,CAAC;SACnC;QACD,MAAM,gBAAgB,GAAG,IAAI,CAAC,2BAA2B,CAAC;YACtD,SAAS,EAAE,WAAW;YACtB,KAAK,EAAE,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,WAAW,KAAI,EAAE;SAC1C,CAAC,CAAC;QAEH,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,UAAU,IAAI,GAAG,gBAAgB,EAAE,CAAC;IAC9E,CAAC;IAEM,KAAK,CAAC,MAAM;QACf,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC;QAErB,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAChC,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,iBAAkB,SAAQ,YAAY;IAC/C,YAAY,SAAsB,EAAY,UAAkC;QAC5E,UAAU,CAAC,kBAAkB,GAAG,cAAc,CAAC;QAC/C,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAFa,eAAU,GAAV,UAAU,CAAwB;IAGhF,CAAC;CACJ"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { SpotterEmbed,
|
|
1
|
+
import { SpotterEmbed, } from './conversation';
|
|
2
2
|
import * as authInstance from '../auth';
|
|
3
3
|
import { Action, init } from '../index';
|
|
4
|
-
import { AuthType, Param
|
|
4
|
+
import { AuthType, Param } from '../types';
|
|
5
5
|
import { getDocumentBody, getIFrameSrc, getRootEl, defaultParamsWithoutHiddenActions as defaultParams, expectUrlMatchesWithParams, } from '../test/test-utils';
|
|
6
6
|
import { ERROR_MESSAGE } from '../errors';
|
|
7
7
|
const thoughtSpotHost = 'tshost';
|
|
@@ -126,107 +126,5 @@ describe('ConversationEmbed', () => {
|
|
|
126
126
|
await conversationEmbed.render();
|
|
127
127
|
expectUrlMatchesWithParams(getIFrameSrc(), `http://${thoughtSpotHost}/v2/?${defaultParams}&${Param.DisableActions}=[%22${Action.InConversationTraining}%22]&${Param.DisableActionReason}=${disabledReason}&isSpotterExperienceEnabled=true&enableDataPanelV2=true#/embed/insights/conv-assist?worksheet=worksheetId&query=searchQuery`);
|
|
128
128
|
});
|
|
129
|
-
it('should render the conversation embed with runtime filters', async () => {
|
|
130
|
-
const viewConfig = {
|
|
131
|
-
worksheetId: 'worksheetId',
|
|
132
|
-
searchOptions: {
|
|
133
|
-
searchQuery: 'searchQuery',
|
|
134
|
-
},
|
|
135
|
-
runtimeFilters: [
|
|
136
|
-
{
|
|
137
|
-
columnName: 'revenue',
|
|
138
|
-
operator: RuntimeFilterOp.EQ,
|
|
139
|
-
values: [1000],
|
|
140
|
-
},
|
|
141
|
-
],
|
|
142
|
-
};
|
|
143
|
-
const conversationEmbed = new SpotterEmbed(getRootEl(), viewConfig);
|
|
144
|
-
await conversationEmbed.render();
|
|
145
|
-
expectUrlMatchesWithParams(getIFrameSrc(), `http://${thoughtSpotHost}/v2/?${defaultParams}&isSpotterExperienceEnabled=true&col1=revenue&op1=EQ&val1=1000#/embed/insights/conv-assist?worksheet=worksheetId&query=searchQuery`);
|
|
146
|
-
});
|
|
147
|
-
it('should render the conversation embed with runtime parameters', async () => {
|
|
148
|
-
const viewConfig = {
|
|
149
|
-
worksheetId: 'worksheetId',
|
|
150
|
-
searchOptions: {
|
|
151
|
-
searchQuery: 'searchQuery',
|
|
152
|
-
},
|
|
153
|
-
runtimeParameters: [
|
|
154
|
-
{
|
|
155
|
-
name: 'Date Range',
|
|
156
|
-
value: '30',
|
|
157
|
-
},
|
|
158
|
-
],
|
|
159
|
-
};
|
|
160
|
-
const conversationEmbed = new SpotterEmbed(getRootEl(), viewConfig);
|
|
161
|
-
await conversationEmbed.render();
|
|
162
|
-
expectUrlMatchesWithParams(getIFrameSrc(), `http://${thoughtSpotHost}/v2/?${defaultParams}&isSpotterExperienceEnabled=true¶m1=Date%20Range¶mVal1=30#/embed/insights/conv-assist?worksheet=worksheetId&query=searchQuery`);
|
|
163
|
-
});
|
|
164
|
-
it('should render the conversation embed with runtime parameters excluded from URL', async () => {
|
|
165
|
-
const viewConfig = {
|
|
166
|
-
worksheetId: 'worksheetId',
|
|
167
|
-
searchOptions: {
|
|
168
|
-
searchQuery: 'searchQuery',
|
|
169
|
-
},
|
|
170
|
-
runtimeParameters: [
|
|
171
|
-
{
|
|
172
|
-
name: 'Date Range',
|
|
173
|
-
value: '30',
|
|
174
|
-
},
|
|
175
|
-
{
|
|
176
|
-
name: 'Region',
|
|
177
|
-
value: 'North America',
|
|
178
|
-
},
|
|
179
|
-
],
|
|
180
|
-
excludeRuntimeParametersfromURL: true,
|
|
181
|
-
};
|
|
182
|
-
const conversationEmbed = new SpotterEmbed(getRootEl(), viewConfig);
|
|
183
|
-
await conversationEmbed.render();
|
|
184
|
-
expectUrlMatchesWithParams(getIFrameSrc(), `http://${thoughtSpotHost}/v2/?${defaultParams}&isSpotterExperienceEnabled=true#/embed/insights/conv-assist?worksheet=worksheetId&query=searchQuery`);
|
|
185
|
-
});
|
|
186
|
-
it('should render the conversation embed with both runtime filters and parameters', async () => {
|
|
187
|
-
const viewConfig = {
|
|
188
|
-
worksheetId: 'worksheetId',
|
|
189
|
-
searchOptions: {
|
|
190
|
-
searchQuery: 'searchQuery',
|
|
191
|
-
},
|
|
192
|
-
runtimeParameters: [
|
|
193
|
-
{
|
|
194
|
-
name: 'Date Range',
|
|
195
|
-
value: '30',
|
|
196
|
-
},
|
|
197
|
-
],
|
|
198
|
-
runtimeFilters: [
|
|
199
|
-
{
|
|
200
|
-
columnName: 'revenue',
|
|
201
|
-
operator: RuntimeFilterOp.EQ,
|
|
202
|
-
values: [1000],
|
|
203
|
-
},
|
|
204
|
-
],
|
|
205
|
-
excludeRuntimeParametersfromURL: false,
|
|
206
|
-
excludeRuntimeFiltersfromURL: false,
|
|
207
|
-
};
|
|
208
|
-
const conversationEmbed = new SpotterEmbed(getRootEl(), viewConfig);
|
|
209
|
-
await conversationEmbed.render();
|
|
210
|
-
expectUrlMatchesWithParams(getIFrameSrc(), `http://${thoughtSpotHost}/v2/?${defaultParams}&isSpotterExperienceEnabled=true&col1=revenue&op1=EQ&val1=1000¶m1=Date%20Range¶mVal1=30#/embed/insights/conv-assist?worksheet=worksheetId&query=searchQuery`);
|
|
211
|
-
});
|
|
212
|
-
it('should ensure deprecated ConversationEmbed class maintains same functionality as SpotterEmbed', async () => {
|
|
213
|
-
const viewConfig = {
|
|
214
|
-
worksheetId: 'worksheetId',
|
|
215
|
-
searchOptions: {
|
|
216
|
-
searchQuery: 'searchQuery',
|
|
217
|
-
},
|
|
218
|
-
runtimeParameters: [
|
|
219
|
-
{
|
|
220
|
-
name: 'Date Range',
|
|
221
|
-
value: '30',
|
|
222
|
-
},
|
|
223
|
-
],
|
|
224
|
-
};
|
|
225
|
-
// Test with deprecated class
|
|
226
|
-
const conversationEmbed = new ConversationEmbed(getRootEl(), viewConfig);
|
|
227
|
-
await conversationEmbed.render();
|
|
228
|
-
// Verify it generates the same URL structure as SpotterEmbed
|
|
229
|
-
expectUrlMatchesWithParams(getIFrameSrc(), `http://${thoughtSpotHost}/v2/?${defaultParams}&isSpotterExperienceEnabled=true¶m1=Date%20Range¶mVal1=30#/embed/insights/conv-assist?worksheet=worksheetId&query=searchQuery`);
|
|
230
|
-
});
|
|
231
129
|
});
|
|
232
130
|
//# sourceMappingURL=conversation.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation.spec.js","sourceRoot":"","sources":["../../../src/embed/conversation.spec.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"conversation.spec.js","sourceRoot":"","sources":["../../../src/embed/conversation.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -303,6 +303,46 @@ export interface LiveboardViewConfig extends BaseViewConfig, LiveboardOtherViewC
|
|
|
303
303
|
* ```
|
|
304
304
|
*/
|
|
305
305
|
isLiveboardStylingAndGroupingEnabled?: boolean;
|
|
306
|
+
/**
|
|
307
|
+
* This flag is used to enable the full height lazy load data.
|
|
308
|
+
*
|
|
309
|
+
* @example
|
|
310
|
+
* ```js
|
|
311
|
+
* const embed = new LiveboardEmbed('#embed-container', {
|
|
312
|
+
* // ...other options
|
|
313
|
+
* fullHeight: true,
|
|
314
|
+
* lazyLoadingForFullHeight: true,
|
|
315
|
+
* })
|
|
316
|
+
* ```
|
|
317
|
+
*
|
|
318
|
+
* @type {boolean}
|
|
319
|
+
* @default false
|
|
320
|
+
* @version SDK: 1.40.0 | ThoughtSpot:10.12.0.cl
|
|
321
|
+
*/
|
|
322
|
+
lazyLoadingForFullHeight?: boolean;
|
|
323
|
+
/**
|
|
324
|
+
* The margin to be used for lazy loading.
|
|
325
|
+
*
|
|
326
|
+
* For example, if the margin is set to '10px',
|
|
327
|
+
* the visualization will be loaded 10px before the its top edge is visible in the
|
|
328
|
+
* viewport.
|
|
329
|
+
*
|
|
330
|
+
* The format is similar to CSS margin.
|
|
331
|
+
*
|
|
332
|
+
* @example
|
|
333
|
+
* ```js
|
|
334
|
+
* const embed = new LiveboardEmbed('#embed-container', {
|
|
335
|
+
* // ...other options
|
|
336
|
+
* fullHeight: true,
|
|
337
|
+
* lazyLoadingForFullHeight: true,
|
|
338
|
+
* // Using 0px, the visualization will be only loaded when its visible in the viewport.
|
|
339
|
+
* lazyLoadingMargin: '0px',
|
|
340
|
+
* })
|
|
341
|
+
* ```
|
|
342
|
+
* @type {string}
|
|
343
|
+
* @version SDK: 1.40.0 | ThoughtSpot:10.12.0.cl
|
|
344
|
+
*/
|
|
345
|
+
lazyLoadingMargin?: string;
|
|
306
346
|
}
|
|
307
347
|
/**
|
|
308
348
|
* Embed a ThoughtSpot Liveboard or visualization. When rendered it already
|
|
@@ -329,6 +369,14 @@ export declare class LiveboardEmbed extends V1Embed {
|
|
|
329
369
|
*/
|
|
330
370
|
protected getEmbedParams(): string;
|
|
331
371
|
private getIframeSuffixSrc;
|
|
372
|
+
private sendFullHeightLazyLoadData;
|
|
373
|
+
/**
|
|
374
|
+
* This is a handler for the RequestVisibleEmbedCoordinates event.
|
|
375
|
+
* It is used to send the visible coordinates data to the host application.
|
|
376
|
+
* @param data The event payload
|
|
377
|
+
* @param responder The responder function
|
|
378
|
+
*/
|
|
379
|
+
private requestVisibleEmbedCoordinatesHandler;
|
|
332
380
|
/**
|
|
333
381
|
* Construct the URL of the embedded ThoughtSpot Liveboard or visualization
|
|
334
382
|
* to be loaded within the iFrame.
|
|
@@ -353,6 +401,14 @@ export declare class LiveboardEmbed extends V1Embed {
|
|
|
353
401
|
* @returns A promise that resolves with the response from the embedded app
|
|
354
402
|
*/
|
|
355
403
|
trigger<HostEventT extends HostEvent, PayloadT>(messageType: HostEventT, data?: TriggerPayload<PayloadT, HostEventT>): Promise<TriggerResponse<PayloadT, HostEventT>>;
|
|
404
|
+
/**
|
|
405
|
+
* Destroys the ThoughtSpot embed, and remove any nodes from the DOM.
|
|
406
|
+
* @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
|
|
407
|
+
*/
|
|
408
|
+
destroy(): void;
|
|
409
|
+
private postRender;
|
|
410
|
+
private registerLazyLoadEvents;
|
|
411
|
+
private unregisterLazyLoadEvents;
|
|
356
412
|
/**
|
|
357
413
|
* Render an embedded ThoughtSpot Liveboard or visualization
|
|
358
414
|
* @param renderOptions An object specifying the Liveboard ID,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"liveboard.d.ts","sourceRoot":"","sources":["../../../src/embed/liveboard.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAKH,WAAW,EACX,SAAS,EACT,+BAA+B,IAAI,wBAAwB,EAC3D,cAAc,EACd,2BAA2B,EAC9B,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAI9E;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,cAAc,EAAE,wBAAwB,EAAE,2BAA2B;IAC9G;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;;;;;;;;;;OAgBG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;;;;OAUG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;;;;;;OAaG;IACH,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC;;;;;;;;;;;;;;;;OAgBG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB;;;OAGG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC;;;;;;;;;;;;;OAaG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;;;;;;;;OAaG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;;;;;;OAYG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;;;;;;;;OAYG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;;;;;;;;;;OAYG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;;;;;;;;;;;;OAiBG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;;;;;;;;;;;;;;;;OAkBG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB;;;;;;;;;;;;;;OAcG;IACH,oCAAoC,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"liveboard.d.ts","sourceRoot":"","sources":["../../../src/embed/liveboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
import { getPreview } from '../utils/graphql/preview-service';
|
|
11
11
|
import { ERROR_MESSAGE } from '../errors';
|
|
12
12
|
import { EmbedEvent, Param, HostEvent, } from '../types';
|
|
13
|
-
import { getQueryParamString, isUndefined } from '../utils';
|
|
13
|
+
import { calculateVisibleElementData, getQueryParamString, isUndefined } from '../utils';
|
|
14
14
|
import { V1Embed } from './ts-embed';
|
|
15
15
|
import { addPreviewStylesIfNotPresent } from '../utils/global-styles';
|
|
16
16
|
import { logger } from '../utils/logger';
|
|
@@ -34,6 +34,21 @@ export class LiveboardEmbed extends V1Embed {
|
|
|
34
34
|
viewConfig.embedComponentType = 'LiveboardEmbed';
|
|
35
35
|
super(domSelector, viewConfig);
|
|
36
36
|
this.defaultHeight = 500;
|
|
37
|
+
this.sendFullHeightLazyLoadData = () => {
|
|
38
|
+
const data = calculateVisibleElementData(this.iFrame);
|
|
39
|
+
this.trigger(HostEvent.VisibleEmbedCoordinates, data);
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* This is a handler for the RequestVisibleEmbedCoordinates event.
|
|
43
|
+
* It is used to send the visible coordinates data to the host application.
|
|
44
|
+
* @param data The event payload
|
|
45
|
+
* @param responder The responder function
|
|
46
|
+
*/
|
|
47
|
+
this.requestVisibleEmbedCoordinatesHandler = (data, responder) => {
|
|
48
|
+
logger.info('Sending RequestVisibleEmbedCoordinates', data);
|
|
49
|
+
const visibleCoordinatesData = calculateVisibleElementData(this.iFrame);
|
|
50
|
+
responder({ type: EmbedEvent.RequestVisibleEmbedCoordinates, data: visibleCoordinatesData });
|
|
51
|
+
};
|
|
37
52
|
/**
|
|
38
53
|
* Set the iframe height as per the computed height received
|
|
39
54
|
* from the ThoughtSpot app.
|
|
@@ -41,6 +56,7 @@ export class LiveboardEmbed extends V1Embed {
|
|
|
41
56
|
*/
|
|
42
57
|
this.updateIFrameHeight = (data) => {
|
|
43
58
|
this.setIFrameHeight(Math.max(data.data, this.defaultHeight));
|
|
59
|
+
this.sendFullHeightLazyLoadData();
|
|
44
60
|
};
|
|
45
61
|
this.embedIframeCenter = (data, responder) => {
|
|
46
62
|
const obj = this.getIframeCenter();
|
|
@@ -74,6 +90,7 @@ export class LiveboardEmbed extends V1Embed {
|
|
|
74
90
|
this.on(EmbedEvent.RouteChange, this.setIframeHeightForNonEmbedLiveboard);
|
|
75
91
|
this.on(EmbedEvent.EmbedHeight, this.updateIFrameHeight);
|
|
76
92
|
this.on(EmbedEvent.EmbedIframeCenter, this.embedIframeCenter);
|
|
93
|
+
this.on(EmbedEvent.RequestVisibleEmbedCoordinates, this.requestVisibleEmbedCoordinatesHandler);
|
|
77
94
|
}
|
|
78
95
|
}
|
|
79
96
|
/**
|
|
@@ -88,6 +105,10 @@ export class LiveboardEmbed extends V1Embed {
|
|
|
88
105
|
|| this.viewConfig.preventPinboardFilterRemoval;
|
|
89
106
|
if (fullHeight === true) {
|
|
90
107
|
params[Param.fullHeight] = true;
|
|
108
|
+
if (this.viewConfig.lazyLoadingForFullHeight) {
|
|
109
|
+
params[Param.IsLazyLoadingForEmbedEnabled] = true;
|
|
110
|
+
params[Param.RootMarginForLazyLoad] = this.viewConfig.lazyLoadingMargin;
|
|
111
|
+
}
|
|
91
112
|
}
|
|
92
113
|
if (defaultHeight) {
|
|
93
114
|
this.defaultHeight = defaultHeight;
|
|
@@ -243,6 +264,30 @@ export class LiveboardEmbed extends V1Embed {
|
|
|
243
264
|
}
|
|
244
265
|
return super.trigger(messageType, dataWithVizId);
|
|
245
266
|
}
|
|
267
|
+
/**
|
|
268
|
+
* Destroys the ThoughtSpot embed, and remove any nodes from the DOM.
|
|
269
|
+
* @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
|
|
270
|
+
*/
|
|
271
|
+
destroy() {
|
|
272
|
+
super.destroy();
|
|
273
|
+
this.unregisterLazyLoadEvents();
|
|
274
|
+
}
|
|
275
|
+
postRender() {
|
|
276
|
+
this.registerLazyLoadEvents();
|
|
277
|
+
}
|
|
278
|
+
registerLazyLoadEvents() {
|
|
279
|
+
if (this.viewConfig.fullHeight && this.viewConfig.lazyLoadingForFullHeight) {
|
|
280
|
+
// TODO: Use passive: true, install modernizr to check for passive
|
|
281
|
+
window.addEventListener('resize', this.sendFullHeightLazyLoadData);
|
|
282
|
+
window.addEventListener('scroll', this.sendFullHeightLazyLoadData, true);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
unregisterLazyLoadEvents() {
|
|
286
|
+
if (this.viewConfig.fullHeight && this.viewConfig.lazyLoadingForFullHeight) {
|
|
287
|
+
window.removeEventListener('resize', this.sendFullHeightLazyLoadData);
|
|
288
|
+
window.removeEventListener('scroll', this.sendFullHeightLazyLoadData);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
246
291
|
/**
|
|
247
292
|
* Render an embedded ThoughtSpot Liveboard or visualization
|
|
248
293
|
* @param renderOptions An object specifying the Liveboard ID,
|
|
@@ -253,6 +298,7 @@ export class LiveboardEmbed extends V1Embed {
|
|
|
253
298
|
const src = this.getIFrameSrc();
|
|
254
299
|
await this.renderV1Embed(src);
|
|
255
300
|
this.showPreviewLoader();
|
|
301
|
+
this.postRender();
|
|
256
302
|
return this;
|
|
257
303
|
}
|
|
258
304
|
navigateToLiveboard(liveboardId, vizId, activeTabId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"liveboard.js","sourceRoot":"","sources":["../../../src/embed/liveboard.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EACH,UAAU,EAEV,KAAK,EAGL,SAAS,GAIZ,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"liveboard.js","sourceRoot":"","sources":["../../../src/embed/liveboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -630,6 +630,212 @@ describe('Liveboard/viz embed tests', () => {
|
|
|
630
630
|
});
|
|
631
631
|
});
|
|
632
632
|
});
|
|
633
|
+
describe('LazyLoadingForFullHeight functionality', () => {
|
|
634
|
+
let mockIFrame;
|
|
635
|
+
beforeEach(() => {
|
|
636
|
+
mockIFrame = document.createElement('iframe');
|
|
637
|
+
mockIFrame.getBoundingClientRect = jest.fn().mockReturnValue({
|
|
638
|
+
top: 100,
|
|
639
|
+
left: 150,
|
|
640
|
+
bottom: 600,
|
|
641
|
+
right: 800,
|
|
642
|
+
width: 650,
|
|
643
|
+
height: 500,
|
|
644
|
+
});
|
|
645
|
+
jest.spyOn(document, 'createElement').mockImplementation((tagName) => {
|
|
646
|
+
if (tagName === 'iframe') {
|
|
647
|
+
return mockIFrame;
|
|
648
|
+
}
|
|
649
|
+
return document.createElement(tagName);
|
|
650
|
+
});
|
|
651
|
+
});
|
|
652
|
+
afterEach(() => {
|
|
653
|
+
jest.restoreAllMocks();
|
|
654
|
+
});
|
|
655
|
+
test('should set lazyLoadingMargin parameter when provided', async () => {
|
|
656
|
+
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
657
|
+
...defaultViewConfig,
|
|
658
|
+
liveboardId,
|
|
659
|
+
fullHeight: true,
|
|
660
|
+
lazyLoadingForFullHeight: true,
|
|
661
|
+
lazyLoadingMargin: '100px 0px',
|
|
662
|
+
});
|
|
663
|
+
await liveboardEmbed.render();
|
|
664
|
+
await executeAfterWait(() => {
|
|
665
|
+
const iframeSrc = getIFrameSrc();
|
|
666
|
+
expect(iframeSrc).toContain('isLazyLoadingForEmbedEnabled=true');
|
|
667
|
+
expect(iframeSrc).toContain('isFullHeightPinboard=true');
|
|
668
|
+
expect(iframeSrc).toContain('rootMarginForLazyLoad=100px%200px');
|
|
669
|
+
}, 100);
|
|
670
|
+
});
|
|
671
|
+
test('should set isLazyLoadingForEmbedEnabled=true when both fullHeight and lazyLoadingForFullHeight are enabled', async () => {
|
|
672
|
+
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
673
|
+
...defaultViewConfig,
|
|
674
|
+
liveboardId,
|
|
675
|
+
fullHeight: true,
|
|
676
|
+
lazyLoadingForFullHeight: true,
|
|
677
|
+
});
|
|
678
|
+
await liveboardEmbed.render();
|
|
679
|
+
await executeAfterWait(() => {
|
|
680
|
+
const iframeSrc = getIFrameSrc();
|
|
681
|
+
expect(iframeSrc).toContain('isLazyLoadingForEmbedEnabled=true');
|
|
682
|
+
expect(iframeSrc).toContain('isFullHeightPinboard=true');
|
|
683
|
+
}, 100);
|
|
684
|
+
});
|
|
685
|
+
test('should not set lazyLoadingForEmbed when lazyLoadingForFullHeight is enabled but fullHeight is false', async () => {
|
|
686
|
+
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
687
|
+
...defaultViewConfig,
|
|
688
|
+
liveboardId,
|
|
689
|
+
fullHeight: false,
|
|
690
|
+
lazyLoadingForFullHeight: true,
|
|
691
|
+
});
|
|
692
|
+
await liveboardEmbed.render();
|
|
693
|
+
await executeAfterWait(() => {
|
|
694
|
+
const iframeSrc = getIFrameSrc();
|
|
695
|
+
expect(iframeSrc).not.toContain('isLazyLoadingForEmbedEnabled=true');
|
|
696
|
+
expect(iframeSrc).not.toContain('isFullHeightPinboard=true');
|
|
697
|
+
}, 100);
|
|
698
|
+
});
|
|
699
|
+
test('should not set isLazyLoadingForEmbedEnabled when fullHeight is true but lazyLoadingForFullHeight is false', async () => {
|
|
700
|
+
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
701
|
+
...defaultViewConfig,
|
|
702
|
+
liveboardId,
|
|
703
|
+
fullHeight: true,
|
|
704
|
+
lazyLoadingForFullHeight: false,
|
|
705
|
+
});
|
|
706
|
+
await liveboardEmbed.render();
|
|
707
|
+
await executeAfterWait(() => {
|
|
708
|
+
const iframeSrc = getIFrameSrc();
|
|
709
|
+
expect(iframeSrc).not.toContain('isLazyLoadingForEmbedEnabled=true');
|
|
710
|
+
expect(iframeSrc).toContain('isFullHeightPinboard=true');
|
|
711
|
+
}, 100);
|
|
712
|
+
});
|
|
713
|
+
test('should register event handlers to adjust iframe height', async () => {
|
|
714
|
+
const onSpy = jest.spyOn(LiveboardEmbed.prototype, 'on');
|
|
715
|
+
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
716
|
+
...defaultViewConfig,
|
|
717
|
+
liveboardId,
|
|
718
|
+
fullHeight: true,
|
|
719
|
+
lazyLoadingForFullHeight: true,
|
|
720
|
+
});
|
|
721
|
+
await liveboardEmbed.render();
|
|
722
|
+
await executeAfterWait(() => {
|
|
723
|
+
expect(onSpy).toHaveBeenCalledWith(EmbedEvent.EmbedHeight, expect.anything());
|
|
724
|
+
expect(onSpy).toHaveBeenCalledWith(EmbedEvent.RouteChange, expect.anything());
|
|
725
|
+
expect(onSpy).toHaveBeenCalledWith(EmbedEvent.EmbedIframeCenter, expect.anything());
|
|
726
|
+
expect(onSpy).toHaveBeenCalledWith(EmbedEvent.RequestVisibleEmbedCoordinates, expect.anything());
|
|
727
|
+
}, 100);
|
|
728
|
+
});
|
|
729
|
+
test('should send correct visible data when RequestVisibleEmbedCoordinates is triggered', async () => {
|
|
730
|
+
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
731
|
+
...defaultViewConfig,
|
|
732
|
+
liveboardId,
|
|
733
|
+
fullHeight: true,
|
|
734
|
+
lazyLoadingForFullHeight: true,
|
|
735
|
+
});
|
|
736
|
+
const mockTrigger = jest.spyOn(liveboardEmbed, 'trigger');
|
|
737
|
+
await liveboardEmbed.render();
|
|
738
|
+
// Trigger the lazy load data calculation
|
|
739
|
+
liveboardEmbed.sendFullHeightLazyLoadData();
|
|
740
|
+
expect(mockTrigger).toHaveBeenCalledWith(HostEvent.VisibleEmbedCoordinates, {
|
|
741
|
+
top: 0,
|
|
742
|
+
height: 500,
|
|
743
|
+
left: 0,
|
|
744
|
+
width: 650,
|
|
745
|
+
});
|
|
746
|
+
});
|
|
747
|
+
test('should calculate correct visible data for partially visible full height element', async () => {
|
|
748
|
+
mockIFrame.getBoundingClientRect = jest.fn().mockReturnValue({
|
|
749
|
+
top: -50,
|
|
750
|
+
left: -30,
|
|
751
|
+
bottom: 700,
|
|
752
|
+
right: 1024,
|
|
753
|
+
width: 1054,
|
|
754
|
+
height: 750,
|
|
755
|
+
});
|
|
756
|
+
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
757
|
+
...defaultViewConfig,
|
|
758
|
+
liveboardId,
|
|
759
|
+
fullHeight: true,
|
|
760
|
+
lazyLoadingForFullHeight: true,
|
|
761
|
+
});
|
|
762
|
+
const mockTrigger = jest.spyOn(liveboardEmbed, 'trigger');
|
|
763
|
+
await liveboardEmbed.render();
|
|
764
|
+
// Trigger the lazy load data calculation
|
|
765
|
+
liveboardEmbed.sendFullHeightLazyLoadData();
|
|
766
|
+
expect(mockTrigger).toHaveBeenCalledWith(HostEvent.VisibleEmbedCoordinates, {
|
|
767
|
+
top: 50,
|
|
768
|
+
height: 700,
|
|
769
|
+
left: 30,
|
|
770
|
+
width: 1024,
|
|
771
|
+
});
|
|
772
|
+
});
|
|
773
|
+
test('should add window event listeners for resize and scroll when fullHeight and lazyLoadingForFullHeight are enabled', async () => {
|
|
774
|
+
const addEventListenerSpy = jest.spyOn(window, 'addEventListener');
|
|
775
|
+
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
776
|
+
...defaultViewConfig,
|
|
777
|
+
liveboardId,
|
|
778
|
+
fullHeight: true,
|
|
779
|
+
lazyLoadingForFullHeight: true,
|
|
780
|
+
});
|
|
781
|
+
await liveboardEmbed.render();
|
|
782
|
+
// Wait for the post-render events to be registered
|
|
783
|
+
await executeAfterWait(() => {
|
|
784
|
+
expect(addEventListenerSpy).toHaveBeenCalledWith('resize', expect.anything());
|
|
785
|
+
expect(addEventListenerSpy).toHaveBeenCalledWith('scroll', expect.anything(), true);
|
|
786
|
+
}, 100);
|
|
787
|
+
addEventListenerSpy.mockRestore();
|
|
788
|
+
});
|
|
789
|
+
test('should remove window event listeners on destroy when fullHeight and lazyLoadingForFullHeight are enabled', async () => {
|
|
790
|
+
const removeEventListenerSpy = jest.spyOn(window, 'removeEventListener');
|
|
791
|
+
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
792
|
+
...defaultViewConfig,
|
|
793
|
+
liveboardId,
|
|
794
|
+
fullHeight: true,
|
|
795
|
+
lazyLoadingForFullHeight: true,
|
|
796
|
+
});
|
|
797
|
+
await liveboardEmbed.render();
|
|
798
|
+
liveboardEmbed.destroy();
|
|
799
|
+
expect(removeEventListenerSpy).toHaveBeenCalledWith('resize', expect.anything());
|
|
800
|
+
expect(removeEventListenerSpy).toHaveBeenCalledWith('scroll', expect.anything());
|
|
801
|
+
removeEventListenerSpy.mockRestore();
|
|
802
|
+
});
|
|
803
|
+
test('should handle RequestVisibleEmbedCoordinates event and respond with correct data', async () => {
|
|
804
|
+
// Mock the iframe element
|
|
805
|
+
mockIFrame.getBoundingClientRect = jest.fn().mockReturnValue({
|
|
806
|
+
top: 100,
|
|
807
|
+
left: 150,
|
|
808
|
+
bottom: 600,
|
|
809
|
+
right: 800,
|
|
810
|
+
width: 650,
|
|
811
|
+
height: 500,
|
|
812
|
+
});
|
|
813
|
+
Object.defineProperty(mockIFrame, 'scrollHeight', { value: 500 });
|
|
814
|
+
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
815
|
+
...defaultViewConfig,
|
|
816
|
+
liveboardId,
|
|
817
|
+
fullHeight: true,
|
|
818
|
+
lazyLoadingForFullHeight: true,
|
|
819
|
+
});
|
|
820
|
+
// Set the iframe before render
|
|
821
|
+
liveboardEmbed.iFrame = mockIFrame;
|
|
822
|
+
await liveboardEmbed.render();
|
|
823
|
+
// Create a mock responder function
|
|
824
|
+
const mockResponder = jest.fn();
|
|
825
|
+
// Trigger the handler directly
|
|
826
|
+
liveboardEmbed.requestVisibleEmbedCoordinatesHandler({}, mockResponder);
|
|
827
|
+
// Verify the responder was called with the correct data
|
|
828
|
+
expect(mockResponder).toHaveBeenCalledWith({
|
|
829
|
+
type: EmbedEvent.RequestVisibleEmbedCoordinates,
|
|
830
|
+
data: {
|
|
831
|
+
top: 0,
|
|
832
|
+
height: 500,
|
|
833
|
+
left: 0,
|
|
834
|
+
width: 650,
|
|
835
|
+
},
|
|
836
|
+
});
|
|
837
|
+
});
|
|
838
|
+
});
|
|
633
839
|
describe('Host events for liveborad', () => {
|
|
634
840
|
test('Host event with empty param', async () => {
|
|
635
841
|
const mockProcessTrigger = jest.spyOn(tsEmbed.TsEmbed.prototype, 'trigger');
|