@thoughtspot/visual-embed-sdk 1.36.7 → 1.36.9-primary-actions

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.
Files changed (153) hide show
  1. package/cjs/package.json +15 -15
  2. package/cjs/src/embed/bodyless-conversation.d.ts +16 -0
  3. package/cjs/src/embed/bodyless-conversation.d.ts.map +1 -1
  4. package/cjs/src/embed/bodyless-conversation.js +1 -1
  5. package/cjs/src/embed/bodyless-conversation.js.map +1 -1
  6. package/cjs/src/embed/liveboard.d.ts +15 -0
  7. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  8. package/cjs/src/embed/liveboard.js +4 -1
  9. package/cjs/src/embed/liveboard.js.map +1 -1
  10. package/cjs/src/embed/liveboard.spec.js +25 -1
  11. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  12. package/cjs/src/embed/search-bar.d.ts +1 -1
  13. package/cjs/src/embed/search.d.ts +1 -1
  14. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  15. package/cjs/src/embed/ts-embed.js +14 -2
  16. package/cjs/src/embed/ts-embed.js.map +1 -1
  17. package/cjs/src/embed/ts-embed.spec.js +111 -0
  18. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  19. package/cjs/src/index.d.ts +2 -2
  20. package/cjs/src/index.d.ts.map +1 -1
  21. package/cjs/src/index.js +2 -1
  22. package/cjs/src/index.js.map +1 -1
  23. package/cjs/src/pages/embed-test.page.d.ts +8 -0
  24. package/cjs/src/pages/embed-test.page.d.ts.map +1 -0
  25. package/cjs/src/pages/embed-test.page.js +20 -0
  26. package/cjs/src/pages/embed-test.page.js.map +1 -0
  27. package/cjs/src/pages/home.page.d.ts +6 -0
  28. package/cjs/src/pages/home.page.d.ts.map +1 -0
  29. package/cjs/src/pages/home.page.js +12 -0
  30. package/cjs/src/pages/home.page.js.map +1 -0
  31. package/cjs/src/pages/login.page.d.ts +15 -0
  32. package/cjs/src/pages/login.page.d.ts.map +1 -0
  33. package/cjs/src/pages/login.page.js +22 -0
  34. package/cjs/src/pages/login.page.js.map +1 -0
  35. package/cjs/src/react/index.d.ts +1 -1
  36. package/cjs/src/react/index.d.ts.map +1 -1
  37. package/cjs/src/react/index.js +4 -3
  38. package/cjs/src/react/index.js.map +1 -1
  39. package/cjs/src/react/util.d.ts +2 -0
  40. package/cjs/src/react/util.d.ts.map +1 -1
  41. package/cjs/src/react/util.js.map +1 -1
  42. package/cjs/src/tests/auth.test.d.ts +1 -0
  43. package/cjs/src/tests/auth.test.d.ts.map +1 -0
  44. package/cjs/src/tests/auth.test.js +1 -0
  45. package/cjs/src/tests/auth.test.js.map +1 -0
  46. package/cjs/src/tests/e2e/auth.spec.d.ts +2 -0
  47. package/cjs/src/tests/e2e/auth.spec.d.ts.map +1 -0
  48. package/cjs/src/tests/e2e/auth.spec.js +54 -0
  49. package/cjs/src/tests/e2e/auth.spec.js.map +1 -0
  50. package/cjs/src/types.d.ts +94 -11
  51. package/cjs/src/types.d.ts.map +1 -1
  52. package/cjs/src/types.js +56 -9
  53. package/cjs/src/types.js.map +1 -1
  54. package/dist/{index-BratITNz.js → index-BJx3m5_V.js} +1 -1
  55. package/dist/index-Do_T8J8z.js +7370 -0
  56. package/dist/src/embed/bodyless-conversation.d.ts +16 -0
  57. package/dist/src/embed/bodyless-conversation.d.ts.map +1 -1
  58. package/dist/src/embed/liveboard.d.ts +15 -0
  59. package/dist/src/embed/liveboard.d.ts.map +1 -1
  60. package/dist/src/embed/search-bar.d.ts +1 -1
  61. package/dist/src/embed/search.d.ts +1 -1
  62. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  63. package/dist/src/index.d.ts +2 -2
  64. package/dist/src/index.d.ts.map +1 -1
  65. package/dist/src/pages/embed-test.page.d.ts +8 -0
  66. package/dist/src/pages/embed-test.page.d.ts.map +1 -0
  67. package/dist/src/pages/home.page.d.ts +6 -0
  68. package/dist/src/pages/home.page.d.ts.map +1 -0
  69. package/dist/src/pages/login.page.d.ts +15 -0
  70. package/dist/src/pages/login.page.d.ts.map +1 -0
  71. package/dist/src/react/index.d.ts +1 -1
  72. package/dist/src/react/index.d.ts.map +1 -1
  73. package/dist/src/react/util.d.ts +2 -0
  74. package/dist/src/react/util.d.ts.map +1 -1
  75. package/dist/src/tests/auth.test.d.ts +1 -0
  76. package/dist/src/tests/auth.test.d.ts.map +1 -0
  77. package/dist/src/tests/e2e/auth.spec.d.ts +2 -0
  78. package/dist/src/tests/e2e/auth.spec.d.ts.map +1 -0
  79. package/dist/src/types.d.ts +94 -11
  80. package/dist/src/types.d.ts.map +1 -1
  81. package/dist/tsembed-react.es.js +79 -17
  82. package/dist/tsembed-react.js +77 -15
  83. package/dist/tsembed.es.js +78 -16
  84. package/dist/tsembed.js +76 -14
  85. package/dist/visual-embed-sdk-react-full.d.ts +128 -14
  86. package/dist/visual-embed-sdk-react.d.ts +128 -14
  87. package/dist/visual-embed-sdk.d.ts +127 -14
  88. package/lib/package.json +15 -15
  89. package/lib/src/embed/bodyless-conversation.d.ts +16 -0
  90. package/lib/src/embed/bodyless-conversation.d.ts.map +1 -1
  91. package/lib/src/embed/bodyless-conversation.js +1 -1
  92. package/lib/src/embed/bodyless-conversation.js.map +1 -1
  93. package/lib/src/embed/liveboard.d.ts +15 -0
  94. package/lib/src/embed/liveboard.d.ts.map +1 -1
  95. package/lib/src/embed/liveboard.js +4 -1
  96. package/lib/src/embed/liveboard.js.map +1 -1
  97. package/lib/src/embed/liveboard.spec.js +25 -1
  98. package/lib/src/embed/liveboard.spec.js.map +1 -1
  99. package/lib/src/embed/search-bar.d.ts +1 -1
  100. package/lib/src/embed/search.d.ts +1 -1
  101. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  102. package/lib/src/embed/ts-embed.js +14 -2
  103. package/lib/src/embed/ts-embed.js.map +1 -1
  104. package/lib/src/embed/ts-embed.spec.js +111 -0
  105. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  106. package/lib/src/index.d.ts +2 -2
  107. package/lib/src/index.d.ts.map +1 -1
  108. package/lib/src/index.js +2 -2
  109. package/lib/src/index.js.map +1 -1
  110. package/lib/src/pages/embed-test.page.d.ts +8 -0
  111. package/lib/src/pages/embed-test.page.d.ts.map +1 -0
  112. package/lib/src/pages/embed-test.page.js +16 -0
  113. package/lib/src/pages/embed-test.page.js.map +1 -0
  114. package/lib/src/pages/home.page.d.ts +6 -0
  115. package/lib/src/pages/home.page.d.ts.map +1 -0
  116. package/lib/src/pages/home.page.js +8 -0
  117. package/lib/src/pages/home.page.js.map +1 -0
  118. package/lib/src/pages/login.page.d.ts +15 -0
  119. package/lib/src/pages/login.page.d.ts.map +1 -0
  120. package/lib/src/pages/login.page.js +18 -0
  121. package/lib/src/pages/login.page.js.map +1 -0
  122. package/lib/src/react/index.d.ts +1 -1
  123. package/lib/src/react/index.d.ts.map +1 -1
  124. package/lib/src/react/index.js +3 -3
  125. package/lib/src/react/index.js.map +1 -1
  126. package/lib/src/react/util.d.ts +2 -0
  127. package/lib/src/react/util.d.ts.map +1 -1
  128. package/lib/src/react/util.js.map +1 -1
  129. package/lib/src/tests/auth.test.d.ts +1 -0
  130. package/lib/src/tests/auth.test.d.ts.map +1 -0
  131. package/lib/src/tests/auth.test.js +1 -0
  132. package/lib/src/tests/auth.test.js.map +1 -0
  133. package/lib/src/tests/e2e/auth.spec.d.ts +2 -0
  134. package/lib/src/tests/e2e/auth.spec.d.ts.map +1 -0
  135. package/lib/src/tests/e2e/auth.spec.js +52 -0
  136. package/lib/src/tests/e2e/auth.spec.js.map +1 -0
  137. package/lib/src/types.d.ts +94 -11
  138. package/lib/src/types.d.ts.map +1 -1
  139. package/lib/src/types.js +55 -8
  140. package/lib/src/types.js.map +1 -1
  141. package/lib/src/visual-embed-sdk.d.ts +129 -15
  142. package/package.json +15 -15
  143. package/src/embed/bodyless-conversation.ts +1 -1
  144. package/src/embed/liveboard.spec.ts +35 -7
  145. package/src/embed/liveboard.ts +21 -1
  146. package/src/embed/search-bar.tsx +1 -1
  147. package/src/embed/search.ts +1 -1
  148. package/src/embed/ts-embed.spec.ts +118 -0
  149. package/src/embed/ts-embed.ts +15 -0
  150. package/src/index.ts +2 -0
  151. package/src/react/index.tsx +4 -3
  152. package/src/react/util.ts +1 -0
  153. package/src/types.ts +95 -10
