instantsearch.js 4.45.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 (85) hide show
  1. package/CHANGELOG.md +10 -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/lib/createHelpers.js +3 -1
  6. package/cjs/lib/formatNumber.js +10 -0
  7. package/cjs/lib/utils/cx.js +10 -0
  8. package/cjs/lib/utils/index.js +10 -1
  9. package/cjs/lib/utils/renderTemplate.js +17 -2
  10. package/cjs/lib/version.js +1 -1
  11. package/cjs/widgets/answers/defaultTemplates.js +6 -2
  12. package/cjs/widgets/breadcrumb/defaultTemplates.js +6 -2
  13. package/cjs/widgets/clear-refinements/defaultTemplates.js +3 -1
  14. package/cjs/widgets/geo-search/createHTMLMarker.js +10 -4
  15. package/cjs/widgets/geo-search/defaultTemplates.js +18 -4
  16. package/cjs/widgets/hierarchical-menu/defaultTemplates.js +26 -2
  17. package/cjs/widgets/hits/defaultTemplates.js +3 -1
  18. package/cjs/widgets/infinite-hits/defaultTemplates.js +9 -3
  19. package/cjs/widgets/menu/defaultTemplates.js +26 -2
  20. package/cjs/widgets/menu-select/defaultTemplates.js +11 -2
  21. package/cjs/widgets/numeric-menu/defaultTemplates.js +20 -1
  22. package/cjs/widgets/range-input/range-input.js +6 -2
  23. package/cjs/widgets/rating-menu/defaultTemplates.js +57 -1
  24. package/cjs/widgets/refinement-list/defaultTemplates.js +38 -3
  25. package/cjs/widgets/relevant-sort/defaultTemplates.js +3 -1
  26. package/cjs/widgets/search-box/defaultTemplates.js +62 -3
  27. package/cjs/widgets/stats/stats.js +70 -22
  28. package/cjs/widgets/toggle-refinement/defaultTemplates.js +4 -1
  29. package/cjs/widgets/voice-search/defaultTemplates.js +81 -9
  30. package/dist/instantsearch.development.d.ts +142 -19
  31. package/dist/instantsearch.development.js +1232 -563
  32. package/dist/instantsearch.development.js.map +1 -1
  33. package/dist/instantsearch.production.d.ts +142 -19
  34. package/dist/instantsearch.production.min.d.ts +142 -19
  35. package/dist/instantsearch.production.min.js +2 -2
  36. package/dist/instantsearch.production.min.js.map +1 -1
  37. package/es/components/Hits/Hits.d.ts +1 -1
  38. package/es/components/Hits/Hits.js +3 -1
  39. package/es/components/InfiniteHits/InfiniteHits.d.ts +1 -1
  40. package/es/components/InfiniteHits/InfiniteHits.js +3 -1
  41. package/es/components/Template/Template.d.ts +4 -2
  42. package/es/components/Template/Template.js +14 -4
  43. package/es/lib/createHelpers.js +2 -1
  44. package/es/lib/formatNumber.d.ts +1 -0
  45. package/es/lib/formatNumber.js +3 -0
  46. package/es/lib/utils/cx.d.ts +1 -0
  47. package/es/lib/utils/cx.js +3 -0
  48. package/es/lib/utils/index.d.ts +1 -0
  49. package/es/lib/utils/index.js +2 -1
  50. package/es/lib/utils/renderTemplate.d.ts +4 -3
  51. package/es/lib/utils/renderTemplate.js +15 -2
  52. package/es/lib/version.d.ts +1 -1
  53. package/es/lib/version.js +1 -1
  54. package/es/types/templates.d.ts +16 -3
  55. package/es/widgets/answers/defaultTemplates.js +6 -2
  56. package/es/widgets/breadcrumb/defaultTemplates.js +6 -2
  57. package/es/widgets/clear-refinements/clear-refinements.d.ts +3 -1
  58. package/es/widgets/clear-refinements/defaultTemplates.js +3 -1
  59. package/es/widgets/geo-search/createHTMLMarker.d.ts +2 -1
  60. package/es/widgets/geo-search/createHTMLMarker.js +8 -1
  61. package/es/widgets/geo-search/defaultTemplates.d.ts +1 -0
  62. package/es/widgets/geo-search/defaultTemplates.js +17 -4
  63. package/es/widgets/hierarchical-menu/defaultTemplates.js +22 -2
  64. package/es/widgets/hierarchical-menu/hierarchical-menu.d.ts +2 -0
  65. package/es/widgets/hits/defaultTemplates.js +3 -1
  66. package/es/widgets/hits/hits.d.ts +2 -1
  67. package/es/widgets/infinite-hits/defaultTemplates.js +9 -3
  68. package/es/widgets/infinite-hits/infinite-hits.d.ts +1 -3
  69. package/es/widgets/menu/defaultTemplates.js +22 -2
  70. package/es/widgets/menu-select/defaultTemplates.js +9 -2
  71. package/es/widgets/numeric-menu/defaultTemplates.js +18 -1
  72. package/es/widgets/range-input/range-input.js +6 -2
  73. package/es/widgets/rating-menu/defaultTemplates.js +54 -1
  74. package/es/widgets/rating-menu/rating-menu.d.ts +6 -0
  75. package/es/widgets/refinement-list/defaultTemplates.js +34 -3
  76. package/es/widgets/refinement-list/refinement-list.d.ts +7 -1
  77. package/es/widgets/relevant-sort/defaultTemplates.js +3 -1
  78. package/es/widgets/search-box/defaultTemplates.js +61 -3
  79. package/es/widgets/search-box/search-box.d.ts +10 -3
  80. package/es/widgets/stats/stats.d.ts +10 -6
  81. package/es/widgets/stats/stats.js +69 -22
  82. package/es/widgets/toggle-refinement/defaultTemplates.js +4 -1
  83. package/es/widgets/toggle-refinement/toggle-refinement.d.ts +3 -1
  84. package/es/widgets/voice-search/defaultTemplates.js +81 -9
  85. package/package.json +6 -5
