@thoughtspot/visual-embed-sdk 1.13.0-alpha.2 → 1.13.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 (103) hide show
  1. package/CHANGELOG.md +31 -6
  2. package/README.md +1 -1
  3. package/dist/src/auth.d.ts +4 -1
  4. package/dist/src/auth.spec.d.ts +1 -0
  5. package/dist/src/embed/app.d.ts +5 -0
  6. package/dist/src/embed/liveboard.d.ts +12 -1
  7. package/dist/src/embed/search.d.ts +5 -0
  8. package/dist/src/embed/searchEmbed-basic-auth.spec.d.ts +1 -0
  9. package/dist/src/embed/ts-embed.d.ts +12 -3
  10. package/dist/src/errors.d.ts +2 -0
  11. package/dist/src/test/test-utils.d.ts +6 -0
  12. package/dist/src/types.d.ts +211 -4
  13. package/dist/src/utils/processTrigger.d.ts +1 -1
  14. package/dist/src/utils.d.ts +3 -1
  15. package/dist/tsembed.es.js +292 -24
  16. package/dist/tsembed.js +292 -24
  17. package/lib/package.json +4 -2
  18. package/lib/src/auth.d.ts +4 -1
  19. package/lib/src/auth.js +11 -2
  20. package/lib/src/auth.js.map +1 -1
  21. package/lib/src/auth.spec.d.ts +1 -0
  22. package/lib/src/auth.spec.js +13 -1
  23. package/lib/src/auth.spec.js.map +1 -1
  24. package/lib/src/config.spec.js +7 -0
  25. package/lib/src/config.spec.js.map +1 -1
  26. package/lib/src/embed/app.d.ts +5 -0
  27. package/lib/src/embed/app.js +1 -1
  28. package/lib/src/embed/app.js.map +1 -1
  29. package/lib/src/embed/app.spec.js +18 -6
  30. package/lib/src/embed/app.spec.js.map +1 -1
  31. package/lib/src/embed/embed.spec.js +2 -0
  32. package/lib/src/embed/embed.spec.js.map +1 -1
  33. package/lib/src/embed/events.spec.js +3 -1
  34. package/lib/src/embed/events.spec.js.map +1 -1
  35. package/lib/src/embed/liveboard.d.ts +12 -1
  36. package/lib/src/embed/liveboard.js +22 -4
  37. package/lib/src/embed/liveboard.js.map +1 -1
  38. package/lib/src/embed/liveboard.spec.js +33 -6
  39. package/lib/src/embed/liveboard.spec.js.map +1 -1
  40. package/lib/src/embed/pinboard.spec.js +7 -5
  41. package/lib/src/embed/pinboard.spec.js.map +1 -1
  42. package/lib/src/embed/search.d.ts +5 -0
  43. package/lib/src/embed/search.js +10 -2
  44. package/lib/src/embed/search.js.map +1 -1
  45. package/lib/src/embed/search.spec.js +9 -1
  46. package/lib/src/embed/search.spec.js.map +1 -1
  47. package/lib/src/embed/searchEmbed-basic-auth.spec.d.ts +1 -0
  48. package/lib/src/embed/searchEmbed-basic-auth.spec.js +96 -0
  49. package/lib/src/embed/searchEmbed-basic-auth.spec.js.map +1 -0
  50. package/lib/src/embed/ts-embed.d.ts +12 -3
  51. package/lib/src/embed/ts-embed.js +29 -10
  52. package/lib/src/embed/ts-embed.js.map +1 -1
  53. package/lib/src/embed/ts-embed.spec.js +38 -5
  54. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  55. package/lib/src/errors.d.ts +2 -0
  56. package/lib/src/errors.js +2 -0
  57. package/lib/src/errors.js.map +1 -1
  58. package/lib/src/react/index.js +3 -2
  59. package/lib/src/react/index.js.map +1 -1
  60. package/lib/src/react/index.spec.js +6 -4
  61. package/lib/src/react/index.spec.js.map +1 -1
  62. package/lib/src/test/test-utils.d.ts +6 -0
  63. package/lib/src/test/test-utils.js +15 -0
  64. package/lib/src/test/test-utils.js.map +1 -1
  65. package/lib/src/types.d.ts +211 -4
  66. package/lib/src/types.js +176 -0
  67. package/lib/src/types.js.map +1 -1
  68. package/lib/src/utils/processTrigger.d.ts +1 -1
  69. package/lib/src/utils/processTrigger.js +28 -8
  70. package/lib/src/utils/processTrigger.js.map +1 -1
  71. package/lib/src/utils/processTrigger.spec.js +11 -1
  72. package/lib/src/utils/processTrigger.spec.js.map +1 -1
  73. package/lib/src/utils.d.ts +3 -1
  74. package/lib/src/utils.js +20 -0
  75. package/lib/src/utils.js.map +1 -1
  76. package/lib/src/utils.spec.js +22 -1
  77. package/lib/src/utils.spec.js.map +1 -1
  78. package/lib/src/visual-embed-sdk.d.ts +240 -9
  79. package/package.json +4 -2
  80. package/src/auth.spec.ts +20 -1
  81. package/src/auth.ts +12 -2
  82. package/src/config.spec.ts +11 -0
  83. package/src/embed/app.spec.ts +22 -3
  84. package/src/embed/app.ts +6 -0
  85. package/src/embed/embed.spec.ts +2 -0
  86. package/src/embed/events.spec.ts +3 -0
  87. package/src/embed/liveboard.spec.ts +46 -6
  88. package/src/embed/liveboard.ts +34 -2
  89. package/src/embed/pinboard.spec.ts +8 -6
  90. package/src/embed/search.spec.ts +11 -1
  91. package/src/embed/search.ts +20 -1
  92. package/src/embed/searchEmbed-basic-auth.spec.ts +115 -0
  93. package/src/embed/ts-embed.spec.ts +51 -5
  94. package/src/embed/ts-embed.ts +40 -12
  95. package/src/errors.ts +3 -0
  96. package/src/react/index.spec.tsx +7 -2
  97. package/src/react/index.tsx +3 -2
  98. package/src/test/test-utils.ts +16 -0
  99. package/src/types.ts +209 -0
  100. package/src/utils/processTrigger.spec.ts +11 -1
  101. package/src/utils/processTrigger.ts +36 -12
  102. package/src/utils.spec.ts +29 -0
  103. package/src/utils.ts +34 -1