@@ -346,6 +346,7 @@ describe('Unit test case for ts embed', () => {
346
346
  runtimeParameterParams: null,
347
347
  hiddenHomeLeftNavItems: [],
348
348
  hiddenHomepageModules: [],
349
+ hiddenListColumns: [],
349
350
  hostConfig: undefined,
350
351
  reorderedHomepageModules: [],
351
352
  customVariablesForThirdPartyTools,
@@ -381,6 +382,7 @@ describe('Unit test case for ts embed', () => {
381
382
  runtimeParameterParams: null,
382
383
  hiddenHomeLeftNavItems: [],
383
384
  hiddenHomepageModules: [],
385
+ hiddenListColumns: [],
384
386
  hostConfig: undefined,
385
387
  reorderedHomepageModules: [],
386
388
  customVariablesForThirdPartyTools,
@@ -422,6 +424,7 @@ describe('Unit test case for ts embed', () => {
422
424
  runtimeParameterParams: null,
423
425
  hiddenHomeLeftNavItems: [],
424
426
  hiddenHomepageModules: [HomepageModule.MyLibrary, HomepageModule.Learning],
427
+ hiddenListColumns: [],
425
428
  reorderedHomepageModules: [],
426
429
  customVariablesForThirdPartyTools,
427
430
  },
@@ -459,6 +462,7 @@ describe('Unit test case for ts embed', () => {
459
462
  runtimeParameterParams: null,
460
463
  hiddenHomeLeftNavItems: [],
461
464
  hiddenHomepageModules: [],
465
+ hiddenListColumns: [],
462
466
  reorderedHomepageModules: [],
463
467
  customVariablesForThirdPartyTools,
464
468
  },
@@ -499,6 +503,7 @@ describe('Unit test case for ts embed', () => {
499
503
  runtimeParameterParams: null,
500
504
  hiddenHomeLeftNavItems: [],
501
505
  hiddenHomepageModules: [],
506
+ hiddenListColumns: [],
502
507
  reorderedHomepageModules:
503
508
  [HomepageModule.MyLibrary, HomepageModule.Watchlist],
504
509
  customVariablesForThirdPartyTools,
@@ -542,6 +547,7 @@ describe('Unit test case for ts embed', () => {
542
547
  runtimeParameterParams: 'param1=color&paramVal1=blue',
543
548
  hiddenHomeLeftNavItems: [],
544
549
  hiddenHomepageModules: [],
550
+ hiddenListColumns: [],
545
551
  hostConfig: undefined,
546
552
  reorderedHomepageModules: [],
547
553
  customVariablesForThirdPartyTools,
@@ -586,6 +592,7 @@ describe('Unit test case for ts embed', () => {
586
592
  runtimeParameterParams: null,
587
593
  hiddenHomeLeftNavItems: [],
588
594
  hiddenHomepageModules: [],
595
+ hiddenListColumns: [],
589
596
  hostConfig: undefined,
590
597
  reorderedHomepageModules: [],
591
598
  customVariablesForThirdPartyTools,
@@ -629,6 +636,7 @@ describe('Unit test case for ts embed', () => {
629
636
  runtimeParameterParams: null,
630
637
  hiddenHomeLeftNavItems: [],
631
638
  hiddenHomepageModules: [],
639
+ hiddenListColumns: [],
632
640
  hostConfig: undefined,
633
641
  reorderedHomepageModules: [],
634
642
  customVariablesForThirdPartyTools,
@@ -673,6 +681,7 @@ describe('Unit test case for ts embed', () => {
673
681
  runtimeParameterParams: null,
674
682
  hiddenHomeLeftNavItems: [],
675
683
  hiddenHomepageModules: [],
684
+ hiddenListColumns: [],
676
685
  hostConfig: undefined,
677
686
  reorderedHomepageModules: [],
678
687
  customVariablesForThirdPartyTools,
@@ -716,6 +725,7 @@ describe('Unit test case for ts embed', () => {
716
725
  hiddenHomeLeftNavItems:
717
726
  [HomeLeftNavItem.Home, HomeLeftNavItem.MonitorSubscription],
718
727
  hiddenHomepageModules: [],
728
+ hiddenListColumns: [],
719
729
  reorderedHomepageModules: [],
720
730
  customVariablesForThirdPartyTools,
721
731
  },
@@ -883,6 +893,7 @@ describe('Unit test case for ts embed', () => {
883
893
  runtimeParameterParams: null,
884
894
  hiddenHomeLeftNavItems: [],
885
895
  hiddenHomepageModules: [],
896
+ hiddenListColumns: [],
886
897
  hostConfig: undefined,
887
898
  reorderedHomepageModules: [],
888
899
  customVariablesForThirdPartyTools: {},
@@ -894,6 +905,113 @@ describe('Unit test case for ts embed', () => {
894
905
  });
895
906
  });
896
907
 
908
+ describe('StringIDs and StringIDsUrl in customisations', () => {
909
+ const customisationWithStringIds = {
910
+ style: {
911
+ customCSS: {},
912
+ },
913
+ content: {
914
+ strings: {
915
+ Liveboard: 'Dashboard',
916
+ },
917
+ stringIDsUrl: 'https://sample-string-ids-url.com',
918
+ stringIDs: {
919
+ 'liveboard.header.title': 'Dashboard name',
920
+ },
921
+ },
922
+ };
923
+ beforeEach(() => {
924
+ jest.spyOn(authInstance, 'doCookielessTokenAuth').mockResolvedValueOnce(true);
925
+ jest.spyOn(authService, 'verifyTokenService').mockResolvedValue(true);
926
+ init({
927
+ thoughtSpotHost: 'tshost',
928
+ customizations: customisationWithStringIds,
929
+ authType: AuthType.TrustedAuthTokenCookieless,
930
+ getAuthToken: () => Promise.resolve('test_auth_token1'),
931
+ });
932
+ });
933
+
934
+ afterEach(() => {
935
+ baseInstance.reset();
936
+ jest.clearAllMocks();
937
+ });
938
+
939
+ test('should pass stringIDsUrl and stringIDs in customisations during APP_INIT', async () => {
940
+ const mockEmbedEventPayload = {
941
+ type: EmbedEvent.APP_INIT,
942
+ data: {},
943
+ };
944
+ const searchEmbed = new SearchEmbed(getRootEl(), defaultViewConfig);
945
+ searchEmbed.render();
946
+ const mockPort: any = {
947
+ postMessage: jest.fn(),
948
+ };
949
+
950
+ await executeAfterWait(() => {
951
+ const iframe = getIFrameEl();
952
+ expect(iframe.src).toContain('overrideStringIDsUrl=https://sample-string-ids-url.com');
953
+ postMessageToParent(iframe.contentWindow, mockEmbedEventPayload, mockPort);
954
+ });
955
+
956
+ await executeAfterWait(() => {
957
+ expect(mockPort.postMessage).toHaveBeenCalledWith({
958
+ type: EmbedEvent.APP_INIT,
959
+ data: {
960
+ customisations: {
961
+ content: {
962
+ strings: {
963
+ Liveboard: 'Dashboard',
964
+ },
965
+ stringIDsUrl: 'https://sample-string-ids-url.com',
966
+ stringIDs: {
967
+ 'liveboard.header.title': 'Dashboard name',
968
+ },
969
+ },
970
+ style: {
971
+ customCSS: {},
972
+ customCSSUrl: undefined,
973
+ },
974
+ },
975
+ authToken: 'test_auth_token1',
976
+ runtimeFilterParams: null,
977
+ runtimeParameterParams: null,
978
+ hiddenHomeLeftNavItems: [],
979
+ hiddenHomepageModules: [],
980
+ hiddenListColumns: [],
981
+ hostConfig: undefined,
982
+ reorderedHomepageModules: [],
983
+ customVariablesForThirdPartyTools: {},
984
+ },
985
+ });
986
+ const customisationContent = mockPort.postMessage.mock.calls[0][0].data.customisations.content;
987
+ expect(customisationContent.stringIDsUrl)
988
+ .toBe('https://sample-string-ids-url.com');
989
+ expect(customisationContent.stringIDs)
990
+ .toEqual({
991
+ 'liveboard.header.title': 'Dashboard name',
992
+ });
993
+ });
994
+ });
995
+
996
+ test('should allow passing exposeTranslationIDs in viewConfig', async () => {
997
+ const mockEmbedEventPayload = {
998
+ type: EmbedEvent.APP_INIT,
999
+ data: {},
1000
+ };
1001
+ const searchEmbed = new SearchEmbed(getRootEl(), { ...defaultViewConfig, exposeTranslationIDs: true });
1002
+ searchEmbed.render();
1003
+ const mockPort: any = {
1004
+ postMessage: jest.fn(),
1005
+ };
1006
+
1007
+ await executeAfterWait(() => {
1008
+ const iframe = getIFrameEl();
1009
+ expect(iframe.src).toContain('exposeTranslationIDs=true');
1010
+ postMessageToParent(iframe.contentWindow, mockEmbedEventPayload, mockPort);
1011
+ });
1012
+ });
1013
+ });
1014
+
897
1015
  describe('Token fetch fails in cookieless authentication authType', () => {
898
1016
  beforeEach(() => {
899
1017
  jest.spyOn(authInstance, 'doCookielessTokenAuth').mockResolvedValueOnce(true);
@@ -377,6 +377,7 @@ export class TsEmbed {
377
377
  : [],
378
378
  customVariablesForThirdPartyTools:
379
379
  this.embedConfig.customVariablesForThirdPartyTools || {},
380
+ hiddenListColumns: this.viewConfig.hiddenListColumns || [],
380
381
  };
381
382
  }
382
383
 
@@ -538,6 +539,8 @@ export class TsEmbed {
538
539
  insertInToSlide,
539
540
  disableRedirectionLinksInNewTab,
540
541
  overrideOrgId,
542
+ exposeTranslationIDs,
543
+ primaryActions,
541
544
  } = this.viewConfig;
542
545
 
543
546
  const { additionalFlags: additionalFlagsFromInit } = this.embedConfig;
@@ -560,9 +563,15 @@ export class TsEmbed {
560
563
  if (disabledActions?.length) {
561
564
  queryParams[Param.DisableActions] = disabledActions;
562
565
  }
566
+ if (primaryActions?.length) {
567
+ queryParams[Param.PrimaryActions] = primaryActions;
568
+ }
563
569
  if (disabledActionReason) {
564
570
  queryParams[Param.DisableActionReason] = disabledActionReason;
565
571
  }
572
+ if (exposeTranslationIDs) {
573
+ queryParams[Param.ExposeTranslationIDs] = exposeTranslationIDs;
574
+ }
566
575
  queryParams[Param.HideActions] = [...this.defaultHiddenActions, ...(hiddenActions ?? [])];
567
576
  if (Array.isArray(visibleActions)) {
568
577
  queryParams[Param.VisibleActions] = visibleActions;
@@ -592,6 +601,12 @@ export class TsEmbed {
592
601
  queryParams[Param.IconSpriteUrl] = spriteUrl.replace('https://', '');
593
602
  }
594
603
 
604
+ const stringIDsUrl = customizations?.content?.stringIDsUrl
605
+ || embedCustomizations?.content?.stringIDsUrl;
606
+ if (stringIDsUrl) {
607
+ queryParams[Param.StringIDsUrl] = stringIDsUrl;
608
+ }
609
+
595
610
  if (showAlerts !== undefined) {
596
611
  queryParams[Param.ShowAlerts] = showAlerts;
597
612
  }
package/src/index.ts CHANGED
@@ -52,6 +52,7 @@ import {
52
52
  LogLevel,
53
53
  VizPoint,
54
54
  CustomActionPayload,
55
+ ListPageColumns,
55
56
  } from './types';
56
57
  import { CustomCssVariables } from './css-variables';
57
58
  import { SageEmbed, SageViewConfig } from './embed/sage';
@@ -129,6 +130,7 @@ export {
129
130
  VizPoint,
130
131
  CustomActionPayload,
131
132
  UIPassthroughEvent,
133
+ ListPageColumns,
132
134
  };
133
135
 
134
136
  export { resetCachedAuthToken } from './authToken';
@@ -24,8 +24,8 @@ const componentFactory = <T extends typeof TsEmbed, U extends EmbedProps, V exte
24
24
  ) => React.forwardRef<InstanceType<T>, U>(
25
25
  (props: U, forwardedRef: React.MutableRefObject<InstanceType<T>>) => {
26
26
  const ref = React.useRef<HTMLDivElement>(null);
27
- const { className, ...embedProps } = props;
28
- const { viewConfig, listeners } = getViewPropsAndListeners<Omit<U, 'className'>, V>(
27
+ const { className, style, ...embedProps } = props;
28
+ const { viewConfig, listeners } = getViewPropsAndListeners<Omit<U, 'className' | 'style'>, V>(
29
29
  embedProps,
30
30
  );
31
31
 
@@ -93,7 +93,7 @@ const componentFactory = <T extends typeof TsEmbed, U extends EmbedProps, V exte
93
93
  return viewConfig.insertAsSibling ? (
94
94
  <span data-testid="tsEmbed" ref={ref} style={{ position: 'absolute' }}></span>
95
95
  ) : (
96
- <div data-testid="tsEmbed" ref={ref} className={className}></div>
96
+ <div data-testid="tsEmbed" ref={ref} style={style} className={`ts-embed-container ${className}`}></div>
97
97
  );
98
98
  },
99
99
  );
@@ -444,4 +444,5 @@ export {
444
444
  HomepageModule,
445
445
  LogLevel,
446
446
  getSessionInfo,
447
+ ListPageColumns,
447
448
  } from '../index';
package/src/react/util.ts CHANGED
@@ -4,6 +4,7 @@ export type EmbedEventHandlers = { [key in keyof typeof EmbedEvent as `on${Capit
4
4
 
5
5
  export interface EmbedProps extends ViewConfig, EmbedEventHandlers {
6
6
  className?: string;
7
+ style?: React.CSSProperties;
7
8
  }
8
9
 
9
10
  export interface ViewConfigAndListeners<T extends ViewConfig> {
package/src/types.ts CHANGED
@@ -297,6 +297,8 @@ export interface CustomisationsInterface {
297
297
  * @version SDK: 1.26.0 | 9.7.0.cl
298
298
  */
299
299
  strings?: Record<string, any>;
300
+ stringIDs?: Record<string, string>;
301
+ stringIDsUrl?: string;
300
302
  [key: string]: any;
301
303
  };
302
304
  iconSpriteUrl?: string;
@@ -626,14 +628,14 @@ export interface EmbedConfig {
626
628
  * }
627
629
  * });
628
630
  * ```
629
- * @version SDK 1.37.0 | ThoughtSpot: 10.7.0.cl
631
+ * @version SDK 1.37.0 | ThoughtSpot: 10.8.0.cl
630
632
  */
631
633
  customVariablesForThirdPartyTools?: Record< string, any >;
632
634
 
633
635
  disablePreauthCache?: boolean;
634
636
  }
635
637
 
636
- // eslint-disable-next-line @typescript-eslint/no-empty-interface
638
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
637
639
  export interface LayoutConfig {}
638
640
 
639
641
  /**
@@ -710,6 +712,20 @@ export interface ViewConfig {
710
712
  * ```
711
713
  */
712
714
  disabledActions?: Action[];
715
+ /**
716
+ * The list of actions to display as primary actions,
717
+ * These actions will be displayed upfront in the liveboard/app embed.
718
+ * Use this to display actions.
719
+ * @version SDK: 1.38.0 | ThoughtSpot: 10.9.0.cl
720
+ * @example
721
+ * ```js
722
+ * const embed = new LiveboardEmbed('#embed', {
723
+ * ... // other liveboard view config
724
+ * primaryActions: [Action.Download]
725
+ * });
726
+ * ```
727
+ */
728
+ primaryActions?: Action[];
713
729
  /**
714
730
  * The tooltip to display for disabled actions.
715
731
  * @version SDK: 1.6.0 | ThoughtSpot: ts8.nov.cl, 8.4.1.sw
@@ -1072,6 +1088,12 @@ export interface ViewConfig {
1072
1088
  * });
1073
1089
  */
1074
1090
  collapseSearchBar?: boolean;
1091
+ /**
1092
+ * This flag can be used to expose translation IDs on the embedded app.
1093
+ * @default false
1094
+ * @version SDK: 1.37.0 | ThoughtSpot: 10.9.0.cl
1095
+ */
1096
+ exposeTranslationIDs?: boolean;
1075
1097
  /**
1076
1098
  * This flag can be used to disable links inside the embedded app,
1077
1099
  * and disable redirection of links in a new tab.
@@ -1126,6 +1148,21 @@ export interface ViewConfig {
1126
1148
  * @version SDK: 1.35.0 | ThoughtSpot: 10.5.0.cl
1127
1149
  */
1128
1150
  overrideOrgId?: number;
1151
+ /**
1152
+ * Hide list page columns
1153
+ * For example: hiddenListColumns = [ListPageColumns.Author]
1154
+ *
1155
+ * **Note**: This option is appplicable only in full app embedding.
1156
+ * @version SDK: 1.38.0 | ThoughtSpot: 9.12.5.cl, 10.1.0.sw
1157
+ * @example
1158
+ * ```js
1159
+ * const embed = new AppEmbed('#tsEmbed', {
1160
+ * ... // other options
1161
+ * hiddenListColumns : [ListPageColumns.Favorite,ListPageColumns.Author],
1162
+ * })
1163
+ * ```
1164
+ */
1165
+ hiddenListColumns?: ListPageColumns[];
1129
1166
  }
1130
1167
 
1131
1168
  /**
@@ -1286,6 +1323,35 @@ export enum HomepageModule {
1286
1323
  Learning = 'LEARNING',
1287
1324
  }
1288
1325
 
1326
+ /**
1327
+ * List page columns that can be hidden.
1328
+ * **Note**: This option is applicable only in full app embedding.
1329
+ * @version SDK: 1.38.0 | ThoughtSpot: 9.12.5.cl, 10.1.0.sw
1330
+ */
1331
+ // eslint-disable-next-line no-shadow
1332
+ export enum ListPageColumns {
1333
+ /**
1334
+ * Favourite
1335
+ */
1336
+ Favourite = 'FAVOURITE',
1337
+ /**
1338
+ * Tags
1339
+ */
1340
+ Tags = 'TAGS',
1341
+ /**
1342
+ * Author
1343
+ */
1344
+ Author = 'AUTHOR',
1345
+ /**
1346
+ * Last viewed/Last modified
1347
+ */
1348
+ DateSort = 'DATE_SORT',
1349
+ /**
1350
+ * Share
1351
+ */
1352
+ Share = 'SHARE',
1353
+ }
1354
+
1289
1355
  /**
1290
1356
  * A filter that can be applied to ThoughtSpot answers, Liveboards, or
1291
1357
  * visualizations at runtime.
@@ -2312,16 +2378,19 @@ export enum EmbedEvent {
2312
2378
  /**
2313
2379
  * Emits when a table visualization is rendered in
2314
2380
  * the ThoughtSpot embedded app.
2381
+ *
2315
2382
  * You can also use this event as a hook to trigger host events
2316
2383
  * such as `HostEvent.TransformTableVizData` on the table visualization.
2317
2384
  * The event payload contains the data used in the rendered table.
2318
2385
  * You can extract the relevant data from the payload
2319
2386
  * stored in `payload.data.data.columnDataLite`.
2387
+ *
2320
2388
  * `columnDataLite` is a multidimensional array that contains
2321
2389
  * data values for each column, which was used in the query to
2322
2390
  * generate the table visualization. To find and modify specific cell data,
2323
2391
  * you can either loop through the array or directly access a cell if
2324
2392
  * you know its position and data index.
2393
+ *
2325
2394
  * In the following code sample, the first cell in the first column
2326
2395
  * (`columnDataLite[0].dataValue[0]`) is set to `new fob`.
2327
2396
  * Note that any changes made to the data in the payload will only update the
@@ -2331,6 +2400,7 @@ export enum EmbedEvent {
2331
2400
  * payload in the `columnDataLite` is passed on to
2332
2401
  * `HostEvent.TransformTableVizData` and trigger an update to
2333
2402
  * the table visualization.
2403
+ *
2334
2404
  * If the Row-Level Security (RLS) rules are applied on the
2335
2405
  * Worksheet or Model, exercise caution when changing column
2336
2406
  * or table cell values to maintain data security.
@@ -2345,7 +2415,7 @@ export enum EmbedEvent {
2345
2415
  * searchEmbed.trigger(HostEvent.TransformTableVizData, columnDataLite);
2346
2416
  * })
2347
2417
  * ```
2348
- * @version SDK: 1.35.12 | ThoughtSpot: 10.7.0.cl
2418
+ * @version SDK: 1.38.0 | ThoughtSpot: 10.8.0.cl
2349
2419
  */
2350
2420
  TableVizRendered = 'TableVizRendered',
2351
2421
  /**
@@ -2358,7 +2428,7 @@ export enum EmbedEvent {
2358
2428
  * console.log('payload', payload);
2359
2429
  * })
2360
2430
  *```
2361
- * @version SDK : 1.36.0 | ThoughtSpot : 10.8.0.cl
2431
+ * @version SDK : 1.38.0 | ThoughtSpot : 10.8.0.cl
2362
2432
  */
2363
2433
  CreateLiveboard = 'createLiveboard',
2364
2434
  /**
@@ -2807,7 +2877,7 @@ export enum HostEvent {
2807
2877
  * ```js
2808
2878
  * liveboardEmbed.trigger(HostEvent.Remove)
2809
2879
  * ```
2810
- * @version SDK: 1.37.0 | ThoughtSpot: 10.8.0.cl, 10.10.0.sw
2880
+ * @version SDK: 1.38.0 | ThoughtSpot: 10.8.0.cl, 10.10.0.sw
2811
2881
  */
2812
2882
  Remove = 'delete',
2813
2883
  /**
@@ -3355,7 +3425,7 @@ export enum HostEvent {
3355
3425
  * ```js
3356
3426
  * liveboardEmbed.trigger(HostEvent.InfoSuccess, data);
3357
3427
  *```
3358
- * @version SDK: 1.36.0 | Thoughtspot: 10.6.0.cl
3428
+ * @version SDK: 1.36.0 | ThoughtSpot: 10.6.0.cl
3359
3429
  */
3360
3430
  InfoSuccess = 'InfoSuccess',
3361
3431
  /**
@@ -3402,7 +3472,7 @@ export enum HostEvent {
3402
3472
  * searchEmbed.trigger(HostEvent.TransformTableVizData, columnDataLite);
3403
3473
  * })
3404
3474
  * ```
3405
- * @version SDK: 1.35.12 | ThoughtSpot: 10.7.0.cl
3475
+ * @version SDK: 1.38.0 | ThoughtSpot: 10.8.0.cl
3406
3476
  */
3407
3477
  TransformTableVizData = 'TransformTableVizData',
3408
3478
  }
@@ -3457,6 +3527,7 @@ export enum Param {
3457
3527
  livedBoardEmbed = 'isLiveboardEmbed',
3458
3528
  searchEmbed = 'isSearchEmbed',
3459
3529
  vizEmbed = 'isVizEmbed',
3530
+ StringIDsUrl = 'overrideStringIDsUrl',
3460
3531
  Version = 'sdkVersion',
3461
3532
  ViewPortHeight = 'viewPortHeight',
3462
3533
  ViewPortWidth = 'viewPortWidth',
@@ -3512,6 +3583,7 @@ export enum Param {
3512
3583
  HideSageAnswerHeader = 'hideSageAnswerHeader',
3513
3584
  HideSearchBar = 'hideSearchBar',
3514
3585
  ClientLogLevel = 'clientLogLevel',
3586
+ ExposeTranslationIDs = 'exposeTranslationIDs',
3515
3587
  OverrideNativeConsole = 'overrideConsoleLogs',
3516
3588
  enableAskSage = 'enableAskSage',
3517
3589
  CollapseSearchBarInitially = 'collapseSearchBarInitially',
@@ -3538,6 +3610,8 @@ export enum Param {
3538
3610
  DataSourceId = 'dataSourceId',
3539
3611
  preAuthCache = 'preAuthCache',
3540
3612
  ShowSpotterLimitations = 'showSpotterLimitations',
3613
+ CoverAndFilterOptionInPDF = 'coverAndFilterOptionInPDF',
3614
+ PrimaryActions = 'primaryActions',
3541
3615
  }
3542
3616
 
3543
3617
  /**
@@ -3704,7 +3778,7 @@ export enum Action {
3704
3778
  * The **Collapse data panel** icon on the Search page.
3705
3779
  * Collapses the data panel view.
3706
3780
  *
3707
- * @version: SDK: 1.34.0 | ThoughtSpot Cloud: 10.3.0.cl, 10.7.0.sw
3781
+ * @version: SDK: 1.34.0 | ThoughtSpot Cloud: 10.3.0.cl
3708
3782
  *
3709
3783
  * @example
3710
3784
  * ```js
@@ -4766,6 +4840,16 @@ export enum Action {
4766
4840
  * @version SDK: 1.38.0 | ThoughtSpot Cloud: 10.8.0.cl
4767
4841
  */
4768
4842
  ColumnRename = 'columnRename',
4843
+ /**
4844
+ * Action ID for hide checkboxes for include or exclude
4845
+ * cover and filter pages in the Liveboard PDF
4846
+ * @example
4847
+ * ```js
4848
+ * hiddenAction: [Action.CoverAndFilterOptionInPDF]
4849
+ * ```
4850
+ * @version SDK: 1.38.0 | ThoughtSpot Cloud: 10.8.0.cl
4851
+ */
4852
+ CoverAndFilterOptionInPDF = 'coverAndFilterOptionInPDF',
4769
4853
  }
4770
4854
 
4771
4855
  export interface AnswerServiceType {
@@ -4780,8 +4864,8 @@ export enum PrefetchFeatures {
4780
4864
  }
4781
4865
 
4782
4866
  /**
4783
- * Enum for options to change context trigger
4784
- * BOTH_CLICKS option is introduced in 10.7
4867
+ * Enum for options to change context trigger.
4868
+ * The `BOTH_CLICKS` option is available from 10.8.0.cl.
4785
4869
  */
4786
4870
  export enum ContextMenuTriggerOptions {
4787
4871
  LEFT_CLICK = 'left-click',
@@ -4933,4 +5017,5 @@ export interface DefaultAppInitData {
4933
5017
  hostConfig: Record<string, any>;
4934
5018
  hiddenHomeLeftNavItems: string[];
4935
5019
  customVariablesForThirdPartyTools: Record<string, any>;
5020
+ hiddenListColumns: ListPageColumns[];
4936
5021
  }