@thoughtspot/visual-embed-sdk 1.52.2-beta.0 → 1.52.2-beta.2

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 (36) hide show
  1. package/cjs/package.json +1 -1
  2. package/cjs/src/embed/liveboard.d.ts +13 -15
  3. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  4. package/cjs/src/embed/liveboard.js +31 -3
  5. package/cjs/src/embed/liveboard.js.map +1 -1
  6. package/cjs/src/embed/liveboard.spec.js +79 -0
  7. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  8. package/cjs/src/embed/ts-embed.spec.d.ts.map +1 -1
  9. package/cjs/src/embed/ts-embed.spec.js +10 -15
  10. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  11. package/dist/{index-BrJMbt8r.js → index-CnHREfvN.js} +1 -1
  12. package/dist/src/embed/liveboard.d.ts +13 -15
  13. package/dist/src/embed/liveboard.d.ts.map +1 -1
  14. package/dist/src/embed/ts-embed.spec.d.ts.map +1 -1
  15. package/dist/tsembed-react.es.js +72 -6
  16. package/dist/tsembed-react.js +71 -5
  17. package/dist/tsembed.es.js +72 -6
  18. package/dist/tsembed.js +71 -5
  19. package/dist/visual-embed-sdk-react-full.d.ts +13 -0
  20. package/dist/visual-embed-sdk-react.d.ts +13 -0
  21. package/dist/visual-embed-sdk.d.ts +13 -15
  22. package/lib/package.json +1 -1
  23. package/lib/src/embed/liveboard.d.ts +13 -15
  24. package/lib/src/embed/liveboard.d.ts.map +1 -1
  25. package/lib/src/embed/liveboard.js +30 -3
  26. package/lib/src/embed/liveboard.js.map +1 -1
  27. package/lib/src/embed/liveboard.spec.js +79 -0
  28. package/lib/src/embed/liveboard.spec.js.map +1 -1
  29. package/lib/src/embed/ts-embed.spec.d.ts.map +1 -1
  30. package/lib/src/embed/ts-embed.spec.js +10 -15
  31. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  32. package/lib/src/visual-embed-sdk.d.ts +13 -15
  33. package/package.json +1 -1
  34. package/src/embed/liveboard.spec.ts +92 -0
  35. package/src/embed/liveboard.ts +36 -3
  36. package/src/embed/ts-embed.spec.ts +11 -18
@@ -1,4 +1,4 @@
1
- /* @thoughtspot/visual-embed-sdk version 1.52.2-beta.0 */
1
+ /* @thoughtspot/visual-embed-sdk version 1.52.2-beta.2 */
2
2
  'use client';
3
3
  const ALIAS = Symbol.for('yaml.alias');
4
4
  const DOC = Symbol.for('yaml.document');
@@ -507,21 +507,6 @@ export interface LiveboardViewConfig extends BaseViewConfig, FullHeightViewConfi
507
507
  */
508
508
  updatedSpotterExperience?: boolean;
509
509
  }
