instantsearch.js 4.44.1 → 4.46.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 (105) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/cjs/components/Hits/Hits.js +3 -1
  3. package/cjs/components/InfiniteHits/InfiniteHits.js +3 -1
  4. package/cjs/components/Template/Template.js +13 -3
  5. package/cjs/connectors/hits-per-page/connectHitsPerPage.js +3 -1
  6. package/cjs/connectors/numeric-menu/connectNumericMenu.js +27 -2
  7. package/cjs/connectors/rating-menu/connectRatingMenu.js +10 -4
  8. package/cjs/connectors/sort-by/connectSortBy.js +3 -1
  9. package/cjs/lib/createHelpers.js +3 -1
  10. package/cjs/lib/formatNumber.js +10 -0
  11. package/cjs/lib/utils/cx.js +10 -0
  12. package/cjs/lib/utils/index.js +10 -1
  13. package/cjs/lib/utils/renderTemplate.js +17 -2
  14. package/cjs/lib/version.js +1 -1
  15. package/cjs/widgets/answers/defaultTemplates.js +6 -2
  16. package/cjs/widgets/breadcrumb/defaultTemplates.js +6 -2
  17. package/cjs/widgets/clear-refinements/clear-refinements.js +2 -2
  18. package/cjs/widgets/clear-refinements/defaultTemplates.js +3 -1
  19. package/cjs/widgets/geo-search/createHTMLMarker.js +10 -4
  20. package/cjs/widgets/geo-search/defaultTemplates.js +18 -4
  21. package/cjs/widgets/hierarchical-menu/defaultTemplates.js +26 -2
  22. package/cjs/widgets/hits/defaultTemplates.js +3 -1
  23. package/cjs/widgets/infinite-hits/defaultTemplates.js +9 -3
  24. package/cjs/widgets/menu/defaultTemplates.js +26 -2
  25. package/cjs/widgets/menu-select/defaultTemplates.js +11 -2
  26. package/cjs/widgets/numeric-menu/defaultTemplates.js +20 -1
  27. package/cjs/widgets/range-input/range-input.js +6 -2
  28. package/cjs/widgets/rating-menu/defaultTemplates.js +57 -1
  29. package/cjs/widgets/refinement-list/defaultTemplates.js +38 -3
  30. package/cjs/widgets/relevant-sort/defaultTemplates.js +3 -1
  31. package/cjs/widgets/search-box/defaultTemplates.js +62 -3
  32. package/cjs/widgets/stats/stats.js +70 -22
  33. package/cjs/widgets/toggle-refinement/defaultTemplates.js +4 -1
  34. package/cjs/widgets/voice-search/defaultTemplates.js +81 -9
  35. package/dist/instantsearch.development.d.ts +171 -29
  36. package/dist/instantsearch.development.js +1430 -671
  37. package/dist/instantsearch.development.js.map +1 -1
  38. package/dist/instantsearch.production.d.ts +171 -29
  39. package/dist/instantsearch.production.min.d.ts +171 -29
  40. package/dist/instantsearch.production.min.js +2 -2
  41. package/dist/instantsearch.production.min.js.map +1 -1
  42. package/es/components/Answers/Answers.d.ts +2 -2
  43. package/es/components/Hits/Hits.d.ts +3 -3
  44. package/es/components/Hits/Hits.js +3 -1
  45. package/es/components/InfiniteHits/InfiniteHits.d.ts +3 -3
  46. package/es/components/InfiniteHits/InfiniteHits.js +3 -1
  47. package/es/components/Template/Template.d.ts +4 -2
  48. package/es/components/Template/Template.js +14 -4
  49. package/es/connectors/answers/connectAnswers.d.ts +2 -2
  50. package/es/connectors/autocomplete/connectAutocomplete.d.ts +2 -2
  51. package/es/connectors/hits-per-page/connectHitsPerPage.d.ts +5 -0
  52. package/es/connectors/hits-per-page/connectHitsPerPage.js +3 -1
  53. package/es/connectors/numeric-menu/connectNumericMenu.d.ts +8 -0
  54. package/es/connectors/numeric-menu/connectNumericMenu.js +27 -2
  55. package/es/connectors/rating-menu/connectRatingMenu.d.ts +2 -0
  56. package/es/connectors/rating-menu/connectRatingMenu.js +10 -4
  57. package/es/connectors/sort-by/connectSortBy.d.ts +5 -0
  58. package/es/connectors/sort-by/connectSortBy.js +3 -1
  59. package/es/lib/createHelpers.js +2 -1
  60. package/es/lib/formatNumber.d.ts +1 -0
  61. package/es/lib/formatNumber.js +3 -0
  62. package/es/lib/insights/client.d.ts +2 -2
  63. package/es/lib/utils/createSendEventForHits.d.ts +3 -3
  64. package/es/lib/utils/cx.d.ts +1 -0
  65. package/es/lib/utils/cx.js +3 -0
  66. package/es/lib/utils/index.d.ts +1 -0
  67. package/es/lib/utils/index.js +2 -1
  68. package/es/lib/utils/renderTemplate.d.ts +4 -3
  69. package/es/lib/utils/renderTemplate.js +15 -2
  70. package/es/lib/version.d.ts +1 -1
  71. package/es/lib/version.js +1 -1
  72. package/es/types/connector.d.ts +2 -2
  73. package/es/types/templates.d.ts +16 -3
  74. package/es/widgets/answers/defaultTemplates.js +6 -2
  75. package/es/widgets/breadcrumb/defaultTemplates.js +6 -2
  76. package/es/widgets/clear-refinements/clear-refinements.d.ts +3 -1
  77. package/es/widgets/clear-refinements/clear-refinements.js +2 -2
  78. package/es/widgets/clear-refinements/defaultTemplates.js +3 -1
  79. package/es/widgets/geo-search/createHTMLMarker.d.ts +2 -1
  80. package/es/widgets/geo-search/createHTMLMarker.js +8 -1
  81. package/es/widgets/geo-search/defaultTemplates.d.ts +1 -0
  82. package/es/widgets/geo-search/defaultTemplates.js +17 -4
  83. package/es/widgets/hierarchical-menu/defaultTemplates.js +22 -2
  84. package/es/widgets/hierarchical-menu/hierarchical-menu.d.ts +2 -0
  85. package/es/widgets/hits/defaultTemplates.js +3 -1
  86. package/es/widgets/hits/hits.d.ts +2 -1
  87. package/es/widgets/infinite-hits/defaultTemplates.js +9 -3
  88. package/es/widgets/infinite-hits/infinite-hits.d.ts +1 -3
  89. package/es/widgets/menu/defaultTemplates.js +22 -2
  90. package/es/widgets/menu-select/defaultTemplates.js +9 -2
  91. package/es/widgets/numeric-menu/defaultTemplates.js +18 -1
  92. package/es/widgets/range-input/range-input.js +6 -2
  93. package/es/widgets/rating-menu/defaultTemplates.js +54 -1
  94. package/es/widgets/rating-menu/rating-menu.d.ts +6 -0
  95. package/es/widgets/refinement-list/defaultTemplates.js +34 -3
  96. package/es/widgets/refinement-list/refinement-list.d.ts +7 -1
  97. package/es/widgets/relevant-sort/defaultTemplates.js +3 -1
  98. package/es/widgets/search-box/defaultTemplates.js +61 -3
  99. package/es/widgets/search-box/search-box.d.ts +10 -3
  100. package/es/widgets/stats/stats.d.ts +10 -6
  101. package/es/widgets/stats/stats.js +69 -22
  102. package/es/widgets/toggle-refinement/defaultTemplates.js +4 -1
  103. package/es/widgets/toggle-refinement/toggle-refinement.d.ts +3 -1
  104. package/es/widgets/voice-search/defaultTemplates.js +81 -9
  105. package/package.json +7 -5
