@thoughtspot/visual-embed-sdk 1.32.7 → 1.32.9

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 (61) hide show
  1. package/cjs/package.json +3 -3
  2. package/cjs/src/css-variables.d.ts +18 -3
  3. package/cjs/src/css-variables.d.ts.map +1 -1
  4. package/cjs/src/embed/base.d.ts +34 -32
  5. package/cjs/src/embed/base.d.ts.map +1 -1
  6. package/cjs/src/embed/base.js +40 -37
  7. package/cjs/src/embed/base.js.map +1 -1
  8. package/cjs/src/tokenizedFetch.d.ts.map +1 -1
  9. package/cjs/src/tokenizedFetch.js +5 -1
  10. package/cjs/src/tokenizedFetch.js.map +1 -1
  11. package/cjs/src/types.d.ts +80 -8
  12. package/cjs/src/types.d.ts.map +1 -1
  13. package/cjs/src/types.js +76 -6
  14. package/cjs/src/types.js.map +1 -1
  15. package/cjs/src/utils/authService/authService.spec.js +3 -1
  16. package/cjs/src/utils/authService/authService.spec.js.map +1 -1
  17. package/cjs/src/utils.d.ts.map +1 -1
  18. package/cjs/src/utils.js +3 -1
  19. package/cjs/src/utils.js.map +1 -1
  20. package/dist/src/css-variables.d.ts +18 -3
  21. package/dist/src/css-variables.d.ts.map +1 -1
  22. package/dist/src/embed/base.d.ts +34 -32
  23. package/dist/src/embed/base.d.ts.map +1 -1
  24. package/dist/src/tokenizedFetch.d.ts.map +1 -1
  25. package/dist/src/types.d.ts +80 -8
  26. package/dist/src/types.d.ts.map +1 -1
  27. package/dist/src/utils.d.ts.map +1 -1
  28. package/dist/tsembed-react.es.js +314 -82
  29. package/dist/tsembed-react.js +257 -81
  30. package/dist/tsembed.es.js +354 -119
  31. package/dist/tsembed.js +297 -118
  32. package/dist/visual-embed-sdk-react-full.d.ts +132 -43
  33. package/dist/visual-embed-sdk-react.d.ts +132 -43
  34. package/dist/visual-embed-sdk.d.ts +132 -43
  35. package/lib/package.json +3 -3
  36. package/lib/src/css-variables.d.ts +18 -3
  37. package/lib/src/css-variables.d.ts.map +1 -1
  38. package/lib/src/embed/base.d.ts +34 -32
  39. package/lib/src/embed/base.d.ts.map +1 -1
  40. package/lib/src/embed/base.js +40 -37
  41. package/lib/src/embed/base.js.map +1 -1
  42. package/lib/src/tokenizedFetch.d.ts.map +1 -1
  43. package/lib/src/tokenizedFetch.js +5 -1
  44. package/lib/src/tokenizedFetch.js.map +1 -1
  45. package/lib/src/types.d.ts +80 -8
  46. package/lib/src/types.d.ts.map +1 -1
  47. package/lib/src/types.js +76 -6
  48. package/lib/src/types.js.map +1 -1
  49. package/lib/src/utils/authService/authService.spec.js +3 -1
  50. package/lib/src/utils/authService/authService.spec.js.map +1 -1
  51. package/lib/src/utils.d.ts.map +1 -1
  52. package/lib/src/utils.js +3 -1
  53. package/lib/src/utils.js.map +1 -1
  54. package/lib/src/visual-embed-sdk.d.ts +132 -43
  55. package/package.json +3 -3
  56. package/src/css-variables.ts +21 -3
  57. package/src/embed/base.ts +35 -32
  58. package/src/tokenizedFetch.ts +5 -1
  59. package/src/types.ts +80 -8
  60. package/src/utils/authService/authService.spec.ts +3 -1
  61. package/src/utils.ts +3 -0
package/dist/tsembed.js CHANGED
@@ -205,7 +205,7 @@
205
205
  return false;
206
206
  };
207
207
  const getCustomisations = (embedConfig, viewConfig) => {
208
- var _a, _b;
208
+ var _a, _b, _c, _d;
209
209
  const customizationsFromViewConfig = viewConfig.customizations;
210
210
  const customizationsFromEmbedConfig = embedConfig.customizations
211
211
  || embedConfig.customisations;
@@ -217,6 +217,8 @@
217
217
  ...(_a = customizationsFromEmbedConfig === null || customizationsFromEmbedConfig === void 0 ? void 0 : customizationsFromEmbedConfig.style) === null || _a === void 0 ? void 0 : _a.customCSS,
218
218
  ...(_b = customizationsFromViewConfig === null || customizationsFromViewConfig === void 0 ? void 0 : customizationsFromViewConfig.style) === null || _b === void 0 ? void 0 : _b.customCSS,
219
219
  },
220
+ customCSSUrl: ((_c = customizationsFromViewConfig === null || customizationsFromViewConfig === void 0 ? void 0 : customizationsFromViewConfig.style) === null || _c === void 0 ? void 0 : _c.customCSSUrl)
221
+ || ((_d = customizationsFromEmbedConfig === null || customizationsFromEmbedConfig === void 0 ? void 0 : customizationsFromEmbedConfig.style) === null || _d === void 0 ? void 0 : _d.customCSSUrl),
220
222
  },
