@thoughtspot/visual-embed-sdk 1.51.1 → 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 (130) 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/search.spec.js +28 -0
  13. package/cjs/src/embed/search.spec.js.map +1 -1
  14. package/cjs/src/embed/ts-embed.d.ts +86 -5
  15. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  16. package/cjs/src/embed/ts-embed.js +30 -19
  17. package/cjs/src/embed/ts-embed.js.map +1 -1
  18. package/cjs/src/embed/ts-embed.spec.d.ts.map +1 -1
  19. package/cjs/src/embed/ts-embed.spec.js +55 -16
  20. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  21. package/cjs/src/index.d.ts +2 -2
  22. package/cjs/src/index.d.ts.map +1 -1
  23. package/cjs/src/index.js +2 -1
  24. package/cjs/src/index.js.map +1 -1
  25. package/cjs/src/react/all-types-export.d.ts +1 -1
  26. package/cjs/src/react/all-types-export.d.ts.map +1 -1
  27. package/cjs/src/react/all-types-export.js +2 -1
  28. package/cjs/src/react/all-types-export.js.map +1 -1
  29. package/cjs/src/react/index.d.ts +8 -8
  30. package/cjs/src/react/index.d.ts.map +1 -1
  31. package/cjs/src/react/index.js +1 -1
  32. package/cjs/src/react/index.js.map +1 -1
  33. package/cjs/src/react/index.spec.js +7 -7
  34. package/cjs/src/react/index.spec.js.map +1 -1
  35. package/cjs/src/types.d.ts +124 -36
  36. package/cjs/src/types.d.ts.map +1 -1
  37. package/cjs/src/types.js +80 -12
  38. package/cjs/src/types.js.map +1 -1
  39. package/cjs/src/utils.d.ts +5 -0
  40. package/cjs/src/utils.d.ts.map +1 -1
  41. package/cjs/src/utils.js +19 -1
  42. package/cjs/src/utils.js.map +1 -1
  43. package/cjs/src/utils.spec.js +33 -0
  44. package/cjs/src/utils.spec.js.map +1 -1
  45. package/dist/{index-DxLfQxoT.js → index-BMppCU63.js} +1 -1
  46. package/dist/src/api-intercept.d.ts.map +1 -1
  47. package/dist/src/css-variables.d.ts +1 -1
  48. package/dist/src/embed/conversation.d.ts +5 -5
  49. package/dist/src/embed/liveboard.d.ts.map +1 -1
  50. package/dist/src/embed/ts-embed.d.ts +86 -5
  51. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  52. package/dist/src/embed/ts-embed.spec.d.ts.map +1 -1
  53. package/dist/src/index.d.ts +2 -2
  54. package/dist/src/index.d.ts.map +1 -1
  55. package/dist/src/react/all-types-export.d.ts +1 -1
  56. package/dist/src/react/all-types-export.d.ts.map +1 -1
  57. package/dist/src/react/index.d.ts +8 -8
  58. package/dist/src/react/index.d.ts.map +1 -1
  59. package/dist/src/types.d.ts +124 -36
  60. package/dist/src/types.d.ts.map +1 -1
  61. package/dist/src/utils.d.ts +5 -0
  62. package/dist/src/utils.d.ts.map +1 -1
  63. package/dist/tsembed-react.es.js +133 -35
  64. package/dist/tsembed-react.js +132 -34
  65. package/dist/tsembed.es.js +133 -35
  66. package/dist/tsembed.js +131 -33
  67. package/dist/visual-embed-sdk-react-full.d.ts +223 -54
  68. package/dist/visual-embed-sdk-react.d.ts +199 -53
  69. package/dist/visual-embed-sdk.d.ts +215 -46
  70. package/lib/package.json +1 -1
  71. package/lib/src/api-intercept.d.ts.map +1 -1
  72. package/lib/src/api-intercept.js +2 -1
  73. package/lib/src/api-intercept.js.map +1 -1
  74. package/lib/src/css-variables.d.ts +1 -1
  75. package/lib/src/embed/conversation.d.ts +5 -5
  76. package/lib/src/embed/liveboard.d.ts.map +1 -1
  77. package/lib/src/embed/liveboard.js +3 -2
  78. package/lib/src/embed/liveboard.js.map +1 -1
  79. package/lib/src/embed/liveboard.spec.js +4 -4
  80. package/lib/src/embed/liveboard.spec.js.map +1 -1
  81. package/lib/src/embed/search.spec.js +28 -0
  82. package/lib/src/embed/search.spec.js.map +1 -1
  83. package/lib/src/embed/ts-embed.d.ts +86 -5
  84. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  85. package/lib/src/embed/ts-embed.js +32 -21
  86. package/lib/src/embed/ts-embed.js.map +1 -1
  87. package/lib/src/embed/ts-embed.spec.d.ts.map +1 -1
  88. package/lib/src/embed/ts-embed.spec.js +56 -17
  89. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  90. package/lib/src/index.d.ts +2 -2
  91. package/lib/src/index.d.ts.map +1 -1
  92. package/lib/src/index.js +2 -2
  93. package/lib/src/index.js.map +1 -1
  94. package/lib/src/react/all-types-export.d.ts +1 -1
  95. package/lib/src/react/all-types-export.d.ts.map +1 -1
  96. package/lib/src/react/all-types-export.js +1 -1
  97. package/lib/src/react/all-types-export.js.map +1 -1
  98. package/lib/src/react/index.d.ts +8 -8
  99. package/lib/src/react/index.d.ts.map +1 -1
  100. package/lib/src/react/index.js +1 -1
  101. package/lib/src/react/index.js.map +1 -1
  102. package/lib/src/react/index.spec.js +7 -7
  103. package/lib/src/react/index.spec.js.map +1 -1
  104. package/lib/src/types.d.ts +124 -36
  105. package/lib/src/types.d.ts.map +1 -1
  106. package/lib/src/types.js +79 -11
  107. package/lib/src/types.js.map +1 -1
  108. package/lib/src/utils.d.ts +5 -0
  109. package/lib/src/utils.d.ts.map +1 -1
  110. package/lib/src/utils.js +17 -0
  111. package/lib/src/utils.js.map +1 -1
  112. package/lib/src/utils.spec.js +34 -1
  113. package/lib/src/utils.spec.js.map +1 -1
  114. package/lib/src/visual-embed-sdk.d.ts +215 -46
  115. package/package.json +1 -1
  116. package/src/api-intercept.ts +2 -1
  117. package/src/css-variables.ts +1 -1
  118. package/src/embed/conversation.ts +5 -5
  119. package/src/embed/liveboard.spec.ts +4 -4
  120. package/src/embed/liveboard.ts +3 -1
  121. package/src/embed/search.spec.ts +31 -0
  122. package/src/embed/ts-embed.spec.ts +70 -16
  123. package/src/embed/ts-embed.ts +32 -20
  124. package/src/index.ts +2 -0
  125. package/src/react/all-types-export.ts +1 -0
  126. package/src/react/index.spec.tsx +7 -7
  127. package/src/react/index.tsx +9 -9
  128. package/src/types.ts +125 -36
  129. package/src/utils.spec.ts +44 -0
  130. package/src/utils.ts +16 -0
