@thoughtspot/visual-embed-sdk 1.36.9-primaryAction → 1.37.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 (104) hide show
  1. package/cjs/package.json +1 -1
  2. package/cjs/src/embed/liveboard.d.ts +2 -2
  3. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  4. package/cjs/src/embed/ts-embed.js +1 -4
  5. package/cjs/src/embed/ts-embed.js.map +1 -1
  6. package/cjs/src/index.d.ts.map +1 -1
  7. package/cjs/src/index.js +1 -0
  8. package/cjs/src/index.js.map +1 -1
  9. package/cjs/src/react/index.d.ts.map +1 -1
  10. package/cjs/src/react/index.js +1 -0
  11. package/cjs/src/react/index.js.map +1 -1
  12. package/cjs/src/types.d.ts +12 -28
  13. package/cjs/src/types.d.ts.map +1 -1
  14. package/cjs/src/types.js +9 -10
  15. package/cjs/src/types.js.map +1 -1
  16. package/dist/{index-BEyovSez.js → index-DnIvX1FR.js} +2 -1
  17. package/dist/src/embed/liveboard.d.ts +2 -2
  18. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  19. package/dist/src/index.d.ts.map +1 -1
  20. package/dist/src/react/index.d.ts.map +1 -1
  21. package/dist/src/types.d.ts +12 -28
  22. package/dist/src/types.d.ts.map +1 -1
  23. package/dist/tsembed-react.es.js +14 -17
  24. package/dist/tsembed-react.js +13 -16
  25. package/dist/tsembed.es.js +14 -17
  26. package/dist/tsembed.js +13 -16
  27. package/dist/visual-embed-sdk-react-full.d.ts +14 -30
  28. package/dist/visual-embed-sdk-react.d.ts +14 -30
  29. package/dist/visual-embed-sdk.d.ts +14 -30
  30. package/lib/package.json +1 -1
  31. package/lib/src/embed/liveboard.d.ts +2 -2
  32. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  33. package/lib/src/embed/ts-embed.js +1 -4
  34. package/lib/src/embed/ts-embed.js.map +1 -1
  35. package/lib/src/index.d.ts.map +1 -1
  36. package/lib/src/index.js +1 -0
  37. package/lib/src/index.js.map +1 -1
  38. package/lib/src/react/index.d.ts.map +1 -1
  39. package/lib/src/react/index.js +1 -0
  40. package/lib/src/react/index.js.map +1 -1
  41. package/lib/src/types.d.ts +12 -28
  42. package/lib/src/types.d.ts.map +1 -1
  43. package/lib/src/types.js +9 -10
  44. package/lib/src/types.js.map +1 -1
  45. package/lib/src/visual-embed-sdk.d.ts +14 -30
  46. package/package.json +1 -1
  47. package/src/embed/liveboard.ts +2 -2
  48. package/src/embed/ts-embed.ts +0 -5
  49. package/src/index.ts +2 -0
  50. package/src/react/index.tsx +2 -0
  51. package/src/types.ts +11 -31
  52. package/cjs/src/pages/embed-test.page.d.ts +0 -8
  53. package/cjs/src/pages/embed-test.page.d.ts.map +0 -1
  54. package/cjs/src/pages/embed-test.page.js +0 -20
  55. package/cjs/src/pages/embed-test.page.js.map +0 -1
  56. package/cjs/src/pages/home.page.d.ts +0 -6
  57. package/cjs/src/pages/home.page.d.ts.map +0 -1
  58. package/cjs/src/pages/home.page.js +0 -12
  59. package/cjs/src/pages/home.page.js.map +0 -1
  60. package/cjs/src/pages/login.page.d.ts +0 -15
  61. package/cjs/src/pages/login.page.d.ts.map +0 -1
  62. package/cjs/src/pages/login.page.js +0 -22
  63. package/cjs/src/pages/login.page.js.map +0 -1
  64. package/cjs/src/tests/auth.test.d.ts +0 -1
  65. package/cjs/src/tests/auth.test.d.ts.map +0 -1
  66. package/cjs/src/tests/auth.test.js +0 -1
  67. package/cjs/src/tests/auth.test.js.map +0 -1
  68. package/cjs/src/tests/e2e/auth.spec.d.ts +0 -2
  69. package/cjs/src/tests/e2e/auth.spec.d.ts.map +0 -1
  70. package/cjs/src/tests/e2e/auth.spec.js +0 -54
  71. package/cjs/src/tests/e2e/auth.spec.js.map +0 -1
  72. package/dist/index-BJx3m5_V.js +0 -7370
  73. package/dist/index-Dg18PU5Z.js +0 -7370
  74. package/dist/index-Do_T8J8z.js +0 -7370
  75. package/dist/src/pages/embed-test.page.d.ts +0 -8
  76. package/dist/src/pages/embed-test.page.d.ts.map +0 -1
  77. package/dist/src/pages/home.page.d.ts +0 -6
  78. package/dist/src/pages/home.page.d.ts.map +0 -1
  79. package/dist/src/pages/login.page.d.ts +0 -15
  80. package/dist/src/pages/login.page.d.ts.map +0 -1
  81. package/dist/src/tests/auth.test.d.ts +0 -1
  82. package/dist/src/tests/auth.test.d.ts.map +0 -1
  83. package/dist/src/tests/e2e/auth.spec.d.ts +0 -2
  84. package/dist/src/tests/e2e/auth.spec.d.ts.map +0 -1
  85. package/lib/src/pages/embed-test.page.d.ts +0 -8
  86. package/lib/src/pages/embed-test.page.d.ts.map +0 -1
  87. package/lib/src/pages/embed-test.page.js +0 -16
  88. package/lib/src/pages/embed-test.page.js.map +0 -1
  89. package/lib/src/pages/home.page.d.ts +0 -6
  90. package/lib/src/pages/home.page.d.ts.map +0 -1
  91. package/lib/src/pages/home.page.js +0 -8
  92. package/lib/src/pages/home.page.js.map +0 -1
  93. package/lib/src/pages/login.page.d.ts +0 -15
  94. package/lib/src/pages/login.page.d.ts.map +0 -1
  95. package/lib/src/pages/login.page.js +0 -18
  96. package/lib/src/pages/login.page.js.map +0 -1
  97. package/lib/src/tests/auth.test.d.ts +0 -1
  98. package/lib/src/tests/auth.test.d.ts.map +0 -1
  99. package/lib/src/tests/auth.test.js +0 -1
  100. package/lib/src/tests/auth.test.js.map +0 -1
  101. package/lib/src/tests/e2e/auth.spec.d.ts +0 -2
  102. package/lib/src/tests/e2e/auth.spec.d.ts.map +0 -1
  103. package/lib/src/tests/e2e/auth.spec.js +0 -52
  104. package/lib/src/tests/e2e/auth.spec.js.map +0 -1
