instantsearch.js 4.72.2 → 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.
@@ -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.2';
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,
@@ -4811,6 +4811,18 @@ declare type InfiniteHitsCSSClasses = Partial<{
4811
4811
  * The disabled “Show more” button.
4812
4812
  */
4813
4813
  disabledLoadMore: string | string[];
4814
+ /**
4815
+ * Class names to apply to the banner element
4816
+ */
4817
+ bannerRoot: string | string[];
4818
+ /**
4819
+ * Class names to apply to the banner image element
4820
+ */
4821
+ bannerImage: string | string[];
4822
+ /**
4823
+ * Class names to apply to the banner link element
4824
+ */
4825
+ bannerLink: string | string[];
4814
4826
  }>;
4815
4827
 
4816
4828
  declare type InfiniteHitsRenderState<THit extends NonNullable<object> = BaseHit> = {
@@ -4881,6 +4893,13 @@ declare type InfiniteHitsTemplates<THit extends NonNullable<object> = BaseHit> =
4881
4893
  /** @deprecated the index in the hits array, use __position instead, which is the absolute position */
4882
4894
  __hitIndex: number;
4883
4895
  }>;
4896
+ /**
4897
+ * Template to use for the banner.
4898
+ */
4899
+ banner: Template<{
4900
+ banner: Required<InfiniteHitsRenderState['banner']>;
4901
+ className: string;
4902
+ }>;
4884
4903
  }>;
4885
4904
 
4886
4905
  declare type InfiniteHitsWidgetDescription<THit extends NonNullable<object> = BaseHit> = {
@@ -1,4 +1,4 @@
1
- /*! InstantSearch.js 4.72.2 | © Algolia, Inc. and contributors; MIT License | https://github.com/algolia/instantsearch */
1
+ /*! InstantSearch.js 4.73.0 | © Algolia, Inc. and contributors; MIT License | https://github.com/algolia/instantsearch */
2
2
  (function (global, factory) {
3
3
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
4
4
  typeof define === 'function' && define.amd ? define(factory) :
@@ -3881,12 +3881,12 @@
3881
3881
  }, {
3882
3882
  key: "isLastPage",
3883
3883
  value: function isLastPage() {
3884
- return this.currentPage === this.total - 1 || this.total === 0;
3884
+ return this.currentPage >= this.total - 1;
3885
3885
  }
3886
3886
  }, {
3887
3887
  key: "isFirstPage",
3888
3888
  value: function isFirstPage() {
3889
- return this.currentPage === 0;
3889
+ return this.currentPage <= 0;
3890
3890
  }
3891
3891
  }]);
3892
3892
  return Paginator;
@@ -6539,7 +6539,11 @@
6539
6539
  return cache[params.$$id] === undefined;
6540
6540
  })