package/dist/tsembed.js CHANGED
@@ -127,6 +127,26 @@
127
127
  Object.keys(attributes).forEach((key) => {
128
128
  element.setAttribute(key, attributes[key].toString());
129
129
  });
130
+ };
131
+ const isCloudRelease = (version) => version.endsWith('.cl');
132
+ /* For Search Embed: ReleaseVersionInBeta */
133
+ const checkReleaseVersionInBeta = (releaseVersion, suppressBetaWarning) => {
134
+ if (releaseVersion !== '' && !isCloudRelease(releaseVersion)) {
135
+ const splittedReleaseVersion = releaseVersion.split('.');
136
+ const majorVersion = Number(splittedReleaseVersion[0]);
137
+ const isBetaVersion = majorVersion < 8;
138
+ return !suppressBetaWarning && isBetaVersion;
139
+ }
140
+ return false;
141
+ };
142
+ const getCustomisations = (embedConfig) => {
143
+ const { customCssUrl } = embedConfig;
144
+ let { customisations } = embedConfig;
145
+ customisations = customisations || {};
146
+ customisations.style = customisations.style || {};
147
+ customisations.style.customCSSUrl =
148
+ customisations.style.customCSSUrl || customCssUrl;
149
+ return customisations;
130
150
  };
131
151
 
132
152
  /**
@@ -144,8 +164,13 @@
144
164
  AuthType["None"] = "None";
145
165
  /**
146
166
  * SSO using SAML
167
+ * @deprecated Use {@link SAML} instead
147
168
  */
148
169
  AuthType["SSO"] = "SSO_SAML";
170
+ /**
171
+ * SSO using SAML
172
+ */
173
+ AuthType["SAML"] = "SSO_SAML";
149
174
  /**
150
175
  * SSO using OIDC
151
176
  */
@@ -462,6 +487,65 @@
462
487
  * @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl
463
488
  */
464
489
  EmbedEvent["AnswerChartSwitcher"] = "answerChartSwitcher";
490
+ /**
491
+ *
492
+ */
493
+ EmbedEvent["APP_INIT"] = "appInit";
494
+ /**
495
+ * Emitted when a user clicks Show Liveboard details on a Liveboard
496
+ * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl
497
+ */
498
+ EmbedEvent["LiveboardInfo"] = "pinboardInfo";
499
+ /**
500
+ * Emitted when a user clicks on the Favorite icon on a Liveboard
501
+ * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl
502
+ */
503
+ EmbedEvent["AddToFavorites"] = "addToFavorites";
504
+ /**
505
+ * Emitted when a user clicks Schedule on a Liveboard
506
+ * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl
507
+ */
508
+ EmbedEvent["Schedule"] = "subscription";
509
+ /**
510
+ * Emitted when a user clicks Edit on a Liveboard or visualization
511
+ * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl
512
+ */
513
+ EmbedEvent["Edit"] = "edit";
514
+ /**
515
+ * Emitted when a user clicks Make a copy on a Liveboard
516
+ * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl
517
+ */
518
+ EmbedEvent["MakeACopy"] = "makeACopy";
519
+ /**
520
+ * Emitted when a user clicks Present on a Liveboard or visualization
521
+ * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl
522
+ */
523
+ EmbedEvent["Present"] = "present";
524
+ /**
525
+ * Emitted when a user clicks Delete on a Liveboard
526
+ * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl
527
+ */
528
+ EmbedEvent["Delete"] = "delete";
529
+ /**
530
+ * Emitted when a user clicks Manage schedules on a Liveboard
531
+ * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl
532
+ */
533
+ EmbedEvent["SchedulesList"] = "schedule-list";
534
+ /**
535
+ * Emitted when a user clicks Cancel in edit mode on a Liveboard
536
+ * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl
537
+ */
538
+ EmbedEvent["Cancel"] = "cancel";
539
+ /**
540
+ * Emitted when a user clicks Explore on a visualization
541
+ * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl
542
+ */
543
+ EmbedEvent["Explore"] = "explore";
544
+ /**
545
+ * Emitted when a user clicks Copy link action on a visualization
546
+ * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl
547
+ */
548
+ EmbedEvent["CopyLink"] = "embedDocument";
465
549
  })(exports.EmbedEvent || (exports.EmbedEvent = {}));
