instantsearch.js 4.46.0 → 4.46.1

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 (165) hide show
  1. package/CHANGELOG.md +12 -1
  2. package/cjs/connectors/toggle-refinement/connectToggleRefinement.js +3 -1
  3. package/cjs/helpers/components/Highlight.js +7 -7
  4. package/cjs/helpers/components/ReverseHighlight.js +7 -7
  5. package/cjs/helpers/components/ReverseSnippet.js +7 -7
  6. package/cjs/helpers/components/Snippet.js +7 -7
  7. package/cjs/lib/InstantSearch.js +33 -24
  8. package/cjs/lib/utils/capitalize.js +2 -5
  9. package/cjs/lib/utils/checkIndexUiState.js +3 -5
  10. package/cjs/lib/utils/checkRendering.js +4 -9
  11. package/cjs/lib/utils/clearRefinements.js +3 -9
  12. package/cjs/lib/utils/concatHighlightedParts.js +1 -1
  13. package/cjs/lib/utils/createSendEventForFacet.js +2 -4
  14. package/cjs/lib/utils/defer.js +3 -6
  15. package/cjs/lib/utils/detect-insights-client.js +1 -1
  16. package/cjs/lib/utils/documentation.js +6 -9
  17. package/cjs/lib/utils/escape-highlight.js +4 -6
  18. package/cjs/lib/utils/escape-html.js +60 -0
  19. package/cjs/lib/utils/find.js +2 -5
  20. package/cjs/lib/utils/findIndex.js +2 -5
  21. package/cjs/lib/utils/getContainerNode.js +4 -9
  22. package/cjs/lib/utils/getHighlightFromSiblings.js +3 -5
  23. package/cjs/lib/utils/getHighlightedParts.js +1 -1
  24. package/cjs/lib/utils/getObjectType.js +2 -5
  25. package/cjs/lib/utils/getPropertyByPath.js +2 -5
  26. package/cjs/lib/utils/getRefinements.js +4 -6
  27. package/cjs/lib/utils/index.js +562 -440
  28. package/cjs/lib/utils/isDomElement.js +2 -5
  29. package/cjs/lib/utils/isEqual.js +2 -5
  30. package/cjs/lib/utils/isFacetRefined.js +1 -1
  31. package/cjs/lib/utils/isFiniteNumber.js +3 -5
  32. package/cjs/lib/utils/isIndexWidget.js +10 -0
  33. package/cjs/lib/utils/isPlainObject.js +2 -5
  34. package/cjs/lib/utils/isSpecialClick.js +2 -5
  35. package/cjs/lib/utils/logger.js +3 -5
  36. package/cjs/lib/utils/mergeSearchParameters.js +7 -10
  37. package/cjs/lib/utils/noop.js +2 -5
  38. package/cjs/lib/utils/prepareTemplateProps.js +4 -9
  39. package/cjs/lib/utils/range.js +2 -5
  40. package/cjs/lib/utils/renderTemplate.js +2 -5
  41. package/cjs/lib/utils/resolveSearchParameters.js +3 -6
  42. package/cjs/lib/utils/reverseHighlightedParts.js +3 -5
  43. package/cjs/lib/utils/setIndexHelperState.js +28 -0
  44. package/cjs/lib/utils/toArray.js +2 -5
  45. package/cjs/lib/utils/uniq.js +2 -5
  46. package/cjs/lib/version.js +1 -1
  47. package/cjs/middlewares/createInsightsMiddleware.js +23 -30
  48. package/cjs/middlewares/createMetadataMiddleware.js +1 -0
  49. package/cjs/middlewares/createRouterMiddleware.js +1 -0
  50. package/cjs/widgets/index/index.js +8 -12
  51. package/dist/instantsearch.development.d.ts +11 -3
  52. package/dist/instantsearch.development.js +2242 -2181
  53. package/dist/instantsearch.development.js.map +1 -1
  54. package/dist/instantsearch.production.d.ts +11 -3
  55. package/dist/instantsearch.production.min.d.ts +11 -3
  56. package/dist/instantsearch.production.min.js +2 -2
  57. package/dist/instantsearch.production.min.js.map +1 -1
  58. package/es/components/Breadcrumb/Breadcrumb.d.ts +1 -1
  59. package/es/components/ClearRefinements/ClearRefinements.d.ts +1 -1
  60. package/es/components/GeoSearchControls/GeoSearchControls.d.ts +1 -1
  61. package/es/components/Hits/Hits.d.ts +1 -2
  62. package/es/components/RefinementList/RefinementList.d.ts +1 -1
  63. package/es/components/Template/Template.d.ts +1 -2
  64. package/es/components/ToggleRefinement/ToggleRefinement.d.ts +1 -4
  65. package/es/components/ToggleRefinement/ToggleRefinement.js +0 -4
  66. package/es/connectors/toggle-refinement/connectToggleRefinement.d.ts +3 -2
  67. package/es/connectors/toggle-refinement/connectToggleRefinement.js +3 -1
  68. package/es/helpers/components/Highlight.js +7 -5
  69. package/es/helpers/components/ReverseHighlight.js +7 -5
  70. package/es/helpers/components/ReverseSnippet.js +7 -5
  71. package/es/helpers/components/Snippet.js +7 -5
  72. package/es/lib/InstantSearch.d.ts +6 -1
  73. package/es/lib/InstantSearch.js +34 -21
  74. package/es/lib/utils/capitalize.d.ts +1 -2
  75. package/es/lib/utils/capitalize.js +2 -4
  76. package/es/lib/utils/checkIndexUiState.js +1 -1
  77. package/es/lib/utils/checkRendering.d.ts +1 -2
  78. package/es/lib/utils/checkRendering.js +3 -6
  79. package/es/lib/utils/clearRefinements.d.ts +4 -8
  80. package/es/lib/utils/clearRefinements.js +3 -8
  81. package/es/lib/utils/concatHighlightedParts.d.ts +1 -1
  82. package/es/lib/utils/concatHighlightedParts.js +1 -1
  83. package/es/lib/utils/createSendEventForFacet.js +1 -1
  84. package/es/lib/utils/createSendEventForHits.d.ts +0 -3
  85. package/es/lib/utils/createSendEventForHits.js +0 -3
  86. package/es/lib/utils/defer.d.ts +2 -2
  87. package/es/lib/utils/defer.js +2 -5
  88. package/es/lib/utils/detect-insights-client.d.ts +1 -1
  89. package/es/lib/utils/detect-insights-client.js +1 -1
  90. package/es/lib/utils/documentation.d.ts +2 -2
  91. package/es/lib/utils/documentation.js +4 -4
  92. package/es/lib/utils/escape-highlight.js +2 -2
  93. package/es/lib/utils/{escape.d.ts → escape-html.d.ts} +6 -2
  94. package/es/lib/utils/escape-html.js +51 -0
  95. package/es/lib/utils/escapeFacetValue.d.ts +1 -1
  96. package/es/lib/utils/find.d.ts +1 -2
  97. package/es/lib/utils/find.js +2 -4
  98. package/es/lib/utils/findIndex.d.ts +1 -2
  99. package/es/lib/utils/findIndex.js +2 -4
  100. package/es/lib/utils/getContainerNode.d.ts +1 -2
  101. package/es/lib/utils/getContainerNode.js +3 -5
  102. package/es/lib/utils/getHighlightFromSiblings.d.ts +1 -1
  103. package/es/lib/utils/getHighlightFromSiblings.js +2 -2
  104. package/es/lib/utils/getHighlightedParts.d.ts +1 -1
  105. package/es/lib/utils/getHighlightedParts.js +1 -1
  106. package/es/lib/utils/getObjectType.d.ts +1 -2
  107. package/es/lib/utils/getObjectType.js +2 -4
  108. package/es/lib/utils/getPropertyByPath.d.ts +1 -2
  109. package/es/lib/utils/getPropertyByPath.js +2 -4
  110. package/es/lib/utils/getRefinements.d.ts +1 -1
  111. package/es/lib/utils/getRefinements.js +2 -2
  112. package/es/lib/utils/index.d.ts +46 -46
  113. package/es/lib/utils/index.js +46 -46
  114. package/es/lib/utils/isDomElement.d.ts +1 -2
  115. package/es/lib/utils/isDomElement.js +2 -4
  116. package/es/lib/utils/isEqual.d.ts +1 -2
  117. package/es/lib/utils/isEqual.js +2 -4
  118. package/es/lib/utils/isFacetRefined.d.ts +1 -1
  119. package/es/lib/utils/isFacetRefined.js +1 -1
  120. package/es/lib/utils/isFiniteNumber.d.ts +1 -2
  121. package/es/lib/utils/isFiniteNumber.js +3 -4
  122. package/es/lib/utils/isIndexWidget.d.ts +3 -0
  123. package/es/lib/utils/isIndexWidget.js +3 -0
  124. package/es/lib/utils/isPlainObject.d.ts +1 -2
  125. package/es/lib/utils/isPlainObject.js +2 -4
  126. package/es/lib/utils/isSpecialClick.d.ts +1 -2
  127. package/es/lib/utils/isSpecialClick.js +2 -4
  128. package/es/lib/utils/logger.js +1 -1
  129. package/es/lib/utils/mergeSearchParameters.d.ts +1 -2
  130. package/es/lib/utils/mergeSearchParameters.js +4 -6
  131. package/es/lib/utils/noop.d.ts +1 -2
  132. package/es/lib/utils/noop.js +1 -3
  133. package/es/lib/utils/prepareTemplateProps.d.ts +2 -2
  134. package/es/lib/utils/prepareTemplateProps.js +3 -5
  135. package/es/lib/utils/range.d.ts +2 -2
  136. package/es/lib/utils/range.js +2 -4
  137. package/es/lib/utils/renderTemplate.d.ts +1 -2
  138. package/es/lib/utils/renderTemplate.js +2 -4
  139. package/es/lib/utils/resolveSearchParameters.d.ts +1 -2
  140. package/es/lib/utils/resolveSearchParameters.js +2 -4
  141. package/es/lib/utils/reverseHighlightedParts.d.ts +1 -1
  142. package/es/lib/utils/reverseHighlightedParts.js +2 -2
  143. package/es/lib/utils/setIndexHelperState.d.ts +3 -0
  144. package/es/lib/utils/setIndexHelperState.js +19 -0
  145. package/es/lib/utils/toArray.d.ts +3 -2
  146. package/es/lib/utils/toArray.js +2 -4
  147. package/es/lib/utils/uniq.d.ts +1 -2
  148. package/es/lib/utils/uniq.js +2 -4
  149. package/es/lib/version.d.ts +1 -1
  150. package/es/lib/version.js +1 -1
  151. package/es/middlewares/createInsightsMiddleware.js +23 -27
  152. package/es/middlewares/createMetadataMiddleware.js +1 -0
  153. package/es/middlewares/createRouterMiddleware.js +1 -0
  154. package/es/types/middleware.d.ts +1 -0
  155. package/es/widgets/index/index.d.ts +0 -1
  156. package/es/widgets/index/index.js +5 -6
  157. package/package.json +5 -5
  158. package/cjs/lib/utils/convertNumericRefinementsToFilters.js +0 -31
  159. package/cjs/lib/utils/escape.js +0 -35
  160. package/cjs/lib/utils/unescape.js +0 -32
  161. package/es/lib/utils/convertNumericRefinementsToFilters.d.ts +0 -2
  162. package/es/lib/utils/convertNumericRefinementsToFilters.js +0 -24
  163. package/es/lib/utils/escape.js +0 -27
  164. package/es/lib/utils/unescape.d.ts +0 -9
  165. package/es/lib/utils/unescape.js +0 -25
