instantsearch.js 4.76.0 → 4.77.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/cjs/connectors/frequently-bought-together/connectFrequentlyBoughtTogether.js +20 -4
  2. package/cjs/connectors/looking-similar/connectLookingSimilar.js +23 -6
  3. package/cjs/connectors/related-products/connectRelatedProducts.js +23 -6
  4. package/cjs/connectors/trending-items/connectTrendingItems.js +23 -6
  5. package/cjs/lib/version.js +1 -1
  6. package/cjs/templates/carousel/carousel.js +4 -1
  7. package/cjs/widgets/frequently-bought-together/frequently-bought-together.js +10 -5
  8. package/cjs/widgets/looking-similar/looking-similar.js +9 -4
  9. package/cjs/widgets/related-products/related-products.js +10 -5
  10. package/cjs/widgets/trending-items/trending-items.js +10 -5
  11. package/dist/instantsearch.development.d.ts +35 -9
  12. package/dist/instantsearch.development.js +149 -48
  13. package/dist/instantsearch.development.js.map +1 -1
  14. package/dist/instantsearch.production.d.ts +35 -9
  15. package/dist/instantsearch.production.min.d.ts +35 -9
  16. package/dist/instantsearch.production.min.js +2 -2
  17. package/dist/instantsearch.production.min.js.map +1 -1
  18. package/es/connectors/frequently-bought-together/connectFrequentlyBoughtTogether.d.ts +7 -1
  19. package/es/connectors/frequently-bought-together/connectFrequentlyBoughtTogether.js +21 -5
  20. package/es/connectors/looking-similar/connectLookingSimilar.d.ts +7 -1
  21. package/es/connectors/looking-similar/connectLookingSimilar.js +24 -7
  22. package/es/connectors/related-products/connectRelatedProducts.d.ts +7 -1
  23. package/es/connectors/related-products/connectRelatedProducts.js +24 -7
  24. package/es/connectors/trending-items/connectTrendingItems.d.ts +7 -1
  25. package/es/connectors/trending-items/connectTrendingItems.js +24 -7
  26. package/es/lib/version.d.ts +1 -1
  27. package/es/lib/version.js +1 -1
  28. package/es/templates/carousel/carousel.d.ts +3 -1
  29. package/es/templates/carousel/carousel.js +4 -1
  30. package/es/widgets/frequently-bought-together/frequently-bought-together.d.ts +2 -1
  31. package/es/widgets/frequently-bought-together/frequently-bought-together.js +10 -5
  32. package/es/widgets/looking-similar/looking-similar.d.ts +2 -1
  33. package/es/widgets/looking-similar/looking-similar.js +9 -4
  34. package/es/widgets/related-products/related-products.d.ts +2 -1
  35. package/es/widgets/related-products/related-products.js +10 -5
  36. package/es/widgets/trending-items/trending-items.d.ts +2 -1
  37. package/es/widgets/trending-items/trending-items.js +10 -5
  38. package/package.json +6 -6
@@ -1,3 +1,4 @@
1
+ import type { SendEventForHits } from '../../lib/utils';
1
2
  import type { Connector, TransformItems, BaseHit, Renderer, Unmounter, UnknownWidgetParams, RecommendResponse, AlgoliaHit } from '../../types';
2
3
  import type { PlainSearchParameters } from 'algoliasearch-helper';
3
4
  export type FrequentlyBoughtTogetherRenderState<THit extends NonNullable<object> = BaseHit> = {
@@ -5,6 +6,10 @@ export type FrequentlyBoughtTogetherRenderState<THit extends NonNullable<object>
5
6
  * The matched recommendations from Algolia API.
6
7
  */
7
8
  items: Array<AlgoliaHit<THit>>;
9
+ /**
10
+ * Sends an event to the Insights middleware.
11
+ */
12
+ sendEvent: SendEventForHits;
8
13
  };
