instantsearch.js 4.40.0 → 4.40.3

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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,30 @@
1
+ ## [4.40.3](https://github.com/algolia/instantsearch.js/compare/v4.40.2...v4.40.3) (2022-04-04)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **refinements:** escape facet values starting with "-" ([#5039](https://github.com/algolia/instantsearch.js/issues/5039)) ([6b6f4e8](https://github.com/algolia/instantsearch.js/commit/6b6f4e86550a3c9dd02f3a8400d832cef64cb45d))
7
+
8
+
9
+
10
+ ## [4.40.2](https://github.com/algolia/instantsearch.js/compare/v4.40.1...v4.40.2) (2022-03-29)
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * **currentRefinements:** more detailed type for item.type ([#5034](https://github.com/algolia/instantsearch.js/issues/5034)) ([773e2c6](https://github.com/algolia/instantsearch.js/commit/773e2c65840f86881eb3dd8825c8c4ad9c73aec9))
16
+
17
+
18
+
19
+ ## [4.40.1](https://github.com/algolia/instantsearch.js/compare/v4.40.0...v4.40.1) (2022-03-21)
20
+
21
+
22
+ ### Bug Fixes
23
+
24
+ * **types:** update to latest algoliasearch-helper ([6bbe790](https://github.com/algolia/instantsearch.js/commit/6bbe790a99320b4237b81614472c048ffe4426d8))
25
+
26
+
27
+
1
28
  # [4.40.0](https://github.com/algolia/instantsearch.js/compare/v4.39.2...v4.40.0) (2022-03-21)
2
29
 
3
30
 
@@ -157,7 +157,7 @@ function prepareItems(data) {
157
157
  if (currentItem.isRefined) {
158
158
  result.push({
159
159
  label: currentItem.name,
160
- value: currentItem.path
160
+ value: currentItem.escapedValue
161
161
  });
162
162
 
163
163
  if (Array.isArray(currentItem.data)) {
@@ -114,13 +114,14 @@ var connectHierarchicalMenu = function connectHierarchicalMenu(renderFn) {
114
114
  function _prepareFacetValues(facetValues) {
115
115
  return facetValues.slice(0, getLimit()).map(function (_ref2) {
116
116
  var label = _ref2.name,
117
- value = _ref2.path,
117
+ value = _ref2.escapedValue,
118
118
  data = _ref2.data,
119
- subValue = _objectWithoutProperties(_ref2, ["name", "path", "data"]);
119
+ path = _ref2.path,
120
+ subValue = _objectWithoutProperties(_ref2, ["name", "escapedValue", "data", "path"]);
120
121
 
121
122
  var item = _objectSpread(_objectSpread({}, subValue), {}, {
122
- label: label,
123
123
  value: value,
124
+ label: label,
124
125
  data: null
125
126
  });
126
127
 
@@ -169,8 +169,9 @@ var connectMenu = function connectMenu(renderFn) {
169
169
  canToggleShowMore = showMore && (isShowingMore || facetItems.length > getLimit());
170
170
  items = transformItems(facetItems.slice(0, getLimit()).map(function (_ref3) {
171
171
  var label = _ref3.name,
172
- value = _ref3.path,
173
- item = _objectWithoutProperties(_ref3, ["name", "path"]);
172
+ value = _ref3.escapedValue,
173
+ path = _ref3.path,
174
+ item = _objectWithoutProperties(_ref3, ["name", "escapedValue", "path"]);
174
175
 
175
176
  return _objectSpread(_objectSpread({}, item), {}, {
176
177
  label: label,
@@ -72,11 +72,12 @@ var connectRefinementList = function connectRefinementList(renderFn) {
72
72
 
73
73
  var formatItems = function formatItems(_ref2) {
74
74
  var label = _ref2.name,
75
- item = _objectWithoutProperties(_ref2, ["name"]);
75
+ value = _ref2.escapedValue,
76
+ item = _objectWithoutProperties(_ref2, ["name", "escapedValue"]);
76
77
 
77
78
  return _objectSpread(_objectSpread({}, item), {}, {
79
+ value: value,
78
80
  label: label,
79
- value: label,
80
81
  highlighted: label
81
82
  });
82
83
  };
@@ -134,11 +135,12 @@ var connectRefinementList = function connectRefinementList(renderFn) {
134
135
  Math.min(getLimit(), 100), tags).then(function (results) {
135
136
  var facetValues = escapeFacetValues ? (0, _index.escapeFacets)(results.facetHits) : results.facetHits;
136
137
  var normalizedFacetValues = transformItems(facetValues.map(function (_ref3) {
137
- var value = _ref3.value,
138
- item = _objectWithoutProperties(_ref3, ["value"]);
138
+ var escapedValue = _ref3.escapedValue,
139
+ value = _ref3.value,
140
+ item = _objectWithoutProperties(_ref3, ["escapedValue", "value"]);
139
141
 
140
142
  return _objectSpread(_objectSpread({}, item), {}, {
141
- value: value,
143
+ value: escapedValue,
142
144
  label: value
143
145
  });
144
146
  }), {
@@ -4,5 +4,5 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _default = '4.40.0';
7
+ var _default = '4.40.3';
8
8
  exports.default = _default;
@@ -970,10 +970,8 @@ declare type CurrentRefinementsConnectorParamsRefinement = {
970
970
  attribute: string;
971
971
  /**
972
972
  * The type of the refinement.
973
- *
974
- * It can be one of those: 'facet'|'exclude'|'disjunctive'|'hierarchical'|'numeric'|'query'|'tag'.
975
973
  */
976
- type: string;
974
+ type: 'facet' | 'exclude' | 'disjunctive' | 'hierarchical' | 'numeric' | 'query' | 'tag';
977
975
  /**
978
976
  * The raw value of the refinement.
979
977
  */
@@ -1,4 +1,4 @@
1
- /*! InstantSearch.js 4.40.0 | © Algolia, Inc. and contributors; MIT License | https://github.com/algolia/instantsearch.js */
1
+ /*! InstantSearch.js 4.40.3 | © Algolia, Inc. and contributors; MIT License | https://github.com/algolia/instantsearch.js */
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) :
@@ -2244,12 +2244,40 @@
2244
2244
  );
2245
2245
  };
2246
2246
 
2247
+ /**
2248
+ * Replaces a leading - with \-
2249
+ * @private
2250
+ * @param {string} value the facet value to replace
2251
+ * @returns string
2252
+ */
2253
+ function escapeFacetValue(value) {
2254
+ return value.replace(/^-/, '\\-');
2255
+ }
2256
+
2257
+ /**
2258
+ * Replaces a leading \- with -
2259
+ * @private
2260
+ * @param {string} value the escaped facet value
2261
+ * @returns string
2262
+ */
2263
+ function unescapeFacetValue(value) {
2264
+ return value.replace(/^\\-/, '-');
2265
+ }
2266
+
2267
+ var escapeFacetValue_1 = {
2268
+ escapeFacetValue: escapeFacetValue,
2269
+ unescapeFacetValue: unescapeFacetValue
2270
+ };
2271
+
2247
2272
  var generateHierarchicalTree_1 = generateTrees;
2248
2273
 
2249
2274
 
2250
2275
 
2251
2276
 
2252
2277
 
2278
+ var escapeFacetValue$1 = escapeFacetValue_1.escapeFacetValue;
2279
+ var unescapeFacetValue$1 = escapeFacetValue_1.unescapeFacetValue;
2280
+
2253
2281
  function generateTrees(state) {
2254
2282
  return function generate(hierarchicalFacetResult, hierarchicalFacetIndex) {
2255
2283
  var hierarchicalFacet = state.hierarchicalFacets[hierarchicalFacetIndex];
@@ -2295,6 +2323,7 @@
2295
2323
  count: null, // root level, no count
2296
2324
  isRefined: true, // root level, always refined
2297
2325
  path: null, // root level, no path
2326
+ escapedValue: null,
2298
2327
  exhaustive: rootExhaustive,
2299
2328
  data: null
2300
2329
  });
@@ -2370,7 +2399,7 @@
2370
2399
  facetCount,
2371
2400
  facetValue,
2372
2401
  hierarchicalSeparator,
2373
- currentRefinement,
2402
+ unescapeFacetValue$1(currentRefinement),
2374
2403
  hierarchicalFacetResult.exhaustive
2375
2404
  );
2376
2405
  }),
@@ -2433,6 +2462,7 @@
2433
2462
  return {
2434
2463
  name: parts[parts.length - 1].trim(),
2435
2464
  path: facetValue,
2465
+ escapedValue: escapeFacetValue$1(facetValue),
2436
2466
  count: facetCount,
2437
2467
  isRefined:
2438
2468
  currentRefinement === facetValue ||
@@ -2442,6 +2472,11 @@
2442
2472
  };
2443
2473
  }
2444
2474
 
2475
+ var escapeFacetValue$2 = escapeFacetValue_1.escapeFacetValue;
2476
+ var unescapeFacetValue$2 = escapeFacetValue_1.unescapeFacetValue;
2477
+
2478
+
2479
+
2445
2480
  /**
2446
2481
  * @typedef SearchResults.Facet
2447
2482
  * @type {object}
@@ -2940,7 +2975,7 @@
2940
2975
  state.disjunctiveFacetsRefinements[dfacet].forEach(function(refinementValue) {
2941
2976
  // add the disjunctive refinements if it is no more retrieved
2942
2977
  if (!self.disjunctiveFacets[position].data[refinementValue] &&
2943
- state.disjunctiveFacetsRefinements[dfacet].indexOf(refinementValue) > -1) {
2978
+ state.disjunctiveFacetsRefinements[dfacet].indexOf(unescapeFacetValue$2(refinementValue)) > -1) {
2944
2979
  self.disjunctiveFacets[position].data[refinementValue] = 0;
2945
2980
  }
2946
2981
  });
@@ -3072,10 +3107,12 @@
3072
3107
  if (!facet) return [];
3073
3108
 
3074
3109
  return Object.keys(facet.data).map(function(name) {
3110
+ var value = escapeFacetValue$2(name);
3075
3111
  return {
3076
3112
  name: name,
3113
+ escapedValue: value,
3077
3114
  count: facet.data[name],
3078
- isRefined: results._state.isFacetRefined(attribute, name),
3115
+ isRefined: results._state.isFacetRefined(attribute, value),
3079
3116
  isExcluded: results._state.isExcludeRefined(attribute, name)
3080
3117
  };
3081
3118
  });
@@ -3084,10 +3121,12 @@
3084
3121
  if (!disjunctiveFacet) return [];
3085
3122
 
3086
3123
  return Object.keys(disjunctiveFacet.data).map(function(name) {
3124
+ var value = escapeFacetValue$2(name);
3087
3125
  return {
3088
3126
  name: name,
3127
+ escapedValue: value,
3089
3128
  count: disjunctiveFacet.data[name],
3090
- isRefined: results._state.isDisjunctiveFacetRefined(attribute, name)
3129
+ isRefined: results._state.isDisjunctiveFacetRefined(attribute, value)
3091
3130
  };
3092
3131
  });
3093
3132
  } else if (results._state.isHierarchicalFacet(attribute)) {
@@ -4120,7 +4159,9 @@
4120
4159
 
4121
4160
  var requestBuilder_1 = requestBuilder;
4122
4161
 
4123
- var version = '3.7.3';
4162
+ var version = '3.8.0';
4163
+
4164
+ var escapeFacetValue$3 = escapeFacetValue_1.escapeFacetValue;
4124
4165
 
4125
4166
  /**
4126
4167
  * Event triggered when a parameter is set or updated
@@ -4470,9 +4511,10 @@
4470
4511
  content = Array.isArray(content) ? content[0] : content;
4471
4512
 
4472
4513
  content.facetHits.forEach(function(f) {
4514
+ f.escapedValue = escapeFacetValue$3(f.value);
4473
4515
  f.isRefined = isDisjunctive
4474
- ? state.isDisjunctiveFacetRefined(facet, f.value)
4475
- : state.isFacetRefined(facet, f.value);
4516
+ ? state.isDisjunctiveFacetRefined(facet, f.escapedValue)
4517
+ : state.isFacetRefined(facet, f.escapedValue);
4476
4518
  });
4477
4519
 
4478
4520
  return content;
@@ -8488,7 +8530,7 @@
8488
8530
  instantSearchInstance.renderState = _objectSpread2(_objectSpread2({}, instantSearchInstance.renderState), {}, _defineProperty({}, parentIndexName, _objectSpread2(_objectSpread2({}, instantSearchInstance.renderState[parentIndexName]), renderState)));
8489
8531
  }
8490
8532
 
8491
- var version$1 = '4.40.0';
8533
+ var version$1 = '4.40.3';
8492
8534
 
8493
8535
  var NAMESPACE = 'ais';
8494
8536
  var component = function component(componentName) {
@@ -10922,13 +10964,14 @@
10922
10964
  function _prepareFacetValues(facetValues) {
10923
10965
  return facetValues.slice(0, getLimit()).map(function (_ref2) {
10924
10966
  var label = _ref2.name,
10925
- value = _ref2.path,
10967
+ value = _ref2.escapedValue,
10926
10968
  data = _ref2.data,
10927
- subValue = _objectWithoutProperties(_ref2, ["name", "path", "data"]);
10969
+ path = _ref2.path,
10970
+ subValue = _objectWithoutProperties(_ref2, ["name", "escapedValue", "data", "path"]);
10928
10971
 
10929
10972
  var item = _objectSpread2(_objectSpread2({}, subValue), {}, {
10930
- label: label,
10931
10973
  value: value,
10974
+ label: label,
10932
10975
  data: null
10933
10976
  });
10934
10977
 
@@ -11887,8 +11930,9 @@
11887
11930
  canToggleShowMore = showMore && (isShowingMore || facetItems.length > getLimit());
11888
11931
  items = transformItems(facetItems.slice(0, getLimit()).map(function (_ref3) {
11889
11932
  var label = _ref3.name,
11890
- value = _ref3.path,
11891
- item = _objectWithoutProperties(_ref3, ["name", "path"]);
11933
+ value = _ref3.escapedValue,
11934
+ path = _ref3.path,
11935
+ item = _objectWithoutProperties(_ref3, ["name", "escapedValue", "path"]);
11892
11936
 
11893
11937
  return _objectSpread2(_objectSpread2({}, item), {}, {
11894
11938
  label: label,
@@ -12851,11 +12895,12 @@
12851
12895
 
12852
12896
  var formatItems = function formatItems(_ref2) {
12853
12897
  var label = _ref2.name,
12854
- item = _objectWithoutProperties(_ref2, ["name"]);
12898
+ value = _ref2.escapedValue,
12899
+ item = _objectWithoutProperties(_ref2, ["name", "escapedValue"]);
12855
12900
 
12856
12901
  return _objectSpread2(_objectSpread2({}, item), {}, {
12902
+ value: value,
12857
12903
  label: label,
12858
- value: label,
12859
12904
  highlighted: label
12860
12905
  });
12861
12906
  };
@@ -12913,11 +12958,12 @@
12913
12958
  Math.min(getLimit(), 100), tags).then(function (results) {
12914
12959
  var facetValues = escapeFacetValues ? escapeFacets(results.facetHits) : results.facetHits;
12915
12960
  var normalizedFacetValues = transformItems(facetValues.map(function (_ref3) {
12916
- var value = _ref3.value,
12917
- item = _objectWithoutProperties(_ref3, ["value"]);
12961
+ var escapedValue = _ref3.escapedValue,
12962
+ value = _ref3.value,
12963
+ item = _objectWithoutProperties(_ref3, ["escapedValue", "value"]);
12918
12964
 
12919
12965
  return _objectSpread2(_objectSpread2({}, item), {}, {
12920
- value: value,
12966
+ value: escapedValue,
12921
12967
  label: value
12922
12968
  });
12923
12969
  }), {
@@ -14057,7 +14103,7 @@
14057
14103
  if (currentItem.isRefined) {
14058
14104
  result.push({
14059
14105
  label: currentItem.name,
14060
- value: currentItem.path
14106
+ value: currentItem.escapedValue
14061
14107
  });
14062
14108
 
14063
14109
  if (Array.isArray(currentItem.data)) {