510
- /**
511
- * Embed a ThoughtSpot Liveboard or visualization. When rendered it already
512
- * waits for the authentication to complete, so you need not wait for
513
- * `AuthStatus.SUCCESS`.
514
- * @group Embed components
515
- * @example
516
- * ```js
517
- * import { .. } from '@thoughtspot/visual-embed-sdk';
518
- * init({ ... });
519
- * const embed = new LiveboardEmbed("#container", {
520
- * liveboardId: <your-id-here>,
521
- * // .. other params here.
522
- * })
523
- * ```
524
- */
525
510
  export declare class LiveboardEmbed extends V1Embed {
526
511
  protected viewConfig: LiveboardViewConfig;
527
512
  private readonly fullHeightController?;
@@ -553,6 +538,19 @@ export declare class LiveboardEmbed extends V1Embed {
553
538
  personalizedViewId: string;
554
539
  };
555
540
  protected beforePrerenderVisible(): void;
541
+ /**
542
+ * Whether `previous` was showing what this instance is about to show.
543
+ *
544
+ * Undefined-valued keys are dropped before comparing. `navigateToLiveboard`
545
+ * assigns `vizId`, `activeTabId` and `personalizedViewId` unconditionally,
546
+ * so an instance that has been shown once carries those keys as `undefined`
547
+ * while a freshly constructed one does not have them at all. `isEqual`
548
+ * counts own keys, so without this the comparison can never be true after
549
+ * the first show — which is the whole case this exists for.
550
+ *
551
+ * Callbacks compare as equal: React passes a fresh closure per render.
552
+ */
553
+ private isSameEmbedConfig;
556
554
  private isShowingLiveboardRoute;
557
555
  protected handleRenderForPrerender(): Promise<TsEmbed>;
558
556
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"liveboard.d.ts","sourceRoot":"","sources":["liveboard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"liveboard.d.ts","sourceRoot":"","sources":["liveboard.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ts-embed.spec.d.ts","sourceRoot":"","sources":["ts-embed.spec.ts"],"names":[],"mappings":"AA0FA,eAAO,MAAM,iCAAiC,QAAgJ,CAAC;AAC/L,eAAO,MAAM,aAAa,QAAmF,CAAC"}
1
+ {"version":3,"file":"ts-embed.spec.d.ts","sourceRoot":"","sources":["ts-embed.spec.ts"],"names":[],"mappings":"AAsFA,eAAO,MAAM,iCAAiC,QAAgJ,CAAC;AAC/L,eAAO,MAAM,aAAa,QAAmF,CAAC"}
@@ -1,4 +1,4 @@
1
- /* @thoughtspot/visual-embed-sdk version 1.52.2-beta.0 */
1
+ /* @thoughtspot/visual-embed-sdk version 1.52.2-beta.2 */
2
2
  'use client';
3
3
  import * as React from 'react';
4
4
  import React__default, { useRef, useCallback } from 'react';
@@ -7828,7 +7828,7 @@ var TableContentDensity;
7828
7828
  TableContentDensity["Compact"] = "COMPACT";
7829
7829
  })(TableContentDensity || (TableContentDensity = {}));
7830
7830
 
7831
- var version$1="1.52.2-beta.0";var pkg = {version:version$1};
7831
+ var version$1="1.52.2-beta.2";var pkg = {version:version$1};
7832
7832
 
7833
7833
  const { version } = pkg;
7834
7834
 