221
223
  content: {
222
224
  ...customizationsFromEmbedConfig === null || customizationsFromEmbedConfig === void 0 ? void 0 : customizationsFromEmbedConfig.content,
@@ -1461,8 +1463,8 @@
1461
1463
  * Prerequisite: Set isOnBeforeGetVizDataInterceptEnabled : true
1462
1464
  * for this embed event to get emitted.
1463
1465
  *
1464
- * Parameter: payload
1465
- * Parameter: responder
1466
+ * @param: payload
1467
+ * @param: responder
1466
1468
  * Contains elements that lets developers define whether ThoughtSpot
1467
1469
  * will run the search or not, and if not, which error message to provide.
1468
1470
  *
@@ -1474,6 +1476,7 @@
1474
1476
  *
1475
1477
  * @version SDK : 1.29.0 | Thoughtspot : 10.2.0.cl
1476
1478
  *
1479
+ * @example
1477
1480
  *```js
1478
1481
  * .on(EmbedEvent.OnBeforeGetVizDataIntercept,
1479
1482
  * (payload, responder) => {
@@ -1509,7 +1512,6 @@
1509
1512
  * }})
1510
1513
  * })
1511
1514
  *```
1512
- *
1513
1515
  */
1514
1516
  EmbedEvent["OnBeforeGetVizDataIntercept"] = "onBeforeGetVizDataIntercept";
1515
1517
  /**
@@ -2216,10 +2218,23 @@
2216
2218
  * filter: {
2217
2219
  * column: "item type",
2218
2220
  * oper: "IN",
2219
- * values: ["bags","shirts"],
2221
+ * values: ["bags","shirts"]
2222
+ * }
2223
+ * });
2224
+ * ```
2225
+ * @example
2226
+ * ```js
2227
+ *
2228
+ * liveboardEmbed.trigger(HostEvent.UpdateFilters, {
2229
+ * filter: {
2230
+ * column: "date",
2231
+ * oper: "EQ",
2232
+ * values: ["JULY","2023"],
2233
+ * type: "MONTH_YEAR"
2220
2234
  * }
2221
2235
  * });
2222
2236
  * ```
2237
+ *
2223
2238
  * @example
2224
2239
  *
2225
2240
  * ```js
@@ -2237,7 +2252,8 @@
2237
2252
  * {
2238
2253
  * column: "Date",
2239
2254
  * oper: 'EQ',
2240
- * values: ["1656680400"]
2255
+ * values: ["2023-07-31"],
2256
+ * types: "EXACT_DATE"
2241
2257
  * }]
2242
2258
  * });
2243
2259
  * ```
@@ -6101,7 +6117,11 @@
6101
6117
  const tokenizedFetch = async (input, init) => {
6102
6118
  const embedConfig = getEmbedConfig();
6103
6119
  if (embedConfig.authType !== exports.AuthType.TrustedAuthTokenCookieless) {
6104
- return fetch(input, init);
6120
+ return fetch(input, {
6121
+ // ensure cookies are included for the non cookie-less api calls.
6122
+ credentials: 'include',
6123
+ ...init,
6124
+ });
6105
6125
  }
6106
6126
  const req = new Request(input, init);
6107
6127
  const authToken = await getAuthenticationToken(embedConfig);
@@ -6768,7 +6788,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
6768
6788
 
6769
6789
  var Config = {
6770
6790
  DEBUG: false,
6771
- LIB_VERSION: '2.45.0'
6791
+ LIB_VERSION: '2.47.0'
6772
6792
  };
6773
6793
 
6774
6794
  // since es6 imports are static and we run unit tests from the console, window won't be defined when importing this file
@@ -7598,20 +7618,24 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
7598
7618
 
7599
7619
  _.UUID = (function() {
7600
7620
 
7601
- // Time/ticks information
7602
- // 1*new Date() is a cross browser version of Date.now()
7621
+ // Time-based entropy
7603
7622
  var T = function() {
7604
- var d = 1 * new Date(),
7605
- i = 0;
7606
-
7607
- // this while loop figures how many browser ticks go by
7608
- // before 1*new Date() returns a new number, ie the amount
7609
- // of ticks that go by per millisecond
7610
- while (d == 1 * new Date()) {
7611
- i++;
7623
+ var time = 1 * new Date(); // cross-browser version of Date.now()
7624
+ var ticks;
7625
+ if (window$1.performance && window$1.performance.now) {
7626
+ ticks = window$1.performance.now();
7627
+ } else {
7628
+ // fall back to busy loop
7629
+ ticks = 0;
7630
+
7631
+ // this while loop figures how many browser ticks go by
7632
+ // before 1*new Date() returns a new number, ie the amount
7633
+ // of ticks that go by per millisecond
7634
+ while (time == 1 * new Date()) {
7635
+ ticks++;
7636
+ }
7612
7637
  }
7613
-
7614
- return d.toString(16) + i.toString(16);
7638
+ return time.toString(16) + Math.floor(ticks).toString(16);
7615
7639
  };
7616
7640
 
7617
7641
  // Math.Random entropy
@@ -8178,21 +8202,42 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
8178
8202
  };
8179
8203
  })();
8180
8204
 
8205
+ var CAMPAIGN_KEYWORDS = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_content', 'utm_term'];
8206
+ var CLICK_IDS = ['dclid', 'fbclid', 'gclid', 'ko_click_id', 'li_fat_id', 'msclkid', 'ttclid', 'twclid', 'wbraid'];
8207
+
8181
8208
  _.info = {
8182
- campaignParams: function() {
8183
- var campaign_keywords = 'utm_source utm_medium utm_campaign utm_content utm_term'.split(' '),
8184
- kw = '',
8209
+ campaignParams: function(default_value) {
8210
+ var kw = '',
8185
8211
  params = {};
8186
- _.each(campaign_keywords, function(kwkey) {
8212
+ _.each(CAMPAIGN_KEYWORDS, function(kwkey) {
8187
8213
  kw = _.getQueryParam(document$1.URL, kwkey);
8188
8214
  if (kw.length) {
8189
8215
  params[kwkey] = kw;
8216
+ } else if (default_value !== undefined) {
8217
+ params[kwkey] = default_value;
8190
8218
  }
8191
8219
  });
8192
8220
 
8193
8221
  return params;
8194
8222
  },
8195
8223
 
8224
+ clickParams: function() {
8225
+ var id = '',
8226
+ params = {};
8227
+ _.each(CLICK_IDS, function(idkey) {
8228
+ id = _.getQueryParam(document$1.URL, idkey);
8229
+ if (id.length) {
8230
+ params[idkey] = id;
8231
+ }
8232
+ });
8233
+
8234
+ return params;
8235
+ },
8236
+
8237
+ marketingParams: function() {
8238
+ return _.extend(_.info.campaignParams(), _.info.clickParams());
8239
+ },
8240
+
8196
8241
  searchEngine: function(referrer) {
8197
8242
  if (referrer.search('https?://(.*)google.([^/?]*)') === 0) {
8198
8243
  return 'google';
@@ -8389,12 +8434,13 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
8389
8434
  });
8390
8435
  },
8391
8436
 
8392
- pageviewInfo: function(page) {
8437
+ mpPageViewProperties: function() {
8393
8438
  return _.strip_empty_properties({
8394
- 'mp_page': page,
8395
- 'mp_referrer': document$1.referrer,
8396
- 'mp_browser': _.info.browser(userAgent, navigator.vendor, windowOpera),
8397
- 'mp_platform': _.info.os()
8439
+ 'current_page_title': document$1.title,
8440
+ 'current_domain': window$1.location.hostname,
8441
+ 'current_url_path': window$1.location.pathname,
8442
+ 'current_url_protocol': window$1.location.protocol,
8443
+ 'current_url_search': window$1.location.search
8398
8444
  });
8399
8445
  }
8400
8446
  };
@@ -9061,6 +9107,9 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
9061
9107
 
9062
9108
  this.stopped = !this.libConfig['batch_autostart'];
9063
9109
  this.consecutiveRemovalFailures = 0;
9110
+
9111
+ // extra client-side dedupe
9112
+ this.itemIdsSentSuccessfully = {};
9064
9113
  };
9065
9114
 
9066
9115
  /**
@@ -9153,7 +9202,34 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
9153
9202
  payload = this.beforeSendHook(payload);
9154
9203
  }
9155
9204
  if (payload) {
9156
- dataForRequest.push(payload);
9205
+ // mp_sent_by_lib_version prop captures which lib version actually
9206
+ // sends each event (regardless of which version originally queued
9207
+ // it for sending)
9208
+ if (payload['event'] && payload['properties']) {
9209
+ payload['properties'] = _.extend(
9210
+ {},
9211
+ payload['properties'],
9212
+ {'mp_sent_by_lib_version': Config.LIB_VERSION}
9213
+ );
9214
+ }
9215
+ var addPayload = true;
9216
+ var itemId = item['id'];
9217
+ if (itemId) {
9218
+ if ((this.itemIdsSentSuccessfully[itemId] || 0) > 5) {
9219
+ this.reportError('[dupe] item ID sent too many times, not sending', {
9220
+ item: item,
9221
+ batchSize: batch.length,
9222
+ timesSent: this.itemIdsSentSuccessfully[itemId]
9223
+ });
9224
+ addPayload = false;
9225
+ }
9226
+ } else {
9227
+ this.reportError('[dupe] found item with no ID', {item: item});
9228
+ }
9229
+
9230
+ if (addPayload) {
9231
+ dataForRequest.push(payload);
9232
+ }
9157
9233
  }
9158
9234
  transformedItems[item['id']] = payload;
9159
9235
  }, this);
@@ -9236,6 +9312,24 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
9236
9312
  }
9237
9313
  }, this)
9238
9314
  );
9315
+
9316
+ // client-side dedupe
9317
+ _.each(batch, _.bind(function(item) {
9318
+ var itemId = item['id'];
9319
+ if (itemId) {
9320
+ this.itemIdsSentSuccessfully[itemId] = this.itemIdsSentSuccessfully[itemId] || 0;
9321
+ this.itemIdsSentSuccessfully[itemId]++;
9322
+ if (this.itemIdsSentSuccessfully[itemId] > 5) {
9323
+ this.reportError('[dupe] item ID sent too many times', {
9324
+ item: item,
9325
+ batchSize: batch.length,
9326
+ timesSent: this.itemIdsSentSuccessfully[itemId]
9327
+ });
9328
+ }
9329
+ } else {
9330
+ this.reportError('[dupe] found item with no ID while removing', {item: item});
9331
+ }
9332
+ }, this));
9239
9333
  }
9240
9334
 
9241
9335
  } catch(err) {
@@ -10081,24 +10175,25 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
10081
10175
  });
10082
10176
 
10083
10177
  /*
10084
- * Record that you have charged the current user a certain amount
10085
- * of money. Charges recorded with track_charge() will appear in the
10086
- * Mixpanel revenue report.
10087
- *
10088
- * ### Usage:
10089
- *
10090
- * // charge a user $50
10091
- * mixpanel.people.track_charge(50);
10092
- *
10093
- * // charge a user $30.50 on the 2nd of january
10094
- * mixpanel.people.track_charge(30.50, {
10095
- * '$time': new Date('jan 1 2012')
10096
- * });
10097
- *
10098
- * @param {Number} amount The amount of money charged to the current user
10099
- * @param {Object} [properties] An associative array of properties associated with the charge
10100
- * @param {Function} [callback] If provided, the callback will be called when the server responds
10101
- */
10178
+ * Record that you have charged the current user a certain amount
10179
+ * of money. Charges recorded with track_charge() will appear in the
10180
+ * Mixpanel revenue report.
10181
+ *
10182
+ * ### Usage:
10183
+ *
10184
+ * // charge a user $50
10185
+ * mixpanel.people.track_charge(50);
10186
+ *
10187
+ * // charge a user $30.50 on the 2nd of january
10188
+ * mixpanel.people.track_charge(30.50, {
10189
+ * '$time': new Date('jan 1 2012')
10190
+ * });
10191
+ *
10192
+ * @param {Number} amount The amount of money charged to the current user
10193
+ * @param {Object} [properties] An associative array of properties associated with the charge
10194
+ * @param {Function} [callback] If provided, the callback will be called when the server responds
10195
+ * @deprecated
10196
+ */
10102
10197
  MixpanelPeople.prototype.track_charge = addOptOutCheckMixpanelPeople(function(amount, properties, callback) {
10103
10198
  if (!_.isNumber(amount)) {
10104
10199
  amount = parseFloat(amount);
@@ -10114,15 +10209,16 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
10114
10209
  });
10115
10210
 
10116
10211
  /*
10117
- * Permanently clear all revenue report transactions from the
10118
- * current user's people analytics profile.
10119
- *
10120
- * ### Usage:
10121
- *
10122
- * mixpanel.people.clear_charges();
10123
- *
10124
- * @param {Function} [callback] If provided, the callback will be called after tracking the event.
10125
- */
10212
+ * Permanently clear all revenue report transactions from the
10213
+ * current user's people analytics profile.
10214
+ *
10215
+ * ### Usage:
10216
+ *
10217
+ * mixpanel.people.clear_charges();
10218
+ *
10219
+ * @param {Function} [callback] If provided, the callback will be called after tracking the event.
10220
+ * @deprecated
10221
+ */
10126
10222
  MixpanelPeople.prototype.clear_charges = function(callback) {
10127
10223
  return this.set('$transactions', [], callback);
10128
10224
  };
@@ -10522,13 +10618,6 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
10522
10618
  }
10523
10619
  };
