instantsearch.js 4.73.3 → 4.74.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 (57) hide show
  1. package/cjs/connectors/answers/connectAnswers.js +3 -2
  2. package/cjs/connectors/configure-related-items/connectConfigureRelatedItems.js +2 -0
  3. package/cjs/connectors/index.js +7 -10
  4. package/cjs/connectors/voice-search/connectVoiceSearch.js +2 -1
  5. package/cjs/index.js +2 -0
  6. package/cjs/lib/InstantSearch.js +2 -2
  7. package/cjs/lib/version.js +1 -1
  8. package/cjs/templates/carousel/carousel.js +62 -0
  9. package/cjs/templates/index.js +16 -0
  10. package/cjs/widgets/configure-related-items/configure-related-items.js +2 -0
  11. package/cjs/widgets/frequently-bought-together/frequently-bought-together.js +36 -12
  12. package/cjs/widgets/index.js +7 -10
  13. package/cjs/widgets/looking-similar/looking-similar.js +37 -13
  14. package/cjs/widgets/related-products/related-products.js +37 -13
  15. package/cjs/widgets/trending-items/trending-items.js +38 -14
  16. package/dist/instantsearch.development.d.ts +119 -51
  17. package/dist/instantsearch.development.js +20865 -20542
  18. package/dist/instantsearch.development.js.map +1 -1
  19. package/dist/instantsearch.production.d.ts +119 -51
  20. package/dist/instantsearch.production.min.d.ts +119 -51
  21. package/dist/instantsearch.production.min.js +2 -2
  22. package/dist/instantsearch.production.min.js.map +1 -1
  23. package/es/connectors/answers/connectAnswers.js +3 -2
  24. package/es/connectors/configure-related-items/connectConfigureRelatedItems.d.ts +1 -0
  25. package/es/connectors/configure-related-items/connectConfigureRelatedItems.js +2 -0
  26. package/es/connectors/frequently-bought-together/connectFrequentlyBoughtTogether.d.ts +7 -7
  27. package/es/connectors/index.d.ts +2 -1
  28. package/es/connectors/index.js +4 -1
  29. package/es/connectors/looking-similar/connectLookingSimilar.d.ts +7 -7
  30. package/es/connectors/related-products/connectRelatedProducts.d.ts +7 -7
  31. package/es/connectors/trending-items/connectTrendingItems.d.ts +7 -7
  32. package/es/connectors/voice-search/connectVoiceSearch.js +2 -1
  33. package/es/index.js +5 -0
  34. package/es/lib/InstantSearch.js +1 -1
  35. package/es/lib/utils/render-args.d.ts +2 -2
  36. package/es/lib/version.d.ts +1 -1
  37. package/es/lib/version.js +1 -1
  38. package/es/templates/carousel/carousel.d.ts +22 -0
  39. package/es/templates/carousel/carousel.js +56 -0
  40. package/es/templates/index.d.ts +1 -0
  41. package/es/templates/index.js +1 -0
  42. package/es/types/widget.d.ts +3 -2
  43. package/es/widgets/configure-related-items/configure-related-items.d.ts +1 -0
  44. package/es/widgets/configure-related-items/configure-related-items.js +2 -0
  45. package/es/widgets/frequently-bought-together/frequently-bought-together.d.ts +15 -7
  46. package/es/widgets/frequently-bought-together/frequently-bought-together.js +36 -12
  47. package/es/widgets/geo-search/geo-search.d.ts +1 -1
  48. package/es/widgets/index/index.d.ts +3 -3
  49. package/es/widgets/index.d.ts +2 -1
  50. package/es/widgets/index.js +4 -1
  51. package/es/widgets/looking-similar/looking-similar.d.ts +15 -7
  52. package/es/widgets/looking-similar/looking-similar.js +37 -13
  53. package/es/widgets/related-products/related-products.d.ts +15 -7
  54. package/es/widgets/related-products/related-products.js +37 -13
  55. package/es/widgets/trending-items/trending-items.d.ts +15 -7
  56. package/es/widgets/trending-items/trending-items.js +38 -14
  57. package/package.json +8 -8