@@ -3,11 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports.isDomElement = isDomElement;
7
7
 
8
8
  function isDomElement(object) {
9
9
  return object instanceof HTMLElement || Boolean(object) && object.nodeType > 0;
10
- }
11
-
12
- var _default = isDomElement;
13
- exports.default = _default;
10
+ }
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports.isEqual = isEqual;
7
7
 
8
8
  function isPrimitive(obj) {
9
9
  return obj !== Object(obj);
@@ -35,7 +35,4 @@ function isEqual(first, second) {
35
35
  }
36
36
 
37
37
  return true;
38
- }
39
-
40
- var _default = isEqual;
41
- exports.default = _default;
38
+ }
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = isFacetRefined;
6
+ exports.isFacetRefined = isFacetRefined;
7
7
 
8
8
  function isFacetRefined(helper, facet, value) {
9
9
  if (helper.state.isHierarchicalFacet(facet)) {
@@ -3,14 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports.isFiniteNumber = isFiniteNumber;
7
7
 
8
8
  // This is the `Number.isFinite()` polyfill recommended by MDN.
9
9
  // We do not provide any tests for this function.
10
10
  // See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isFinite#Polyfill
11
+ // @MAJOR Replace with the native `Number.isFinite` method
11
12
  function isFiniteNumber(value) {
12
13
  return typeof value === 'number' && isFinite(value);
13
- }
14
-
15
- var _default = isFiniteNumber;
16
- exports.default = _default;
14
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isIndexWidget = isIndexWidget;
7
+
8
+ function isIndexWidget(widget) {
9
+ return widget.$$type === 'ais.index';
10
+ }
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports.isPlainObject = isPlainObject;
7
7
 
8
8
  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); }
