algolia-experiences 1.5.0 → 1.5.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.
@@ -2382,7 +2382,7 @@
2382
2382
 
2383
2383
  mod[attribute] = facetRefinement;
2384
2384
 
2385
- return defaultsPure({}, mod, refinementList);
2385
+ return defaultsPure(mod, refinementList);
2386
2386
  },
2387
2387
  /**
2388
2388
  * Removes refinement(s) for an attribute:
@@ -3716,7 +3716,6 @@
3716
3716
 
3717
3717
  return this.setQueryParameters({
3718
3718
  hierarchicalFacetsRefinements: defaultsPure(
3719
- {},
3720
3719
  mod,
3721
3720
  this.hierarchicalFacetsRefinements
3722
3721
  ),
@@ -3744,7 +3743,6 @@
3744
3743
  mod[facet] = [path];
3745
3744
  return this.setQueryParameters({
3746
3745
  hierarchicalFacetsRefinements: defaultsPure(
3747
- {},
3748
3746
  mod,
3749
3747
  this.hierarchicalFacetsRefinements
3750
3748
  ),
@@ -3765,7 +3763,6 @@
3765
3763
  mod[facet] = [];
3766
3764
  return this.setQueryParameters({
3767
3765
  hierarchicalFacetsRefinements: defaultsPure(
3768
- {},
3769
3766
  mod,
3770
3767
  this.hierarchicalFacetsRefinements
3771
3768
  ),
@@ -4763,12 +4760,9 @@
4763
4760
  });
4764
4761
 
4765
4762
  // Make every key of the result options reachable from the instance
4766
- var opts = merge_1(
4767
- {
4768
- persistHierarchicalRootCount: false,
4769
- },
4770
- options
4771
- );
4763
+ var opts = defaultsPure(options, {
4764
+ persistHierarchicalRootCount: false,
4765
+ });
4772
4766
  Object.keys(opts).forEach(function (key) {
4773
4767
  self[key] = opts[key];
4774
4768
  });
@@ -5035,11 +5029,16 @@
5035
5029
  return;
5036
5030
  }
5037
5031
 
5038
- self.hierarchicalFacets[position][attributeIndex].data = merge_1(
5039
- {},
5040
- self.hierarchicalFacets[position][attributeIndex].data,
5041
- facetResults
5042
- );
5032
+ self.hierarchicalFacets[position][attributeIndex].data =
5033
+ self.persistHierarchicalRootCount
5034
+ ? defaultsPure(
5035
+ self.hierarchicalFacets[position][attributeIndex].data,
5036
+ facetResults
5037
+ )
5038
+ : defaultsPure(
5039
+ facetResults,
5040
+ self.hierarchicalFacets[position][attributeIndex].data
5041
+ );
5043
5042
  } else {
5044
5043
  position = disjunctiveFacetsIndices[dfacet];
5045
5044
 
@@ -5048,7 +5047,7 @@
5048
5047
 
5049
5048
  self.disjunctiveFacets[position] = {
5050
5049
  name: dfacet,
5051
- data: defaultsPure({}, facetResults, dataFromMainRequest),
5050
+ data: defaultsPure(dataFromMainRequest, facetResults),
5052
5051
  exhaustive: result.exhaustiveFacetsCount,
5053
5052
  };
5054
5053
  assignFacetStats(
@@ -5446,7 +5445,7 @@
5446
5445
  return undefined;
5447
5446
  }
5448
5447
 
5449
- var options = defaultsPure({}, opts, {
5448
+ var options = defaultsPure(opts, {
5450
5449
  sortBy: SearchResults.DEFAULT_SORT,
5451
5450
  // if no sortBy is given, attempt to sort based on facetOrdering
5452
5451
  // if it is given, we still allow to sort via facet ordering first
@@ -5737,7 +5736,7 @@
5737
5736
 
5738
5737
  var sortAndMergeRecommendations_1 = sortAndMergeRecommendations;
5739
5738
 
5740
- var version = '3.22.5';
5739
+ var version = '3.22.6';
5741
5740
 
5742
5741
  var escapeFacetValue$3 = escapeFacetValue_1.escapeFacetValue;
5743
5742
 
@@ -8677,7 +8676,10 @@
8677
8676
 
8678
8677
  // typed as any, since it accepts the _real_ js clients, not the interface we otherwise expect
8679
8678
  function getAppIdAndApiKey(searchClient) {
8680
- if (searchClient.transporter) {
8679
+ if (searchClient.appId && searchClient.apiKey) {
8680
+ // searchClient v5
8681
+ return [searchClient.appId, searchClient.apiKey];
8682
+ } else if (searchClient.transporter) {
8681
8683
  // searchClient v4 or v5
8682
8684
  var transporter = searchClient.transporter;
8683
8685
  var headers = transporter.headers || transporter.baseHeaders;
@@ -8804,8 +8806,9 @@
8804
8806
  }
8805
8807
  return res;
8806
8808
  }
8807
- function getRefinements(results, state) {
8809
+ function getRefinements(_results, state) {
8808
8810
  var includesQuery = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
8811
+ var results = _results || {};
8809
8812
  var refinements = [];
8810
8813
  var _state$facetsRefineme = state.facetsRefinements,
8811
8814
  facetsRefinements = _state$facetsRefineme === void 0 ? {} : _state$facetsRefineme,
@@ -10106,7 +10109,6 @@
10106
10109
  $$internal = _props$$$internal === void 0 ? false : _props$$$internal,
10107
10110
  _props$$$automatic = props.$$automatic,
10108
10111
  $$automatic = _props$$$automatic === void 0 ? false : _props$$$automatic;
10109
- var currentTokenType;
10110
10112
  var potentialInsightsClient = _insightsClient;
10111
10113
  if (!_insightsClient && _insightsClient !== null) {
10112
10114
  safelyRunOnBrowser(function (_ref) {
@@ -10152,9 +10154,7 @@
10152
10154
  apiKey = _getAppIdAndApiKey2[1];
10153
10155
  var queuedInitParams = undefined;
10154
10156
  var queuedUserToken = undefined;
10155
- var queuedAuthenticatedUserToken = undefined;
10156
10157
  var userTokenBeforeInit = undefined;
10157
- var authenticatedUserTokenBeforeInit = undefined;
10158
10158
  var queue = insightsClient.queue;
10159
10159
  if (Array.isArray(queue)) {
10160
10160
  // Context: The umd build of search-insights is asynchronously loaded by the snippet.
@@ -10167,7 +10167,7 @@
10167
10167
  // At this point, even though `search-insights` is not loaded yet,
10168
10168
  // we still want to read the token from the queue.
10169
10169
  // Otherwise, the first search call will be fired without the token.
10170
- var _map = ['setUserToken', 'setAuthenticatedUserToken', 'init'].map(function (key) {
10170
+ var _map = ['setUserToken', 'init'].map(function (key) {
10171
10171
  var _ref3 = find$1(queue.slice().reverse(), function (_ref5) {
10172
10172
  var _ref6 = _slicedToArray$4(_ref5, 1),
10173
10173
  method = _ref6[0];
@@ -10177,23 +10177,18 @@
10177
10177
  value = _ref4[1];
10178
10178
  return value;
10179
10179
  });
10180
- var _map2 = _slicedToArray$4(_map, 3);
10180
+ var _map2 = _slicedToArray$4(_map, 2);
10181
10181
  queuedUserToken = _map2[0];
10182
- queuedAuthenticatedUserToken = _map2[1];
10183
- queuedInitParams = _map2[2];
10182
+ queuedInitParams = _map2[1];
10184
10183
  }
10185
10184
 
10186
- // If user called `aa('setUserToken')` or `aa('setAuthenticatedUserToken')`
10187
- // before creating the Insights middleware, we temporarily store the token
10188
- // and set it later on.
10185
+ // If user called `aa('setUserToken')` before creating the Insights middleware,
10186
+ // we temporarily store the token and set it later on.
10189
10187
  //
10190
10188
  // Otherwise, the `init` call might override them with anonymous user token.
10191
10189
  insightsClient('getUserToken', null, function (_error, userToken) {
10192
10190
  userTokenBeforeInit = normalizeUserToken(userToken);
10193
10191
  });
10194
- insightsClient('getAuthenticatedUserToken', null, function (_error, userToken) {
10195
- authenticatedUserTokenBeforeInit = normalizeUserToken(userToken);
10196
- });
10197
10192
 
10198
10193
  // Only `init` if the `insightsInitParams` option is passed or
10199
10194
  // if the `insightsClient` version doesn't supports optional `init` calling.
@@ -10233,7 +10228,7 @@
10233
10228
  helper = instantSearchInstance.mainHelper;
10234
10229
  var queueAtStart = insightsClient.queue;
10235
10230
  if (Array.isArray(queueAtStart)) {
10236
- var _map3 = ['setUserToken', 'setAuthenticatedUserToken', 'init'].map(function (key) {
10231
+ var _map3 = ['setUserToken', 'init'].map(function (key) {
10237
10232
  var _ref7 = find$1(queueAtStart.slice().reverse(), function (_ref9) {
10238
10233
  var _ref10 = _slicedToArray$4(_ref9, 1),
10239
10234
  method = _ref10[0];
@@ -10243,15 +10238,11 @@
10243
10238
  value = _ref8[1];
10244
10239
  return value;
10245
10240
  });
10246
- var _map4 = _slicedToArray$4(_map3, 3);
10241
+ var _map4 = _slicedToArray$4(_map3, 2);
10247
10242
  queuedUserToken = _map4[0];
10248
- queuedAuthenticatedUserToken = _map4[1];
10249
- queuedInitParams = _map4[2];
10243
+ queuedInitParams = _map4[1];
10250
10244
  }
10251
- initialParameters = {
10252
- userToken: helper.state.userToken,
10253
- clickAnalytics: helper.state.clickAnalytics
10254
- };
10245
+ initialParameters = getInitialParameters(instantSearchInstance);
10255
10246
 
10256
10247
  // We don't want to force clickAnalytics when the insights is enabled from the search response.
10257
10248
  // This means we don't enable insights for indices that don't opt in
@@ -10263,9 +10254,8 @@
10263
10254
  if (!$$internal) {
10264
10255
  instantSearchInstance.scheduleSearch();
10265
10256
  }
10266
- var setUserTokenToSearch = function setUserTokenToSearch(userToken, tokenType) {
10267
- var immediate = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
10268
- var unsetAuthenticatedUserToken = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
10257
+ var setUserTokenToSearch = function setUserTokenToSearch(userToken) {
10258
+ var immediate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
10269
10259
  var normalizedUserToken = normalizeUserToken(userToken);
10270
10260
  if (!normalizedUserToken) {
10271
10261
  return;
@@ -10278,13 +10268,6 @@
10278
10268
  if (existingToken && existingToken !== userToken) {
10279
10269
  instantSearchInstance.scheduleSearch();
10280
10270
  }
10281
- currentTokenType = tokenType;
10282
- }
10283
-
10284
- // the authenticated user token cannot be overridden by a user or anonymous token
10285
- // for instant search query requests
10286
- if (currentTokenType && currentTokenType === 'authenticated' && tokenType === 'default' && !unsetAuthenticatedUserToken) {
10287
- return;
10288
10271
  }
10289
10272
 
10290
10273
  // Delay the token application to the next render cycle
@@ -10294,14 +10277,9 @@
10294
10277
  applyToken();
10295
10278
  }
10296
10279
  };
10297
- function setUserToken(token, userToken, authenticatedUserToken) {
10298
- setUserTokenToSearch(token, authenticatedUserToken ? 'authenticated' : 'default', true);
10299
- if (userToken) {
10300
- insightsClient('setUserToken', userToken);
10301
- }
10302
- if (authenticatedUserToken) {
10303
- insightsClient('setAuthenticatedUserToken', authenticatedUserToken);
10304
- }
10280
+ function setUserToken(token) {
10281
+ setUserTokenToSearch(token, true);
10282
+ insightsClient('setUserToken', token);
10305
10283
  }
10306
10284
  var anonymousUserToken = undefined;
10307
10285
  var anonymousTokenFromInsights = getInsightsAnonymousUserTokenInternal();
@@ -10315,7 +10293,6 @@
10315
10293
  var token = "anonymous-".concat(createUUID());
10316
10294
  anonymousUserToken = token;
10317
10295
  }
10318
- var authenticatedUserTokenFromInit;
10319
10296
  var userTokenFromInit;
10320
10297
 
10321
10298
  // With SSR, the token could be be set on the state. We make sure
@@ -10323,36 +10300,25 @@
10323
10300
  // insights lib on the server.
10324
10301
  var tokenFromSearchParameters = initialParameters.userToken;
10325
10302
 
10326
- // When the first query is sent, the token is possibly not yet be set by
10303
+ // When the first query is sent, the token is possibly not yet set by
10327
10304
  // the insights onChange callbacks (if insights isn't yet loaded).
10328
10305
  // It is explicitly being set here so that the first query has the
10329
10306
  // initial tokens set and ensure a second query isn't automatically
10330
10307
  // made when the onChange callback actually changes the state.
10331
- if (insightsInitParams) {
10332
- if (insightsInitParams.authenticatedUserToken) {
10333
- authenticatedUserTokenFromInit = insightsInitParams.authenticatedUserToken;
10334
- } else if (insightsInitParams.userToken) {
10335
- userTokenFromInit = insightsInitParams.userToken;
10336
- }
10308
+ if (insightsInitParams !== null && insightsInitParams !== void 0 && insightsInitParams.userToken) {
10309
+ userTokenFromInit = insightsInitParams.userToken;
10337
10310
  }
10338
-
10339
- // We consider the `userToken` or `authenticatedUserToken` before an
10340
- // `init` call of higher importance than one from the queue and ones set
10341
- // from the init props to be higher than that.
10342
- var tokenFromInit = authenticatedUserTokenFromInit || userTokenFromInit;
10343
- var tokenBeforeInit = authenticatedUserTokenBeforeInit || userTokenBeforeInit;
10344
- var tokenFromQueue = queuedAuthenticatedUserToken || queuedUserToken;
10345
- if (tokenFromInit) {
10346
- setUserToken(tokenFromInit, userTokenFromInit, authenticatedUserTokenFromInit);
10311
+ if (userTokenFromInit) {
10312
+ setUserToken(userTokenFromInit);
10347
10313
  } else if (tokenFromSearchParameters) {
10348
- setUserToken(tokenFromSearchParameters, tokenFromSearchParameters, undefined);
10349
- } else if (tokenBeforeInit) {
10350
- setUserToken(tokenBeforeInit, userTokenBeforeInit, authenticatedUserTokenBeforeInit);
10351
- } else if (tokenFromQueue) {
10352
- setUserToken(tokenFromQueue, queuedUserToken, queuedAuthenticatedUserToken);
10314
+ setUserToken(tokenFromSearchParameters);
10315
+ } else if (userTokenBeforeInit) {
10316
+ setUserToken(userTokenBeforeInit);
10317
+ } else if (queuedUserToken) {
10318
+ setUserToken(queuedUserToken);
10353
10319
  } else if (anonymousUserToken) {
10354
10320
  var _queuedInitParams;
10355
- setUserToken(anonymousUserToken, anonymousUserToken, undefined);
10321
+ setUserToken(anonymousUserToken);
10356
10322
  if (insightsInitParams !== null && insightsInitParams !== void 0 && insightsInitParams.useCookie || (_queuedInitParams = queuedInitParams) !== null && _queuedInitParams !== void 0 && _queuedInitParams.useCookie) {
10357
10323
  var _queuedInitParams2;
10358
10324
  saveTokenAsCookie(anonymousUserToken, (insightsInitParams === null || insightsInitParams === void 0 ? void 0 : insightsInitParams.cookieDuration) || ((_queuedInitParams2 = queuedInitParams) === null || _queuedInitParams2 === void 0 ? void 0 : _queuedInitParams2.cookieDuration));
@@ -10361,20 +10327,7 @@
10361
10327
 
10362
10328
  // This updates userToken which is set explicitly by `aa('setUserToken', userToken)`
10363
10329
  insightsClient('onUserTokenChange', function (token) {
10364
- return setUserTokenToSearch(token, 'default', true);
10365
- }, {
10366
- immediate: true
10367
- });
10368
-
10369
- // This updates userToken which is set explicitly by `aa('setAuthenticatedtUserToken', authenticatedUserToken)`
10370
- insightsClient('onAuthenticatedUserTokenChange', function (authenticatedUserToken) {
10371
- // If we're unsetting the `authenticatedUserToken`, we revert to the `userToken`
10372
- if (!authenticatedUserToken) {
10373
- insightsClient('getUserToken', null, function (_, userToken) {
10374
- setUserTokenToSearch(userToken, 'default', true, true);
10375
- });
10376
- }
10377
- setUserTokenToSearch(authenticatedUserToken, 'authenticated', true);
10330
+ return setUserTokenToSearch(token, true);
10378
10331
  }, {
10379
10332
  immediate: true
10380
10333
  });
@@ -10396,7 +10349,7 @@
10396
10349
  var lastQueryId;
10397
10350
  instantSearchInstance.mainHelper.derivedHelpers[0].on('result', function (_ref11) {
10398
10351
  var results = _ref11.results;
10399
- if (!results.queryID || results.queryID !== lastQueryId) {
10352
+ if (results && (!results.queryID || results.queryID !== lastQueryId)) {
10400
10353
  lastQueryId = results.queryID;
10401
10354
  viewedObjectIDs.clear();
10402
10355
  }
@@ -10433,7 +10386,6 @@
10433
10386
  },
10434
10387
  unsubscribe: function unsubscribe() {
10435
10388
  insightsClient('onUserTokenChange', undefined);
10436
- insightsClient('onAuthenticatedUserTokenChange', undefined);
10437
10389
  instantSearchInstance.sendEventToInsights = noop;
10438
10390
  if (helper && initialParameters) {
10439
10391
  helper.overrideStateWithoutTriggeringChangeEvent(_objectSpread$9(_objectSpread$9({}, helper.state), initialParameters));
@@ -10443,6 +10395,16 @@
10443
10395
  };
10444
10396
  };
10445
10397
  }
10398
+ function getInitialParameters(instantSearchInstance) {
10399
+ var _instantSearchInstanc, _instantSearchInstanc2;
10400
+ // in SSR, the initial state we use in this domain is set on the main index
10401
+ var stateFromInitialResults = ((_instantSearchInstanc = instantSearchInstance._initialResults) === null || _instantSearchInstanc === void 0 ? void 0 : (_instantSearchInstanc2 = _instantSearchInstanc[instantSearchInstance.indexName]) === null || _instantSearchInstanc2 === void 0 ? void 0 : _instantSearchInstanc2.state) || {};
10402
+ var stateFromHelper = instantSearchInstance.mainHelper.state;
10403
+ return {
10404
+ userToken: stateFromInitialResults.userToken || stateFromHelper.userToken,
10405
+ clickAnalytics: stateFromInitialResults.clickAnalytics || stateFromHelper.clickAnalytics
10406
+ };
10407
+ }
10446
10408
  function saveTokenAsCookie(token, cookieDuration) {
10447
10409
  var MONTH = 30 * 24 * 60 * 60 * 1000;
10448
10410
  var d = new Date();
@@ -12126,7 +12088,6 @@
12126
12088
  // TODO: emit "change" event when events for Recommend are implemented
12127
12089
  }
12128
12090
  }
12129
-
12130
12091
  function getLocalWidgetsUiState(widgets, widgetStateOptions) {
12131
12092
  var initialUiState = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
12132
12093
  return widgets.reduce(function (uiState, widget) {
@@ -12821,7 +12782,7 @@
12821
12782
  };
12822
12783
  }
12823
12784
 
12824
- var version$1 = '4.75.5';
12785
+ var version$1 = '4.75.7';
12825
12786
 
12826
12787
  function _typeof$j(obj) {
12827
12788
  "@babel/helpers - typeof";
@@ -12981,9 +12942,11 @@
12981
12942
  // this purposely breaks typescript's type inference to ensure it's not used
12982
12943
  // as it's used for a default parameter for example
12983
12944
  // source: https://github.com/Microsoft/TypeScript/issues/14829#issuecomment-504042546
12945
+
12984
12946
  /**
12985
12947
  * Global options for an InstantSearch instance.
12986
12948
  */