@@ -10565,7 +10565,7 @@ class AnswerService {
10565
10565
  async getTML() {
10566
10566
  const { object } = await this.executeQuery(getAnswerTML, {});
10567
10567
  const edoc = object[0].edoc;
10568
- const YAML = await import('./index-BrJMbt8r.js');
10568
+ const YAML = await import('./index-CnHREfvN.js');
10569
10569
  const parsedDoc = YAML.parse(edoc);
10570
10570
  return {
10571
10571
  answer: {
@@ -24977,6 +24977,46 @@ let AppEmbed$1 = class AppEmbed extends V1Embed {
24977
24977
  }
24978
24978
  };
24979
24979
 
24980
+ /**
24981
+ * This method is like `_.isEqual` except that it accepts `customizer` which
24982
+ * is invoked to compare values. If `customizer` returns `undefined`, comparisons
24983
+ * are handled by the method instead. The `customizer` is invoked with up to
24984
+ * six arguments: (objValue, othValue [, index|key, object, other, stack]).
24985
+ *
24986
+ * @static
24987
+ * @memberOf _
24988
+ * @since 4.0.0
24989
+ * @category Lang
24990
+ * @param {*} value The value to compare.
24991
+ * @param {*} other The other value to compare.
24992
+ * @param {Function} [customizer] The function to customize comparisons.
24993
+ * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
24994
+ * @example
24995
+ *
24996
+ * function isGreeting(value) {
24997
+ * return /^h(?:i|ello)$/.test(value);
24998
+ * }
24999
+ *
25000
+ * function customizer(objValue, othValue) {
25001
+ * if (isGreeting(objValue) && isGreeting(othValue)) {
25002
+ * return true;
25003
+ * }
25004
+ * }
25005
+ *
25006
+ * var array = ['hello', 'goodbye'];
25007
+ * var other = ['hi', 'goodbye'];
25008
+ *
25009
+ * _.isEqualWith(array, other, customizer);
25010
+ * // => true
25011
+ */
25012
+ function isEqualWith(value, other, customizer) {
25013
+ customizer = typeof customizer == 'function' ? customizer : undefined;
25014
+ var result = customizer ? customizer(value, other) : undefined;
25015
+ return result === undefined ? _baseIsEqual(value, other, undefined, customizer) : !!result;
25016
+ }
25017
+
25018
+ var isEqualWith_1 = isEqualWith;
25019
+
24980
25020
  const getPreviewQuery = `
24981
25021
  query GetEurekaVizSnapshots(
24982
25022
  $vizId: String!, $liveboardId: String!) {
@@ -25076,6 +25116,11 @@ const HOME_SETTLE_MS = 200;
25076
25116
  * })
25077
25117
  * ```
25078
25118
  */
25119
+ /**
25120
+ * A shallow copy without the keys whose value is `undefined`, so a key that was
25121
+ * assigned `undefined` compares equal to one that was never set.
25122
+ */
25123
+ const definedEntries = (config = {}) => Object.fromEntries(Object.entries(config).filter(([, value]) => value !== undefined));
25079
25124
  let LiveboardEmbed$1 = class LiveboardEmbed extends V1Embed {
25080
25125
  constructor(domSelector, viewConfig) {
25081
25126
  viewConfig.embedComponentType = 'LiveboardEmbed';
@@ -25357,10 +25402,12 @@ let LiveboardEmbed$1 = class LiveboardEmbed extends V1Embed {
25357
25402
  beforePrerenderVisible() {
25358
25403
  super.beforePrerenderVisible();
25359
25404
  // Captured before showPreRender() hands the wrapper over to this
25360
- // instance. Itself means a hide/show, not a hand-over, so there is
25361
- // nothing stale to clear.
25405
+ // instance. React builds a new instance per mount, so an equal config
25406
+ // is a hide/show, not a hand-over: there is nothing stale to clear.
25362
25407
  const previous = this.getPreRenderObj();
25363
- const showing = previous === this ? undefined : previous === null || previous === void 0 ? void 0 : previous.currentLiveboardState;
25408
+ const showing = this.isSameEmbedConfig(previous)
25409
+ ? undefined
25410
+ : previous === null || previous === void 0 ? void 0 : previous.currentLiveboardState;
25364
25411
  this.executeAfterEmbedContainerLoaded(async () => {
25365
25412
  // Without this the params callback suspends on its await and
25366
25413
  // Navigate goes out first, so the container loads with the previous
@@ -25387,6 +25434,25 @@ let LiveboardEmbed$1 = class LiveboardEmbed extends V1Embed {
25387
25434
  };
25388
25435
  });
25389
25436
  }
25437
+ /**
25438
+ * Whether `previous` was showing what this instance is about to show.
25439
+ *
25440
+ * Undefined-valued keys are dropped before comparing. `navigateToLiveboard`
25441
+ * assigns `vizId`, `activeTabId` and `personalizedViewId` unconditionally,
25442
+ * so an instance that has been shown once carries those keys as `undefined`
25443
+ * while a freshly constructed one does not have them at all. `isEqual`
25444
+ * counts own keys, so without this the comparison can never be true after
25445
+ * the first show — which is the whole case this exists for.
25446
+ *
25447
+ * Callbacks compare as equal: React passes a fresh closure per render.
25448
+ */
25449
+ isSameEmbedConfig(previous) {
25450
+ if (!previous)
25451
+ return false;
25452
+ if (previous === this)
25453
+ return true;
25454
+ return isEqualWith_1(definedEntries(previous.viewConfig), definedEntries(this.viewConfig), (a, b) => (typeof a === 'function' && typeof b === 'function' ? true : undefined));
25455
+ }
25390
25456
  // The whole route, not just the liveboard id: the path is built from the
25391
25457
  // viz, tab and view too, so a same-liveboard show onto another tab is a
25392
25458
  // real navigation.
@@ -1,4 +1,4 @@
1
- /* @thoughtspot/visual-embed-sdk version 1.52.2-beta.0 */
1
+ /* @thoughtspot/visual-embed-sdk version 1.52.2-beta.2 */
2
2
  'use client';
3
3
  (function (global, factory) {
4
4
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) :
@@ -7850,7 +7850,7 @@
7850
7850
  TableContentDensity["Compact"] = "COMPACT";
7851
7851
  })(TableContentDensity || (TableContentDensity = {}));
7852
7852
 
7853
- var version$1="1.52.2-beta.0";var pkg = {version:version$1};
7853
+ var version$1="1.52.2-beta.2";var pkg = {version:version$1};
7854
7854
 
7855
7855
  const { version } = pkg;
7856
7856
 
@@ -24999,6 +24999,46 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
24999
24999
  }
25000
25000
  };
25001
25001
 
25002
+ /**
25003
+ * This method is like `_.isEqual` except that it accepts `customizer` which
25004
+ * is invoked to compare values. If `customizer` returns `undefined`, comparisons
25005
+ * are handled by the method instead. The `customizer` is invoked with up to
25006
+ * six arguments: (objValue, othValue [, index|key, object, other, stack]).
25007
+ *
25008
+ * @static
25009
+ * @memberOf _
25010
+ * @since 4.0.0
25011
+ * @category Lang
25012
+ * @param {*} value The value to compare.
25013
+ * @param {*} other The other value to compare.
25014
+ * @param {Function} [customizer] The function to customize comparisons.
25015
+ * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
25016
+ * @example
25017
+ *
25018
+ * function isGreeting(value) {
25019
+ * return /^h(?:i|ello)$/.test(value);
25020
+ * }
25021
+ *
25022
+ * function customizer(objValue, othValue) {
25023
+ * if (isGreeting(objValue) && isGreeting(othValue)) {
25024
+ * return true;
25025
+ * }
25026
+ * }
25027
+ *
25028
+ * var array = ['hello', 'goodbye'];
25029
+ * var other = ['hi', 'goodbye'];
25030
+ *
25031
+ * _.isEqualWith(array, other, customizer);
25032
+ * // => true
25033
+ */
25034
+ function isEqualWith(value, other, customizer) {
25035
+ customizer = typeof customizer == 'function' ? customizer : undefined;
25036
+ var result = customizer ? customizer(value, other) : undefined;
25037
+ return result === undefined ? _baseIsEqual(value, other, undefined, customizer) : !!result;
25038
+ }
25039
+
25040
+ var isEqualWith_1 = isEqualWith;
25041
+
25002
25042
  const getPreviewQuery = `
25003
25043
  query GetEurekaVizSnapshots(
25004
25044
  $vizId: String!, $liveboardId: String!) {
@@ -25098,6 +25138,11 @@ query GetEurekaVizSnapshots(
25098
25138
  * })
25099
25139
  * ```
25100
25140
  */
25141
+ /**
25142
+ * A shallow copy without the keys whose value is `undefined`, so a key that was
25143
+ * assigned `undefined` compares equal to one that was never set.
25144
+ */
25145
+ const definedEntries = (config = {}) => Object.fromEntries(Object.entries(config).filter(([, value]) => value !== undefined));
25101
25146
  let LiveboardEmbed$1 = class LiveboardEmbed extends V1Embed {
25102
25147
  constructor(domSelector, viewConfig) {
25103
25148
  viewConfig.embedComponentType = 'LiveboardEmbed';
@@ -25379,10 +25424,12 @@ query GetEurekaVizSnapshots(
25379
25424
  beforePrerenderVisible() {
25380
25425
  super.beforePrerenderVisible();
25381
25426
  // Captured before showPreRender() hands the wrapper over to this
25382
- // instance. Itself means a hide/show, not a hand-over, so there is
25383
- // nothing stale to clear.
25427
+ // instance. React builds a new instance per mount, so an equal config
25428
+ // is a hide/show, not a hand-over: there is nothing stale to clear.
25384
25429
  const previous = this.getPreRenderObj();
25385
- const showing = previous === this ? undefined : previous === null || previous === void 0 ? void 0 : previous.currentLiveboardState;
25430
+ const showing = this.isSameEmbedConfig(previous)
25431
+ ? undefined
25432
+ : previous === null || previous === void 0 ? void 0 : previous.currentLiveboardState;
25386
25433
  this.executeAfterEmbedContainerLoaded(async () => {
25387
25434
  // Without this the params callback suspends on its await and
25388
25435
  // Navigate goes out first, so the container loads with the previous
@@ -25409,6 +25456,25 @@ query GetEurekaVizSnapshots(
25409
25456
  };
25410
25457
  });
25411
25458
  }
25459
+ /**
25460
+ * Whether `previous` was showing what this instance is about to show.
25461
+ *
25462
+ * Undefined-valued keys are dropped before comparing. `navigateToLiveboard`
25463
+ * assigns `vizId`, `activeTabId` and `personalizedViewId` unconditionally,
25464
+ * so an instance that has been shown once carries those keys as `undefined`
25465
+ * while a freshly constructed one does not have them at all. `isEqual`
25466
+ * counts own keys, so without this the comparison can never be true after
25467
+ * the first show — which is the whole case this exists for.
25468
+ *
25469
+ * Callbacks compare as equal: React passes a fresh closure per render.
25470
+ */
25471
+ isSameEmbedConfig(previous) {
25472
+ if (!previous)
25473
+ return false;
25474
+ if (previous === this)
25475
+ return true;
25476
+ return isEqualWith_1(definedEntries(previous.viewConfig), definedEntries(this.viewConfig), (a, b) => (typeof a === 'function' && typeof b === 'function' ? true : undefined));
25477
+ }
25412
25478
  // The whole route, not just the liveboard id: the path is built from the
25413
25479
  // viz, tab and view too, so a same-liveboard show onto another tab is a
25414
25480
  // real navigation.
@@ -1,4 +1,4 @@
1
- /* @thoughtspot/visual-embed-sdk version 1.52.2-beta.0 */
1
+ /* @thoughtspot/visual-embed-sdk version 1.52.2-beta.2 */
2
2
  'use client';
3
3
  function _mergeNamespaces(n, m) {
4
4
  m.forEach(function (e) {
@@ -7643,7 +7643,7 @@ var TableContentDensity;
7643
7643
  TableContentDensity["Compact"] = "COMPACT";
7644
7644
  })(TableContentDensity || (TableContentDensity = {}));
7645
7645
 
7646
- var version$1="1.52.2-beta.0";var pkg = {version:version$1};
7646
+ var version$1="1.52.2-beta.2";var pkg = {version:version$1};
7647
7647
 
7648
7648
  const { version } = pkg;
7649
7649
 
@@ -10779,7 +10779,7 @@ class AnswerService {
10779
10779
  async getTML() {
10780
10780
  const { object } = await this.executeQuery(getAnswerTML, {});
10781
10781
  const edoc = object[0].edoc;
10782
- const YAML = await import('./index-BrJMbt8r.js');
10782
+ const YAML = await import('./index-CnHREfvN.js');
10783
10783
  const parsedDoc = YAML.parse(edoc);
10784
10784
  return {
10785
10785
  answer: {
@@ -24767,6 +24767,46 @@ class AppEmbed extends V1Embed {
24767
24767
  }
24768
24768
  }
24769
24769
 
24770
+ /**
24771
+ * This method is like `_.isEqual` except that it accepts `customizer` which
24772
+ * is invoked to compare values. If `customizer` returns `undefined`, comparisons
24773
+ * are handled by the method instead. The `customizer` is invoked with up to
24774
+ * six arguments: (objValue, othValue [, index|key, object, other, stack]).
24775
+ *
24776
+ * @static
24777
+ * @memberOf _
24778
+ * @since 4.0.0
24779
+ * @category Lang
24780
+ * @param {*} value The value to compare.
24781
+ * @param {*} other The other value to compare.
24782
+ * @param {Function} [customizer] The function to customize comparisons.
24783
+ * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
24784
+ * @example
24785
+ *
24786
+ * function isGreeting(value) {
24787
+ * return /^h(?:i|ello)$/.test(value);
24788
+ * }
24789
+ *
24790
+ * function customizer(objValue, othValue) {
24791
+ * if (isGreeting(objValue) && isGreeting(othValue)) {
24792
+ * return true;
24793
+ * }
24794
+ * }
24795
+ *
24796
+ * var array = ['hello', 'goodbye'];
24797
+ * var other = ['hi', 'goodbye'];
24798
+ *
24799
+ * _.isEqualWith(array, other, customizer);
24800
+ * // => true
24801
+ */
24802
+ function isEqualWith(value, other, customizer) {
24803
+ customizer = typeof customizer == 'function' ? customizer : undefined;
24804
+ var result = customizer ? customizer(value, other) : undefined;
24805
+ return result === undefined ? _baseIsEqual(value, other, undefined, customizer) : !!result;
24806
+ }
24807
+
24808
+ var isEqualWith_1 = isEqualWith;
24809
+
24770
24810
  const getPreviewQuery = `
24771
24811
  query GetEurekaVizSnapshots(
24772
24812
  $vizId: String!, $liveboardId: String!) {
@@ -24866,6 +24906,11 @@ const HOME_SETTLE_MS = 200;
24866
24906
  * })
24867
24907
  * ```
24868
24908
  */
24909
+ /**
24910
+ * A shallow copy without the keys whose value is `undefined`, so a key that was
24911
+ * assigned `undefined` compares equal to one that was never set.
24912
+ */
24913
+ const definedEntries = (config = {}) => Object.fromEntries(Object.entries(config).filter(([, value]) => value !== undefined));
24869
24914
  class LiveboardEmbed extends V1Embed {
24870
24915
  constructor(domSelector, viewConfig) {
24871
24916
  viewConfig.embedComponentType = 'LiveboardEmbed';
@@ -25147,10 +25192,12 @@ class LiveboardEmbed extends V1Embed {
25147
25192
  beforePrerenderVisible() {
25148
25193
  super.beforePrerenderVisible();
25149
25194
  // Captured before showPreRender() hands the wrapper over to this
25150
- // instance. Itself means a hide/show, not a hand-over, so there is
25151
- // nothing stale to clear.
25195
+ // instance. React builds a new instance per mount, so an equal config
25196
+ // is a hide/show, not a hand-over: there is nothing stale to clear.
25152
25197
  const previous = this.getPreRenderObj();
25153
- const showing = previous === this ? undefined : previous === null || previous === void 0 ? void 0 : previous.currentLiveboardState;
25198
+ const showing = this.isSameEmbedConfig(previous)
25199
+ ? undefined
25200
+ : previous === null || previous === void 0 ? void 0 : previous.currentLiveboardState;
25154
25201
  this.executeAfterEmbedContainerLoaded(async () => {
25155
25202
  // Without this the params callback suspends on its await and
25156
25203
  // Navigate goes out first, so the container loads with the previous
@@ -25177,6 +25224,25 @@ class LiveboardEmbed extends V1Embed {
25177
25224
  };
25178
25225
  });
25179
25226
  }
25227
+ /**
25228
+ * Whether `previous` was showing what this instance is about to show.
25229
+ *
25230
+ * Undefined-valued keys are dropped before comparing. `navigateToLiveboard`
25231
+ * assigns `vizId`, `activeTabId` and `personalizedViewId` unconditionally,
25232
+ * so an instance that has been shown once carries those keys as `undefined`
25233
+ * while a freshly constructed one does not have them at all. `isEqual`
25234
+ * counts own keys, so without this the comparison can never be true after
25235
+ * the first show — which is the whole case this exists for.
25236
+ *
25237
+ * Callbacks compare as equal: React passes a fresh closure per render.
25238
+ */
25239
+ isSameEmbedConfig(previous) {
25240
+ if (!previous)
25241
+ return false;
25242
+ if (previous === this)
25243
+ return true;
25244
+ return isEqualWith_1(definedEntries(previous.viewConfig), definedEntries(this.viewConfig), (a, b) => (typeof a === 'function' && typeof b === 'function' ? true : undefined));
25245
+ }
25180
25246
  // The whole route, not just the liveboard id: the path is built from the
25181
25247
  // viz, tab and view too, so a same-liveboard show onto another tab is a
25182
25248
  // real navigation.
package/dist/tsembed.js CHANGED
@@ -1,4 +1,4 @@
1
- /* @thoughtspot/visual-embed-sdk version 1.52.2-beta.0 */
1
+ /* @thoughtspot/visual-embed-sdk version 1.52.2-beta.2 */
2
2
  'use client';
3
3
  (function (global, factory) {
4
4
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
@@ -7649,7 +7649,7 @@
7649
7649
  TableContentDensity["Compact"] = "COMPACT";
7650
7650
  })(exports.TableContentDensity || (exports.TableContentDensity = {}));
7651
7651
 
7652
- var version$1="1.52.2-beta.0";var pkg = {version:version$1};
7652
+ var version$1="1.52.2-beta.2";var pkg = {version:version$1};
7653
7653
 
7654
7654
  const { version } = pkg;
7655
7655
 
@@ -24773,6 +24773,46 @@ mutation GetUnsavedAnswerTML($session: BachSessionIdInput!, $exportDependencies:
24773
24773
  }
24774
24774
  }
24775
24775
 
24776
+ /**
24777
+ * This method is like `_.isEqual` except that it accepts `customizer` which
24778
+ * is invoked to compare values. If `customizer` returns `undefined`, comparisons
24779
+ * are handled by the method instead. The `customizer` is invoked with up to
24780
+ * six arguments: (objValue, othValue [, index|key, object, other, stack]).
24781
+ *
24782
+ * @static
24783
+ * @memberOf _
24784
+ * @since 4.0.0
24785
+ * @category Lang
24786
+ * @param {*} value The value to compare.
24787
+ * @param {*} other The other value to compare.
24788
+ * @param {Function} [customizer] The function to customize comparisons.
24789
+ * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
24790
+ * @example
24791
+ *
24792
+ * function isGreeting(value) {
24793
+ * return /^h(?:i|ello)$/.test(value);
24794
+ * }
24795
+ *
24796
+ * function customizer(objValue, othValue) {
24797
+ * if (isGreeting(objValue) && isGreeting(othValue)) {
24798
+ * return true;
24799
+ * }
24800
+ * }
24801
+ *
24802
+ * var array = ['hello', 'goodbye'];
24803
+ * var other = ['hi', 'goodbye'];
24804
+ *
24805
+ * _.isEqualWith(array, other, customizer);
24806
+ * // => true
24807
+ */
24808
+ function isEqualWith(value, other, customizer) {
24809
+ customizer = typeof customizer == 'function' ? customizer : undefined;
24810
+ var result = customizer ? customizer(value, other) : undefined;
24811
+ return result === undefined ? _baseIsEqual(value, other, undefined, customizer) : !!result;
24812
+ }
24813
+
24814
+ var isEqualWith_1 = isEqualWith;
24815
+
24776
24816
  const getPreviewQuery = `
24777
24817
  query GetEurekaVizSnapshots(
24778
24818
  $vizId: String!, $liveboardId: String!) {
@@ -24872,6 +24912,11 @@ query GetEurekaVizSnapshots(
24872
24912
  * })
24873
24913
  * ```
24874
24914
  */
24915
+ /**
24916
+ * A shallow copy without the keys whose value is `undefined`, so a key that was
24917
+ * assigned `undefined` compares equal to one that was never set.
24918
+ */
24919
+ const definedEntries = (config = {}) => Object.fromEntries(Object.entries(config).filter(([, value]) => value !== undefined));
24875
24920
  class LiveboardEmbed extends V1Embed {
24876
24921
  constructor(domSelector, viewConfig) {
24877
24922
  viewConfig.embedComponentType = 'LiveboardEmbed';
@@ -25153,10 +25198,12 @@ query GetEurekaVizSnapshots(
25153
25198
  beforePrerenderVisible() {
25154
25199
  super.beforePrerenderVisible();
25155
25200
  // Captured before showPreRender() hands the wrapper over to this
25156
- // instance. Itself means a hide/show, not a hand-over, so there is
25157
- // nothing stale to clear.
25201
+ // instance. React builds a new instance per mount, so an equal config
25202
+ // is a hide/show, not a hand-over: there is nothing stale to clear.
25158
25203
  const previous = this.getPreRenderObj();
25159
- const showing = previous === this ? undefined : previous === null || previous === void 0 ? void 0 : previous.currentLiveboardState;
25204
+ const showing = this.isSameEmbedConfig(previous)
25205
+ ? undefined
25206
+ : previous === null || previous === void 0 ? void 0 : previous.currentLiveboardState;
25160
25207
  this.executeAfterEmbedContainerLoaded(async () => {
25161
25208
  // Without this the params callback suspends on its await and
25162
25209
  // Navigate goes out first, so the container loads with the previous
@@ -25183,6 +25230,25 @@ query GetEurekaVizSnapshots(
25183
25230
  };
25184
25231
  });
25185
25232
  }
25233
+ /**
25234
+ * Whether `previous` was showing what this instance is about to show.
25235
+ *
25236
+ * Undefined-valued keys are dropped before comparing. `navigateToLiveboard`
25237
+ * assigns `vizId`, `activeTabId` and `personalizedViewId` unconditionally,
25238
+ * so an instance that has been shown once carries those keys as `undefined`
25239
+ * while a freshly constructed one does not have them at all. `isEqual`
25240
+ * counts own keys, so without this the comparison can never be true after
25241
+ * the first show — which is the whole case this exists for.
25242
+ *
25243
+ * Callbacks compare as equal: React passes a fresh closure per render.
25244
+ */
25245
+ isSameEmbedConfig(previous) {
25246
+ if (!previous)
25247
+ return false;
25248
+ if (previous === this)
25249
+ return true;
25250
+ return isEqualWith_1(definedEntries(previous.viewConfig), definedEntries(this.viewConfig), (a, b) => (typeof a === 'function' && typeof b === 'function' ? true : undefined));
25251
+ }
25186
25252
  // The whole route, not just the liveboard id: the path is built from the
25187
25253
  // viz, tab and view too, so a same-liveboard show onto another tab is a
25188
25254
  // real navigation.
@@ -15796,6 +15796,19 @@ declare class LiveboardEmbed extends V1Embed {
15796
15796
  personalizedViewId: string;
15797
15797
  };
15798
15798
  protected beforePrerenderVisible(): void;
15799
+ /**
15800
+ * Whether `previous` was showing what this instance is about to show.
15801
+ *
15802
+ * Undefined-valued keys are dropped before comparing. `navigateToLiveboard`
15803
+ * assigns `vizId`, `activeTabId` and `personalizedViewId` unconditionally,
15804
+ * so an instance that has been shown once carries those keys as `undefined`
15805
+ * while a freshly constructed one does not have them at all. `isEqual`
15806
+ * counts own keys, so without this the comparison can never be true after
15807
+ * the first show — which is the whole case this exists for.
15808
+ *
15809
+ * Callbacks compare as equal: React passes a fresh closure per render.
15810
+ */
15811
+ private isSameEmbedConfig;
15799
15812
  private isShowingLiveboardRoute;
15800
15813
  protected handleRenderForPrerender(): Promise<TsEmbed>;
15801
15814
  /**
@@ -15693,6 +15693,19 @@ declare class LiveboardEmbed extends V1Embed {
15693
15693
  personalizedViewId: string;
15694
15694
  };
15695
15695
  protected beforePrerenderVisible(): void;
15696
+ /**
15697
+ * Whether `previous` was showing what this instance is about to show.
15698
+ *
15699
+ * Undefined-valued keys are dropped before comparing. `navigateToLiveboard`
15700
+ * assigns `vizId`, `activeTabId` and `personalizedViewId` unconditionally,
15701
+ * so an instance that has been shown once carries those keys as `undefined`
15702
+ * while a freshly constructed one does not have them at all. `isEqual`
15703
+ * counts own keys, so without this the comparison can never be true after
15704
+ * the first show — which is the whole case this exists for.
15705
+ *
15706
+ * Callbacks compare as equal: React passes a fresh closure per render.
15707
+ */
15708
+ private isSameEmbedConfig;
15696
15709
  private isShowingLiveboardRoute;
15697
15710
  protected handleRenderForPrerender(): Promise<TsEmbed>;
15698
15711
  /**
@@ -15671,21 +15671,6 @@ export interface LiveboardViewConfig extends BaseViewConfig, FullHeightViewConfi
15671
15671
  */
15672
15672
  updatedSpotterExperience?: boolean;
15673
15673
  }
15674
- /**
15675
- * Embed a ThoughtSpot Liveboard or visualization. When rendered it already
15676
- * waits for the authentication to complete, so you need not wait for
15677
- * `AuthStatus.SUCCESS`.
15678
- * @group Embed components
15679
- * @example
15680
- * ```js
15681
- * import { .. } from '@thoughtspot/visual-embed-sdk';
15682
- * init({ ... });
15683
- * const embed = new LiveboardEmbed("#container", {
15684
- * liveboardId: <your-id-here>,
15685
- * // .. other params here.
15686
- * })
15687
- * ```
15688
- */
15689
15674
  export declare class LiveboardEmbed extends V1Embed {
15690
15675
  protected viewConfig: LiveboardViewConfig;
15691
15676
  private readonly fullHeightController?;
@@ -15717,6 +15702,19 @@ export declare class LiveboardEmbed extends V1Embed {
15717
15702
  personalizedViewId: string;
15718
15703
  };
15719
15704
  protected beforePrerenderVisible(): void;
15705
+ /**
15706
+ * Whether `previous` was showing what this instance is about to show.
15707
+ *
15708
+ * Undefined-valued keys are dropped before comparing. `navigateToLiveboard`
15709
+ * assigns `vizId`, `activeTabId` and `personalizedViewId` unconditionally,
15710
+ * so an instance that has been shown once carries those keys as `undefined`
15711
+ * while a freshly constructed one does not have them at all. `isEqual`
15712
+ * counts own keys, so without this the comparison can never be true after
15713
+ * the first show — which is the whole case this exists for.
15714
+ *
15715
+ * Callbacks compare as equal: React passes a fresh closure per render.
15716
+ */
15717
+ private isSameEmbedConfig;
15720
15718
  private isShowingLiveboardRoute;
15721
15719
  protected handleRenderForPrerender(): Promise<TsEmbed>;
15722
15720
  /**
package/lib/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thoughtspot/visual-embed-sdk",
3
- "version": "1.52.2-beta.0",
3
+ "version": "1.52.2-beta.2",
4
4
  "description": "ThoughtSpot Embed SDK",
5
5
  "module": "lib/src/index.js",
6
6
  "main": "dist/tsembed.js",