@thoughtspot/visual-embed-sdk 1.51.2 → 1.52.0

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 (109) hide show
  1. package/cjs/package.json +1 -1
  2. package/cjs/src/api-intercept.d.ts.map +1 -1
  3. package/cjs/src/api-intercept.js +1 -0
  4. package/cjs/src/api-intercept.js.map +1 -1
  5. package/cjs/src/css-variables.d.ts +1 -1
  6. package/cjs/src/embed/conversation.d.ts +5 -5
  7. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  8. package/cjs/src/embed/liveboard.js +2 -1
  9. package/cjs/src/embed/liveboard.js.map +1 -1
  10. package/cjs/src/embed/liveboard.spec.js +4 -4
  11. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  12. package/cjs/src/embed/ts-embed.d.ts +4 -3
  13. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  14. package/cjs/src/embed/ts-embed.js +23 -16
  15. package/cjs/src/embed/ts-embed.js.map +1 -1
  16. package/cjs/src/embed/ts-embed.spec.d.ts.map +1 -1
  17. package/cjs/src/embed/ts-embed.spec.js +55 -16
  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/react/all-types-export.d.ts +1 -1
  24. package/cjs/src/react/all-types-export.d.ts.map +1 -1
  25. package/cjs/src/react/all-types-export.js +2 -1
  26. package/cjs/src/react/all-types-export.js.map +1 -1
  27. package/cjs/src/react/index.d.ts +8 -8
  28. package/cjs/src/react/index.d.ts.map +1 -1
  29. package/cjs/src/react/index.js +1 -1
  30. package/cjs/src/react/index.js.map +1 -1
  31. package/cjs/src/react/index.spec.js +7 -7
  32. package/cjs/src/react/index.spec.js.map +1 -1
  33. package/cjs/src/types.d.ts +124 -36
  34. package/cjs/src/types.d.ts.map +1 -1
  35. package/cjs/src/types.js +80 -12
  36. package/cjs/src/types.js.map +1 -1
  37. package/dist/{index-D8_Zs-Nr.js → index-BMppCU63.js} +1 -1
  38. package/dist/src/api-intercept.d.ts.map +1 -1
  39. package/dist/src/css-variables.d.ts +1 -1
  40. package/dist/src/embed/conversation.d.ts +5 -5
  41. package/dist/src/embed/liveboard.d.ts.map +1 -1
  42. package/dist/src/embed/ts-embed.d.ts +4 -3
  43. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  44. package/dist/src/embed/ts-embed.spec.d.ts.map +1 -1
  45. package/dist/src/index.d.ts +2 -2
  46. package/dist/src/index.d.ts.map +1 -1
  47. package/dist/src/react/all-types-export.d.ts +1 -1
  48. package/dist/src/react/all-types-export.d.ts.map +1 -1
  49. package/dist/src/react/index.d.ts +8 -8
  50. package/dist/src/react/index.d.ts.map +1 -1
  51. package/dist/src/types.d.ts +124 -36
  52. package/dist/src/types.d.ts.map +1 -1
  53. package/dist/tsembed-react.es.js +109 -32
  54. package/dist/tsembed-react.js +108 -31
  55. package/dist/tsembed.es.js +109 -32
  56. package/dist/tsembed.js +107 -30
  57. package/dist/visual-embed-sdk-react-full.d.ts +142 -53
  58. package/dist/visual-embed-sdk-react.d.ts +118 -52
  59. package/dist/visual-embed-sdk.d.ts +134 -45
  60. package/lib/package.json +1 -1
  61. package/lib/src/api-intercept.d.ts.map +1 -1
  62. package/lib/src/api-intercept.js +2 -1
  63. package/lib/src/api-intercept.js.map +1 -1
  64. package/lib/src/css-variables.d.ts +1 -1
  65. package/lib/src/embed/conversation.d.ts +5 -5
  66. package/lib/src/embed/liveboard.d.ts.map +1 -1
  67. package/lib/src/embed/liveboard.js +3 -2
  68. package/lib/src/embed/liveboard.js.map +1 -1
  69. package/lib/src/embed/liveboard.spec.js +4 -4
  70. package/lib/src/embed/liveboard.spec.js.map +1 -1
  71. package/lib/src/embed/ts-embed.d.ts +4 -3
  72. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  73. package/lib/src/embed/ts-embed.js +24 -17
  74. package/lib/src/embed/ts-embed.js.map +1 -1
  75. package/lib/src/embed/ts-embed.spec.d.ts.map +1 -1
  76. package/lib/src/embed/ts-embed.spec.js +56 -17
  77. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  78. package/lib/src/index.d.ts +2 -2
  79. package/lib/src/index.d.ts.map +1 -1
  80. package/lib/src/index.js +2 -2
  81. package/lib/src/index.js.map +1 -1
  82. package/lib/src/react/all-types-export.d.ts +1 -1
  83. package/lib/src/react/all-types-export.d.ts.map +1 -1
  84. package/lib/src/react/all-types-export.js +1 -1
  85. package/lib/src/react/all-types-export.js.map +1 -1
  86. package/lib/src/react/index.d.ts +8 -8
  87. package/lib/src/react/index.d.ts.map +1 -1
  88. package/lib/src/react/index.js +1 -1
  89. package/lib/src/react/index.js.map +1 -1
  90. package/lib/src/react/index.spec.js +7 -7
  91. package/lib/src/react/index.spec.js.map +1 -1
  92. package/lib/src/types.d.ts +124 -36
  93. package/lib/src/types.d.ts.map +1 -1
  94. package/lib/src/types.js +79 -11
  95. package/lib/src/types.js.map +1 -1
  96. package/lib/src/visual-embed-sdk.d.ts +134 -45
  97. package/package.json +1 -1
  98. package/src/api-intercept.ts +2 -1
  99. package/src/css-variables.ts +1 -1
  100. package/src/embed/conversation.ts +5 -5
  101. package/src/embed/liveboard.spec.ts +4 -4
  102. package/src/embed/liveboard.ts +3 -1
  103. package/src/embed/ts-embed.spec.ts +70 -16
  104. package/src/embed/ts-embed.ts +24 -16
  105. package/src/index.ts +2 -0
  106. package/src/react/all-types-export.ts +1 -0
  107. package/src/react/index.spec.tsx +7 -7
  108. package/src/react/index.tsx +9 -9
  109. package/src/types.ts +125 -36
