instantsearch.js 4.56.3 → 4.56.5
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/cjs/connectors/breadcrumb/connectBreadcrumb.js +31 -4
- package/cjs/connectors/hierarchical-menu/connectHierarchicalMenu.js +9 -3
- package/cjs/connectors/hits-per-page/connectHitsPerPage.js +12 -3
- package/cjs/connectors/menu/connectMenu.js +7 -1
- package/cjs/connectors/numeric-menu/connectNumericMenu.js +7 -1
- package/cjs/connectors/pagination/connectPagination.js +7 -5
- package/cjs/connectors/rating-menu/connectRatingMenu.js +12 -3
- package/cjs/connectors/refinement-list/connectRefinementList.js +7 -1
- package/cjs/connectors/toggle-refinement/connectToggleRefinement.js +15 -3
- package/cjs/lib/version.js +1 -1
- package/cjs/middlewares/createRouterMiddleware.js +12 -2
- package/cjs/widgets/index/index.js +6 -3
- package/dist/instantsearch.development.d.ts +7 -3
- package/dist/instantsearch.development.js +127 -31
- package/dist/instantsearch.development.js.map +1 -1
- package/dist/instantsearch.production.d.ts +7 -3
- package/dist/instantsearch.production.min.d.ts +7 -3
- package/dist/instantsearch.production.min.js +2 -2
- package/dist/instantsearch.production.min.js.map +1 -1
- package/es/connectors/breadcrumb/connectBreadcrumb.js +31 -4
- package/es/connectors/hierarchical-menu/connectHierarchicalMenu.js +9 -3
- package/es/connectors/hits-per-page/connectHitsPerPage.d.ts +5 -1
- package/es/connectors/hits-per-page/connectHitsPerPage.js +12 -3
- package/es/connectors/menu/connectMenu.js +7 -1
- package/es/connectors/numeric-menu/connectNumericMenu.js +7 -1
- package/es/connectors/pagination/connectPagination.js +7 -5
- package/es/connectors/rating-menu/connectRatingMenu.js +12 -3
- package/es/connectors/refinement-list/connectRefinementList.js +7 -1
- package/es/connectors/toggle-refinement/connectToggleRefinement.d.ts +1 -1
- package/es/connectors/toggle-refinement/connectToggleRefinement.js +15 -3
- package/es/connectors/toggle-refinement/types.d.ts +5 -40
- package/es/lib/utils/render-args.d.ts +222 -2
- package/es/lib/version.d.ts +1 -1
- package/es/lib/version.js +1 -1
- package/es/middlewares/createRouterMiddleware.js +12 -2
- package/es/types/widget.d.ts +1 -1
- package/es/widgets/index/index.d.ts +1 -1
- package/es/widgets/index/index.js +6 -3
- package/package.json +5 -5
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! InstantSearch.js 4.56.
|
|
1
|
+
/*! InstantSearch.js 4.56.5 | © 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) :
|
|
@@ -2395,6 +2395,7 @@
|
|
|
2395
2395
|
});
|
|
2396
2396
|
},
|
|
2397
2397
|
getWidgetRenderState: function getWidgetRenderState(_ref4) {
|
|
2398
|
+
var _this = this;
|
|
2398
2399
|
var results = _ref4.results,
|
|
2399
2400
|
state = _ref4.state,
|
|
2400
2401
|
createURL = _ref4.createURL,
|
|
@@ -2404,9 +2405,14 @@
|
|
|
2404
2405
|
var canToggleShowMore = false;
|
|
2405
2406
|
|
|
2406
2407
|
// Bind createURL to this specific attribute
|
|
2407
|
-
function _createURL(facetValue) {
|
|
2408
|
-
return createURL(
|
|
2409
|
-
|
|
2408
|
+
var _createURL = function _createURL(facetValue) {
|
|
2409
|
+
return createURL(function (uiState) {
|
|
2410
|
+
return _this.getWidgetUiState(uiState, {
|
|
2411
|
+
searchParameters: state.resetPage().toggleFacetRefinement(hierarchicalFacetName, facetValue),
|
|
2412
|
+
helper: helper
|
|
2413
|
+
});
|
|
2414
|
+
});
|
|
2415
|
+
};
|
|
2410
2416
|
if (!sendEvent) {
|
|
2411
2417
|
sendEvent = createSendEventForFacet({
|
|
2412
2418
|
instantSearchInstance: instantSearchInstance,
|
|
@@ -2843,9 +2849,16 @@
|
|
|
2843
2849
|
},
|
|
2844
2850
|
createURLFactory: function createURLFactory(_ref3) {
|
|
2845
2851
|
var state = _ref3.state,
|
|
2846
|
-
createURL = _ref3.createURL
|
|
2852
|
+
createURL = _ref3.createURL,
|
|
2853
|
+
getWidgetUiState = _ref3.getWidgetUiState,
|
|
2854
|
+
helper = _ref3.helper;
|
|
2847
2855
|
return function (value) {
|
|
2848
|
-
return createURL(
|
|
2856
|
+
return createURL(function (uiState) {
|
|
2857
|
+
return getWidgetUiState(uiState, {
|
|
2858
|
+
searchParameters: state.resetPage().setQueryParameter('hitsPerPage', !value && value !== 0 ? undefined : value),
|
|
2859
|
+
helper: helper
|
|
2860
|
+
});
|
|
2861
|
+
});
|
|
2849
2862
|
};
|
|
2850
2863
|
}
|
|
2851
2864
|
};
|
|
@@ -2900,7 +2913,9 @@
|
|
|
2900
2913
|
refine: connectorState.getRefine(helper),
|
|
2901
2914
|
createURL: connectorState.createURLFactory({
|
|
2902
2915
|
state: state,
|
|
2903
|
-
createURL: createURL
|
|
2916
|
+
createURL: createURL,
|
|
2917
|
+
getWidgetUiState: this.getWidgetUiState,
|
|
2918
|
+
helper: helper
|
|
2904
2919
|
}),
|
|
2905
2920
|
hasNoResults: !canRefine,
|
|
2906
2921
|
canRefine: canRefine,
|
|
@@ -3258,6 +3273,7 @@
|
|
|
3258
3273
|
});
|
|
3259
3274
|
},
|
|
3260
3275
|
getWidgetRenderState: function getWidgetRenderState(renderOptions) {
|
|
3276
|
+
var _this = this;
|
|
3261
3277
|
var results = renderOptions.results,
|
|
3262
3278
|
createURL = renderOptions.createURL,
|
|
3263
3279
|
instantSearchInstance = renderOptions.instantSearchInstance,
|
|
@@ -3274,7 +3290,12 @@
|
|
|
3274
3290
|
}
|
|
3275
3291
|
if (!_createURL) {
|
|
3276
3292
|
_createURL = function _createURL(facetValue) {
|
|
3277
|
-
return createURL(
|
|
3293
|
+
return createURL(function (uiState) {
|
|
3294
|
+
return _this.getWidgetUiState(uiState, {
|
|
3295
|
+
searchParameters: helper.state.resetPage().toggleFacetRefinement(attribute, facetValue),
|
|
3296
|
+
helper: helper
|
|
3297
|
+
});
|
|
3298
|
+
});
|
|
3278
3299
|
};
|
|
3279
3300
|
}
|
|
3280
3301
|
if (!_refine) {
|
|
@@ -3475,6 +3496,7 @@
|
|
|
3475
3496
|
});
|
|
3476
3497
|
},
|
|
3477
3498
|
getWidgetRenderState: function getWidgetRenderState(_ref7) {
|
|
3499
|
+
var _this = this;
|
|
3478
3500
|
var results = _ref7.results,
|
|
3479
3501
|
state = _ref7.state,
|
|
3480
3502
|
instantSearchInstance = _ref7.instantSearchInstance,
|
|
@@ -3490,7 +3512,12 @@
|
|
|
3490
3512
|
if (!connectorState.createURL) {
|
|
3491
3513
|
connectorState.createURL = function (newState) {
|
|
3492
3514
|
return function (facetValue) {
|
|
3493
|
-
return createURL(
|
|
3515
|
+
return createURL(function (uiState) {
|
|
3516
|
+
return _this.getWidgetUiState(uiState, {
|
|
3517
|
+
searchParameters: getRefinedState(newState, attribute, facetValue),
|
|
3518
|
+
helper: helper
|
|
3519
|
+
});
|
|
3520
|
+
});
|
|
3494
3521
|
};
|
|
3495
3522
|
};
|
|
3496
3523
|
}
|
|
@@ -3740,10 +3767,12 @@
|
|
|
3740
3767
|
};
|
|
3741
3768
|
}
|
|
3742
3769
|
if (!connectorState.createURL) {
|
|
3743
|
-
connectorState.createURL = function (
|
|
3744
|
-
return function (
|
|
3745
|
-
return
|
|
3746
|
-
|
|
3770
|
+
connectorState.createURL = function (page) {
|
|
3771
|
+
return createURL(function (uiState) {
|
|
3772
|
+
return _objectSpread2(_objectSpread2({}, uiState), {}, {
|
|
3773
|
+
page: page
|
|
3774
|
+
});
|
|
3775
|
+
});
|
|
3747
3776
|
};
|
|
3748
3777
|
}
|
|
3749
3778
|
var page = state.page || 0;
|
|
@@ -3753,7 +3782,7 @@
|
|
|
3753
3782
|
pager.currentPage = page;
|
|
3754
3783
|
pager.total = nbPages;
|
|
3755
3784
|
return {
|
|
3756
|
-
createURL: connectorState.createURL
|
|
3785
|
+
createURL: connectorState.createURL,
|
|
3757
3786
|
refine: connectorState.refine,
|
|
3758
3787
|
canRefine: nbPages > 1,
|
|
3759
3788
|
currentRefinement: page,
|
|
@@ -4196,6 +4225,7 @@
|
|
|
4196
4225
|
});
|
|
4197
4226
|
},
|
|
4198
4227
|
getWidgetRenderState: function getWidgetRenderState(renderOptions) {
|
|
4228
|
+
var _this = this;
|
|
4199
4229
|
var results = renderOptions.results,
|
|
4200
4230
|
state = renderOptions.state,
|
|
4201
4231
|
_createURL = renderOptions.createURL,
|
|
@@ -4249,7 +4279,12 @@
|
|
|
4249
4279
|
var canToggleShowMore = canShowLess || canShowMore;
|
|
4250
4280
|
return {
|
|
4251
4281
|
createURL: function createURL(facetValue) {
|
|
4252
|
-
return _createURL(
|
|
4282
|
+
return _createURL(function (uiState) {
|
|
4283
|
+
return _this.getWidgetUiState(uiState, {
|
|
4284
|
+
searchParameters: state.resetPage().toggleFacetRefinement(attribute, facetValue),
|
|
4285
|
+
helper: helper
|
|
4286
|
+
});
|
|
4287
|
+
});
|
|
4253
4288
|
},
|
|
4254
4289
|
items: items,
|
|
4255
4290
|
refine: triggerRefine,
|
|
@@ -4615,9 +4650,16 @@
|
|
|
4615
4650
|
},
|
|
4616
4651
|
createURLFactory: function createURLFactory(_ref4) {
|
|
4617
4652
|
var state = _ref4.state,
|
|
4618
|
-
createURL = _ref4.createURL
|
|
4653
|
+
createURL = _ref4.createURL,
|
|
4654
|
+
getWidgetUiState = _ref4.getWidgetUiState,
|
|
4655
|
+
helper = _ref4.helper;
|
|
4619
4656
|
return function (value) {
|
|
4620
|
-
return createURL(
|
|
4657
|
+
return createURL(function (uiState) {
|
|
4658
|
+
return getWidgetUiState(uiState, {
|
|
4659
|
+
searchParameters: getRefinedState(state, value),
|
|
4660
|
+
helper: helper
|
|
4661
|
+
});
|
|
4662
|
+
});
|
|
4621
4663
|
};
|
|
4622
4664
|
}
|
|
4623
4665
|
};
|
|
@@ -4713,7 +4755,9 @@
|
|
|
4713
4755
|
sendEvent: sendEvent,
|
|
4714
4756
|
createURL: connectorState.createURLFactory({
|
|
4715
4757
|
state: state,
|
|
4716
|
-
createURL: createURL
|
|
4758
|
+
createURL: createURL,
|
|
4759
|
+
helper: helper,
|
|
4760
|
+
getWidgetUiState: this.getWidgetUiState
|
|
4717
4761
|
}),
|
|
4718
4762
|
widgetParams: widgetParams
|
|
4719
4763
|
};
|
|
@@ -4925,7 +4969,9 @@
|
|
|
4925
4969
|
var connectorState = {
|
|
4926
4970
|
createURLFactory: function createURLFactory(isRefined, _ref4) {
|
|
4927
4971
|
var state = _ref4.state,
|
|
4928
|
-
createURL = _ref4.createURL
|
|
4972
|
+
createURL = _ref4.createURL,
|
|
4973
|
+
getWidgetUiState = _ref4.getWidgetUiState,
|
|
4974
|
+
helper = _ref4.helper;
|
|
4929
4975
|
return function () {
|
|
4930
4976
|
state = state.resetPage();
|
|
4931
4977
|
var valuesToRemove = isRefined ? on : off;
|
|
@@ -4940,7 +4986,12 @@
|
|
|
4940
4986
|
state = state.addDisjunctiveFacetRefinement(attribute, v);
|
|
4941
4987
|
});
|
|
4942
4988
|
}
|
|
4943
|
-
return createURL(
|
|
4989
|
+
return createURL(function (uiState) {
|
|
4990
|
+
return getWidgetUiState(uiState, {
|
|
4991
|
+
searchParameters: state,
|
|
4992
|
+
helper: helper
|
|
4993
|
+
});
|
|
4994
|
+
});
|
|
4944
4995
|
};
|
|
4945
4996
|
}
|
|
4946
4997
|
};
|
|
@@ -5045,7 +5096,9 @@
|
|
|
5045
5096
|
},
|
|
5046
5097
|
createURL: connectorState.createURLFactory(isRefined, {
|
|
5047
5098
|
state: state,
|
|
5048
|
-
createURL: createURL
|
|
5099
|
+
createURL: createURL,
|
|
5100
|
+
helper: helper,
|
|
5101
|
+
getWidgetUiState: this.getWidgetUiState
|
|
5049
5102
|
}),
|
|
5050
5103
|
sendEvent: sendEvent,
|
|
5051
5104
|
canRefine: Boolean(results ? nextRefinement.count : null),
|
|
@@ -5059,6 +5112,9 @@
|
|
|
5059
5112
|
return searchParameters.isDisjunctiveFacetRefined(attribute, v);
|
|
5060
5113
|
});
|
|
5061
5114
|
if (!isRefined) {
|
|
5115
|
+
var _uiState$toggle;
|
|
5116
|
+
// This needs to be done in the case `uiState` comes from `createURL`
|
|
5117
|
+
(_uiState$toggle = uiState.toggle) === null || _uiState$toggle === void 0 ? true : delete _uiState$toggle[attribute];
|
|
5062
5118
|
return uiState;
|
|
5063
5119
|
}
|
|
5064
5120
|
return _objectSpread2(_objectSpread2({}, uiState), {}, {
|
|
@@ -5157,6 +5213,7 @@
|
|
|
5157
5213
|
});
|
|
5158
5214
|
},
|
|
5159
5215
|
getWidgetRenderState: function getWidgetRenderState(_ref2) {
|
|
5216
|
+
var _this = this;
|
|
5160
5217
|
var helper = _ref2.helper,
|
|
5161
5218
|
createURL = _ref2.createURL,
|
|
5162
5219
|
results = _ref2.results,
|
|
@@ -5180,7 +5237,12 @@
|
|
|
5180
5237
|
var items = getItems();
|
|
5181
5238
|
if (!connectorState.createURL) {
|
|
5182
5239
|
connectorState.createURL = function (facetValue) {
|
|
5183
|
-
return createURL(
|
|
5240
|
+
return createURL(function (uiState) {
|
|
5241
|
+
return _this.getWidgetUiState(uiState, {
|
|
5242
|
+
searchParameters: getRefinedState(helper.state, facetValue),
|
|
5243
|
+
helper: helper
|
|
5244
|
+
});
|
|
5245
|
+
});
|
|
5184
5246
|
};
|
|
5185
5247
|
}
|
|
5186
5248
|
if (!connectorState.refine) {
|
|
@@ -5196,18 +5258,39 @@
|
|
|
5196
5258
|
widgetParams: widgetParams
|
|
5197
5259
|
};
|
|
5198
5260
|
},
|
|
5199
|
-
|
|
5261
|
+
getWidgetUiState: function getWidgetUiState(uiState, _ref3) {
|
|
5262
|
+
var searchParameters = _ref3.searchParameters;
|
|
5263
|
+
var path = searchParameters.getHierarchicalFacetBreadcrumb(hierarchicalFacetName);
|
|
5264
|
+
if (!path.length) {
|
|
5265
|
+
return uiState;
|
|
5266
|
+
}
|
|
5267
|
+
return _objectSpread2(_objectSpread2({}, uiState), {}, {
|
|
5268
|
+
hierarchicalMenu: _objectSpread2(_objectSpread2({}, uiState.hierarchicalMenu), {}, _defineProperty({}, hierarchicalFacetName, path))
|
|
5269
|
+
});
|
|
5270
|
+
},
|
|
5271
|
+
getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref4) {
|
|
5272
|
+
var uiState = _ref4.uiState;
|
|
5273
|
+
var values = uiState.hierarchicalMenu && uiState.hierarchicalMenu[hierarchicalFacetName];
|
|
5274
|
+
if (searchParameters.isConjunctiveFacet(hierarchicalFacetName) || searchParameters.isDisjunctiveFacet(hierarchicalFacetName)) {
|
|
5275
|
+
_warning(false, "HierarchicalMenu: Attribute \"".concat(hierarchicalFacetName, "\" is already used by another widget applying conjunctive or disjunctive faceting.\nAs this is not supported, please make sure to remove this other widget or this HierarchicalMenu widget will not work at all.")) ;
|
|
5276
|
+
return searchParameters;
|
|
5277
|
+
}
|
|
5200
5278
|
if (searchParameters.isHierarchicalFacet(hierarchicalFacetName)) {
|
|
5201
5279
|
var facet = searchParameters.getHierarchicalFacetByName(hierarchicalFacetName);
|
|
5202
5280
|
_warning(isEqual(facet.attributes, attributes) && facet.separator === separator && facet.rootPath === rootPath, 'Using Breadcrumb and HierarchicalMenu on the same facet with different options overrides the configuration of the HierarchicalMenu.') ;
|
|
5203
|
-
return searchParameters;
|
|
5204
5281
|
}
|
|
5205
|
-
|
|
5282
|
+
var withFacetConfiguration = searchParameters.removeHierarchicalFacet(hierarchicalFacetName).addHierarchicalFacet({
|
|
5206
5283
|
name: hierarchicalFacetName,
|
|
5207
5284
|
attributes: attributes,
|
|
5208
5285
|
separator: separator,
|
|
5209
5286
|
rootPath: rootPath
|
|
5210
5287
|
});
|
|
5288
|
+
if (!values) {
|
|
5289
|
+
return withFacetConfiguration.setQueryParameters({
|
|
5290
|
+
hierarchicalFacetsRefinements: _objectSpread2(_objectSpread2({}, withFacetConfiguration.hierarchicalFacetsRefinements), {}, _defineProperty({}, hierarchicalFacetName, []))
|
|
5291
|
+
});
|
|
5292
|
+
}
|
|
5293
|
+
return withFacetConfiguration.addHierarchicalFacetRefinement(hierarchicalFacetName, values.join(separator));
|
|
5211
5294
|
}
|
|
5212
5295
|
};
|
|
5213
5296
|
};
|
|
@@ -13472,9 +13555,17 @@
|
|
|
13472
13555
|
return function (_ref) {
|
|
13473
13556
|
var instantSearchInstance = _ref.instantSearchInstance;
|
|
13474
13557
|
function topLevelCreateURL(nextState) {
|
|
13558
|
+
var previousUiState =
|
|
13559
|
+
// If only the mainIndex is initialized, we don't yet know what other
|
|
13560
|
+
// index widgets are used. Therefore we fall back to the initialUiState.
|
|
13561
|
+
// We can't indiscriminately use the initialUiState because then we
|
|
13562
|
+
// reintroduce state that was changed by the user.
|
|
13563
|
+
// When there are no widgets, we are sure the user can't yet have made
|
|
13564
|
+
// any changes.
|
|
13565
|
+
instantSearchInstance.mainIndex.getWidgets().length === 0 ? instantSearchInstance._initialUiState : instantSearchInstance.mainIndex.getWidgetUiState({});
|
|
13475
13566
|
var uiState = Object.keys(nextState).reduce(function (acc, indexId) {
|
|
13476
13567
|
return _objectSpread2(_objectSpread2({}, acc), {}, _defineProperty({}, indexId, nextState[indexId]));
|
|
13477
|
-
},
|
|
13568
|
+
}, previousUiState);
|
|
13478
13569
|
var route = stateMapping.stateToRoute(uiState);
|
|
13479
13570
|
return router.createURL(route);
|
|
13480
13571
|
}
|
|
@@ -13498,7 +13589,9 @@
|
|
|
13498
13589
|
subscribe: function subscribe() {
|
|
13499
13590
|
instantSearchInstance._initialUiState = _objectSpread2(_objectSpread2({}, initialUiState), stateMapping.routeToState(router.read()));
|
|
13500
13591
|
router.onUpdate(function (route) {
|
|
13501
|
-
instantSearchInstance.
|
|
13592
|
+
if (instantSearchInstance.mainIndex.getWidgets().length > 0) {
|
|
13593
|
+
instantSearchInstance.setUiState(stateMapping.routeToState(route));
|
|
13594
|
+
}
|
|
13502
13595
|
});
|
|
13503
13596
|
},
|
|
13504
13597
|
started: function started() {
|
|
@@ -13638,6 +13731,9 @@
|
|
|
13638
13731
|
return localParent;
|
|
13639
13732
|
},
|
|
13640
13733
|
createURL: function createURL(nextState) {
|
|
13734
|
+
if (typeof nextState === 'function') {
|
|
13735
|
+
return localInstantSearchInstance._createURL(_defineProperty({}, indexId, nextState(localUiState)));
|
|
13736
|
+
}
|
|
13641
13737
|
return localInstantSearchInstance._createURL(_defineProperty({}, indexId, getLocalWidgetsUiState(localWidgets, {
|
|
13642
13738
|
searchParameters: nextState,
|
|
13643
13739
|
helper: helper
|
|
@@ -13702,7 +13798,7 @@
|
|
|
13702
13798
|
return widgets.indexOf(widget) === -1;
|
|
13703
13799
|
});
|
|
13704
13800
|
if (localInstantSearchInstance && Boolean(widgets.length)) {
|
|
13705
|
-
var
|
|
13801
|
+
var _nextState = widgets.reduce(function (state, widget) {
|
|
13706
13802
|
// the `dispose` method exists at this point we already assert it
|
|
13707
13803
|
var next = widget.dispose({
|
|
13708
13804
|
helper: helper,
|
|
@@ -13712,12 +13808,12 @@
|
|
|
13712
13808
|
return next || state;
|
|
13713
13809
|
}, helper.state);
|
|
13714
13810
|
localUiState = getLocalWidgetsUiState(localWidgets, {
|
|
13715
|
-
searchParameters:
|
|
13811
|
+
searchParameters: _nextState,
|
|
13716
13812
|
helper: helper
|
|
13717
13813
|
});
|
|
13718
13814
|
helper.setState(getLocalWidgetsSearchParameters(localWidgets, {
|
|
13719
13815
|
uiState: localUiState,
|
|
13720
|
-
initialSearchParameters:
|
|
13816
|
+
initialSearchParameters: _nextState
|
|
13721
13817
|
}));
|
|
13722
13818
|
if (localWidgets.length) {
|
|
13723
13819
|
localInstantSearchInstance.scheduleSearch();
|
|
@@ -14047,7 +14143,7 @@
|
|
|
14047
14143
|
};
|
|
14048
14144
|
}
|
|
14049
14145
|
|
|
14050
|
-
var version$1 = '4.56.
|
|
14146
|
+
var version$1 = '4.56.5';
|
|
14051
14147
|
|
|
14052
14148
|
var withUsage$r = createDocumentationMessageGenerator({
|
|
14053
14149
|
name: 'instantsearch'
|