package/src/types.ts CHANGED
@@ -740,23 +740,6 @@ export interface ViewConfig {
740
740
  * @important
741
741
  */
742
742
  hiddenActions?: Action[];
743
-
744
- /**
745
- * The primary action to display from the embedded.
746
- * This action will be displayed from the embedded.
747
- * Use this to set the primary action.
748
- * @version SDK: 1.6.0 | ThoughtSpot: ts8.nov.cl, 8.4.1.sw
749
- * @example
750
- * ```js
751
- * const embed = new LiveboardEmbed('#embed', {
752
- * ... // other liveboard view config
753
- * primaryAction: 'download'
754
- * });
755
- * ```
756
- * @important
757
- */
758
- primaryAction?: string;
759
-
760
743
  /**
761
744
  * The list of actions to display from the primary menu, more menu
762
745
  * (...), and the contextual menu. These will be only actions that
@@ -787,8 +770,6 @@ export interface ViewConfig {
787
770
  * })
788
771
  * ```
789
772
  */
790
-
791
-
792
773
  showAlerts?: boolean;
793
774
  /**
794
775
  * The list of runtime filters to apply to a search Answer,
@@ -1157,8 +1138,8 @@ export interface ViewConfig {
1157
1138
  * Hide list page columns
1158
1139
  * For example: hiddenListColumns = [ListPageColumns.Author]
1159
1140
  *
1160
- * **Note**: This option is appplicable only in full app embedding.
1161
- * @version SDK: 1.38.0 | ThoughtSpot: 9.12.5.cl, 10.1.0.sw
1141
+ * **Note**: This option is available only in full app embedding.
1142
+ * @version SDK: 1.38.0 | ThoughtSpot: 10.9.0.cl
1162
1143
  * @example
1163
1144
  * ```js
1164
1145
  * const embed = new AppEmbed('#tsEmbed', {
@@ -1330,8 +1311,8 @@ export enum HomepageModule {
1330
1311
 
1331
1312
  /**
1332
1313
  * List page columns that can be hidden.
1333
- * **Note**: This option is applicable only in full app embedding.
1334
- * @version SDK: 1.38.0 | ThoughtSpot: 9.12.5.cl, 10.1.0.sw
1314
+ * **Note**: This option is applicable to full app embedding only.
1315
+ * @version SDK: 1.38.0 | ThoughtSpot: 10.9.0.cl
1335
1316
  */
1336
1317
  // eslint-disable-next-line no-shadow
1337
1318
  export enum ListPageColumns {
@@ -2420,7 +2401,7 @@ export enum EmbedEvent {
2420
2401
  * searchEmbed.trigger(HostEvent.TransformTableVizData, columnDataLite);
2421
2402
  * })
2422
2403
  * ```
2423
- * @version SDK: 1.38.0 | ThoughtSpot: 10.8.0.cl
2404
+ * @version SDK: 1.37.0 | ThoughtSpot: 10.8.0.cl
2424
2405
  */
2425
2406
  TableVizRendered = 'TableVizRendered',
2426
2407
  /**
@@ -2433,12 +2414,12 @@ export enum EmbedEvent {
2433
2414
  * console.log('payload', payload);
2434
2415
  * })
2435
2416
  *```
2436
- * @version SDK : 1.38.0 | ThoughtSpot : 10.8.0.cl
2417
+ * @version SDK : 1.37.0 | ThoughtSpot : 10.8.0.cl
2437
2418
  */
2438
2419
  CreateLiveboard = 'createLiveboard',
2439
2420
  /**
2440
2421
  * Emitted when a user creates a Model.
2441
- * @version SDK : 1.38.0 | ThoughtSpot : 10.8.0.cl
2422
+ * @version SDK : 1.37.0 | ThoughtSpot : 10.8.0.cl
2442
2423
  */
2443
2424
  CreateModel = 'createModel',
2444
2425
  }