@@ -4,8 +4,27 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+
8
+ var _preact = require("preact");
9
+
10
+ /** @jsx h */
7
11
  var defaultTemplates = {
8
- item: "<label class=\"{{cssClasses.label}}\">\n <input type=\"radio\" class=\"{{cssClasses.radio}}\" name=\"{{attribute}}\"{{#isRefined}} checked{{/isRefined}} />\n <span class=\"{{cssClasses.labelText}}\">{{label}}</span>\n</label>"
12
+ item: function item(_ref) {
13
+ var cssClasses = _ref.cssClasses,
14
+ attribute = _ref.attribute,
15
+ label = _ref.label,
16
+ isRefined = _ref.isRefined;
17
+ return (0, _preact.h)("label", {
18
+ className: cssClasses.label
19
+ }, (0, _preact.h)("input", {
20
+ type: "radio",
21
+ className: cssClasses.radio,
22
+ name: attribute,
23
+ defaultChecked: isRefined
24
+ }), (0, _preact.h)("span", {
25
+ className: cssClasses.labelText
26
+ }, label));
27
+ }
9
28
  };
10
29
  var _default = defaultTemplates;
11
30
  exports.default = _default;
@@ -42,8 +42,12 @@ var withUsage = (0, _index.createDocumentationMessageGenerator)({
42
42
  });