10524
10620
 
10525
- MixpanelPersistence.prototype.update_campaign_params = function() {
10526
- if (!this.campaign_params_saved) {
10527
- this.register_once(_.info.campaignParams());
10528
- this.campaign_params_saved = true;
10529
- }
10530
- };
10531
-
10532
10621
  MixpanelPersistence.prototype.update_search_keyword = function(referrer) {
10533
10622
  this.register(_.info.searchInfo(referrer));
10534
10623
  };
@@ -10811,6 +10900,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
10811
10900
  /** @const */ var PRIMARY_INSTANCE_NAME = 'mixpanel';
10812
10901
  /** @const */ var PAYLOAD_TYPE_BASE64 = 'base64';
10813
10902
  /** @const */ var PAYLOAD_TYPE_JSON = 'json';
10903
+ /** @const */ var DEVICE_ID_PREFIX = '$device:';
10814
10904
 
10815
10905
 
10816
10906
  /*
@@ -10852,6 +10942,9 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
10852
10942
  'cookie_domain': '',
10853
10943
  'cookie_name': '',
10854
10944
  'loaded': NOOP_FUNC,
10945
+ 'track_marketing': true,
10946
+ 'track_pageview': false,
10947
+ 'skip_first_touch_marketing': false,
10855
10948
  'store_google': true,
10856
10949
  'save_referrer': true,
10857
10950
  'test': false,
@@ -10918,6 +11011,25 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
10918
11011
  instance['people'] = new MixpanelPeople();
10919
11012
  instance['people']._init(instance);
10920
11013
 
11014
+ if (!instance.get_config('skip_first_touch_marketing')) {
11015
+ // We need null UTM params in the object because
11016
+ // UTM parameters act as a tuple. If any UTM param
11017
+ // is present, then we set all UTM params including
11018
+ // empty ones together
11019
+ var utm_params = _.info.campaignParams(null);
11020
+ var initial_utm_params = {};
11021
+ var has_utm = false;
11022
+ _.each(utm_params, function(utm_value, utm_key) {
11023
+ initial_utm_params['initial_' + utm_key] = utm_value;
11024
+ if (utm_value) {
11025
+ has_utm = true;
11026
+ }
11027
+ });
11028
+ if (has_utm) {
11029
+ instance['people'].set_once(initial_utm_params);
11030
+ }
11031
+ }
11032
+
10921
11033
  // if any instance on the page has debug = true, we set the
10922
11034
  // global debug to be true
10923
11035
  Config.DEBUG = Config.DEBUG || instance.get_config('debug');
@@ -10949,7 +11061,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
10949
11061
  * mixpanel.library_name.track(...);
10950
11062
  *
10951
11063
  * @param {String} token Your Mixpanel API token
10952
- * @param {Object} [config] A dictionary of config options to override. <a href="https://github.com/mixpanel/mixpanel-js/blob/8b2e1f7b/src/mixpanel-core.js#L87-L110">See a list of default config options</a>.
11064
+ * @param {Object} [config] A dictionary of config options to override. <a href="https://github.com/mixpanel/mixpanel-js/blob/v2.46.0/src/mixpanel-core.js#L88-L127">See a list of default config options</a>.
10953
11065
  * @param {String} [name] The name for the new mixpanel instance that you want created
10954
11066
  */