@@ -2882,7 +2863,7 @@ export enum HostEvent {
2882
2863
  * ```js
2883
2864
  * liveboardEmbed.trigger(HostEvent.Remove)
2884
2865
  * ```
2885
- * @version SDK: 1.38.0 | ThoughtSpot: 10.8.0.cl, 10.10.0.sw
2866
+ * @version SDK: 1.37.0 | ThoughtSpot: 10.8.0.cl, 10.10.0.sw
2886
2867
  */
2887
2868
  Remove = 'delete',
2888
2869
  /**
@@ -3477,7 +3458,7 @@ export enum HostEvent {
3477
3458
  * searchEmbed.trigger(HostEvent.TransformTableVizData, columnDataLite);
3478
3459
  * })
3479
3460
  * ```
3480
- * @version SDK: 1.38.0 | ThoughtSpot: 10.8.0.cl
3461
+ * @version SDK: 1.37.0 | ThoughtSpot: 10.8.0.cl
3481
3462
  */
3482
3463
  TransformTableVizData = 'TransformTableVizData',
3483
3464
  }
@@ -3616,7 +3597,6 @@ export enum Param {
3616
3597
  preAuthCache = 'preAuthCache',
3617
3598
  ShowSpotterLimitations = 'showSpotterLimitations',
3618
3599
  CoverAndFilterOptionInPDF = 'coverAndFilterOptionInPDF',
3619
- PrimaryAction = 'primaryAction',
3620
3600
  }
3621
3601
 
3622
3602
  /**
@@ -4842,7 +4822,7 @@ export enum Action {
4842
4822
  * ```js
4843
4823
  * hiddenAction: [Action.ColumnRename]
4844
4824
  * ```
4845
- * @version SDK: 1.38.0 | ThoughtSpot Cloud: 10.8.0.cl
4825
+ * @version SDK: 1.37.0 | ThoughtSpot Cloud: 10.8.0.cl
4846
4826
  */
4847
4827
  ColumnRename = 'columnRename',
4848
4828
  /**
@@ -4852,7 +4832,7 @@ export enum Action {
4852
4832
  * ```js
4853
4833
  * hiddenAction: [Action.CoverAndFilterOptionInPDF]
4854
4834
  * ```
4855
- * @version SDK: 1.38.0 | ThoughtSpot Cloud: 10.8.0.cl
4835
+ * @version SDK: 1.37.0 | ThoughtSpot Cloud: 10.8.0.cl
4856
4836
  */
4857
4837
  CoverAndFilterOptionInPDF = 'coverAndFilterOptionInPDF',
4858
4838
  }
