instantsearch.js 4.44.0 → 4.45.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.
- package/CHANGELOG.md +27 -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 +10 -4
- package/cjs/connectors/sort-by/connectSortBy.js +3 -1
- package/cjs/lib/version.js +1 -1
- package/cjs/widgets/clear-refinements/clear-refinements.js +2 -2
- package/dist/instantsearch.development.d.ts +29 -10
- package/dist/instantsearch.development.js +113 -124
- package/dist/instantsearch.development.js.map +1 -1
- package/dist/instantsearch.production.d.ts +29 -10
- package/dist/instantsearch.production.min.d.ts +29 -10
- package/dist/instantsearch.production.min.js +2 -2
- package/dist/instantsearch.production.min.js.map +1 -1
- package/es/components/Answers/Answers.d.ts +2 -2
- package/es/components/Hits/Hits.d.ts +2 -2
- package/es/components/InfiniteHits/InfiniteHits.d.ts +2 -2
- package/es/connectors/answers/connectAnswers.d.ts +2 -2
- package/es/connectors/autocomplete/connectAutocomplete.d.ts +2 -2
- 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 +10 -4
- package/es/connectors/sort-by/connectSortBy.d.ts +5 -0
- package/es/connectors/sort-by/connectSortBy.js +3 -1
- package/es/lib/insights/client.d.ts +2 -2
- package/es/lib/utils/createSendEventForHits.d.ts +3 -3
- package/es/lib/version.d.ts +1 -1
- package/es/lib/version.js +1 -1
- package/es/types/connector.d.ts +2 -2
- package/es/widgets/clear-refinements/clear-refinements.js +2 -2
- package/package.json +4 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! InstantSearch.js 4.
|
|
1
|
+
/*! InstantSearch.js 4.45.1 | © 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.1';
|
|
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,46 +12151,11 @@
|
|
|
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]);
|
|
12130
|
-
return;
|
|
12131
|
-
}
|
|
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') {
|
|
12156
|
+
if (arguments.length === 1) {
|
|
12157
|
+
instantSearchInstance.sendEventToInsights(arguments.length <= 0 ? undefined : arguments[0]);
|
|
12139
12158
|
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
12159
|
}
|
|
12161
12160
|
};
|
|
12162
12161
|
};
|
|
@@ -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]);
|
|
12759
|
-
return;
|
|
12760
|
-
}
|
|
12761
|
-
|
|
12762
|
-
var eventType = args[0],
|
|
12763
|
-
facetValue = args[1],
|
|
12764
|
-
eventName = args[2];
|
|
12765
|
-
|
|
12766
|
-
if (eventType !== 'click') {
|
|
12754
|
+
if (arguments.length === 1) {
|
|
12755
|
+
instantSearchInstance.sendEventToInsights(arguments.length <= 0 ? undefined : arguments[0]);
|
|
12767
12756
|
return;
|
|
12768
12757
|
}
|
|
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,8 +13600,11 @@
|
|
|
13617
13600
|
});
|
|
13618
13601
|
}
|
|
13619
13602
|
|
|
13620
|
-
|
|
13621
|
-
|
|
13603
|
+
var refinementIsApplied = false;
|
|
13604
|
+
var totalCount = 0;
|
|
13605
|
+
var facetResults = results === null || results === void 0 ? void 0 : results.getFacetValues(attribute, {});
|
|
13606
|
+
|
|
13607
|
+
if (results && facetResults) {
|
|
13622
13608
|
var maxValuesPerFacet = facetResults.length;
|
|
13623
13609
|
var maxDecimalPlaces = getFacetsMaxDecimalPlaces(facetResults);
|
|
13624
13610
|
var maxFacets = Math.pow(10, maxDecimalPlaces) * max;
|
|
@@ -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({
|
|
@@ -16103,7 +16092,7 @@
|
|
|
16103
16092
|
templates = _ref.templates;
|
|
16104
16093
|
return function (_ref2, isFirstRendering) {
|
|
16105
16094
|
var refine = _ref2.refine,
|
|
16106
|
-
|
|
16095
|
+
canRefine = _ref2.canRefine,
|
|
16107
16096
|
instantSearchInstance = _ref2.instantSearchInstance;
|
|
16108
16097
|
|
|
16109
16098
|
if (isFirstRendering) {
|
|
@@ -16118,7 +16107,7 @@
|
|
|
16118
16107
|
S(v(ClearRefinements, {
|
|
16119
16108
|
refine: refine,
|
|
16120
16109
|
cssClasses: cssClasses,
|
|
16121
|
-
hasRefinements:
|
|
16110
|
+
hasRefinements: canRefine,
|
|
16122
16111
|
templateProps: renderState.templateProps
|
|
16123
16112
|
}), containerNode);
|
|
16124
16113
|
};
|