@@ -1561,9 +1561,48 @@ describe('Unit test case for ts embed', () => {
1561
1561
  errorType: types_1.ErrorDetailsTypes.VALIDATION_ERROR,
1562
1562
  message: errors_1.ERROR_MESSAGE.INIT_SDK_REQUIRED,
1563
1563
  code: types_1.EmbedErrorCodes.INIT_ERROR,
1564
+ severity: types_1.EmbedErrorSeverity.SEV1,
1564
1565
  error: errors_1.ERROR_MESSAGE.INIT_SDK_REQUIRED,
1565
1566
  });
1566
1567
  });
1568
+ test('a missing init is reported to the host as SEV1', async () => {
1569
+ const errorHandler = jest.fn();
1570
+ const tsEmbed = new index_1.SearchEmbed((0, test_utils_1.getRootEl)(), {});
1571
+ tsEmbed.on(index_1.EmbedEvent.Error, errorHandler);
1572
+ await tsEmbed.render();
1573
+ expect(errorHandler.mock.calls[0][0]).toEqual(expect.objectContaining({
1574
+ code: types_1.EmbedErrorCodes.INIT_ERROR,
1575
+ severity: types_1.EmbedErrorSeverity.SEV1,
1576
+ }));
1577
+ });
1578
+ });
1579
+ describe('error severity', () => {
1580
+ beforeEach(() => {
1581
+ jest.spyOn(config, 'getThoughtSpotHost').mockImplementation(() => 'http://tshost');
1582
+ });
1583
+ test('defaults to SEV3 when the raising site does not set one', () => {
1584
+ const errorHandler = jest.fn();
1585
+ const tsEmbed = new index_1.SearchEmbed((0, test_utils_1.getRootEl)(), {});
1586
+ tsEmbed.on(index_1.EmbedEvent.Error, errorHandler);
1587
+ tsEmbed.handleError({
1588
+ errorType: types_1.ErrorDetailsTypes.VALIDATION_ERROR,
1589
+ message: 'no severity set',
1590
+ code: types_1.EmbedErrorCodes.HOST_EVENT_VALIDATION,
1591
+ });
1592
+ expect(errorHandler.mock.calls[0][0]).toEqual(expect.objectContaining({ severity: types_1.EmbedErrorSeverity.SEV3 }));
1593
+ });
1594
+ test('does not override a severity the raising site set', () => {
1595
+ const errorHandler = jest.fn();
1596
+ const tsEmbed = new index_1.SearchEmbed((0, test_utils_1.getRootEl)(), {});
1597
+ tsEmbed.on(index_1.EmbedEvent.Error, errorHandler);
1598
+ tsEmbed.handleError({
1599
+ errorType: types_1.ErrorDetailsTypes.VALIDATION_ERROR,
1600
+ message: 'explicitly fatal',
1601
+ code: types_1.EmbedErrorCodes.HOST_EVENT_VALIDATION,
1602
+ severity: types_1.EmbedErrorSeverity.SEV1,
1603
+ });
1604
+ expect(errorHandler.mock.calls[0][0]).toEqual(expect.objectContaining({ severity: types_1.EmbedErrorSeverity.SEV1 }));
1605
+ });
1567
1606
  });