@@ -1,8 +0,0 @@
1
- export declare class EmbedTestPage {
2
- private page;
3
- constructor(page: any);
4
- goto(): Promise<void>;
5
- waitForFrameToLoad(): Promise<void>;
6
- switchToTSFrame(): Promise<any>;
7
- }
8
- //# sourceMappingURL=embed-test.page.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"embed-test.page.d.ts","sourceRoot":"","sources":["../../../src/pages/embed-test.page.ts"],"names":[],"mappings":"AAAA,qBAAa,aAAa;IACV,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,GAAG;IAEvB,IAAI;IAIJ,kBAAkB;IAIlB,eAAe;CAIxB"}
@@ -1,20 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EmbedTestPage = void 0;
4
- class EmbedTestPage {
5
- constructor(page) {
6
- this.page = page;
7
- }
8
- async goto() {
9
- // Implement navigation logic
10
- }
11
- async waitForFrameToLoad() {
12
- // Implement frame load wait logic
13
- }
14
- async switchToTSFrame() {
15
- // Implement frame switching logic
16
- return this.page;
17
- }
18
- }
19
- exports.EmbedTestPage = EmbedTestPage;
20
- //# sourceMappingURL=embed-test.page.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"embed-test.page.js","sourceRoot":"","sources":["../../../src/pages/embed-test.page.ts"],"names":[],"mappings":";;;AAAA,MAAa,aAAa;IACtB,YAAoB,IAAS;QAAT,SAAI,GAAJ,IAAI,CAAK;IAAG,CAAC;IAEjC,KAAK,CAAC,IAAI;QACN,6BAA6B;IACjC,CAAC;IAED,KAAK,CAAC,kBAAkB;QACpB,kCAAkC;IACtC,CAAC;IAED,KAAK,CAAC,eAAe;QACjB,kCAAkC;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;CACJ;AAfD,sCAeC"}
@@ -1,6 +0,0 @@
1
- export declare class HomePage {
2
- selectors: {
3
- homePage: string;
4
- };
5
- }
6
- //# sourceMappingURL=home.page.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"home.page.d.ts","sourceRoot":"","sources":["../../../src/pages/home.page.ts"],"names":[],"mappings":"AAAA,qBAAa,QAAQ;IACjB,SAAS;;MAEP;CACL"}
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HomePage = void 0;
4
- class HomePage {
5
- constructor() {
6
- this.selectors = {
7
- homePage: '[data-testid="home-page"]'
8
- };
9
- }
10
- }
11
- exports.HomePage = HomePage;
12
- //# sourceMappingURL=home.page.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"home.page.js","sourceRoot":"","sources":["../../../src/pages/home.page.ts"],"names":[],"mappings":";;;AAAA,MAAa,QAAQ;IAArB;QACI,cAAS,GAAG;YACR,QAAQ,EAAE,2BAA2B;SACxC,CAAC;IACN,CAAC;CAAA;AAJD,4BAIC"}
@@ -1,15 +0,0 @@
1
- export declare class LoginPage {
2
- private page;
3
- selectors: {
4
- userAvatar: string;
5
- signOutButtonInProfileMenu: string;
6
- loginPageLogo: string;
7
- };
8
- utils: {
9
- getRandomName: () => string;
10
- getStrongPassword: () => string;
11
- };
12
- constructor(page: any);
13
- loginAsUser(username: string, password: string): Promise<void>;
14
- }
15
- //# sourceMappingURL=login.page.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"login.page.d.ts","sourceRoot":"","sources":["../../../src/pages/login.page.ts"],"names":[],"mappings":"AAAA,qBAAa,SAAS;IAYN,OAAO,CAAC,IAAI;IAXxB,SAAS;;;;MAIP;IAEF,KAAK;;;MAGH;gBAEkB,IAAI,EAAE,GAAG;IAEvB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAGvD"}
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LoginPage = void 0;
4
- class LoginPage {
5
- constructor(page) {
6
- this.page = page;
7
- this.selectors = {
8
- userAvatar: '[data-testid="user-avatar"]',
9
- signOutButtonInProfileMenu: '[data-testid="sign-out-button"]',
10
- loginPageLogo: '[data-testid="login-logo"]'
11
- };
12
- this.utils = {
13
- getRandomName: () => `testUser${Math.random().toString(36).substring(7)}`,
14
- getStrongPassword: () => 'Test@123'
15
- };
16
- }
17
- async loginAsUser(username, password) {
18
- // Implement login logic here
19
- }
20
- }
21
- exports.LoginPage = LoginPage;
22
- //# sourceMappingURL=login.page.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"login.page.js","sourceRoot":"","sources":["../../../src/pages/login.page.ts"],"names":[],"mappings":";;;AAAA,MAAa,SAAS;IAYlB,YAAoB,IAAS;QAAT,SAAI,GAAJ,IAAI,CAAK;QAX7B,cAAS,GAAG;YACR,UAAU,EAAE,6BAA6B;YACzC,0BAA0B,EAAE,iCAAiC;YAC7D,aAAa,EAAE,4BAA4B;SAC9C,CAAC;QAEF,UAAK,GAAG;YACJ,aAAa,EAAE,GAAG,EAAE,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YACzE,iBAAiB,EAAE,GAAG,EAAE,CAAC,UAAU;SACtC,CAAC;IAE8B,CAAC;IAEjC,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,QAAgB;QAChD,6BAA6B;IACjC,CAAC;CACJ;AAjBD,8BAiBC"}
@@ -1 +0,0 @@
1
- //# sourceMappingURL=auth.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.test.d.ts","sourceRoot":"","sources":["../../../src/tests/auth.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- //# sourceMappingURL=auth.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.test.js","sourceRoot":"","sources":["../../../src/tests/auth.test.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=auth.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.spec.d.ts","sourceRoot":"","sources":["../../../../src/tests/e2e/auth.spec.ts"],"names":[],"mappings":""}
@@ -1,54 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const test_1 = require("@playwright/test");
4
- const login_page_1 = require("src/pages/login.page");
5
- const home_page_1 = require("src/pages/home.page");
6
- const embed_test_page_1 = require("src/pages/embed-test.page");
7
- test_1.test.describe('Authentication flows', () => {
8
- let loginPage;
9
- let homePage;
10
- let embedTestPage;
11
- test_1.test.beforeEach(async ({ page }) => {
12
- loginPage = new login_page_1.LoginPage(page);
13
- homePage = new home_page_1.HomePage();
14
- embedTestPage = new embed_test_page_1.EmbedTestPage(page);
15
- await embedTestPage.goto();
16
- });
17
- (0, test_1.test)('should handle logout and login sequence correctly', async () => {
18
- // Wait for initial load
19
- await embedTestPage.waitForFrameToLoad();
20
- const frameLoc = await embedTestPage.switchToTSFrame();
21
- // Verify user is logged in
22
- await (0, test_1.expect)(frameLoc.locator(homePage.selectors.homePage)).toBeVisible();
23
- // Perform logout
24
- await frameLoc.locator(loginPage.selectors.userAvatar).click();
25
- await frameLoc.locator(loginPage.selectors.signOutButtonInProfileMenu).click();
26
- // Verify logout
27
- await (0, test_1.expect)(frameLoc.locator(loginPage.selectors.loginPageLogo)).toBeVisible();
28
- // Perform login with new credentials
29
- const username = loginPage.utils.getRandomName();
30
- const password = loginPage.utils.getStrongPassword();
31
- await loginPage.loginAsUser(username, password);
32
- // Verify successful login
33
- await (0, test_1.expect)(frameLoc.locator(homePage.selectors.homePage)).toBeVisible();
34
- await (0, test_1.expect)(frameLoc.locator(loginPage.selectors.userAvatar)).toBeVisible();
35
- });
36
- (0, test_1.test)('should handle multiple logout-login cycles', async () => {
37
- await embedTestPage.waitForFrameToLoad();
38
- const frameLoc = await embedTestPage.switchToTSFrame();
39
- // First cycle
40
- await (0, test_1.expect)(frameLoc.locator(homePage.selectors.homePage)).toBeVisible();
41
- await frameLoc.locator(loginPage.selectors.userAvatar).click();
42
- await frameLoc.locator(loginPage.selectors.signOutButtonInProfileMenu).click();
43
- await (0, test_1.expect)(frameLoc.locator(loginPage.selectors.loginPageLogo)).toBeVisible();
44
- await loginPage.loginAsUser(loginPage.utils.getRandomName(), loginPage.utils.getStrongPassword());
45
- await (0, test_1.expect)(frameLoc.locator(homePage.selectors.homePage)).toBeVisible();
46
- // Second cycle
47
- await frameLoc.locator(loginPage.selectors.userAvatar).click();
48
- await frameLoc.locator(loginPage.selectors.signOutButtonInProfileMenu).click();
49
- await (0, test_1.expect)(frameLoc.locator(loginPage.selectors.loginPageLogo)).toBeVisible();
50
- await loginPage.loginAsUser(loginPage.utils.getRandomName(), loginPage.utils.getStrongPassword());
51
- await (0, test_1.expect)(frameLoc.locator(homePage.selectors.homePage)).toBeVisible();
52
- });
53
- });
54
- //# sourceMappingURL=auth.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.spec.js","sourceRoot":"","sources":["../../../../src/tests/e2e/auth.spec.ts"],"names":[],"mappings":"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"}