6541
6541
  .map(function (params) {
6542
- var query = Object.assign({}, params, { indexName: indexName });
6542
+ var query = Object.assign({}, params, {
6543
+ indexName: indexName,
6544
+ // @TODO: remove this if it ever gets handled by the API
6545
+ threshold: params.threshold || 0,
6546
+ });
6543
6547
  delete query.$$id;
6544
6548
 
6545
6549
  return query;
@@ -10490,7 +10494,7 @@
10490
10494
 
10491
10495
  var sortAndMergeRecommendations_1 = sortAndMergeRecommendations;
10492
10496
 
10493
- var version = '3.22.1';
10497
+ var version = '3.22.2';
10494
10498
 
10495
10499
  var escapeFacetValue$4 = escapeFacetValue_1.escapeFacetValue;
10496
10500
 
@@ -17124,7 +17128,7 @@
17124
17128
  if (RootTagName === p) {
17125
17129
  return h(RawHtml, {
17126
17130
  content: content,
17127
- key: content
17131
+ key: Math.random()
17128
17132
  });
17129
17133
  }
17130
17134
  return h(RootTagName, _extends({}, this.props.rootProps, {
@@ -19897,32 +19901,65 @@
19897
19901
  instantSearchInstance.renderState = _objectSpread2(_objectSpread2({}, instantSearchInstance.renderState), {}, _defineProperty({}, parentIndexName, _objectSpread2(_objectSpread2({}, instantSearchInstance.renderState[parentIndexName]), renderState)));
19898
19902
  }
19899
19903
 
19900
- var InfiniteHits = function InfiniteHits(_ref) {
19901
- var results = _ref.results,
19902
- hits = _ref.hits,
19903
- insights = _ref.insights,
19904
- bindEvent = _ref.bindEvent,
19905
- sendEvent = _ref.sendEvent,
19906
- hasShowPrevious = _ref.hasShowPrevious,
19907
- showPrevious = _ref.showPrevious,
19908
- showMore = _ref.showMore,
19909
- isFirstPage = _ref.isFirstPage,
19910
- isLastPage = _ref.isLastPage,
19911
- cssClasses = _ref.cssClasses,
19912
- templateProps = _ref.templateProps;
19904
+ var DefaultBanner = function DefaultBanner(_ref) {
19905
+ var banner = _ref.banner,
19906
+ classNames = _ref.classNames;
19907
+ if (!banner.image.urls[0].url) {
19908
+ return null;
19909
+ }
19910
+ return h("aside", {
19911
+ className: cx(classNames.bannerRoot)
19912
+ }, banner.link ? h("a", {
19913
+ className: cx(classNames.bannerLink),
19914
+ href: banner.link.url,
19915
+ target: banner.link.target
19916
+ }, h("img", {
19917
+ className: cx(classNames.bannerImage),
19918
+ src: banner.image.urls[0].url,
19919
+ alt: banner.image.title
19920
+ })) : h("img", {
19921
+ className: cx(classNames.bannerImage),
19922
+ src: banner.image.urls[0].url,
19923
+ alt: banner.image.title
19924
+ }));
19925
+ };
19926
+ var InfiniteHits = function InfiniteHits(_ref2) {
19927
+ var results = _ref2.results,
19928
+ hits = _ref2.hits,
19929
+ insights = _ref2.insights,
19930
+ bindEvent = _ref2.bindEvent,
19931
+ sendEvent = _ref2.sendEvent,
19932
+ hasShowPrevious = _ref2.hasShowPrevious,
19933
+ showPrevious = _ref2.showPrevious,
19934
+ showMore = _ref2.showMore,
19935
+ isFirstPage = _ref2.isFirstPage,
19936
+ isLastPage = _ref2.isLastPage,
19937
+ cssClasses = _ref2.cssClasses,
19938
+ templateProps = _ref2.templateProps,
19939
+ banner = _ref2.banner;
19913
19940
  var handleInsightsClick = createInsightsEventHandler({
19914
19941
  insights: insights,
19915
19942
  sendEvent: sendEvent
19916
19943
  });
19917
19944
  if (results.hits.length === 0) {
19918
- return h(Template, _extends({}, templateProps, {
19945
+ return h("div", {
19946
+ className: cx(cssClasses.root, cssClasses.emptyRoot),
19947
+ onClick: handleInsightsClick
19948
+ }, banner && (templateProps.templates.banner ? h(Template, _extends({}, templateProps, {
19949
+ templateKey: "banner",
19950
+ rootTagName: "fragment",
19951
+ data: {
19952
+ banner: banner,
19953
+ className: cssClasses.bannerRoot
19954
+ }
19955
+ })) : h(DefaultBanner, {
19956
+ banner: banner,
19957
+ classNames: cssClasses
19958
+ })), h(Template, _extends({}, templateProps, {
19919
19959
  templateKey: "empty",
19920
- rootProps: {
19921
- className: cx(cssClasses.root, cssClasses.emptyRoot),
19922
- onClick: handleInsightsClick
19923
- },
19960
+ rootTagName: "fragment",
19924
19961
  data: results
19925
- }));
19962
+ })));
19926
19963
  }
19927
19964
  return h("div", {
19928
19965
  className: cssClasses.root
@@ -19934,6 +19971,16 @@
19934
19971
  disabled: isFirstPage,
19935
19972
  onClick: showPrevious
19936
19973
  }
19974
+ })), banner && (templateProps.templates.banner ? h(Template, _extends({}, templateProps, {
19975
+ templateKey: "banner",
19976
+ rootTagName: "fragment",
19977
+ data: {
19978
+ banner: banner,
19979
+ className: cssClasses.bannerRoot
19980
+ }
19981
+ })) : h(DefaultBanner, {
19982
+ banner: banner,
19983
+ classNames: cssClasses
19937
19984
  })), h("ol", {
19938
19985
  className: cssClasses.list
19939
19986
  }, hits.map(function (hit, index) {
@@ -20007,7 +20054,8 @@
20007
20054
  instantSearchInstance = _ref2.instantSearchInstance,
20008
20055
  insights = _ref2.insights,
20009
20056
  bindEvent = _ref2.bindEvent,
20010
- sendEvent = _ref2.sendEvent;
20057
+ sendEvent = _ref2.sendEvent,
20058
+ banner = _ref2.banner;
20011
20059
  if (isFirstRendering) {
20012
20060
  renderState.templateProps = prepareTemplateProps({
20013
20061
  defaultTemplates: defaultTemplates$6,
@@ -20028,7 +20076,8 @@
20028
20076
  isLastPage: isLastPage,
20029
20077
  insights: insights,
20030
20078
  sendEvent: sendEvent,
20031
- bindEvent: bindEvent
20079
+ bindEvent: bindEvent,
20080
+ banner: banner
20032
20081
  }), containerNode);
20033
20082
  };
20034
20083
  };
@@ -20071,7 +20120,16 @@
20071
20120
  disabledLoadMore: cx(suit$c({
20072
20121
  descendantName: 'loadMore',
20073
20122
  modifierName: 'disabled'
20074
- }), userCssClasses.disabledLoadMore)
20123
+ }), userCssClasses.disabledLoadMore),
20124
+ bannerRoot: cx(suit$c({
20125
+ descendantName: 'banner'
20126
+ }), userCssClasses.bannerRoot),
20127
+ bannerImage: cx(suit$c({
20128
+ descendantName: 'banner-image'
20129
+ }), userCssClasses.bannerImage),
20130
+ bannerLink: cx(suit$c({
20131
+ descendantName: 'banner-link'
20132
+ }), userCssClasses.bannerLink)
20075
20133
  };
20076
20134
  var specializedRenderer = renderer$8({
20077
20135
  containerNode: containerNode,
@@ -23993,7 +24051,7 @@
23993
24051
  };
23994
24052
  }
23995
24053
 
23996
- var version$1 = '4.72.2';
24054
+ var version$1 = '4.73.0';
23997
24055
 
23998
24056
  var withUsage$10 = createDocumentationMessageGenerator({
23999
24057
  name: 'instantsearch'