9
14
  export type FrequentlyBoughtTogetherConnectorParams<THit extends NonNullable<object> = BaseHit> = {
10
15
  /**
@@ -135,7 +140,7 @@ declare const _default: <TWidgetParams extends UnknownWidgetParams>(renderFn: Re
135
140
  analytics?: import("../../types").WidgetRenderState<Record<string, unknown>, import("../../widgets/analytics/analytics").AnalyticsWidgetParams> | undefined;
136
141
  places?: import("../../types").WidgetRenderState<Record<string, unknown>, import("../../widgets/places/places").PlacesWidgetParams> | undefined;
137
142
  };
138
- getWidgetRenderState({ results }: import("../../types").InitOptions | import("../../types").RenderOptions | ({
143
+ getWidgetRenderState({ results, helper, instantSearchInstance }: import("../../types").InitOptions | import("../../types").RenderOptions | ({
139
144
  instantSearchInstance: import("../../types").InstantSearch;
140
145
  parent: import("../../types").IndexWidget;
141
146
  templatesConfig: Record<string, unknown>;
@@ -154,6 +159,7 @@ declare const _default: <TWidgetParams extends UnknownWidgetParams>(renderFn: Re
154
159
  })): {
155
160
  items: AlgoliaHit<THit>[];
156
161
  widgetParams: TWidgetParams & FrequentlyBoughtTogetherConnectorParams<THit>;
162
+ sendEvent: SendEventForHits;
157
163
  };
158
164
  dispose({ recommendState }: import("../../types").DisposeOptions): import("algoliasearch-helper").RecommendParameters;
159
165
  getWidgetParameters(state: import("algoliasearch-helper").RecommendParameters): import("algoliasearch-helper").RecommendParameters;
@@ -4,7 +4,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
4
4
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
5
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
6
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
- import { createDocumentationMessageGenerator, checkRendering, noop, escapeHits, TAG_PLACEHOLDER } from "../../lib/utils/index.js";
7
+ import { createDocumentationMessageGenerator, checkRendering, noop, escapeHits, TAG_PLACEHOLDER, createSendEventForHits, addAbsolutePosition, addQueryID } from "../../lib/utils/index.js";
8
8
  var withUsage = createDocumentationMessageGenerator({
9
9
  name: 'frequently-bought-together',
10
10
  connector: true
@@ -27,6 +27,7 @@ export default (function connectFrequentlyBoughtTogether(renderFn) {
27
27
  if (!objectIDs || objectIDs.length === 0) {
28
28
  throw new Error(withUsage('The `objectIDs` option is required.'));
29
29
  }
30
+ var sendEvent;
30
31
  return {
31
32
  dependsOn: 'recommend',
32
33
  $$type: 'ais.frequentlyBoughtTogether',
@@ -45,22 +46,37 @@ export default (function connectFrequentlyBoughtTogether(renderFn) {
45
46
  return renderState;
46
47
  },
47
48
  getWidgetRenderState: function getWidgetRenderState(_ref2) {
48
- var results = _ref2.results;
49
+ var results = _ref2.results,
50
+ helper = _ref2.helper,
51
+ instantSearchInstance = _ref2.instantSearchInstance;
52
+ if (!sendEvent) {
53
+ sendEvent = createSendEventForHits({
54
+ instantSearchInstance: instantSearchInstance,
55
+ getIndex: function getIndex() {
56
+ return helper.getIndex();
57
+ },
58
+ widgetType: this.$$type
59
+ });
60
+ }
49
61
  if (results === null || results === undefined) {
50
62
  return {
51
63
  items: [],
52
- widgetParams: widgetParams
64
+ widgetParams: widgetParams,
65
+ sendEvent: sendEvent
53
66
  };
54
67
  }
55
68
  if (escapeHTML && results.hits.length > 0) {
56
69
  results.hits = escapeHits(results.hits);
57
70
  }
58
- var transformedItems = transformItems(results.hits, {
71
+ var itemsWithAbsolutePosition = addAbsolutePosition(results.hits, 0, 1);
72
+ var itemsWithAbsolutePositionAndQueryID = addQueryID(itemsWithAbsolutePosition, results.queryID);
73
+ var transformedItems = transformItems(itemsWithAbsolutePositionAndQueryID, {
59
74
  results: results
60
75
  });
61
76
  return {
62
77
  items: transformedItems,
63
- widgetParams: widgetParams
78
+ widgetParams: widgetParams,
79
+ sendEvent: sendEvent
64
80
  };
65
81
  },
66
82
  dispose: function dispose(_ref3) {
@@ -1,3 +1,4 @@
1
+ import type { SendEventForHits } from '../../lib/utils';
1
2
  import type { Connector, TransformItems, BaseHit, Renderer, Unmounter, UnknownWidgetParams, RecommendResponse, AlgoliaHit } from '../../types';
2
3
  import type { PlainSearchParameters } from 'algoliasearch-helper';
3
4
  export type LookingSimilarRenderState<THit extends NonNullable<object> = BaseHit> = {
@@ -5,6 +6,10 @@ export type LookingSimilarRenderState<THit extends NonNullable<object> = BaseHit
5
6
  * The matched recommendations from the Algolia API.
6
7
  */
7
8
  items: Array<AlgoliaHit<THit>>;
9
+ /**
10
+ * Sends an event to the Insights middleware.
11
+ */
12
+ sendEvent: SendEventForHits;
8
13
  };
