@thoughtspot/visual-embed-sdk 1.29.1-alpha.0 → 1.29.1
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/README.md +1 -1
- package/cjs/package.json +2 -1
- package/cjs/src/auth.d.ts +0 -15
- package/cjs/src/auth.d.ts.map +1 -1
- package/cjs/src/auth.js +2 -13
- package/cjs/src/auth.js.map +1 -1
- package/cjs/src/authToken.d.ts +1 -2
- package/cjs/src/authToken.d.ts.map +1 -1
- package/cjs/src/authToken.js +9 -3
- package/cjs/src/authToken.js.map +1 -1
- package/cjs/src/authToken.spec.d.ts +2 -0
- package/cjs/src/authToken.spec.d.ts.map +1 -0
- package/cjs/src/authToken.spec.js +29 -0
- package/cjs/src/authToken.spec.js.map +1 -0
- package/cjs/src/config.d.ts +0 -1
- package/cjs/src/config.d.ts.map +1 -1
- package/cjs/src/config.js +0 -2
- package/cjs/src/config.js.map +1 -1
- package/cjs/src/embed/app.d.ts +73 -43
- package/cjs/src/embed/app.d.ts.map +1 -1
- package/cjs/src/embed/app.js +45 -12
- package/cjs/src/embed/app.js.map +1 -1
- package/cjs/src/embed/app.spec.js +21 -0
- package/cjs/src/embed/app.spec.js.map +1 -1
- package/cjs/src/embed/base.d.ts +1 -7
- package/cjs/src/embed/base.d.ts.map +1 -1
- package/cjs/src/embed/base.js +9 -15
- package/cjs/src/embed/base.js.map +1 -1
- package/cjs/src/embed/base.spec.js +3 -1
- package/cjs/src/embed/base.spec.js.map +1 -1
- package/cjs/src/embed/embedConfig.d.ts +0 -2
- package/cjs/src/embed/embedConfig.d.ts.map +1 -1
- package/cjs/src/embed/embedConfig.js +0 -2
- package/cjs/src/embed/embedConfig.js.map +1 -1
- package/cjs/src/embed/liveboard.d.ts +14 -28
- package/cjs/src/embed/liveboard.d.ts.map +1 -1
- package/cjs/src/embed/liveboard.js +9 -9
- package/cjs/src/embed/liveboard.js.map +1 -1
- package/cjs/src/embed/liveboard.spec.js +79 -4
- package/cjs/src/embed/liveboard.spec.js.map +1 -1
- package/cjs/src/embed/sage.d.ts +5 -21
- package/cjs/src/embed/sage.d.ts.map +1 -1
- package/cjs/src/embed/sage.js +2 -23
- package/cjs/src/embed/sage.js.map +1 -1
- package/cjs/src/embed/sage.spec.js +20 -31
- package/cjs/src/embed/sage.spec.js.map +1 -1
- package/cjs/src/embed/search-bar.d.ts +0 -11
- package/cjs/src/embed/search-bar.d.ts.map +1 -1
- package/cjs/src/embed/search-bar.js +0 -2
- package/cjs/src/embed/search-bar.js.map +1 -1
- package/cjs/src/embed/search.d.ts +60 -29
- package/cjs/src/embed/search.d.ts.map +1 -1
- package/cjs/src/embed/search.js +43 -9
- package/cjs/src/embed/search.js.map +1 -1
- package/cjs/src/embed/search.spec.js +34 -0
- package/cjs/src/embed/search.spec.js.map +1 -1
- package/cjs/src/embed/ts-embed.d.ts +1 -31
- package/cjs/src/embed/ts-embed.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.js +34 -43
- package/cjs/src/embed/ts-embed.js.map +1 -1
- package/cjs/src/embed/ts-embed.spec.js +83 -9
- 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 +0 -1
- package/cjs/src/index.d.ts.map +1 -1
- package/cjs/src/index.js +0 -1
- package/cjs/src/index.js.map +1 -1
- package/cjs/src/mixpanel-service.d.ts +0 -1
- package/cjs/src/mixpanel-service.d.ts.map +1 -1
- package/cjs/src/mixpanel-service.js +0 -1
- package/cjs/src/mixpanel-service.js.map +1 -1
- package/cjs/src/react/index.d.ts +1 -12
- package/cjs/src/react/index.d.ts.map +1 -1
- package/cjs/src/react/index.js +1 -11
- package/cjs/src/react/index.js.map +1 -1
- package/cjs/src/react/index.spec.js +15 -3
- package/cjs/src/react/index.spec.js.map +1 -1
- package/cjs/src/test/test-utils.d.ts +0 -2
- package/cjs/src/test/test-utils.d.ts.map +1 -1
- package/cjs/src/test/test-utils.js +0 -2
- package/cjs/src/test/test-utils.js.map +1 -1
- package/cjs/src/tokenizedFetch.d.ts +0 -1
- package/cjs/src/tokenizedFetch.d.ts.map +1 -1
- package/cjs/src/tokenizedFetch.js +0 -1
- package/cjs/src/tokenizedFetch.js.map +1 -1
- package/cjs/src/types.d.ts +245 -366
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +196 -296
- package/cjs/src/types.js.map +1 -1
- package/cjs/src/utils/authService/authService.d.ts +0 -1
- package/cjs/src/utils/authService/authService.d.ts.map +1 -1
- package/cjs/src/utils/authService/authService.js +0 -1
- package/cjs/src/utils/authService/authService.js.map +1 -1
- package/cjs/src/utils/graphql/answerService/answer-queries.d.ts +2 -0
- package/cjs/src/utils/graphql/answerService/answer-queries.d.ts.map +1 -1
- package/cjs/src/utils/graphql/answerService/answer-queries.js +57 -1
- package/cjs/src/utils/graphql/answerService/answer-queries.js.map +1 -1
- package/cjs/src/utils/graphql/answerService/answerService.d.ts +37 -12
- package/cjs/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
- package/cjs/src/utils/graphql/answerService/answerService.js +70 -14
- package/cjs/src/utils/graphql/answerService/answerService.js.map +1 -1
- package/cjs/src/utils/graphql/answerService/answerService.spec.js +78 -0
- package/cjs/src/utils/graphql/answerService/answerService.spec.js.map +1 -1
- package/cjs/src/utils/logger.d.ts.map +1 -1
- package/cjs/src/utils/logger.js +3 -5
- package/cjs/src/utils/logger.js.map +1 -1
- package/cjs/src/utils/processData.js +1 -1
- package/cjs/src/utils/processData.js.map +1 -1
- package/cjs/src/utils/processData.spec.js +1 -1
- package/cjs/src/utils/processData.spec.js.map +1 -1
- package/cjs/src/utils/processTrigger.d.ts +0 -1
- package/cjs/src/utils/processTrigger.d.ts.map +1 -1
- package/cjs/src/utils/processTrigger.js +0 -2
- package/cjs/src/utils/processTrigger.js.map +1 -1
- package/cjs/src/utils.d.ts +2 -10
- package/cjs/src/utils.d.ts.map +1 -1
- package/cjs/src/utils.js +19 -13
- package/cjs/src/utils.js.map +1 -1
- package/dist/src/auth.d.ts +0 -15
- package/dist/src/auth.d.ts.map +1 -1
- package/dist/src/authToken.d.ts +1 -2
- package/dist/src/authToken.d.ts.map +1 -1
- package/dist/src/authToken.spec.d.ts +2 -0
- package/dist/src/authToken.spec.d.ts.map +1 -0
- package/dist/src/config.d.ts +0 -1
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/embed/app.d.ts +73 -43
- package/dist/src/embed/app.d.ts.map +1 -1
- package/dist/src/embed/base.d.ts +1 -7
- package/dist/src/embed/base.d.ts.map +1 -1
- package/dist/src/embed/embedConfig.d.ts +0 -2
- package/dist/src/embed/embedConfig.d.ts.map +1 -1
- package/dist/src/embed/liveboard.d.ts +14 -28
- package/dist/src/embed/liveboard.d.ts.map +1 -1
- package/dist/src/embed/sage.d.ts +5 -21
- package/dist/src/embed/sage.d.ts.map +1 -1
- package/dist/src/embed/search-bar.d.ts +0 -11
- package/dist/src/embed/search-bar.d.ts.map +1 -1
- package/dist/src/embed/search.d.ts +60 -29
- package/dist/src/embed/search.d.ts.map +1 -1
- package/dist/src/embed/ts-embed.d.ts +1 -31
- package/dist/src/embed/ts-embed.d.ts.map +1 -1
- package/dist/src/index.d.ts +0 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/mixpanel-service.d.ts +0 -1
- package/dist/src/mixpanel-service.d.ts.map +1 -1
- package/dist/src/react/index.d.ts +1 -12
- package/dist/src/react/index.d.ts.map +1 -1
- package/dist/src/test/test-utils.d.ts +0 -2
- package/dist/src/test/test-utils.d.ts.map +1 -1
- package/dist/src/tokenizedFetch.d.ts +0 -1
- package/dist/src/tokenizedFetch.d.ts.map +1 -1
- package/dist/src/types.d.ts +245 -366
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/authService/authService.d.ts +0 -1
- package/dist/src/utils/authService/authService.d.ts.map +1 -1
- package/dist/src/utils/graphql/answerService/answer-queries.d.ts +2 -0
- package/dist/src/utils/graphql/answerService/answer-queries.d.ts.map +1 -1
- package/dist/src/utils/graphql/answerService/answerService.d.ts +37 -12
- package/dist/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
- package/dist/src/utils/logger.d.ts.map +1 -1
- package/dist/src/utils/processTrigger.d.ts +0 -1
- package/dist/src/utils/processTrigger.d.ts.map +1 -1
- package/dist/src/utils.d.ts +2 -10
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/tsembed-react.es.js +2331 -2358
- package/dist/tsembed-react.js +3475 -3498
- package/dist/tsembed.es.js +3690 -3922
- package/dist/tsembed.js +15218 -15442
- package/dist/visual-embed-sdk-react-full.d.ts +431 -564
- package/dist/visual-embed-sdk-react.d.ts +434 -567
- package/dist/visual-embed-sdk.d.ts +430 -552
- package/lib/package.json +2 -1
- package/lib/src/auth.d.ts +0 -15
- package/lib/src/auth.d.ts.map +1 -1
- package/lib/src/auth.js +3 -14
- package/lib/src/auth.js.map +1 -1
- package/lib/src/authToken.d.ts +1 -2
- package/lib/src/authToken.d.ts.map +1 -1
- package/lib/src/authToken.js +9 -3
- package/lib/src/authToken.js.map +1 -1
- package/lib/src/authToken.spec.d.ts +2 -0
- package/lib/src/authToken.spec.d.ts.map +1 -0
- package/lib/src/authToken.spec.js +26 -0
- package/lib/src/authToken.spec.js.map +1 -0
- package/lib/src/config.d.ts +0 -1
- package/lib/src/config.d.ts.map +1 -1
- package/lib/src/config.js +0 -2
- package/lib/src/config.js.map +1 -1
- package/lib/src/embed/app.d.ts +73 -43
- package/lib/src/embed/app.d.ts.map +1 -1
- package/lib/src/embed/app.js +44 -11
- package/lib/src/embed/app.js.map +1 -1
- package/lib/src/embed/app.spec.js +22 -1
- package/lib/src/embed/app.spec.js.map +1 -1
- package/lib/src/embed/base.d.ts +1 -7
- package/lib/src/embed/base.d.ts.map +1 -1
- package/lib/src/embed/base.js +8 -14
- package/lib/src/embed/base.js.map +1 -1
- package/lib/src/embed/base.spec.js +4 -2
- package/lib/src/embed/base.spec.js.map +1 -1
- package/lib/src/embed/embedConfig.d.ts +0 -2
- package/lib/src/embed/embedConfig.d.ts.map +1 -1
- package/lib/src/embed/embedConfig.js +0 -2
- package/lib/src/embed/embedConfig.js.map +1 -1
- package/lib/src/embed/liveboard.d.ts +14 -28
- package/lib/src/embed/liveboard.d.ts.map +1 -1
- package/lib/src/embed/liveboard.js +10 -10
- package/lib/src/embed/liveboard.js.map +1 -1
- package/lib/src/embed/liveboard.spec.js +79 -4
- package/lib/src/embed/liveboard.spec.js.map +1 -1
- package/lib/src/embed/sage.d.ts +5 -21
- package/lib/src/embed/sage.d.ts.map +1 -1
- package/lib/src/embed/sage.js +2 -23
- package/lib/src/embed/sage.js.map +1 -1
- package/lib/src/embed/sage.spec.js +20 -31
- package/lib/src/embed/sage.spec.js.map +1 -1
- package/lib/src/embed/search-bar.d.ts +0 -11
- package/lib/src/embed/search-bar.d.ts.map +1 -1
- package/lib/src/embed/search-bar.js +0 -2
- package/lib/src/embed/search-bar.js.map +1 -1
- package/lib/src/embed/search.d.ts +60 -29
- package/lib/src/embed/search.d.ts.map +1 -1
- package/lib/src/embed/search.js +43 -9
- package/lib/src/embed/search.js.map +1 -1
- package/lib/src/embed/search.spec.js +35 -1
- package/lib/src/embed/search.spec.js.map +1 -1
- package/lib/src/embed/ts-embed.d.ts +1 -31
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +37 -46
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +83 -9
- 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 +0 -1
- package/lib/src/index.d.ts.map +1 -1
- package/lib/src/index.js +0 -1
- package/lib/src/index.js.map +1 -1
- package/lib/src/mixpanel-service.d.ts +0 -1
- package/lib/src/mixpanel-service.d.ts.map +1 -1
- package/lib/src/mixpanel-service.js +0 -1
- package/lib/src/mixpanel-service.js.map +1 -1
- package/lib/src/react/index.d.ts +1 -12
- package/lib/src/react/index.d.ts.map +1 -1
- package/lib/src/react/index.js +1 -11
- package/lib/src/react/index.js.map +1 -1
- package/lib/src/react/index.spec.js +16 -4
- package/lib/src/react/index.spec.js.map +1 -1
- package/lib/src/test/test-utils.d.ts +0 -2
- package/lib/src/test/test-utils.d.ts.map +1 -1
- package/lib/src/test/test-utils.js +0 -2
- package/lib/src/test/test-utils.js.map +1 -1
- package/lib/src/tokenizedFetch.d.ts +0 -1
- package/lib/src/tokenizedFetch.d.ts.map +1 -1
- package/lib/src/tokenizedFetch.js +0 -1
- package/lib/src/tokenizedFetch.js.map +1 -1
- package/lib/src/types.d.ts +245 -366
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +196 -296
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils/authService/authService.d.ts +0 -1
- package/lib/src/utils/authService/authService.d.ts.map +1 -1
- package/lib/src/utils/authService/authService.js +0 -1
- package/lib/src/utils/authService/authService.js.map +1 -1
- package/lib/src/utils/authService/authService.spec.js +1 -1
- package/lib/src/utils/authService/authService.spec.js.map +1 -1
- package/lib/src/utils/graphql/answerService/answer-queries.d.ts +2 -0
- package/lib/src/utils/graphql/answerService/answer-queries.d.ts.map +1 -1
- package/lib/src/utils/graphql/answerService/answer-queries.js +56 -0
- package/lib/src/utils/graphql/answerService/answer-queries.js.map +1 -1
- package/lib/src/utils/graphql/answerService/answerService.d.ts +37 -12
- package/lib/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
- package/lib/src/utils/graphql/answerService/answerService.js +71 -15
- package/lib/src/utils/graphql/answerService/answerService.js.map +1 -1
- package/lib/src/utils/graphql/answerService/answerService.spec.js +80 -2
- package/lib/src/utils/graphql/answerService/answerService.spec.js.map +1 -1
- package/lib/src/utils/logger.d.ts.map +1 -1
- package/lib/src/utils/logger.js +2 -3
- package/lib/src/utils/logger.js.map +1 -1
- package/lib/src/utils/processData.js +1 -1
- package/lib/src/utils/processData.js.map +1 -1
- package/lib/src/utils/processData.spec.js +1 -1
- package/lib/src/utils/processData.spec.js.map +1 -1
- package/lib/src/utils/processTrigger.d.ts +0 -1
- package/lib/src/utils/processTrigger.d.ts.map +1 -1
- package/lib/src/utils/processTrigger.js +0 -2
- package/lib/src/utils/processTrigger.js.map +1 -1
- package/lib/src/utils.d.ts +2 -10
- package/lib/src/utils.d.ts.map +1 -1
- package/lib/src/utils.js +17 -12
- package/lib/src/utils.js.map +1 -1
- package/lib/src/visual-embed-sdk.d.ts +436 -558
- package/package.json +3 -1
- package/src/auth.spec.ts +72 -66
- package/src/auth.ts +53 -54
- package/src/authToken.spec.ts +31 -0
- package/src/authToken.ts +12 -12
- package/src/config.ts +0 -2
- package/src/embed/app.spec.ts +39 -5
- package/src/embed/app.ts +108 -50
- package/src/embed/base.spec.ts +5 -4
- package/src/embed/base.ts +30 -36
- package/src/embed/embed.spec.ts +0 -2
- package/src/embed/embedConfig.ts +0 -2
- package/src/embed/events.spec.ts +0 -2
- package/src/embed/liveboard.spec.ts +104 -11
- package/src/embed/liveboard.ts +25 -38
- package/src/embed/pinboard.spec.ts +0 -2
- package/src/embed/sage.spec.ts +20 -38
- package/src/embed/sage.ts +5 -38
- package/src/embed/search-bar.tsx +0 -11
- package/src/embed/search.spec.ts +48 -2
- package/src/embed/search.ts +94 -38
- package/src/embed/ts-embed-trigger.spec.ts +0 -3
- package/src/embed/ts-embed.spec.ts +109 -32
- package/src/embed/ts-embed.ts +68 -79
- package/src/errors.ts +1 -1
- package/src/index.ts +1 -3
- package/src/mixpanel-service.spec.ts +3 -4
- package/src/mixpanel-service.ts +1 -4
- package/src/react/index.spec.tsx +48 -67
- package/src/react/index.tsx +1 -13
- package/src/test/test-utils.ts +0 -2
- package/src/tokenizedFetch.ts +0 -1
- package/src/types.ts +245 -365
- package/src/utils/authService/authService.spec.ts +8 -13
- package/src/utils/authService/authService.ts +0 -2
- package/src/utils/authService/tokenizedAuthService.ts +8 -38
- package/src/utils/graphql/answerService/answer-queries.ts +58 -0
- package/src/utils/graphql/answerService/answerService.spec.ts +88 -2
- package/src/utils/graphql/answerService/answerService.ts +87 -16
- package/src/utils/logger.ts +2 -3
- package/src/utils/processData.spec.ts +3 -4
- package/src/utils/processData.ts +4 -2
- package/src/utils/processTrigger.ts +0 -2
- package/src/utils.ts +21 -13
- package/cjs/src/utils/sessionInfoService.d.ts +0 -66
- package/cjs/src/utils/sessionInfoService.d.ts.map +0 -1
- package/cjs/src/utils/sessionInfoService.js +0 -92
- package/cjs/src/utils/sessionInfoService.js.map +0 -1
- package/lib/src/utils/sessionInfoService.d.ts +0 -66
- package/lib/src/utils/sessionInfoService.d.ts.map +0 -1
- package/lib/src/utils/sessionInfoService.js +0 -85
- package/lib/src/utils/sessionInfoService.js.map +0 -1
- package/src/utils/sessionInfoService.ts +0 -101
package/src/embed/search.ts
CHANGED
|
@@ -2,29 +2,24 @@
|
|
|
2
2
|
* Copyright (c) 2022
|
|
3
3
|
*
|
|
4
4
|
* Embed ThoughtSpot search or a saved answer
|
|
5
|
-
*
|
|
6
5
|
* @summary Search embed
|
|
7
6
|
* @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
|
|
8
7
|
*/
|
|
9
8
|
|
|
9
|
+
import { getReleaseVersion } from '../auth';
|
|
10
|
+
import { ERROR_MESSAGE } from '../errors';
|
|
10
11
|
import {
|
|
11
|
-
DataSourceVisualMode,
|
|
12
|
-
DOMSelector,
|
|
13
|
-
Param,
|
|
14
|
-
Action,
|
|
15
|
-
ViewConfig,
|
|
12
|
+
Action, DOMSelector, DataSourceVisualMode, Param, ViewConfig,
|
|
16
13
|
} from '../types';
|
|
17
14
|
import {
|
|
18
|
-
getQueryParamString,
|
|
19
15
|
checkReleaseVersionInBeta,
|
|
20
16
|
getFilterQuery,
|
|
17
|
+
getQueryParamString,
|
|
21
18
|
getRuntimeParameters,
|
|
22
19
|
} from '../utils';
|
|
23
|
-
import { TsEmbed } from './ts-embed';
|
|
24
|
-
import { ERROR_MESSAGE } from '../errors';
|
|
25
20
|
import { getAuthPromise } from './base';
|
|
26
|
-
import { getReleaseVersion } from '../auth';
|
|
27
21
|
import { getEmbedConfig } from './embedConfig';
|
|
22
|
+
import { TsEmbed } from './ts-embed';
|
|
28
23
|
|
|
29
24
|
/**
|
|
30
25
|
* Configuration for search options.
|
|
@@ -44,9 +39,27 @@ export interface SearchOptions {
|
|
|
44
39
|
executeSearch?: boolean;
|
|
45
40
|
}
|
|
46
41
|
|
|
42
|
+
/**
|
|
43
|
+
* Define the initial state os column custom group accordions
|
|
44
|
+
* in data panel v2.
|
|
45
|
+
*/
|
|
46
|
+
export enum DataPanelCustomColumnGroupsAccordionState {
|
|
47
|
+
/**
|
|
48
|
+
* Expand all the accordion initially in data panel v2.
|
|
49
|
+
*/
|
|
50
|
+
EXPAND_ALL = 'EXPAND_ALL',
|
|
51
|
+
/**
|
|
52
|
+
* Collapse all the accordions initially in data panel v2.
|
|
53
|
+
*/
|
|
54
|
+
COLLAPSE_ALL = 'COLLAPSE_ALL',
|
|
55
|
+
/**
|
|
56
|
+
* Expand the first accordion and collapse the rest.
|
|
57
|
+
*/
|
|
58
|
+
EXPAND_FIRST = 'EXPAND_FIRST',
|
|
59
|
+
}
|
|
60
|
+
|
|
47
61
|
/**
|
|
48
62
|
* The configuration attributes for the embedded search view.
|
|
49
|
-
*
|
|
50
63
|
* @group Embed components
|
|
51
64
|
*/
|
|
52
65
|
export interface SearchViewConfig
|
|
@@ -61,9 +74,7 @@ export interface SearchViewConfig
|
|
|
61
74
|
/**
|
|
62
75
|
* If set to true, the data sources panel is collapsed on load,
|
|
63
76
|
* but can be expanded manually.
|
|
64
|
-
*
|
|
65
77
|
* @version: SDK: 1.1.0 | ThoughtSpot: 8.1.0.sw
|
|
66
|
-
*
|
|
67
78
|
* @example
|
|
68
79
|
* ```js
|
|
69
80
|
* const embed = new SearchEmbed('#tsEmbed', {
|
|
@@ -75,9 +86,7 @@ export interface SearchViewConfig
|
|
|
75
86
|
collapseDataSources?: boolean;
|
|
76
87
|
/**
|
|
77
88
|
* Show or hide the data sources panel.
|
|
78
|
-
*
|
|
79
89
|
* @version: SDK: 1.2.0 | ThoughtSpot: 9.1.0.sw
|
|
80
|
-
*
|
|
81
90
|
* @example
|
|
82
91
|
* ```js
|
|
83
92
|
* const embed = new SearchEmbed('#tsEmbed', {
|
|
@@ -91,9 +100,7 @@ export interface SearchViewConfig
|
|
|
91
100
|
* Show or hide the charts and tables in search answers.
|
|
92
101
|
* This attribute can be used to create a custom visualization
|
|
93
102
|
* using raw answer data.
|
|
94
|
-
*
|
|
95
103
|
* @version: SDK: 1.2.0 | ThoughtSpot: 9.1.0.sw
|
|
96
|
-
*
|
|
97
104
|
* @example
|
|
98
105
|
* ```js
|
|
99
106
|
* const embed = new SearchEmbed('#tsEmbed', {
|
|
@@ -103,11 +110,13 @@ export interface SearchViewConfig
|
|
|
103
110
|
* ```
|
|
104
111
|
*/
|
|
105
112
|
hideResults?: boolean;
|
|
113
|
+
/**
|
|
114
|
+
* If set to true, expands all the data sources panel.
|
|
115
|
+
*/
|
|
116
|
+
expandAllDataSource?: boolean;
|
|
106
117
|
/**
|
|
107
118
|
* If set to true, the Search Assist feature is enabled.
|
|
108
|
-
*
|
|
109
119
|
* @version SDK: 1.13.0 | ThoughtSpot: 8.5.0.cl, 8.8.1-sw
|
|
110
|
-
*
|
|
111
120
|
* @example
|
|
112
121
|
* ```js
|
|
113
122
|
* const embed = new SearchEmbed('#tsEmbed', {
|
|
@@ -120,9 +129,7 @@ export interface SearchViewConfig
|
|
|
120
129
|
/**
|
|
121
130
|
* If set to true, the tabular view is set as the default
|
|
122
131
|
* format for presenting search data.
|
|
123
|
-
*
|
|
124
132
|
* @version: SDK: 1.1.0 | ThoughtSpot: 8.1.0.sw
|
|
125
|
-
*
|
|
126
133
|
* @example
|
|
127
134
|
* ```js
|
|
128
135
|
* const embed = new SearchEmbed('#tsEmbed', {
|
|
@@ -134,9 +141,7 @@ export interface SearchViewConfig
|
|
|
134
141
|
/**
|
|
135
142
|
* The array of data source GUIDs to set on load.
|
|
136
143
|
* Only a single data source is supported currently.
|
|
137
|
-
*
|
|
138
144
|
* @deprecated Use `dataSource` instead.
|
|
139
|
-
*
|
|
140
145
|
* @example
|
|
141
146
|
* ```js
|
|
142
147
|
* const embed = new SearchEmbed('#tsEmbed', {
|
|
@@ -148,9 +153,7 @@ export interface SearchViewConfig
|
|
|
148
153
|
dataSources?: string[];
|
|
149
154
|
/**
|
|
150
155
|
* The array of data source GUIDs to set on load.
|
|
151
|
-
*
|
|
152
156
|
* @version: SDK: 1.19.0
|
|
153
|
-
*
|
|
154
157
|
* @example
|
|
155
158
|
* ```js
|
|
156
159
|
* const embed = new SearchEmbed('#tsEmbed', {
|
|
@@ -162,7 +165,6 @@ export interface SearchViewConfig
|
|
|
162
165
|
dataSource?: string;
|
|
163
166
|
/**
|
|
164
167
|
* The initial search query to load the answer with.
|
|
165
|
-
*
|
|
166
168
|
* @deprecated
|
|
167
169
|
*
|
|
168
170
|
* Use {@link searchOptions} instead.
|
|
@@ -178,7 +180,6 @@ export interface SearchViewConfig
|
|
|
178
180
|
* If it is executed, the focus is placed on the results.
|
|
179
181
|
* If it’s not executed, the focus is placed at the end of
|
|
180
182
|
* the token string in the search bar.
|
|
181
|
-
*
|
|
182
183
|
* @example
|
|
183
184
|
* ```js
|
|
184
185
|
* searchOptions: {
|
|
@@ -190,9 +191,7 @@ export interface SearchViewConfig
|
|
|
190
191
|
searchOptions?: SearchOptions;
|
|
191
192
|
/**
|
|
192
193
|
* The GUID of a saved answer to load initially.
|
|
193
|
-
*
|
|
194
194
|
* @version: SDK: 1.1.0 | ThoughtSpot: 8.1.0.sw
|
|
195
|
-
*
|
|
196
195
|
* @example
|
|
197
196
|
* ```js
|
|
198
197
|
* const embed = new SearchEmbed('#tsEmbed', {
|
|
@@ -205,9 +204,7 @@ export interface SearchViewConfig
|
|
|
205
204
|
/**
|
|
206
205
|
* If set to true, the search page will render without the Search Bar
|
|
207
206
|
* The chart/table should still be visible.
|
|
208
|
-
*
|
|
209
207
|
* @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl, 9.5.0.sw
|
|
210
|
-
*
|
|
211
208
|
* @example
|
|
212
209
|
* ```js
|
|
213
210
|
* const embed = new SearchEmbed('#tsEmbed', {
|
|
@@ -219,10 +216,8 @@ export interface SearchViewConfig
|
|
|
219
216
|
hideSearchBar?: boolean;
|
|
220
217
|
/**
|
|
221
218
|
* Flag to control Data panel experience
|
|
222
|
-
*
|
|
223
219
|
* @default false
|
|
224
220
|
* @version SDK: 1.26.0 | Thoughtspot: 9.7.0.cl
|
|
225
|
-
*
|
|
226
221
|
* @example
|
|
227
222
|
* ```js
|
|
228
223
|
* const embed = new SearchEmbed('#tsEmbed', {
|
|
@@ -234,17 +229,52 @@ export interface SearchViewConfig
|
|
|
234
229
|
dataPanelV2?: boolean;
|
|
235
230
|
/**
|
|
236
231
|
* Flag to set if last selected dataSource should be used
|
|
237
|
-
*
|
|
238
232
|
* @version: SDK: 1.24.0
|
|
239
233
|
*/
|
|
240
234
|
useLastSelectedSources?: boolean;
|
|
241
235
|
/**
|
|
242
236
|
* To set the initial state of the search bar in case of saved-answers.
|
|
243
|
-
*
|
|
244
237
|
* @default false
|
|
245
238
|
* @version SDK: 1.32.0 | Thoughtspot: 10.0.0.cl
|
|
246
239
|
*/
|
|
247
240
|
collapseSearchBarInitially?: boolean;
|
|
241
|
+
/**
|
|
242
|
+
* To enable custom column groups in data panel v2
|
|
243
|
+
* @version SDK: 1.32.0 | Thoughtspot: 10.0.0.cl
|
|
244
|
+
* @default false
|
|
245
|
+
* @example
|
|
246
|
+
* ```js
|
|
247
|
+
* const embed = new SearchEmbed('#tsEmbed', {
|
|
248
|
+
* ... // other options
|
|
249
|
+
* enableCustomColumnGroups: true,
|
|
250
|
+
* });
|
|
251
|
+
* ```
|
|
252
|
+
*/
|
|
253
|
+
enableCustomColumnGroups?: boolean;
|
|
254
|
+
/**
|
|
255
|
+
* Flag to enable onBeforeSearchExecute Embed Event
|
|
256
|
+
* @version: SDK: 1.29.0 | Thoughtspot: 10.1.0.cl
|
|
257
|
+
*/
|
|
258
|
+
isOnBeforeGetVizDataInterceptEnabled?: boolean;
|
|
259
|
+
/**
|
|
260
|
+
* This controls the initial behaviour of custom column groups accordion.
|
|
261
|
+
* It takes DataPanelCustomColumnGroupsAccordionState enum values as input.
|
|
262
|
+
* List of different enum values:-
|
|
263
|
+
* - EXPAND_ALL: Expand all the accordion initially in data panel v2.
|
|
264
|
+
* - COLLAPSE_ALL: Collapse all the accordions initially in data panel v2.
|
|
265
|
+
* - EXPAND_FIRST: Expand the first accordion and collapse the rest.
|
|
266
|
+
* @version SDK: 1.32.0 | Thoughtspot: 10.0.0.cl
|
|
267
|
+
* @default DataPanelCustomColumnGroupsAccordionState.EXPAND_ALL
|
|
268
|
+
* @example
|
|
269
|
+
* ```js
|
|
270
|
+
* const embed = new SearchEmbed('#tsEmbed', {
|
|
271
|
+
* ... // other options
|
|
272
|
+
* dataPanelCustomGroupsAccordionInitialState:
|
|
273
|
+
* DataPanelCustomColumnGroupsAccordionState.EXPAND_ALL,
|
|
274
|
+
* });
|
|
275
|
+
* ```
|
|
276
|
+
*/
|
|
277
|
+
dataPanelCustomGroupsAccordionInitialState?: DataPanelCustomColumnGroupsAccordionState;
|
|
248
278
|
}
|
|
249
279
|
|
|
250
280
|
export const HiddenActionItemByDefaultForSearchEmbed = [
|
|
@@ -257,7 +287,6 @@ export const HiddenActionItemByDefaultForSearchEmbed = [
|
|
|
257
287
|
|
|
258
288
|
/**
|
|
259
289
|
* Embed ThoughtSpot search
|
|
260
|
-
*
|
|
261
290
|
* @group Embed components
|
|
262
291
|
*/
|
|
263
292
|
export class SearchEmbed extends TsEmbed {
|
|
@@ -290,6 +319,7 @@ export class SearchEmbed extends TsEmbed {
|
|
|
290
319
|
protected getEmbedParams(): string {
|
|
291
320
|
const {
|
|
292
321
|
hideResults,
|
|
322
|
+
expandAllDataSource,
|
|
293
323
|
enableSearchAssist,
|
|
294
324
|
forceTable,
|
|
295
325
|
searchOptions,
|
|
@@ -302,6 +332,11 @@ export class SearchEmbed extends TsEmbed {
|
|
|
302
332
|
useLastSelectedSources = false,
|
|
303
333
|
runtimeParameters,
|
|
304
334
|
collapseSearchBarInitially = false,
|
|
335
|
+
enableCustomColumnGroups = false,
|
|
336
|
+
isOnBeforeGetVizDataInterceptEnabled = false,
|
|
337
|
+
/* eslint-disable-next-line max-len */
|
|
338
|
+
dataPanelCustomGroupsAccordionInitialState = DataPanelCustomColumnGroupsAccordionState.EXPAND_ALL,
|
|
339
|
+
excludeRuntimeParametersfromURL,
|
|
305
340
|
} = this.viewConfig;
|
|
306
341
|
const queryParams = this.getBaseQueryParams();
|
|
307
342
|
|
|
@@ -339,6 +374,13 @@ export class SearchEmbed extends TsEmbed {
|
|
|
339
374
|
queryParams[Param.HideSearchBar] = true;
|
|
340
375
|
}
|
|
341
376
|
|
|
377
|
+
if (isOnBeforeGetVizDataInterceptEnabled) {
|
|
378
|
+
/* eslint-disable-next-line max-len */
|
|
379
|
+
queryParams[
|
|
380
|
+
Param.IsOnBeforeGetVizDataInterceptEnabled
|
|
381
|
+
] = isOnBeforeGetVizDataInterceptEnabled;
|
|
382
|
+
}
|
|
383
|
+
|
|
342
384
|
queryParams[Param.DataPanelV2Enabled] = dataPanelV2;
|
|
343
385
|
queryParams[Param.DataSourceMode] = this.getDataSourceMode();
|
|
344
386
|
|
|
@@ -349,6 +391,21 @@ export class SearchEmbed extends TsEmbed {
|
|
|
349
391
|
|
|
350
392
|
queryParams[Param.searchEmbed] = true;
|
|
351
393
|
queryParams[Param.CollapseSearchBarInitially] = collapseSearchBarInitially;
|
|
394
|
+
queryParams[Param.EnableCustomColumnGroups] = enableCustomColumnGroups;
|
|
395
|
+
if (
|
|
396
|
+
dataPanelCustomGroupsAccordionInitialState
|
|
397
|
+
=== DataPanelCustomColumnGroupsAccordionState.COLLAPSE_ALL
|
|
398
|
+
|| dataPanelCustomGroupsAccordionInitialState
|
|
399
|
+
=== DataPanelCustomColumnGroupsAccordionState.EXPAND_FIRST
|
|
400
|
+
) {
|
|
401
|
+
/* eslint-disable-next-line max-len */
|
|
402
|
+
queryParams[
|
|
403
|
+
Param.DataPanelCustomGroupsAccordionInitialState
|
|
404
|
+
] = dataPanelCustomGroupsAccordionInitialState;
|
|
405
|
+
} else {
|
|
406
|
+
/* eslint-disable-next-line max-len */
|
|
407
|
+
queryParams[Param.DataPanelCustomGroupsAccordionInitialState] = DataPanelCustomColumnGroupsAccordionState.EXPAND_ALL;
|
|
408
|
+
}
|
|
352
409
|
let query = '';
|
|
353
410
|
const queryParamsString = getQueryParamString(queryParams, true);
|
|
354
411
|
if (queryParamsString) {
|
|
@@ -356,7 +413,7 @@ export class SearchEmbed extends TsEmbed {
|
|
|
356
413
|
}
|
|
357
414
|
|
|
358
415
|
const parameterQuery = getRuntimeParameters(runtimeParameters || []);
|
|
359
|
-
if (parameterQuery) query += `&${parameterQuery}`;
|
|
416
|
+
if (parameterQuery && !excludeRuntimeParametersfromURL) query += `&${parameterQuery}`;
|
|
360
417
|
|
|
361
418
|
const filterQuery = getFilterQuery(runtimeFilters || []);
|
|
362
419
|
if (filterQuery && !excludeRuntimeFiltersfromURL) {
|
|
@@ -368,7 +425,6 @@ export class SearchEmbed extends TsEmbed {
|
|
|
368
425
|
/**
|
|
369
426
|
* Construct the URL of the embedded ThoughtSpot search to be
|
|
370
427
|
* loaded in the iframe
|
|
371
|
-
*
|
|
372
428
|
* @param answerId The GUID of a saved answer
|
|
373
429
|
* @param dataSources A list of data source GUIDs
|
|
374
430
|
*/
|
|
@@ -8,12 +8,9 @@ import {
|
|
|
8
8
|
getRootEl,
|
|
9
9
|
} from '../test/test-utils';
|
|
10
10
|
|
|
11
|
-
import * as authInstance from '../auth';
|
|
12
|
-
|
|
13
11
|
describe('Trigger', () => {
|
|
14
12
|
beforeEach(() => {
|
|
15
13
|
document.body.innerHTML = getDocumentBody();
|
|
16
|
-
jest.spyOn(authInstance, 'postLoginService').mockResolvedValue(true);
|
|
17
14
|
});
|
|
18
15
|
test('should trigger the event', async (done) => {
|
|
19
16
|
init({
|
|
@@ -1,39 +1,45 @@
|
|
|
1
1
|
/* eslint-disable dot-notation */
|
|
2
|
+
import * as authInstance from '../auth';
|
|
2
3
|
import { resetCachedAuthToken } from '../authToken';
|
|
4
|
+
import * as config from '../config';
|
|
3
5
|
import {
|
|
6
|
+
AppEmbed,
|
|
4
7
|
AuthType,
|
|
5
|
-
init,
|
|
6
8
|
EmbedEvent,
|
|
7
|
-
SearchEmbed,
|
|
8
|
-
PinboardEmbed,
|
|
9
|
-
LiveboardViewConfig,
|
|
10
|
-
AppEmbed,
|
|
11
9
|
LiveboardEmbed,
|
|
10
|
+
LiveboardViewConfig,
|
|
11
|
+
PinboardEmbed,
|
|
12
|
+
SearchEmbed,
|
|
13
|
+
init,
|
|
12
14
|
} from '../index';
|
|
15
|
+
import * as mixpanelInstance from '../mixpanel-service';
|
|
16
|
+
import { MIXPANEL_EVENT } from '../mixpanel-service';
|
|
13
17
|
import {
|
|
14
|
-
Action,
|
|
18
|
+
Action,
|
|
19
|
+
HomeLeftNavItem,
|
|
20
|
+
RuntimeFilter,
|
|
21
|
+
RuntimeFilterOp,
|
|
22
|
+
HomepageModule,
|
|
23
|
+
HostEvent,
|
|
24
|
+
RuntimeParameter,
|
|
15
25
|
} from '../types';
|
|
16
26
|
import {
|
|
27
|
+
createRootEleForEmbed,
|
|
28
|
+
defaultParamsForPinboardEmbed,
|
|
17
29
|
executeAfterWait,
|
|
30
|
+
expectUrlMatchesWithParams,
|
|
18
31
|
getDocumentBody,
|
|
19
32
|
getIFrameEl,
|
|
20
33
|
getIFrameSrc,
|
|
21
34
|
getRootEl,
|
|
35
|
+
mockMessageChannel,
|
|
22
36
|
postMessageToParent,
|
|
23
|
-
defaultParamsForPinboardEmbed,
|
|
24
37
|
waitFor,
|
|
25
|
-
expectUrlMatchesWithParams,
|
|
26
|
-
mockMessageChannel,
|
|
27
|
-
createRootEleForEmbed,
|
|
28
38
|
} from '../test/test-utils';
|
|
29
|
-
import * as config from '../config';
|
|
30
|
-
import * as tsEmbedInstance from './ts-embed';
|
|
31
|
-
import * as mixpanelInstance from '../mixpanel-service';
|
|
32
|
-
import * as authInstance from '../auth';
|
|
33
|
-
import * as baseInstance from './base';
|
|
34
|
-
import { MIXPANEL_EVENT } from '../mixpanel-service';
|
|
35
39
|
import * as authService from '../utils/authService/authService';
|
|
36
40
|
import { logger } from '../utils/logger';
|
|
41
|
+
import * as baseInstance from './base';
|
|
42
|
+
import * as tsEmbedInstance from './ts-embed';
|
|
37
43
|
|
|
38
44
|
const defaultViewConfig = {
|
|
39
45
|
frameParams: {
|
|
@@ -83,10 +89,6 @@ describe('Unit test case for ts embed', () => {
|
|
|
83
89
|
resetCachedAuthToken();
|
|
84
90
|
});
|
|
85
91
|
|
|
86
|
-
beforeAll(() => {
|
|
87
|
-
jest.spyOn(authInstance, 'postLoginService').mockResolvedValue(true);
|
|
88
|
-
});
|
|
89
|
-
|
|
90
92
|
describe('AuthExpire embedEvent in cookieless authentication authType', () => {
|
|
91
93
|
beforeAll(() => {
|
|
92
94
|
jest.spyOn(authInstance, 'doCookielessTokenAuth').mockResolvedValueOnce(true);
|
|
@@ -159,6 +161,7 @@ describe('Unit test case for ts embed', () => {
|
|
|
159
161
|
customisations,
|
|
160
162
|
authToken: '',
|
|
161
163
|
runtimeFilterParams: null,
|
|
164
|
+
runtimeParameterParams: null,
|
|
162
165
|
hiddenHomeLeftNavItems: [],
|
|
163
166
|
hiddenHomepageModules: [],
|
|
164
167
|
hostConfig: undefined,
|
|
@@ -190,6 +193,7 @@ describe('Unit test case for ts embed', () => {
|
|
|
190
193
|
customisations: customisationsView,
|
|
191
194
|
authToken: '',
|
|
192
195
|
runtimeFilterParams: null,
|
|
196
|
+
runtimeParameterParams: null,
|
|
193
197
|
hiddenHomeLeftNavItems: [],
|
|
194
198
|
hiddenHomepageModules: [],
|
|
195
199
|
hostConfig: undefined,
|
|
@@ -230,6 +234,7 @@ describe('Unit test case for ts embed', () => {
|
|
|
230
234
|
authToken: '',
|
|
231
235
|
hostConfig: undefined,
|
|
232
236
|
runtimeFilterParams: null,
|
|
237
|
+
runtimeParameterParams: null,
|
|
233
238
|
hiddenHomeLeftNavItems: [],
|
|
234
239
|
hiddenHomepageModules: [HomepageModule.MyLibrary, HomepageModule.Learning],
|
|
235
240
|
reorderedHomepageModules: [],
|
|
@@ -266,6 +271,7 @@ describe('Unit test case for ts embed', () => {
|
|
|
266
271
|
authToken: '',
|
|
267
272
|
hostConfig: undefined,
|
|
268
273
|
runtimeFilterParams: null,
|
|
274
|
+
runtimeParameterParams: null,
|
|
269
275
|
hiddenHomeLeftNavItems: [],
|
|
270
276
|
hiddenHomepageModules: [],
|
|
271
277
|
reorderedHomepageModules: [HomepageModule.MyLibrary, HomepageModule.Watchlist],
|
|
@@ -273,6 +279,46 @@ describe('Unit test case for ts embed', () => {
|
|
|
273
279
|
});
|
|
274
280
|
});
|
|
275
281
|
|
|
282
|
+
test('Runtime parameters from view Config should be part of app_init payload when excludeRuntimeParametsfromURL is true', async () => {
|
|
283
|
+
const mockEmbedEventPayload = {
|
|
284
|
+
type: EmbedEvent.APP_INIT,
|
|
285
|
+
data: {},
|
|
286
|
+
};
|
|
287
|
+
const mockRuntimeParameters: RuntimeParameter[] = [
|
|
288
|
+
{
|
|
289
|
+
name: 'color',
|
|
290
|
+
value: 'blue',
|
|
291
|
+
},
|
|
292
|
+
];
|
|
293
|
+
|
|
294
|
+
const searchEmbed = new SearchEmbed(getRootEl(), {
|
|
295
|
+
...defaultViewConfig,
|
|
296
|
+
excludeRuntimeParametersfromURL: true,
|
|
297
|
+
runtimeParameters: mockRuntimeParameters,
|
|
298
|
+
});
|
|
299
|
+
searchEmbed.render();
|
|
300
|
+
const mockPort: any = {
|
|
301
|
+
postMessage: jest.fn(),
|
|
302
|
+
};
|
|
303
|
+
await executeAfterWait(() => {
|
|
304
|
+
const iframe = getIFrameEl();
|
|
305
|
+
postMessageToParent(iframe.contentWindow, mockEmbedEventPayload, mockPort);
|
|
306
|
+
});
|
|
307
|
+
expect(mockPort.postMessage).toHaveBeenCalledWith({
|
|
308
|
+
type: EmbedEvent.APP_INIT,
|
|
309
|
+
data: {
|
|
310
|
+
customisations,
|
|
311
|
+
authToken: '',
|
|
312
|
+
runtimeFilterParams: null,
|
|
313
|
+
runtimeParameterParams: 'param1=color¶mVal1=blue',
|
|
314
|
+
hiddenHomeLeftNavItems: [],
|
|
315
|
+
hiddenHomepageModules: [],
|
|
316
|
+
hostConfig: undefined,
|
|
317
|
+
reorderedHomepageModules: [],
|
|
318
|
+
},
|
|
319
|
+
});
|
|
320
|
+
});
|
|
321
|
+
|
|
276
322
|
test('Runtime filters from view Config should be part of app_init payload when excludeRuntimeFiltersfromURL is true', async () => {
|
|
277
323
|
const mockEmbedEventPayload = {
|
|
278
324
|
type: EmbedEvent.APP_INIT,
|
|
@@ -305,6 +351,7 @@ describe('Unit test case for ts embed', () => {
|
|
|
305
351
|
customisations,
|
|
306
352
|
authToken: '',
|
|
307
353
|
runtimeFilterParams: 'col1=color&op1=EQ&val1=blue',
|
|
354
|
+
runtimeParameterParams: null,
|
|
308
355
|
hiddenHomeLeftNavItems: [],
|
|
309
356
|
hiddenHomepageModules: [],
|
|
310
357
|
hostConfig: undefined,
|
|
@@ -344,6 +391,7 @@ describe('Unit test case for ts embed', () => {
|
|
|
344
391
|
customisations,
|
|
345
392
|
authToken: '',
|
|
346
393
|
runtimeFilterParams: null,
|
|
394
|
+
runtimeParameterParams: null,
|
|
347
395
|
hiddenHomeLeftNavItems: [],
|
|
348
396
|
hiddenHomepageModules: [],
|
|
349
397
|
hostConfig: undefined,
|
|
@@ -384,6 +432,7 @@ describe('Unit test case for ts embed', () => {
|
|
|
384
432
|
customisations,
|
|
385
433
|
authToken: '',
|
|
386
434
|
runtimeFilterParams: null,
|
|
435
|
+
runtimeParameterParams: null,
|
|
387
436
|
hiddenHomeLeftNavItems: [],
|
|
388
437
|
hiddenHomepageModules: [],
|
|
389
438
|
hostConfig: undefined,
|
|
@@ -421,8 +470,11 @@ describe('Unit test case for ts embed', () => {
|
|
|
421
470
|
authToken: '',
|
|
422
471
|
hostConfig: undefined,
|
|
423
472
|
runtimeFilterParams: null,
|
|
424
|
-
|
|
425
|
-
|
|
473
|
+
runtimeParameterParams: null,
|
|
474
|
+
hiddenHomeLeftNavItems: [
|
|
475
|
+
HomeLeftNavItem.Home,
|
|
476
|
+
HomeLeftNavItem.MonitorSubscription,
|
|
477
|
+
],
|
|
426
478
|
hiddenHomepageModules: [],
|
|
427
479
|
reorderedHomepageModules: [],
|
|
428
480
|
},
|
|
@@ -587,6 +639,7 @@ describe('Unit test case for ts embed', () => {
|
|
|
587
639
|
customisations,
|
|
588
640
|
authToken: 'test_auth_token1',
|
|
589
641
|
runtimeFilterParams: null,
|
|
642
|
+
runtimeParameterParams: null,
|
|
590
643
|
hiddenHomeLeftNavItems: [],
|
|
591
644
|
hiddenHomepageModules: [],
|
|
592
645
|
hostConfig: undefined,
|
|
@@ -651,7 +704,10 @@ describe('Unit test case for ts embed', () => {
|
|
|
651
704
|
type: EmbedEvent.APP_INIT,
|
|
652
705
|
data: {},
|
|
653
706
|
};
|
|
654
|
-
const searchEmbed = new SearchEmbed(getRootEl(), {
|
|
707
|
+
const searchEmbed = new SearchEmbed(getRootEl(), {
|
|
708
|
+
...defaultViewConfig,
|
|
709
|
+
preRenderId: 'test',
|
|
710
|
+
});
|
|
655
711
|
searchEmbed.preRender();
|
|
656
712
|
const mockPort: any = {
|
|
657
713
|
postMessage: jest.fn(),
|
|
@@ -684,7 +740,6 @@ describe('Unit test case for ts embed', () => {
|
|
|
684
740
|
const mockPort: any = {
|
|
685
741
|
postMessage: jest.fn(),
|
|
686
742
|
};
|
|
687
|
-
const loggerSpy = jest.spyOn(logger, 'error').mockResolvedValueOnce(true);
|
|
688
743
|
await executeAfterWait(() => {
|
|
689
744
|
const iframe = getIFrameEl();
|
|
690
745
|
postMessageToParent(iframe.contentWindow, mockEmbedEventPayload, mockPort);
|
|
@@ -694,7 +749,6 @@ describe('Unit test case for ts embed', () => {
|
|
|
694
749
|
expect(baseInstance.notifyAuthFailure).toBeCalledWith(
|
|
695
750
|
authInstance.AuthFailureType.EXPIRY,
|
|
696
751
|
);
|
|
697
|
-
expect(loggerSpy).toHaveBeenCalledTimes(1);
|
|
698
752
|
});
|
|
699
753
|
|
|
700
754
|
jest.spyOn(authService, 'verifyTokenService').mockClear();
|
|
@@ -710,10 +764,12 @@ describe('Unit test case for ts embed', () => {
|
|
|
710
764
|
type: EmbedEvent.AuthExpire,
|
|
711
765
|
data: {},
|
|
712
766
|
};
|
|
713
|
-
const searchEmbed = new SearchEmbed(getRootEl(), {
|
|
767
|
+
const searchEmbed = new SearchEmbed(getRootEl(), {
|
|
768
|
+
...defaultViewConfig,
|
|
769
|
+
preRenderId: 'test',
|
|
770
|
+
});
|
|
714
771
|
jest.spyOn(baseInstance, 'notifyAuthFailure');
|
|
715
772
|
searchEmbed.preRender();
|
|
716
|
-
const loggerSpy = jest.spyOn(logger, 'error').mockResolvedValueOnce(true);
|
|
717
773
|
const mockPort: any = {
|
|
718
774
|
postMessage: jest.fn(),
|
|
719
775
|
};
|
|
@@ -727,7 +783,6 @@ describe('Unit test case for ts embed', () => {
|
|
|
727
783
|
expect(baseInstance.notifyAuthFailure).toBeCalledWith(
|
|
728
784
|
authInstance.AuthFailureType.EXPIRY,
|
|
729
785
|
);
|
|
730
|
-
expect(loggerSpy).toHaveBeenCalledTimes(1);
|
|
731
786
|
});
|
|
732
787
|
|
|
733
788
|
jest.spyOn(authService, 'verifyTokenService').mockClear();
|
|
@@ -1216,7 +1271,7 @@ describe('Unit test case for ts embed', () => {
|
|
|
1216
1271
|
expectUrlMatchesWithParams(
|
|
1217
1272
|
getIFrameSrc(),
|
|
1218
1273
|
`http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=true&profileAndHelpInNavBarHidden=false&${defaultParamsForPinboardEmbed}`
|
|
1219
|
-
|
|
1274
|
+
+ `&foo=bar&baz=1&bool=true${defaultParamsPost}#/home`,
|
|
1220
1275
|
);
|
|
1221
1276
|
});
|
|
1222
1277
|
|
|
@@ -1232,7 +1287,7 @@ describe('Unit test case for ts embed', () => {
|
|
|
1232
1287
|
expectUrlMatchesWithParams(
|
|
1233
1288
|
getIFrameSrc(),
|
|
1234
1289
|
`http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=true&profileAndHelpInNavBarHidden=false&${defaultParamsForPinboardEmbed}`
|
|
1235
|
-
|
|
1290
|
+
+ `&showAlerts=true${defaultParamsPost}#/home`,
|
|
1236
1291
|
);
|
|
1237
1292
|
});
|
|
1238
1293
|
it('Sets the locale param', async () => {
|
|
@@ -1247,7 +1302,7 @@ describe('Unit test case for ts embed', () => {
|
|
|
1247
1302
|
expectUrlMatchesWithParams(
|
|
1248
1303
|
getIFrameSrc(),
|
|
1249
1304
|
`http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=true&profileAndHelpInNavBarHidden=false&${defaultParamsForPinboardEmbed}`
|
|
1250
|
-
|
|
1305
|
+
+ `&locale=ja-JP${defaultParamsPost}#/home`,
|
|
1251
1306
|
);
|
|
1252
1307
|
});
|
|
1253
1308
|
it('Sets the iconSprite url', async () => {
|
|
@@ -1264,7 +1319,7 @@ describe('Unit test case for ts embed', () => {
|
|
|
1264
1319
|
expectUrlMatchesWithParams(
|
|
1265
1320
|
getIFrameSrc(),
|
|
1266
1321
|
`http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=true&profileAndHelpInNavBarHidden=false&${defaultParamsForPinboardEmbed}`
|
|
1267
|
-
|
|
1322
|
+
+ `&iconSprite=iconSprite.com${defaultParamsPost}#/home`,
|
|
1268
1323
|
);
|
|
1269
1324
|
});
|
|
1270
1325
|
|
|
@@ -1331,6 +1386,28 @@ describe('Unit test case for ts embed', () => {
|
|
|
1331
1386
|
done();
|
|
1332
1387
|
});
|
|
1333
1388
|
});
|
|
1389
|
+
|
|
1390
|
+
it('Should set the override locale for number/date and currency format', async () => {
|
|
1391
|
+
jest.spyOn(baseInstance, 'getAuthPromise').mockResolvedValue(true);
|
|
1392
|
+
init({
|
|
1393
|
+
thoughtSpotHost: 'tshost',
|
|
1394
|
+
authType: AuthType.None,
|
|
1395
|
+
numberFormatLocale: 'en-US',
|
|
1396
|
+
dateFormatLocale: 'en-IN',
|
|
1397
|
+
currencyFormat: 'USD',
|
|
1398
|
+
});
|
|
1399
|
+
const appEmbed = new AppEmbed(getRootEl(), {
|
|
1400
|
+
frameParams: {
|
|
1401
|
+
width: '100%',
|
|
1402
|
+
height: '100%',
|
|
1403
|
+
},
|
|
1404
|
+
});
|
|
1405
|
+
await appEmbed.render();
|
|
1406
|
+
expectUrlMatchesWithParams(
|
|
1407
|
+
getIFrameSrc(),
|
|
1408
|
+
`http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=true&profileAndHelpInNavBarHidden=false&numberFormatLocale=en-US&dateFormatLocale=en-IN¤cyFormat=USD${defaultParamsPost}#/home`,
|
|
1409
|
+
);
|
|
1410
|
+
});
|
|
1334
1411
|
});
|
|
1335
1412
|
|
|
1336
1413
|
describe('When destroyed', () => {
|