12949
+
12987
12950
  var INSTANTSEARCH_FUTURE_DEFAULTS = {
12988
12951
  preserveSharedStateOnUnmount: false,
12989
12952
  persistHierarchicalRootCount: false
@@ -17758,7 +17721,7 @@
17758
17721
  function getItems() {
17759
17722
  if (!results) {
17760
17723
  return transformItems(getRefinementsItems({
17761
- results: {},
17724
+ results: null,
17762
17725
  helper: helper,
17763
17726
  indexId: helper.state.index,
17764
17727
  includedAttributes: includedAttributes,
@@ -19816,6 +19779,7 @@
19816
19779
 
19817
19780
  // false positive lint error
19818
19781
  // eslint-disable-next-line @typescript-eslint/consistent-type-imports
19782
+
19819
19783
  var defaultTemplates$3 = {
19820
19784
  empty: function empty() {
19821
19785
  return 'No results';
@@ -20910,7 +20874,7 @@
20910
20874
  sendEvent: sendEvent,
20911
20875
  bindEvent: bindEvent,
20912
20876
  banner: banner,
20913
- results: results,
20877
+ results: results || undefined,
20914
20878
  showPrevious: showPrevious,
20915
20879
  showMore: showMore,
20916
20880
  isFirstPage: isFirstPage,
@@ -24985,7 +24949,6 @@
24985
24949
  ), handlePos[idx - 1] !== undefined ? handlePos[idx - 1] + handleDimensions : PERCENT_EMPTY // 0% is the lowest value
24986
24950
  );
24987
24951
  });
24988
-
24989
24952
  _defineProperty$X(_assertThisInitialized$6(_this), "validateValues", function (proposedValues, props) {
24990
24953
  var _ref4 = props || _this.props,
24991
24954
  max = _ref4.max,
@@ -29999,7 +29962,7 @@
29999
29962
  }
30000
29963
  }]);
30001
29964
  return AlgoliaExperience;
30002
- }( /*#__PURE__*/_wrapNativeSuper(HTMLElement));
29965
+ }(/*#__PURE__*/_wrapNativeSuper(HTMLElement));
30003
29966
  _defineProperty(AlgoliaExperience, "observedAttributes", ['experience-id']);
30004
29967
  customElements.define('algolia-experience', AlgoliaExperience);
30005
29968
  }