package/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ # [4.46.0](https://github.com/algolia/instantsearch.js/compare/v4.45.1...v4.46.0) (2022-09-12)
2
+
3
+
4
+ ### Features
5
+
6
+ * **html:** deprecate Hogan.js and string-based templates ([#5095](https://github.com/algolia/instantsearch.js/issues/5095)) ([a06ddf5](https://github.com/algolia/instantsearch.js/commit/a06ddf55f1ffd1a93cddab2fcf95d2be3220a423))
7
+ * **html:** introduce `html` templating ([#5081](https://github.com/algolia/instantsearch.js/issues/5081)) ([e55e224](https://github.com/algolia/instantsearch.js/commit/e55e2245256193d27f2c85f24b8aab7c9048c554))
8
+
9
+
10
+
1
11
  ## [4.45.1](https://github.com/algolia/instantsearch.js/compare/v4.45.0...v4.45.1) (2022-09-06)
2
12
 
3
13
 
@@ -25,6 +25,7 @@ var Hits = function Hits(_ref) {
25
25
  var results = _ref.results,
26
26
  hits = _ref.hits,
27
27
  bindEvent = _ref.bindEvent,
28
+ sendEvent = _ref.sendEvent,
28
29
  cssClasses = _ref.cssClasses,
29
30
  templateProps = _ref.templateProps;
30
31
 
@@ -53,7 +54,8 @@ var Hits = function Hits(_ref) {
53
54
  data: _objectSpread(_objectSpread({}, hit), {}, {
54
55
  __hitIndex: index
55
56
  }),
56
- bindEvent: bindEvent
57
+ bindEvent: bindEvent,
58
+ sendEvent: sendEvent
57
59
  }));
58
60
  })));
59
61
  };
@@ -25,6 +25,7 @@ var InfiniteHits = function InfiniteHits(_ref) {
25
25
  var results = _ref.results,
26
26
  hits = _ref.hits,
27
27
  bindEvent = _ref.bindEvent,
28
+ sendEvent = _ref.sendEvent,
28
29
  hasShowPrevious = _ref.hasShowPrevious,
29
30
  showPrevious = _ref.showPrevious,
30
31
  showMore = _ref.showMore,
@@ -66,7 +67,8 @@ var InfiniteHits = function InfiniteHits(_ref) {
66
67
  data: _objectSpread(_objectSpread({}, hit), {}, {
67
68
  __hitIndex: position
68
69
  }),
69
- bindEvent: bindEvent
70
+ bindEvent: bindEvent,
71
+ sendEvent: sendEvent
70
72
  }));