466
550
  (function (HostEvent) {
467
551
  /**
@@ -510,6 +594,112 @@
510
594
  * @version SDK: 1.12.0 | ThoughtSpot: 8.4.0.cl
511
595
  */
512
596
  HostEvent["Navigate"] = "Navigate";
597
+ /**
598
+ * Gets the current pinboard content.
599
+ * @version SDK: 1.13.0 | ThoughtSpot: 8.5.0.cl
600
+ */
601
+ HostEvent["getExportRequestForCurrentPinboard"] = "getExportRequestForCurrentPinboard";
602
+ /**
603
+ * Triggers the Pin action on an embedded object
604
+ * @param - incase of Liveboard embed, takes in an object with vizId as a key
605
+ * can be left empty for search and visualization embeds
606
+ * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl
607
+ */
608
+ HostEvent["Pin"] = "pin";
609
+ /**
610
+ * Triggers the Show Liveboard details action on a Liveboard
611
+ * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl
612
+ */
613
+ HostEvent["LiveboardInfo"] = "pinboardInfo";
614
+ /**
615
+ * Triggers the Schedule action on a Liveboard
616
+ * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl
617
+ */
618
+ HostEvent["Schedule"] = "subscription";
619
+ /**
620
+ * Triggers the Manage schedule action on a Liveboard
621
+ * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl
622
+ */
623
+ HostEvent["SchedulesList"] = "schedule-list";
624
+ /**
625
+ * Triggers the Export TML action on a Liveboard
626
+ * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl
627
+ */
628
+ HostEvent["ExportTML"] = "exportTSL";
629
+ /**
630
+ * Triggers the Edit TML action on a Liveboard
631
+ * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl
632
+ */
633
+ HostEvent["EditTML"] = "editTSL";
634
+ /**
635
+ * Triggers the Update TML action on a Liveboard
636
+ * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl
637
+ */
638
+ HostEvent["UpdateTML"] = "updateTSL";
639
+ /**
640
+ * Triggers the Download PDF action on a Liveboard
641
+ * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl
642
+ */
643
+ HostEvent["DownloadAsPdf"] = "downloadAsPdf";
644
+ /**
645
+ * Triggers the Make a copy action on a Liveboard
646
+ * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl
647
+ */
648
+ HostEvent["MakeACopy"] = "makeACopy";
649
+ /**
650
+ * Triggers the Delete action on a Liveboard
651
+ * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl
652
+ */
653
+ HostEvent["Remove"] = "delete";
654
+ /**
655
+ * Triggers the Explore action on a visualization
656
+ * @param - an object with vizId as a key
657
+ * eg: {vizId: '730496d6-6903-4601-937e-2c691821af3c'}
658
+ * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl
659
+ */
660
+ HostEvent["Explore"] = "explore";
661
+ /**
662
+ * Triggers the Create alert action on a visualization
663
+ * @param - an object with vizId as a key
664
+ * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl
665
+ */
666
+ HostEvent["CreateMonitor"] = "createMonitor";
667
+ /**
668
+ * Triggers the Manage alert action on a visualization
669
+ * @param - an object with vizId as a key
670
+ * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl
671
+ */
672
+ HostEvent["ManageMonitor"] = "manageMonitor";
673
+ /**
674
+ * Triggers the Edit action on a Liveboard or visualization
675
+ * @param - object - to trigger the action for a specfic visualization in Liveboard embed, pass in vizId as a key
676
+ * @example
677
+ * liveboardEmbed.trigger(HostEvent.Edit)
678
+ * liveboardEmbed.trigger(HostEvent.Edit, {vizId: '730496d6-6903-4601-937e-2c691821af3c'})
679
+ * vizEmbed.trigger((HostEvent.Edit)
680
+ * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl
681
+ */
682
+ HostEvent["Edit"] = "edit";
683
+ /**
684
+ * Triggers the Copy link action on a Liveboard or visualization
685
+ * @param - object - to trigger the action for a specfic visualization in Liveboard embed, pass in vizId as a key
686
+ * @example
687
+ * liveboardEmbed.trigger(HostEvent.CopyLink)
688
+ * liveboardEmbed.trigger(HostEvent.CopyLink, {vizId: '730496d6-6903-4601-937e-2c691821af3c'})
689
+ * vizEmbed.trigger((HostEvent.CopyLink)
690
+ * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl
691
+ */
692
+ HostEvent["CopyLink"] = "embedDocument";
693
+ /**
694
+ * Triggers the Present action on a Liveboard or visualization
695
+ * @param - object - to trigger the action for a specfic visualization in Liveboard embed, pass in vizId as a key
696
+ * @example
697
+ * liveboardEmbed.trigger(HostEvent.Present)
698
+ * liveboardEmbed.trigger(HostEvent.Present, {vizId: '730496d6-6903-4601-937e-2c691821af3c'})
699
+ * vizEmbed.trigger((HostEvent.Present)
700
+ * @version SDK: 1.15.0 | ThoughtSpot: 8.7.0.cl
701
+ */
702
+ HostEvent["Present"] = "present";
513
703
  })(exports.HostEvent || (exports.HostEvent = {}));
514
704
  (function (DataSourceVisualMode) {
515
705
  /**
@@ -552,6 +742,7 @@
552
742
  Param["fullHeight"] = "isFullHeightPinboard";
553
743
  Param["livedBoardEmbed"] = "isLiveboardEmbed";
554
744
  Param["searchEmbed"] = "isSearchEmbed";
745
+ Param["vizEmbed"] = "isVizEmbed";
555
746
  Param["Version"] = "sdkVersion";
556
747
  Param["ViewPortHeight"] = "viewPortHeight";
557
748
  Param["ViewPortWidth"] = "viewPortWidth";
@@ -562,6 +753,7 @@
562
753
  Param["LiveboardV2Enabled"] = "isPinboardV2Enabled";
563
754
  Param["ShowAlerts"] = "showAlerts";
564
755
  Param["Locale"] = "locale";
756
+ Param["CustomStyle"] = "customStyle";
565
757
  })(Param || (Param = {}));
566
758
  (function (Action) {
567
759
  Action["Save"] = "save";
@@ -698,6 +890,10 @@
698
890
  * @version SDK: 1.11.0 | ThoughtSpot: 8.3.0.cl
699
891
  */
700
892
  Action["CreateMonitor"] = "createMonitor";
893
+ /**
894
+ * @version SDK: 1.11.1 | ThoughtSpot: 8.3.0.cl
895
+ */
896
+ Action["ReportError"] = "reportError";
701
897
  })(exports.Action || (exports.Action = {}));
702
898
  // eslint-disable-next-line no-shadow
703
899
  var OperationType;
@@ -709,6 +905,8 @@
709
905
  const ERROR_MESSAGE = {
710
906
  INVALID_THOUGHTSPOT_HOST: 'Error parsing ThoughtSpot host. Please provide a valid URL.',
711
907
  LIVEBOARD_VIZ_ID_VALIDATION: 'Please provide either liveboardId or pinboardId',
908
+ TRIGGER_TIMED_OUT: 'Trigger timedout in getting response',
909
+ SEARCHEMBED_BETA_WRANING_MESSAGE: 'Search Embed is in Beta in this release.',
712
910
  };
713
911
 
