instantsearch.js 4.72.1 → 4.73.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 (43) hide show
  1. package/README.md +0 -1
  2. package/cjs/components/InfiniteHits/InfiniteHits.js +62 -19
  3. package/cjs/components/Template/Template.js +1 -1
  4. package/cjs/connectors/pagination/Paginator.js +2 -2
  5. package/cjs/lib/version.js +1 -1
  6. package/cjs/widgets/infinite-hits/infinite-hits.js +14 -3
  7. package/dist/instantsearch.development.d.ts +117 -1659
  8. package/dist/instantsearch.development.js +87 -29
  9. package/dist/instantsearch.development.js.map +1 -1
  10. package/dist/instantsearch.production.d.ts +117 -1659
  11. package/dist/instantsearch.production.min.d.ts +117 -1659
  12. package/dist/instantsearch.production.min.js +2 -2
  13. package/dist/instantsearch.production.min.js.map +1 -1
  14. package/es/components/InfiniteHits/InfiniteHits.d.ts +4 -3
  15. package/es/components/InfiniteHits/InfiniteHits.js +62 -19
  16. package/es/components/Template/Template.js +1 -1
  17. package/es/connectors/frequently-bought-together/connectFrequentlyBoughtTogether.d.ts +7 -195
  18. package/es/connectors/geo-search/connectGeoSearch.d.ts +3 -3
  19. package/es/connectors/hits/connectHits.d.ts +2 -2
  20. package/es/connectors/hits/connectHitsWithInsights.d.ts +3 -75
  21. package/es/connectors/infinite-hits/connectInfiniteHits.d.ts +3 -3
  22. package/es/connectors/infinite-hits/connectInfiniteHitsWithInsights.d.ts +3 -75
  23. package/es/connectors/looking-similar/connectLookingSimilar.d.ts +7 -187
  24. package/es/connectors/pagination/Paginator.js +2 -2
  25. package/es/connectors/related-products/connectRelatedProducts.d.ts +7 -187
  26. package/es/connectors/trending-items/connectTrendingItems.d.ts +7 -192
  27. package/es/lib/insights/client.d.ts +1 -1
  28. package/es/lib/utils/createConcurrentSafePromise.d.ts +1 -1
  29. package/es/lib/utils/render-args.d.ts +2 -222
  30. package/es/lib/utils/typedObject.d.ts +1 -1
  31. package/es/lib/version.d.ts +1 -1
  32. package/es/lib/version.js +1 -1
  33. package/es/widgets/frequently-bought-together/frequently-bought-together.d.ts +5 -115
  34. package/es/widgets/geo-search/createHTMLMarker.d.ts +0 -2
  35. package/es/widgets/geo-search/geo-search.d.ts +12 -96
  36. package/es/widgets/hits/defaultTemplates.d.ts +9 -9
  37. package/es/widgets/hits/hits.d.ts +2 -77
  38. package/es/widgets/infinite-hits/infinite-hits.d.ts +21 -79
  39. package/es/widgets/infinite-hits/infinite-hits.js +14 -3
  40. package/es/widgets/looking-similar/looking-similar.d.ts +5 -118
  41. package/es/widgets/related-products/related-products.d.ts +5 -115
  42. package/es/widgets/trending-items/trending-items.d.ts +7 -121
  43. package/package.json +6 -6
package/README.md CHANGED
@@ -20,7 +20,6 @@ InstantSearch.js is a vanilla JavaScript library that lets you create an instant
20
20
  <!-- START doctoc generated TOC please keep comment here to allow auto update -->
21
21
  <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
22
22
 
23
-
24
23
  - [Why](#why)
25
24
  - [Getting started](#getting-started)
26
25
  - [Installation](#installation)
@@ -17,32 +17,65 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
17
17
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
18
18
  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); }
19
19
  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); }