9
14
  export type LookingSimilarConnectorParams<THit extends NonNullable<object> = BaseHit> = {
10
15
  /**
@@ -139,7 +144,7 @@ declare const _default: <TWidgetParams extends UnknownWidgetParams>(renderFn: Re
139
144
  analytics?: import("../../types").WidgetRenderState<Record<string, unknown>, import("../../widgets/analytics/analytics").AnalyticsWidgetParams> | undefined;
140
145
  places?: import("../../types").WidgetRenderState<Record<string, unknown>, import("../../widgets/places/places").PlacesWidgetParams> | undefined;
141
146
  };
142
- getWidgetRenderState({ results }: import("../../types").InitOptions | import("../../types").RenderOptions | ({
147
+ getWidgetRenderState({ results, helper, instantSearchInstance }: import("../../types").InitOptions | import("../../types").RenderOptions | ({
143
148
  instantSearchInstance: import("../../types").InstantSearch;
144
149
  parent: import("../../types").IndexWidget;
145
150
  templatesConfig: Record<string, unknown>;
@@ -158,6 +163,7 @@ declare const _default: <TWidgetParams extends UnknownWidgetParams>(renderFn: Re
158
163
  })): {
159
164
  items: AlgoliaHit<THit>[];
160
165
  widgetParams: TWidgetParams & LookingSimilarConnectorParams<THit>;
166
+ sendEvent: SendEventForHits;
161
167
  };
162
168
  dispose({ recommendState }: import("../../types").DisposeOptions): import("algoliasearch-helper").RecommendParameters;
163
169
  getWidgetParameters(state: import("algoliasearch-helper").RecommendParameters): import("algoliasearch-helper").RecommendParameters;
@@ -4,7 +4,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
4
4
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
5
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
6
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
- import { createDocumentationMessageGenerator, checkRendering, noop, escapeHits, TAG_PLACEHOLDER } from "../../lib/utils/index.js";
7
+ import { createDocumentationMessageGenerator, checkRendering, noop, escapeHits, TAG_PLACEHOLDER, createSendEventForHits, addAbsolutePosition, addQueryID } from "../../lib/utils/index.js";
8
8
  var withUsage = createDocumentationMessageGenerator({
9
9
  name: 'looking-similar',
10
10
  connector: true
@@ -28,6 +28,7 @@ export default (function connectLookingSimilar(renderFn) {
28
28
  if (!objectIDs || objectIDs.length === 0) {
29
29
  throw new Error(withUsage('The `objectIDs` option is required.'));
30
30
  }
31
+ var sendEvent;
31
32
  return {
32
33
  dependsOn: 'recommend',
33
34
  $$type: 'ais.lookingSimilar',
@@ -46,21 +47,37 @@ export default (function connectLookingSimilar(renderFn) {
46
47
  return renderState;
47
48
  },
48
49
  getWidgetRenderState: function getWidgetRenderState(_ref2) {
49
- var results = _ref2.results;
50
+ var results = _ref2.results,
51
+ helper = _ref2.helper,
52
+ instantSearchInstance = _ref2.instantSearchInstance;
53
+ if (!sendEvent) {
54
+ sendEvent = createSendEventForHits({
55
+ instantSearchInstance: instantSearchInstance,
56
+ getIndex: function getIndex() {
57
+ return helper.getIndex();
58
+ },
59
+ widgetType: this.$$type
60
+ });
61
+ }
50
62
  if (results === null || results === undefined) {
51
63
  return {
52
64
  items: [],
53
- widgetParams: widgetParams
65
+ widgetParams: widgetParams,
66
+ sendEvent: sendEvent
54
67
  };
55
68
  }
56
69
  if (escapeHTML && results.hits.length > 0) {
57
70
  results.hits = escapeHits(results.hits);
58
71
  }
72
+ var itemsWithAbsolutePosition = addAbsolutePosition(results.hits, 0, 1);
73
+ var itemsWithAbsolutePositionAndQueryID = addQueryID(itemsWithAbsolutePosition, results.queryID);
74
+ var transformedItems = transformItems(itemsWithAbsolutePositionAndQueryID, {
75
+ results: results
76
+ });
59
77
  return {
60
- items: transformItems(results.hits, {
61
- results: results
62
- }),
63
- widgetParams: widgetParams
78
+ items: transformedItems,
79
+ widgetParams: widgetParams,
80
+ sendEvent: sendEvent
64
81
  };
65
82
  },
66
83
  dispose: function dispose(_ref3) {
@@ -1,3 +1,4 @@
1
+ import type { SendEventForHits } from '../../lib/utils';
1
2
  import type { Connector, TransformItems, BaseHit, Renderer, Unmounter, UnknownWidgetParams, RecommendResponse, AlgoliaHit } from '../../types';
2
3
  import type { PlainSearchParameters } from 'algoliasearch-helper';
3
4
  export type RelatedProductsRenderState<THit extends NonNullable<object> = BaseHit> = {
@@ -5,6 +6,10 @@ export type RelatedProductsRenderState<THit extends NonNullable<object> = BaseHi
5
6
  * The matched recommendations from the Algolia API.
6
7
  */
7
8
  items: Array<AlgoliaHit<THit>>;
9
+ /**
10
+ * Sends an event to the Insights middleware.
11
+ */
12
+ sendEvent: SendEventForHits;
8
13
  };