43
43
  var suit = (0, _suit.component)('RangeInput');
44
44
  var defaultTemplates = {
45
- separatorText: 'to',
46
- submitText: 'Go'
45
+ separatorText: function separatorText() {
46
+ return 'to';
47
+ },
48
+ submitText: function submitText() {
49
+ return 'Go';
50
+ }
47
51
  };
48
52
 
49
53
  var renderer = function renderer(_ref) {
@@ -4,8 +4,64 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+
8
+ var _preact = require("preact");
9
+
10
+ var _formatNumber = require("../../lib/formatNumber.js");
11
+
12
+ var _index = require("../../lib/utils/index.js");
13
+
14
+ /** @jsx h */
15
+ function ItemWrapper(_ref) {
16
+ var children = _ref.children,
17
+ count = _ref.count,
18
+ value = _ref.value,
19
+ url = _ref.url,
20
+ cssClasses = _ref.cssClasses;
21
+
22
+ if (count) {
23
+ return (0, _preact.h)("a", {
24
+ className: (0, _index.cx)(cssClasses.link),
25
+ "aria-label": "".concat(value, " & up"),
26
+ href: url
27
+ }, children);
28
+ }
29
+
30
+ return (0, _preact.h)("div", {
31
+ className: (0, _index.cx)(cssClasses.link),
32
+ "aria-label": "".concat(value, " & up"),
33
+ disabled: true
34
+ }, children);
35
+ }
36
+
7
37
  var defaultTemplates = {
8
- item: "{{#count}}<a class=\"{{cssClasses.link}}\" aria-label=\"{{value}} & up\" href=\"{{url}}\">{{/count}}{{^count}}<div class=\"{{cssClasses.link}}\" aria-label=\"{{value}} & up\" disabled>{{/count}}\n {{#stars}}<svg class=\"{{cssClasses.starIcon}} {{#.}}{{cssClasses.fullStarIcon}}{{/.}}{{^.}}{{cssClasses.emptyStarIcon}}{{/.}}\" aria-hidden=\"true\" width=\"24\" height=\"24\">\n {{#.}}<use xlink:href=\"#ais-RatingMenu-starSymbol\"></use>{{/.}}{{^.}}<use xlink:href=\"#ais-RatingMenu-starEmptySymbol\"></use>{{/.}}\n </svg>{{/stars}}\n <span class=\"{{cssClasses.label}}\">& Up</span>\n {{#count}}<span class=\"{{cssClasses.count}}\">{{#helpers.formatNumber}}{{count}}{{/helpers.formatNumber}}</span>{{/count}}\n{{#count}}</a>{{/count}}{{^count}}</div>{{/count}}"
38
+ item: function item(_ref2) {
39
+ var count = _ref2.count,
40
+ value = _ref2.value,
41
+ url = _ref2.url,
42
+ stars = _ref2.stars,
43
+ cssClasses = _ref2.cssClasses;
44
+ return (0, _preact.h)(ItemWrapper, {
45
+ count: count,
46
+ value: value,
47
+ url: url,
48
+ cssClasses: cssClasses
49
+ }, stars.map(function (isFull, index) {
50
+ return (0, _preact.h)("svg", {
51
+ key: index,
52
+ className: (0, _index.cx)([(0, _index.cx)(cssClasses.starIcon), (0, _index.cx)(isFull ? cssClasses.fullStarIcon : cssClasses.emptyStarIcon)]),
53
+ "aria-hidden": "true",
54
+ width: "24",
55
+ height: "24"
56
+ }, (0, _preact.h)("use", {
57
+ xlinkHref: isFull ? '#ais-RatingMenu-starSymbol' : '#ais-RatingMenu-starEmptySymbol'
58
+ }));
59
+ }), (0, _preact.h)("span", {
60
+ className: (0, _index.cx)(cssClasses.label)
61
+ }, "& Up"), count && (0, _preact.h)("span", {
62
+ className: (0, _index.cx)(cssClasses.count)
63
+ }, (0, _formatNumber.formatNumber)(count)));
64
+ }
9
65
  };
10
66
  var _default = defaultTemplates;
11
67
  exports.default = _default;
@@ -4,10 +4,45 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+
8
+ var _preact = require("preact");
9
+
10
+ var _formatNumber = require("../../lib/formatNumber.js");
11
+
12
+ var _index = require("../../lib/utils/index.js");
13
+
14
+ /** @jsx h */
7
15
  var defaultTemplates = {
8
- item: "<label class=\"{{cssClasses.label}}\">\n <input type=\"checkbox\"\n class=\"{{cssClasses.checkbox}}\"\n value=\"{{value}}\"\n {{#isRefined}}checked{{/isRefined}} />\n <span class=\"{{cssClasses.labelText}}\">{{#isFromSearch}}{{{highlighted}}}{{/isFromSearch}}{{^isFromSearch}}{{highlighted}}{{/isFromSearch}}</span>\n <span class=\"{{cssClasses.count}}\">{{#helpers.formatNumber}}{{count}}{{/helpers.formatNumber}}</span>\n</label>",
9
- showMoreText: "\n {{#isShowingMore}}\n Show less\n {{/isShowingMore}}\n {{^isShowingMore}}\n Show more\n {{/isShowingMore}}\n ",
10
- searchableNoResults: 'No results'
16
+ item: function item(_ref) {
17
+ var cssClasses = _ref.cssClasses,
18
+ count = _ref.count,
19
+ value = _ref.value,
20
+ highlighted = _ref.highlighted,
21
+ isRefined = _ref.isRefined,
22
+ isFromSearch = _ref.isFromSearch;
23
+ return (0, _preact.h)("label", {
24
+ className: (0, _index.cx)(cssClasses.label)
25
+ }, (0, _preact.h)("input", {
26
+ type: "checkbox",
27
+ className: (0, _index.cx)(cssClasses.checkbox),
28
+ value: value,
29
+ defaultChecked: isRefined
30
+ }), (0, _preact.h)("span", {
31
+ className: (0, _index.cx)(cssClasses.labelText),
32
+ dangerouslySetInnerHTML: isFromSearch ? {
33
+ __html: highlighted
34
+ } : undefined
35
+ }, !isFromSearch && highlighted), (0, _preact.h)("span", {
36
+ className: (0, _index.cx)(cssClasses.count)
37
+ }, (0, _formatNumber.formatNumber)(count)));
38
+ },
39
+ showMoreText: function showMoreText(_ref2) {
40
+ var isShowingMore = _ref2.isShowingMore;
41
+ return isShowingMore ? 'Show less' : 'Show more';
42
+ },
43
+ searchableNoResults: function searchableNoResults() {
44
+ return 'No results';
45
+ }
11
46
  };
12
47
  var _default = defaultTemplates;
13
48
  exports.default = _default;
@@ -5,7 +5,9 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var defaultTemplates = {
8
- text: '',
8
+ text: function text() {
9
+ return '';
10
+ },
9
11
  button: function button(_ref) {
10
12
  var isRelevantSorted = _ref.isRelevantSorted;
11
13
  return isRelevantSorted ? 'See all results' : 'See relevant results';
@@ -4,10 +4,69 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+
8
+ var _preact = require("preact");
9
+
10
+ /** @jsx h */
11
+ var _ref2 = (0, _preact.h)("path", {
12
+ d: "M8.114 10L.944 2.83 0 1.885 1.886 0l.943.943L10 8.113l7.17-7.17.944-.943L20 1.886l-.943.943-7.17 7.17 7.17 7.17.943.944L18.114 20l-.943-.943-7.17-7.17-7.17 7.17-.944.943L0 18.114l.943-.943L8.113 10z"
13
+ });
14
+
15
+ var _ref4 = (0, _preact.h)("path", {
16
+ d: "M26.804 29.01c-2.832 2.34-6.465 3.746-10.426 3.746C7.333 32.756 0 25.424 0 16.378 0 7.333 7.333 0 16.378 0c9.046 0 16.378 7.333 16.378 16.378 0 3.96-1.406 7.594-3.746 10.426l10.534 10.534c.607.607.61 1.59-.004 2.202-.61.61-1.597.61-2.202.004L26.804 29.01zm-10.426.627c7.323 0 13.26-5.936 13.26-13.26 0-7.32-5.937-13.257-13.26-13.257C9.056 3.12 3.12 9.056 3.12 16.378c0 7.323 5.936 13.26 13.258 13.26z"
17
+ });
18
+
19
+ var _ref6 = (0, _preact.h)("g", {
20
+ fill: "none",
21
+ fillRule: "evenodd"
22
+ }, (0, _preact.h)("g", {
23
+ transform: "translate(1 1)",
24
+ strokeWidth: "2"
25
+ }, (0, _preact.h)("circle", {
26
+ strokeOpacity: ".5",
27
+ cx: "18",
28
+ cy: "18",
29
+ r: "18"
30
+ }), (0, _preact.h)("path", {
31
+ d: "M36 18c0-9.94-8.06-18-18-18"
32
+ }, (0, _preact.h)("animateTransform", {
33
+ attributeName: "transform",
34
+ type: "rotate",
35
+ from: "0 18 18",
36
+ to: "360 18 18",
37
+ dur: "1s",
38
+ repeatCount: "indefinite"
39
+ }))));
40
+
7
41
  var defaultTemplate = {
8
- reset: "\n<svg class=\"{{cssClasses.resetIcon}}\" viewBox=\"0 0 20 20\" width=\"10\" height=\"10\">\n <path d=\"M8.114 10L.944 2.83 0 1.885 1.886 0l.943.943L10 8.113l7.17-7.17.944-.943L20 1.886l-.943.943-7.17 7.17 7.17 7.17.943.944L18.114 20l-.943-.943-7.17-7.17-7.17 7.17-.944.943L0 18.114l.943-.943L8.113 10z\"></path>\n</svg>\n ",
9
- submit: "\n<svg class=\"{{cssClasses.submitIcon}}\" width=\"10\" height=\"10\" viewBox=\"0 0 40 40\">\n <path d=\"M26.804 29.01c-2.832 2.34-6.465 3.746-10.426 3.746C7.333 32.756 0 25.424 0 16.378 0 7.333 7.333 0 16.378 0c9.046 0 16.378 7.333 16.378 16.378 0 3.96-1.406 7.594-3.746 10.426l10.534 10.534c.607.607.61 1.59-.004 2.202-.61.61-1.597.61-2.202.004L26.804 29.01zm-10.426.627c7.323 0 13.26-5.936 13.26-13.26 0-7.32-5.937-13.257-13.26-13.257C9.056 3.12 3.12 9.056 3.12 16.378c0 7.323 5.936 13.26 13.258 13.26z\"></path>\n</svg>\n ",
10
- loadingIndicator: "\n<svg class=\"{{cssClasses.loadingIcon}}\" width=\"16\" height=\"16\" viewBox=\"0 0 38 38\" stroke=\"#444\">\n <g fill=\"none\" fillRule=\"evenodd\">\n <g transform=\"translate(1 1)\" strokeWidth=\"2\">\n <circle strokeOpacity=\".5\" cx=\"18\" cy=\"18\" r=\"18\" />\n <path d=\"M36 18c0-9.94-8.06-18-18-18\">\n <animateTransform\n attributeName=\"transform\"\n type=\"rotate\"\n from=\"0 18 18\"\n to=\"360 18 18\"\n dur=\"1s\"\n repeatCount=\"indefinite\"\n />\n </path>\n </g>\n </g>\n</svg>\n "
42
+ reset: function reset(_ref) {
43
+ var cssClasses = _ref.cssClasses;
44
+ return (0, _preact.h)("svg", {
45
+ className: cssClasses.resetIcon,
46
+ viewBox: "0 0 20 20",
47
+ width: "10",
48
+ height: "10"
49
+ }, _ref2);
50
+ },
51
+ submit: function submit(_ref3) {
52
+ var cssClasses = _ref3.cssClasses;
53
+ return (0, _preact.h)("svg", {
54
+ className: cssClasses.submitIcon,
55
+ width: "10",
56
+ height: "10",
57
+ viewBox: "0 0 40 40"
58
+ }, _ref4);
59
+ },
60
+ loadingIndicator: function loadingIndicator(_ref5) {
61
+ var cssClasses = _ref5.cssClasses;
62
+ return (0, _preact.h)("svg", {
63
+ className: cssClasses.loadingIcon,
64
+ width: "16",
65
+ height: "16",
66
+ viewBox: "0 0 38 38",
67
+ stroke: "#444"
68
+ }, _ref6);
69
+ }
11
70
  };
12
71
  var _default = defaultTemplate;
13
72
  exports.default = _default;
@@ -17,6 +17,8 @@ var _index = require("../../lib/utils/index.js");
17
17
 
18
18
  var _suit = require("../../lib/suit.js");
19
19
 
20
+ var _formatNumber = require("../../lib/formatNumber.js");
21
+
20
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
23
 
22
24
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
@@ -30,25 +32,71 @@ var withUsage = (0, _index.createDocumentationMessageGenerator)({
30
32
  });
31
33
  var suit = (0, _suit.component)('Stats');
32
34
  var defaultTemplates = {
33
- text: "\n {{#areHitsSorted}}\n {{#hasNoSortedResults}}No relevant results{{/hasNoSortedResults}}\n {{#hasOneSortedResults}}1 relevant result{{/hasOneSortedResults}}\n {{#hasManySortedResults}}{{#helpers.formatNumber}}{{nbSortedHits}}{{/helpers.formatNumber}} relevant results{{/hasManySortedResults}}\n sorted out of {{#helpers.formatNumber}}{{nbHits}}{{/helpers.formatNumber}}\n {{/areHitsSorted}}\n {{^areHitsSorted}}\n {{#hasNoResults}}No results{{/hasNoResults}}\n {{#hasOneResult}}1 result{{/hasOneResult}}\n {{#hasManyResults}}{{#helpers.formatNumber}}{{nbHits}}{{/helpers.formatNumber}} results{{/hasManyResults}}\n {{/areHitsSorted}}\n found in {{processingTimeMS}}ms"
35
+ text: function text(props) {
36
+ return "".concat(props.areHitsSorted ? getSortedResultsSentence(props) : getResultsSentence(props), " found in ").concat(props.processingTimeMS, "ms");
37
+ }
34
38
  };
35
39
  exports.defaultTemplates = defaultTemplates;
36
40
 
37
- var renderer = function renderer(_ref) {
38
- var renderState = _ref.renderState,
39
- cssClasses = _ref.cssClasses,
40
- containerNode = _ref.containerNode,
41
- templates = _ref.templates;
42
- return function (_ref2, isFirstRendering) {
43
- var hitsPerPage = _ref2.hitsPerPage,
44
- nbHits = _ref2.nbHits,
45
- nbSortedHits = _ref2.nbSortedHits,
46
- areHitsSorted = _ref2.areHitsSorted,
47
- nbPages = _ref2.nbPages,
48
- page = _ref2.page,
49
- processingTimeMS = _ref2.processingTimeMS,
50
- query = _ref2.query,
51
- instantSearchInstance = _ref2.instantSearchInstance;
41
+ function getSortedResultsSentence(_ref) {
42
+ var nbHits = _ref.nbHits,
43
+ hasNoSortedResults = _ref.hasNoSortedResults,
44
+ hasOneSortedResults = _ref.hasOneSortedResults,
45
+ hasManySortedResults = _ref.hasManySortedResults,
46
+ nbSortedHits = _ref.nbSortedHits;
47
+ var suffix = "sorted out of ".concat((0, _formatNumber.formatNumber)(nbHits));
48
+
49
+ if (hasNoSortedResults) {
50
+ return "No relevant results ".concat(suffix);
51
+ }
52
+
53
+ if (hasOneSortedResults) {
54
+ return "1 relevant result ".concat(suffix);
55
+ }
56
+
57
+ if (hasManySortedResults) {
58
+ return "".concat((0, _formatNumber.formatNumber)(nbSortedHits || 0), " relevant results ").concat(suffix);
59
+ }
60
+
61
+ return '';
62
+ }
63
+
64
+ function getResultsSentence(_ref2) {
65
+ var nbHits = _ref2.nbHits,
66
+ hasNoResults = _ref2.hasNoResults,
67
+ hasOneResult = _ref2.hasOneResult,
68
+ hasManyResults = _ref2.hasManyResults;
69
+
70
+ if (hasNoResults) {
71
+ return 'No results';
72
+ }
73
+
74
+ if (hasOneResult) {
75
+ return '1 result';
76
+ }
77
+
78
+ if (hasManyResults) {
79
+ return "".concat((0, _formatNumber.formatNumber)(nbHits), " results");
80
+ }
81
+
82
+ return '';
83
+ }
84
+
85
+ var renderer = function renderer(_ref3) {
86
+ var renderState = _ref3.renderState,
87
+ cssClasses = _ref3.cssClasses,
88
+ containerNode = _ref3.containerNode,
89
+ templates = _ref3.templates;
90
+ return function (_ref4, isFirstRendering) {
91
+ var hitsPerPage = _ref4.hitsPerPage,
92
+ nbHits = _ref4.nbHits,
93
+ nbSortedHits = _ref4.nbSortedHits,
94
+ areHitsSorted = _ref4.areHitsSorted,
95
+ nbPages = _ref4.nbPages,
96
+ page = _ref4.page,
97
+ processingTimeMS = _ref4.processingTimeMS,
98
+ query = _ref4.query,
99
+ instantSearchInstance = _ref4.instantSearchInstance;
52
100
 
53
101
  if (isFirstRendering) {
54
102
  renderState.templateProps = (0, _index.prepareTemplateProps)({
@@ -82,12 +130,12 @@ var renderer = function renderer(_ref) {
82
130
 
83
131
 
84
132
  var stats = function stats(widgetParams) {
85
- var _ref3 = widgetParams || {},
86
- container = _ref3.container,
87
- _ref3$cssClasses = _ref3.cssClasses,
88
- userCssClasses = _ref3$cssClasses === void 0 ? {} : _ref3$cssClasses,
89
- _ref3$templates = _ref3.templates,
90
- templates = _ref3$templates === void 0 ? {} : _ref3$templates;
133
+ var _ref5 = widgetParams || {},
134
+ container = _ref5.container,
135
+ _ref5$cssClasses = _ref5.cssClasses,
136
+ userCssClasses = _ref5$cssClasses === void 0 ? {} : _ref5$cssClasses,
137
+ _ref5$templates = _ref5.templates,
138
+ templates = _ref5$templates === void 0 ? {} : _ref5$templates;
91
139
 
92
140
  if (!container) {
93
141
  throw new Error(withUsage('The `container` option is required.'));
@@ -5,7 +5,10 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var defaultTemplates = {
8
- labelText: '{{name}}'
8
+ labelText: function labelText(_ref) {
9
+ var name = _ref.name;
10
+ return name;
11
+ }
9
12
  };
10
13
  var _default = defaultTemplates;
11
14
  exports.default = _default;
@@ -5,22 +5,94 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
- var getButtonInnerElement = function getButtonInnerElement(status, errorCode, isListening) {
8
+ var _preact = require("preact");
9
+
10
+ /** @jsx h */
11
+ var _ref2 = (0, _preact.h)(_preact.Fragment, null, (0, _preact.h)("line", {
12
+ x1: "1",
13
+ y1: "1",
14
+ x2: "23",
15
+ y2: "23"
16
+ }), (0, _preact.h)("path", {
17
+ d: "M9 9v3a3 3 0 0 0 5.12 2.12M15 9.34V4a3 3 0 0 0-5.94-.6"
18
+ }), (0, _preact.h)("path", {
19
+ d: "M17 16.95A7 7 0 0 1 5 12v-2m14 0v2a7 7 0 0 1-.11 1.23"
20
+ }), (0, _preact.h)("line", {
21
+ x1: "12",
22
+ y1: "19",
23
+ x2: "12",
24
+ y2: "23"
25
+ }), (0, _preact.h)("line", {
26
+ x1: "8",
27
+ y1: "23",
28
+ x2: "16",
29
+ y2: "23"
30
+ }));
31
+
32
+ var _ref3 = (0, _preact.h)("path", {
33
+ d: "M19 10v2a7 7 0 0 1-14 0v-2"
34
+ });
35
+
36
+ var _ref4 = (0, _preact.h)("line", {
37
+ x1: "12",
38
+ y1: "19",
39
+ x2: "12",
40
+ y2: "23"
41
+ });
42
+
43
+ var _ref5 = (0, _preact.h)("line", {
44
+ x1: "8",
45
+ y1: "23",
46
+ x2: "16",
47
+ y2: "23"
48
+ });
49
+
50
+ var ButtonInnerElement = function ButtonInnerElement(_ref) {
51
+ var status = _ref.status,
52
+ errorCode = _ref.errorCode,
53
+ isListening = _ref.isListening;
54
+
9
55
  if (status === 'error' && errorCode === 'not-allowed') {
10
- return "<line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\"></line>\n <path d=\"M9 9v3a3 3 0 0 0 5.12 2.12M15 9.34V4a3 3 0 0 0-5.94-.6\"></path>\n <path d=\"M17 16.95A7 7 0 0 1 5 12v-2m14 0v2a7 7 0 0 1-.11 1.23\"></path>\n <line x1=\"12\" y1=\"19\" x2=\"12\" y2=\"23\"></line>\n <line x1=\"8\" y1=\"23\" x2=\"16\" y2=\"23\"></line>";
56
+ return _ref2;
11
57
  }
12
58
 
13
- return "<path\n d=\"M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z\"\n fill=\"".concat(isListening ? 'currentColor' : 'none', "\">\n </path>\n <path d=\"M19 10v2a7 7 0 0 1-14 0v-2\"></path>\n <line x1=\"12\" y1=\"19\" x2=\"12\" y2=\"23\"></line>\n <line x1=\"8\" y1=\"23\" x2=\"16\" y2=\"23\"></line>");
59
+ return (0, _preact.h)(_preact.Fragment, null, (0, _preact.h)("path", {
60
+ d: "M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z",
61
+ fill: isListening ? 'currentColor' : 'none'
62
+ }), _ref3, _ref4, _ref5);
14
63
  };
15
64
 
16
65
  var defaultTemplates = {
17
- buttonText: function buttonText(_ref) {
18
- var status = _ref.status,
19
- errorCode = _ref.errorCode,
20
- isListening = _ref.isListening;
21
- return "<svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n ".concat(getButtonInnerElement(status, errorCode, isListening), "\n </svg>");
66
+ buttonText: function buttonText(_ref6) {
67
+ var status = _ref6.status,
68
+ errorCode = _ref6.errorCode,
69
+ isListening = _ref6.isListening;
70
+ return (0, _preact.h)("svg", {
71
+ width: "16",
72
+ height: "16",
73
+ viewBox: "0 0 24 24",
74
+ fill: "none",
75
+ stroke: "currentColor"
76
+ /* eslint-disable react/no-unknown-property */
77
+ // Preact supports kebab case attributes, and using camel case would
78
+ // require using `preact/compat`.
79
+ // @TODO: reconsider using the `react` ESLint preset
80
+ ,
81
+ "stroke-width": "2",
82
+ "stroke-linecap": "round",
83
+ "stroke-linejoin": "round"
84
+ /* eslint-enable react/no-unknown-property */
85
+
86
+ }, (0, _preact.h)(ButtonInnerElement, {
87
+ status: status,
88
+ errorCode: errorCode,
89
+ isListening: isListening
90
+ }));
22
91
  },
23
- status: "<p>{{transcript}}</p>"
92
+ status: function status(_ref7) {
93
+ var transcript = _ref7.transcript;
94
+ return (0, _preact.h)("p", null, transcript);
95
+ }
24
96
  };
25
97
  var _default = defaultTemplates;
26
98
  exports.default = _default;