react-instantsearch 7.14.0 → 7.15.1

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.
@@ -7,7 +7,7 @@
7
7
 
8
8
  var React__default = 'default' in React ? React['default'] : React;
9
9
 
10
- var version = '7.14.0';
10
+ var version = '7.15.1';
11
11
 
12
12
  // Copyright Joyent, Inc. and other Node contributors.
13
13
  //
@@ -3103,6 +3103,34 @@
3103
3103
  );
3104
3104
  };
3105
3105
 
3106
+ // NOTE: this behaves like lodash/defaults, but doesn't mutate the target
3107
+ // it also preserve keys order and keep the highest numeric value
3108
+ function mergeNumericMax() {
3109
+ var sources = Array.prototype.slice.call(arguments);
3110
+
3111
+ return sources.reduceRight(function (acc, source) {
3112
+ Object.keys(Object(source)).forEach(function (key) {
3113
+ var accValue = typeof acc[key] === 'number' ? acc[key] : 0;
3114
+ var sourceValue = source[key];
3115
+
3116
+ if (sourceValue === undefined) {
3117
+ return;
3118
+ }
3119
+
3120
+ if (sourceValue >= accValue) {
3121
+ if (acc[key] !== undefined) {
3122
+ // remove if already added, so that we can add it in correct order
3123
+ delete acc[key];
3124
+ }
3125
+ acc[key] = sourceValue;
3126
+ }
3127
+ });
3128
+ return acc;
3129
+ }, {});
3130
+ }
3131
+
3132
+ var mergeNumericMax_1 = mergeNumericMax;
3133
+
3106
3134
  function compareAscending(value, other) {
3107
3135
  if (value !== other) {
3108
3136
  var valIsDefined = value !== undefined;
@@ -3890,7 +3918,7 @@
3890
3918
 
3891
3919
  self.hierarchicalFacets[position][attributeIndex].data =
3892
3920
  self.persistHierarchicalRootCount
3893
- ? defaultsPure(
3921
+ ? mergeNumericMax_1(
3894
3922
  self.hierarchicalFacets[position][attributeIndex].data,
3895
3923
  facetResults
3896
3924
  )
@@ -3906,7 +3934,7 @@
3906
3934
 
3907
3935
  self.disjunctiveFacets[position] = {
3908
3936
  name: dfacet,
3909
- data: defaultsPure(dataFromMainRequest, facetResults),
3937
+ data: mergeNumericMax_1(dataFromMainRequest, facetResults),
3910
3938
  exhaustive: result.exhaustiveFacetsCount,
3911
3939
  };
3912
3940
  assignFacetStats(
@@ -4595,7 +4623,7 @@
4595
4623
 
4596
4624
  var sortAndMergeRecommendations_1 = sortAndMergeRecommendations;
4597
4625
 
4598
- var version$1 = '3.23.0';
4626
+ var version$1 = '3.23.1';
4599
4627
 
4600
4628
  var escapeFacetValue$3 = escapeFacetValue_1.escapeFacetValue;
4601
4629
 
@@ -8019,9 +8047,9 @@
8019
8047
  var queryParameters = transporter.queryParameters || transporter.baseQueryParameters;
8020
8048
  var APP_ID = 'x-algolia-application-id';
8021
8049
  var API_KEY = 'x-algolia-api-key';
8022
- var _appId = headers[APP_ID] || queryParameters[APP_ID];
8023
- var _apiKey = headers[API_KEY] || queryParameters[API_KEY];
8024
- return [_appId, _apiKey];
8050
+ var appId = headers[APP_ID] || queryParameters[APP_ID];
8051
+ var apiKey = headers[API_KEY] || queryParameters[API_KEY];
8052
+ return [appId, apiKey];
8025
8053
  } else {
8026
8054
  // searchClient v3
8027
8055
  return [searchClient.applicationID, searchClient.apiKey];
@@ -13380,7 +13408,7 @@
13380
13408
  };
13381
13409
  }
13382
13410
 
13383
- var version$3 = '4.76.0';
13411
+ var version$3 = '4.77.1';
13384
13412
 
13385
13413
  function _typeof$q(o) {
13386
13414
  "@babel/helpers - typeof";
@@ -15392,6 +15420,7 @@
15392
15420
  if (!objectIDs || objectIDs.length === 0) {
15393
15421
  throw new Error(withUsage$7('The `objectIDs` option is required.'));
15394
15422
  }
15423
+ var sendEvent;
15395
15424
  return {
15396
15425
  dependsOn: 'recommend',
15397
15426
  $$type: 'ais.frequentlyBoughtTogether',
@@ -15410,22 +15439,37 @@
15410
15439
  return renderState;
15411
15440
  },
15412
15441
  getWidgetRenderState: function getWidgetRenderState(_ref2) {
15413
- var results = _ref2.results;
15442
+ var results = _ref2.results,
15443
+ helper = _ref2.helper,
15444
+ instantSearchInstance = _ref2.instantSearchInstance;
15445
+ if (!sendEvent) {
15446
+ sendEvent = createSendEventForHits({
15447
+ instantSearchInstance: instantSearchInstance,
15448
+ getIndex: function getIndex() {
15449
+ return helper.getIndex();
15450
+ },
15451
+ widgetType: this.$$type
15452
+ });
15453
+ }
15414
15454
  if (results === null || results === undefined) {
15415
15455
  return {
15416
15456
  items: [],
15417
- widgetParams: widgetParams
15457
+ widgetParams: widgetParams,
15458
+ sendEvent: sendEvent
15418
15459
  };
15419
15460
  }
15420
15461
  if (escapeHTML && results.hits.length > 0) {
15421
15462
  results.hits = escapeHits(results.hits);
15422
15463
  }
15423
- var transformedItems = transformItems(results.hits, {
15464
+ var itemsWithAbsolutePosition = addAbsolutePosition(results.hits, 0, 1);
15465
+ var itemsWithAbsolutePositionAndQueryID = addQueryID(itemsWithAbsolutePosition, results.queryID);
15466
+ var transformedItems = transformItems(itemsWithAbsolutePositionAndQueryID, {
15424
15467
  results: results
15425
15468
  });
15426
15469
  return {
15427
15470
  items: transformedItems,
15428
- widgetParams: widgetParams
15471
+ widgetParams: widgetParams,
15472
+ sendEvent: sendEvent
15429
15473
  };
15430
15474
  },
15431
15475
  dispose: function dispose(_ref3) {
@@ -18988,6 +19032,7 @@
18988
19032
  if (!objectIDs || objectIDs.length === 0) {
18989
19033
  throw new Error(withUsage$j('The `objectIDs` option is required.'));
18990
19034
  }
19035
+ var sendEvent;
18991
19036
  return {
18992
19037
  dependsOn: 'recommend',
18993
19038
  $$type: 'ais.relatedProducts',
@@ -19006,21 +19051,37 @@
19006
19051
  return renderState;
19007
19052
  },
19008
19053
  getWidgetRenderState: function getWidgetRenderState(_ref2) {
19009
- var results = _ref2.results;
19054
+ var results = _ref2.results,
19055
+ helper = _ref2.helper,
19056
+ instantSearchInstance = _ref2.instantSearchInstance;
19057
+ if (!sendEvent) {
19058
+ sendEvent = createSendEventForHits({
19059
+ instantSearchInstance: instantSearchInstance,
19060
+ getIndex: function getIndex() {
19061
+ return helper.getIndex();
19062
+ },
19063
+ widgetType: this.$$type
19064
+ });
19065
+ }
19010
19066
  if (results === null || results === undefined) {
19011
19067
  return {
19012
19068
  items: [],
19013
- widgetParams: widgetParams
19069
+ widgetParams: widgetParams,
19070
+ sendEvent: sendEvent
19014
19071
  };
19015
19072
  }
19016
19073
  if (escapeHTML && results.hits.length > 0) {
19017
19074
  results.hits = escapeHits(results.hits);
19018
19075
  }
19076
+ var itemsWithAbsolutePosition = addAbsolutePosition(results.hits, 0, 1);
19077
+ var itemsWithAbsolutePositionAndQueryID = addQueryID(itemsWithAbsolutePosition, results.queryID);
19078
+ var transformedItems = transformItems(itemsWithAbsolutePositionAndQueryID, {
19079
+ results: results
19080
+ });
19019
19081
  return {
19020
- items: transformItems(results.hits, {
19021
- results: results
19022
- }),
19023
- widgetParams: widgetParams
19082
+ items: transformedItems,
19083
+ widgetParams: widgetParams,
19084
+ sendEvent: sendEvent
19024
19085
  };
19025
19086
  },
19026
19087
  dispose: function dispose(_ref3) {
@@ -19982,6 +20043,7 @@
19982
20043
  if (facetName && !facetValue || !facetName && facetValue) {
19983
20044
  throw new Error(withUsage$o("When you provide facetName (received type ".concat(getObjectType(facetName), "), you must also provide facetValue (received type ").concat(getObjectType(facetValue), ").")));
19984
20045
  }
20046
+ var sendEvent;
19985
20047
  return {
19986
20048
  dependsOn: 'recommend',
19987
20049
  $$type: 'ais.trendingItems',
@@ -20000,21 +20062,37 @@
20000
20062
  return renderState;
20001
20063
  },
20002
20064
  getWidgetRenderState: function getWidgetRenderState(_ref2) {
20003
- var results = _ref2.results;
20065
+ var results = _ref2.results,
20066
+ helper = _ref2.helper,
20067
+ instantSearchInstance = _ref2.instantSearchInstance;
20068
+ if (!sendEvent) {
20069
+ sendEvent = createSendEventForHits({
20070
+ instantSearchInstance: instantSearchInstance,
20071
+ getIndex: function getIndex() {
20072
+ return helper.getIndex();
20073
+ },
20074
+ widgetType: this.$$type
20075
+ });
20076
+ }
20004
20077
  if (results === null || results === undefined) {
20005
20078
  return {
20006
20079
  items: [],
20007
- widgetParams: widgetParams
20080
+ widgetParams: widgetParams,
20081
+ sendEvent: sendEvent
20008
20082
  };
20009
20083
  }
20010
20084
  if (escapeHTML && results.hits.length > 0) {
20011
20085
  results.hits = escapeHits(results.hits);
20012
20086
  }
20087
+ var itemsWithAbsolutePosition = addAbsolutePosition(results.hits, 0, 1);
20088
+ var itemsWithAbsolutePositionAndQueryID = addQueryID(itemsWithAbsolutePosition, results.queryID);
20089
+ var transformedItems = transformItems(itemsWithAbsolutePositionAndQueryID, {
20090
+ results: results
20091
+ });
20013
20092
  return {
20014
- items: transformItems(results.hits, {
20015
- results: results
20016
- }),
20017
- widgetParams: widgetParams
20093
+ items: transformedItems,
20094
+ widgetParams: widgetParams,
20095
+ sendEvent: sendEvent
20018
20096
  };
20019
20097
  },
20020
20098
  dispose: function dispose(_ref3) {
@@ -20122,6 +20200,7 @@
20122
20200
  if (!objectIDs || objectIDs.length === 0) {
20123
20201
  throw new Error(withUsage$p('The `objectIDs` option is required.'));
20124
20202
  }
20203
+ var sendEvent;
20125
20204
  return {
20126
20205
  dependsOn: 'recommend',
20127
20206
  $$type: 'ais.lookingSimilar',
@@ -20140,21 +20219,37 @@
20140
20219
  return renderState;
20141
20220
  },
20142
20221
  getWidgetRenderState: function getWidgetRenderState(_ref2) {
20143
- var results = _ref2.results;
20222
+ var results = _ref2.results,
20223
+ helper = _ref2.helper,
20224
+ instantSearchInstance = _ref2.instantSearchInstance;
20225
+ if (!sendEvent) {
20226
+ sendEvent = createSendEventForHits({
20227
+ instantSearchInstance: instantSearchInstance,
20228
+ getIndex: function getIndex() {
20229
+ return helper.getIndex();
20230
+ },
20231
+ widgetType: this.$$type
20232
+ });
20233
+ }
20144
20234
  if (results === null || results === undefined) {
20145
20235
  return {
20146
20236
  items: [],
20147
- widgetParams: widgetParams
20237
+ widgetParams: widgetParams,
20238
+ sendEvent: sendEvent
20148
20239
  };
20149
20240
  }
20150
20241
  if (escapeHTML && results.hits.length > 0) {
20151
20242
  results.hits = escapeHits(results.hits);
20152
20243
  }
20244
+ var itemsWithAbsolutePosition = addAbsolutePosition(results.hits, 0, 1);
20245
+ var itemsWithAbsolutePositionAndQueryID = addQueryID(itemsWithAbsolutePosition, results.queryID);
20246
+ var transformedItems = transformItems(itemsWithAbsolutePositionAndQueryID, {
20247
+ results: results
20248
+ });
20153
20249
  return {
20154
- items: transformItems(results.hits, {
20155
- results: results
20156
- }),
20157
- widgetParams: widgetParams
20250
+ items: transformedItems,
20251
+ widgetParams: widgetParams,
20252
+ sendEvent: sendEvent
20158
20253
  };
20159
20254
  },
20160
20255
  dispose: function dispose(_ref3) {
@@ -20677,7 +20772,7 @@
20677
20772
  searchRef = _ref3.searchRef,
20678
20773
  skipRecommend = _ref3.skipRecommend;
20679
20774
  return Promise.resolve().then(function () {
20680
- renderToString( /*#__PURE__*/React__default.createElement(InstantSearchServerContext.Provider, {
20775
+ renderToString(/*#__PURE__*/React__default.createElement(InstantSearchServerContext.Provider, {
20681
20776
  value: {
20682
20777
  notifyServer: notifyServer
20683
20778
  }
@@ -21034,16 +21129,21 @@
21034
21129
  return createElement("li", {
21035
21130
  key: item.objectID,
21036
21131
  className: classNames.item,
21037
- onClick: sendEvent,
21038
- onAuxClick: sendEvent
21132
+ onClick: function onClick() {
21133
+ sendEvent('click:internal', item, 'Item Clicked');
21134
+ },
21135
+ onAuxClick: function onAuxClick() {
21136
+ sendEvent('click:internal', item, 'Item Clicked');
21137
+ }
21039
21138
  }, createElement(ItemComponent, {
21040
- item: item
21139
+ item: item,
21140
+ sendEvent: sendEvent
21041
21141
  }));
21042
21142
  })));
21043
21143
  };
21044
21144
  }
21045
21145
 
21046
- var _excluded$c = ["listRef", "nextButtonRef", "previousButtonRef", "carouselIdRef", "classNames", "itemComponent", "previousIconComponent", "nextIconComponent", "items", "translations"];
21146
+ var _excluded$c = ["listRef", "nextButtonRef", "previousButtonRef", "carouselIdRef", "classNames", "itemComponent", "previousIconComponent", "nextIconComponent", "items", "translations", "sendEvent"];
21047
21147
  function ownKeys$L(e, r) {
21048
21148
  var t = Object.keys(e);
21049
21149
  if (Object.getOwnPropertySymbols) {
@@ -21118,6 +21218,7 @@
21118
21218
  NextIconComponent = _userProps$nextIconCo === void 0 ? NextIconDefaultComponent : _userProps$nextIconCo,
21119
21219
  items = userProps.items,
21120
21220
  userTranslations = userProps.translations,
21221
+ sendEvent = userProps.sendEvent,
21121
21222
  props = _objectWithoutProperties$d(userProps, _excluded$c);
21122
21223
  var translations = _objectSpread$K({
21123
21224
  listLabel: 'Items',
@@ -21192,9 +21293,16 @@
21192
21293
  key: item.objectID,
21193
21294
  className: cx(cssClasses.item),
21194
21295
  "aria-roledescription": "slide",
21195
- "aria-label": "".concat(index + 1, " of ").concat(items.length)
21296
+ "aria-label": "".concat(index + 1, " of ").concat(items.length),
21297
+ onClick: function onClick() {
21298
+ sendEvent('click:internal', item, 'Item Clicked');
21299
+ },
21300
+ onAuxClick: function onAuxClick() {
21301
+ sendEvent('click:internal', item, 'Item Clicked');
21302
+ }
21196
21303
  }, createElement(ItemComponent, {
21197
- item: item
21304
+ item: item,
21305
+ sendEvent: sendEvent
21198
21306
  }));
21199
21307
  })), createElement("button", {
21200
21308
  ref: nextButtonRef,
@@ -21903,7 +22011,8 @@
21903
22011
  }, {
21904
22012
  $$widgetType: 'ais.frequentlyBoughtTogether'
21905
22013
  }),
21906
- items = _useFrequentlyBoughtT.items;
22014
+ items = _useFrequentlyBoughtT.items,
22015
+ sendEvent = _useFrequentlyBoughtT.sendEvent;
21907
22016
  var layout = layoutComponent ? function (layoutProps) {
21908
22017
  return layoutComponent(_objectSpread2(_objectSpread2({}, layoutProps), {}, {
21909
22018
  classNames: {
@@ -21912,14 +22021,21 @@
21912
22021
  }
21913
22022
  }));
21914
22023
  } : undefined;
22024
+ var _itemComponent = React.useMemo(function () {
22025
+ return itemComponent ? function (itemProps) {
22026
+ return itemComponent(_objectSpread2(_objectSpread2({}, itemProps), {}, {
22027
+ sendEvent: sendEvent
22028
+ }));
22029
+ } : undefined;
22030
+ }, [itemComponent, sendEvent]);
21915
22031
  var uiProps = {
21916
22032
  items: items,
21917
- itemComponent: itemComponent,
22033
+ itemComponent: _itemComponent,
21918
22034
  headerComponent: headerComponent,
21919
22035
  emptyComponent: emptyComponent,
21920
22036
  layout: layout,
21921
22037
  status: status,
21922
- sendEvent: function sendEvent() {}
22038
+ sendEvent: sendEvent
21923
22039
  };
21924
22040
  return /*#__PURE__*/React__default.createElement(FrequentlyBoughtTogetherUiComponent, _extends$1({}, props, uiProps));
21925
22041
  }
@@ -23108,7 +23224,8 @@
23108
23224
  }, {
23109
23225
  $$widgetType: 'ais.relatedProducts'
23110
23226
  }),
23111
- items = _useRelatedProducts.items;
23227
+ items = _useRelatedProducts.items,
23228
+ sendEvent = _useRelatedProducts.sendEvent;
23112
23229
  var layout = layoutComponent ? function (layoutProps) {
23113
23230
  return layoutComponent(_objectSpread2(_objectSpread2({}, layoutProps), {}, {
23114
23231
  classNames: {
@@ -23117,14 +23234,21 @@
23117
23234
  }
23118
23235
  }));
23119
23236
  } : undefined;
23237
+ var _itemComponent = React.useMemo(function () {
23238
+ return itemComponent ? function (itemProps) {
23239
+ return itemComponent(_objectSpread2(_objectSpread2({}, itemProps), {}, {
23240
+ sendEvent: sendEvent
23241
+ }));
23242
+ } : undefined;
23243
+ }, [itemComponent, sendEvent]);
23120
23244
  var uiProps = {
23121
23245
  items: items,
23122
- itemComponent: itemComponent,
23246
+ itemComponent: _itemComponent,
23123
23247
  headerComponent: headerComponent,
23124
23248
  emptyComponent: emptyComponent,
23125
23249
  layout: layout,
23126
23250
  status: status,
23127
- sendEvent: function sendEvent() {}
23251
+ sendEvent: sendEvent
23128
23252
  };
23129
23253
  return /*#__PURE__*/React__default.createElement(RelatedProductsUiComponent, _extends$1({}, props, uiProps));
23130
23254
  }
@@ -23446,7 +23570,8 @@
23446
23570
  }), {
23447
23571
  $$widgetType: 'ais.trendingItems'
23448
23572
  }),
23449
- items = _useTrendingItems.items;
23573
+ items = _useTrendingItems.items,
23574
+ sendEvent = _useTrendingItems.sendEvent;
23450
23575
  var layout = layoutComponent ? function (layoutProps) {
23451
23576
  return layoutComponent(_objectSpread2(_objectSpread2({}, layoutProps), {}, {
23452
23577
  classNames: {
@@ -23455,14 +23580,21 @@
23455
23580
  }
23456
23581
  }));
23457
23582
  } : undefined;
23583
+ var _itemComponent = React.useMemo(function () {
23584
+ return itemComponent ? function (itemProps) {
23585
+ return itemComponent(_objectSpread2(_objectSpread2({}, itemProps), {}, {
23586
+ sendEvent: sendEvent
23587
+ }));
23588
+ } : undefined;
23589
+ }, [itemComponent, sendEvent]);
23458
23590
  var uiProps = {
23459
23591
  items: items,
23460
- itemComponent: itemComponent,
23592
+ itemComponent: _itemComponent,
23461
23593
  headerComponent: headerComponent,
23462
23594
  emptyComponent: emptyComponent,
23463
23595
  layout: layout,
23464
23596
  status: status,
23465
- sendEvent: function sendEvent() {}
23597
+ sendEvent: sendEvent
23466
23598
  };
23467
23599
  return /*#__PURE__*/React__default.createElement(TrendingItemsUiComponent, _extends$1({}, props, uiProps));
23468
23600
  }
@@ -23498,7 +23630,8 @@
23498
23630
  }, {
23499
23631
  $$widgetType: 'ais.lookingSimilar'
23500
23632
  }),
