instantsearch.js 4.49.1 → 4.49.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/README.md +14 -8
- package/cjs/components/Answers/Answers.js +11 -18
- package/cjs/components/Breadcrumb/Breadcrumb.js +6 -13
- package/cjs/components/ClearRefinements/ClearRefinements.js +5 -12
- package/cjs/components/CurrentRefinements/CurrentRefinements.js +8 -16
- package/cjs/components/GeoSearchControls/GeoSearchButton.js +4 -7
- package/cjs/components/GeoSearchControls/GeoSearchControls.js +14 -23
- package/cjs/components/GeoSearchControls/GeoSearchToggle.js +4 -7
- package/cjs/components/Highlight/Highlight.js +5 -12
- package/cjs/components/Hits/Hits.js +13 -22
- package/cjs/components/InfiniteHits/InfiniteHits.js +18 -27
- package/cjs/components/InternalHighlight/InternalHighlight.js +0 -3
- package/cjs/components/MenuSelect/MenuSelect.js +12 -22
- package/cjs/components/Pagination/Pagination.js +12 -20
- package/cjs/components/Panel/Panel.js +9 -28
- package/cjs/components/PoweredBy/PoweredBy.js +4 -6
- package/cjs/components/QueryRuleCustomData/QueryRuleCustomData.js +3 -8
- package/cjs/components/RangeInput/RangeInput.js +21 -51
- package/cjs/components/RefinementList/RefinementList.js +30 -81
- package/cjs/components/RefinementList/RefinementListItem.js +9 -15
- package/cjs/components/RelevantSort/RelevantSort.js +5 -10
- package/cjs/components/ReverseHighlight/ReverseHighlight.js +5 -12
- package/cjs/components/ReverseSnippet/ReverseSnippet.js +5 -12
- package/cjs/components/SearchBox/SearchBox.js +35 -77
- package/cjs/components/Selector/Selector.js +3 -7
- package/cjs/components/Slider/Pit.js +7 -11
- package/cjs/components/Slider/Rheostat.js +69 -133
- package/cjs/components/Slider/Slider.js +39 -72
- package/cjs/components/Snippet/Snippet.js +5 -12
- package/cjs/components/Stats/Stats.js +13 -22
- package/cjs/components/Template/Template.js +17 -44
- package/cjs/components/ToggleRefinement/ToggleRefinement.js +5 -11
- package/cjs/components/VoiceSearch/VoiceSearch.js +9 -17
- package/cjs/connectors/answers/connectAnswers.js +36 -46
- package/cjs/connectors/autocomplete/connectAutocomplete.js +21 -35
- package/cjs/connectors/breadcrumb/connectBreadcrumb.js +27 -55
- package/cjs/connectors/clear-refinements/connectClearRefinements.js +41 -56
- package/cjs/connectors/configure/connectConfigure.js +17 -28
- package/cjs/connectors/configure-related-items/connectConfigureRelatedItems.js +21 -43
- package/cjs/connectors/current-refinements/connectCurrentRefinements.js +29 -65
- package/cjs/connectors/dynamic-widgets/connectDynamicWidgets.js +27 -45
- package/cjs/connectors/geo-search/connectGeoSearch.js +32 -59
- package/cjs/connectors/hierarchical-menu/connectHierarchicalMenu.js +50 -82
- package/cjs/connectors/hits/connectHits.js +25 -38
- package/cjs/connectors/hits/connectHitsWithInsights.js +3 -7
- package/cjs/connectors/hits-per-page/connectHitsPerPage.js +26 -46
- package/cjs/connectors/index.js +92 -126
- package/cjs/connectors/infinite-hits/connectInfiniteHits.js +43 -75
- package/cjs/connectors/infinite-hits/connectInfiniteHitsWithInsights.js +3 -7
- package/cjs/connectors/menu/connectMenu.js +39 -73
- package/cjs/connectors/numeric-menu/connectNumericMenu.js +37 -86
- package/cjs/connectors/pagination/Paginator.js +11 -25
- package/cjs/connectors/pagination/connectPagination.js +17 -31
- package/cjs/connectors/powered-by/connectPoweredBy.js +13 -19
- package/cjs/connectors/query-rules/connectQueryRules.js +44 -65
- package/cjs/connectors/range/connectRange.js +72 -129
- package/cjs/connectors/rating-menu/connectRatingMenu.js +34 -87
- package/cjs/connectors/refinement-list/connectRefinementList.js +51 -79
- package/cjs/connectors/relevant-sort/connectRelevantSort.js +11 -18
- package/cjs/connectors/search-box/connectSearchBox.js +15 -28
- package/cjs/connectors/sort-by/connectSortBy.js +21 -28
- package/cjs/connectors/stats/connectStats.js +12 -16
- package/cjs/connectors/toggle-refinement/connectToggleRefinement.js +44 -75
- package/cjs/connectors/voice-search/connectVoiceSearch.js +22 -41
- package/cjs/helpers/components/Highlight.js +11 -18
- package/cjs/helpers/components/ReverseHighlight.js +19 -26
- package/cjs/helpers/components/ReverseSnippet.js +19 -26
- package/cjs/helpers/components/Snippet.js +11 -18
- package/cjs/helpers/components/index.js +4 -12
- package/cjs/helpers/get-insights-anonymous-user-token.js +6 -17
- package/cjs/helpers/highlight.js +15 -19
- package/cjs/helpers/index.js +23 -37
- package/cjs/helpers/insights.js +9 -21
- package/cjs/helpers/reverseHighlight.js +16 -20
- package/cjs/helpers/reverseSnippet.js +16 -20
- package/cjs/helpers/snippet.js +15 -19
- package/cjs/index.js +12 -27
- package/cjs/lib/InstantSearch.js +108 -207
- package/cjs/lib/createHelpers.js +15 -19
- package/cjs/lib/formatNumber.js +0 -1
- package/cjs/lib/infiniteHitsCache/index.js +1 -3
- package/cjs/lib/infiniteHitsCache/sessionStorage.js +14 -22
- package/cjs/lib/insights/client.js +17 -40
- package/cjs/lib/insights/index.js +9 -15
- package/cjs/lib/insights/listener.js +7 -24
- package/cjs/lib/routers/history.js +75 -117
- package/cjs/lib/routers/index.js +1 -3
- package/cjs/lib/stateMappings/index.js +2 -5
- package/cjs/lib/stateMappings/simple.js +11 -14
- package/cjs/lib/stateMappings/singleIndex.js +6 -8
- package/cjs/lib/suit.js +2 -5
- package/cjs/lib/templating/index.js +2 -6
- package/cjs/lib/templating/prepareTemplateProps.js +14 -22
- package/cjs/lib/templating/renderTemplate.js +17 -30
- package/cjs/lib/utils/capitalize.js +0 -1
- package/cjs/lib/utils/checkIndexUiState.js +19 -47
- package/cjs/lib/utils/checkRendering.js +1 -3
- package/cjs/lib/utils/clearRefinements.js +2 -9
- package/cjs/lib/utils/concatHighlightedParts.js +2 -4
- package/cjs/lib/utils/createConcurrentSafePromise.js +0 -3
- package/cjs/lib/utils/createSendEventForFacet.js +8 -15
- package/cjs/lib/utils/createSendEventForHits.js +10 -34
- package/cjs/lib/utils/debounce.js +0 -3
- package/cjs/lib/utils/defer.js +0 -11
- package/cjs/lib/utils/detect-insights-client.js +1 -3
- package/cjs/lib/utils/documentation.js +2 -5
- package/cjs/lib/utils/escape-highlight.js +13 -26
- package/cjs/lib/utils/escape-html.js +9 -7
- package/cjs/lib/utils/escapeFacetValue.js +1 -5
- package/cjs/lib/utils/find.js +2 -5
- package/cjs/lib/utils/findIndex.js +0 -3
- package/cjs/lib/utils/geo-search.js +21 -37
- package/cjs/lib/utils/getAppIdAndApiKey.js +2 -3
- package/cjs/lib/utils/getContainerNode.js +1 -7
- package/cjs/lib/utils/getHighlightFromSiblings.js +1 -7
- package/cjs/lib/utils/getHighlightedParts.js +2 -5
- package/cjs/lib/utils/getObjectType.js +0 -1
- package/cjs/lib/utils/getPropertyByPath.js +0 -1
- package/cjs/lib/utils/getRefinements.js +30 -45
- package/cjs/lib/utils/getWidgetAttribute.js +0 -6
- package/cjs/lib/utils/hits-absolute-position.js +6 -7
- package/cjs/lib/utils/hits-query-id.js +6 -8
- package/cjs/lib/utils/index.js +46 -138
- package/cjs/lib/utils/isDomElement.js +0 -1
- package/cjs/lib/utils/isEqual.js +2 -7
- package/cjs/lib/utils/isFacetRefined.js +0 -1
- package/cjs/lib/utils/isFiniteNumber.js +0 -1
- package/cjs/lib/utils/isIndexWidget.js +0 -1
- package/cjs/lib/utils/isPlainObject.js +3 -11
- package/cjs/lib/utils/isSpecialClick.js +0 -1
- package/cjs/lib/utils/logger.js +6 -16
- package/cjs/lib/utils/mergeSearchParameters.js +23 -43
- package/cjs/lib/utils/noop.js +0 -1
- package/cjs/lib/utils/range.js +9 -15
- package/cjs/lib/utils/render-args.js +0 -2
- package/cjs/lib/utils/resolveSearchParameters.js +0 -3
- package/cjs/lib/utils/reverseHighlightedParts.js +7 -10
- package/cjs/lib/utils/safelyRunOnBrowser.js +7 -9
- package/cjs/lib/utils/serializer.js +1 -3
- package/cjs/lib/utils/setIndexHelperState.js +2 -7
- package/cjs/lib/utils/toArray.js +0 -1
- package/cjs/lib/utils/typedObject.js +0 -1
- package/cjs/lib/utils/uniq.js +0 -1
- package/cjs/lib/version.js +1 -1
- package/cjs/lib/voiceSearchHelper/index.js +12 -37
- package/cjs/middlewares/createInsightsMiddleware.js +30 -54
- package/cjs/middlewares/createMetadataMiddleware.js +7 -15
- package/cjs/middlewares/createRouterMiddleware.js +16 -24
- package/cjs/middlewares/index.js +3 -9
- package/cjs/types/algoliasearch.js +0 -2
- package/cjs/types/index.js +14 -42
- package/cjs/widgets/analytics/analytics.js +22 -48
- package/cjs/widgets/answers/answers.js +32 -49
- package/cjs/widgets/breadcrumb/breadcrumb.js +31 -48
- package/cjs/widgets/clear-refinements/clear-refinements.js +28 -45
- package/cjs/widgets/configure/configure.js +9 -14
- package/cjs/widgets/configure-related-items/configure-related-items.js +9 -14
- package/cjs/widgets/current-refinements/current-refinements.js +22 -37
- package/cjs/widgets/dynamic-widgets/dynamic-widgets.js +17 -32
- package/cjs/widgets/geo-search/GeoSearchRenderer.js +50 -72
- package/cjs/widgets/geo-search/createHTMLMarker.js +34 -62
- package/cjs/widgets/geo-search/defaultTemplates.js +0 -3
- package/cjs/widgets/geo-search/geo-search.js +44 -70
- package/cjs/widgets/hierarchical-menu/defaultTemplates.js +5 -9
- package/cjs/widgets/hierarchical-menu/hierarchical-menu.js +41 -57
- package/cjs/widgets/hits/hits.js +32 -50
- package/cjs/widgets/hits-per-page/hits-per-page.js +24 -39
- package/cjs/widgets/index/index.js +71 -113
- package/cjs/widgets/index.js +47 -85
- package/cjs/widgets/infinite-hits/infinite-hits.js +39 -57
- package/cjs/widgets/menu/defaultTemplates.js +4 -8
- package/cjs/widgets/menu/menu.js +36 -53
- package/cjs/widgets/menu-select/defaultTemplates.js +2 -4
- package/cjs/widgets/menu-select/menu-select.js +31 -48
- package/cjs/widgets/numeric-menu/defaultTemplates.js +3 -5
- package/cjs/widgets/numeric-menu/numeric-menu.js +30 -47
- package/cjs/widgets/pagination/pagination.js +43 -61
- package/cjs/widgets/panel/panel.js +31 -56
- package/cjs/widgets/places/places.js +22 -34
- package/cjs/widgets/powered-by/powered-by.js +20 -34
- package/cjs/widgets/query-rule-context/query-rule-context.js +10 -18
- package/cjs/widgets/query-rule-custom-data/query-rule-custom-data.js +24 -39
- package/cjs/widgets/range-input/range-input.js +36 -60
- package/cjs/widgets/range-slider/range-slider.js +39 -61
- package/cjs/widgets/rating-menu/defaultTemplates.js +9 -16
- package/cjs/widgets/rating-menu/rating-menu.js +30 -48
- package/cjs/widgets/refinement-list/defaultTemplates.js +6 -10
- package/cjs/widgets/refinement-list/refinement-list.js +54 -72
- package/cjs/widgets/relevant-sort/relevant-sort.js +21 -37
- package/cjs/widgets/search-box/defaultTemplates.js +0 -5
- package/cjs/widgets/search-box/search-box.js +42 -57
- package/cjs/widgets/sort-by/sort-by.js +21 -36
- package/cjs/widgets/stats/defaultTemplates.js +1 -2
- package/cjs/widgets/stats/stats.js +40 -67
- package/cjs/widgets/toggle-refinement/toggle-refinement.js +29 -46
- package/cjs/widgets/voice-search/defaultTemplates.js +4 -14
- package/cjs/widgets/voice-search/voice-search.js +28 -44
- package/dist/instantsearch.development.d.ts +9 -6
- package/dist/instantsearch.development.js +1840 -3142
- package/dist/instantsearch.development.js.map +1 -1
- package/dist/instantsearch.production.d.ts +9 -6
- package/dist/instantsearch.production.min.d.ts +9 -6
- package/dist/instantsearch.production.min.js +2 -2
- package/dist/instantsearch.production.min.js.map +1 -1
- package/es/components/Answers/Answers.js +10 -13
- package/es/components/Breadcrumb/Breadcrumb.js +5 -8
- package/es/components/ClearRefinements/ClearRefinements.js +4 -7
- package/es/components/CurrentRefinements/CurrentRefinements.js +5 -10
- package/es/components/GeoSearchControls/GeoSearchButton.js +4 -6
- package/es/components/GeoSearchControls/GeoSearchControls.js +11 -14
- package/es/components/GeoSearchControls/GeoSearchToggle.js +4 -6
- package/es/components/Highlight/Highlight.js +4 -7
- package/es/components/Hits/Hits.js +12 -17
- package/es/components/InfiniteHits/InfiniteHits.js +17 -22
- package/es/components/MenuSelect/MenuSelect.js +9 -14
- package/es/components/Pagination/Pagination.js +10 -15
- package/es/components/Panel/Panel.js +8 -22
- package/es/components/PoweredBy/PoweredBy.js +4 -5
- package/es/components/QueryRuleCustomData/QueryRuleCustomData.js +2 -4
- package/es/components/RangeInput/RangeInput.js +20 -46
- package/es/components/RefinementList/RefinementList.js +24 -67
- package/es/components/RefinementList/RefinementListItem.js +8 -11
- package/es/components/RelevantSort/RelevantSort.js +4 -6
- package/es/components/ReverseHighlight/ReverseHighlight.js +4 -7
- package/es/components/ReverseSnippet/ReverseSnippet.js +4 -7
- package/es/components/SearchBox/SearchBox.js +29 -66
- package/es/components/Selector/Selector.js +3 -5
- package/es/components/Slider/Pit.js +7 -9
- package/es/components/Slider/Rheostat.js +70 -133
- package/es/components/Slider/Slider.js +34 -61
- package/es/components/Snippet/Snippet.js +4 -7
- package/es/components/Stats/Stats.js +12 -17
- package/es/components/Template/Template.js +12 -35
- package/es/components/ToggleRefinement/ToggleRefinement.js +4 -7
- package/es/components/VoiceSearch/VoiceSearch.js +8 -13
- package/es/connectors/answers/connectAnswers.js +27 -36
- package/es/connectors/autocomplete/connectAutocomplete.js +12 -24
- package/es/connectors/breadcrumb/connectBreadcrumb.js +22 -48
- package/es/connectors/clear-refinements/connectClearRefinements.js +32 -45
- package/es/connectors/configure/connectConfigure.js +11 -17
- package/es/connectors/configure-related-items/connectConfigureRelatedItems.js +16 -33
- package/es/connectors/current-refinements/connectCurrentRefinements.js +23 -57
- package/es/connectors/dynamic-widgets/connectDynamicWidgets.js +20 -36
- package/es/connectors/geo-search/connectGeoSearch.js +21 -46
- package/es/connectors/hierarchical-menu/connectHierarchicalMenu.js +44 -74
- package/es/connectors/hits/connectHits.js +14 -25
- package/es/connectors/hits-per-page/connectHitsPerPage.js +20 -38
- package/es/connectors/index.d.ts +2 -1
- package/es/connectors/index.js +6 -3
- package/es/connectors/infinite-hits/connectInfiniteHits.js +32 -62
- package/es/connectors/menu/connectMenu.js +34 -66
- package/es/connectors/numeric-menu/connectNumericMenu.js +31 -78
- package/es/connectors/pagination/Paginator.js +8 -21
- package/es/connectors/pagination/connectPagination.js +12 -22
- package/es/connectors/powered-by/connectPoweredBy.js +8 -12
- package/es/connectors/query-rules/connectQueryRules.js +37 -56
- package/es/connectors/range/connectRange.js +46 -101
- package/es/connectors/rating-menu/connectRatingMenu.js +28 -79
- package/es/connectors/refinement-list/connectRefinementList.js +43 -69
- package/es/connectors/relevant-sort/connectRelevantSort.js +8 -14
- package/es/connectors/search-box/connectSearchBox.js +11 -22
- package/es/connectors/sort-by/connectSortBy.js +15 -20
- package/es/connectors/stats/connectStats.js +8 -10
- package/es/connectors/toggle-refinement/connectToggleRefinement.js +33 -62
- package/es/connectors/toggle-refinement/types.js +1 -0
- package/es/connectors/voice-search/connectVoiceSearch.js +17 -32
- package/es/helpers/components/Highlight.js +5 -8
- package/es/helpers/components/ReverseHighlight.js +13 -16
- package/es/helpers/components/ReverseSnippet.js +13 -16
- package/es/helpers/components/Snippet.js +5 -8
- package/es/helpers/get-insights-anonymous-user-token.js +2 -10
- package/es/helpers/highlight.js +10 -10
- package/es/helpers/insights.js +3 -10
- package/es/helpers/reverseHighlight.js +10 -10
- package/es/helpers/reverseSnippet.js +10 -10
- package/es/helpers/snippet.js +10 -10
- package/es/index.js +0 -2
- package/es/lib/InstantSearch.js +83 -172
- package/es/lib/createHelpers.js +8 -9
- package/es/lib/infiniteHitsCache/sessionStorage.js +10 -16
- package/es/lib/insights/client.js +12 -33
- package/es/lib/insights/listener.js +4 -18
- package/es/lib/routers/history.js +69 -108
- package/es/lib/stateMappings/simple.js +11 -13
- package/es/lib/stateMappings/singleIndex.js +6 -7
- package/es/lib/suit.js +2 -3
- package/es/lib/templating/prepareTemplateProps.js +13 -20
- package/es/lib/templating/renderTemplate.js +12 -21
- package/es/lib/utils/checkIndexUiState.js +19 -41
- package/es/lib/utils/clearRefinements.js +2 -8
- package/es/lib/utils/concatHighlightedParts.js +1 -1
- package/es/lib/utils/createConcurrentSafePromise.js +0 -2
- package/es/lib/utils/createSendEventForFacet.js +7 -12
- package/es/lib/utils/createSendEventForHits.js +8 -30
- package/es/lib/utils/debounce.js +0 -2
- package/es/lib/utils/defer.js +0 -10
- package/es/lib/utils/documentation.js +2 -3
- package/es/lib/utils/escape-highlight.js +9 -18
- package/es/lib/utils/escape-html.js +9 -5
- package/es/lib/utils/escapeFacetValue.js +0 -2
- package/es/lib/utils/find.js +2 -4
- package/es/lib/utils/findIndex.js +0 -2
- package/es/lib/utils/geo-search.js +21 -35
- package/es/lib/utils/getAppIdAndApiKey.js +2 -2
- package/es/lib/utils/getContainerNode.js +1 -5
- package/es/lib/utils/getHighlightFromSiblings.js +0 -3
- package/es/lib/utils/getHighlightedParts.js +1 -2
- package/es/lib/utils/getRefinements.js +28 -41
- package/es/lib/utils/getWidgetAttribute.js +0 -5
- package/es/lib/utils/hits-absolute-position.js +6 -6
- package/es/lib/utils/hits-query-id.js +6 -7
- package/es/lib/utils/isEqual.js +2 -6
- package/es/lib/utils/isPlainObject.js +3 -10
- package/es/lib/utils/logger.js +4 -14
- package/es/lib/utils/mergeSearchParameters.js +21 -38
- package/es/lib/utils/range.js +9 -14
- package/es/lib/utils/resolveSearchParameters.js +0 -2
- package/es/lib/utils/reverseHighlightedParts.js +6 -7
- package/es/lib/utils/safelyRunOnBrowser.js +7 -8
- package/es/lib/utils/setIndexHelperState.js +0 -2
- package/es/lib/version.d.ts +1 -1
- package/es/lib/version.js +1 -1
- package/es/lib/voiceSearchHelper/index.js +12 -36
- package/es/lib/voiceSearchHelper/types.js +1 -0
- package/es/middlewares/createInsightsMiddleware.js +21 -42
- package/es/middlewares/createMetadataMiddleware.js +3 -9
- package/es/middlewares/createRouterMiddleware.js +12 -14
- package/es/types/algoliasearch.js +1 -0
- package/es/types/component.js +1 -0
- package/es/types/connector.js +1 -0
- package/es/types/index.js +9 -5
- package/es/types/insights.js +1 -0
- package/es/types/instantsearch.js +1 -0
- package/es/types/middleware.js +1 -0
- package/es/types/render-state.js +1 -0
- package/es/types/results.js +1 -0
- package/es/types/router.js +1 -0
- package/es/types/templates.js +1 -0
- package/es/types/ui-state.js +1 -0
- package/es/types/utils.js +1 -0
- package/es/types/widget-factory.js +1 -0
- package/es/types/widget.js +1 -0
- package/es/widgets/analytics/analytics.js +19 -43
- package/es/widgets/answers/answers.js +23 -30
- package/es/widgets/breadcrumb/breadcrumb.js +22 -29
- package/es/widgets/clear-refinements/clear-refinements.js +19 -26
- package/es/widgets/configure/configure.js +7 -7
- package/es/widgets/configure-related-items/configure-related-items.js +6 -8
- package/es/widgets/current-refinements/current-refinements.js +16 -23
- package/es/widgets/dynamic-widgets/dynamic-widgets.js +11 -21
- package/es/widgets/geo-search/GeoSearchRenderer.d.js +1 -0
- package/es/widgets/geo-search/GeoSearchRenderer.js +47 -65
- package/es/widgets/geo-search/createHTMLMarker.d.ts +1 -0
- package/es/widgets/geo-search/createHTMLMarker.js +34 -61
- package/es/widgets/geo-search/defaultTemplates.js +0 -2
- package/es/widgets/geo-search/geo-search.d.ts +1 -0
- package/es/widgets/geo-search/geo-search.js +34 -50
- package/es/widgets/hierarchical-menu/defaultTemplates.js +4 -4
- package/es/widgets/hierarchical-menu/hierarchical-menu.js +32 -38
- package/es/widgets/hits/hits.js +20 -27
- package/es/widgets/hits-per-page/hits-per-page.js +17 -24
- package/es/widgets/index/index.js +55 -93
- package/es/widgets/index.d.ts +2 -1
- package/es/widgets/index.js +4 -3
- package/es/widgets/infinite-hits/infinite-hits.js +27 -34
- package/es/widgets/menu/defaultTemplates.js +3 -3
- package/es/widgets/menu/menu.js +27 -34
- package/es/widgets/menu-select/defaultTemplates.js +1 -1
- package/es/widgets/menu-select/menu-select.js +22 -29
- package/es/widgets/numeric-menu/defaultTemplates.js +3 -3
- package/es/widgets/numeric-menu/numeric-menu.js +21 -28
- package/es/widgets/pagination/pagination.js +36 -46
- package/es/widgets/panel/panel.js +24 -42
- package/es/widgets/places/places.js +22 -33
- package/es/widgets/powered-by/powered-by.js +14 -20
- package/es/widgets/query-rule-context/query-rule-context.js +6 -10
- package/es/widgets/query-rule-custom-data/query-rule-custom-data.js +17 -24
- package/es/widgets/range-input/range-input.js +28 -43
- package/es/widgets/range-slider/range-slider.js +33 -47
- package/es/widgets/rating-menu/defaultTemplates.js +8 -12
- package/es/widgets/rating-menu/rating-menu.js +21 -29
- package/es/widgets/refinement-list/defaultTemplates.js +5 -5
- package/es/widgets/refinement-list/refinement-list.js +43 -50
- package/es/widgets/relevant-sort/relevant-sort.js +14 -21
- package/es/widgets/search-box/defaultTemplates.js +0 -4
- package/es/widgets/search-box/search-box.js +35 -41
- package/es/widgets/sort-by/sort-by.js +15 -22
- package/es/widgets/stats/stats.js +30 -47
- package/es/widgets/toggle-refinement/toggle-refinement.js +20 -27
- package/es/widgets/voice-search/defaultTemplates.js +4 -13
- package/es/widgets/voice-search/voice-search.js +21 -28
- package/package.json +20 -119
- package/scripts/transforms/__testfixtures__/addWidget-to-addWidgets/imported.input.js +0 -1
- package/scripts/transforms/__testfixtures__/addWidget-to-addWidgets/imported.output.js +0 -1
- package/scripts/transforms/__tests__/addWidget-to-addWidgets.test.js +1 -0
- package/CHANGELOG.md +0 -3693
|
@@ -1,42 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
7
|
exports.default = void 0;
|
|
7
|
-
|
|
8
8
|
var _algoliasearchHelper = _interopRequireDefault(require("algoliasearch-helper"));
|
|
9
|
-
|
|
10
|
-
var
|
|
11
|
-
|
|
9
|
+
var _utils = require("../../lib/utils");
|
|
10
|
+
var _excluded = ["initialSearchParameters"];
|
|
12
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
|
-
function
|
|
15
|
-
|
|
16
|
-
function
|
|
17
|
-
|
|
18
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
19
|
-
|
|
12
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
13
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
14
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
15
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
16
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
20
17
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
21
|
-
|
|
22
18
|
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
23
|
-
|
|
24
19
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
25
|
-
|
|
26
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
|
|
27
|
-
|
|
20
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
28
21
|
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
29
|
-
|
|
30
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
31
|
-
|
|
22
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
32
23
|
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; }
|
|
33
|
-
|
|
34
24
|
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; }
|
|
35
|
-
|
|
36
|
-
var withUsage = (0, _index.createDocumentationMessageGenerator)({
|
|
25
|
+
var withUsage = (0, _utils.createDocumentationMessageGenerator)({
|
|
37
26
|
name: 'index-widget'
|
|
38
27
|
});
|
|
39
|
-
|
|
40
28
|
/**
|
|
41
29
|
* This is the same content as helper._change / setState, but allowing for extra
|
|
42
30
|
* UiState to be synchronized.
|
|
@@ -44,9 +32,8 @@ var withUsage = (0, _index.createDocumentationMessageGenerator)({
|
|
|
44
32
|
*/
|
|
45
33
|
function privateHelperSetState(helper, _ref) {
|
|
46
34
|
var state = _ref.state,
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
35
|
+
isPageReset = _ref.isPageReset,
|
|
36
|
+
_uiState = _ref._uiState;
|
|
50
37
|
if (state !== helper.state) {
|
|
51
38
|
helper.state = state;
|
|
52
39
|
helper.emit('change', {
|
|
@@ -57,48 +44,38 @@ function privateHelperSetState(helper, _ref) {
|
|
|
57
44
|
});
|
|
58
45
|
}
|
|
59
46
|
}
|
|
60
|
-
|
|
61
47
|
function getLocalWidgetsUiState(widgets, widgetStateOptions) {
|
|
62
48
|
var initialUiState = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
63
49
|
return widgets.reduce(function (uiState, widget) {
|
|
64
|
-
if ((0,
|
|
50
|
+
if ((0, _utils.isIndexWidget)(widget)) {
|
|
65
51
|
return uiState;
|
|
66
52
|
}
|
|
67
|
-
|
|
68
53
|
if (!widget.getWidgetUiState && !widget.getWidgetState) {
|
|
69
54
|
return uiState;
|
|
70
55
|
}
|
|
71
|
-
|
|
72
56
|
if (widget.getWidgetUiState) {
|
|
73
57
|
return widget.getWidgetUiState(uiState, widgetStateOptions);
|
|
74
58
|
}
|
|
75
|
-
|
|
76
59
|
return widget.getWidgetState(uiState, widgetStateOptions);
|
|
77
60
|
}, initialUiState);
|
|
78
61
|
}
|
|
79
|
-
|
|
80
62
|
function getLocalWidgetsSearchParameters(widgets, widgetSearchParametersOptions) {
|
|
81
63
|
var initialSearchParameters = widgetSearchParametersOptions.initialSearchParameters,
|
|
82
|
-
|
|
83
|
-
|
|
64
|
+
rest = _objectWithoutProperties(widgetSearchParametersOptions, _excluded);
|
|
84
65
|
return widgets.filter(function (widget) {
|
|
85
|
-
return !(0,
|
|
66
|
+
return !(0, _utils.isIndexWidget)(widget);
|
|
86
67
|
}).reduce(function (state, widget) {
|
|
87
68
|
if (!widget.getWidgetSearchParameters) {
|
|
88
69
|
return state;
|
|
89
70
|
}
|
|
90
|
-
|
|
91
71
|
return widget.getWidgetSearchParameters(state, rest);
|
|
92
72
|
}, initialSearchParameters);
|
|
93
73
|
}
|
|
94
|
-
|
|
95
74
|
function resetPageFromWidgets(widgets) {
|
|
96
|
-
var indexWidgets = widgets.filter(
|
|
97
|
-
|
|
75
|
+
var indexWidgets = widgets.filter(_utils.isIndexWidget);
|
|
98
76
|
if (indexWidgets.length === 0) {
|
|
99
77
|
return;
|
|
100
78
|
}
|
|
101
|
-
|
|
102
79
|
indexWidgets.forEach(function (widget) {
|
|
103
80
|
var widgetHelper = widget.getHelper();
|
|
104
81
|
privateHelperSetState(widgetHelper, {
|
|
@@ -108,9 +85,8 @@ function resetPageFromWidgets(widgets) {
|
|
|
108
85
|
resetPageFromWidgets(widget.getWidgets());
|
|
109
86
|
});
|
|
110
87
|
}
|
|
111
|
-
|
|
112
88
|
function resolveScopedResultsFromWidgets(widgets) {
|
|
113
|
-
var indexWidgets = widgets.filter(
|
|
89
|
+
var indexWidgets = widgets.filter(_utils.isIndexWidget);
|
|
114
90
|
return indexWidgets.reduce(function (scopedResults, current) {
|
|
115
91
|
return scopedResults.concat.apply(scopedResults, [{
|
|
116
92
|
indexId: current.getIndexId(),
|
|
@@ -119,15 +95,13 @@ function resolveScopedResultsFromWidgets(widgets) {
|
|
|
119
95
|
}].concat(_toConsumableArray(resolveScopedResultsFromWidgets(current.getWidgets()))));
|
|
120
96
|
}, []);
|
|
121
97
|
}
|
|
122
|
-
|
|
123
98
|
var index = function index(widgetParams) {
|
|
124
99
|
if (widgetParams === undefined || widgetParams.indexName === undefined) {
|
|
125
100
|
throw new Error(withUsage('The `indexName` option is required.'));
|
|
126
101
|
}
|
|
127
|
-
|
|
128
102
|
var indexName = widgetParams.indexName,
|
|
129
|
-
|
|
130
|
-
|
|
103
|
+
_widgetParams$indexId = widgetParams.indexId,
|
|
104
|
+
indexId = _widgetParams$indexId === void 0 ? indexName : _widgetParams$indexId;
|
|
131
105
|
var localWidgets = [];
|
|
132
106
|
var localUiState = {};
|
|
133
107
|
var localInstantSearchInstance = null;
|
|
@@ -150,8 +124,9 @@ var index = function index(widgetParams) {
|
|
|
150
124
|
return derivedHelper && derivedHelper.lastResults;
|
|
151
125
|
},
|
|
152
126
|
getScopedResults: function getScopedResults() {
|
|
153
|
-
var widgetParent = this.getParent();
|
|
127
|
+
var widgetParent = this.getParent();
|
|
154
128
|
|
|
129
|
+
// If the widget is the root, we consider itself as the only sibling.
|
|
155
130
|
var widgetSiblings = widgetParent ? widgetParent.getWidgets() : [this];
|
|
156
131
|
return resolveScopedResultsFromWidgets(widgetSiblings);
|
|
157
132
|
},
|
|
@@ -169,19 +144,15 @@ var index = function index(widgetParams) {
|
|
|
169
144
|
},
|
|
170
145
|
addWidgets: function addWidgets(widgets) {
|
|
171
146
|
var _this = this;
|
|
172
|
-
|
|
173
147
|
if (!Array.isArray(widgets)) {
|
|
174
148
|
throw new Error(withUsage('The `addWidgets` method expects an array of widgets.'));
|
|
175
149
|
}
|
|
176
|
-
|
|
177
150
|
if (widgets.some(function (widget) {
|
|
178
151
|
return typeof widget.init !== 'function' && typeof widget.render !== 'function';
|
|
179
152
|
})) {
|
|
180
153
|
throw new Error(withUsage('The widget definition expects a `render` and/or an `init` method.'));
|
|
181
154
|
}
|
|
182
|
-
|
|
183
155
|
localWidgets = localWidgets.concat(widgets);
|
|
184
|
-
|
|
185
156
|
if (localInstantSearchInstance && Boolean(widgets.length)) {
|
|
186
157
|
privateHelperSetState(helper, {
|
|
187
158
|
state: getLocalWidgetsSearchParameters(localWidgets, {
|
|
@@ -189,13 +160,14 @@ var index = function index(widgetParams) {
|
|
|
189
160
|
initialSearchParameters: helper.state
|
|
190
161
|
}),
|
|
191
162
|
_uiState: localUiState
|
|
192
|
-
});
|
|
163
|
+
});
|
|
164
|
+
|
|
165
|
+
// We compute the render state before calling `init` in a separate loop
|
|
193
166
|
// to construct the whole render state object that is then passed to
|
|
194
167
|
// `init`.
|
|
195
|
-
|
|
196
168
|
widgets.forEach(function (widget) {
|
|
197
169
|
if (widget.getRenderState) {
|
|
198
|
-
var renderState = widget.getRenderState(localInstantSearchInstance.renderState[_this.getIndexId()] || {}, (0,
|
|
170
|
+
var renderState = widget.getRenderState(localInstantSearchInstance.renderState[_this.getIndexId()] || {}, (0, _utils.createInitArgs)(localInstantSearchInstance, _this, localInstantSearchInstance._initialUiState));
|
|
199
171
|
storeRenderState({
|
|
200
172
|
renderState: renderState,
|
|
201
173
|
instantSearchInstance: localInstantSearchInstance,
|
|
@@ -205,31 +177,26 @@ var index = function index(widgetParams) {
|
|
|
205
177
|
});
|
|
206
178
|
widgets.forEach(function (widget) {
|
|
207
179
|
if (widget.init) {
|
|
208
|
-
widget.init((0,
|
|
180
|
+
widget.init((0, _utils.createInitArgs)(localInstantSearchInstance, _this, localInstantSearchInstance._initialUiState));
|
|
209
181
|
}
|
|
210
182
|
});
|
|
211
183
|
localInstantSearchInstance.scheduleSearch();
|
|
212
184
|
}
|
|
213
|
-
|
|
214
185
|
return this;
|
|
215
186
|
},
|
|
216
187
|
removeWidgets: function removeWidgets(widgets) {
|
|
217
188
|
var _this2 = this;
|
|
218
|
-
|
|
219
189
|
if (!Array.isArray(widgets)) {
|
|
220
190
|
throw new Error(withUsage('The `removeWidgets` method expects an array of widgets.'));
|
|
221
191
|
}
|
|
222
|
-
|
|
223
192
|
if (widgets.some(function (widget) {
|
|
224
193
|
return typeof widget.dispose !== 'function';
|
|
225
194
|
})) {
|
|
226
195
|
throw new Error(withUsage('The widget definition expects a `dispose` method.'));
|
|
227
196
|
}
|
|
228
|
-
|
|
229
197
|
localWidgets = localWidgets.filter(function (widget) {
|
|
230
198
|
return widgets.indexOf(widget) === -1;
|
|
231
199
|
});
|
|
232
|
-
|
|
233
200
|
if (localInstantSearchInstance && Boolean(widgets.length)) {
|
|
234
201
|
var nextState = widgets.reduce(function (state, widget) {
|
|
235
202
|
// the `dispose` method exists at this point we already assert it
|
|
@@ -248,48 +215,46 @@ var index = function index(widgetParams) {
|
|
|
248
215
|
uiState: localUiState,
|
|
249
216
|
initialSearchParameters: nextState
|
|
250
217
|
}));
|
|
251
|
-
|
|
252
218
|
if (localWidgets.length) {
|
|
253
219
|
localInstantSearchInstance.scheduleSearch();
|
|
254
220
|
}
|
|
255
221
|
}
|
|
256
|
-
|
|
257
222
|
return this;
|
|
258
223
|
},
|
|
259
224
|
init: function init(_ref2) {
|
|
260
225
|
var _this3 = this,
|
|
261
|
-
|
|
262
|
-
|
|
226
|
+
_instantSearchInstanc;
|
|
263
227
|
var instantSearchInstance = _ref2.instantSearchInstance,
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
228
|
+
parent = _ref2.parent,
|
|
229
|
+
uiState = _ref2.uiState;
|
|
267
230
|
if (helper !== null) {
|
|
268
231
|
// helper is already initialized, therefore we do not need to set up
|
|
269
232
|
// any listeners
|
|
270
233
|
return;
|
|
271
234
|
}
|
|
272
|
-
|
|
273
235
|
localInstantSearchInstance = instantSearchInstance;
|
|
274
236
|
localParent = parent;
|
|
275
|
-
localUiState = uiState[indexId] || {};
|
|
237
|
+
localUiState = uiState[indexId] || {};
|
|
238
|
+
|
|
239
|
+
// The `mainHelper` is already defined at this point. The instance is created
|
|
276
240
|
// inside InstantSearch at the `start` method, which occurs before the `init`
|
|
277
241
|
// step.
|
|
278
|
-
|
|
279
242
|
var mainHelper = instantSearchInstance.mainHelper;
|
|
280
243
|
var parameters = getLocalWidgetsSearchParameters(localWidgets, {
|
|
281
244
|
uiState: localUiState,
|
|
282
245
|
initialSearchParameters: new _algoliasearchHelper.default.SearchParameters({
|
|
283
246
|
index: indexName
|
|
284
247
|
})
|
|
285
|
-
});
|
|
248
|
+
});
|
|
249
|
+
|
|
250
|
+
// This Helper is only used for state management we do not care about the
|
|
286
251
|
// `searchClient`. Only the "main" Helper created at the `InstantSearch`
|
|
287
252
|
// level is aware of the client.
|
|
253
|
+
helper = (0, _algoliasearchHelper.default)({}, parameters.index, parameters);
|
|
288
254
|
|
|
289
|
-
|
|
255
|
+
// We forward the call to `search` to the "main" instance of the Helper
|
|
290
256
|
// which is responsible for managing the queries (it's the only one that is
|
|
291
257
|
// aware of the `searchClient`).
|
|
292
|
-
|
|
293
258
|
helper.search = function () {
|
|
294
259
|
if (instantSearchInstance.onStateChange) {
|
|
295
260
|
instantSearchInstance.onStateChange({
|
|
@@ -297,45 +262,41 @@ var index = function index(widgetParams) {
|
|
|
297
262
|
setUiState: function setUiState(nextState) {
|
|
298
263
|
return instantSearchInstance.setUiState(nextState, false);
|
|
299
264
|
}
|
|
300
|
-
});
|
|
301
|
-
// responsibility of `setUiState`.
|
|
265
|
+
});
|
|
302
266
|
|
|
267
|
+
// We don't trigger a search when controlled because it becomes the
|
|
268
|
+
// responsibility of `setUiState`.
|
|
303
269
|
return mainHelper;
|
|
304
270
|
}
|
|
305
|
-
|
|
306
271
|
return mainHelper.search();
|
|
307
272
|
};
|
|
308
|
-
|
|
309
273
|
helper.searchWithoutTriggeringOnStateChange = function () {
|
|
310
274
|
return mainHelper.search();
|
|
311
|
-
};
|
|
312
|
-
|
|
275
|
+
};
|
|
313
276
|
|
|
277
|
+
// We use the same pattern for the `searchForFacetValues`.
|
|
314
278
|
helper.searchForFacetValues = function (facetName, facetValue, maxFacetHits, userState) {
|
|
315
279
|
var state = helper.state.setQueryParameters(userState);
|
|
316
280
|
return mainHelper.searchForFacetValues(facetName, facetValue, maxFacetHits, state);
|
|
317
281
|
};
|
|
318
|
-
|
|
319
282
|
derivedHelper = mainHelper.derive(function () {
|
|
320
|
-
return
|
|
283
|
+
return _utils.mergeSearchParameters.apply(void 0, _toConsumableArray((0, _utils.resolveSearchParameters)(_this3)));
|
|
321
284
|
});
|
|
322
285
|
var indexInitialResults = (_instantSearchInstanc = instantSearchInstance._initialResults) === null || _instantSearchInstanc === void 0 ? void 0 : _instantSearchInstanc[this.getIndexId()];
|
|
323
|
-
|
|
324
286
|
if (indexInitialResults) {
|
|
325
287
|
// We restore the shape of the results provided to the instance to respect
|
|
326
288
|
// the helper's structure.
|
|
327
289
|
var results = new _algoliasearchHelper.default.SearchResults(new _algoliasearchHelper.default.SearchParameters(indexInitialResults.state), indexInitialResults.results);
|
|
328
290
|
derivedHelper.lastResults = results;
|
|
329
291
|
helper.lastResults = results;
|
|
330
|
-
}
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
// Subscribe to the Helper state changes for the page before widgets
|
|
331
295
|
// are initialized. This behavior mimics the original one of the Helper.
|
|
332
296
|
// It makes sense to replicate it at the `init` step. We have another
|
|
333
297
|
// listener on `change` below, once `init` is done.
|
|
334
|
-
|
|
335
|
-
|
|
336
298
|
helper.on('change', function (_ref3) {
|
|
337
299
|
var isPageReset = _ref3.isPageReset;
|
|
338
|
-
|
|
339
300
|
if (isPageReset) {
|
|
340
301
|
resetPageFromWidgets(localWidgets);
|
|
341
302
|
}
|
|
@@ -346,9 +307,8 @@ var index = function index(widgetParams) {
|
|
|
346
307
|
// it at the index level because it's either: all of them or none of them
|
|
347
308
|
// that are stalled. The queries are performed into a single network request.
|
|
348
309
|
instantSearchInstance.scheduleStalledRender();
|
|
349
|
-
|
|
350
310
|
if (process.env.NODE_ENV === 'development') {
|
|
351
|
-
(0,
|
|
311
|
+
(0, _utils.checkIndexUiState)({
|
|
352
312
|
index: _this3,
|
|
353
313
|
indexUiState: localUiState
|
|
354
314
|
});
|
|
@@ -359,19 +319,21 @@ var index = function index(widgetParams) {
|
|
|
359
319
|
// The index does not render the results it schedules a new render
|
|
360
320
|
// to let all the other indices emit their own results. It allows us to
|
|
361
321
|
// run the render process in one pass.
|
|
362
|
-
instantSearchInstance.scheduleRender();
|
|
322
|
+
instantSearchInstance.scheduleRender();
|
|
323
|
+
|
|
324
|
+
// the derived helper is the one which actually searches, but the helper
|
|
363
325
|
// which is exposed e.g. via instance.helper, doesn't search, and thus
|
|
364
326
|
// does not have access to lastResults, which it used to in pre-federated
|
|
365
327
|
// search behavior.
|
|
366
|
-
|
|
367
328
|
helper.lastResults = results;
|
|
368
|
-
});
|
|
329
|
+
});
|
|
330
|
+
|
|
331
|
+
// We compute the render state before calling `init` in a separate loop
|
|
369
332
|
// to construct the whole render state object that is then passed to
|
|
370
333
|
// `init`.
|
|
371
|
-
|
|
372
334
|
localWidgets.forEach(function (widget) {
|
|
373
335
|
if (widget.getRenderState) {
|
|
374
|
-
var renderState = widget.getRenderState(instantSearchInstance.renderState[_this3.getIndexId()] || {}, (0,
|
|
336
|
+
var renderState = widget.getRenderState(instantSearchInstance.renderState[_this3.getIndexId()] || {}, (0, _utils.createInitArgs)(instantSearchInstance, _this3, uiState));
|
|
375
337
|
storeRenderState({
|
|
376
338
|
renderState: renderState,
|
|
377
339
|
instantSearchInstance: instantSearchInstance,
|
|
@@ -380,34 +342,35 @@ var index = function index(widgetParams) {
|
|
|
380
342
|
}
|
|
381
343
|
});
|
|
382
344
|
localWidgets.forEach(function (widget) {
|
|
383
|
-
process.env.NODE_ENV === 'development' ? (0,
|
|
345
|
+
process.env.NODE_ENV === 'development' ? (0, _utils.warning)(
|
|
346
|
+
// if it has NO getWidgetState or if it has getWidgetUiState, we don't warn
|
|
384
347
|
// aka we warn if there's _only_ getWidgetState
|
|
385
348
|
!widget.getWidgetState || Boolean(widget.getWidgetUiState), 'The `getWidgetState` method is renamed `getWidgetUiState` and will no longer exist under that name in InstantSearch.js 5.x. Please use `getWidgetUiState` instead.') : void 0;
|
|
386
|
-
|
|
387
349
|
if (widget.init) {
|
|
388
|
-
widget.init((0,
|
|
350
|
+
widget.init((0, _utils.createInitArgs)(instantSearchInstance, _this3, uiState));
|
|
389
351
|
}
|
|
390
|
-
});
|
|
352
|
+
});
|
|
353
|
+
|
|
354
|
+
// Subscribe to the Helper state changes for the `uiState` once widgets
|
|
391
355
|
// are initialized. Until the first render, state changes are part of the
|
|
392
356
|
// configuration step. This is mainly for backward compatibility with custom
|
|
393
357
|
// widgets. When the subscription happens before the `init` step, the (static)
|
|
394
358
|
// configuration of the widget is pushed in the URL. That's what we want to avoid.
|
|
395
359
|
// https://github.com/algolia/instantsearch.js/pull/994/commits/4a672ae3fd78809e213de0368549ef12e9dc9454
|
|
396
|
-
|
|
397
360
|
helper.on('change', function (event) {
|
|
398
361
|
var state = event.state;
|
|
399
362
|
var _uiState = event._uiState;
|
|
400
363
|
localUiState = getLocalWidgetsUiState(localWidgets, {
|
|
401
364
|
searchParameters: state,
|
|
402
365
|
helper: helper
|
|
403
|
-
}, _uiState || {});
|
|
404
|
-
// becomes the responsibility of `setUiState`.
|
|
366
|
+
}, _uiState || {});
|
|
405
367
|
|
|
368
|
+
// We don't trigger an internal change when controlled because it
|
|
369
|
+
// becomes the responsibility of `setUiState`.
|
|
406
370
|
if (!instantSearchInstance.onStateChange) {
|
|
407
371
|
instantSearchInstance.onInternalStateChange();
|
|
408
372
|
}
|
|
409
373
|
});
|
|
410
|
-
|
|
411
374
|
if (indexInitialResults) {
|
|
412
375
|
// If there are initial results, we're not notified of the next results
|
|
413
376
|
// because we don't trigger an initial search. We therefore need to directly
|
|
@@ -417,16 +380,13 @@ var index = function index(widgetParams) {
|
|
|
417
380
|
},
|
|
418
381
|
render: function render(_ref5) {
|
|
419
382
|
var _this4 = this;
|
|
420
|
-
|
|
421
383
|
var instantSearchInstance = _ref5.instantSearchInstance;
|
|
422
|
-
|
|
423
384
|
if (!this.getResults()) {
|
|
424
385
|
return;
|
|
425
386
|
}
|
|
426
|
-
|
|
427
387
|
localWidgets.forEach(function (widget) {
|
|
428
388
|
if (widget.getRenderState) {
|
|
429
|
-
var renderState = widget.getRenderState(instantSearchInstance.renderState[_this4.getIndexId()] || {}, (0,
|
|
389
|
+
var renderState = widget.getRenderState(instantSearchInstance.renderState[_this4.getIndexId()] || {}, (0, _utils.createRenderArgs)(instantSearchInstance, _this4));
|
|
430
390
|
storeRenderState({
|
|
431
391
|
renderState: renderState,
|
|
432
392
|
instantSearchInstance: instantSearchInstance,
|
|
@@ -441,14 +401,14 @@ var index = function index(widgetParams) {
|
|
|
441
401
|
// happens before the result e.g with a dynamically added index the request might
|
|
442
402
|
// be delayed. The render is triggered for the complete tree but some parts do
|
|
443
403
|
// not have results yet.
|
|
404
|
+
|
|
444
405
|
if (widget.render) {
|
|
445
|
-
widget.render((0,
|
|
406
|
+
widget.render((0, _utils.createRenderArgs)(instantSearchInstance, _this4));
|
|
446
407
|
}
|
|
447
408
|
});
|
|
448
409
|
},
|
|
449
410
|
dispose: function dispose() {
|
|
450
411
|
var _this5 = this;
|
|
451
|
-
|
|
452
412
|
localWidgets.forEach(function (widget) {
|
|
453
413
|
if (widget.dispose) {
|
|
454
414
|
// The dispose function is always called once the instance is started
|
|
@@ -472,12 +432,12 @@ var index = function index(widgetParams) {
|
|
|
472
432
|
derivedHelper = null;
|
|
473
433
|
},
|
|
474
434
|
getWidgetUiState: function getWidgetUiState(uiState) {
|
|
475
|
-
return localWidgets.filter(
|
|
435
|
+
return localWidgets.filter(_utils.isIndexWidget).reduce(function (previousUiState, innerIndex) {
|
|
476
436
|
return innerIndex.getWidgetUiState(previousUiState);
|
|
477
437
|
}, _objectSpread(_objectSpread({}, uiState), {}, _defineProperty({}, indexId, _objectSpread(_objectSpread({}, uiState[indexId]), localUiState))));
|
|
478
438
|
},
|
|
479
439
|
getWidgetState: function getWidgetState(uiState) {
|
|
480
|
-
process.env.NODE_ENV === 'development' ? (0,
|
|
440
|
+
process.env.NODE_ENV === 'development' ? (0, _utils.warning)(false, 'The `getWidgetState` method is renamed `getWidgetUiState` and will no longer exist under that name in InstantSearch.js 5.x. Please use `getWidgetUiState` instead.') : void 0;
|
|
481
441
|
return this.getWidgetUiState(uiState);
|
|
482
442
|
},
|
|
483
443
|
getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref6) {
|
|
@@ -495,14 +455,12 @@ var index = function index(widgetParams) {
|
|
|
495
455
|
}
|
|
496
456
|
};
|
|
497
457
|
};
|
|
498
|
-
|
|
499
458
|
var _default = index;
|
|
500
459
|
exports.default = _default;
|
|
501
|
-
|
|
502
460
|
function storeRenderState(_ref7) {
|
|
503
461
|
var renderState = _ref7.renderState,
|
|
504
|
-
|
|
505
|
-
|
|
462
|
+
instantSearchInstance = _ref7.instantSearchInstance,
|
|
463
|
+
parent = _ref7.parent;
|
|
506
464
|
var parentIndexName = parent ? parent.getIndexId() : instantSearchInstance.mainIndex.getIndexId();
|
|
507
465
|
instantSearchInstance.renderState = _objectSpread(_objectSpread({}, instantSearchInstance.renderState), {}, _defineProperty({}, parentIndexName, _objectSpread(_objectSpread({}, instantSearchInstance.renderState[parentIndexName]), renderState)));
|
|
508
466
|
}
|
package/cjs/widgets/index.js
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.EXPERIMENTAL_answers = void 0;
|
|
7
|
+
Object.defineProperty(exports, "EXPERIMENTAL_configureRelatedItems", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function get() {
|
|
10
|
+
return _configureRelatedItems.default;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
exports.EXPERIMENTAL_dynamicWidgets = void 0;
|
|
6
14
|
Object.defineProperty(exports, "analytics", {
|
|
7
15
|
enumerable: true,
|
|
8
16
|
get: function get() {
|
|
@@ -33,18 +41,6 @@ Object.defineProperty(exports, "currentRefinements", {
|
|
|
33
41
|
return _currentRefinements.default;
|
|
34
42
|
}
|
|
35
43
|
});
|
|
36
|
-
Object.defineProperty(exports, "EXPERIMENTAL_answers", {
|
|
37
|
-
enumerable: true,
|
|
38
|
-
get: function get() {
|
|
39
|
-
return _answers.default;
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
Object.defineProperty(exports, "EXPERIMENTAL_configureRelatedItems", {
|
|
43
|
-
enumerable: true,
|
|
44
|
-
get: function get() {
|
|
45
|
-
return _configureRelatedItems.default;
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
44
|
Object.defineProperty(exports, "dynamicWidgets", {
|
|
49
45
|
enumerable: true,
|
|
50
46
|
get: function get() {
|
|
@@ -78,7 +74,7 @@ Object.defineProperty(exports, "hitsPerPage", {
|
|
|
78
74
|
Object.defineProperty(exports, "index", {
|
|
79
75
|
enumerable: true,
|
|
80
76
|
get: function get() {
|
|
81
|
-
return
|
|
77
|
+
return _index.default;
|
|
82
78
|
}
|
|
83
79
|
});
|
|
84
80
|
Object.defineProperty(exports, "infiniteHits", {
|
|
@@ -201,78 +197,44 @@ Object.defineProperty(exports, "voiceSearch", {
|
|
|
201
197
|
return _voiceSearch.default;
|
|
202
198
|
}
|
|
203
199
|
});
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
var
|
|
207
|
-
|
|
208
|
-
var
|
|
209
|
-
|
|
210
|
-
var
|
|
211
|
-
|
|
212
|
-
var
|
|
213
|
-
|
|
214
|
-
var
|
|
215
|
-
|
|
216
|
-
var
|
|
217
|
-
|
|
218
|
-
var
|
|
219
|
-
|
|
220
|
-
var
|
|
221
|
-
|
|
222
|
-
var
|
|
223
|
-
|
|
224
|
-
var
|
|
225
|
-
|
|
226
|
-
var
|
|
227
|
-
|
|
228
|
-
var
|
|
229
|
-
|
|
230
|
-
var
|
|
231
|
-
|
|
232
|
-
var
|
|
233
|
-
|
|
234
|
-
var
|
|
235
|
-
|
|
236
|
-
var
|
|
237
|
-
|
|
238
|
-
var _menuSelect = _interopRequireDefault(require("./menu-select/menu-select.js"));
|
|
239
|
-
|
|
240
|
-
var _numericMenu = _interopRequireDefault(require("./numeric-menu/numeric-menu.js"));
|
|
241
|
-
|
|
242
|
-
var _pagination = _interopRequireDefault(require("./pagination/pagination.js"));
|
|
243
|
-
|
|
244
|
-
var _panel = _interopRequireDefault(require("./panel/panel.js"));
|
|
245
|
-
|
|
246
|
-
var _places = _interopRequireDefault(require("./places/places.js"));
|
|
247
|
-
|
|
248
|
-
var _poweredBy = _interopRequireDefault(require("./powered-by/powered-by.js"));
|
|
249
|
-
|
|
250
|
-
var _queryRuleContext = _interopRequireDefault(require("./query-rule-context/query-rule-context.js"));
|
|
251
|
-
|
|
252
|
-
var _queryRuleCustomData = _interopRequireDefault(require("./query-rule-custom-data/query-rule-custom-data.js"));
|
|
253
|
-
|
|
254
|
-
var _rangeInput = _interopRequireDefault(require("./range-input/range-input.js"));
|
|
255
|
-
|
|
256
|
-
var _rangeSlider = _interopRequireDefault(require("./range-slider/range-slider.js"));
|
|
257
|
-
|
|
258
|
-
var _ratingMenu = _interopRequireDefault(require("./rating-menu/rating-menu.js"));
|
|
259
|
-
|
|
260
|
-
var _refinementList = _interopRequireDefault(require("./refinement-list/refinement-list.js"));
|
|
261
|
-
|
|
262
|
-
var _relevantSort = _interopRequireDefault(require("./relevant-sort/relevant-sort.js"));
|
|
263
|
-
|
|
264
|
-
var _searchBox = _interopRequireDefault(require("./search-box/search-box.js"));
|
|
265
|
-
|
|
266
|
-
var _sortBy = _interopRequireDefault(require("./sort-by/sort-by.js"));
|
|
267
|
-
|
|
268
|
-
var _stats = _interopRequireDefault(require("./stats/stats.js"));
|
|
269
|
-
|
|
270
|
-
var _toggleRefinement = _interopRequireDefault(require("./toggle-refinement/toggle-refinement.js"));
|
|
271
|
-
|
|
272
|
-
var _voiceSearch = _interopRequireDefault(require("./voice-search/voice-search.js"));
|
|
273
|
-
|
|
200
|
+
var _utils = require("../lib/utils");
|
|
201
|
+
var _analytics = _interopRequireDefault(require("./analytics/analytics"));
|
|
202
|
+
var _breadcrumb = _interopRequireDefault(require("./breadcrumb/breadcrumb"));
|
|
203
|
+
var _clearRefinements = _interopRequireDefault(require("./clear-refinements/clear-refinements"));
|
|
204
|
+
var _configure = _interopRequireDefault(require("./configure/configure"));
|
|
205
|
+
var _currentRefinements = _interopRequireDefault(require("./current-refinements/current-refinements"));
|
|
206
|
+
var _answers = _interopRequireDefault(require("./answers/answers"));
|
|
207
|
+
var _configureRelatedItems = _interopRequireDefault(require("./configure-related-items/configure-related-items"));
|
|
208
|
+
var _dynamicWidgets = _interopRequireDefault(require("./dynamic-widgets/dynamic-widgets"));
|
|
209
|
+
var _geoSearch = _interopRequireDefault(require("./geo-search/geo-search"));
|
|
210
|
+
var _hierarchicalMenu = _interopRequireDefault(require("./hierarchical-menu/hierarchical-menu"));
|
|
211
|
+
var _hits = _interopRequireDefault(require("./hits/hits"));
|
|
212
|
+
var _hitsPerPage = _interopRequireDefault(require("./hits-per-page/hits-per-page"));
|
|
213
|
+
var _index = _interopRequireDefault(require("./index/index"));
|
|
214
|
+
var _infiniteHits = _interopRequireDefault(require("./infinite-hits/infinite-hits"));
|
|
215
|
+
var _menu = _interopRequireDefault(require("./menu/menu"));
|
|
216
|
+
var _menuSelect = _interopRequireDefault(require("./menu-select/menu-select"));
|
|
217
|
+
var _numericMenu = _interopRequireDefault(require("./numeric-menu/numeric-menu"));
|
|
218
|
+
var _pagination = _interopRequireDefault(require("./pagination/pagination"));
|
|
219
|
+
var _panel = _interopRequireDefault(require("./panel/panel"));
|
|
220
|
+
var _places = _interopRequireDefault(require("./places/places"));
|
|
221
|
+
var _poweredBy = _interopRequireDefault(require("./powered-by/powered-by"));
|
|
222
|
+
var _queryRuleContext = _interopRequireDefault(require("./query-rule-context/query-rule-context"));
|
|
223
|
+
var _queryRuleCustomData = _interopRequireDefault(require("./query-rule-custom-data/query-rule-custom-data"));
|
|
224
|
+
var _rangeInput = _interopRequireDefault(require("./range-input/range-input"));
|
|
225
|
+
var _rangeSlider = _interopRequireDefault(require("./range-slider/range-slider"));
|
|
226
|
+
var _ratingMenu = _interopRequireDefault(require("./rating-menu/rating-menu"));
|
|
227
|
+
var _refinementList = _interopRequireDefault(require("./refinement-list/refinement-list"));
|
|
228
|
+
var _relevantSort = _interopRequireDefault(require("./relevant-sort/relevant-sort"));
|
|
229
|
+
var _searchBox = _interopRequireDefault(require("./search-box/search-box"));
|
|
230
|
+
var _sortBy = _interopRequireDefault(require("./sort-by/sort-by"));
|
|
231
|
+
var _stats = _interopRequireDefault(require("./stats/stats"));
|
|
232
|
+
var _toggleRefinement = _interopRequireDefault(require("./toggle-refinement/toggle-refinement"));
|
|
233
|
+
var _voiceSearch = _interopRequireDefault(require("./voice-search/voice-search"));
|
|
274
234
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
275
|
-
|
|
235
|
+
/** @deprecated answers is no longer supported */
|
|
236
|
+
var EXPERIMENTAL_answers = (0, _utils.deprecate)(_answers.default, 'answers is no longer supported');
|
|
237
|
+
exports.EXPERIMENTAL_answers = EXPERIMENTAL_answers;
|
|
276
238
|
/** @deprecated use dynamicWidgets */
|
|
277
|
-
var EXPERIMENTAL_dynamicWidgets = (0,
|
|
239
|
+
var EXPERIMENTAL_dynamicWidgets = (0, _utils.deprecate)(_dynamicWidgets.default, 'use dynamicWidgets');
|
|
278
240
|
exports.EXPERIMENTAL_dynamicWidgets = EXPERIMENTAL_dynamicWidgets;
|