@@ -47,14 +47,15 @@ var connectAnswers = function connectAnswers(renderFn) {
47
47
  var lastHits = [];
48
48
  var isLoading = false;
49
49
  var debouncedRender = (0, _utils.debounce)(renderFn, renderDebounceTime);
50
-
51
- // this does not directly use DebouncedFunction<findAnswers>, since then the generic will disappear
52
50
  var debouncedRefine;
53
51
  return {
54
52
  $$type: 'ais.answers',
55
53
  init: function init(initOptions) {
56
54
  var state = initOptions.state,
57
55
  instantSearchInstance = initOptions.instantSearchInstance;
56
+ if (typeof instantSearchInstance.client.initIndex !== 'function') {
57
+ throw new Error(withUsage('`algoliasearch` <5 required.'));
58
+ }
58
59
  var answersIndex = instantSearchInstance.client.initIndex(state.index);
59
60
  if (!hasFindAnswersMethod(answersIndex)) {
60
61
  throw new Error(withUsage('`algoliasearch` >= 4.8.0 required.'));
@@ -81,5 +81,7 @@ var connectConfigureRelatedItems = function connectConfigureRelatedItems(renderF
81
81
  });
82
82
  };
83
83
  };
84
+
85
+ /** @deprecated use connectRelatedItems instead */
84
86
  var _default = connectConfigureRelatedItems;
85
87
  exports.default = _default;
@@ -3,14 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.EXPERIMENTAL_connectAnswers = void 0;
7
- Object.defineProperty(exports, "EXPERIMENTAL_connectConfigureRelatedItems", {
8
- enumerable: true,
9
- get: function get() {
10
- return _connectConfigureRelatedItems.default;
11
- }
12
- });
13
- exports.EXPERIMENTAL_connectDynamicWidgets = void 0;
6
+ exports.EXPERIMENTAL_connectDynamicWidgets = exports.EXPERIMENTAL_connectConfigureRelatedItems = exports.EXPERIMENTAL_connectAnswers = void 0;
14
7
  Object.defineProperty(exports, "connectAutocomplete", {
15
8
  enumerable: true,
16
9
  get: function get() {
@@ -199,6 +192,7 @@ Object.defineProperty(exports, "connectVoiceSearch", {
199
192
  });
200
193
  var _utils = require("../lib/utils");
201
194
  var _connectAnswers = _interopRequireDefault(require("./answers/connectAnswers"));
195
+ var _connectConfigureRelatedItems = _interopRequireDefault(require("./configure-related-items/connectConfigureRelatedItems"));
202
196
  var _connectDynamicWidgets = _interopRequireDefault(require("./dynamic-widgets/connectDynamicWidgets"));
203
197
  var _connectClearRefinements = _interopRequireDefault(require("./clear-refinements/connectClearRefinements"));
204
198
  var _connectCurrentRefinements = _interopRequireDefault(require("./current-refinements/connectCurrentRefinements"));
@@ -224,7 +218,6 @@ var _connectBreadcrumb = _interopRequireDefault(require("./breadcrumb/connectBre
224
218
  var _connectGeoSearch = _interopRequireDefault(require("./geo-search/connectGeoSearch"));
225
219
  var _connectPoweredBy = _interopRequireDefault(require("./powered-by/connectPoweredBy"));
226
220
  var _connectConfigure = _interopRequireDefault(require("./configure/connectConfigure"));
227
- var _connectConfigureRelatedItems = _interopRequireDefault(require("./configure-related-items/connectConfigureRelatedItems"));
228
221
  var _connectAutocomplete = _interopRequireDefault(require("./autocomplete/connectAutocomplete"));
229
222
  var _connectQueryRules = _interopRequireDefault(require("./query-rules/connectQueryRules"));
230
223
  var _connectVoiceSearch = _interopRequireDefault(require("./voice-search/connectVoiceSearch"));
@@ -235,7 +228,11 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
235
228
  /** @deprecated answers is no longer supported */
236
229
  var EXPERIMENTAL_connectAnswers = (0, _utils.deprecate)(_connectAnswers.default, 'answers is no longer supported');
237
230
 
238
- /** @deprecated use connectDynamicWidgets */
231
+ /** @deprecated use connectRelatedItems instead */
239
232
  exports.EXPERIMENTAL_connectAnswers = EXPERIMENTAL_connectAnswers;
233
+ var EXPERIMENTAL_connectConfigureRelatedItems = (0, _utils.deprecate)(_connectConfigureRelatedItems.default, 'EXPERIMENTAL_connectConfigureRelatedItems is deprecated and will be removed in a next minor version of InstantSearch. Please use connectRelatedItems instead.');
234
+
235
+ /** @deprecated use connectDynamicWidgets */
236
+ exports.EXPERIMENTAL_connectConfigureRelatedItems = EXPERIMENTAL_connectConfigureRelatedItems;
240
237
  var EXPERIMENTAL_connectDynamicWidgets = (0, _utils.deprecate)(_connectDynamicWidgets.default, 'use connectDynamicWidgets');
241
238
  exports.EXPERIMENTAL_connectDynamicWidgets = EXPERIMENTAL_connectDynamicWidgets;
@@ -54,12 +54,13 @@ var connectVoiceSearch = function connectVoiceSearch(renderFn) {
54
54
  this._refine = function (query) {
55
55
  if (query !== helper.state.query) {
56
56
  var queryLanguages = language ? [language.split('-')[0]] : undefined;
57
+ // @ts-ignore queryLanguages is allowed to be a string, not just an array
57
58
  helper.setQueryParameter('queryLanguages', queryLanguages);
58
59
  if (typeof additionalQueryParameters === 'function') {
59
60
  helper.setState(helper.state.setQueryParameters(_objectSpread({
60
61
  ignorePlurals: true,
61
62
  removeStopWords: true,
62
- // @ts-ignore (optionalWords only allows array in v3, while string is also valid)
63
+ // @ts-ignore optionalWords is allowed to be a string too
63
64
  optionalWords: query
64
65
  }, additionalQueryParameters({
65
66
  query: query
package/cjs/index.js CHANGED
@@ -13,6 +13,7 @@ var routers = _interopRequireWildcard(require("./lib/routers/index"));
13
13
  var stateMappings = _interopRequireWildcard(require("./lib/stateMappings/index"));
14
14
  var _version = _interopRequireDefault(require("./lib/version"));
15
15
  var middlewares = _interopRequireWildcard(require("./middlewares/index"));
16
+ var templates = _interopRequireWildcard(require("./templates/index"));
16
17
  var widgets = _interopRequireWildcard(require("./widgets/index"));
17
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
19
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -41,6 +42,7 @@ instantsearch.widgets = widgets;
41
42
  instantsearch.middlewares = middlewares;
42
43
  instantsearch.routers = routers;
43
44
  instantsearch.stateMappings = stateMappings;
45
+ instantsearch.templates = templates;
44
46
  instantsearch.createInfiniteHitsSessionStorageCache = _index3.createInfiniteHitsSessionStorageCache;
45
47
  instantsearch.highlight = helpers.highlight;
46
48
  instantsearch.reverseHighlight = helpers.reverseHighlight;
@@ -9,7 +9,7 @@ var _algoliasearchHelper = _interopRequireDefault(require("algoliasearch-helper"
9
9
  var _createInsightsMiddleware = require("../middlewares/createInsightsMiddleware");
10
10
  var _createMetadataMiddleware = require("../middlewares/createMetadataMiddleware");
11
11
  var _createRouterMiddleware = require("../middlewares/createRouterMiddleware");
12
- var _widgets = require("../widgets");
12
+ var _index = _interopRequireDefault(require("../widgets/index/index"));
13
13
  var _createHelpers = _interopRequireDefault(require("./createHelpers"));
14
14
  var _utils = require("./utils");
15
15
  var _version = _interopRequireDefault(require("./version"));
@@ -175,7 +175,7 @@ var InstantSearch = /*#__PURE__*/function (_EventEmitter) {
175
175
  _this.indexName = indexName;
176
176
  _this.helper = null;
177
177
  _this.mainHelper = null;
178
- _this.mainIndex = (0, _widgets.index)({
178
+ _this.mainIndex = (0, _index.default)({
179
179
  indexName: indexName
180
180
  });
181
181
  _this.onStateChange = onStateChange;
@@ -4,5 +4,5 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _default = '4.73.3';
7
+ var _default = '4.74.0';
8
8
  exports.default = _default;
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.carousel = carousel;
8
+ var _preact = require("htm/preact");
9
+ var _instantsearchUiComponents = require("instantsearch-ui-components");
10
+ var _preact2 = require("preact");
11
+ var _hooks = require("preact/hooks");
12
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
13
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
14
+ 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; }
15
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
16
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
17
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
18
+ var Carousel = (0, _instantsearchUiComponents.createCarouselComponent)({
19
+ createElement: _preact2.h,
20
+ Fragment: _preact2.Fragment
21
+ });
22
+ function CarouselWithRefs(props) {
23
+ var carouselRefs = {
24
+ listRef: (0, _hooks.useRef)(null),
25
+ nextButtonRef: (0, _hooks.useRef)(null),
26
+ previousButtonRef: (0, _hooks.useRef)(null),
27
+ carouselIdRef: (0, _hooks.useRef)((0, _instantsearchUiComponents.generateCarouselId)())
28
+ };
29
+ return (0, _preact2.h)(Carousel, _extends({}, carouselRefs, props));
30
+ }
31
+ function carousel() {
32
+ var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
33
+ cssClasses = _ref.cssClasses,
34
+ _ref$templates = _ref.templates,
35
+ templates = _ref$templates === void 0 ? {} : _ref$templates;
36
+ return function CarouselTemplate(_ref2) {
37
+ var items = _ref2.items,
38
+ widgetTemplates = _ref2.templates,
39
+ _ref2$cssClasses = _ref2.cssClasses,
40
+ widgetCssClasses = _ref2$cssClasses === void 0 ? {} : _ref2$cssClasses;
41
+ var previous = templates.previous,
42
+ next = templates.next;
43
+ return (0, _preact2.h)(CarouselWithRefs, {
44
+ items: items,
45
+ itemComponent: widgetTemplates.item,
46
+ previousIconComponent: previous ? function () {
47
+ return previous({
48
+ html: _preact.html
49
+ });
50
+ } : undefined,
51
+ nextIconComponent: next ? function () {
52
+ return next({
53
+ html: _preact.html
54
+ });
55
+ } : undefined,
56
+ classNames: _objectSpread(_objectSpread({}, cssClasses), {
57
+ list: (0, _instantsearchUiComponents.cx)(cssClasses === null || cssClasses === void 0 ? void 0 : cssClasses.list, widgetCssClasses === null || widgetCssClasses === void 0 ? void 0 : widgetCssClasses.list),
58
+ item: (0, _instantsearchUiComponents.cx)(cssClasses === null || cssClasses === void 0 ? void 0 : cssClasses.item, widgetCssClasses === null || widgetCssClasses === void 0 ? void 0 : widgetCssClasses.item)
59
+ })
60
+ });
61
+ };
62
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _carousel = require("./carousel/carousel");
7
+ Object.keys(_carousel).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _carousel[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function get() {
13
+ return _carousel[key];
14
+ }
15
+ });
16
+ });
@@ -19,5 +19,7 @@ var configureRelatedItems = function configureRelatedItems(widgetParams) {
19
19
  $$widgetType: 'ais.configureRelatedItems'
20
20
  });
21
21
  };
22
+
23
+ /** @deprecated use relatedItems instead */
22
24
  var _default = configureRelatedItems;
23
25
  exports.default = _default;
@@ -67,6 +67,29 @@ var renderer = function renderer(_ref) {
67
67
  data: results
68
68
  }));
69
69
  } : undefined;
70
+ var layoutComponent = templates.layout ? function (data) {
71
+ return (0, _preact.h)(_Template.default, _extends({}, renderState.templateProps, {
72
+ templateKey: "layout",
73
+ rootTagName: "fragment",
74
+ data: {
75
+ items: data.items,
76
+ templates: {
77
+ item: templates.item ? function (_ref4) {
78
+ var item = _ref4.item;
79
+ return (0, _preact.h)(_Template.default, _extends({}, renderState.templateProps, {
80
+ templateKey: "item",
81
+ rootTagName: "fragment",
82
+ data: item
83
+ }));
84
+ } : undefined
85
+ },
86
+ cssClasses: {
87
+ list: data.classNames.list,
88
+ item: data.classNames.item
89
+ }
90
+ }
91
+ }));
92
+ } : undefined;
70
93
  (0, _preact.render)((0, _preact.h)(FrequentlyBoughtTogether, {
71
94
  items: items,
72
95
  headerComponent: headerComponent,
@@ -74,23 +97,24 @@ var renderer = function renderer(_ref) {
74
97
  sendEvent: function sendEvent() {},
75
98
  classNames: cssClasses,
76
99
  emptyComponent: emptyComponent,
100
+ layout: layoutComponent,
77
101
  status: instantSearchInstance.status
78
102
  }), containerNode);
79
103
  };
80
104
  };
81
105
  var frequentlyBoughtTogether = function frequentlyBoughtTogether(widgetParams) {
82
- var _ref4 = widgetParams || {},
83
- container = _ref4.container,
84
- objectIDs = _ref4.objectIDs,
85
- limit = _ref4.limit,
86
- queryParameters = _ref4.queryParameters,
87
- threshold = _ref4.threshold,
88
- escapeHTML = _ref4.escapeHTML,
89
- transformItems = _ref4.transformItems,
90
- _ref4$templates = _ref4.templates,
91
- templates = _ref4$templates === void 0 ? {} : _ref4$templates,
92
- _ref4$cssClasses = _ref4.cssClasses,
93
- cssClasses = _ref4$cssClasses === void 0 ? {} : _ref4$cssClasses;
106
+ var _ref5 = widgetParams || {},
107
+ container = _ref5.container,
108
+ objectIDs = _ref5.objectIDs,
109
+ limit = _ref5.limit,
110
+ queryParameters = _ref5.queryParameters,
111
+ threshold = _ref5.threshold,
112
+ escapeHTML = _ref5.escapeHTML,
113
+ transformItems = _ref5.transformItems,
114
+ _ref5$templates = _ref5.templates,
115
+ templates = _ref5$templates === void 0 ? {} : _ref5$templates,
116
+ _ref5$cssClasses = _ref5.cssClasses,
117
+ cssClasses = _ref5$cssClasses === void 0 ? {} : _ref5$cssClasses;
94
118
  if (!container) {
95
119
  throw new Error(withUsage('The `container` option is required.'));
96
120
  }
@@ -3,14 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.EXPERIMENTAL_answers = void 0;
7
- Object.defineProperty(exports, "EXPERIMENTAL_configureRelatedItems", {
8
- enumerable: true,
9
- get: function get() {
10
- return _configureRelatedItems.default;
11
- }
12
- });
13
- exports.EXPERIMENTAL_dynamicWidgets = void 0;
6
+ exports.EXPERIMENTAL_dynamicWidgets = exports.EXPERIMENTAL_configureRelatedItems = exports.EXPERIMENTAL_answers = void 0;
14
7
  Object.defineProperty(exports, "analytics", {
15
8
  enumerable: true,
16
9
  get: function get() {
@@ -223,13 +216,13 @@ Object.defineProperty(exports, "voiceSearch", {
223
216
  });
224
217
  var _utils = require("../lib/utils");
225
218
  var _answers = _interopRequireDefault(require("./answers/answers"));
219
+ var _configureRelatedItems = _interopRequireDefault(require("./configure-related-items/configure-related-items"));
226
220
  var _dynamicWidgets = _interopRequireDefault(require("./dynamic-widgets/dynamic-widgets"));
227
221
  var _analytics = _interopRequireDefault(require("./analytics/analytics"));
228
222
  var _breadcrumb = _interopRequireDefault(require("./breadcrumb/breadcrumb"));
229
223
  var _clearRefinements = _interopRequireDefault(require("./clear-refinements/clear-refinements"));
230
224
  var _configure = _interopRequireDefault(require("./configure/configure"));
231
225
  var _currentRefinements = _interopRequireDefault(require("./current-refinements/current-refinements"));
232
- var _configureRelatedItems = _interopRequireDefault(require("./configure-related-items/configure-related-items"));
233
226
  var _geoSearch = _interopRequireDefault(require("./geo-search/geo-search"));
234
227
  var _hierarchicalMenu = _interopRequireDefault(require("./hierarchical-menu/hierarchical-menu"));
235
228
  var _hits = _interopRequireDefault(require("./hits/hits"));
@@ -263,7 +256,11 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
263
256
  /** @deprecated answers is no longer supported */
264
257
  var EXPERIMENTAL_answers = (0, _utils.deprecate)(_answers.default, 'answers is no longer supported');
265
258
 
266
- /** @deprecated use dynamicWidgets */
259
+ /** @deprecated use relatedItems instead */
267
260
  exports.EXPERIMENTAL_answers = EXPERIMENTAL_answers;
261
+ var EXPERIMENTAL_configureRelatedItems = (0, _utils.deprecate)(_configureRelatedItems.default, 'EXPERIMENTAL_configureRelatedItems is deprecated and will be removed in a next minor version of InstantSearch. Please use relatedItems instead.');
262
+
263
+ /** @deprecated use dynamicWidgets */
264
+ exports.EXPERIMENTAL_configureRelatedItems = EXPERIMENTAL_configureRelatedItems;
268
265
  var EXPERIMENTAL_dynamicWidgets = (0, _utils.deprecate)(_dynamicWidgets.default, 'use dynamicWidgets');
269
266
  exports.EXPERIMENTAL_dynamicWidgets = EXPERIMENTAL_dynamicWidgets;
@@ -67,6 +67,29 @@ function createRenderer(_ref) {
67
67
  data: results
68
68
  }));
69
69
  } : undefined;
70
+ var layoutComponent = templates.layout ? function (data) {
71
+ return (0, _preact.h)(_Template.default, _extends({}, renderState.templateProps, {
72
+ templateKey: "layout",
73
+ rootTagName: "fragment",
74
+ data: {
75
+ items: data.items,
76
+ templates: {
77
+ item: templates.item ? function (_ref4) {
78
+ var item = _ref4.item;
79
+ return (0, _preact.h)(_Template.default, _extends({}, renderState.templateProps, {
80
+ templateKey: "item",
81
+ rootTagName: "fragment",
82
+ data: item
83
+ }));
84
+ } : undefined
85
+ },
86
+ cssClasses: {
87
+ list: data.classNames.list,
88
+ item: data.classNames.item
89
+ }
90
+ }
91
+ }));
92
+ } : undefined;
70
93
  (0, _preact.render)((0, _preact.h)(LookingSimilar, {
71
94
  items: items,
72
95
  headerComponent: headerComponent,
@@ -74,24 +97,25 @@ function createRenderer(_ref) {
74
97
  sendEvent: function sendEvent() {},
75
98
  classNames: cssClasses,
76
99
  emptyComponent: emptyComponent,
100
+ layout: layoutComponent,
77
101
  status: instantSearchInstance.status
78
102
  }), containerNode);
79
103
  };
80
104
  }
81
105
  var lookingSimilar = function lookingSimilar(widgetParams) {
82
- var _ref4 = widgetParams || {},
83
- container = _ref4.container,
84
- objectIDs = _ref4.objectIDs,
85
- limit = _ref4.limit,
86
- queryParameters = _ref4.queryParameters,
87
- fallbackParameters = _ref4.fallbackParameters,
88
- threshold = _ref4.threshold,
89
- escapeHTML = _ref4.escapeHTML,
90
- transformItems = _ref4.transformItems,
91
- _ref4$templates = _ref4.templates,
92
- templates = _ref4$templates === void 0 ? {} : _ref4$templates,
93
- _ref4$cssClasses = _ref4.cssClasses,
94
- cssClasses = _ref4$cssClasses === void 0 ? {} : _ref4$cssClasses;
106
+ var _ref5 = widgetParams || {},
107
+ container = _ref5.container,
108
+ objectIDs = _ref5.objectIDs,
109
+ limit = _ref5.limit,
110
+ queryParameters = _ref5.queryParameters,
111
+ fallbackParameters = _ref5.fallbackParameters,
112
+ threshold = _ref5.threshold,
113
+ escapeHTML = _ref5.escapeHTML,
114
+ transformItems = _ref5.transformItems,
115
+ _ref5$templates = _ref5.templates,
116
+ templates = _ref5$templates === void 0 ? {} : _ref5$templates,
117
+ _ref5$cssClasses = _ref5.cssClasses,
118
+ cssClasses = _ref5$cssClasses === void 0 ? {} : _ref5$cssClasses;
95
119
  if (!container) {
96
120
  throw new Error(withUsage('The `container` option is required.'));
97
121
  }
@@ -67,6 +67,29 @@ function createRenderer(_ref) {
67
67
  data: results
68
68
  }));
69
69
  } : undefined;
70
+ var layoutComponent = templates.layout ? function (data) {
71
+ return (0, _preact.h)(_Template.default, _extends({}, renderState.templateProps, {
72
+ templateKey: "layout",
73
+ rootTagName: "fragment",
74
+ data: {
75
+ items: data.items,
76
+ templates: {
77
+ item: templates.item ? function (_ref4) {
78
+ var item = _ref4.item;
79
+ return (0, _preact.h)(_Template.default, _extends({}, renderState.templateProps, {
80
+ templateKey: "item",
81
+ rootTagName: "fragment",
82
+ data: item
83
+ }));
84
+ } : undefined
85
+ },
86
+ cssClasses: {
87
+ list: data.classNames.list,
88
+ item: data.classNames.item
89
+ }
90
+ }
91
+ }));
92
+ } : undefined;
70
93
  (0, _preact.render)((0, _preact.h)(RelatedProducts, {
71
94
  items: items,
72
95
  sendEvent: function sendEvent() {},
@@ -74,24 +97,25 @@ function createRenderer(_ref) {
74
97
  headerComponent: headerComponent,
75
98
  itemComponent: itemComponent,
76
99
  emptyComponent: emptyComponent,
100
+ layout: layoutComponent,
77
101
  status: instantSearchInstance.status
78
102
  }), containerNode);
79
103
  };
80
104
  }
81
105
  var relatedProducts = function relatedProducts(widgetParams) {
82
- var _ref4 = widgetParams || {},
83
- container = _ref4.container,
84
- objectIDs = _ref4.objectIDs,
85
- limit = _ref4.limit,
86
- queryParameters = _ref4.queryParameters,
87
- fallbackParameters = _ref4.fallbackParameters,
88
- threshold = _ref4.threshold,
89
- escapeHTML = _ref4.escapeHTML,
90
- transformItems = _ref4.transformItems,
91
- _ref4$templates = _ref4.templates,
92
- templates = _ref4$templates === void 0 ? {} : _ref4$templates,
93
- _ref4$cssClasses = _ref4.cssClasses,
94
- cssClasses = _ref4$cssClasses === void 0 ? {} : _ref4$cssClasses;
106
+ var _ref5 = widgetParams || {},
107
+ container = _ref5.container,
108
+ objectIDs = _ref5.objectIDs,
109
+ limit = _ref5.limit,
110
+ queryParameters = _ref5.queryParameters,
111
+ fallbackParameters = _ref5.fallbackParameters,
112
+ threshold = _ref5.threshold,
113
+ escapeHTML = _ref5.escapeHTML,
114
+ transformItems = _ref5.transformItems,
115
+ _ref5$templates = _ref5.templates,
116
+ templates = _ref5$templates === void 0 ? {} : _ref5$templates,
117
+ _ref5$cssClasses = _ref5.cssClasses,
118
+ cssClasses = _ref5$cssClasses === void 0 ? {} : _ref5$cssClasses;
95
119
  if (!container) {
96
120
  throw new Error(withUsage('The `container` option is required.'));
97
121
  }
@@ -67,6 +67,29 @@ function createRenderer(_ref) {
67
67
  data: results
68
68
  }));
69
69
  } : undefined;
70
+ var layoutComponent = templates.layout ? function (data) {
71
+ return (0, _preact.h)(_Template.default, _extends({}, renderState.templateProps, {
72
+ templateKey: "layout",
73
+ rootTagName: "fragment",
74
+ data: {
75
+ items: data.items,
76
+ templates: {
77
+ item: templates.item ? function (_ref4) {
78
+ var item = _ref4.item;
79
+ return (0, _preact.h)(_Template.default, _extends({}, renderState.templateProps, {
80
+ templateKey: "item",
81
+ rootTagName: "fragment",
82
+ data: item
83
+ }));
84
+ } : undefined
85
+ },
86
+ cssClasses: {
87
+ list: data.classNames.list,
88
+ item: data.classNames.item
89
+ }
90
+ }
91
+ }));
92
+ } : undefined;
70
93
  (0, _preact.render)((0, _preact.h)(TrendingItems, {
71
94
  items: items,
72
95
  sendEvent: function sendEvent() {},
@@ -74,25 +97,26 @@ function createRenderer(_ref) {
74
97
  headerComponent: headerComponent,
75
98
  itemComponent: itemComponent,
76
99
  emptyComponent: emptyComponent,
100
+ layout: layoutComponent,
77
101
  status: instantSearchInstance.status
78
102
  }), containerNode);
79
103
  };
80
104
  }
81
105
  var trendingItems = function trendingItems(widgetParams) {
82
- var _ref4 = widgetParams || {},
83
- container = _ref4.container,
84
- facetName = _ref4.facetName,
85
- facetValue = _ref4.facetValue,
86
- limit = _ref4.limit,
87
- queryParameters = _ref4.queryParameters,
88
- fallbackParameters = _ref4.fallbackParameters,
89
- threshold = _ref4.threshold,
90
- escapeHTML = _ref4.escapeHTML,
91
- transformItems = _ref4.transformItems,
92
- _ref4$templates = _ref4.templates,
93
- templates = _ref4$templates === void 0 ? {} : _ref4$templates,
94
- _ref4$cssClasses = _ref4.cssClasses,
95
- cssClasses = _ref4$cssClasses === void 0 ? {} : _ref4$cssClasses;
106
+ var _ref5 = widgetParams || {},
107
+ container = _ref5.container,
108
+ facetName = _ref5.facetName,
109
+ facetValue = _ref5.facetValue,
110
+ limit = _ref5.limit,
111
+ queryParameters = _ref5.queryParameters,
112
+ fallbackParameters = _ref5.fallbackParameters,
113
+ threshold = _ref5.threshold,
114
+ escapeHTML = _ref5.escapeHTML,
115
+ transformItems = _ref5.transformItems,
116
+ _ref5$templates = _ref5.templates,
117
+ templates = _ref5$templates === void 0 ? {} : _ref5$templates,
118
+ _ref5$cssClasses = _ref5.cssClasses,
119
+ cssClasses = _ref5$cssClasses === void 0 ? {} : _ref5$cssClasses;
96
120
  if (!container) {
97
121
  throw new Error(withUsage('The `container` option is required.'));
98
122
  }