instantsearch.js 4.33.0 → 4.35.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 +41 -0
- package/README.md +24 -1
- package/cjs/connectors/autocomplete/connectAutocomplete.js +2 -1
- package/cjs/connectors/infinite-hits/connectInfiniteHits.js +1 -1
- package/cjs/connectors/numeric-menu/connectNumericMenu.js +6 -4
- package/cjs/connectors/pagination/connectPagination.js +3 -3
- package/cjs/connectors/search-box/connectSearchBox.js +4 -3
- package/cjs/connectors/sort-by/connectSortBy.js +2 -1
- package/cjs/connectors/stats/connectStats.js +4 -4
- package/cjs/connectors/toggle-refinement/connectToggleRefinement.js +1 -1
- package/cjs/lib/InstantSearch.js +23 -2
- package/cjs/lib/version.js +1 -1
- package/cjs/widgets/index/index.js +21 -3
- package/dist/instantsearch.development.d.ts +9 -2
- package/dist/instantsearch.development.js +72 -28
- package/dist/instantsearch.development.js.map +1 -1
- package/dist/instantsearch.development.min.d.ts +9 -2
- package/dist/instantsearch.production.d.ts +9 -2
- package/dist/instantsearch.production.min.d.ts +9 -2
- package/dist/instantsearch.production.min.js +2 -2
- package/dist/instantsearch.production.min.js.map +1 -1
- package/es/connectors/autocomplete/connectAutocomplete.js +2 -1
- package/es/connectors/infinite-hits/connectInfiniteHits.js +1 -1
- package/es/connectors/numeric-menu/connectNumericMenu.js +6 -4
- package/es/connectors/pagination/connectPagination.js +3 -3
- package/es/connectors/search-box/connectSearchBox.js +4 -3
- package/es/connectors/sort-by/connectSortBy.js +2 -1
- package/es/connectors/stats/connectStats.js +4 -4
- package/es/connectors/toggle-refinement/connectToggleRefinement.js +1 -1
- package/es/lib/InstantSearch.d.ts +3 -3
- package/es/lib/InstantSearch.js +23 -2
- package/es/lib/version.d.ts +1 -1
- package/es/lib/version.js +1 -1
- package/es/types/results.d.ts +7 -0
- package/es/widgets/index/index.js +21 -3
- package/package.json +10 -7
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! InstantSearch.js 4.
|
|
1
|
+
/*! InstantSearch.js 4.35.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) :
|
|
@@ -3475,7 +3475,7 @@
|
|
|
3475
3475
|
var events = EventEmitter;
|
|
3476
3476
|
|
|
3477
3477
|
// Backwards-compat with node 0.10.x
|
|
3478
|
-
EventEmitter.EventEmitter = EventEmitter;
|
|
3478
|
+
// EventEmitter.EventEmitter = EventEmitter;
|
|
3479
3479
|
|
|
3480
3480
|
EventEmitter.prototype._events = undefined;
|
|
3481
3481
|
EventEmitter.prototype._maxListeners = undefined;
|
|
@@ -3779,7 +3779,7 @@
|
|
|
3779
3779
|
this.lastResults = null;
|
|
3780
3780
|
}
|
|
3781
3781
|
|
|
3782
|
-
inherits_1(DerivedHelper, events
|
|
3782
|
+
inherits_1(DerivedHelper, events);
|
|
3783
3783
|
|
|
3784
3784
|
/**
|
|
3785
3785
|
* Detach this helper from the main helper
|
|
@@ -4115,7 +4115,7 @@
|
|
|
4115
4115
|
|
|
4116
4116
|
var requestBuilder_1 = requestBuilder;
|
|
4117
4117
|
|
|
4118
|
-
var version = '3.
|
|
4118
|
+
var version = '3.7.0';
|
|
4119
4119
|
|
|
4120
4120
|
/**
|
|
4121
4121
|
* Event triggered when a parameter is set or updated
|
|
@@ -4236,7 +4236,7 @@
|
|
|
4236
4236
|
this._currentNbQueries = 0;
|
|
4237
4237
|
}
|
|
4238
4238
|
|
|
4239
|
-
inherits_1(AlgoliaSearchHelper, events
|
|
4239
|
+
inherits_1(AlgoliaSearchHelper, events);
|
|
4240
4240
|
|
|
4241
4241
|
/**
|
|
4242
4242
|
* Start the search with the parameters set in the state. When the
|
|
@@ -8186,7 +8186,8 @@
|
|
|
8186
8186
|
return this;
|
|
8187
8187
|
},
|
|
8188
8188
|
init: function init(_ref2) {
|
|
8189
|
-
var _this3 = this
|
|
8189
|
+
var _this3 = this,
|
|
8190
|
+
_instantSearchInstanc;
|
|
8190
8191
|
|
|
8191
8192
|
var instantSearchInstance = _ref2.instantSearchInstance,
|
|
8192
8193
|
parent = _ref2.parent,
|
|
@@ -8244,11 +8245,21 @@
|
|
|
8244
8245
|
|
|
8245
8246
|
derivedHelper = mainHelper.derive(function () {
|
|
8246
8247
|
return merge$1.apply(void 0, _toConsumableArray(resolveSearchParameters(_this3)));
|
|
8247
|
-
});
|
|
8248
|
+
});
|
|
8249
|
+
var indexInitialResults = (_instantSearchInstanc = instantSearchInstance._initialResults) === null || _instantSearchInstanc === void 0 ? void 0 : _instantSearchInstanc[this.getIndexId()];
|
|
8250
|
+
|
|
8251
|
+
if (indexInitialResults) {
|
|
8252
|
+
// We restore the shape of the results provided to the instance to respect
|
|
8253
|
+
// the helper's structure.
|
|
8254
|
+
var results = new algoliasearchHelper_1.SearchResults(new algoliasearchHelper_1.SearchParameters(indexInitialResults.state), indexInitialResults.results);
|
|
8255
|
+
derivedHelper.lastResults = results;
|
|
8256
|
+
helper.lastResults = results;
|
|
8257
|
+
} // Subscribe to the Helper state changes for the page before widgets
|
|
8248
8258
|
// are initialized. This behavior mimics the original one of the Helper.
|
|
8249
8259
|
// It makes sense to replicate it at the `init` step. We have another
|
|
8250
8260
|
// listener on `change` below, once `init` is done.
|
|
8251
8261
|
|
|
8262
|
+
|
|
8252
8263
|
helper.on('change', function (_ref3) {
|
|
8253
8264
|
var isPageReset = _ref3.isPageReset;
|
|
8254
8265
|
|
|
@@ -8349,6 +8360,13 @@
|
|
|
8349
8360
|
instantSearchInstance.onInternalStateChange();
|
|
8350
8361
|
}
|
|
8351
8362
|
});
|
|
8363
|
+
|
|
8364
|
+
if (indexInitialResults) {
|
|
8365
|
+
// If there are initial results, we're not notified of the next results
|
|
8366
|
+
// because we don't trigger an initial search. We therefore need to directly
|
|
8367
|
+
// schedule a render that will render the results injected on the helper.
|
|
8368
|
+
instantSearchInstance.scheduleRender();
|
|
8369
|
+
}
|
|
8352
8370
|
},
|
|
8353
8371
|
render: function render(_ref5) {
|
|
8354
8372
|
var _this4 = this;
|
|
@@ -8452,7 +8470,7 @@
|
|
|
8452
8470
|
localUiState = getLocalWidgetsUiState(localWidgets, {
|
|
8453
8471
|
searchParameters: this.getHelper().state,
|
|
8454
8472
|
helper: this.getHelper()
|
|
8455
|
-
});
|
|
8473
|
+
}, localUiState);
|
|
8456
8474
|
}
|
|
8457
8475
|
};
|
|
8458
8476
|
};
|
|
@@ -8465,7 +8483,7 @@
|
|
|
8465
8483
|
instantSearchInstance.renderState = _objectSpread2(_objectSpread2({}, instantSearchInstance.renderState), {}, _defineProperty({}, parentIndexName, _objectSpread2(_objectSpread2({}, instantSearchInstance.renderState[parentIndexName]), renderState)));
|
|
8466
8484
|
}
|
|
8467
8485
|
|
|
8468
|
-
var version$1 = '4.
|
|
8486
|
+
var version$1 = '4.35.0';
|
|
8469
8487
|
|
|
8470
8488
|
var NAMESPACE = 'ais';
|
|
8471
8489
|
var component = function component(componentName) {
|
|
@@ -9962,6 +9980,8 @@
|
|
|
9962
9980
|
|
|
9963
9981
|
_defineProperty(_assertThisInitialized(_this), "_initialUiState", void 0);
|
|
9964
9982
|
|
|
9983
|
+
_defineProperty(_assertThisInitialized(_this), "_initialResults", void 0);
|
|
9984
|
+
|
|
9965
9985
|
_defineProperty(_assertThisInitialized(_this), "_createURL", void 0);
|
|
9966
9986
|
|
|
9967
9987
|
_defineProperty(_assertThisInitialized(_this), "_searchFunction", void 0);
|
|
@@ -10066,6 +10086,7 @@
|
|
|
10066
10086
|
_this._isSearchStalled = false;
|
|
10067
10087
|
_this._createURL = defaultCreateURL;
|
|
10068
10088
|
_this._initialUiState = initialUiState;
|
|
10089
|
+
_this._initialResults = null;
|
|
10069
10090
|
|
|
10070
10091
|
if (searchFunction) {
|
|
10071
10092
|
_this._searchFunction = searchFunction;
|
|
@@ -10308,9 +10329,27 @@
|
|
|
10308
10329
|
parent: null,
|
|
10309
10330
|
uiState: this._initialUiState
|
|
10310
10331
|
});
|
|
10311
|
-
|
|
10332
|
+
|
|
10333
|
+
if (this._initialResults) {
|
|
10334
|
+
var originalScheduleSearch = this.scheduleSearch; // We don't schedule a first search when initial results are provided
|
|
10335
|
+
// because we already have the results to render. This skips the initial
|
|
10336
|
+
// network request on the browser on `start`.
|
|
10337
|
+
|
|
10338
|
+
this.scheduleSearch = defer(noop); // We also skip the initial network request when widgets are dynamically
|
|
10339
|
+
// added in the first tick (that's the case in all the framework-based flavors).
|
|
10340
|
+
// When we add a widget to `index`, it calls `scheduleSearch`. We can rely
|
|
10341
|
+
// on our `defer` util to restore the original `scheduleSearch` value once
|
|
10342
|
+
// widgets are added to hook back to the regular lifecycle.
|
|
10343
|
+
|
|
10344
|
+
defer(function () {
|
|
10345
|
+
_this3.scheduleSearch = originalScheduleSearch;
|
|
10346
|
+
})();
|
|
10347
|
+
} else {
|
|
10348
|
+
this.scheduleSearch();
|
|
10349
|
+
} // Keep the previous reference for legacy purpose, some pattern use
|
|
10312
10350
|
// the direct Helper access `search.helper` (e.g multi-index).
|
|
10313
10351
|
|
|
10352
|
+
|
|
10314
10353
|
this.helper = this.mainIndex.getHelper(); // track we started the search if we add more widgets,
|
|
10315
10354
|
// to init them directly after add
|
|
10316
10355
|
|
|
@@ -11563,7 +11602,7 @@
|
|
|
11563
11602
|
index: helper.getIndex(),
|
|
11564
11603
|
widgetType: this.$$type
|
|
11565
11604
|
});
|
|
11566
|
-
isFirstPage =
|
|
11605
|
+
isFirstPage = state.page === undefined || getFirstReceivedPage(state, cachedHits) === 0;
|
|
11567
11606
|
} else {
|
|
11568
11607
|
var _state$page3 = state.page,
|
|
11569
11608
|
_page = _state$page3 === void 0 ? 0 : _state$page3;
|
|
@@ -12068,6 +12107,8 @@
|
|
|
12068
12107
|
if (option.start !== undefined && option.end !== undefined) {
|
|
12069
12108
|
if (option.start === option.end) {
|
|
12070
12109
|
return hasNumericRefinement(currentRefinements, '=', option.start);
|
|
12110
|
+
} else {
|
|
12111
|
+
return hasNumericRefinement(currentRefinements, '>=', option.start) && hasNumericRefinement(currentRefinements, '<=', option.end);
|
|
12071
12112
|
}
|
|
12072
12113
|
}
|
|
12073
12114
|
|
|
@@ -12121,17 +12162,17 @@
|
|
|
12121
12162
|
if (refinedOption.start !== undefined) {
|
|
12122
12163
|
if (hasNumericRefinement(currentRefinements, '>=', refinedOption.start)) {
|
|
12123
12164
|
resolvedState = resolvedState.removeNumericRefinement(attribute, '>=', refinedOption.start);
|
|
12124
|
-
} else {
|
|
12125
|
-
resolvedState = resolvedState.addNumericRefinement(attribute, '>=', refinedOption.start);
|
|
12126
12165
|
}
|
|
12166
|
+
|
|
12167
|
+
resolvedState = resolvedState.addNumericRefinement(attribute, '>=', refinedOption.start);
|
|
12127
12168
|
}
|
|
12128
12169
|
|
|
12129
12170
|
if (refinedOption.end !== undefined) {
|
|
12130
12171
|
if (hasNumericRefinement(currentRefinements, '<=', refinedOption.end)) {
|
|
12131
12172
|
resolvedState = resolvedState.removeNumericRefinement(attribute, '<=', refinedOption.end);
|
|
12132
|
-
} else {
|
|
12133
|
-
resolvedState = resolvedState.addNumericRefinement(attribute, '<=', refinedOption.end);
|
|
12134
12173
|
}
|
|
12174
|
+
|
|
12175
|
+
resolvedState = resolvedState.addNumericRefinement(attribute, '<=', refinedOption.end);
|
|
12135
12176
|
}
|
|
12136
12177
|
|
|
12137
12178
|
if (typeof resolvedState.page === 'number') {
|
|
@@ -12289,6 +12330,7 @@
|
|
|
12289
12330
|
getWidgetRenderState: function getWidgetRenderState(_ref6) {
|
|
12290
12331
|
var results = _ref6.results,
|
|
12291
12332
|
helper = _ref6.helper,
|
|
12333
|
+
state = _ref6.state,
|
|
12292
12334
|
createURL = _ref6.createURL;
|
|
12293
12335
|
|
|
12294
12336
|
if (!connectorState.refine) {
|
|
@@ -12299,14 +12341,13 @@
|
|
|
12299
12341
|
}
|
|
12300
12342
|
|
|
12301
12343
|
if (!connectorState.createURL) {
|
|
12302
|
-
connectorState.createURL = function (
|
|
12344
|
+
connectorState.createURL = function (helperState) {
|
|
12303
12345
|
return function (page) {
|
|
12304
|
-
return createURL(
|
|
12346
|
+
return createURL(helperState.setPage(page));
|
|
12305
12347
|
};
|
|
12306
12348
|
};
|
|
12307
12349
|
}
|
|
12308
12350
|
|
|
12309
|
-
var state = helper.state;
|
|
12310
12351
|
var page = state.page || 0;
|
|
12311
12352
|
var nbPages = getMaxPage(results || {
|
|
12312
12353
|
nbPages: 0
|
|
@@ -13026,11 +13067,12 @@
|
|
|
13026
13067
|
},
|
|
13027
13068
|
getWidgetRenderState: function getWidgetRenderState(_ref3) {
|
|
13028
13069
|
var helper = _ref3.helper,
|
|
13029
|
-
searchMetadata = _ref3.searchMetadata
|
|
13070
|
+
searchMetadata = _ref3.searchMetadata,
|
|
13071
|
+
state = _ref3.state;
|
|
13030
13072
|
|
|
13031
13073
|
if (!_refine) {
|
|
13032
13074
|
var setQueryAndSearch = function setQueryAndSearch(query) {
|
|
13033
|
-
if (query !==
|
|
13075
|
+
if (query !== state.query) {
|
|
13034
13076
|
helper.setQuery(query).search();
|
|
13035
13077
|
}
|
|
13036
13078
|
};
|
|
@@ -13047,7 +13089,7 @@
|
|
|
13047
13089
|
|
|
13048
13090
|
_clear = clear(helper);
|
|
13049
13091
|
return {
|
|
13050
|
-
query:
|
|
13092
|
+
query: state.query || '',
|
|
13051
13093
|
refine: _refine,
|
|
13052
13094
|
clear: _cachedClear,
|
|
13053
13095
|
widgetParams: widgetParams,
|
|
@@ -13133,6 +13175,7 @@
|
|
|
13133
13175
|
getWidgetRenderState: function getWidgetRenderState(_ref3) {
|
|
13134
13176
|
var results = _ref3.results,
|
|
13135
13177
|
helper = _ref3.helper,
|
|
13178
|
+
state = _ref3.state,
|
|
13136
13179
|
parent = _ref3.parent;
|
|
13137
13180
|
|
|
13138
13181
|
if (!connectorState.initialIndex && parent) {
|
|
@@ -13146,7 +13189,7 @@
|
|
|
13146
13189
|
}
|
|
13147
13190
|
|
|
13148
13191
|
return {
|
|
13149
|
-
currentRefinement:
|
|
13192
|
+
currentRefinement: state.index,
|
|
13150
13193
|
options: transformItems(items),
|
|
13151
13194
|
refine: connectorState.setIndex,
|
|
13152
13195
|
hasNoResults: results ? results.nbHits === 0 : true,
|
|
@@ -13490,18 +13533,18 @@
|
|
|
13490
13533
|
},
|
|
13491
13534
|
getWidgetRenderState: function getWidgetRenderState(_ref) {
|
|
13492
13535
|
var results = _ref.results,
|
|
13493
|
-
|
|
13536
|
+
state = _ref.state;
|
|
13494
13537
|
|
|
13495
13538
|
if (!results) {
|
|
13496
13539
|
return {
|
|
13497
|
-
hitsPerPage:
|
|
13540
|
+
hitsPerPage: state.hitsPerPage,
|
|
13498
13541
|
nbHits: 0,
|
|
13499
13542
|
nbSortedHits: undefined,
|
|
13500
13543
|
areHitsSorted: false,
|
|
13501
13544
|
nbPages: 0,
|
|
13502
|
-
page:
|
|
13545
|
+
page: state.page || 0,
|
|
13503
13546
|
processingTimeMS: -1,
|
|
13504
|
-
query:
|
|
13547
|
+
query: state.query || '',
|
|
13505
13548
|
widgetParams: widgetParams
|
|
13506
13549
|
};
|
|
13507
13550
|
}
|
|
@@ -13694,7 +13737,7 @@
|
|
|
13694
13737
|
createURL = _ref6.createURL,
|
|
13695
13738
|
instantSearchInstance = _ref6.instantSearchInstance;
|
|
13696
13739
|
var isRefined = results ? on.every(function (v) {
|
|
13697
|
-
return
|
|
13740
|
+
return state.isDisjunctiveFacetRefined(attribute, v);
|
|
13698
13741
|
}) : on.every(function (v) {
|
|
13699
13742
|
return state.isDisjunctiveFacetRefined(attribute, v);
|
|
13700
13743
|
});
|
|
@@ -14462,6 +14505,7 @@
|
|
|
14462
14505
|
var _this = this;
|
|
14463
14506
|
|
|
14464
14507
|
var helper = _ref4.helper,
|
|
14508
|
+
state = _ref4.state,
|
|
14465
14509
|
scopedResults = _ref4.scopedResults,
|
|
14466
14510
|
instantSearchInstance = _ref4.instantSearchInstance;
|
|
14467
14511
|
|
|
@@ -14489,7 +14533,7 @@
|
|
|
14489
14533
|
};
|
|
14490
14534
|
});
|
|
14491
14535
|
return {
|
|
14492
|
-
currentRefinement:
|
|
14536
|
+
currentRefinement: state.query || '',
|
|
14493
14537
|
indices: indices,
|
|
14494
14538
|
refine: connectorState.refine,
|
|
14495
14539
|
widgetParams: widgetParams
|