23501
- items = _useLookingSimilar.items;
23633
+ items = _useLookingSimilar.items,
23634
+ sendEvent = _useLookingSimilar.sendEvent;
23502
23635
  var layout = layoutComponent ? function (layoutProps) {
23503
23636
  return layoutComponent(_objectSpread2(_objectSpread2({}, layoutProps), {}, {
23504
23637
  classNames: {
@@ -23507,14 +23640,21 @@
23507
23640
  }
23508
23641
  }));
23509
23642
  } : undefined;
23643
+ var _itemComponent = React.useMemo(function () {
23644
+ return itemComponent ? function (itemProps) {
23645
+ return itemComponent(_objectSpread2(_objectSpread2({}, itemProps), {}, {
23646
+ sendEvent: sendEvent
23647
+ }));
23648
+ } : undefined;
23649
+ }, [itemComponent, sendEvent]);
23510
23650
  var uiProps = {
23511
23651
  items: items,
23512
- itemComponent: itemComponent,
23652
+ itemComponent: _itemComponent,
23513
23653
  headerComponent: headerComponent,
23514
23654
  emptyComponent: emptyComponent,
23515
23655
  layout: layout,
23516
23656
  status: status,
23517
- sendEvent: function sendEvent() {}
23657
+ sendEvent: sendEvent
23518
23658
  };
23519
23659
  return /*#__PURE__*/React__default.createElement(LookingSimilarUiComponent, _extends$1({}, props, uiProps));
23520
23660
  }