714
912
  /**
@@ -7196,8 +7394,8 @@
7196
7394
  let samlAuthWindow = null;
7197
7395
  // eslint-disable-next-line import/no-mutable-exports
7198
7396
  let samlCompletionPromise = null;
7199
- // eslint-disable-next-line import/no-mutable-exports
7200
7397
  let sessionInfo = null;
7398
+ let releaseVersion = '';
7201
7399
  const SSO_REDIRECTION_MARKER_GUID = '5e16222e-ef02-43e9-9fbd-24226bf3ce5b';
7202
7400
  const EndPoints = {
7203
7401
  AUTH_VERIFICATION: '/callosum/v1/session/info',
@@ -7240,12 +7438,20 @@
7240
7438
  let response = null;
7241
7439
  try {
7242
7440
  response = await fetchSessionInfoService(authVerificationUrl);
7441
+ const sessionInfoResp = await response.json();
7442
+ releaseVersion = sessionInfoResp.releaseVersion;
7243
7443
  }
7244
7444
  catch (e) {
7245
7445
  return false;
7246
7446
  }
7247
7447
  return response.status === 200;
7248
7448
  }
7449
+ /**
7450
+ * Return releaseVersion if available
7451
+ */
7452
+ function getReleaseVersion() {
7453
+ return releaseVersion;
7454
+ }
7249
7455
  function initSession(sessionDetails) {
7250
7456
  sessionInfo = sessionDetails;
7251
7457
  initMixpanel(sessionInfo);
@@ -7422,6 +7628,7 @@
7422
7628
  const { authType } = embedConfig;
7423
7629
  switch (authType) {
7424
7630
  case exports.AuthType.SSO:
7631
+ case exports.AuthType.SAML:
7425
7632
  return doSamlAuth(embedConfig);
7426
7633
  case exports.AuthType.OIDC:
7427
7634
  return doOIDCAuth(embedConfig);
@@ -7716,19 +7923,38 @@
7716
7923
  /**
7717
7924
  * Post Iframe message.
7718
7925
  */
7719
- function postIframeMessage(iFrame, message, thoughtSpotHost) {
7720
- return iFrame.contentWindow.postMessage(message, thoughtSpotHost);
7926
+ function postIframeMessage(iFrame, message, thoughtSpotHost, channel) {
7927
+ return iFrame.contentWindow.postMessage(message, thoughtSpotHost, [
7928
+ channel === null || channel === void 0 ? void 0 : channel.port2,
7929
+ ]);
7721
7930
  }
7931
+ const TRIGGER_TIMEOUT = 30000;
7722
7932
  function processTrigger(iFrame, messageType, thoughtSpotHost, data) {
7723
- switch (messageType) {
7724
- case exports.HostEvent.Reload:
7725
- return reload(iFrame);
7726
- default:
7727
- return postIframeMessage(iFrame, { type: messageType, data }, thoughtSpotHost);
7728
- }
7933
+ return new Promise((res, rej) => {
7934
+ if (messageType === exports.HostEvent.Reload) {
7935
+ reload(iFrame);
7936
+ return res(null);
7937
+ }
7938
+ const channel = new MessageChannel();
7939
+ channel.port1.onmessage = ({ data: responseData }) => {
7940
+ channel.port1.close();
7941
+ if (responseData.error) {
7942
+ rej(responseData.error);
7943
+ }
7944
+ else {
7945
+ res(responseData);
7946
+ }
7947
+ };
7948
+ // Close the messageChannel and resolve the promise if timeout.
7949
+ setTimeout(() => {
7950
+ channel.port1.close();
7951
+ res(new Error(ERROR_MESSAGE.TRIGGER_TIMED_OUT));
7952
+ }, TRIGGER_TIMEOUT);
7953
+ return postIframeMessage(iFrame, { type: messageType, data }, thoughtSpotHost, channel);
7954
+ });
7729
7955
  }
7730
7956
 
7731
- var name="@thoughtspot/visual-embed-sdk";var version="1.13.0-alpha.2";var description="ThoughtSpot Embed SDK";var module="lib/src/index.js";var main="dist/tsembed.js";var types="lib/src/index.d.ts";var files=["dist/**","lib/**","src/**"];var exports$1={".":"./lib/src/index.js","./react":"./lib/src/react/index.js"};var scripts={lint:"eslint 'src/**'","lint:fix":"eslint 'src/**/*.*' --fix",tsc:"tsc -p . --incremental false",start:"gatsby develop","build:gatsby":"npm run clean:gatsby && gatsby build --prefix-paths","build:gatsby:noprefix":"npm run clean:gatsby && gatsby build","serve:gatsby":"gatsby serve","clean:gatsby":"gatsby clean","build-and-publish":"npm run build:gatsby && npm run publish","bundle-dts":"dts-bundle --name @thoughtspot/visual-embed-sdk --out visual-embed-sdk.d.ts --main lib/src/index.d.ts",build:"rollup -c",watch:"rollup -cw","docs-cmd":"node scripts/gatsby-commands.js",docgen:"typedoc --tsconfig tsconfig.json --theme typedoc-theme","test-sdk":"jest -c jest.config.sdk.js","test-docs":"jest -c jest.config.docs.js",test:"npm run test-sdk && npm run test-docs && npx istanbul-merge --out ./coverage/coverage.json ./coverage/docs/coverage-final.json ./coverage/sdk/coverage-final.json && npx istanbul report --include ./coverage/coverage.json --dir ./coverage lcov",posttest:"cat ./coverage/sdk/lcov.info | coveralls",prepublishOnly:"npm run test; npm run tsc; npm run bundle-dts; npm run build","publish-dev":"npm publish --tag dev","publish-prod":"npm publish --tag latest"};var peerDependencies={react:"> 16.8.0","react-dom":"> 16.8.0"};var dependencies={algoliasearch:"^4.10.5",classnames:"^2.3.1",eventemitter3:"^4.0.7","mixpanel-browser":"^2.45.0"};var devDependencies={"@mdx-js/mdx":"^1.6.22","@mdx-js/react":"^1.6.22","@react-icons/all-files":"^4.1.0","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-node-resolve":"^11.2.1","@testing-library/dom":"^7.31.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^11.2.7","@testing-library/user-event":"^13.1.8","@types/jest":"^22.2.3","@types/mixpanel-browser":"^2.35.6","@types/react-test-renderer":"^17.0.1","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.0",asciidoctor:"^2.2.1","babel-jest":"^26.6.3","babel-preset-gatsby":"^1.10.0","command-line-args":"^5.1.1",coveralls:"^3.1.0","dts-bundle":"0.7.3",eslint:"^7.12.1","eslint-config-airbnb-base":"^14.2.0","eslint-config-prettier":"^6.15.0","eslint-import-resolver-typescript":"^2.3.0","eslint-plugin-import":"^2.22.1","eslint-plugin-prettier":"^3.1.4","eslint-plugin-react-hooks":"^4.2.0","fs-extra":"^10.0.0",gatsby:"3.1.0","gatsby-plugin-algolia":"^0.22.2","gatsby-plugin-catch-links":"^3.1.0","gatsby-plugin-env-variables":"^2.1.0","gatsby-plugin-intl":"^0.3.3","gatsby-plugin-manifest":"^3.2.0","gatsby-plugin-output":"^0.1.3","gatsby-plugin-sass":"4.1.0","gatsby-plugin-sitemap":"^4.10.0","gatsby-source-filesystem":"3.1.0","gatsby-transformer-asciidoc":"2.1.0","gatsby-transformer-rehype":"2.0.0","gh-pages":"^3.1.0","highlight.js":"^10.6.0","html-to-text":"^8.0.0","identity-obj-proxy":"^3.0.0","istanbul-merge":"^1.1.1",jest:"^26.6.3","jest-puppeteer":"^4.4.0",jsdom:"^17.0.0","node-sass":"^4.0.0",prettier:"2.1.2",puppeteer:"^7.0.1",react:"^16.14.0","react-dom":"^16.14.0","react-resizable":"^1.11.0","react-resize-detector":"^6.6.0","react-test-renderer":"^17.0.2","react-use-flexsearch":"^0.1.1",rollup:"2.30.0","rollup-plugin-typescript2":"0.27.3","ts-jest":"^26.5.5","ts-loader":"8.0.4",typedoc:"0.21.6","typedoc-neo-theme":"^1.1.0","typedoc-plugin-toc-group":"0.0.5",typescript:"^4.1.0","url-search-params-polyfill":"^8.1.0",util:"^0.12.4"};var author="ThoughtSpot";var email="support@thoughtspot.com";var license="ThoughtSpot Development Tools End User License Agreement";var directories={lib:"lib"};var repository={type:"git",url:"git+https://github.com/thoughtspot/visual-embed-sdk.git"};var publishConfig={registry:"https://registry.npmjs.org"};var keywords=["thoughtspot","everywhere","embed","sdk","analytics"];var bugs={url:"https://github.com/thoughtspot/visual-embed-sdk/issues"};var homepage="https://github.com/thoughtspot/visual-embed-sdk#readme";var globals={window:{}};var pkgInfo = {name:name,version:version,description:description,module:module,main:main,types:types,files:files,exports:exports$1,scripts:scripts,peerDependencies:peerDependencies,dependencies:dependencies,devDependencies:devDependencies,author:author,email:email,license:license,directories:directories,repository:repository,publishConfig:publishConfig,keywords:keywords,bugs:bugs,homepage:homepage,globals:globals};
7957
+ var name="@thoughtspot/visual-embed-sdk";var version="1.13.0";var description="ThoughtSpot Embed SDK";var module="lib/src/index.js";var main="dist/tsembed.js";var types="lib/src/index.d.ts";var files=["dist/**","lib/**","src/**"];var exports$1={".":"./lib/src/index.js","./react":"./lib/src/react/index.js"};var scripts={lint:"eslint 'src/**'","lint:fix":"eslint 'src/**/*.*' --fix",tsc:"tsc -p . --incremental false",start:"gatsby develop","build:gatsby":"npm run clean:gatsby && gatsby build --prefix-paths","build:gatsby:noprefix":"npm run clean:gatsby && gatsby build","serve:gatsby":"gatsby serve","clean:gatsby":"gatsby clean","build-and-publish":"npm run build:gatsby && npm run publish","bundle-dts":"dts-bundle --name @thoughtspot/visual-embed-sdk --out visual-embed-sdk.d.ts --main lib/src/index.d.ts",build:"rollup -c",watch:"rollup -cw","docs-cmd":"node scripts/gatsby-commands.js",docgen:"typedoc --tsconfig tsconfig.json --theme typedoc-theme","test-sdk":"jest -c jest.config.sdk.js","test-docs":"jest -c jest.config.docs.js",test:"npm run test-sdk && npm run test-docs && npx istanbul-merge --out ./coverage/coverage.json ./coverage/docs/coverage-final.json ./coverage/sdk/coverage-final.json && npx istanbul report --include ./coverage/coverage.json --dir ./coverage lcov",posttest:"cat ./coverage/sdk/lcov.info | coveralls",prepublishOnly:"npm run test; npm run tsc; npm run bundle-dts; npm run build","publish-dev":"npm publish --tag dev","publish-prod":"npm publish --tag latest"};var peerDependencies={react:"> 16.8.0","react-dom":"> 16.8.0"};var dependencies={algoliasearch:"^4.10.5",classnames:"^2.3.1",eventemitter3:"^4.0.7","html-react-parser":"^1.4.12","mixpanel-browser":"^2.45.0","use-deep-compare-effect":"^1.8.1"};var devDependencies={"@mdx-js/mdx":"^1.6.22","@mdx-js/react":"^1.6.22","@react-icons/all-files":"^4.1.0","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-node-resolve":"^11.2.1","@testing-library/dom":"^7.31.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^11.2.7","@testing-library/user-event":"^13.1.8","@types/jest":"^22.2.3","@types/mixpanel-browser":"^2.35.6","@types/react-test-renderer":"^17.0.1","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.0",asciidoctor:"^2.2.1","babel-jest":"^26.6.3","babel-preset-gatsby":"^1.10.0","command-line-args":"^5.1.1",coveralls:"^3.1.0","dts-bundle":"0.7.3",eslint:"^7.12.1","eslint-config-airbnb-base":"^14.2.0","eslint-config-prettier":"^6.15.0","eslint-import-resolver-typescript":"^2.3.0","eslint-plugin-import":"^2.22.1","eslint-plugin-prettier":"^3.1.4","eslint-plugin-react-hooks":"^4.2.0","fs-extra":"^10.0.0",gatsby:"3.1.0","gatsby-plugin-algolia":"^0.22.2","gatsby-plugin-catch-links":"^3.1.0","gatsby-plugin-env-variables":"^2.1.0","gatsby-plugin-intl":"^0.3.3","gatsby-plugin-manifest":"^3.2.0","gatsby-plugin-output":"^0.1.3","gatsby-plugin-sass":"4.1.0","gatsby-plugin-sitemap":"^4.10.0","gatsby-source-filesystem":"3.1.0","gatsby-transformer-asciidoc":"2.1.0","gatsby-transformer-rehype":"2.0.0","gh-pages":"^3.1.0","highlight.js":"^10.6.0","html-to-text":"^8.0.0","identity-obj-proxy":"^3.0.0","istanbul-merge":"^1.1.1",jest:"^26.6.3","jest-puppeteer":"^4.4.0",jsdom:"^17.0.0","node-sass":"^4.0.0",prettier:"2.1.2",puppeteer:"^7.0.1",react:"^16.14.0","react-dom":"^16.14.0","react-resizable":"^1.11.0","react-resize-detector":"^6.6.0","react-test-renderer":"^17.0.2","react-use-flexsearch":"^0.1.1",rollup:"2.30.0","rollup-plugin-typescript2":"0.27.3","ts-jest":"^26.5.5","ts-loader":"8.0.4",typedoc:"0.21.6","typedoc-neo-theme":"^1.1.0","typedoc-plugin-toc-group":"0.0.5",typescript:"^4.1.0","url-search-params-polyfill":"^8.1.0",util:"^0.12.4"};var author="ThoughtSpot";var email="support@thoughtspot.com";var license="ThoughtSpot Development Tools End User License Agreement";var directories={lib:"lib"};var repository={type:"git",url:"git+https://github.com/thoughtspot/visual-embed-sdk.git"};var publishConfig={registry:"https://registry.npmjs.org"};var keywords=["thoughtspot","everywhere","embed","sdk","analytics"];var bugs={url:"https://github.com/thoughtspot/visual-embed-sdk/issues"};var homepage="https://github.com/thoughtspot/visual-embed-sdk#readme";var globals={window:{}};var pkgInfo = {name:name,version:version,description:description,module:module,main:main,types:types,files:files,exports:exports$1,scripts:scripts,peerDependencies:peerDependencies,dependencies:dependencies,devDependencies:devDependencies,author:author,email:email,license:license,directories:directories,repository:repository,publishConfig:publishConfig,keywords:keywords,bugs:bugs,homepage:homepage,globals:globals};
7732
7958
 
7733
7959
  /**
7734
7960
  * Copyright (c) 2022
@@ -7766,6 +7992,22 @@
7766
7992
  * @default false
7767
7993
  */
7768
7994
  this.shouldEncodeUrlQueryParams = false;
7995
+ this.defaultHiddenActions = [exports.Action.ReportError];
7996
+ /**
7997
+ * Send Custom style as part of payload of APP_INIT
7998
+ */
7999
+ this.appInitCb = (_, responder) => {
8000
+ responder({
8001
+ type: exports.EmbedEvent.APP_INIT,
8002
+ data: { customisations: getCustomisations(this.embedConfig) },
8003
+ });
8004
+ };
8005
+ /**
8006
+ * Register APP_INIT event and sendback init payload
8007
+ */
8008
+ this.registerAppInit = () => {
8009
+ this.on(exports.EmbedEvent.APP_INIT, this.appInitCb);
8010
+ };
7769
8011
  this.el = this.getDOMNode(domSelector);
7770
8012
  // TODO: handle error
7771
8013
  this.embedConfig = getEmbedConfig();
@@ -7775,6 +8017,7 @@
7775
8017
  this.isError = false;
7776
8018
  this.viewConfig = viewConfig;
7777
8019
  this.shouldEncodeUrlQueryParams = this.embedConfig.shouldEncodeUrlQueryParams;
8020
+ this.registerAppInit();
7778
8021
  }
7779
8022
  /**
7780
8023
  * Gets a reference to the root DOM node where
@@ -7802,7 +8045,7 @@
7802
8045
  error,
7803
8046
  });
7804
8047
  // Log error
7805
- console.log(error);
8048
+ console.error(error);
7806
8049
  }
7807
8050
  /**
7808
8051
  * Extracts the type field from the event payload
@@ -7894,6 +8137,7 @@
7894
8137
  this.embedConfig.autoLogin === true) {
7895
8138
  queryParams[Param.DisableLoginRedirect] = true;
7896
8139
  }
8140
+ // TODO remove this
7897
8141
  if (this.embedConfig.customCssUrl) {
7898
8142
  queryParams[Param.CustomCSSUrl] = this.embedConfig.customCssUrl;
7899
8143
  }
@@ -7908,9 +8152,10 @@
7908
8152
  if (disabledActionReason) {
7909
8153
  queryParams[Param.DisableActionReason] = disabledActionReason;
7910
8154
  }
7911
- if (hiddenActions === null || hiddenActions === void 0 ? void 0 : hiddenActions.length) {
7912
- queryParams[Param.HideActions] = hiddenActions;
7913
- }
8155
+ queryParams[Param.HideActions] = [
8156
+ ...this.defaultHiddenActions,
8157
+ ...(hiddenActions !== null && hiddenActions !== void 0 ? hiddenActions : []),
8158
+ ];
7914
8159
  if (Array.isArray(visibleActions)) {
7915
8160
  queryParams[Param.VisibleActions] = visibleActions;
7916
8161
  }
@@ -7932,11 +8177,12 @@
7932
8177
  * @param isAppEmbed A Boolean parameter to specify if you are embedding
7933
8178
  * the full application.
7934
8179
  */
7935
- getV1EmbedBasePath(queryString, showPrimaryNavbar = false, disableProfileAndHelp = false, isAppEmbed = false) {
8180
+ getV1EmbedBasePath(queryString, showPrimaryNavbar = false, disableProfileAndHelp = false, isAppEmbed = false, enableSearchAssist = false) {
7936
8181
  const queryStringFrag = queryString ? `&${queryString}` : '';
7937
8182
  const primaryNavParam = `&primaryNavHidden=${!showPrimaryNavbar}`;
7938
8183
  const disableProfileAndHelpParam = `&profileAndHelpInNavBarHidden=${disableProfileAndHelp}`;
7939
- let queryParams = `?embedApp=true${isAppEmbed ? primaryNavParam : ''}${isAppEmbed ? disableProfileAndHelpParam : ''}${queryStringFrag}`;
8184
+ const enableSearchAssistParam = `&${Param.EnableSearchAssist}=${enableSearchAssist}`;
8185
+ let queryParams = `?embedApp=true${isAppEmbed ? primaryNavParam : ''}${isAppEmbed ? disableProfileAndHelpParam : ''}${enableSearchAssist ? enableSearchAssistParam : ''}${queryStringFrag}`;
7940
8186
  if (this.shouldEncodeUrlQueryParams) {
7941
8187
  queryParams = `?base64UrlEncodedFlags=${getEncodedQueryParamsString(queryParams.substr(1))}`;
7942
8188
  }
@@ -8155,9 +8401,8 @@
8155
8401
  * @param data The payload to send with the message
8156
8402
  */
8157
8403
  trigger(messageType, data) {
8158
- processTrigger(this.iFrame, messageType, this.thoughtSpotHost, data);
8159
8404
  uploadMixpanelEvent(`${MIXPANEL_EVENT.VISUAL_SDK_TRIGGER}-${messageType}`);
8160
- return this;
8405
+ return processTrigger(this.iFrame, messageType, this.thoughtSpotHost, data);
8161
8406
  }
8162
8407
  /**
8163
8408
  * Marks the ThoughtSpot object to have been rendered
@@ -8294,7 +8539,7 @@
8294
8539
  const queryString = [filterQuery, queryParams]
8295
8540
  .filter(Boolean)
8296
8541
  .join('&');
8297
- let url = `${this.getV1EmbedBasePath(queryString, this.viewConfig.showPrimaryNavbar, this.viewConfig.disableProfileAndHelp, true)}/${pageId}`;
8542
+ let url = `${this.getV1EmbedBasePath(queryString, this.viewConfig.showPrimaryNavbar, this.viewConfig.disableProfileAndHelp, true, this.viewConfig.enableSearchAssist)}/${pageId}`;
8298
8543
  const tsPostHashParams = this.getThoughtSpotPostUrlParams();
8299
8544
  url = `${url}${tsPostHashParams}`;
8300
8545
  return url;
@@ -8422,7 +8667,7 @@
8422
8667
  */
8423
8668
  getEmbedParams() {
8424
8669
  const params = this.getBaseQueryParams();
8425
- const { enableVizTransformations, fullHeight, defaultHeight, visibleVizs, liveboardV2 = false, } = this.viewConfig;
8670
+ const { enableVizTransformations, fullHeight, defaultHeight, visibleVizs, liveboardV2 = false, vizId, activeTabId, } = this.viewConfig;
8426
8671
  const preventLiveboardFilterRemoval = this.viewConfig.preventLiveboardFilterRemoval ||
8427
8672
  this.viewConfig.preventPinboardFilterRemoval;
8428
8673
  if (fullHeight === true) {
@@ -8441,6 +8686,9 @@
8441
8686
  params[Param.visibleVizs] = visibleVizs;
8442
8687
  }
8443
8688
  params[Param.livedBoardEmbed] = true;
8689
+ if (vizId) {
8690
+ params[Param.vizEmbed] = true;
8691
+ }
8444
8692
  params[Param.LiveboardV2Enabled] = liveboardV2;
8445
8693
  const queryParams = getQueryParamString(params, true);
8446
8694
  return queryParams;
@@ -8453,13 +8701,16 @@
8453
8701
  * @param runtimeFilters A list of runtime filters to be applied to
8454
8702
  * the Liveboard or visualization on load.
8455
8703
  */
8456
- getIFrameSrc(liveboardId, vizId, runtimeFilters) {
8704
+ getIFrameSrc(liveboardId, vizId, runtimeFilters, activeTabId) {
8457
8705
  const filterQuery = getFilterQuery(runtimeFilters || []);
8458
8706
  const queryParams = this.getEmbedParams();
8459
8707
  const queryString = [filterQuery, queryParams]
8460
8708
  .filter(Boolean)
8461
8709
  .join('&');
8462
8710
  let url = `${this.getV1EmbedBasePath(queryString, true, false, false)}/viz/${liveboardId}`;
8711
+ if (activeTabId) {
8712
+ url = `${url}/tab/${activeTabId}`;
8713
+ }
8463
8714
  if (vizId) {
8464
8715
  url = `${url}/${vizId}`;
8465
8716
  }
@@ -8467,6 +8718,18 @@
8467
8718
  url = `${url}${tsPostHashParams}`;
8468
8719
  return url;
8469
8720
  }
8721
+ /**
8722
+ * Triggers an event to the embedded app
8723
+ * @param messageType The event type
8724
+ * @param data The payload to send with the message
8725
+ */
8726
+ trigger(messageType, data = {}) {
8727
+ const dataWithVizId = data;
8728
+ if (this.viewConfig.vizId) {
8729
+ dataWithVizId.vizId = this.viewConfig.vizId;
8730
+ }
8731
+ return super.trigger(messageType, dataWithVizId);
8732
+ }
8470
8733
  /**
8471
8734
  * Render an embedded ThoughtSpot Liveboard or visualization
8472
8735
  * @param renderOptions An object specifying the Liveboard ID,
@@ -8474,7 +8737,7 @@
8474
8737
  */
8475
8738
  render() {
8476
8739
  var _a;
8477
- const { vizId, runtimeFilters } = this.viewConfig;
8740
+ const { vizId, activeTabId, runtimeFilters } = this.viewConfig;
8478
8741
  const liveboardId = (_a = this.viewConfig.liveboardId) !== null && _a !== void 0 ? _a : this.viewConfig.pinboardId;
8479
8742
  if (!liveboardId) {
8480
8743
  this.handleError(ERROR_MESSAGE.LIVEBOARD_VIZ_ID_VALIDATION);
@@ -8485,7 +8748,7 @@
8485
8748
  this.on(exports.EmbedEvent.EmbedIframeCenter, this.embedIframeCenter);
8486
8749
  }
8487
8750
  super.render();
8488
- const src = this.getIFrameSrc(liveboardId, vizId, runtimeFilters);
8751
+ const src = this.getIFrameSrc(liveboardId, vizId, runtimeFilters, activeTabId);
8489
8752
  this.renderV1Embed(src);
8490
8753
  return this;
8491
8754
  }
@@ -8543,7 +8806,7 @@
8543
8806
  */
8544
8807
  getIFrameSrc(answerId, dataSources) {
8545
8808
  var _a;
8546
- const { hideResults, enableSearchAssist, forceTable, searchOptions, } = this.viewConfig;
8809
+ const { hideResults, expandAllDataSource, enableSearchAssist, forceTable, searchOptions, } = this.viewConfig;
8547
8810
  const answerPath = answerId ? `saved-answer/${answerId}` : 'answer';
8548
8811
  const queryParams = this.getBaseQueryParams();
8549
8812
  queryParams[Param.HideActions] = [
@@ -8587,6 +8850,11 @@
8587
8850
  const { answerId, dataSources } = this.viewConfig;
8588
8851
  const src = this.getIFrameSrc(answerId, dataSources);
8589
8852
  this.renderIFrame(src, this.viewConfig.frameParams);
8853
+ getAuthPromise().then(() => {
8854
+ if (checkReleaseVersionInBeta(getReleaseVersion(), getEmbedConfig().suppressSearchEmbedBetaWarning)) {
8855
+ alert(ERROR_MESSAGE.SEARCHEMBED_BETA_WRANING_MESSAGE);
8856
+ }
8857
+ });
8590
8858
  return this;
8591
8859
  }
8592
8860
  }
package/lib/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thoughtspot/visual-embed-sdk",
3
- "version": "1.13.0-alpha.2",
3
+ "version": "1.13.0",
4
4
  "description": "ThoughtSpot Embed SDK",
5
5
  "module": "lib/src/index.js",
6
6
  "main": "dist/tsembed.js",
@@ -45,7 +45,9 @@
45
45
  "algoliasearch": "^4.10.5",
46
46
  "classnames": "^2.3.1",
47
47
  "eventemitter3": "^4.0.7",
48
- "mixpanel-browser": "^2.45.0"
48
+ "html-react-parser": "^1.4.12",
49
+ "mixpanel-browser": "^2.45.0",
50
+ "use-deep-compare-effect": "^1.8.1"
49
51
  },
50
52
  "devDependencies": {
51
53
  "@mdx-js/mdx": "^1.6.22",
package/lib/src/auth.d.ts CHANGED
@@ -2,7 +2,6 @@ import { EmbedConfig } from './types';
2
2
  export declare let loggedInStatus: boolean;
3
3
  export declare let samlAuthWindow: Window;
4
4
  export declare let samlCompletionPromise: Promise<void>;
5
- export declare let sessionInfo: any;
6
5
  export declare const SSO_REDIRECTION_MARKER_GUID = "5e16222e-ef02-43e9-9fbd-24226bf3ce5b";
7
6
  export declare const EndPoints: {
8
7
  AUTH_VERIFICATION: string;
@@ -36,6 +35,10 @@ export declare enum AuthStatus {
36
35
  */
37
36
  LOGOUT = "LOGOUT"
38
37
  }
38
+ /**
39
+ * Return releaseVersion if available
40
+ */
41
+ export declare function getReleaseVersion(): string;
39
42
  /**
40
43
  * Return sessionInfo if available else make a loggedIn check to fetch the sessionInfo
41
44
  */
package/lib/src/auth.js CHANGED
@@ -9,8 +9,8 @@ export let loggedInStatus = false;
9
9
  export let samlAuthWindow = null;
10
10
  // eslint-disable-next-line import/no-mutable-exports
11
11
  export let samlCompletionPromise = null;
12
- // eslint-disable-next-line import/no-mutable-exports
13
- export let sessionInfo = null;
12
+ let sessionInfo = null;
13
+ let releaseVersion = '';
14
14
  export const SSO_REDIRECTION_MARKER_GUID = '5e16222e-ef02-43e9-9fbd-24226bf3ce5b';
15
15
  export const EndPoints = {
16
16
  AUTH_VERIFICATION: '/callosum/v1/session/info',
@@ -55,12 +55,20 @@ async function isLoggedIn(thoughtSpotHost) {
55
55
  let response = null;
56
56
  try {
57
57
  response = await fetchSessionInfoService(authVerificationUrl);
58
+ const sessionInfoResp = await response.json();
59
+ releaseVersion = sessionInfoResp.releaseVersion;
58
60
  }
59
61
  catch (e) {
60
62
  return false;
61
63
  }
62
64
  return response.status === 200;
63
65
  }
66
+ /**
67
+ * Return releaseVersion if available
68
+ */
69
+ export function getReleaseVersion() {
70
+ return releaseVersion;
71
+ }
64
72
  /**
65
73
  * Return sessionInfo if available else make a loggedIn check to fetch the sessionInfo
66
74
  */
@@ -243,6 +251,7 @@ export const authenticate = async (embedConfig) => {
243
251
  const { authType } = embedConfig;
244
252
  switch (authType) {
245
253
  case AuthType.SSO:
254
+ case AuthType.SAML:
246
255
  return doSamlAuth(embedConfig);
247
256
  case AuthType.OIDC:
248
257
  return doOIDCAuth(embedConfig);
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"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"}