20
- var InfiniteHits = function InfiniteHits(_ref) {
21
- var results = _ref.results,
22
- hits = _ref.hits,
23
- insights = _ref.insights,
24
- bindEvent = _ref.bindEvent,
25
- sendEvent = _ref.sendEvent,
26
- hasShowPrevious = _ref.hasShowPrevious,
27
- showPrevious = _ref.showPrevious,
28
- showMore = _ref.showMore,
29
- isFirstPage = _ref.isFirstPage,
30
- isLastPage = _ref.isLastPage,
31
- cssClasses = _ref.cssClasses,
32
- templateProps = _ref.templateProps;
20
+ var DefaultBanner = function DefaultBanner(_ref) {
21
+ var banner = _ref.banner,
22
+ classNames = _ref.classNames;
23
+ if (!banner.image.urls[0].url) {
24
+ return null;
25
+ }
26
+ return (0, _preact.h)("aside", {
27
+ className: (0, _instantsearchUiComponents.cx)(classNames.bannerRoot)
28
+ }, banner.link ? (0, _preact.h)("a", {
29
+ className: (0, _instantsearchUiComponents.cx)(classNames.bannerLink),
30
+ href: banner.link.url,
31
+ target: banner.link.target
32
+ }, (0, _preact.h)("img", {
33
+ className: (0, _instantsearchUiComponents.cx)(classNames.bannerImage),
34
+ src: banner.image.urls[0].url,
35
+ alt: banner.image.title
36
+ })) : (0, _preact.h)("img", {
37
+ className: (0, _instantsearchUiComponents.cx)(classNames.bannerImage),
38
+ src: banner.image.urls[0].url,
39
+ alt: banner.image.title
40
+ }));
41
+ };
42
+ var InfiniteHits = function InfiniteHits(_ref2) {
43
+ var results = _ref2.results,
44
+ hits = _ref2.hits,
45
+ insights = _ref2.insights,
46
+ bindEvent = _ref2.bindEvent,
47
+ sendEvent = _ref2.sendEvent,
48
+ hasShowPrevious = _ref2.hasShowPrevious,
49
+ showPrevious = _ref2.showPrevious,
50
+ showMore = _ref2.showMore,
51
+ isFirstPage = _ref2.isFirstPage,
52
+ isLastPage = _ref2.isLastPage,
53
+ cssClasses = _ref2.cssClasses,
54
+ templateProps = _ref2.templateProps,
55
+ banner = _ref2.banner;
33
56
  var handleInsightsClick = (0, _listener.createInsightsEventHandler)({
34
57
  insights: insights,
35
58
  sendEvent: sendEvent
36
59
  });
37
60
  if (results.hits.length === 0) {
38
- return (0, _preact.h)(_Template.default, _extends({}, templateProps, {
61
+ return (0, _preact.h)("div", {
62
+ className: (0, _instantsearchUiComponents.cx)(cssClasses.root, cssClasses.emptyRoot),
63
+ onClick: handleInsightsClick
64
+ }, banner && (templateProps.templates.banner ? (0, _preact.h)(_Template.default, _extends({}, templateProps, {
65
+ templateKey: "banner",
66
+ rootTagName: "fragment",
67
+ data: {
68
+ banner: banner,
69
+ className: cssClasses.bannerRoot
70
+ }
71
+ })) : (0, _preact.h)(DefaultBanner, {
72
+ banner: banner,
73
+ classNames: cssClasses
74
+ })), (0, _preact.h)(_Template.default, _extends({}, templateProps, {
39
75
  templateKey: "empty",
40
- rootProps: {
41
- className: (0, _instantsearchUiComponents.cx)(cssClasses.root, cssClasses.emptyRoot),
42
- onClick: handleInsightsClick
43
- },
76
+ rootTagName: "fragment",
44
77
  data: results
45
- }));
78
+ })));
46
79
  }
47
80
  return (0, _preact.h)("div", {
48
81
  className: cssClasses.root
@@ -54,6 +87,16 @@ var InfiniteHits = function InfiniteHits(_ref) {
54
87
  disabled: isFirstPage,
55
88
  onClick: showPrevious
56
89
  }
90
+ })), banner && (templateProps.templates.banner ? (0, _preact.h)(_Template.default, _extends({}, templateProps, {
91
+ templateKey: "banner",
92
+ rootTagName: "fragment",
93
+ data: {
94
+ banner: banner,
95
+ className: cssClasses.bannerRoot
96
+ }
97
+ })) : (0, _preact.h)(DefaultBanner, {
98
+ banner: banner,
99
+ classNames: cssClasses
57
100
  })), (0, _preact.h)("ol", {
58
101
  className: cssClasses.list
59
102
  }, hits.map(function (hit, index) {
@@ -135,7 +135,7 @@ var Template = /*#__PURE__*/function (_Component2) {
135
135
  if (RootTagName === _preact.Fragment) {
136
136
  return (0, _preact.h)(RawHtml, {
137
137
  content: content,
138
- key: content
138
+ key: Math.random()
139
139
  });
140
140
  }
141
141
  return (0, _preact.h)(RootTagName, _extends({}, this.props.rootProps, {
@@ -63,12 +63,12 @@ var Paginator = /*#__PURE__*/function () {
63
63
  }, {
64
64
  key: "isLastPage",
65
65
  value: function isLastPage() {
66
- return this.currentPage === this.total - 1 || this.total === 0;
66
+ return this.currentPage >= this.total - 1;
67
67
  }
68
68
  }, {
69
69
  key: "isFirstPage",
70
70
  value: function isFirstPage() {
71
- return this.currentPage === 0;
71
+ return this.currentPage <= 0;
72
72
  }
73
73
  }]);
74
74
  return Paginator;
@@ -4,5 +4,5 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _default = '4.72.1';
7
+ var _default = '4.73.0';
8
8
  exports.default = _default;
@@ -40,7 +40,8 @@ var renderer = function renderer(_ref) {
40
40
  instantSearchInstance = _ref2.instantSearchInstance,
41
41
  insights = _ref2.insights,
42
42
  bindEvent = _ref2.bindEvent,
43
- sendEvent = _ref2.sendEvent;
43
+ sendEvent = _ref2.sendEvent,
44
+ banner = _ref2.banner;
44
45
  if (isFirstRendering) {
45
46
  renderState.templateProps = (0, _templating.prepareTemplateProps)({
46
47
  defaultTemplates: _defaultTemplates.default,
@@ -61,7 +62,8 @@ var renderer = function renderer(_ref) {
61
62
  isLastPage: isLastPage,
62
63
  insights: insights,
63
64
  sendEvent: sendEvent,
64
- bindEvent: bindEvent
65
+ bindEvent: bindEvent,
66
+ banner: banner
65
67
  }), containerNode);
66
68
  };
67
69
  };
@@ -104,7 +106,16 @@ var infiniteHits = function infiniteHits(widgetParams) {
104
106
  disabledLoadMore: (0, _instantsearchUiComponents.cx)(suit({
105
107
  descendantName: 'loadMore',
106
108
  modifierName: 'disabled'
107
- }), userCssClasses.disabledLoadMore)
109
+ }), userCssClasses.disabledLoadMore),
110
+ bannerRoot: (0, _instantsearchUiComponents.cx)(suit({
111
+ descendantName: 'banner'
112
+ }), userCssClasses.bannerRoot),
113
+ bannerImage: (0, _instantsearchUiComponents.cx)(suit({
114
+ descendantName: 'banner-image'
115
+ }), userCssClasses.bannerImage),
116
+ bannerLink: (0, _instantsearchUiComponents.cx)(suit({
117
+ descendantName: 'banner-link'
118
+ }), userCssClasses.bannerLink)
108
119
  };
109
120
  var specializedRenderer = renderer({
110
121
  containerNode: containerNode,