9
14
  export type RelatedProductsConnectorParams<THit extends NonNullable<object> = BaseHit> = {
10
15
  /**
@@ -139,7 +144,7 @@ declare const _default: <TWidgetParams extends UnknownWidgetParams>(renderFn: Re
139
144
  analytics?: import("../../types").WidgetRenderState<Record<string, unknown>, import("../../widgets/analytics/analytics").AnalyticsWidgetParams> | undefined;
140
145
  places?: import("../../types").WidgetRenderState<Record<string, unknown>, import("../../widgets/places/places").PlacesWidgetParams> | undefined;
141
146
  };
142
- getWidgetRenderState({ results }: import("../../types").InitOptions | import("../../types").RenderOptions | ({
147
+ getWidgetRenderState({ results, helper, instantSearchInstance }: import("../../types").InitOptions | import("../../types").RenderOptions | ({
143
148
  instantSearchInstance: import("../../types").InstantSearch;
144
149
  parent: import("../../types").IndexWidget;
145
150
  templatesConfig: Record<string, unknown>;
@@ -158,6 +163,7 @@ declare const _default: <TWidgetParams extends UnknownWidgetParams>(renderFn: Re
158
163
  })): {
159
164
  items: AlgoliaHit<BaseHit>[] | AlgoliaHit<THit>[];
160
165
  widgetParams: TWidgetParams & RelatedProductsConnectorParams<THit>;
166
+ sendEvent: SendEventForHits;
161
167
  };
162
168
  dispose({ recommendState }: import("../../types").DisposeOptions): import("algoliasearch-helper").RecommendParameters;
163
169
  getWidgetParameters(state: import("algoliasearch-helper").RecommendParameters): import("algoliasearch-helper").RecommendParameters;
@@ -4,7 +4,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
4
4
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
5
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
6
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
- import { createDocumentationMessageGenerator, checkRendering, noop, escapeHits, TAG_PLACEHOLDER } from "../../lib/utils/index.js";
7
+ import { createDocumentationMessageGenerator, checkRendering, noop, escapeHits, TAG_PLACEHOLDER, createSendEventForHits, addAbsolutePosition, addQueryID } from "../../lib/utils/index.js";
8
8
  var withUsage = createDocumentationMessageGenerator({
9
9
  name: 'related-products',
10
10
  connector: true
@@ -28,6 +28,7 @@ export default (function connectRelatedProducts(renderFn) {
28
28
  if (!objectIDs || objectIDs.length === 0) {
29
29
  throw new Error(withUsage('The `objectIDs` option is required.'));
30
30
  }
31
+ var sendEvent;
31
32
  return {
32
33
  dependsOn: 'recommend',
33
34
  $$type: 'ais.relatedProducts',
@@ -46,21 +47,37 @@ export default (function connectRelatedProducts(renderFn) {
46
47
  return renderState;
47
48
  },
48
49
  getWidgetRenderState: function getWidgetRenderState(_ref2) {
49
- var results = _ref2.results;
50
+ var results = _ref2.results,
51
+ helper = _ref2.helper,
52
+ instantSearchInstance = _ref2.instantSearchInstance;
53
+ if (!sendEvent) {
54
+ sendEvent = createSendEventForHits({
55
+ instantSearchInstance: instantSearchInstance,
56
+ getIndex: function getIndex() {
57
+ return helper.getIndex();
58
+ },
59
+ widgetType: this.$$type
60
+ });
61
+ }
50
62
  if (results === null || results === undefined) {
51
63
  return {
52
64
  items: [],
53
- widgetParams: widgetParams
65
+ widgetParams: widgetParams,
66
+ sendEvent: sendEvent
54
67
  };
55
68
  }
56
69
  if (escapeHTML && results.hits.length > 0) {
57
70
  results.hits = escapeHits(results.hits);
58
71
  }
72
+ var itemsWithAbsolutePosition = addAbsolutePosition(results.hits, 0, 1);
73
+ var itemsWithAbsolutePositionAndQueryID = addQueryID(itemsWithAbsolutePosition, results.queryID);
74
+ var transformedItems = transformItems(itemsWithAbsolutePositionAndQueryID, {
75
+ results: results
76
+ });
59
77
  return {
60
- items: transformItems(results.hits, {
61
- results: results
62
- }),
63
- widgetParams: widgetParams
78
+ items: transformedItems,
79
+ widgetParams: widgetParams,
80
+ sendEvent: sendEvent
64
81
  };
65
82
  },
66
83
  dispose: function dispose(_ref3) {
@@ -1,3 +1,4 @@
1
+ import type { SendEventForHits } from '../../lib/utils';
1
2
  import type { Connector, TransformItems, BaseHit, Renderer, Unmounter, UnknownWidgetParams, RecommendResponse, AlgoliaHit } from '../../types';
2
3
  import type { PlainSearchParameters } from 'algoliasearch-helper';
3
4
  export type TrendingItemsRenderState<THit extends NonNullable<object> = BaseHit> = {
@@ -5,6 +6,10 @@ export type TrendingItemsRenderState<THit extends NonNullable<object> = BaseHit>
5
6
  * The matched recommendations from the Algolia API.
6
7
  */
7
8
  items: Array<AlgoliaHit<THit>>;
9
+ /**
10
+ * Sends an event to the Insights middleware.
11
+ */
12
+ sendEvent: SendEventForHits;
8
13
  };