71
73
  })), (0, _preact.h)(_Template.default, _extends({}, templateProps, {
72
74
  templateKey: "showMoreText",
@@ -1,7 +1,5 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
-
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
@@ -13,6 +11,8 @@ var _index = require("../../lib/utils/index.js");
13
11
 
14
12
  function _extends() { _extends = Object.assign || 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); }
15
13
 
14
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
15
+
16
16
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
17
17
 
18
18
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
@@ -63,6 +63,11 @@ var Template = /*#__PURE__*/function (_Component) {
63
63
  }, {
64
64
  key: "render",
65
65
  value: function render() {
66
+ var _this = this;
67
+
68
+ process.env.NODE_ENV === 'development' ? (0, _index.warning)(Object.keys(this.props.templates).every(function (key) {
69
+ return typeof _this.props.templates[key] === 'function';
70
+ }), "Hogan.js and string-based templates are deprecated and will not be supported in InstantSearch.js 5.x.\n\nYou can replace them with function-form templates and use either the provided `html` function or JSX templates.\n\nSee: https://www.algolia.com/doc/guides/building-search-ui/upgrade-guides/js/#upgrade-templates") : void 0;
66
71
  var RootTagName = this.props.rootTagName;
67
72
  var useCustomCompileOptions = this.props.useCustomCompileOptions[this.props.templateKey];
68
73
  var compileOptions = useCustomCompileOptions ? this.props.templatesConfig.compileOptions : {};
@@ -72,7 +77,8 @@ var Template = /*#__PURE__*/function (_Component) {
72
77
  compileOptions: compileOptions,
73
78
  helpers: this.props.templatesConfig.helpers,
74
79
  data: this.props.data,
75
- bindEvent: this.props.bindEvent
80
+ bindEvent: this.props.bindEvent,
81
+ sendEvent: this.props.sendEvent
76
82
  });
77
83
 
78
84
  if (content === null) {
@@ -81,6 +87,10 @@ var Template = /*#__PURE__*/function (_Component) {
81
87
  return null;
82
88
  }
83
89
 
90
+ if (_typeof(content) === 'object') {
91
+ return (0, _preact.h)(RootTagName, this.props.rootProps, content);
92
+ }
93
+
84
94
  return (0, _preact.h)(RootTagName, _extends({}, this.props.rootProps, {
85
95
  dangerouslySetInnerHTML: {
86
96
  __html: content
@@ -7,6 +7,8 @@ exports.default = hoganHelpers;
7
7
 
8
8
  var _index = require("../helpers/index.js");
9
9
 
10
+ var _formatNumber2 = require("./formatNumber.js");
11
+
10
12
  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; }
11
13
 
12
14
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
@@ -17,7 +19,7 @@ function hoganHelpers(_ref) {
17
19
  var numberLocale = _ref.numberLocale;
18
20
  return {
19
21
  formatNumber: function formatNumber(value, render) {
20
- return Number(render(value)).toLocaleString(numberLocale);
22
+ return (0, _formatNumber2.formatNumber)(Number(render(value)), numberLocale);
21
23
  },
22
24
  highlight: function highlight(options, render) {
23
25
  try {
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.formatNumber = formatNumber;
7
+
8
+ function formatNumber(value, numberLocale) {
9
+ return value.toLocaleString(numberLocale);
10
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.cx = cx;
7
+
8
+ function cx(cssClasses) {
9
+ return Array.isArray(cssClasses) ? cssClasses.filter(Boolean).join(' ') : cssClasses || '';
10
+ }
@@ -56,7 +56,8 @@ var _exportNames = {
56
56
  serializePayload: true,
57
57
  deserializePayload: true,
58
58
  getWidgetAttribute: true,
59
- safelyRunOnBrowser: true
59
+ safelyRunOnBrowser: true,
60
+ cx: true
60
61
  };
61
62
  Object.defineProperty(exports, "capitalize", {
62
63
  enumerable: true,
@@ -376,6 +377,12 @@ Object.defineProperty(exports, "safelyRunOnBrowser", {
376
377
  return _safelyRunOnBrowser.safelyRunOnBrowser;
377
378
  }
378
379
  });
380
+ Object.defineProperty(exports, "cx", {
381
+ enumerable: true,
382
+ get: function get() {
383
+ return _cx.cx;
384
+ }
385
+ });
379
386
 
380
387
  var _capitalize = _interopRequireDefault(require("./capitalize.js"));
381
388
 
@@ -495,4 +502,6 @@ var _getWidgetAttribute = require("./getWidgetAttribute.js");
495
502
 
496
503
  var _safelyRunOnBrowser = require("./safelyRunOnBrowser.js");
497
504
 
505
+ var _cx = require("./cx.js");
506
+
498
507
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -7,6 +7,10 @@ exports.default = void 0;
7
7
 
8
8
  var _hogan = _interopRequireDefault(require("hogan.js"));
9
9
 
10
+ var _index = require("../../helpers/components/index.js");
11
+
12
+ var _preact = require("htm/preact");
13
+
10
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
15
 
12
16
  function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
@@ -46,7 +50,8 @@ function renderTemplate(_ref) {
46
50
  compileOptions = _ref.compileOptions,
47
51
  helpers = _ref.helpers,
48
52
  data = _ref.data,
49
- bindEvent = _ref.bindEvent;
53
+ bindEvent = _ref.bindEvent,
54
+ sendEvent = _ref.sendEvent;
50
55
  var template = templates[templateKey];
51
56
 
52
57
  if (typeof template !== 'string' && typeof template !== 'function') {
@@ -54,7 +59,17 @@ function renderTemplate(_ref) {
54
59
  }
55
60
 
56
61
  if (typeof template === 'function') {
57
- return template(data, bindEvent);
62
+ // @MAJOR no longer pass bindEvent when string templates are removed
63
+ var params = bindEvent || {};
64
+ params.html = _preact.html;
65
+ params.sendEvent = sendEvent;
66
+ params.components = {
67
+ Highlight: _index.Highlight,
68
+ ReverseHighlight: _index.ReverseHighlight,
69
+ Snippet: _index.Snippet,
70
+ ReverseSnippet: _index.ReverseSnippet
71
+ };
72
+ return template(data, params);
58
73
  }
59
74
 
60
75
  var transformedHelpers = transformHelpersToHogan(helpers, compileOptions, data);
@@ -4,5 +4,5 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _default = '4.45.1';
7
+ var _default = '4.46.0';
8
8
  exports.default = _default;
@@ -5,8 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var defaultTemplates = {
8
- header: '',
9
- loader: '',
8
+ header: function header() {
9
+ return '';
10
+ },
11
+ loader: function loader() {
12
+ return '';
13
+ },
10
14
  item: function item(_item) {
11
15
  return JSON.stringify(_item);
12
16
  }
@@ -5,8 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var defaultTemplates = {
8
- home: 'Home',
9
- separator: '>'
8
+ home: function home() {
9
+ return 'Home';
10
+ },
11
+ separator: function separator() {
12
+ return '>';
13
+ }
10
14
  };
11
15
  var _default = defaultTemplates;
12
16
  exports.default = _default;
@@ -5,7 +5,9 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var defaultTemplates = {
8
- resetLabel: 'Clear refinements'
8
+ resetLabel: function resetLabel() {
9
+ return 'Clear refinements';
10
+ }
9
11
  };
10
12
  var _default = defaultTemplates;
11
13
  exports.default = _default;
@@ -1,12 +1,14 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
-
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
8
6
  exports.default = void 0;
9
7
 
8
+ var _preact = require("preact");
9
+
10
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
11
+
10
12
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
11
13
 
12
14
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
@@ -29,7 +31,6 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
29
31
 
30
32
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
31
33
 
32
- /* global google EventListener */
33
34
  var createHTMLMarker = function createHTMLMarker(googleReference) {
34
35
  var HTMLMarker = /*#__PURE__*/function (_googleReference$maps) {
35
36
  _inherits(HTMLMarker, _googleReference$maps);
@@ -73,7 +74,12 @@ var createHTMLMarker = function createHTMLMarker(googleReference) {
73
74
  _this.element = document.createElement('div');
74
75
  _this.element.className = className;
75
76
  _this.element.style.position = 'absolute';
76
- _this.element.innerHTML = template;
77
+
78
+ if (_typeof(template) === 'object') {
79
+ (0, _preact.render)(template, _this.element);
80
+ } else {
81
+ _this.element.innerHTML = template;
82
+ }
77
83
 
78
84
  _this.setMap(map);
79
85
 
@@ -4,11 +4,25 @@ 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 _ref = (0, _preact.h)("p", null, "Your custom HTML Marker");
12
+
7
13
  var defaultTemplates = {
8
- HTMLMarker: '<p>Your custom HTML Marker</p>',
9
- reset: 'Clear the map refinement',
10
- toggle: 'Search as I move the map',
11
- redo: 'Redo search here'
14
+ HTMLMarker: function HTMLMarker() {
15
+ return _ref;
16
+ },
17
+ reset: function reset() {
18
+ return 'Clear the map refinement';
19
+ },
20
+ toggle: function toggle() {
21
+ return 'Search as I move the map';
22
+ },
23
+ redo: function redo() {
24
+ return 'Redo search here';
25
+ }
12
26
  };
13
27
  var _default = defaultTemplates;
14
28
  exports.default = _default;
@@ -4,9 +4,33 @@ 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: '<a class="{{cssClasses.link}}" href="{{url}}">' + '<span class="{{cssClasses.label}}">{{label}}</span>' + '<span class="{{cssClasses.count}}">{{#helpers.formatNumber}}{{count}}{{/helpers.formatNumber}}</span>' + '</a>',
9
- showMoreText: "\n {{#isShowingMore}}\n Show less\n {{/isShowingMore}}\n {{^isShowingMore}}\n Show more\n {{/isShowingMore}}\n "
16
+ item: function item(_ref) {
17
+ var url = _ref.url,
18
+ label = _ref.label,
19
+ count = _ref.count,
20
+ cssClasses = _ref.cssClasses;
21
+ return (0, _preact.h)("a", {
22
+ className: (0, _index.cx)(cssClasses.link),
23
+ href: url
24
+ }, (0, _preact.h)("span", {
25
+ className: (0, _index.cx)(cssClasses.label)
26
+ }, label), (0, _preact.h)("span", {
27
+ className: (0, _index.cx)(cssClasses.count)
28
+ }, (0, _formatNumber.formatNumber)(count)));
29
+ },
30
+ showMoreText: function showMoreText(_ref2) {
31
+ var isShowingMore = _ref2.isShowingMore;
32
+ return isShowingMore ? 'Show less' : 'Show more';
33
+ }
10
34
  };
11
35
  var _default = defaultTemplates;
12
36
  exports.default = _default;
@@ -5,7 +5,9 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var defaultTemplates = {
8
- empty: 'No results',
8
+ empty: function empty() {
9
+ return 'No results';
10
+ },
9
11
  item: function item(data) {
10
12
  return JSON.stringify(data, null, 2);
11
13
  }
@@ -5,9 +5,15 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var defaultTemplates = {
8
- empty: 'No results',
9
- showPreviousText: 'Show previous results',
10
- showMoreText: 'Show more results',
8
+ empty: function empty() {
9
+ return 'No results';
10
+ },
11
+ showPreviousText: function showPreviousText() {
12
+ return 'Show previous results';
13
+ },
14
+ showMoreText: function showMoreText() {
15
+ return 'Show more results';
16
+ },
11
17
  item: function item(data) {
12
18
  return JSON.stringify(data, null, 2);
13
19
  }
@@ -4,9 +4,33 @@ 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: '<a class="{{cssClasses.link}}" href="{{url}}">' + '<span class="{{cssClasses.label}}">{{label}}</span>' + '<span class="{{cssClasses.count}}">{{#helpers.formatNumber}}{{count}}{{/helpers.formatNumber}}</span>' + '</a>',
9
- showMoreText: "\n {{#isShowingMore}}\n Show less\n {{/isShowingMore}}\n {{^isShowingMore}}\n Show more\n {{/isShowingMore}}\n "
16
+ item: function item(_ref) {
17
+ var cssClasses = _ref.cssClasses,
18
+ url = _ref.url,
19
+ label = _ref.label,
20
+ count = _ref.count;
21
+ return (0, _preact.h)("a", {
22
+ className: (0, _index.cx)(cssClasses.link),
23
+ href: url
24
+ }, (0, _preact.h)("span", {
25
+ className: (0, _index.cx)(cssClasses.label)
26
+ }, label), (0, _preact.h)("span", {
27
+ className: (0, _index.cx)(cssClasses.count)
28
+ }, (0, _formatNumber.formatNumber)(count)));
29
+ },
30
+ showMoreText: function showMoreText(_ref2) {
31
+ var isShowingMore = _ref2.isShowingMore;
32
+ return isShowingMore ? 'Show less' : 'Show more';
33
+ }
10
34
  };
11
35
  var _default = defaultTemplates;
12
36
  exports.default = _default;
@@ -4,9 +4,18 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+
8
+ var _formatNumber = require("../../lib/formatNumber.js");
9
+
7
10
  var defaultTemplates = {
8
- item: '{{label}} ({{#helpers.formatNumber}}{{count}}{{/helpers.formatNumber}})',
9
- defaultOption: 'See all'
11
+ item: function item(_ref) {
12
+ var label = _ref.label,
13
+ count = _ref.count;
14
+ return "".concat(label, " (").concat((0, _formatNumber.formatNumber)(count), ")");
15
+ },
16
+ defaultOption: function defaultOption() {
17
+ return 'See all';
18
+ }
10
19
  };
11
20
  var _default = defaultTemplates;
12
21
  exports.default = _default;
@@ -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';