instantsearch.js 4.43.1 → 4.45.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.
- package/CHANGELOG.md +27 -0
- package/cjs/components/Highlight/Highlight.js +33 -0
- package/cjs/components/InternalHighlight/InternalHighlight.js +16 -0
- package/cjs/components/ReverseHighlight/ReverseHighlight.js +33 -0
- package/cjs/components/ReverseSnippet/ReverseSnippet.js +33 -0
- package/cjs/components/Snippet/Snippet.js +33 -0
- package/cjs/connectors/hits-per-page/connectHitsPerPage.js +3 -1
- package/cjs/connectors/numeric-menu/connectNumericMenu.js +31 -43
- package/cjs/connectors/range/connectRange.js +7 -46
- package/cjs/connectors/rating-menu/connectRatingMenu.js +8 -2
- package/cjs/connectors/sort-by/connectSortBy.js +3 -1
- package/cjs/helpers/components/Highlight.js +45 -0
- package/cjs/helpers/components/ReverseHighlight.js +58 -0
- package/cjs/helpers/components/ReverseSnippet.js +58 -0
- package/cjs/helpers/components/Snippet.js +45 -0
- package/cjs/helpers/components/index.js +57 -0
- package/cjs/lib/version.js +1 -1
- package/dist/instantsearch.development.d.ts +29 -9
- package/dist/instantsearch.development.js +109 -120
- package/dist/instantsearch.development.js.map +1 -1
- package/dist/instantsearch.production.d.ts +29 -9
- package/dist/instantsearch.production.min.d.ts +29 -9
- package/dist/instantsearch.production.min.js +2 -2
- package/dist/instantsearch.production.min.js.map +1 -1
- package/es/components/Highlight/Highlight.d.ts +7 -0
- package/es/components/Highlight/Highlight.js +24 -0
- package/es/components/InternalHighlight/InternalHighlight.d.ts +2 -0
- package/es/components/InternalHighlight/InternalHighlight.js +6 -0
- package/es/components/ReverseHighlight/ReverseHighlight.d.ts +7 -0
- package/es/components/ReverseHighlight/ReverseHighlight.js +24 -0
- package/es/components/ReverseSnippet/ReverseSnippet.d.ts +7 -0
- package/es/components/ReverseSnippet/ReverseSnippet.js +24 -0
- package/es/components/Snippet/Snippet.d.ts +7 -0
- package/es/components/Snippet/Snippet.js +24 -0
- package/es/connectors/geo-search/connectGeoSearch.d.ts +10 -10
- package/es/connectors/hits-per-page/connectHitsPerPage.d.ts +5 -0
- package/es/connectors/hits-per-page/connectHitsPerPage.js +3 -1
- package/es/connectors/numeric-menu/connectNumericMenu.d.ts +8 -0
- package/es/connectors/numeric-menu/connectNumericMenu.js +32 -44
- package/es/connectors/range/connectRange.js +8 -47
- package/es/connectors/rating-menu/connectRatingMenu.d.ts +2 -0
- package/es/connectors/rating-menu/connectRatingMenu.js +8 -2
- package/es/connectors/sort-by/connectSortBy.d.ts +5 -0
- package/es/connectors/sort-by/connectSortBy.js +3 -1
- package/es/helpers/components/Highlight.d.ts +10 -0
- package/es/helpers/components/Highlight.js +31 -0
- package/es/helpers/components/ReverseHighlight.d.ts +10 -0
- package/es/helpers/components/ReverseHighlight.js +44 -0
- package/es/helpers/components/ReverseSnippet.d.ts +10 -0
- package/es/helpers/components/ReverseSnippet.js +44 -0
- package/es/helpers/components/Snippet.d.ts +10 -0
- package/es/helpers/components/Snippet.js +31 -0
- package/es/helpers/components/index.d.ts +4 -0
- package/es/helpers/components/index.js +4 -0
- package/es/lib/version.d.ts +1 -1
- package/es/lib/version.js +1 -1
- package/es/types/utils.d.ts +4 -0
- package/package.json +6 -3
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Snippet = Snippet;
|
|
7
|
+
|
|
8
|
+
var _preact = require("preact");
|
|
9
|
+
|
|
10
|
+
var _Snippet = require("../../components/Snippet/Snippet.js");
|
|
11
|
+
|
|
12
|
+
var _getHighlightedParts = _interopRequireDefault(require("../../lib/utils/getHighlightedParts.js"));
|
|
13
|
+
|
|
14
|
+
var _getPropertyByPath = _interopRequireDefault(require("../../lib/utils/getPropertyByPath.js"));
|
|
15
|
+
|
|
16
|
+
var _unescape = _interopRequireDefault(require("../../lib/utils/unescape.js"));
|
|
17
|
+
|
|
18
|
+
var _logger = require("../../lib/utils/logger.js");
|
|
19
|
+
|
|
20
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
+
|
|
22
|
+
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); }
|
|
23
|
+
|
|
24
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
25
|
+
|
|
26
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
27
|
+
|
|
28
|
+
function Snippet(_ref) {
|
|
29
|
+
var hit = _ref.hit,
|
|
30
|
+
attribute = _ref.attribute,
|
|
31
|
+
cssClasses = _ref.cssClasses,
|
|
32
|
+
props = _objectWithoutProperties(_ref, ["hit", "attribute", "cssClasses"]);
|
|
33
|
+
|
|
34
|
+
var property = (0, _getPropertyByPath.default)(hit._snippetResult, attribute) || [];
|
|
35
|
+
var properties = Array.isArray(property) ? property : [property];
|
|
36
|
+
process.env.NODE_ENV === 'development' ? (0, _logger.warning)(Boolean(properties.length), "Could not enable snippet for \"".concat(attribute.toString(), "\", will display an empty string.\nPlease check whether this attribute exists and is specified in `attributesToSnippet`.\n\nSee: https://alg.li/highlighting\n")) : void 0;
|
|
37
|
+
var parts = properties.map(function (_ref2) {
|
|
38
|
+
var value = _ref2.value;
|
|
39
|
+
return (0, _getHighlightedParts.default)((0, _unescape.default)(value || ''));
|
|
40
|
+
});
|
|
41
|
+
return (0, _preact.h)(_Snippet.Snippet, _extends({}, props, {
|
|
42
|
+
parts: parts,
|
|
43
|
+
classNames: cssClasses
|
|
44
|
+
}));
|
|
45
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
var _Highlight = require("./Highlight.js");
|
|
8
|
+
|
|
9
|
+
Object.keys(_Highlight).forEach(function (key) {
|
|
10
|
+
if (key === "default" || key === "__esModule") return;
|
|
11
|
+
if (key in exports && exports[key] === _Highlight[key]) return;
|
|
12
|
+
Object.defineProperty(exports, key, {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _Highlight[key];
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
var _ReverseHighlight = require("./ReverseHighlight.js");
|
|
21
|
+
|
|
22
|
+
Object.keys(_ReverseHighlight).forEach(function (key) {
|
|
23
|
+
if (key === "default" || key === "__esModule") return;
|
|
24
|
+
if (key in exports && exports[key] === _ReverseHighlight[key]) return;
|
|
25
|
+
Object.defineProperty(exports, key, {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
get: function get() {
|
|
28
|
+
return _ReverseHighlight[key];
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
var _ReverseSnippet = require("./ReverseSnippet.js");
|
|
34
|
+
|
|
35
|
+
Object.keys(_ReverseSnippet).forEach(function (key) {
|
|
36
|
+
if (key === "default" || key === "__esModule") return;
|
|
37
|
+
if (key in exports && exports[key] === _ReverseSnippet[key]) return;
|
|
38
|
+
Object.defineProperty(exports, key, {
|
|
39
|
+
enumerable: true,
|
|
40
|
+
get: function get() {
|
|
41
|
+
return _ReverseSnippet[key];
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
var _Snippet = require("./Snippet.js");
|
|
47
|
+
|
|
48
|
+
Object.keys(_Snippet).forEach(function (key) {
|
|
49
|
+
if (key === "default" || key === "__esModule") return;
|
|
50
|
+
if (key in exports && exports[key] === _Snippet[key]) return;
|
|
51
|
+
Object.defineProperty(exports, key, {
|
|
52
|
+
enumerable: true,
|
|
53
|
+
get: function get() {
|
|
54
|
+
return _Snippet[key];
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
});
|
package/cjs/lib/version.js
CHANGED
|
@@ -1169,7 +1169,7 @@ declare const EXPERIMENTAL_connectDynamicWidgets: DynamicWidgetsConnector;
|
|
|
1169
1169
|
/** @deprecated use dynamicWidgets */
|
|
1170
1170
|
declare const EXPERIMENTAL_dynamicWidgets: DynamicWidgetsWidget;
|
|
1171
1171
|
|
|
1172
|
-
declare type GeoHit = Hit & Required<Pick<Hit, '_geoloc'>>;
|
|
1172
|
+
declare type GeoHit<THit extends BaseHit = Record<string, any>> = Hit<THit> & Required<Pick<Hit, '_geoloc'>>;
|
|
1173
1173
|
|
|
1174
1174
|
declare type GeoLoc = {
|
|
1175
1175
|
lat: number;
|
|
@@ -1191,9 +1191,9 @@ declare type GeoLoc = {
|
|
|
1191
1191
|
*/
|
|
1192
1192
|
declare const geoSearch: GeoSearchWidget;
|
|
1193
1193
|
|
|
1194
|
-
declare type GeoSearchConnector = Connector<GeoSearchWidgetDescription
|
|
1194
|
+
declare type GeoSearchConnector<THit extends BaseHit = Record<string, any>> = Connector<GeoSearchWidgetDescription<THit>, GeoSearchConnectorParams<THit>>;
|
|
1195
1195
|
|
|
1196
|
-
declare type GeoSearchConnectorParams = {
|
|
1196
|
+
declare type GeoSearchConnectorParams<THit extends BaseHit = Record<string, any>> = {
|
|
1197
1197
|
/**
|
|
1198
1198
|
* If true, refine will be triggered as you move the map.
|
|
1199
1199
|
* @default true
|
|
@@ -1203,7 +1203,7 @@ declare type GeoSearchConnectorParams = {
|
|
|
1203
1203
|
* Function to transform the items passed to the templates.
|
|
1204
1204
|
* @default items => items
|
|
1205
1205
|
*/
|
|
1206
|
-
transformItems?: TransformItems<GeoHit
|
|
1206
|
+
transformItems?: TransformItems<GeoHit<THit>>;
|
|
1207
1207
|
};
|
|
1208
1208
|
|
|
1209
1209
|
declare type GeoSearchCSSClasses = Partial<{
|
|
@@ -1249,7 +1249,7 @@ declare type GeoSearchMarker<TOptions> = {
|
|
|
1249
1249
|
};
|
|
1250
1250
|
};
|
|
1251
1251
|
|
|
1252
|
-
declare type GeoSearchRenderState = {
|
|
1252
|
+
declare type GeoSearchRenderState<THit extends BaseHit = Record<string, any>> = {
|
|
1253
1253
|
/**
|
|
1254
1254
|
* Reset the current bounding box refinement.
|
|
1255
1255
|
*/
|
|
@@ -1273,7 +1273,7 @@ declare type GeoSearchRenderState = {
|
|
|
1273
1273
|
/**
|
|
1274
1274
|
* The matched hits from Algolia API.
|
|
1275
1275
|
*/
|
|
1276
|
-
items: GeoHit
|
|
1276
|
+
items: Array<GeoHit<THit>>;
|
|
1277
1277
|
/**
|
|
1278
1278
|
* The current position of the search.
|
|
1279
1279
|
*/
|
|
@@ -1313,11 +1313,11 @@ declare type GeoSearchWidget = WidgetFactory<GeoSearchWidgetDescription & {
|
|
|
1313
1313
|
$$widgetType: 'ais.geoSearch';
|
|
1314
1314
|
}, GeoSearchConnectorParams, GeoSearchWidgetParams>;
|
|
1315
1315
|
|
|
1316
|
-
declare type GeoSearchWidgetDescription = {
|
|
1316
|
+
declare type GeoSearchWidgetDescription<THit extends BaseHit = Record<string, any>> = {
|
|
1317
1317
|
$$type: 'ais.geoSearch';
|
|
1318
|
-
renderState: GeoSearchRenderState
|
|
1318
|
+
renderState: GeoSearchRenderState<THit>;
|
|
1319
1319
|
indexRenderState: {
|
|
1320
|
-
geoSearch: WidgetRenderState<GeoSearchRenderState
|
|
1320
|
+
geoSearch: WidgetRenderState<GeoSearchRenderState<THit>, GeoSearchConnectorParams<THit>>;
|
|
1321
1321
|
};
|
|
1322
1322
|
indexUiState: {
|
|
1323
1323
|
geoSearch: {
|
|
@@ -1872,8 +1872,13 @@ declare type HitsPerPageRenderState = {
|
|
|
1872
1872
|
refine: (value: number) => void;
|
|
1873
1873
|
/**
|
|
1874
1874
|
* Indicates whether or not the search has results.
|
|
1875
|
+
* @deprecated Use `canRefine` instead.
|
|
1875
1876
|
*/
|
|
1876
1877
|
hasNoResults: boolean;
|
|
1878
|
+
/**
|
|
1879
|
+
* Indicates if search state can be refined.
|
|
1880
|
+
*/
|
|
1881
|
+
canRefine: boolean;
|
|
1877
1882
|
};
|
|
1878
1883
|
|
|
1879
1884
|
declare type HitsPerPageRenderStateItem = {
|
|
@@ -2855,8 +2860,16 @@ declare type NumericMenuRenderState = {
|
|
|
2855
2860
|
createURL: CreateURL<NumericMenuRenderStateItem['value']>;
|
|
2856
2861
|
/**
|
|
2857
2862
|
* `true` if the last search contains no result
|
|
2863
|
+
* @deprecated Use `canRefine` instead.
|
|
2858
2864
|
*/
|
|
2859
2865
|
hasNoResults: boolean;
|
|
2866
|
+
/**
|
|
2867
|
+
* Indicates if search state can be refined.
|
|
2868
|
+
*
|
|
2869
|
+
* This is `true` if the last search contains no result and
|
|
2870
|
+
* "All" range is selected
|
|
2871
|
+
*/
|
|
2872
|
+
canRefine: boolean;
|
|
2860
2873
|
/**
|
|
2861
2874
|
* Sets the selected value and trigger a new search
|
|
2862
2875
|
*/
|
|
@@ -3721,6 +3734,8 @@ declare type RatingMenuRenderState = {
|
|
|
3721
3734
|
refine: (value: string) => void;
|
|
3722
3735
|
/**
|
|
3723
3736
|
* `true` if the last search contains no result.
|
|
3737
|
+
*
|
|
3738
|
+
* @deprecated Use `canRefine` instead.
|
|
3724
3739
|
*/
|
|
3725
3740
|
hasNoResults: boolean;
|
|
3726
3741
|
/**
|
|
@@ -4683,8 +4698,13 @@ declare type SortByRenderState = {
|
|
|
4683
4698
|
refine: (value: string) => void;
|
|
4684
4699
|
/**
|
|
4685
4700
|
* `true` if the last search contains no result.
|
|
4701
|
+
* @deprecated Use `canRefine` instead.
|
|
4686
4702
|
*/
|
|
4687
4703
|
hasNoResults: boolean;
|
|
4704
|
+
/**
|
|
4705
|
+
* `true` if we can refine.
|
|
4706
|
+
*/
|
|
4707
|
+
canRefine: boolean;
|
|
4688
4708
|
};
|
|
4689
4709
|
|
|
4690
4710
|
declare type SortByWidget = WidgetFactory<SortByWidgetDescription & {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! InstantSearch.js 4.
|
|
1
|
+
/*! InstantSearch.js 4.45.0 | © 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) :
|
|
@@ -297,6 +297,63 @@
|
|
|
297
297
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
298
298
|
}
|
|
299
299
|
|
|
300
|
+
function _createForOfIteratorHelper(o, allowArrayLike) {
|
|
301
|
+
var it;
|
|
302
|
+
|
|
303
|
+
if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) {
|
|
304
|
+
if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
|
|
305
|
+
if (it) o = it;
|
|
306
|
+
var i = 0;
|
|
307
|
+
|
|
308
|
+
var F = function () {};
|
|
309
|
+
|
|
310
|
+
return {
|
|
311
|
+
s: F,
|
|
312
|
+
n: function () {
|
|
313
|
+
if (i >= o.length) return {
|
|
314
|
+
done: true
|
|
315
|
+
};
|
|
316
|
+
return {
|
|
317
|
+
done: false,
|
|
318
|
+
value: o[i++]
|
|
319
|
+
};
|
|
320
|
+
},
|
|
321
|
+
e: function (e) {
|
|
322
|
+
throw e;
|
|
323
|
+
},
|
|
324
|
+
f: F
|
|
325
|
+
};
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
var normalCompletion = true,
|
|
332
|
+
didErr = false,
|
|
333
|
+
err;
|
|
334
|
+
return {
|
|
335
|
+
s: function () {
|
|
336
|
+
it = o[Symbol.iterator]();
|
|
337
|
+
},
|
|
338
|
+
n: function () {
|
|
339
|
+
var step = it.next();
|
|
340
|
+
normalCompletion = step.done;
|
|
341
|
+
return step;
|
|
342
|
+
},
|
|
343
|
+
e: function (e) {
|
|
344
|
+
didErr = true;
|
|
345
|
+
err = e;
|
|
346
|
+
},
|
|
347
|
+
f: function () {
|
|
348
|
+
try {
|
|
349
|
+
if (!normalCompletion && it.return != null) it.return();
|
|
350
|
+
} finally {
|
|
351
|
+
if (didErr) throw err;
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
};
|
|
355
|
+
}
|
|
356
|
+
|
|
300
357
|
function clone(value) {
|
|
301
358
|
if (typeof value === 'object' && value !== null) {
|
|
302
359
|
return _merge(Array.isArray(value) ? [] : {}, value);
|
|
@@ -7918,31 +7975,6 @@
|
|
|
7918
7975
|
}
|
|
7919
7976
|
}
|
|
7920
7977
|
|
|
7921
|
-
function convertNumericRefinementsToFilters(state, attribute) {
|
|
7922
|
-
if (!state) {
|
|
7923
|
-
return null;
|
|
7924
|
-
}
|
|
7925
|
-
|
|
7926
|
-
var filtersObj = state.numericRefinements[attribute];
|
|
7927
|
-
/*
|
|
7928
|
-
filtersObj === {
|
|
7929
|
-
"<=": [10],
|
|
7930
|
-
"=": [],
|
|
7931
|
-
">=": [5]
|
|
7932
|
-
}
|
|
7933
|
-
*/
|
|
7934
|
-
|
|
7935
|
-
var filters = [];
|
|
7936
|
-
Object.keys(filtersObj).filter(function (operator) {
|
|
7937
|
-
return Array.isArray(filtersObj[operator]) && filtersObj[operator].length > 0;
|
|
7938
|
-
}).forEach(function (operator) {
|
|
7939
|
-
filtersObj[operator].forEach(function (value) {
|
|
7940
|
-
filters.push("".concat(attribute).concat(operator).concat(value));
|
|
7941
|
-
});
|
|
7942
|
-
});
|
|
7943
|
-
return filters;
|
|
7944
|
-
}
|
|
7945
|
-
|
|
7946
7978
|
// copied from
|
|
7947
7979
|
// https://github.com/algolia/autocomplete.js/blob/307a7acc4283e10a19cb7d067f04f1bea79dc56f/packages/autocomplete-core/src/utils/createConcurrentSafePromise.ts#L1:L1
|
|
7948
7980
|
|
|
@@ -8603,7 +8635,7 @@
|
|
|
8603
8635
|
instantSearchInstance.renderState = _objectSpread2(_objectSpread2({}, instantSearchInstance.renderState), {}, _defineProperty({}, parentIndexName, _objectSpread2(_objectSpread2({}, instantSearchInstance.renderState[parentIndexName]), renderState)));
|
|
8604
8636
|
}
|
|
8605
8637
|
|
|
8606
|
-
var version$1 = '4.
|
|
8638
|
+
var version$1 = '4.45.0';
|
|
8607
8639
|
|
|
8608
8640
|
var NAMESPACE = 'ais';
|
|
8609
8641
|
var component = function component(componentName) {
|
|
@@ -11637,6 +11669,7 @@
|
|
|
11637
11669
|
results = _ref5.results,
|
|
11638
11670
|
createURL = _ref5.createURL,
|
|
11639
11671
|
helper = _ref5.helper;
|
|
11672
|
+
var canRefine = results ? results.nbHits > 0 : false;
|
|
11640
11673
|
return {
|
|
11641
11674
|
items: transformItems(normalizeItems(state), {
|
|
11642
11675
|
results: results
|
|
@@ -11646,7 +11679,8 @@
|
|
|
11646
11679
|
state: state,
|
|
11647
11680
|
createURL: createURL
|
|
11648
11681
|
}),
|
|
11649
|
-
hasNoResults:
|
|
11682
|
+
hasNoResults: !canRefine,
|
|
11683
|
+
canRefine: canRefine,
|
|
11650
11684
|
widgetParams: widgetParams
|
|
11651
11685
|
};
|
|
11652
11686
|
},
|
|
@@ -12117,47 +12151,12 @@
|
|
|
12117
12151
|
var $$type = 'ais.numericMenu';
|
|
12118
12152
|
|
|
12119
12153
|
var createSendEvent = function createSendEvent(_ref) {
|
|
12120
|
-
var instantSearchInstance = _ref.instantSearchInstance
|
|
12121
|
-
helper = _ref.helper,
|
|
12122
|
-
attribute = _ref.attribute;
|
|
12154
|
+
var instantSearchInstance = _ref.instantSearchInstance;
|
|
12123
12155
|
return function () {
|
|
12124
|
-
|
|
12125
|
-
|
|
12126
|
-
}
|
|
12127
|
-
|
|
12128
|
-
if (args.length === 1) {
|
|
12129
|
-
instantSearchInstance.sendEventToInsights(args[0]);
|
|
12156
|
+
if (arguments.length === 1) {
|
|
12157
|
+
instantSearchInstance.sendEventToInsights(arguments.length <= 0 ? undefined : arguments[0]);
|
|
12130
12158
|
return;
|
|
12131
12159
|
}
|
|
12132
|
-
|
|
12133
|
-
var eventType = args[0],
|
|
12134
|
-
facetValue = args[1],
|
|
12135
|
-
_args$ = args[2],
|
|
12136
|
-
eventName = _args$ === void 0 ? 'Filter Applied' : _args$;
|
|
12137
|
-
|
|
12138
|
-
if (eventType !== 'click') {
|
|
12139
|
-
return;
|
|
12140
|
-
} // facetValue === "%7B%22start%22:5,%22end%22:10%7D"
|
|
12141
|
-
|
|
12142
|
-
|
|
12143
|
-
var filters = convertNumericRefinementsToFilters(getRefinedState(helper.state, attribute, facetValue), attribute);
|
|
12144
|
-
|
|
12145
|
-
if (filters && filters.length > 0) {
|
|
12146
|
-
/*
|
|
12147
|
-
filters === ["price<=10", "price>=5"]
|
|
12148
|
-
*/
|
|
12149
|
-
instantSearchInstance.sendEventToInsights({
|
|
12150
|
-
insightsMethod: 'clickedFilters',
|
|
12151
|
-
widgetType: $$type,
|
|
12152
|
-
eventType: eventType,
|
|
12153
|
-
payload: {
|
|
12154
|
-
eventName: eventName,
|
|
12155
|
-
index: helper.getIndex(),
|
|
12156
|
-
filters: filters
|
|
12157
|
-
},
|
|
12158
|
-
attribute: attribute
|
|
12159
|
-
});
|
|
12160
|
-
}
|
|
12161
12160
|
};
|
|
12162
12161
|
};
|
|
12163
12162
|
|
|
@@ -12301,18 +12300,39 @@
|
|
|
12301
12300
|
|
|
12302
12301
|
if (!connectorState.sendEvent) {
|
|
12303
12302
|
connectorState.sendEvent = createSendEvent({
|
|
12304
|
-
instantSearchInstance: instantSearchInstance
|
|
12305
|
-
helper: helper,
|
|
12306
|
-
attribute: attribute
|
|
12303
|
+
instantSearchInstance: instantSearchInstance
|
|
12307
12304
|
});
|
|
12308
12305
|
}
|
|
12309
12306
|
|
|
12307
|
+
var hasNoResults = results ? results.nbHits === 0 : true;
|
|
12308
|
+
var preparedItems = prepareItems(state);
|
|
12309
|
+
var allIsSelected = true;
|
|
12310
|
+
|
|
12311
|
+
var _iterator = _createForOfIteratorHelper(preparedItems),
|
|
12312
|
+
_step;
|
|
12313
|
+
|
|
12314
|
+
try {
|
|
12315
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
12316
|
+
var item = _step.value;
|
|
12317
|
+
|
|
12318
|
+
if (item.isRefined && decodeURI(item.value) !== '{}') {
|
|
12319
|
+
allIsSelected = false;
|
|
12320
|
+
break;
|
|
12321
|
+
}
|
|
12322
|
+
}
|
|
12323
|
+
} catch (err) {
|
|
12324
|
+
_iterator.e(err);
|
|
12325
|
+
} finally {
|
|
12326
|
+
_iterator.f();
|
|
12327
|
+
}
|
|
12328
|
+
|
|
12310
12329
|
return {
|
|
12311
12330
|
createURL: connectorState.createURL(state),
|
|
12312
|
-
items: transformItems(
|
|
12331
|
+
items: transformItems(preparedItems, {
|
|
12313
12332
|
results: results
|
|
12314
12333
|
}),
|
|
12315
|
-
hasNoResults:
|
|
12334
|
+
hasNoResults: hasNoResults,
|
|
12335
|
+
canRefine: !(hasNoResults && allIsSelected),
|
|
12316
12336
|
refine: connectorState.refine,
|
|
12317
12337
|
sendEvent: connectorState.sendEvent,
|
|
12318
12338
|
widgetParams: widgetParams
|
|
@@ -12729,50 +12749,12 @@
|
|
|
12729
12749
|
return null;
|
|
12730
12750
|
};
|
|
12731
12751
|
|
|
12732
|
-
var
|
|
12733
|
-
var eventName = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'Filter Applied';
|
|
12734
|
-
var filters = convertNumericRefinementsToFilters(refinedState, attribute);
|
|
12735
|
-
|
|
12736
|
-
if (filters && filters.length > 0) {
|
|
12737
|
-
instantSearchInstance.sendEventToInsights({
|
|
12738
|
-
insightsMethod: 'clickedFilters',
|
|
12739
|
-
widgetType: $$type$1,
|
|
12740
|
-
eventType: 'click',
|
|
12741
|
-
payload: {
|
|
12742
|
-
eventName: eventName,
|
|
12743
|
-
index: helper.getIndex(),
|
|
12744
|
-
filters: filters
|
|
12745
|
-
},
|
|
12746
|
-
attribute: attribute
|
|
12747
|
-
});
|
|
12748
|
-
}
|
|
12749
|
-
};
|
|
12750
|
-
|
|
12751
|
-
var createSendEvent = function createSendEvent(instantSearchInstance, helper, currentRange) {
|
|
12752
|
+
var createSendEvent = function createSendEvent(instantSearchInstance) {
|
|
12752
12753
|
return function () {
|
|
12753
|
-
|
|
12754
|
-
|
|
12755
|
-
}
|
|
12756
|
-
|
|
12757
|
-
if (args.length === 1) {
|
|
12758
|
-
instantSearchInstance.sendEventToInsights(args[0]);
|
|
12754
|
+
if (arguments.length === 1) {
|
|
12755
|
+
instantSearchInstance.sendEventToInsights(arguments.length <= 0 ? undefined : arguments[0]);
|
|
12759
12756
|
return;
|
|
12760
12757
|
}
|
|
12761
|
-
|
|
12762
|
-
var eventType = args[0],
|
|
12763
|
-
facetValue = args[1],
|
|
12764
|
-
eventName = args[2];
|
|
12765
|
-
|
|
12766
|
-
if (eventType !== 'click') {
|
|
12767
|
-
return;
|
|
12768
|
-
}
|
|
12769
|
-
|
|
12770
|
-
var _facetValue = _slicedToArray(facetValue, 2),
|
|
12771
|
-
nextMin = _facetValue[0],
|
|
12772
|
-
nextMax = _facetValue[1];
|
|
12773
|
-
|
|
12774
|
-
var refinedState = getRefinedState(helper, currentRange, nextMin, nextMax);
|
|
12775
|
-
sendEventWithRefinedState(refinedState, instantSearchInstance, helper, eventName);
|
|
12776
12758
|
};
|
|
12777
12759
|
};
|
|
12778
12760
|
|
|
@@ -12818,7 +12800,7 @@
|
|
|
12818
12800
|
return [min, max];
|
|
12819
12801
|
}
|
|
12820
12802
|
|
|
12821
|
-
function _refine(
|
|
12803
|
+
function _refine(helper, currentRange) {
|
|
12822
12804
|
return function () {
|
|
12823
12805
|
var _ref11 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [undefined, undefined],
|
|
12824
12806
|
_ref12 = _slicedToArray(_ref11, 2),
|
|
@@ -12828,7 +12810,6 @@
|
|
|
12828
12810
|
var refinedState = getRefinedState(helper, currentRange, nextMin, nextMax);
|
|
12829
12811
|
|
|
12830
12812
|
if (refinedState) {
|
|
12831
|
-
sendEventWithRefinedState(refinedState, instantSearchInstance, helper);
|
|
12832
12813
|
helper.setState(refinedState).search();
|
|
12833
12814
|
}
|
|
12834
12815
|
};
|
|
@@ -12874,12 +12855,12 @@
|
|
|
12874
12855
|
// On first render pass an empty range
|
|
12875
12856
|
// to be able to bypass the validation
|
|
12876
12857
|
// related to it
|
|
12877
|
-
refine = _refine(
|
|
12858
|
+
refine = _refine(helper, {
|
|
12878
12859
|
min: undefined,
|
|
12879
12860
|
max: undefined
|
|
12880
12861
|
});
|
|
12881
12862
|
} else {
|
|
12882
|
-
refine = _refine(
|
|
12863
|
+
refine = _refine(helper, currentRange);
|
|
12883
12864
|
}
|
|
12884
12865
|
|
|
12885
12866
|
return {
|
|
@@ -12887,7 +12868,7 @@
|
|
|
12887
12868
|
canRefine: currentRange.min !== currentRange.max,
|
|
12888
12869
|
format: rangeFormatter,
|
|
12889
12870
|
range: currentRange,
|
|
12890
|
-
sendEvent: createSendEvent(instantSearchInstance
|
|
12871
|
+
sendEvent: createSendEvent(instantSearchInstance),
|
|
12891
12872
|
widgetParams: _objectSpread2(_objectSpread2({}, widgetParams), {}, {
|
|
12892
12873
|
precision: precision
|
|
12893
12874
|
}),
|
|
@@ -13407,13 +13388,15 @@
|
|
|
13407
13388
|
};
|
|
13408
13389
|
}
|
|
13409
13390
|
|
|
13391
|
+
var hasNoResults = results ? results.nbHits === 0 : true;
|
|
13410
13392
|
return {
|
|
13411
13393
|
currentRefinement: state.index,
|
|
13412
13394
|
options: transformItems(items, {
|
|
13413
13395
|
results: results
|
|
13414
13396
|
}),
|
|
13415
13397
|
refine: connectorState.setIndex,
|
|
13416
|
-
hasNoResults:
|
|
13398
|
+
hasNoResults: hasNoResults,
|
|
13399
|
+
canRefine: !hasNoResults && items.length > 0,
|
|
13417
13400
|
widgetParams: widgetParams
|
|
13418
13401
|
};
|
|
13419
13402
|
},
|
|
@@ -13617,6 +13600,9 @@
|
|
|
13617
13600
|
});
|
|
13618
13601
|
}
|
|
13619
13602
|
|
|
13603
|
+
var refinementIsApplied = false;
|
|
13604
|
+
var totalCount = 0;
|
|
13605
|
+
|
|
13620
13606
|
if (results) {
|
|
13621
13607
|
var facetResults = results.getFacetValues(attribute, {});
|
|
13622
13608
|
var maxValuesPerFacet = facetResults.length;
|
|
@@ -13632,6 +13618,7 @@
|
|
|
13632
13618
|
|
|
13633
13619
|
var _loop = function _loop(star) {
|
|
13634
13620
|
var isRefined = refinedStar === star;
|
|
13621
|
+
refinementIsApplied = refinementIsApplied || isRefined;
|
|
13635
13622
|
var count = facetResults.filter(function (f) {
|
|
13636
13623
|
return Number(f.name) >= star && Number(f.name) <= max;
|
|
13637
13624
|
}).map(function (f) {
|
|
@@ -13639,6 +13626,7 @@
|
|
|
13639
13626
|
}).reduce(function (sum, current) {
|
|
13640
13627
|
return sum + current;
|
|
13641
13628
|
}, 0);
|
|
13629
|
+
totalCount += count;
|
|
13642
13630
|
|
|
13643
13631
|
if (refinedStar && !isRefined && count === 0) {
|
|
13644
13632
|
// skip count==0 when at least 1 refinement is enabled
|
|
@@ -13668,10 +13656,11 @@
|
|
|
13668
13656
|
}
|
|
13669
13657
|
|
|
13670
13658
|
facetValues = facetValues.reverse();
|
|
13659
|
+
var hasNoResults = results ? results.nbHits === 0 : true;
|
|
13671
13660
|
return {
|
|
13672
13661
|
items: facetValues,
|
|
13673
|
-
hasNoResults:
|
|
13674
|
-
canRefine:
|
|
13662
|
+
hasNoResults: hasNoResults,
|
|
13663
|
+
canRefine: (!hasNoResults || refinementIsApplied) && totalCount > 0,
|
|
13675
13664
|
refine: connectorState.toggleRefinementFactory(helper),
|
|
13676
13665
|
sendEvent: sendEvent,
|
|
13677
13666
|
createURL: connectorState.createURLFactory({
|