1568
1607
  describe('V1Embed ', () => {
1569
1608
  beforeEach(() => {
@@ -2901,12 +2940,12 @@ describe('Unit test case for ts embed', () => {
2901
2940
  expect(preRenderWrapper.style.zIndex).toBe('-5');
2902
2941
  libEmbed.destroy();
2903
2942
  });
2904
- it('should use preRenderConfig.preRenderId to identify the pre-render instance', async () => {
2943
+ it('should use preRenderConfig.id to identify the pre-render instance', async () => {
2905
2944
  (0, test_utils_1.createRootEleForEmbed)();
2906
2945
  const libEmbed = new index_1.LiveboardEmbed('#tsEmbedDiv', {
2907
2946
  liveboardId: 'myLiveboardId',
2908
2947
  preRenderConfig: {
2909
- preRenderId: 'config-level-id',
2948
+ id: 'config-level-id',
2910
2949
  },
2911
2950
  });
2912
2951
  await libEmbed.preRender();
@@ -2916,13 +2955,13 @@ describe('Unit test case for ts embed', () => {
2916
2955
  expect(document.getElementById(preRenderIds.wrapper)).not.toBeNull();
2917
2956
  libEmbed.destroy();
2918
2957
  });
2919
- it('should prefer preRenderConfig.preRenderId over top-level preRenderId', async () => {
2958
+ it('should prefer preRenderConfig.id over top-level preRenderId', async () => {
2920
2959
  (0, test_utils_1.createRootEleForEmbed)();
2921
2960
  const libEmbed = new index_1.LiveboardEmbed('#tsEmbedDiv', {
2922
2961
  liveboardId: 'myLiveboardId',
2923
2962
  preRenderId: 'top-level-id',
2924
2963
  preRenderConfig: {
2925
- preRenderId: 'config-level-id',
2964
+ id: 'config-level-id',
2926
2965
  },
2927
2966
  });
2928
2967
  await libEmbed.preRender();
@@ -2932,7 +2971,7 @@ describe('Unit test case for ts embed', () => {
2932
2971
  expect(preRenderIds.wrapper).not.toContain('top-level-id');
2933
2972
  libEmbed.destroy();
2934
2973
  });
2935
- it('should mount the wrapper into preRenderConfig.preRenderContainer', async () => {
2974
+ it('should mount the wrapper into preRenderConfig.containerSelector', async () => {
2936
2975
  (0, test_utils_1.createRootEleForEmbed)();
2937
2976
  const customContainer = document.createElement('div');
2938
2977
  customContainer.id = 'config-level-container';
@@ -2940,8 +2979,8 @@ describe('Unit test case for ts embed', () => {
2940
2979
  const libEmbed = new index_1.LiveboardEmbed('#tsEmbedDiv', {
2941
2980
  liveboardId: 'myLiveboardId',
2942
2981
  preRenderConfig: {
2943
- preRenderId: 'container-via-config',
2944
- preRenderContainer: '#config-level-container',
2982
+ id: 'container-via-config',
2983
+ containerSelector: '#config-level-container',
2945
2984
  },
2946
2985
  });
2947
2986
  await libEmbed.preRender();
@@ -2952,7 +2991,7 @@ describe('Unit test case for ts embed', () => {
2952
2991
  libEmbed.destroy();
2953
2992
  customContainer.remove();
2954
2993
  });
2955
- it('should prefer preRenderConfig.preRenderContainer over top-level preRenderContainer', async () => {
2994
+ it('should prefer preRenderConfig.containerSelector over top-level preRenderContainer', async () => {
2956
2995
  (0, test_utils_1.createRootEleForEmbed)();
2957
2996
  const topContainer = document.createElement('div');
2958
2997
  topContainer.id = 'top-level-container';
@@ -2964,8 +3003,8 @@ describe('Unit test case for ts embed', () => {
2964
3003
  liveboardId: 'myLiveboardId',
2965
3004
  preRenderContainer: '#top-level-container',
2966
3005
  preRenderConfig: {
2967
- preRenderId: 'container-precedence',
2968
- preRenderContainer: '#config-level-container-2',
3006
+ id: 'container-precedence',
3007
+ containerSelector: '#config-level-container-2',
2969
3008
  },
2970
3009
  });
2971
3010
  await libEmbed.preRender();
@@ -2978,7 +3017,7 @@ describe('Unit test case for ts embed', () => {
2978
3017
  topContainer.remove();
2979
3018
  configContainer.remove();
2980
3019
  });
2981
- it('should not attach ResizeObserver when preRenderConfig.doNotTrackPreRenderSize is true', async () => {
3020
+ it('should not attach ResizeObserver when preRenderConfig.doNotTrackSize is true', async () => {
2982
3021
  (0, test_utils_1.createRootEleForEmbed)();
2983
3022
  const observeMock = jest.fn();
2984
3023
  window.ResizeObserver = jest.fn().mockImplementation(() => ({
@@ -2989,8 +3028,8 @@ describe('Unit test case for ts embed', () => {
2989
3028
  const libEmbed = new index_1.LiveboardEmbed('#tsEmbedDiv', {
2990
3029
  liveboardId: 'myLiveboardId',
2991
3030
  preRenderConfig: {
2992
- preRenderId: 'no-track-via-config',
2993
- doNotTrackPreRenderSize: true,
3031
+ id: 'no-track-via-config',
3032
+ doNotTrackSize: true,
2994
3033
  },
2995
3034
  });
2996
3035
  await libEmbed.preRender();
@@ -2999,7 +3038,7 @@ describe('Unit test case for ts embed', () => {
2999
3038
  expect(observeMock).not.toHaveBeenCalled();
3000
3039
  libEmbed.destroy();
3001
3040
  });
3002
- it('should prefer preRenderConfig.doNotTrackPreRenderSize over top-level doNotTrackPreRenderSize', async () => {
3041
+ it('should prefer preRenderConfig.doNotTrackSize over top-level doNotTrackPreRenderSize', async () => {
3003
3042
  (0, test_utils_1.createRootEleForEmbed)();
3004
3043
  const observeMock = jest.fn();
3005
3044
  window.ResizeObserver = jest.fn().mockImplementation(() => ({
@@ -3011,8 +3050,8 @@ describe('Unit test case for ts embed', () => {
3011
3050
  liveboardId: 'myLiveboardId',
3012
3051
  doNotTrackPreRenderSize: false,
3013
3052
  preRenderConfig: {
3014
- preRenderId: 'no-track-precedence',
3015
- doNotTrackPreRenderSize: true,
3053
+ id: 'no-track-precedence',
3054
+ doNotTrackSize: true,
3016
3055
  },
3017
3056
  });
3018
3057
  await libEmbed.preRender();