@@ -31,6 +31,7 @@ import {
31
31
  DefaultAppInitData,
32
32
  ErrorDetailsTypes,
33
33
  EmbedErrorCodes,
34
+ EmbedErrorSeverity,
34
35
  ContextObject,
35
36
  } from '../types';
36
37
  import {
@@ -1897,9 +1898,62 @@ describe('Unit test case for ts embed', () => {
1897
1898
  errorType: ErrorDetailsTypes.VALIDATION_ERROR,
1898
1899
  message: ERROR_MESSAGE.INIT_SDK_REQUIRED,
1899
1900
  code: EmbedErrorCodes.INIT_ERROR,
1901
+ severity: EmbedErrorSeverity.SEV1,
1900
1902
  error: ERROR_MESSAGE.INIT_SDK_REQUIRED,
1901
1903
  });
1902
1904
  });
1905
+
1906
+ test('a missing init is reported to the host as SEV1', async () => {
1907
+ const errorHandler = jest.fn();
1908
+ const tsEmbed = new SearchEmbed(getRootEl(), {});
1909
+ tsEmbed.on(EmbedEvent.Error, errorHandler);
1910
+ await tsEmbed.render();
1911
+ expect(errorHandler.mock.calls[0][0]).toEqual(
1912
+ expect.objectContaining({
1913
+ code: EmbedErrorCodes.INIT_ERROR,
1914
+ severity: EmbedErrorSeverity.SEV1,
1915
+ }),
1916
+ );
1917
+ });
1918
+ });
1919
+
1920
+ describe('error severity', () => {
1921
+ beforeEach(() => {
1922
+ jest.spyOn(config, 'getThoughtSpotHost').mockImplementation(() => 'http://tshost');
1923
+ });
1924
+
1925
+ test('defaults to SEV3 when the raising site does not set one', () => {
1926
+ const errorHandler = jest.fn();
1927
+ const tsEmbed = new SearchEmbed(getRootEl(), {});
1928
+ tsEmbed.on(EmbedEvent.Error, errorHandler);
1929
+
1930
+ (tsEmbed as any).handleError({
1931
+ errorType: ErrorDetailsTypes.VALIDATION_ERROR,
1932
+ message: 'no severity set',
1933
+ code: EmbedErrorCodes.HOST_EVENT_VALIDATION,
1934
+ });
1935
+
1936
+ expect(errorHandler.mock.calls[0][0]).toEqual(
1937
+ expect.objectContaining({ severity: EmbedErrorSeverity.SEV3 }),
1938
+ );
1939
+ });
1940
+
1941
+ test('does not override a severity the raising site set', () => {
1942
+ const errorHandler = jest.fn();
1943
+ const tsEmbed = new SearchEmbed(getRootEl(), {});
1944
+ tsEmbed.on(EmbedEvent.Error, errorHandler);
1945
+
1946
+ (tsEmbed as any).handleError({
1947
+ errorType: ErrorDetailsTypes.VALIDATION_ERROR,
1948
+ message: 'explicitly fatal',
1949
+ code: EmbedErrorCodes.HOST_EVENT_VALIDATION,
1950
+ severity: EmbedErrorSeverity.SEV1,
1951
+ });
1952
+
1953
+ expect(errorHandler.mock.calls[0][0]).toEqual(
1954
+ expect.objectContaining({ severity: EmbedErrorSeverity.SEV1 }),
1955
+ );
1956
+ });
1903
1957
  });