9
14
  export type TrendingItemsConnectorParams<THit extends NonNullable<object> = BaseHit> = ({
10
15
  /**
@@ -147,7 +152,7 @@ declare const _default: <TWidgetParams extends UnknownWidgetParams>(renderFn: Re
147
152
  analytics?: import("../../types").WidgetRenderState<Record<string, unknown>, import("../../widgets/analytics/analytics").AnalyticsWidgetParams> | undefined;
148
153
  places?: import("../../types").WidgetRenderState<Record<string, unknown>, import("../../widgets/places/places").PlacesWidgetParams> | undefined;
149
154
  };
150
- getWidgetRenderState({ results }: import("../../types").InitOptions | import("../../types").RenderOptions | ({
155
+ getWidgetRenderState({ results, helper, instantSearchInstance }: import("../../types").InitOptions | import("../../types").RenderOptions | ({
151
156
  instantSearchInstance: import("../../types").InstantSearch;
152
157
  parent: import("../../types").IndexWidget;
153
158
  templatesConfig: Record<string, unknown>;
@@ -166,6 +171,7 @@ declare const _default: <TWidgetParams extends UnknownWidgetParams>(renderFn: Re
166
171
  })): {
167
172
  items: AlgoliaHit<THit>[];
168
173
  widgetParams: TWidgetParams & TrendingItemsConnectorParams<THit>;
174
+ sendEvent: SendEventForHits;
169
175
  };
170
176
  dispose({ recommendState }: import("../../types").DisposeOptions): import("algoliasearch-helper").RecommendParameters;
171
177
  getWidgetParameters(state: import("algoliasearch-helper").RecommendParameters): import("algoliasearch-helper").RecommendParameters;
@@ -4,7 +4,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
4
4
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
5
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
6
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
- import { createDocumentationMessageGenerator, checkRendering, noop, escapeHits, TAG_PLACEHOLDER, getObjectType } from "../../lib/utils/index.js";
7
+ import { createDocumentationMessageGenerator, checkRendering, noop, escapeHits, TAG_PLACEHOLDER, getObjectType, createSendEventForHits, addAbsolutePosition, addQueryID } from "../../lib/utils/index.js";
8
8
  var withUsage = createDocumentationMessageGenerator({
9
9
  name: 'trending-items',
10
10
  connector: true
@@ -29,6 +29,7 @@ export default (function connectTrendingItems(renderFn) {
29
29
  if (facetName && !facetValue || !facetName && facetValue) {
30
30
  throw new Error(withUsage("When you provide facetName (received type ".concat(getObjectType(facetName), "), you must also provide facetValue (received type ").concat(getObjectType(facetValue), ").")));
31
31
  }
32
+ var sendEvent;
32
33
  return {
33
34
  dependsOn: 'recommend',
34
35
  $$type: 'ais.trendingItems',
@@ -47,21 +48,37 @@ export default (function connectTrendingItems(renderFn) {
47
48
  return renderState;
48
49
  },
49
50
  getWidgetRenderState: function getWidgetRenderState(_ref2) {
50
- var results = _ref2.results;
51
+ var results = _ref2.results,
52
+ helper = _ref2.helper,
53
+ instantSearchInstance = _ref2.instantSearchInstance;
54
+ if (!sendEvent) {
55
+ sendEvent = createSendEventForHits({
56
+ instantSearchInstance: instantSearchInstance,
57
+ getIndex: function getIndex() {
58
+ return helper.getIndex();
59
+ },
60
+ widgetType: this.$$type
61
+ });
62
+ }
51
63
  if (results === null || results === undefined) {
52
64
  return {
53
65
  items: [],
54
- widgetParams: widgetParams
66
+ widgetParams: widgetParams,
67
+ sendEvent: sendEvent
55
68
  };
56
69
  }
57
70
  if (escapeHTML && results.hits.length > 0) {
58
71
  results.hits = escapeHits(results.hits);
59
72
  }
73
+ var itemsWithAbsolutePosition = addAbsolutePosition(results.hits, 0, 1);
74
+ var itemsWithAbsolutePositionAndQueryID = addQueryID(itemsWithAbsolutePosition, results.queryID);
75
+ var transformedItems = transformItems(itemsWithAbsolutePositionAndQueryID, {
76
+ results: results
77
+ });
60
78
  return {
61
- items: transformItems(results.hits, {
62
- results: results
63
- }),
64
- widgetParams: widgetParams
79
+ items: transformedItems,
80
+ widgetParams: widgetParams,
81
+ sendEvent: sendEvent
65
82
  };
66
83
  },
67
84
  dispose: function dispose(_ref3) {
@@ -1,2 +1,2 @@
1
- declare const _default: "4.76.0";
1
+ declare const _default: "4.77.0";
2
2
  export default _default;
package/es/lib/version.js CHANGED
@@ -1 +1 @@
1
- export default '4.76.0';
1
+ export default '4.77.0';
@@ -17,6 +17,8 @@ type CarouselTemplateProps<TObject extends Record<string, unknown>> = Pick<Carou
17
17
  item?: CarouselUiProps<TObject>['itemComponent'];
18
18
  };
19
19
  cssClasses?: Partial<CarouselUiProps<TObject>['classNames']>;
20
+ } & {
21
+ sendEvent?: CarouselUiProps<TObject>['sendEvent'];
20
22
  };
21
- export declare function carousel<TObject extends Record<string, unknown>>({ cssClasses, templates, }?: CreateCarouselTemplateProps<TObject>): ({ items, templates: widgetTemplates, cssClasses: widgetCssClasses, }: CarouselTemplateProps<TObject>) => h.JSX.Element;
23
+ export declare function carousel<TObject extends Record<string, unknown>>({ cssClasses, templates, }?: CreateCarouselTemplateProps<TObject>): ({ items, templates: widgetTemplates, cssClasses: widgetCssClasses, sendEvent, }: CarouselTemplateProps<TObject>) => h.JSX.Element;
22
24
  export {};
@@ -31,11 +31,14 @@ export function carousel() {
31
31
  var items = _ref2.items,
32
32
  widgetTemplates = _ref2.templates,
33
33
  _ref2$cssClasses = _ref2.cssClasses,
34
- widgetCssClasses = _ref2$cssClasses === void 0 ? {} : _ref2$cssClasses;
34
+ widgetCssClasses = _ref2$cssClasses === void 0 ? {} : _ref2$cssClasses,
35
+ _ref2$sendEvent = _ref2.sendEvent,
36
+ sendEvent = _ref2$sendEvent === void 0 ? function () {} : _ref2$sendEvent;
35
37
  var previous = templates.previous,
36
38
  next = templates.next;
37
39
  return h(CarouselWithRefs, {
38
40
  items: items,
41
+ sendEvent: sendEvent,
39
42
  itemComponent: widgetTemplates.item,
40
43
  previousIconComponent: previous ? function () {
41
44
  return previous({
@@ -140,7 +140,7 @@ declare const _default: <THit extends NonNullable<object> = BaseHit>(widgetParam
140
140
  analytics?: import("../../types").WidgetRenderState<Record<string, unknown>, import("../analytics/analytics").AnalyticsWidgetParams> | undefined;
141
141
  places?: import("../../types").WidgetRenderState<Record<string, unknown>, import("../places/places").PlacesWidgetParams> | undefined;
142
142
  };
143
- getWidgetRenderState({ results }: import("../../types").InitOptions | import("../../types").RenderOptions | ({
143
+ getWidgetRenderState({ results, helper, instantSearchInstance }: import("../../types").InitOptions | import("../../types").RenderOptions | ({
144
144
  instantSearchInstance: import("../../types").InstantSearch;
145
145
  parent: import("../index").IndexWidget;
146
146
  templatesConfig: Record<string, unknown>;
@@ -229,6 +229,7 @@ declare const _default: <THit extends NonNullable<object> = BaseHit>(widgetParam
229
229
  })): {
230
230
  items: AlgoliaHit<THit>[];
231
231
  widgetParams: Partial<FrequentlyBoughtTogetherWidgetParams<BaseHit>> & FrequentlyBoughtTogetherConnectorParams<THit>;
232
+ sendEvent: import("../../lib/utils").SendEventForHits;
232
233
  };
233
234
  dispose({ recommendState }: import("../../types").DisposeOptions): import("algoliasearch-helper").RecommendParameters;
234
235
  getWidgetParameters(state: import("algoliasearch-helper").RecommendParameters): import("algoliasearch-helper").RecommendParameters;
@@ -26,7 +26,8 @@ var renderer = function renderer(_ref) {
26
26
  return function (_ref2, isFirstRendering) {
27
27
  var items = _ref2.items,
28
28
  results = _ref2.results,
29
- instantSearchInstance = _ref2.instantSearchInstance;
29
+ instantSearchInstance = _ref2.instantSearchInstance,
30
+ sendEvent = _ref2.sendEvent;
30
31
  if (isFirstRendering) {
31
32
  renderState.templateProps = prepareTemplateProps({
32
33
  defaultTemplates: {},
@@ -50,7 +51,8 @@ var renderer = function renderer(_ref) {
50
51
  return h(TemplateComponent, _extends({}, renderState.templateProps, {
51
52
  templateKey: "item",
52
53
  rootTagName: "fragment",
53
- data: item
54
+ data: item,
55
+ sendEvent: sendEvent
54
56
  }));
55
57
  } : undefined;
56
58
  var emptyComponent = templates.empty ? function () {
@@ -65,6 +67,7 @@ var renderer = function renderer(_ref) {
65
67
  templateKey: "layout",
66
68
  rootTagName: "fragment",
67
69
  data: {
70
+ sendEvent: sendEvent,
68
71
  items: data.items,
69
72
  templates: {
70
73
  item: templates.item ? function (_ref4) {
@@ -72,7 +75,8 @@ var renderer = function renderer(_ref) {
72
75
  return h(TemplateComponent, _extends({}, renderState.templateProps, {
73
76
  templateKey: "item",
74
77
  rootTagName: "fragment",
75
- data: item
78
+ data: item,
79
+ sendEvent: sendEvent
76
80
  }));
77
81
  } : undefined
78
82
  },
@@ -80,14 +84,15 @@ var renderer = function renderer(_ref) {
80
84
  list: data.classNames.list,
81
85
  item: data.classNames.item
82
86
  }
83
- }
87
+ },
88
+ sendEvent: sendEvent
84
89
  }));
85
90
  } : undefined;
86
91
  render(h(FrequentlyBoughtTogether, {
87
92
  items: items,
88
93
  headerComponent: headerComponent,
89
94
  itemComponent: itemComponent,
90
- sendEvent: function sendEvent() {},
95
+ sendEvent: sendEvent,
91
96
  classNames: cssClasses,
92
97
  emptyComponent: emptyComponent,
93
98
  layout: layoutComponent,
@@ -140,7 +140,7 @@ declare const _default: <THit extends NonNullable<object> = BaseHit>(widgetParam
140
140
  analytics?: import("../../types").WidgetRenderState<Record<string, unknown>, import("../analytics/analytics").AnalyticsWidgetParams> | undefined;
141
141
  places?: import("../../types").WidgetRenderState<Record<string, unknown>, import("../places/places").PlacesWidgetParams> | undefined;
142
142
  };
143
- getWidgetRenderState({ results }: import("../../types").InitOptions | import("../../types").RenderOptions | ({
143
+ getWidgetRenderState({ results, helper, instantSearchInstance }: import("../../types").InitOptions | import("../../types").RenderOptions | ({
144
144
  instantSearchInstance: import("../../types").InstantSearch;
145
145
  parent: import("../index").IndexWidget;
146
146
  templatesConfig: Record<string, unknown>;
@@ -229,6 +229,7 @@ declare const _default: <THit extends NonNullable<object> = BaseHit>(widgetParam
229
229
  })): {
230
230
  items: AlgoliaHit<THit>[];
231
231
  widgetParams: Partial<LookingSimilarWidgetParams<BaseHit>> & LookingSimilarConnectorParams<THit>;
232
+ sendEvent: import("../../lib/utils").SendEventForHits;
232
233
  };
233
234
  dispose({ recommendState }: import("../../types").DisposeOptions): import("algoliasearch-helper").RecommendParameters;
234
235
  getWidgetParameters(state: import("algoliasearch-helper").RecommendParameters): import("algoliasearch-helper").RecommendParameters;
@@ -26,7 +26,8 @@ function createRenderer(_ref) {
26
26
  return function (_ref2, isFirstRendering) {
27
27
  var items = _ref2.items,
28
28
  results = _ref2.results,
29
- instantSearchInstance = _ref2.instantSearchInstance;
29
+ instantSearchInstance = _ref2.instantSearchInstance,
30
+ sendEvent = _ref2.sendEvent;
30
31
  if (isFirstRendering) {
31
32
  renderState.templateProps = prepareTemplateProps({
32
33
  defaultTemplates: {},
@@ -50,7 +51,8 @@ function createRenderer(_ref) {
50
51
  return h(TemplateComponent, _extends({}, renderState.templateProps, {
51
52
  templateKey: "item",
52
53
  rootTagName: "fragment",
53
- data: item
54
+ data: item,
55
+ sendEvent: sendEvent
54
56
  }));
55
57
  } : undefined;
56
58
  var emptyComponent = templates.empty ? function () {
@@ -65,6 +67,7 @@ function createRenderer(_ref) {
65
67
  templateKey: "layout",
66
68
  rootTagName: "fragment",
67
69
  data: {
70
+ sendEvent: sendEvent,
68
71
  items: data.items,
69
72
  templates: {
70
73
  item: templates.item ? function (_ref4) {
@@ -72,7 +75,8 @@ function createRenderer(_ref) {
72
75
  return h(TemplateComponent, _extends({}, renderState.templateProps, {
73
76
  templateKey: "item",
74
77
  rootTagName: "fragment",
75
- data: item
78
+ data: item,
79
+ sendEvent: sendEvent
76
80
  }));
77
81
  } : undefined
78
82
  },
@@ -80,7 +84,8 @@ function createRenderer(_ref) {
80
84
  list: data.classNames.list,
81
85
  item: data.classNames.item
82
86
  }
83
- }
87
+ },
88
+ sendEvent: sendEvent
84
89
  }));
85
90
  } : undefined;
86
91
  render(h(LookingSimilar, {
@@ -140,7 +140,7 @@ declare const _default: <THit extends NonNullable<object> = BaseHit>(widgetParam
140
140
  analytics?: import("../../types").WidgetRenderState<Record<string, unknown>, import("../analytics/analytics").AnalyticsWidgetParams> | undefined;
141
141
  places?: import("../../types").WidgetRenderState<Record<string, unknown>, import("../places/places").PlacesWidgetParams> | undefined;
142
142
  };
143
- getWidgetRenderState({ results }: import("../../types").InitOptions | import("../../types").RenderOptions | ({
143
+ getWidgetRenderState({ results, helper, instantSearchInstance }: import("../../types").InitOptions | import("../../types").RenderOptions | ({
144
144
  instantSearchInstance: import("../../types").InstantSearch;
145
145
  parent: import("../index").IndexWidget;
146
146
  templatesConfig: Record<string, unknown>;
@@ -229,6 +229,7 @@ declare const _default: <THit extends NonNullable<object> = BaseHit>(widgetParam
229
229
  })): {
230
230
  items: AlgoliaHit<BaseHit>[] | AlgoliaHit<THit>[];
231
231
  widgetParams: Partial<RelatedProductsWidgetParams<BaseHit>> & RelatedProductsConnectorParams<THit>;
232
+ sendEvent: import("../../lib/utils").SendEventForHits;
232
233
  };
233
234
  dispose({ recommendState }: import("../../types").DisposeOptions): import("algoliasearch-helper").RecommendParameters;
234
235
  getWidgetParameters(state: import("algoliasearch-helper").RecommendParameters): import("algoliasearch-helper").RecommendParameters;
@@ -26,7 +26,8 @@ function createRenderer(_ref) {
26
26
  return function renderer(_ref2, isFirstRendering) {
27
27
  var items = _ref2.items,
28
28
  results = _ref2.results,
29
- instantSearchInstance = _ref2.instantSearchInstance;
29
+ instantSearchInstance = _ref2.instantSearchInstance,
30
+ sendEvent = _ref2.sendEvent;
30
31
  if (isFirstRendering) {
31
32
  renderState.templateProps = prepareTemplateProps({
32
33
  defaultTemplates: {},
@@ -50,7 +51,8 @@ function createRenderer(_ref) {
50
51
  return h(TemplateComponent, _extends({}, renderState.templateProps, {
51
52
  templateKey: "item",
52
53
  rootTagName: "fragment",
53
- data: item
54
+ data: item,
55
+ sendEvent: sendEvent
54
56
  }));
55
57
  } : undefined;
56
58
  var emptyComponent = templates.empty ? function () {
@@ -65,6 +67,7 @@ function createRenderer(_ref) {
65
67
  templateKey: "layout",
66
68
  rootTagName: "fragment",
67
69
  data: {
70
+ sendEvent: sendEvent,
68
71
  items: data.items,
69
72
  templates: {
70
73
  item: templates.item ? function (_ref4) {
@@ -72,7 +75,8 @@ function createRenderer(_ref) {
72
75
  return h(TemplateComponent, _extends({}, renderState.templateProps, {
73
76
  templateKey: "item",
74
77
  rootTagName: "fragment",
75
- data: item
78
+ data: item,
79
+ sendEvent: sendEvent
76
80
  }));
77
81
  } : undefined
78
82
  },
@@ -80,12 +84,13 @@ function createRenderer(_ref) {
80
84
  list: data.classNames.list,
81
85
  item: data.classNames.item
82
86
  }
83
- }
87
+ },
88
+ sendEvent: sendEvent
84
89
  }));
85
90
  } : undefined;
86
91
  render(h(RelatedProducts, {
87
92
  items: items,
88
- sendEvent: function sendEvent() {},
93
+ sendEvent: sendEvent,
89
94
  classNames: cssClasses,
90
95
  headerComponent: headerComponent,
91
96
  itemComponent: itemComponent,
@@ -140,7 +140,7 @@ declare const _default: <THit extends NonNullable<object> = BaseHit>(widgetParam
140
140
  analytics?: import("../../types").WidgetRenderState<Record<string, unknown>, import("../analytics/analytics").AnalyticsWidgetParams> | undefined;
141
141
  places?: import("../../types").WidgetRenderState<Record<string, unknown>, import("../places/places").PlacesWidgetParams> | undefined;
142
142
  };
143
- getWidgetRenderState({ results }: import("../../types").InitOptions | import("../../types").RenderOptions | ({
143
+ getWidgetRenderState({ results, helper, instantSearchInstance }: import("../../types").InitOptions | import("../../types").RenderOptions | ({
144
144
  instantSearchInstance: import("../../types").InstantSearch;
145
145
  parent: import("../index").IndexWidget;
146
146
  templatesConfig: Record<string, unknown>;
@@ -229,6 +229,7 @@ declare const _default: <THit extends NonNullable<object> = BaseHit>(widgetParam
229
229
  })): {
230
230
  items: AlgoliaHit<THit>[];
231
231
  widgetParams: Partial<TrendingItemsWidgetParams<BaseHit>> & TrendingItemsConnectorParams<THit>;
232
+ sendEvent: import("../../lib/utils").SendEventForHits;
232
233
  };
233
234
  dispose({ recommendState }: import("../../types").DisposeOptions): import("algoliasearch-helper").RecommendParameters;
234
235
  getWidgetParameters(state: import("algoliasearch-helper").RecommendParameters): import("algoliasearch-helper").RecommendParameters;