10955
11067
  MixpanelLib.prototype.init = function (token, config, name) {
@@ -10987,7 +11099,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
10987
11099
  // default to JSON payload for standard mixpanel.com API hosts
10988
11100
  if (!('api_payload_format' in config)) {
10989
11101
  var api_host = config['api_host'] || DEFAULT_CONFIG['api_host'];
10990
- if (api_host.match(/\.mixpanel\.com$/)) {
11102
+ if (api_host.match(/\.mixpanel\.com/)) {
10991
11103
  variable_features['api_payload_format'] = PAYLOAD_TYPE_JSON;
10992
11104
  }
10993
11105
  }
@@ -11058,10 +11170,14 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
11058
11170
  // or the device id if something was already stored
11059
11171
  // in the persitence
11060
11172
  this.register_once({
11061
- 'distinct_id': uuid,
11173
+ 'distinct_id': DEVICE_ID_PREFIX + uuid,
11062
11174
  '$device_id': uuid
11063
11175
  }, '');
11064
11176
  }
11177
+
11178
+ if (this.get_config('track_pageview')) {
11179
+ this.track_pageview();
11180
+ }
11065
11181
  };
11066
11182
 
11067
11183
  // Private methods
@@ -11075,7 +11191,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
11075
11191
  MixpanelLib.prototype._set_default_superprops = function() {
11076
11192
  this['persistence'].update_search_keyword(document$1.referrer);
11077
11193
  if (this.get_config('store_google')) {
11078
- this['persistence'].update_campaign_params();
11194
+ this.register(_.info.campaignParams(), {persistent: false});
11079
11195
  }
11080
11196
  if (this.get_config('save_referrer')) {
11081
11197
  this['persistence'].update_referrer_info(document$1.referrer);
@@ -11557,6 +11673,10 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
11557
11673
 
11558
11674
  this._set_default_superprops();
11559
11675
 
11676
+ var marketing_properties = this.get_config('track_marketing')
11677
+ ? _.info.marketingParams()
11678
+ : {};
11679
+
11560
11680
  // note: extend writes to the first object, so lets make sure we
11561
11681
  // don't write to the persistence properties object and info
11562
11682
  // properties object by passing in a new object
@@ -11565,6 +11685,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
11565
11685
  properties = _.extend(
11566
11686
  {},
11567
11687
  _.info.properties(),
11688
+ marketing_properties,
11568
11689
  this['persistence'].properties(),
11569
11690
  this.unpersisted_superprops,
11570
11691
  properties
@@ -11725,17 +11846,54 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
11725
11846
  };
11726
11847
 
11727
11848
  /**
11728
- * Track mp_page_view event. This is now ignored by the server.
11849
+ * Track a default Mixpanel page view event, which includes extra default event properties to
11850
+ * improve page view data. The `config.track_pageview` option for <a href="#mixpanelinit">mixpanel.init()</a>
11851
+ * may be turned on for tracking page loads automatically.
11729
11852
  *
11730
- * @param {String} [page] The url of the page to record. If you don't include this, it defaults to the current url.
11731
- * @deprecated
11853
+ * ### Usage
11854
+ *
11855
+ * // track a default $mp_web_page_view event
11856
+ * mixpanel.track_pageview();
11857
+ *
11858
+ * // track a page view event with additional event properties
11859
+ * mixpanel.track_pageview({'ab_test_variant': 'card-layout-b'});
11860
+ *
11861
+ * // example approach to track page views on different page types as event properties
11862
+ * mixpanel.track_pageview({'page': 'pricing'});
11863
+ * mixpanel.track_pageview({'page': 'homepage'});
11864
+ *
11865
+ * // UNCOMMON: Tracking a page view event with a custom event_name option. NOT expected to be used for
11866
+ * // individual pages on the same site or product. Use cases for custom event_name may be page
11867
+ * // views on different products or internal applications that are considered completely separate
11868
+ * mixpanel.track_pageview({'page': 'customer-search'}, {'event_name': '[internal] Admin Page View'});
11869
+ *
11870
+ * @param {Object} [properties] An optional set of additional properties to send with the page view event
11871
+ * @param {Object} [options] Page view tracking options
11872
+ * @param {String} [options.event_name] - Alternate name for the tracking event
11873
+ * @returns {Boolean|Object} If the tracking request was successfully initiated/queued, an object
11874
+ * with the tracking payload sent to the API server is returned; otherwise false.
11732
11875
  */
11733
- MixpanelLib.prototype.track_pageview = function(page) {
11734
- if (_.isUndefined(page)) {
11735
- page = document$1.location.href;
11876
+ MixpanelLib.prototype.track_pageview = addOptOutCheckMixpanelLib(function(properties, options) {
11877
+ if (typeof properties !== 'object') {
11878
+ properties = {};
11736
11879
  }
11737
- this.track('mp_page_view', _.info.pageviewInfo(page));
11738
- };
11880
+ options = options || {};
11881
+ var event_name = options['event_name'] || '$mp_web_page_view';
11882
+
11883
+ var default_page_properties = _.extend(
11884
+ _.info.mpPageViewProperties(),
11885
+ _.info.campaignParams(),
11886
+ _.info.clickParams()
11887
+ );
11888
+
11889
+ var event_properties = _.extend(
11890
+ {},
11891
+ default_page_properties,
11892
+ properties
11893
+ );
11894
+
11895
+ return this.track(event_name, event_properties);
11896
+ });
11739
11897
 
11740
11898
  /**
11741
11899
  * Track clicks on a set of document elements. Selector must be a
@@ -11984,7 +12142,15 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
11984
12142
  // _unset_callback:function A callback to be run if and when the People unset queue is flushed
11985
12143
 
11986
12144
  var previous_distinct_id = this.get_distinct_id();
11987
- this.register({'$user_id': new_distinct_id});
12145
+ if (new_distinct_id && previous_distinct_id !== new_distinct_id) {
12146
+ // we allow the following condition if previous distinct_id is same as new_distinct_id
12147
+ // so that you can force flush people updates for anonymous profiles.
12148
+ if (typeof new_distinct_id === 'string' && new_distinct_id.indexOf(DEVICE_ID_PREFIX) === 0) {
12149
+ this.report_error('distinct_id cannot have $device: prefix');
12150
+ return -1;
12151
+ }
12152
+ this.register({'$user_id': new_distinct_id});
12153
+ }
11988
12154
 
11989
12155
  if (!this.get_property('$device_id')) {
11990
12156
  // The persisted distinct id might not actually be a device id at all
@@ -12025,7 +12191,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
12025
12191
  this._flags.identify_called = false;
12026
12192
  var uuid = _.UUID();
12027
12193
  this.register_once({
12028
- 'distinct_id': uuid,
12194
+ 'distinct_id': DEVICE_ID_PREFIX + uuid,
12029
12195
  '$device_id': uuid
12030
12196
  }, '');
12031
12197
  };
@@ -12150,8 +12316,8 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
12150
12316
  * // batching or retry mechanisms.
12151
12317
  * api_transport: 'XHR'
12152
12318
  *
12153
- * // turn on request-batching/queueing/retry
12154
- * batch_requests: false,
12319
+ * // request-batching/queueing/retry
12320
+ * batch_requests: true,
12155
12321
  *
12156
12322
  * // maximum number of events/updates to send in a single
12157
12323
  * // network request
@@ -12223,10 +12389,20 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
12223
12389
  * // secure, meaning they will only be transmitted over https
12224
12390
  * secure_cookie: false
12225
12391
  *
12392
+ * // disables enriching user profiles with first touch marketing data
12393
+ * skip_first_touch_marketing: false
12394
+ *
12226
12395
  * // the amount of time track_links will
12227
12396
  * // wait for Mixpanel's servers to respond
12228
12397
  * track_links_timeout: 300
12229
12398
  *
12399
+ * // adds any UTM parameters and click IDs present on the page to any events fired
12400
+ * track_marketing: true
12401
+ *
12402
+ * // enables automatic page view tracking using default page view events through
12403
+ * // the track_pageview() method
12404
+ * track_pageview: false
12405
+ *
12230
12406
  * // if you set upgrade to be true, the library will check for
12231
12407
  * // a cookie from our old js library and import super
12232
12408
  * // properties from it, then the old cookie is deleted
@@ -13815,7 +13991,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
13815
13991
  * @group Authentication / Init
13816
13992
  */
13817
13993
  const init = (embedConfig) => {
13818
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
13994
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
13819
13995
  sanity(embedConfig);
13820
13996
  resetCachedAuthToken();
13821
13997
  embedConfig = setEmbedConfig(backwardCompat({
@@ -13831,10 +14007,11 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
13831
14007
  const { password, ...configToTrack } = getEmbedConfig();
13832
14008
  uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_CALLED_INIT, {
13833
14009
  ...configToTrack,
13834
- usedCustomizationVariables: ((_c = (_b = (_a = embedConfig.customizations) === null || _a === void 0 ? void 0 : _a.style) === null || _b === void 0 ? void 0 : _b.customCSS) === null || _c === void 0 ? void 0 : _c.variables) != null,
13835
- usedCustomizationRules: ((_f = (_e = (_d = embedConfig.customizations) === null || _d === void 0 ? void 0 : _d.style) === null || _e === void 0 ? void 0 : _e.customCSS) === null || _f === void 0 ? void 0 : _f.rules_UNSTABLE) != null,
13836
- usedCustomizationStrings: !!((_h = (_g = embedConfig.customizations) === null || _g === void 0 ? void 0 : _g.content) === null || _h === void 0 ? void 0 : _h.strings),
13837
- usedCustomizationIconSprite: !!((_j = embedConfig.customizations) === null || _j === void 0 ? void 0 : _j.iconSpriteUrl),
14010
+ usedCustomizationSheet: ((_b = (_a = embedConfig.customizations) === null || _a === void 0 ? void 0 : _a.style) === null || _b === void 0 ? void 0 : _b.customCSSUrl) != null,
14011
+ usedCustomizationVariables: ((_e = (_d = (_c = embedConfig.customizations) === null || _c === void 0 ? void 0 : _c.style) === null || _d === void 0 ? void 0 : _d.customCSS) === null || _e === void 0 ? void 0 : _e.variables) != null,
14012
+ usedCustomizationRules: ((_h = (_g = (_f = embedConfig.customizations) === null || _f === void 0 ? void 0 : _f.style) === null || _g === void 0 ? void 0 : _g.customCSS) === null || _h === void 0 ? void 0 : _h.rules_UNSTABLE) != null,
14013
+ usedCustomizationStrings: !!((_k = (_j = embedConfig.customizations) === null || _j === void 0 ? void 0 : _j.content) === null || _k === void 0 ? void 0 : _k.strings),
14014
+ usedCustomizationIconSprite: !!((_l = embedConfig.customizations) === null || _l === void 0 ? void 0 : _l.iconSpriteUrl),
13838
14015
  });
13839
14016
  if (getEmbedConfig().callPrefetch) {
13840
14017
  prefetch(getEmbedConfig().thoughtSpotHost);
@@ -13885,21 +14062,22 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
13885
14062
  /**
13886
14063
  * Imports TML representation of the metadata objects into ThoughtSpot.
13887
14064
  * @param data
14065
+ * @returns imports TML data into ThoughtSpot
13888
14066
  * @example
13889
14067
  * ```js
13890
- * executeTML({
13891
- * //Array of metadata Tmls
13892
- metadata_tmls: [
13893
- "'\''{\"guid\":\"9bd202f5-d431-44bf-9a07-b4f7be372125\",
13894
- \"liveboard\":{\"name\":\"Parameters Liveboard\"}}'\''"
13895
- ],
13896
- import_policy: 'PARTIAL', // Specifies the import policy for the TML import.
13897
- create_new: false, // If selected, creates TML objects with new GUIDs.
13898
- }).then(result => {
13899
- console.log(result);
13900
- }).catch(error => {
13901
- console.error(error);
13902
- });
14068
+ * executeTML({
14069
+ * //Array of metadata Tmls in string format
14070
+ * metadata_tmls: [
14071
+ * "'\''{\"guid\":\"9bd202f5-d431-44bf-9a07-b4f7be372125\",
14072
+ * \"liveboard\":{\"name\":\"Parameters Liveboard\"}}'\''"
14073
+ * ],
14074
+ * import_policy: 'PARTIAL', // Specifies the import policy for the TML import.
14075
+ * create_new: false, // If selected, creates TML objects with new GUIDs.
14076
+ * }).then(result => {
14077
+ * console.log(result);
14078
+ * }).catch(error => {
14079
+ * console.error(error);
14080
+ * });
13903
14081
  *```
13904
14082
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
13905
14083
  * @group Global methods
@@ -13941,27 +14119,28 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
13941
14119
  * Exports TML representation of the metadata objects from ThoughtSpot in JSON or YAML
13942
14120
  * format.
13943
14121
  * @param data
14122
+ * @returns exports TML data
13944
14123
  * @example
13945
14124
  * ```js
13946
- exportTML({
13947
- metadata: [
13948
- {
13949
- type: "LIVEBOARD", //Metadata Type
13950
- identifier: "9bd202f5-d431-44bf-9a07-b4f7be372125" //Metadata Id
13951
- }
13952
- ],
13953
- export_associated: false,//indicates whether to export associated metadata objects
13954
- export_fqn: false, //Adds FQNs of the referenced objects.For example, if you are
13955
- //exporting a Liveboard and its associated objects, the API
13956
- //returns the Liveboard TML data with the FQNs of the referenced
13957
- //worksheet. If the exported TML data includes FQNs, you don't need
13958
- //to manually add FQNs of the referenced objects during TML import.
13959
- edoc_format: "JSON" //It takes JSON or YAML value
13960
- }).then(result => {
13961
- console.log(result);
13962
- }).catch(error => {
13963
- console.error(error);
13964
- });
14125
+ * exportTML({
14126
+ * metadata: [
14127
+ * {
14128
+ * type: "LIVEBOARD", //Metadata Type
14129
+ * identifier: "9bd202f5-d431-44bf-9a07-b4f7be372125" //Metadata Id
14130
+ * }
14131
+ * ],
14132
+ * export_associated: false,//indicates whether to export associated metadata objects
14133
+ * export_fqn: false, //Adds FQNs of the referenced objects.For example, if you are
14134
+ * //exporting a Liveboard and its associated objects, the API
14135
+ * //returns the Liveboard TML data with the FQNs of the referenced
14136
+ * //worksheet. If the exported TML data includes FQNs, you don't need
14137
+ * //to manually add FQNs of the referenced objects during TML import.
14138
+ * edoc_format: "JSON" //It takes JSON or YAML value
14139
+ * }).then(result => {
14140
+ * console.log(result);
14141
+ * }).catch(error => {
14142
+ * console.error(error);
14143
+ * });
13965
14144
  * ```
13966
14145
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
13967
14146
  * @group Global methods
@@ -14157,7 +14336,7 @@ mutation RemoveColumns($session: BachSessionIdInput!, $logicalColumnIds: [GUID!]
14157
14336
  });
14158
14337
  }
14159
14338
 
14160
- var name="@thoughtspot/visual-embed-sdk";var version="1.32.7";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/**","cjs/**"];var exports$1={".":{"import":"./lib/src/index.js",require:"./cjs/src/index.js",types:"./lib/src/index.d.ts"},"./react":{"import":"./lib/src/react/all-types-export.js",require:"./cjs/src/react/all-types-export.js",types:"./lib/src/react/all-types-export.d.ts"},"./lib/src/react":{"import":"./lib/src/react/all-types-export.js",require:"./cjs/src/react/all-types-export.js",types:"./lib/src/react/all-types-export.d.ts"}};var typesVersions={"*":{react:["./lib/src/react/all-types-export.d.ts"]}};var scripts={lint:"eslint 'src/**'","lint:fix":"eslint 'src/**/*.*' --fix",tsc:"tsc -p . --incremental false; tsc -p . --incremental false --module commonjs --outDir cjs","build-and-publish":"npm run build:gatsby && npm run publish","bundle-dts-file":"dts-bundle --name @thoughtspot/visual-embed-sdk --out visual-embed-sdk.d.ts --main lib/src/index.d.ts","bundle-dts":"dts-bundle --name ../../dist/visual-embed-sdk --main lib/src/index.d.ts --outputAsModuleFolder=true","bundle-dts-react":"dts-bundle --name ../../../dist/visual-embed-sdk-react --main lib/src/react/index.d.ts --outputAsModuleFolder=true","bundle-dts-react-full":"dts-bundle --name ../../../dist/visual-embed-sdk-react-full --main lib/src/react/all-types-export.d.ts --outputAsModuleFolder=true",build:"rollup -c",watch:"rollup -cw",docgen:"typedoc --tsconfig tsconfig.json --theme typedoc-theme --json static/typedoc/typedoc.json --disableOutputCheck","test-sdk":"jest -c jest.config.sdk.js --runInBand",test:"npm run test-sdk",posttest:"cat ./coverage/sdk/lcov.info | coveralls","is-publish-allowed":"node scripts/is-publish-allowed.js",prepublishOnly:"npm run is-publish-allowed && npm run test && npm run tsc && npm run bundle-dts-file && npm run bundle-dts && npm run bundle-dts-react && npm run bundle-dts-react-full && npm run build","check-size":"npm run build && size-limit","publish-dev":"npm publish --tag dev","publish-prod":"npm publish --tag latest",dev:"vite -c vite.local.config.ts"};var peerDependencies={react:"> 16.8.0","react-dom":"> 16.8.0"};var dependencies={algoliasearch:"^4.10.5",classnames:"^2.3.1",dompurify:"^2.3.4","eslint-plugin-comment-length":"^0.9.2","eslint-plugin-jsdoc":"^46.9.0",eventemitter3:"^4.0.7","gatsby-plugin-vercel":"^1.0.3","html-react-parser":"^1.4.12",lodash:"^4.17.21","mixpanel-browser":"^2.45.0","ts-deepmerge":"^6.0.2",tslib:"^2.5.3","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","@rollup/plugin-replace":"^5.0.2","@size-limit/preset-big-lib":"^8.2.6","@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/lodash":"^4.17.0","@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","current-git-branch":"^1.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","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-fetch-mock":"^3.0.3",jsdom:"^17.0.0","node-sass":"^8.0.0",prettier:"2.1.2",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-plugin-toc-group":"thoughtspot/typedoc-plugin-toc-group",typescript:"^4.9.4","url-search-params-polyfill":"^8.1.0",util:"^0.12.4",vite:"^5.3.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","embedded","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,typesVersions:typesVersions,"size-limit":[{path:"dist/tsembed.js",limit:"48 kB"}],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};
14339
+ var name="@thoughtspot/visual-embed-sdk";var version="1.32.9";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/**","cjs/**"];var exports$1={".":{"import":"./lib/src/index.js",require:"./cjs/src/index.js",types:"./lib/src/index.d.ts"},"./react":{"import":"./lib/src/react/all-types-export.js",require:"./cjs/src/react/all-types-export.js",types:"./lib/src/react/all-types-export.d.ts"},"./lib/src/react":{"import":"./lib/src/react/all-types-export.js",require:"./cjs/src/react/all-types-export.js",types:"./lib/src/react/all-types-export.d.ts"}};var typesVersions={"*":{react:["./lib/src/react/all-types-export.d.ts"]}};var scripts={lint:"eslint 'src/**'","lint:fix":"eslint 'src/**/*.*' --fix",tsc:"tsc -p . --incremental false; tsc -p . --incremental false --module commonjs --outDir cjs","build-and-publish":"npm run build:gatsby && npm run publish","bundle-dts-file":"dts-bundle --name @thoughtspot/visual-embed-sdk --out visual-embed-sdk.d.ts --main lib/src/index.d.ts","bundle-dts":"dts-bundle --name ../../dist/visual-embed-sdk --main lib/src/index.d.ts --outputAsModuleFolder=true","bundle-dts-react":"dts-bundle --name ../../../dist/visual-embed-sdk-react --main lib/src/react/index.d.ts --outputAsModuleFolder=true","bundle-dts-react-full":"dts-bundle --name ../../../dist/visual-embed-sdk-react-full --main lib/src/react/all-types-export.d.ts --outputAsModuleFolder=true",build:"rollup -c",watch:"rollup -cw",docgen:"typedoc --tsconfig tsconfig.json --theme typedoc-theme --json static/typedoc/typedoc.json --disableOutputCheck","test-sdk":"jest -c jest.config.sdk.js --runInBand",test:"npm run test-sdk",posttest:"cat ./coverage/sdk/lcov.info | coveralls","is-publish-allowed":"node scripts/is-publish-allowed.js",prepublishOnly:"npm run is-publish-allowed && npm run test && npm run tsc && npm run bundle-dts-file && npm run bundle-dts && npm run bundle-dts-react && npm run bundle-dts-react-full && npm run build","check-size":"npm run build && size-limit","publish-dev":"npm publish --tag dev","publish-prod":"npm publish --tag latest",dev:"vite -c vite.local.config.ts"};var peerDependencies={react:"> 16.8.0","react-dom":"> 16.8.0"};var dependencies={algoliasearch:"^4.10.5",classnames:"^2.3.1",dompurify:"^2.3.4","eslint-plugin-comment-length":"^0.9.2","eslint-plugin-jsdoc":"^46.9.0",eventemitter3:"^4.0.7","gatsby-plugin-vercel":"^1.0.3","html-react-parser":"^1.4.12",lodash:"^4.17.21","mixpanel-browser":"2.47.0","ts-deepmerge":"^6.0.2",tslib:"^2.5.3","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","@rollup/plugin-replace":"^5.0.2","@size-limit/preset-big-lib":"^8.2.6","@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/lodash":"^4.17.0","@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","current-git-branch":"^1.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","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-fetch-mock":"^3.0.3",jsdom:"^17.0.0","node-sass":"^8.0.0",prettier:"2.1.2",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-plugin-toc-group":"thoughtspot/typedoc-plugin-toc-group",typescript:"^4.9.4","url-search-params-polyfill":"^8.1.0",util:"^0.12.4",vite:"^5.3.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","embedded","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,typesVersions:typesVersions,"size-limit":[{path:"dist/tsembed.js",limit:"49 kB"}],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};
14161
14340
 
14162
14341
  /**
14163
14342
  * Copyright (c) 2022