9
9
 
@@ -46,7 +46,4 @@ function isPlainObject(value) {
46
46
  }
47
47
 
48
48
  return Object.getPrototypeOf(value) === proto;
49
- }
50
-
51
- var _default = isPlainObject;
52
- exports.default = _default;
49
+ }
@@ -3,12 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports.isSpecialClick = isSpecialClick;
7
7
 
8
8
  function isSpecialClick(event) {
9
9
  var isMiddleClick = event.button === 1;
10
10
  return isMiddleClick || event.altKey || event.ctrlKey || event.metaKey || event.shiftKey;
11
- }
12
-
13
- var _default = isSpecialClick;
14
- exports.default = _default;
11
+ }
@@ -5,9 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.warning = exports.deprecate = exports.warn = void 0;
7
7
 
8
- var _noop = _interopRequireDefault(require("./noop.js"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
+ var _noop = require("./noop.js");
11
9
 
12
10
  /**
13
11
  * Logs a warning when this function is called, in development environment only.
@@ -22,14 +20,14 @@ var deprecate = function deprecate(fn, message) {
22
20
 
23
21
 
24
22
  exports.deprecate = deprecate;
25
- var warn = _noop.default;
23
+ var warn = _noop.noop;
26
24
  /**
27
25
  * Logs a warning if the condition is not met.
28
26
  * This is used to log issues in development environment only.
29
27
  */
30
28
 
31
29
  exports.warn = warn;
32
- var _warning = _noop.default;
30
+ var _warning = _noop.noop;
33
31
  exports.warning = _warning;
34
32
 
35
33
  if (process.env.NODE_ENV === 'development') {
@@ -3,13 +3,11 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports.mergeSearchParameters = void 0;
7
7
 
8
- var _findIndex = _interopRequireDefault(require("./findIndex.js"));
8
+ var _findIndex = require("./findIndex.js");
9
9
 
10
- var _uniq = _interopRequireDefault(require("./uniq.js"));
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ var _uniq = require("./uniq.js");
13
11
 
14
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; }
15
13
 
@@ -53,7 +51,7 @@ var mergeDisjunctiveFacets = function mergeDisjunctiveFacets(left, right) {
53
51
  var mergeHierarchicalFacets = function mergeHierarchicalFacets(left, right) {
54
52
  return left.setQueryParameters({
55
53
  hierarchicalFacets: right.hierarchicalFacets.reduce(function (facets, facet) {
56
- var index = (0, _findIndex.default)(facets, function (_) {
54
+ var index = (0, _findIndex.findIndex)(facets, function (_) {
57
55
  return _.name === facet.name;
58
56
  });
59
57
 
@@ -106,7 +104,7 @@ var mergeHierarchicalFacetsRefinements = function mergeHierarchicalFacetsRefinem
106
104
  };
107
105
 
108
106
  var mergeRuleContexts = function mergeRuleContexts(left, right) {
109
- var ruleContexts = (0, _uniq.default)([].concat(left.ruleContexts).concat(right.ruleContexts).filter(Boolean));
107
+ var ruleContexts = (0, _uniq.uniq)([].concat(left.ruleContexts).concat(right.ruleContexts).filter(Boolean));
110
108
 
111
109
  if (ruleContexts.length > 0) {
112
110
  return left.setQueryParameters({
@@ -117,7 +115,7 @@ var mergeRuleContexts = function mergeRuleContexts(left, right) {
117
115
  return left;
118
116
  };
119
117
 
120
- var merge = function merge() {
118
+ var mergeSearchParameters = function mergeSearchParameters() {
121
119
  for (var _len = arguments.length, parameters = new Array(_len), _key = 0; _key < _len; _key++) {
122
120
  parameters[_key] = arguments[_key];
123
121
  }
@@ -137,5 +135,4 @@ var merge = function merge() {
137
135
  });
138
136
  };
139
137
 
140
- var _default = merge;
141
- exports.default = _default;
138
+ exports.mergeSearchParameters = mergeSearchParameters;
@@ -3,9 +3,6 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports.noop = noop;
7
7
 
8
- function noop() {}
9
-
10
- var _default = noop;
11
- exports.default = _default;
8
+ function noop() {}
@@ -3,11 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports.prepareTemplateProps = prepareTemplateProps;
7
7
 
8
- var _uniq = _interopRequireDefault(require("./uniq.js"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
+ var _uniq = require("./uniq.js");
11
9
 
12
10
  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; }
13
11
 
@@ -30,7 +28,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
30
28
  function prepareTemplates( // can not use = {} here, since the template could have different constraints
31
29
  defaultTemplates) {
32
30
  var templates = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
33
- var allKeys = (0, _uniq.default)([].concat(_toConsumableArray(Object.keys(defaultTemplates || {})), _toConsumableArray(Object.keys(templates))));
31
+ var allKeys = (0, _uniq.uniq)([].concat(_toConsumableArray(Object.keys(defaultTemplates || {})), _toConsumableArray(Object.keys(templates))));
34
32
  return allKeys.reduce(function (config, key) {
35
33
  var defaultTemplate = defaultTemplates ? defaultTemplates[key] : undefined;
36
34
  var customTemplate = templates[key];
@@ -59,7 +57,4 @@ function prepareTemplateProps(_ref) {
59
57
  return _objectSpread({
60
58
  templatesConfig: templatesConfig
61
59
  }, preparedTemplates);
62
- }
63
-
64
- var _default = prepareTemplateProps;
65
- exports.default = _default;
60
+ }
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports.range = range;
7
7
 
8
8
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
9
9
 
@@ -34,7 +34,4 @@ function range(_ref) {
34
34
  return _toConsumableArray(Array(arrayLength)).map(function (_, current) {
35
35
  return start + current * limitStep;
36
36
  });
37
- }
38
-
39
- var _default = range;
40
- exports.default = _default;
37
+ }
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports.renderTemplate = renderTemplate;
7
7
 
8
8
  var _hogan = _interopRequireDefault(require("hogan.js"));
9
9
 
@@ -78,7 +78,4 @@ function renderTemplate(_ref) {
78
78
  })).replace(/[ \n\r\t\f\xA0]+/g, function (spaces) {
79
79
  return spaces.replace(/(^|\xA0+)[^\xA0]+/g, '$1 ');
80
80
  }).trim();
81
- }
82
-
83
- var _default = renderTemplate;
84
- exports.default = _default;
81
+ }
@@ -3,9 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports.resolveSearchParameters = resolveSearchParameters;
7
7
 
8
- var resolveSearchParameters = function resolveSearchParameters(current) {
8
+ function resolveSearchParameters(current) {
9
9
  var parent = current.getParent();
10
10
  var states = [current.getHelper().state];
11
11
 
@@ -15,7 +15,4 @@ var resolveSearchParameters = function resolveSearchParameters(current) {
15
15
  }
16
16
 
17
17
  return states;
18
- };
19
-
20
- var _default = resolveSearchParameters;
21
- exports.default = _default;
18
+ }
@@ -3,11 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = reverseHighlightedParts;
6
+ exports.reverseHighlightedParts = reverseHighlightedParts;
7
7
 
8
- var _getHighlightFromSiblings = _interopRequireDefault(require("./getHighlightFromSiblings.js"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
+ var _getHighlightFromSiblings = require("./getHighlightFromSiblings.js");
11
9
 
12
10
  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; }
13
11
 
@@ -28,7 +26,7 @@ function reverseHighlightedParts(parts) {
28
26
 
29
27
  return parts.map(function (part, i) {
30
28
  return _objectSpread(_objectSpread({}, part), {}, {
31
- isHighlighted: !(0, _getHighlightFromSiblings.default)(parts, i)
29
+ isHighlighted: !(0, _getHighlightFromSiblings.getHighlightFromSiblings)(parts, i)
32
30
  });
33
31
  });
34
32
  }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.setIndexHelperState = setIndexHelperState;
7
+
8
+ var _isIndexWidget = require("./isIndexWidget.js");
9
+
10
+ var _checkIndexUiState = require("./checkIndexUiState.js");
11
+
12
+ function setIndexHelperState(finalUiState, indexWidget) {
13
+ var nextIndexUiState = finalUiState[indexWidget.getIndexId()] || {};
14
+
15
+ if (process.env.NODE_ENV === 'development') {
16
+ (0, _checkIndexUiState.checkIndexUiState)({
17
+ index: indexWidget,
18
+ indexUiState: nextIndexUiState
19
+ });
20
+ }
21
+
22
+ indexWidget.getHelper().setState(indexWidget.getWidgetSearchParameters(indexWidget.getHelper().state, {
23
+ uiState: nextIndexUiState
24
+ }));
25
+ indexWidget.getWidgets().filter(_isIndexWidget.isIndexWidget).forEach(function (widget) {
26
+ return setIndexHelperState(finalUiState, widget);
27
+ });
28
+ }
@@ -3,11 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports.toArray = toArray;
7
7
 
8
8
  function toArray(value) {
9
9
  return Array.isArray(value) ? value : [value];
10
- }
11
-
12
- var _default = toArray;
13
- exports.default = _default;
10
+ }
@@ -3,13 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports.uniq = uniq;
7
7
 
8
8
  function uniq(array) {
9
9
  return array.filter(function (value, index, self) {
10
10
  return self.indexOf(value) === index;
11
11
  });
12
- }
13
-
14
- var _default = uniq;
15
- exports.default = _default;
12
+ }
@@ -4,5 +4,5 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _default = '4.46.0';
7
+ var _default = '4.46.1';
8
8
  exports.default = _default;
@@ -9,10 +9,6 @@ var _index = require("../helpers/index.js");
9
9
 
10
10
  var _index2 = require("../lib/utils/index.js");
11
11
 
12
- var _connectConfigure = _interopRequireDefault(require("../connectors/configure/connectConfigure.js"));
13
-
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
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; }
17
13
 
18
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; }
@@ -98,31 +94,28 @@ var createInsightsMiddleware = function createInsightsMiddleware(props) {
98
94
  appId: appId,
99
95
  apiKey: apiKey
100
96
  }, insightsInitParams));
101
- var createWidget = (0, _connectConfigure.default)(_index2.noop);
102
- var configureClickAnalytics;
103
- var configureUserToken;
97
+ var initialParameters;
98
+ var helper;
104
99
  return {
105
100
  onStateChange: function onStateChange() {},
106
- subscribe: function subscribe() {
101
+ subscribe: function subscribe() {},
102
+ started: function started() {
107
103
  insightsClient('addAlgoliaAgent', 'insights-middleware');
108
- configureClickAnalytics = createWidget({
109
- searchParameters: {
110
- clickAnalytics: true
111
- }
112
- });
113
- instantSearchInstance.addWidgets([configureClickAnalytics]);
104
+ helper = instantSearchInstance.helper;
105
+ initialParameters = {
106
+ userToken: helper.state.userToken,
107
+ clickAnalytics: helper.state.clickAnalytics
108
+ };
109
+ helper.overrideStateWithoutTriggeringChangeEvent(_objectSpread(_objectSpread({}, helper.state), {}, {
110
+ clickAnalytics: true
111
+ }));
112
+ instantSearchInstance.scheduleSearch();
114
113
 
115
114
  var setUserTokenToSearch = function setUserTokenToSearch(userToken) {
116
- if (configureUserToken) {
117
- instantSearchInstance.removeWidgets([configureUserToken]);
118
- }
119
-
120
- configureUserToken = createWidget({
121
- searchParameters: {
122
- userToken: userToken
123
- }
124
- });
125
- instantSearchInstance.addWidgets([configureUserToken]);
115
+ helper.overrideStateWithoutTriggeringChangeEvent(_objectSpread(_objectSpread({}, helper.state), {}, {
116
+ userToken: userToken
117
+ }));
118
+ instantSearchInstance.scheduleSearch();
126
119
  };
127
120
 
128
121
  var anonymousUserToken = (0, _index.getInsightsAnonymousUserTokenInternal)();
@@ -150,9 +143,7 @@ var createInsightsMiddleware = function createInsightsMiddleware(props) {
150
143
  if (onEvent) {
151
144
  onEvent(event, _insightsClient);
152
145
  } else if (event.insightsMethod) {
153
- // At this point, instantSearchInstance must be started and
154
- // it means there is a configure widget (added above).
155
- var hasUserToken = Boolean(instantSearchInstance.renderState[instantSearchInstance.indexName].configure.widgetParams.searchParameters.userToken);
146
+ var hasUserToken = Boolean(helper.state.userToken);
156
147
 
157
148
  if (hasUserToken) {
158
149
  insightsClient(event.insightsMethod, event.payload);
@@ -166,10 +157,12 @@ var createInsightsMiddleware = function createInsightsMiddleware(props) {
166
157
  },
167
158
  unsubscribe: function unsubscribe() {
168
159
  insightsClient('onUserTokenChange', undefined);
169
- instantSearchInstance.removeWidgets([configureClickAnalytics, configureUserToken]);
170
- configureClickAnalytics = undefined;
171
- configureUserToken = undefined;
172
160
  instantSearchInstance.sendEventToInsights = _index2.noop;
161
+
162
+ if (helper && initialParameters) {
163
+ helper.setState(_objectSpread(_objectSpread({}, helper.state), initialParameters));
164
+ instantSearchInstance.scheduleSearch();
165
+ }
173
166
  }
174
167
  };
175
168
  };
@@ -94,6 +94,7 @@ function createMetadataMiddleware() {
94
94
  refNode.appendChild(payloadContainer);
95
95
  }, 0);
96
96
  },
97
+ started: function started() {},
97
98
  unsubscribe: function unsubscribe() {
98
99
  payloadContainer.remove();
99
100
  }
@@ -57,6 +57,7 @@ var createRouterMiddleware = function createRouterMiddleware() {
57
57
  instantSearchInstance.setUiState(stateMapping.routeToState(route));
58
58
  });
59
59
  },
60
+ started: function started() {},
60
61
  unsubscribe: function unsubscribe() {
61
62
  router.dispose();
62
63
  }
@@ -3,7 +3,6 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.isIndexWidget = isIndexWidget;
7
6
  exports.default = void 0;
8
7
 
9
8
  var _algoliasearchHelper = _interopRequireDefault(require("algoliasearch-helper"));
@@ -38,16 +37,11 @@ var withUsage = (0, _index.createDocumentationMessageGenerator)({
38
37
  name: 'index-widget'
39
38
  });
40
39
 
41
- function isIndexWidget(widget) {
42
- return widget.$$type === 'ais.index';
43
- }
44
40
  /**
45
41
  * This is the same content as helper._change / setState, but allowing for extra
46
42
  * UiState to be synchronized.
47
43
  * see: https://github.com/algolia/algoliasearch-helper-js/blob/6b835ffd07742f2d6b314022cce6848f5cfecd4a/src/algoliasearch.helper.js#L1311-L1324
48
44
  */
49
-
50
-
51
45
  function privateHelperSetState(helper, _ref) {
52
46
  var state = _ref.state,
53
47
  isPageReset = _ref.isPageReset,
@@ -67,7 +61,7 @@ function privateHelperSetState(helper, _ref) {
67
61
  function getLocalWidgetsUiState(widgets, widgetStateOptions) {
68
62
  var initialUiState = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
69
63
  return widgets.reduce(function (uiState, widget) {
70
- if (isIndexWidget(widget)) {
64
+ if ((0, _index.isIndexWidget)(widget)) {
71
65
  return uiState;
72
66
  }
73
67
 
@@ -88,7 +82,7 @@ function getLocalWidgetsSearchParameters(widgets, widgetSearchParametersOptions)
88
82
  rest = _objectWithoutProperties(widgetSearchParametersOptions, ["initialSearchParameters"]);
89
83
 
90
84
  return widgets.filter(function (widget) {
91
- return !isIndexWidget(widget);
85
+ return !(0, _index.isIndexWidget)(widget);
92
86
  }).reduce(function (state, widget) {
93
87
  if (!widget.getWidgetSearchParameters) {
94
88
  return state;
@@ -99,7 +93,7 @@ function getLocalWidgetsSearchParameters(widgets, widgetSearchParametersOptions)
99
93
  }
100
94
 
101
95
  function resetPageFromWidgets(widgets) {
102
- var indexWidgets = widgets.filter(isIndexWidget);
96
+ var indexWidgets = widgets.filter(_index.isIndexWidget);
103
97
 
104
98
  if (indexWidgets.length === 0) {
105
99
  return;
@@ -116,7 +110,7 @@ function resetPageFromWidgets(widgets) {
116
110
  }
117
111
 
118
112
  function resolveScopedResultsFromWidgets(widgets) {
119
- var indexWidgets = widgets.filter(isIndexWidget);
113
+ var indexWidgets = widgets.filter(_index.isIndexWidget);
120
114
  return indexWidgets.reduce(function (scopedResults, current) {
121
115
  return scopedResults.concat.apply(scopedResults, [{
122
116
  indexId: current.getIndexId(),
@@ -326,7 +320,9 @@ var index = function index(widgetParams) {
326
320
  if (instantSearchInstance.onStateChange) {
327
321
  instantSearchInstance.onStateChange({
328
322
  uiState: instantSearchInstance.mainIndex.getWidgetUiState({}),
329
- setUiState: instantSearchInstance.setUiState.bind(instantSearchInstance)
323
+ setUiState: function setUiState(nextState) {
324
+ return instantSearchInstance.setUiState(nextState, false);
325
+ }
330
326
  }); // We don't trigger a search when controlled because it becomes the
331
327
  // responsibility of `setUiState`.
332
328
 
@@ -554,7 +550,7 @@ var index = function index(widgetParams) {
554
550
  derivedHelper = null;
555
551
  },
556
552
  getWidgetUiState: function getWidgetUiState(uiState) {
557
- return localWidgets.filter(isIndexWidget).reduce(function (previousUiState, innerIndex) {
553
+ return localWidgets.filter(_index.isIndexWidget).reduce(function (previousUiState, innerIndex) {
558
554
  return innerIndex.getWidgetUiState(previousUiState);
559
555
  }, _objectSpread(_objectSpread({}, uiState), {}, _defineProperty({}, this.getIndexId(), localUiState)));
560
556
  },
@@ -1177,6 +1177,8 @@ declare const EXPERIMENTAL_connectDynamicWidgets: DynamicWidgetsConnector;
1177
1177
  /** @deprecated use dynamicWidgets */
1178
1178
  declare const EXPERIMENTAL_dynamicWidgets: DynamicWidgetsWidget;
1179
1179
 
1180
+ declare type FacetValue = string | boolean | number;
1181
+
1180
1182
  declare type GeoHit<THit extends BaseHit = Record<string, any>> = Hit<THit> & Required<Pick<Hit, '_geoloc'>>;
1181
1183
 
1182
1184
  declare type GeoLoc = {
@@ -2384,7 +2386,12 @@ declare class InstantSearch<TUiState extends UiState = UiState, TRouteState = TU
2384
2386
  cancel(): void;
2385
2387
  };
2386
2388
  scheduleStalledRender(): void;
2387
- setUiState(uiState: TUiState | ((previousUiState: TUiState) => TUiState)): void;
2389
+ /**
2390
+ * Set the UI state and trigger a search.
2391
+ * @param uiState The next UI state or a function computing it from the current state
2392
+ * @param callOnStateChange private parameter used to know if the method is called from a state change
2393
+ */
2394
+ setUiState(uiState: TUiState | ((previousUiState: TUiState) => TUiState), callOnStateChange?: boolean): void;
2388
2395
  getUiState(): TUiState;
2389
2396
  onInternalStateChange: ((...args: any[]) => void) & {
2390
2397
  wait(): Promise<void>;
@@ -2779,6 +2786,7 @@ declare type MiddlewareDefinition<TUiState extends UiState = UiState> = {
2779
2786
  uiState: TUiState;
2780
2787
  }): void;
2781
2788
  subscribe(): void;
2789
+ started(): void;
2782
2790
  unsubscribe(): void;
2783
2791
  };
2784
2792
 
@@ -5065,11 +5073,11 @@ declare type ToggleRefinementConnectorParams = {
5065
5073
  * Value to filter on when toggled.
5066
5074
  * @default "true"
5067
5075
  */
5068
- on?: string | string[] | boolean | boolean[] | number | number[];
5076
+ on?: FacetValue | FacetValue[];
5069
5077
  /**
5070
5078
  * Value to filter on when not toggled.
5071
5079
  */
5072
- off?: string | string[] | boolean | boolean[] | number | number[];
5080
+ off?: FacetValue | FacetValue[];
5073
5081
  };
5074
5082
 
5075
5083
  declare type ToggleRefinementCSSClasses = Partial<{