1904
1958
 
1905
1959
  describe('V1Embed ', () => {
@@ -3540,13 +3594,13 @@ describe('Unit test case for ts embed', () => {
3540
3594
  libEmbed.destroy();
3541
3595
  });
3542
3596
 
3543
- it('should use preRenderConfig.preRenderId to identify the pre-render instance', async () => {
3597
+ it('should use preRenderConfig.id to identify the pre-render instance', async () => {
3544
3598
  createRootEleForEmbed();
3545
3599
 
3546
3600
  const libEmbed = new LiveboardEmbed('#tsEmbedDiv', {
3547
3601
  liveboardId: 'myLiveboardId',
3548
3602
  preRenderConfig: {
3549
- preRenderId: 'config-level-id',
3603
+ id: 'config-level-id',
3550
3604
  },
3551
3605
  });
3552
3606
 
@@ -3560,14 +3614,14 @@ describe('Unit test case for ts embed', () => {
3560
3614
  libEmbed.destroy();
3561
3615
  });
3562
3616
 
3563
- it('should prefer preRenderConfig.preRenderId over top-level preRenderId', async () => {
3617
+ it('should prefer preRenderConfig.id over top-level preRenderId', async () => {
3564
3618
  createRootEleForEmbed();
3565
3619
 
3566
3620
  const libEmbed = new LiveboardEmbed('#tsEmbedDiv', {
3567
3621
  liveboardId: 'myLiveboardId',
3568
3622
  preRenderId: 'top-level-id',
3569
3623
  preRenderConfig: {
3570
- preRenderId: 'config-level-id',
3624
+ id: 'config-level-id',
3571
3625
  },
3572
3626
  });
3573
3627
 
@@ -3581,7 +3635,7 @@ describe('Unit test case for ts embed', () => {
3581
3635
  libEmbed.destroy();
3582
3636
  });
3583
3637
 
3584
- it('should mount the wrapper into preRenderConfig.preRenderContainer', async () => {
3638
+ it('should mount the wrapper into preRenderConfig.containerSelector', async () => {
3585
3639
  createRootEleForEmbed();
3586
3640
  const customContainer = document.createElement('div');
3587
3641
  customContainer.id = 'config-level-container';
@@ -3590,8 +3644,8 @@ describe('Unit test case for ts embed', () => {
3590
3644
  const libEmbed = new LiveboardEmbed('#tsEmbedDiv', {
3591
3645
  liveboardId: 'myLiveboardId',
3592
3646
  preRenderConfig: {
3593
- preRenderId: 'container-via-config',
3594
- preRenderContainer: '#config-level-container',
3647
+ id: 'container-via-config',
3648
+ containerSelector: '#config-level-container',
3595
3649
  },
3596
3650
  });
3597
3651
 
@@ -3606,7 +3660,7 @@ describe('Unit test case for ts embed', () => {
3606
3660
  customContainer.remove();
3607
3661
  });
3608
3662
 
3609
- it('should prefer preRenderConfig.preRenderContainer over top-level preRenderContainer', async () => {
3663
+ it('should prefer preRenderConfig.containerSelector over top-level preRenderContainer', async () => {
3610
3664
  createRootEleForEmbed();
3611
3665
  const topContainer = document.createElement('div');
3612
3666
  topContainer.id = 'top-level-container';
@@ -3619,8 +3673,8 @@ describe('Unit test case for ts embed', () => {
3619
3673
  liveboardId: 'myLiveboardId',
3620
3674
  preRenderContainer: '#top-level-container',
3621
3675
  preRenderConfig: {
3622
- preRenderId: 'container-precedence',
3623
- preRenderContainer: '#config-level-container-2',
3676
+ id: 'container-precedence',
3677
+ containerSelector: '#config-level-container-2',
3624
3678
  },
3625
3679
  });
3626
3680
 
@@ -3637,7 +3691,7 @@ describe('Unit test case for ts embed', () => {
3637
3691
  configContainer.remove();
3638
3692
  });
3639
3693
 
3640
- it('should not attach ResizeObserver when preRenderConfig.doNotTrackPreRenderSize is true', async () => {
3694
+ it('should not attach ResizeObserver when preRenderConfig.doNotTrackSize is true', async () => {
3641
3695
  createRootEleForEmbed();
3642
3696
  const observeMock = jest.fn();
3643
3697
  (window as any).ResizeObserver = jest.fn().mockImplementation(() => ({
@@ -3649,8 +3703,8 @@ describe('Unit test case for ts embed', () => {
3649
3703
  const libEmbed = new LiveboardEmbed('#tsEmbedDiv', {
3650
3704
  liveboardId: 'myLiveboardId',
3651
3705
  preRenderConfig: {
3652
- preRenderId: 'no-track-via-config',
3653
- doNotTrackPreRenderSize: true,
3706
+ id: 'no-track-via-config',
3707
+ doNotTrackSize: true,
3654
3708
  },
3655
3709
  });
3656
3710
 
@@ -3663,7 +3717,7 @@ describe('Unit test case for ts embed', () => {
3663
3717
  libEmbed.destroy();
3664
3718
  });
3665
3719
 
3666
- it('should prefer preRenderConfig.doNotTrackPreRenderSize over top-level doNotTrackPreRenderSize', async () => {
3720
+ it('should prefer preRenderConfig.doNotTrackSize over top-level doNotTrackPreRenderSize', async () => {
3667
3721
  createRootEleForEmbed();
3668
3722
  const observeMock = jest.fn();
3669
3723
  (window as any).ResizeObserver = jest.fn().mockImplementation(() => ({
@@ -3676,8 +3730,8 @@ describe('Unit test case for ts embed', () => {
3676
3730
  liveboardId: 'myLiveboardId',
3677
3731
  doNotTrackPreRenderSize: false,
3678
3732
  preRenderConfig: {
3679
- preRenderId: 'no-track-precedence',
3680
- doNotTrackPreRenderSize: true,
3733
+ id: 'no-track-precedence',
3734
+ doNotTrackSize: true,
3681
3735
  },
3682
3736
  });
3683
3737
 
@@ -63,6 +63,7 @@ import {
63
63
  DefaultAppInitData,
64
64
  AllEmbedViewConfig as ViewConfig,
65
65
  EmbedErrorDetailsEvent,
66
+ EmbedErrorSeverity,
66
67
  ErrorDetailsTypes,
67
68
  EmbedErrorCodes,
68
69
  MessagePayload,
@@ -284,6 +285,7 @@ export class TsEmbed {
284
285
  errorType: ErrorDetailsTypes.VALIDATION_ERROR,
285
286
  message: ERROR_MESSAGE.INIT_SDK_REQUIRED,
286
287
  code: EmbedErrorCodes.INIT_ERROR,
288
+ severity: EmbedErrorSeverity.SEV1,
287
289
  error: ERROR_MESSAGE.INIT_SDK_REQUIRED,
288
290
  });
289
291
  }
@@ -295,7 +297,10 @@ export class TsEmbed {
295
297
  */
296
298
  protected handleError(errorDetails: EmbedErrorDetailsEvent) {
297
299
  this.isError = true;
298
- this.executeCallbacks(EmbedEvent.Error, errorDetails);
300
+ this.executeCallbacks(EmbedEvent.Error, {
301
+ severity: EmbedErrorSeverity.SEV3,
302
+ ...errorDetails,
303
+ });
299
304
  // Log error
300
305
  logger.error(errorDetails);
301
306
  }
@@ -393,6 +398,7 @@ export class TsEmbed {
393
398
  errorType: ErrorDetailsTypes.NETWORK,
394
399
  message: ERROR_MESSAGE.OFFLINE_WARNING,
395
400
  code: EmbedErrorCodes.NETWORK_ERROR,
401
+ severity: EmbedErrorSeverity.SEV2,
396
402
  offlineWarning: ERROR_MESSAGE.OFFLINE_WARNING,
397
403
  };
398
404
  this.executeCallbacks(EmbedEvent.Error, errorDetails);
@@ -967,18 +973,19 @@ export class TsEmbed {
967
973
  }
968
974
 
969
975
  /**
970
- * Returns a merged {@link PreRenderConfig} object where each shared key
971
- * prefers `preRenderConfig.key` over the top-level `viewConfig.key` for
972
- * backward compatibility.
976
+ * Returns a merged {@link PreRenderConfig} object where each key prefers the
977
+ * value from `preRenderConfig` over its deprecated top-level `viewConfig`
978
+ * counterpart (`id`/`preRenderId`, `containerSelector`/`preRenderContainer`,
979
+ * `doNotTrackSize`/`doNotTrackPreRenderSize`) for backward compatibility.
973
980
  */
974
981
  protected getPreRenderConfig(): PreRenderConfig {
975
982
  const viewCfg = this.viewConfig as BaseViewConfig;
976
983
  const preRenderCfg = viewCfg.preRenderConfig ?? {};
977
984
  return {
978
985
  ...preRenderCfg,
979
- preRenderId: preRenderCfg.preRenderId ?? viewCfg.preRenderId,
980
- preRenderContainer: preRenderCfg.preRenderContainer ?? viewCfg.preRenderContainer,
981
- doNotTrackPreRenderSize: preRenderCfg.doNotTrackPreRenderSize ?? viewCfg.doNotTrackPreRenderSize,
986
+ id: preRenderCfg.id ?? viewCfg.preRenderId,
987
+ containerSelector: preRenderCfg.containerSelector ?? viewCfg.preRenderContainer,
988
+ doNotTrackSize: preRenderCfg.doNotTrackSize ?? viewCfg.doNotTrackPreRenderSize,
982
989
  };
983
990
  }
984
991
 
@@ -986,7 +993,7 @@ export class TsEmbed {
986
993
  * Returns true if this embed instance is configured for pre-rendering.
987
994
  */
988
995
  protected isPreRenderEmbed() {
989
- return !!this.getPreRenderConfig().preRenderId;
996
+ return !!this.getPreRenderConfig().id;
990
997
  }
991
998
  protected handleInsertionIntoDOM(child: string | Node): void {
992
999
  if (this.isPreRenderEmbed()) {
@@ -1092,6 +1099,7 @@ export class TsEmbed {
1092
1099
  errorType: ErrorDetailsTypes.API,
1093
1100
  message: error.message || ERROR_MESSAGE.LOGIN_FAILED,
1094
1101
  code: EmbedErrorCodes.LOGIN_FAILED,
1102
+ severity: EmbedErrorSeverity.SEV1,
1095
1103
  error: error,
1096
1104
  });
1097
1105
  });
@@ -1200,7 +1208,7 @@ export class TsEmbed {
1200
1208
  * fresh element; an element passed directly cannot be re-resolved.
1201
1209
  */
1202
1210
  private resolvePreRenderContainerTarget(): HTMLElement {
1203
- const containerConfig = this.getPreRenderConfig().preRenderContainer;
1211
+ const containerConfig = this.getPreRenderConfig().containerSelector;
1204
1212
  let container: Element | null = null;
1205
1213
  if (typeof containerConfig === 'string') {
1206
1214
  try {
@@ -1224,7 +1232,7 @@ export class TsEmbed {
1224
1232
  }
1225
1233
  const ownerContainer = preRenderedObject.preRenderContainerEl ?? document.body;
1226
1234
  if (
1227
- this.getPreRenderConfig().preRenderContainer
1235
+ this.getPreRenderConfig().containerSelector
1228
1236
  && this.resolvePreRenderContainerTarget() !== ownerContainer
1229
1237
  ) {
1230
1238
  logger.warn(
@@ -1850,7 +1858,7 @@ export class TsEmbed {
1850
1858
  showPreRenderByDefault,
1851
1859
  replaceExistingPreRender,
1852
1860
  });
1853
- if (!this.getPreRenderConfig().preRenderId) {
1861
+ if (!this.getPreRenderConfig().id) {
1854
1862
  logger.error(ERROR_MESSAGE.PRERENDER_ID_MISSING);
1855
1863
  return this;
1856
1864
  }
@@ -2036,14 +2044,14 @@ export class TsEmbed {
2036
2044
  */
2037
2045
  public async showPreRender(): Promise<TsEmbed> {
2038
2046
  uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_SHOW_PRE_RENDER, {
2039
- preRenderId: this.getPreRenderConfig().preRenderId,
2047
+ preRenderId: this.getPreRenderConfig().id,
2040
2048
  embedComponentType: this.viewConfig.embedComponentType,
2041
2049
  });
2042
2050
 
2043
2051
  if (this.shouldWaitForRenderPromise) await this.isReadyForRenderPromise;
2044
2052
 
2045
2053
 
2046
- if (!this.getPreRenderConfig().preRenderId) {
2054
+ if (!this.getPreRenderConfig().id) {
2047
2055
  logger.error(ERROR_MESSAGE.PRERENDER_ID_MISSING);
2048
2056
  return this;
2049
2057
  }
@@ -2085,7 +2093,7 @@ export class TsEmbed {
2085
2093
  customContainer.addEventListener('scroll', this.containerScrollListener);
2086
2094
  }
2087
2095
 
2088
- if (!this.getPreRenderConfig().doNotTrackPreRenderSize) {
2096
+ if (!this.getPreRenderConfig().doNotTrackSize) {
2089
2097
  const observeTarget = (this.insertedDomEl as HTMLElement) ?? this.hostElement;
2090
2098
  this.resizeObserver = new ResizeObserver((entries) => {
2091
2099
  entries.forEach((entry) => {
@@ -2160,7 +2168,7 @@ export class TsEmbed {
2160
2168
  */
2161
2169
  public hidePreRender(): void {
2162
2170
  uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_HIDE_PRE_RENDER, {
2163
- preRenderId: this.getPreRenderConfig().preRenderId,
2171
+ preRenderId: this.getPreRenderConfig().id,
2164
2172
  embedComponentType: this.viewConfig.embedComponentType,
2165
2173
  });
2166
2174
 
@@ -2204,7 +2212,7 @@ export class TsEmbed {
2204
2212
  * @property {string} child - The HTML element ID for the PreRender child.
2205
2213
  */
2206
2214
  public getPreRenderIds() {
2207
- const preRenderId = this.getPreRenderConfig().preRenderId;
2215
+ const preRenderId = this.getPreRenderConfig().id;
2208
2216
  return {
2209
2217
  wrapper: `${PRERENDER_WRAPPER_ID_PREFIX}${preRenderId}`,
2210
2218
  child: `tsEmbed-pre-render-child-${preRenderId}`,
package/src/index.ts CHANGED
@@ -69,6 +69,7 @@ import {
69
69
  InterceptedApiType,
70
70
  EmbedErrorCodes,
71
71
  EmbedErrorDetailsEvent,
72
+ EmbedErrorSeverity,
72
73
  ErrorDetailsTypes,
73
74
  ContextType,
74
75
  AutoMCPFrameRendererViewConfig,
@@ -218,6 +219,7 @@ export {
218
219
  InterceptedApiType,
219
220
  EmbedErrorCodes,
220
221
  EmbedErrorDetailsEvent,
222
+ EmbedErrorSeverity,
221
223
  ErrorDetailsTypes,
222
224
  AutoMCPFrameRendererViewConfig,
223
225
  VisualizationOverrides,
@@ -75,6 +75,7 @@ export {
75
75
  LiveboardParameter,
76
76
  DataPanelCustomColumnGroupsAccordionState,
77
77
  InterceptedApiType,
78
+ EmbedErrorSeverity,
78
79
  CustomActionsPosition,
79
80
  CustomActionTarget,
80
81
  SpotterAnalystConfig,
@@ -358,10 +358,10 @@ describe('React Components', () => {
358
358
  ].forEach((spy) => spy.mockRestore());
359
359
  });
360
360
 
361
- it('Should preRender PreRenderedLiveboardEmbed with preRenderConfig.preRenderId', () => {
361
+ it('Should preRender PreRenderedLiveboardEmbed with preRenderConfig.id', () => {
362
362
  render(
363
363
  <PreRenderedLiveboardEmbed
364
- preRenderConfig={{ preRenderId }}
364
+ preRenderConfig={{ id: preRenderId }}
365
365
  liveboardId="test-liveboard"
366
366
  />,
367
367
  );
@@ -386,7 +386,7 @@ describe('React Components', () => {
386
386
  it('Should showPreRender the LiveboardEmbed connected via preRenderConfig', () => {
387
387
  const { unmount } = render(
388
388
  <LiveboardEmbed
389
- preRenderConfig={{ preRenderId }}
389
+ preRenderConfig={{ id: preRenderId }}
390
390
  liveboardId="test-liveboard"
391
391
  />,
392
392
  );
@@ -447,10 +447,10 @@ describe('React Components', () => {
447
447
  .forEach((el) => el.remove());
448
448
  });
449
449
 
450
- it('Should create the wrapper with preRenderConfig.preRenderId', async () => {
450
+ it('Should create the wrapper with preRenderConfig.id', async () => {
451
451
  render(
452
452
  <PreRenderedLiveboardEmbed
453
- preRenderConfig={{ preRenderId }}
453
+ preRenderConfig={{ id: preRenderId }}
454
454
  liveboardId="test-liveboard"
455
455
  />,
456
456
  );
@@ -458,11 +458,11 @@ describe('React Components', () => {
458
458
  await waitFor(() => expect(document.getElementById(wrapperId(preRenderId))).not.toBe(null));
459
459
  });
460
460
 
461
- it('Should prefer preRenderConfig.preRenderId over the top-level preRenderId', async () => {
461
+ it('Should prefer preRenderConfig.id over the top-level preRenderId', async () => {
462
462
  render(
463
463
  <PreRenderedLiveboardEmbed
464
464
  preRenderId="top-level-pre-render-id"
465
- preRenderConfig={{ preRenderId: 'config-pre-render-id' }}
465
+ preRenderConfig={{ id: 'config-pre-render-id' }}
466
466
  liveboardId="test-liveboard"
467
467
  />,
468
468
  );
@@ -34,7 +34,7 @@ const componentFactory = <T extends typeof TsEmbed, U extends EmbedProps, V exte
34
34
  const { viewConfig, listeners } = getViewPropsAndListeners<Omit<U, 'className' | 'style'>, V>(
35
35
  embedProps,
36
36
  );
37
- const preRenderId = props.preRenderConfig?.preRenderId ?? props.preRenderId;
37
+ const preRenderId = props.preRenderConfig?.id ?? props.preRenderId;
38
38
 
39
39
  const handleDestroy = (tsEmbed: InstanceType<T>) => {
40
40
  // do not destroy if it is a preRender component
@@ -116,9 +116,9 @@ interface SearchProps extends EmbedProps, SearchViewConfig { }
116
116
 
117
117
  /**
118
118
  * The PreRendered components require a preRender id. It can be supplied either
119
- * through `preRenderConfig.preRenderId` (SDK: 1.52.0 and later) or through the
119
+ * through `preRenderConfig.id` (SDK: 1.52.0 and later) or through the
120
120
  * top-level `preRenderId` prop (SDK: 1.25.0 and later, now deprecated).
121
- * `preRenderConfig.preRenderId` takes precedence when both are set.
121
+ * `preRenderConfig.id` takes precedence when both are set.
122
122
  *
123
123
  * Use PreRender to render the embed in the background and then
124
124
  * show or hide the rendered embed using showPreRender or hidePreRender respectively.
@@ -127,14 +127,14 @@ interface SearchProps extends EmbedProps, SearchViewConfig { }
127
127
  * // Preferred, SDK: 1.52.0 and later.
128
128
  * function LandingPageComponent() {
129
129
  * return <PreRenderedLiveboardEmbed
130
- * preRenderConfig={{ preRenderId: "someId" }}
130
+ * preRenderConfig={{ id: "someId" }}
131
131
  * liveboardId="libId"
132
132
  * />
133
133
  * }
134
134
  *
135
135
  * function MyComponent() {
136
136
  * return <LiveboardEmbed
137
- * preRenderConfig={{ preRenderId: "someId" }}
137
+ * preRenderConfig={{ id: "someId" }}
138
138
  * liveboardId="libId"
139
139
  * />
140
140
  * }
@@ -152,7 +152,7 @@ type PreRenderProps =
152
152
  /**
153
153
  * PreRender id to be used for PreRendering the embed.
154
154
  * @version SDK: 1.25.0 | ThoughtSpot: 9.6.0.cl
155
- * @deprecated Use `preRenderConfig.preRenderId` instead.
155
+ * @deprecated Use `preRenderConfig.id` instead.
156
156
  */
157
157
  preRenderId: string;
158
158
  /**
@@ -166,16 +166,16 @@ type PreRenderProps =
166
166
  /**
167
167
  * PreRender id to be used for PreRendering the embed.
168
168
  * @version SDK: 1.25.0 | ThoughtSpot: 9.6.0.cl
169
- * @deprecated Use `preRenderConfig.preRenderId` instead.
169
+ * @deprecated Use `preRenderConfig.id` instead.
170
170
  */
171
171
  preRenderId?: string;
172
172
  /**
173
- * Configuration for the pre-render wrapper element. `preRenderId` is
173
+ * Configuration for the pre-render wrapper element. `id` is
174
174
  * required here when the top-level `preRenderId` prop is not passed.
175
175
  * See {@link PreRenderConfig} for available options.
176
176
  * @version SDK: 1.52.0
177
177
  */
178
- preRenderConfig: PreRenderConfig & { preRenderId: string };
178
+ preRenderConfig: PreRenderConfig & { id: string };
179
179
  };
180
180
 
181
181
  /**