instantsearch.js 4.49.0 → 4.49.2
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 +3 -3
- package/cjs/components/Answers/Answers.js +6 -16
- package/cjs/components/Breadcrumb/Breadcrumb.js +5 -12
- package/cjs/components/ClearRefinements/ClearRefinements.js +4 -11
- package/cjs/components/CurrentRefinements/CurrentRefinements.js +5 -12
- package/cjs/components/GeoSearchControls/GeoSearchButton.js +4 -6
- package/cjs/components/GeoSearchControls/GeoSearchControls.js +11 -20
- package/cjs/components/GeoSearchControls/GeoSearchToggle.js +4 -6
- package/cjs/components/Highlight/Highlight.js +3 -11
- package/cjs/components/Hits/Hits.js +8 -20
- package/cjs/components/InfiniteHits/InfiniteHits.js +13 -25
- package/cjs/components/InternalHighlight/InternalHighlight.js +0 -3
- package/cjs/components/MenuSelect/MenuSelect.js +9 -19
- package/cjs/components/Pagination/Pagination.js +10 -17
- package/cjs/components/Panel/Panel.js +7 -26
- package/cjs/components/PoweredBy/PoweredBy.js +4 -5
- package/cjs/components/QueryRuleCustomData/QueryRuleCustomData.js +2 -6
- package/cjs/components/RangeInput/RangeInput.js +16 -48
- package/cjs/components/RefinementList/RefinementList.js +19 -73
- package/cjs/components/RefinementList/RefinementListItem.js +8 -14
- package/cjs/components/RelevantSort/RelevantSort.js +4 -8
- package/cjs/components/ReverseHighlight/ReverseHighlight.js +3 -11
- package/cjs/components/ReverseSnippet/ReverseSnippet.js +3 -11
- package/cjs/components/SearchBox/SearchBox.js +25 -69
- package/cjs/components/Selector/Selector.js +3 -6
- package/cjs/components/Slider/Pit.js +3 -10
- package/cjs/components/Slider/Rheostat.js +63 -131
- package/cjs/components/Slider/Slider.js +28 -65
- package/cjs/components/Snippet/Snippet.js +3 -11
- package/cjs/components/Stats/Stats.js +7 -20
- package/cjs/components/Template/Template.js +8 -37
- package/cjs/components/ToggleRefinement/ToggleRefinement.js +4 -10
- package/cjs/components/VoiceSearch/VoiceSearch.js +8 -15
- package/cjs/connectors/answers/connectAnswers.js +21 -36
- package/cjs/connectors/autocomplete/connectAutocomplete.js +8 -25
- package/cjs/connectors/breadcrumb/connectBreadcrumb.js +17 -48
- package/cjs/connectors/clear-refinements/connectClearRefinements.js +27 -45
- package/cjs/connectors/configure/connectConfigure.js +6 -20
- package/cjs/connectors/configure-related-items/connectConfigureRelatedItems.js +11 -36
- package/cjs/connectors/current-refinements/connectCurrentRefinements.js +18 -57
- package/cjs/connectors/dynamic-widgets/connectDynamicWidgets.js +17 -37
- package/cjs/connectors/geo-search/connectGeoSearch.js +17 -47
- package/cjs/connectors/hierarchical-menu/connectHierarchicalMenu.js +38 -74
- package/cjs/connectors/hits/connectHits.js +10 -26
- package/cjs/connectors/hits/connectHitsWithInsights.js +0 -4
- package/cjs/connectors/hits-per-page/connectHitsPerPage.js +15 -38
- package/cjs/connectors/index.js +62 -96
- package/cjs/connectors/infinite-hits/connectInfiniteHits.js +26 -62
- package/cjs/connectors/infinite-hits/connectInfiniteHitsWithInsights.js +0 -4
- package/cjs/connectors/menu/connectMenu.js +28 -66
- package/cjs/connectors/numeric-menu/connectNumericMenu.js +24 -78
- package/cjs/connectors/pagination/Paginator.js +3 -20
- package/cjs/connectors/pagination/connectPagination.js +8 -25
- package/cjs/connectors/powered-by/connectPoweredBy.js +4 -13
- package/cjs/connectors/query-rules/connectQueryRules.js +32 -56
- package/cjs/connectors/range/connectRange.js +41 -101
- package/cjs/connectors/rating-menu/connectRatingMenu.js +23 -79
- package/cjs/connectors/refinement-list/connectRefinementList.js +37 -70
- package/cjs/connectors/relevant-sort/connectRelevantSort.js +4 -14
- package/cjs/connectors/search-box/connectSearchBox.js +7 -23
- package/cjs/connectors/sort-by/connectSortBy.js +11 -21
- package/cjs/connectors/stats/connectStats.js +4 -11
- package/cjs/connectors/toggle-refinement/connectToggleRefinement.js +29 -63
- package/cjs/connectors/voice-search/connectVoiceSearch.js +13 -35
- package/cjs/helpers/components/Highlight.js +4 -12
- package/cjs/helpers/components/ReverseHighlight.js +7 -19
- package/cjs/helpers/components/ReverseSnippet.js +7 -19
- package/cjs/helpers/components/Snippet.js +4 -12
- package/cjs/helpers/components/index.js +0 -8
- package/cjs/helpers/get-insights-anonymous-user-token.js +7 -12
- package/cjs/helpers/highlight.js +10 -16
- package/cjs/helpers/index.js +17 -31
- package/cjs/helpers/insights.js +5 -17
- package/cjs/helpers/reverseHighlight.js +10 -16
- package/cjs/helpers/reverseSnippet.js +10 -16
- package/cjs/helpers/snippet.js +10 -16
- package/cjs/index.js +3 -18
- package/cjs/lib/InstantSearch.js +79 -180
- package/cjs/lib/createHelpers.js +4 -11
- package/cjs/lib/formatNumber.js +0 -1
- package/cjs/lib/infiniteHitsCache/index.js +0 -2
- package/cjs/lib/infiniteHitsCache/sessionStorage.js +9 -18
- package/cjs/lib/insights/client.js +8 -34
- package/cjs/lib/insights/index.js +7 -13
- package/cjs/lib/insights/listener.js +4 -20
- package/cjs/lib/routers/history.js +63 -102
- package/cjs/lib/routers/index.js +0 -2
- package/cjs/lib/stateMappings/index.js +0 -3
- package/cjs/lib/stateMappings/simple.js +6 -13
- package/cjs/lib/stateMappings/singleIndex.js +1 -7
- package/cjs/lib/suit.js +2 -5
- package/cjs/lib/templating/index.js +0 -4
- package/cjs/lib/templating/prepareTemplateProps.js +8 -19
- package/cjs/lib/templating/renderTemplate.js +9 -24
- package/cjs/lib/utils/capitalize.js +0 -1
- package/cjs/lib/utils/checkIndexUiState.js +15 -43
- package/cjs/lib/utils/checkRendering.js +0 -2
- package/cjs/lib/utils/clearRefinements.js +2 -9
- package/cjs/lib/utils/concatHighlightedParts.js +1 -3
- package/cjs/lib/utils/createConcurrentSafePromise.js +0 -3
- package/cjs/lib/utils/createSendEventForFacet.js +7 -14
- package/cjs/lib/utils/createSendEventForHits.js +9 -33
- package/cjs/lib/utils/debounce.js +0 -3
- package/cjs/lib/utils/defer.js +0 -11
- package/cjs/lib/utils/detect-insights-client.js +0 -2
- package/cjs/lib/utils/documentation.js +2 -5
- package/cjs/lib/utils/escape-highlight.js +5 -22
- 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 +14 -34
- package/cjs/lib/utils/getAppIdAndApiKey.js +2 -3
- package/cjs/lib/utils/getContainerNode.js +0 -6
- package/cjs/lib/utils/getHighlightFromSiblings.js +0 -6
- package/cjs/lib/utils/getHighlightedParts.js +1 -4
- package/cjs/lib/utils/getObjectType.js +0 -1
- package/cjs/lib/utils/getPropertyByPath.js +0 -1
- package/cjs/lib/utils/getRefinements.js +13 -26
- package/cjs/lib/utils/getWidgetAttribute.js +0 -6
- package/cjs/lib/utils/hits-absolute-position.js +2 -6
- package/cjs/lib/utils/hits-query-id.js +2 -7
- package/cjs/lib/utils/index.js +0 -92
- package/cjs/lib/utils/isDomElement.js +0 -1
- package/cjs/lib/utils/isEqual.js +0 -8
- 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 +3 -13
- package/cjs/lib/utils/mergeSearchParameters.js +16 -40
- package/cjs/lib/utils/noop.js +0 -1
- package/cjs/lib/utils/range.js +8 -14
- package/cjs/lib/utils/render-args.js +0 -2
- package/cjs/lib/utils/resolveSearchParameters.js +0 -3
- package/cjs/lib/utils/reverseHighlightedParts.js +2 -8
- package/cjs/lib/utils/safelyRunOnBrowser.js +7 -9
- package/cjs/lib/utils/serializer.js +1 -3
- package/cjs/lib/utils/setIndexHelperState.js +0 -5
- 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 +8 -36
- package/cjs/middlewares/createInsightsMiddleware.js +15 -44
- package/cjs/middlewares/createMetadataMiddleware.js +4 -12
- package/cjs/middlewares/createRouterMiddleware.js +8 -19
- package/cjs/middlewares/index.js +0 -6
- package/cjs/types/algoliasearch.js +0 -2
- package/cjs/types/index.js +0 -28
- package/cjs/widgets/analytics/analytics.js +12 -47
- package/cjs/widgets/answers/answers.js +19 -39
- package/cjs/widgets/breadcrumb/breadcrumb.js +18 -38
- package/cjs/widgets/clear-refinements/clear-refinements.js +15 -35
- package/cjs/widgets/configure/configure.js +2 -10
- package/cjs/widgets/configure-related-items/configure-related-items.js +2 -10
- package/cjs/widgets/current-refinements/current-refinements.js +12 -30
- package/cjs/widgets/dynamic-widgets/dynamic-widgets.js +6 -25
- package/cjs/widgets/geo-search/GeoSearchRenderer.js +41 -68
- package/cjs/widgets/geo-search/createHTMLMarker.js +30 -60
- package/cjs/widgets/geo-search/defaultTemplates.js +0 -3
- package/cjs/widgets/geo-search/geo-search.js +27 -59
- package/cjs/widgets/hierarchical-menu/defaultTemplates.js +4 -7
- package/cjs/widgets/hierarchical-menu/hierarchical-menu.js +28 -47
- package/cjs/widgets/hits/hits.js +16 -37
- package/cjs/widgets/hits-per-page/hits-per-page.js +13 -31
- package/cjs/widgets/index/index.js +49 -95
- package/cjs/widgets/index.js +12 -50
- package/cjs/widgets/infinite-hits/infinite-hits.js +23 -44
- package/cjs/widgets/menu/defaultTemplates.js +3 -6
- package/cjs/widgets/menu/menu.js +23 -43
- package/cjs/widgets/menu-select/defaultTemplates.js +1 -3
- package/cjs/widgets/menu-select/menu-select.js +18 -38
- package/cjs/widgets/numeric-menu/defaultTemplates.js +3 -4
- package/cjs/widgets/numeric-menu/numeric-menu.js +17 -37
- package/cjs/widgets/pagination/pagination.js +32 -53
- package/cjs/widgets/panel/panel.js +20 -48
- package/cjs/widgets/places/places.js +16 -33
- package/cjs/widgets/powered-by/powered-by.js +10 -27
- package/cjs/widgets/query-rule-context/query-rule-context.js +2 -13
- package/cjs/widgets/query-rule-custom-data/query-rule-custom-data.js +14 -32
- package/cjs/widgets/range-input/range-input.js +23 -50
- package/cjs/widgets/range-slider/range-slider.js +28 -53
- package/cjs/widgets/rating-menu/defaultTemplates.js +8 -14
- package/cjs/widgets/rating-menu/rating-menu.js +17 -38
- package/cjs/widgets/refinement-list/defaultTemplates.js +5 -8
- package/cjs/widgets/refinement-list/refinement-list.js +39 -60
- package/cjs/widgets/relevant-sort/relevant-sort.js +10 -29
- package/cjs/widgets/search-box/defaultTemplates.js +0 -5
- package/cjs/widgets/search-box/search-box.js +31 -49
- package/cjs/widgets/sort-by/sort-by.js +11 -29
- package/cjs/widgets/stats/defaultTemplates.js +0 -1
- package/cjs/widgets/stats/stats.js +27 -57
- package/cjs/widgets/toggle-refinement/toggle-refinement.js +16 -36
- package/cjs/widgets/voice-search/defaultTemplates.js +4 -14
- package/cjs/widgets/voice-search/voice-search.js +17 -36
- package/dist/instantsearch.development.d.ts +8 -6
- package/dist/instantsearch.development.js +1725 -3087
- package/dist/instantsearch.development.js.map +1 -1
- package/dist/instantsearch.production.d.ts +8 -6
- package/dist/instantsearch.production.min.d.ts +8 -6
- package/dist/instantsearch.production.min.js +2 -2
- package/dist/instantsearch.production.min.js.map +1 -1
- package/es/components/Answers/Answers.js +6 -11
- package/es/components/Breadcrumb/Breadcrumb.js +5 -7
- package/es/components/ClearRefinements/ClearRefinements.js +4 -6
- package/es/components/CurrentRefinements/CurrentRefinements.js +7 -10
- package/es/components/GeoSearchControls/GeoSearchButton.js +6 -6
- package/es/components/GeoSearchControls/GeoSearchControls.js +11 -13
- package/es/components/GeoSearchControls/GeoSearchToggle.js +6 -6
- package/es/components/Highlight/Highlight.js +3 -7
- package/es/components/Hits/Hits.js +8 -15
- package/es/components/InfiniteHits/InfiniteHits.js +13 -20
- package/es/components/MenuSelect/MenuSelect.js +9 -13
- package/es/components/Pagination/Pagination.js +12 -15
- package/es/components/Panel/Panel.js +7 -20
- package/es/components/PoweredBy/PoweredBy.js +6 -5
- package/es/components/QueryRuleCustomData/QueryRuleCustomData.js +4 -4
- package/es/components/RangeInput/RangeInput.js +16 -43
- package/es/components/RefinementList/RefinementList.js +19 -64
- package/es/components/RefinementList/RefinementListItem.js +8 -10
- package/es/components/RelevantSort/RelevantSort.js +6 -6
- package/es/components/ReverseHighlight/ReverseHighlight.js +3 -7
- package/es/components/ReverseSnippet/ReverseSnippet.js +3 -7
- package/es/components/SearchBox/SearchBox.js +25 -63
- package/es/components/Selector/Selector.js +5 -5
- package/es/components/Slider/Pit.js +3 -7
- package/es/components/Slider/Rheostat.js +64 -129
- package/es/components/Slider/Slider.js +28 -58
- package/es/components/Snippet/Snippet.js +3 -7
- package/es/components/Stats/Stats.js +7 -15
- package/es/components/Template/Template.js +8 -32
- package/es/components/ToggleRefinement/ToggleRefinement.js +4 -6
- package/es/components/VoiceSearch/VoiceSearch.js +10 -13
- package/es/connectors/answers/connectAnswers.js +21 -35
- package/es/connectors/autocomplete/connectAutocomplete.js +8 -23
- package/es/connectors/breadcrumb/connectBreadcrumb.js +17 -46
- package/es/connectors/clear-refinements/connectClearRefinements.js +27 -43
- package/es/connectors/configure/connectConfigure.js +7 -16
- package/es/connectors/configure-related-items/connectConfigureRelatedItems.js +11 -31
- package/es/connectors/current-refinements/connectCurrentRefinements.js +18 -55
- package/es/connectors/dynamic-widgets/connectDynamicWidgets.js +17 -35
- package/es/connectors/geo-search/connectGeoSearch.js +17 -45
- package/es/connectors/hierarchical-menu/connectHierarchicalMenu.js +38 -72
- package/es/connectors/hits/connectHits.js +10 -24
- package/es/connectors/hits-per-page/connectHitsPerPage.js +15 -36
- package/es/connectors/index.d.ts +2 -1
- package/es/connectors/index.js +6 -3
- package/es/connectors/infinite-hits/connectInfiniteHits.js +26 -60
- package/es/connectors/menu/connectMenu.js +28 -64
- package/es/connectors/numeric-menu/connectNumericMenu.js +24 -76
- package/es/connectors/pagination/Paginator.js +3 -19
- package/es/connectors/pagination/connectPagination.js +8 -21
- package/es/connectors/powered-by/connectPoweredBy.js +4 -11
- package/es/connectors/query-rules/connectQueryRules.js +32 -54
- package/es/connectors/range/connectRange.js +41 -99
- package/es/connectors/rating-menu/connectRatingMenu.js +23 -77
- package/es/connectors/refinement-list/connectRefinementList.js +37 -68
- package/es/connectors/relevant-sort/connectRelevantSort.js +4 -13
- package/es/connectors/search-box/connectSearchBox.js +7 -21
- package/es/connectors/sort-by/connectSortBy.js +11 -19
- package/es/connectors/stats/connectStats.js +4 -9
- package/es/connectors/toggle-refinement/connectToggleRefinement.js +29 -61
- package/es/connectors/voice-search/connectVoiceSearch.js +13 -31
- package/es/helpers/components/Highlight.js +4 -8
- package/es/helpers/components/ReverseHighlight.js +7 -15
- package/es/helpers/components/ReverseSnippet.js +7 -15
- package/es/helpers/components/Snippet.js +4 -8
- package/es/helpers/get-insights-anonymous-user-token.js +5 -7
- package/es/helpers/highlight.js +9 -11
- package/es/helpers/insights.js +3 -10
- package/es/helpers/reverseHighlight.js +9 -11
- package/es/helpers/reverseSnippet.js +9 -11
- package/es/helpers/snippet.js +9 -11
- package/es/index.js +0 -2
- package/es/lib/InstantSearch.js +79 -170
- package/es/lib/createHelpers.js +4 -8
- package/es/lib/infiniteHitsCache/sessionStorage.js +9 -16
- package/es/lib/insights/client.js +8 -32
- package/es/lib/insights/listener.js +6 -18
- package/es/lib/routers/history.js +63 -99
- package/es/lib/stateMappings/simple.js +6 -12
- package/es/lib/stateMappings/singleIndex.js +1 -6
- package/es/lib/suit.js +2 -3
- package/es/lib/templating/prepareTemplateProps.js +8 -18
- package/es/lib/templating/renderTemplate.js +9 -20
- package/es/lib/utils/checkIndexUiState.js +18 -40
- 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 +3 -16
- 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 +14 -32
- 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 +13 -24
- package/es/lib/utils/getWidgetAttribute.js +0 -5
- package/es/lib/utils/hits-absolute-position.js +2 -5
- package/es/lib/utils/hits-query-id.js +2 -6
- package/es/lib/utils/isEqual.js +0 -7
- package/es/lib/utils/isPlainObject.js +3 -10
- package/es/lib/utils/logger.js +2 -12
- package/es/lib/utils/mergeSearchParameters.js +16 -37
- package/es/lib/utils/range.js +8 -13
- package/es/lib/utils/resolveSearchParameters.js +0 -2
- package/es/lib/utils/reverseHighlightedParts.js +2 -6
- 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 +8 -35
- package/es/middlewares/createInsightsMiddleware.js +15 -41
- package/es/middlewares/createMetadataMiddleware.js +3 -9
- package/es/middlewares/createRouterMiddleware.js +8 -13
- package/es/types/index.js +9 -5
- package/es/widgets/analytics/analytics.js +12 -45
- package/es/widgets/answers/answers.js +19 -28
- package/es/widgets/breadcrumb/breadcrumb.js +18 -27
- package/es/widgets/clear-refinements/clear-refinements.js +15 -24
- package/es/widgets/configure/configure.js +3 -6
- package/es/widgets/configure-related-items/configure-related-items.js +2 -7
- package/es/widgets/current-refinements/current-refinements.js +12 -21
- package/es/widgets/dynamic-widgets/dynamic-widgets.js +6 -20
- package/es/widgets/geo-search/GeoSearchRenderer.js +41 -63
- package/es/widgets/geo-search/createHTMLMarker.js +30 -59
- package/es/widgets/geo-search/defaultTemplates.js +2 -2
- package/es/widgets/geo-search/geo-search.js +27 -49
- package/es/widgets/hierarchical-menu/defaultTemplates.js +5 -4
- package/es/widgets/hierarchical-menu/hierarchical-menu.js +28 -36
- package/es/widgets/hits/hits.js +16 -25
- package/es/widgets/hits-per-page/hits-per-page.js +13 -22
- package/es/widgets/index/index.js +49 -91
- package/es/widgets/index.d.ts +2 -1
- package/es/widgets/index.js +4 -3
- package/es/widgets/infinite-hits/infinite-hits.js +23 -32
- package/es/widgets/menu/defaultTemplates.js +4 -3
- package/es/widgets/menu/menu.js +23 -32
- package/es/widgets/menu-select/defaultTemplates.js +1 -1
- package/es/widgets/menu-select/menu-select.js +18 -27
- package/es/widgets/numeric-menu/defaultTemplates.js +4 -3
- package/es/widgets/numeric-menu/numeric-menu.js +17 -26
- package/es/widgets/pagination/pagination.js +32 -44
- package/es/widgets/panel/panel.js +20 -40
- package/es/widgets/places/places.js +16 -32
- package/es/widgets/powered-by/powered-by.js +10 -18
- package/es/widgets/query-rule-context/query-rule-context.js +2 -9
- package/es/widgets/query-rule-custom-data/query-rule-custom-data.js +13 -22
- package/es/widgets/range-input/range-input.js +23 -40
- package/es/widgets/range-slider/range-slider.js +28 -44
- package/es/widgets/rating-menu/defaultTemplates.js +9 -12
- package/es/widgets/rating-menu/rating-menu.js +17 -27
- package/es/widgets/refinement-list/defaultTemplates.js +6 -5
- package/es/widgets/refinement-list/refinement-list.js +39 -48
- package/es/widgets/relevant-sort/relevant-sort.js +10 -19
- package/es/widgets/search-box/defaultTemplates.js +1 -4
- package/es/widgets/search-box/search-box.js +31 -39
- package/es/widgets/sort-by/sort-by.js +11 -20
- package/es/widgets/stats/stats.js +26 -45
- package/es/widgets/toggle-refinement/toggle-refinement.js +16 -25
- package/es/widgets/voice-search/defaultTemplates.js +5 -13
- package/es/widgets/voice-search/voice-search.js +17 -26
- 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/CHANGELOG.md +0 -3684
|
@@ -1,31 +1,19 @@
|
|
|
1
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
2
|
-
|
|
3
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
4
|
-
|
|
1
|
+
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; }
|
|
2
|
+
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; }
|
|
5
3
|
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; }
|
|
6
|
-
|
|
7
4
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
8
|
-
|
|
9
5
|
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."); }
|
|
10
|
-
|
|
11
6
|
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); }
|
|
12
|
-
|
|
13
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
|
|
14
|
-
|
|
7
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
15
8
|
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
16
|
-
|
|
17
9
|
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; }
|
|
18
|
-
|
|
19
10
|
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; }
|
|
20
|
-
|
|
21
11
|
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; }
|
|
22
|
-
|
|
23
12
|
import algoliasearchHelper from 'algoliasearch-helper';
|
|
24
13
|
import { checkIndexUiState, createDocumentationMessageGenerator, resolveSearchParameters, mergeSearchParameters, warning, isIndexWidget, createInitArgs, createRenderArgs } from "../../lib/utils/index.js";
|
|
25
14
|
var withUsage = createDocumentationMessageGenerator({
|
|
26
15
|
name: 'index-widget'
|
|
27
16
|
});
|
|
28
|
-
|
|
29
17
|
/**
|
|
30
18
|
* This is the same content as helper._change / setState, but allowing for extra
|
|
31
19
|
* UiState to be synchronized.
|
|
@@ -33,9 +21,8 @@ var withUsage = createDocumentationMessageGenerator({
|
|
|
33
21
|
*/
|
|
34
22
|
function privateHelperSetState(helper, _ref) {
|
|
35
23
|
var state = _ref.state,
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
24
|
+
isPageReset = _ref.isPageReset,
|
|
25
|
+
_uiState = _ref._uiState;
|
|
39
26
|
if (state !== helper.state) {
|
|
40
27
|
helper.state = state;
|
|
41
28
|
helper.emit('change', {
|
|
@@ -46,48 +33,38 @@ function privateHelperSetState(helper, _ref) {
|
|
|
46
33
|
});
|
|
47
34
|
}
|
|
48
35
|
}
|
|
49
|
-
|
|
50
36
|
function getLocalWidgetsUiState(widgets, widgetStateOptions) {
|
|
51
37
|
var initialUiState = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
52
38
|
return widgets.reduce(function (uiState, widget) {
|
|
53
39
|
if (isIndexWidget(widget)) {
|
|
54
40
|
return uiState;
|
|
55
41
|
}
|
|
56
|
-
|
|
57
42
|
if (!widget.getWidgetUiState && !widget.getWidgetState) {
|
|
58
43
|
return uiState;
|
|
59
44
|
}
|
|
60
|
-
|
|
61
45
|
if (widget.getWidgetUiState) {
|
|
62
46
|
return widget.getWidgetUiState(uiState, widgetStateOptions);
|
|
63
47
|
}
|
|
64
|
-
|
|
65
48
|
return widget.getWidgetState(uiState, widgetStateOptions);
|
|
66
49
|
}, initialUiState);
|
|
67
50
|
}
|
|
68
|
-
|
|
69
51
|
function getLocalWidgetsSearchParameters(widgets, widgetSearchParametersOptions) {
|
|
70
52
|
var initialSearchParameters = widgetSearchParametersOptions.initialSearchParameters,
|
|
71
|
-
|
|
72
|
-
|
|
53
|
+
rest = _objectWithoutProperties(widgetSearchParametersOptions, ["initialSearchParameters"]);
|
|
73
54
|
return widgets.filter(function (widget) {
|
|
74
55
|
return !isIndexWidget(widget);
|
|
75
56
|
}).reduce(function (state, widget) {
|
|
76
57
|
if (!widget.getWidgetSearchParameters) {
|
|
77
58
|
return state;
|
|
78
59
|
}
|
|
79
|
-
|
|
80
60
|
return widget.getWidgetSearchParameters(state, rest);
|
|
81
61
|
}, initialSearchParameters);
|
|
82
62
|
}
|
|
83
|
-
|
|
84
63
|
function resetPageFromWidgets(widgets) {
|
|
85
64
|
var indexWidgets = widgets.filter(isIndexWidget);
|
|
86
|
-
|
|
87
65
|
if (indexWidgets.length === 0) {
|
|
88
66
|
return;
|
|
89
67
|
}
|
|
90
|
-
|
|
91
68
|
indexWidgets.forEach(function (widget) {
|
|
92
69
|
var widgetHelper = widget.getHelper();
|
|
93
70
|
privateHelperSetState(widgetHelper, {
|
|
@@ -97,7 +74,6 @@ function resetPageFromWidgets(widgets) {
|
|
|
97
74
|
resetPageFromWidgets(widget.getWidgets());
|
|
98
75
|
});
|
|
99
76
|
}
|
|
100
|
-
|
|
101
77
|
function resolveScopedResultsFromWidgets(widgets) {
|
|
102
78
|
var indexWidgets = widgets.filter(isIndexWidget);
|
|
103
79
|
return indexWidgets.reduce(function (scopedResults, current) {
|
|
@@ -108,15 +84,13 @@ function resolveScopedResultsFromWidgets(widgets) {
|
|
|
108
84
|
}].concat(_toConsumableArray(resolveScopedResultsFromWidgets(current.getWidgets()))));
|
|
109
85
|
}, []);
|
|
110
86
|
}
|
|
111
|
-
|
|
112
87
|
var index = function index(widgetParams) {
|
|
113
88
|
if (widgetParams === undefined || widgetParams.indexName === undefined) {
|
|
114
89
|
throw new Error(withUsage('The `indexName` option is required.'));
|
|
115
90
|
}
|
|
116
|
-
|
|
117
91
|
var indexName = widgetParams.indexName,
|
|
118
|
-
|
|
119
|
-
|
|
92
|
+
_widgetParams$indexId = widgetParams.indexId,
|
|
93
|
+
indexId = _widgetParams$indexId === void 0 ? indexName : _widgetParams$indexId;
|
|
120
94
|
var localWidgets = [];
|
|
121
95
|
var localUiState = {};
|
|
122
96
|
var localInstantSearchInstance = null;
|
|
@@ -139,8 +113,9 @@ var index = function index(widgetParams) {
|
|
|
139
113
|
return derivedHelper && derivedHelper.lastResults;
|
|
140
114
|
},
|
|
141
115
|
getScopedResults: function getScopedResults() {
|
|
142
|
-
var widgetParent = this.getParent();
|
|
116
|
+
var widgetParent = this.getParent();
|
|
143
117
|
|
|
118
|
+
// If the widget is the root, we consider itself as the only sibling.
|
|
144
119
|
var widgetSiblings = widgetParent ? widgetParent.getWidgets() : [this];
|
|
145
120
|
return resolveScopedResultsFromWidgets(widgetSiblings);
|
|
146
121
|
},
|
|
@@ -158,19 +133,15 @@ var index = function index(widgetParams) {
|
|
|
158
133
|
},
|
|
159
134
|
addWidgets: function addWidgets(widgets) {
|
|
160
135
|
var _this = this;
|
|
161
|
-
|
|
162
136
|
if (!Array.isArray(widgets)) {
|
|
163
137
|
throw new Error(withUsage('The `addWidgets` method expects an array of widgets.'));
|
|
164
138
|
}
|
|
165
|
-
|
|
166
139
|
if (widgets.some(function (widget) {
|
|
167
140
|
return typeof widget.init !== 'function' && typeof widget.render !== 'function';
|
|
168
141
|
})) {
|
|
169
142
|
throw new Error(withUsage('The widget definition expects a `render` and/or an `init` method.'));
|
|
170
143
|
}
|
|
171
|
-
|
|
172
144
|
localWidgets = localWidgets.concat(widgets);
|
|
173
|
-
|
|
174
145
|
if (localInstantSearchInstance && Boolean(widgets.length)) {
|
|
175
146
|
privateHelperSetState(helper, {
|
|
176
147
|
state: getLocalWidgetsSearchParameters(localWidgets, {
|
|
@@ -178,10 +149,11 @@ var index = function index(widgetParams) {
|
|
|
178
149
|
initialSearchParameters: helper.state
|
|
179
150
|
}),
|
|
180
151
|
_uiState: localUiState
|
|
181
|
-
});
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
// We compute the render state before calling `init` in a separate loop
|
|
182
155
|
// to construct the whole render state object that is then passed to
|
|
183
156
|
// `init`.
|
|
184
|
-
|
|
185
157
|
widgets.forEach(function (widget) {
|
|
186
158
|
if (widget.getRenderState) {
|
|
187
159
|
var renderState = widget.getRenderState(localInstantSearchInstance.renderState[_this.getIndexId()] || {}, createInitArgs(localInstantSearchInstance, _this, localInstantSearchInstance._initialUiState));
|
|
@@ -199,26 +171,21 @@ var index = function index(widgetParams) {
|
|
|
199
171
|
});
|
|
200
172
|
localInstantSearchInstance.scheduleSearch();
|
|
201
173
|
}
|
|
202
|
-
|
|
203
174
|
return this;
|
|
204
175
|
},
|
|
205
176
|
removeWidgets: function removeWidgets(widgets) {
|
|
206
177
|
var _this2 = this;
|
|
207
|
-
|
|
208
178
|
if (!Array.isArray(widgets)) {
|
|
209
179
|
throw new Error(withUsage('The `removeWidgets` method expects an array of widgets.'));
|
|
210
180
|
}
|
|
211
|
-
|
|
212
181
|
if (widgets.some(function (widget) {
|
|
213
182
|
return typeof widget.dispose !== 'function';
|
|
214
183
|
})) {
|
|
215
184
|
throw new Error(withUsage('The widget definition expects a `dispose` method.'));
|
|
216
185
|
}
|
|
217
|
-
|
|
218
186
|
localWidgets = localWidgets.filter(function (widget) {
|
|
219
187
|
return widgets.indexOf(widget) === -1;
|
|
220
188
|
});
|
|
221
|
-
|
|
222
189
|
if (localInstantSearchInstance && Boolean(widgets.length)) {
|
|
223
190
|
var nextState = widgets.reduce(function (state, widget) {
|
|
224
191
|
// the `dispose` method exists at this point we already assert it
|
|
@@ -237,48 +204,46 @@ var index = function index(widgetParams) {
|
|
|
237
204
|
uiState: localUiState,
|
|
238
205
|
initialSearchParameters: nextState
|
|
239
206
|
}));
|
|
240
|
-
|
|
241
207
|
if (localWidgets.length) {
|
|
242
208
|
localInstantSearchInstance.scheduleSearch();
|
|
243
209
|
}
|
|
244
210
|
}
|
|
245
|
-
|
|
246
211
|
return this;
|
|
247
212
|
},
|
|
248
213
|
init: function init(_ref2) {
|
|
249
214
|
var _this3 = this,
|
|
250
|
-
|
|
251
|
-
|
|
215
|
+
_instantSearchInstanc;
|
|
252
216
|
var instantSearchInstance = _ref2.instantSearchInstance,
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
217
|
+
parent = _ref2.parent,
|
|
218
|
+
uiState = _ref2.uiState;
|
|
256
219
|
if (helper !== null) {
|
|
257
220
|
// helper is already initialized, therefore we do not need to set up
|
|
258
221
|
// any listeners
|
|
259
222
|
return;
|
|
260
223
|
}
|
|
261
|
-
|
|
262
224
|
localInstantSearchInstance = instantSearchInstance;
|
|
263
225
|
localParent = parent;
|
|
264
|
-
localUiState = uiState[indexId] || {};
|
|
226
|
+
localUiState = uiState[indexId] || {};
|
|
227
|
+
|
|
228
|
+
// The `mainHelper` is already defined at this point. The instance is created
|
|
265
229
|
// inside InstantSearch at the `start` method, which occurs before the `init`
|
|
266
230
|
// step.
|
|
267
|
-
|
|
268
231
|
var mainHelper = instantSearchInstance.mainHelper;
|
|
269
232
|
var parameters = getLocalWidgetsSearchParameters(localWidgets, {
|
|
270
233
|
uiState: localUiState,
|
|
271
234
|
initialSearchParameters: new algoliasearchHelper.SearchParameters({
|
|
272
235
|
index: indexName
|
|
273
236
|
})
|
|
274
|
-
});
|
|
237
|
+
});
|
|
238
|
+
|
|
239
|
+
// This Helper is only used for state management we do not care about the
|
|
275
240
|
// `searchClient`. Only the "main" Helper created at the `InstantSearch`
|
|
276
241
|
// level is aware of the client.
|
|
242
|
+
helper = algoliasearchHelper({}, parameters.index, parameters);
|
|
277
243
|
|
|
278
|
-
|
|
244
|
+
// We forward the call to `search` to the "main" instance of the Helper
|
|
279
245
|
// which is responsible for managing the queries (it's the only one that is
|
|
280
246
|
// aware of the `searchClient`).
|
|
281
|
-
|
|
282
247
|
helper.search = function () {
|
|
283
248
|
if (instantSearchInstance.onStateChange) {
|
|
284
249
|
instantSearchInstance.onStateChange({
|
|
@@ -286,45 +251,41 @@ var index = function index(widgetParams) {
|
|
|
286
251
|
setUiState: function setUiState(nextState) {
|
|
287
252
|
return instantSearchInstance.setUiState(nextState, false);
|
|
288
253
|
}
|
|
289
|
-
});
|
|
290
|
-
// responsibility of `setUiState`.
|
|
254
|
+
});
|
|
291
255
|
|
|
256
|
+
// We don't trigger a search when controlled because it becomes the
|
|
257
|
+
// responsibility of `setUiState`.
|
|
292
258
|
return mainHelper;
|
|
293
259
|
}
|
|
294
|
-
|
|
295
260
|
return mainHelper.search();
|
|
296
261
|
};
|
|
297
|
-
|
|
298
262
|
helper.searchWithoutTriggeringOnStateChange = function () {
|
|
299
263
|
return mainHelper.search();
|
|
300
|
-
};
|
|
301
|
-
|
|
264
|
+
};
|
|
302
265
|
|
|
266
|
+
// We use the same pattern for the `searchForFacetValues`.
|
|
303
267
|
helper.searchForFacetValues = function (facetName, facetValue, maxFacetHits, userState) {
|
|
304
268
|
var state = helper.state.setQueryParameters(userState);
|
|
305
269
|
return mainHelper.searchForFacetValues(facetName, facetValue, maxFacetHits, state);
|
|
306
270
|
};
|
|
307
|
-
|
|
308
271
|
derivedHelper = mainHelper.derive(function () {
|
|
309
272
|
return mergeSearchParameters.apply(void 0, _toConsumableArray(resolveSearchParameters(_this3)));
|
|
310
273
|
});
|
|
311
274
|
var indexInitialResults = (_instantSearchInstanc = instantSearchInstance._initialResults) === null || _instantSearchInstanc === void 0 ? void 0 : _instantSearchInstanc[this.getIndexId()];
|
|
312
|
-
|
|
313
275
|
if (indexInitialResults) {
|
|
314
276
|
// We restore the shape of the results provided to the instance to respect
|
|
315
277
|
// the helper's structure.
|
|
316
278
|
var results = new algoliasearchHelper.SearchResults(new algoliasearchHelper.SearchParameters(indexInitialResults.state), indexInitialResults.results);
|
|
317
279
|
derivedHelper.lastResults = results;
|
|
318
280
|
helper.lastResults = results;
|
|
319
|
-
}
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
// Subscribe to the Helper state changes for the page before widgets
|
|
320
284
|
// are initialized. This behavior mimics the original one of the Helper.
|
|
321
285
|
// It makes sense to replicate it at the `init` step. We have another
|
|
322
286
|
// listener on `change` below, once `init` is done.
|
|
323
|
-
|
|
324
|
-
|
|
325
287
|
helper.on('change', function (_ref3) {
|
|
326
288
|
var isPageReset = _ref3.isPageReset;
|
|
327
|
-
|
|
328
289
|
if (isPageReset) {
|
|
329
290
|
resetPageFromWidgets(localWidgets);
|
|
330
291
|
}
|
|
@@ -335,7 +296,6 @@ var index = function index(widgetParams) {
|
|
|
335
296
|
// it at the index level because it's either: all of them or none of them
|
|
336
297
|
// that are stalled. The queries are performed into a single network request.
|
|
337
298
|
instantSearchInstance.scheduleStalledRender();
|
|
338
|
-
|
|
339
299
|
if (process.env.NODE_ENV === 'development') {
|
|
340
300
|
checkIndexUiState({
|
|
341
301
|
index: _this3,
|
|
@@ -348,16 +308,18 @@ var index = function index(widgetParams) {
|
|
|
348
308
|
// The index does not render the results it schedules a new render
|
|
349
309
|
// to let all the other indices emit their own results. It allows us to
|
|
350
310
|
// run the render process in one pass.
|
|
351
|
-
instantSearchInstance.scheduleRender();
|
|
311
|
+
instantSearchInstance.scheduleRender();
|
|
312
|
+
|
|
313
|
+
// the derived helper is the one which actually searches, but the helper
|
|
352
314
|
// which is exposed e.g. via instance.helper, doesn't search, and thus
|
|
353
315
|
// does not have access to lastResults, which it used to in pre-federated
|
|
354
316
|
// search behavior.
|
|
355
|
-
|
|
356
317
|
helper.lastResults = results;
|
|
357
|
-
});
|
|
318
|
+
});
|
|
319
|
+
|
|
320
|
+
// We compute the render state before calling `init` in a separate loop
|
|
358
321
|
// to construct the whole render state object that is then passed to
|
|
359
322
|
// `init`.
|
|
360
|
-
|
|
361
323
|
localWidgets.forEach(function (widget) {
|
|
362
324
|
if (widget.getRenderState) {
|
|
363
325
|
var renderState = widget.getRenderState(instantSearchInstance.renderState[_this3.getIndexId()] || {}, createInitArgs(instantSearchInstance, _this3, uiState));
|
|
@@ -369,34 +331,35 @@ var index = function index(widgetParams) {
|
|
|
369
331
|
}
|
|
370
332
|
});
|
|
371
333
|
localWidgets.forEach(function (widget) {
|
|
372
|
-
process.env.NODE_ENV === 'development' ? warning(
|
|
334
|
+
process.env.NODE_ENV === 'development' ? warning(
|
|
335
|
+
// if it has NO getWidgetState or if it has getWidgetUiState, we don't warn
|
|
373
336
|
// aka we warn if there's _only_ getWidgetState
|
|
374
337
|
!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;
|
|
375
|
-
|
|
376
338
|
if (widget.init) {
|
|
377
339
|
widget.init(createInitArgs(instantSearchInstance, _this3, uiState));
|
|
378
340
|
}
|
|
379
|
-
});
|
|
341
|
+
});
|
|
342
|
+
|
|
343
|
+
// Subscribe to the Helper state changes for the `uiState` once widgets
|
|
380
344
|
// are initialized. Until the first render, state changes are part of the
|
|
381
345
|
// configuration step. This is mainly for backward compatibility with custom
|
|
382
346
|
// widgets. When the subscription happens before the `init` step, the (static)
|
|
383
347
|
// configuration of the widget is pushed in the URL. That's what we want to avoid.
|
|
384
348
|
// https://github.com/algolia/instantsearch.js/pull/994/commits/4a672ae3fd78809e213de0368549ef12e9dc9454
|
|
385
|
-
|
|
386
349
|
helper.on('change', function (event) {
|
|
387
350
|
var state = event.state;
|
|
388
351
|
var _uiState = event._uiState;
|
|
389
352
|
localUiState = getLocalWidgetsUiState(localWidgets, {
|
|
390
353
|
searchParameters: state,
|
|
391
354
|
helper: helper
|
|
392
|
-
}, _uiState || {});
|
|
393
|
-
// becomes the responsibility of `setUiState`.
|
|
355
|
+
}, _uiState || {});
|
|
394
356
|
|
|
357
|
+
// We don't trigger an internal change when controlled because it
|
|
358
|
+
// becomes the responsibility of `setUiState`.
|
|
395
359
|
if (!instantSearchInstance.onStateChange) {
|
|
396
360
|
instantSearchInstance.onInternalStateChange();
|
|
397
361
|
}
|
|
398
362
|
});
|
|
399
|
-
|
|
400
363
|
if (indexInitialResults) {
|
|
401
364
|
// If there are initial results, we're not notified of the next results
|
|
402
365
|
// because we don't trigger an initial search. We therefore need to directly
|
|
@@ -406,13 +369,10 @@ var index = function index(widgetParams) {
|
|
|
406
369
|
},
|
|
407
370
|
render: function render(_ref5) {
|
|
408
371
|
var _this4 = this;
|
|
409
|
-
|
|
410
372
|
var instantSearchInstance = _ref5.instantSearchInstance;
|
|
411
|
-
|
|
412
373
|
if (!this.getResults()) {
|
|
413
374
|
return;
|
|
414
375
|
}
|
|
415
|
-
|
|
416
376
|
localWidgets.forEach(function (widget) {
|
|
417
377
|
if (widget.getRenderState) {
|
|
418
378
|
var renderState = widget.getRenderState(instantSearchInstance.renderState[_this4.getIndexId()] || {}, createRenderArgs(instantSearchInstance, _this4));
|
|
@@ -430,6 +390,7 @@ var index = function index(widgetParams) {
|
|
|
430
390
|
// happens before the result e.g with a dynamically added index the request might
|
|
431
391
|
// be delayed. The render is triggered for the complete tree but some parts do
|
|
432
392
|
// not have results yet.
|
|
393
|
+
|
|
433
394
|
if (widget.render) {
|
|
434
395
|
widget.render(createRenderArgs(instantSearchInstance, _this4));
|
|
435
396
|
}
|
|
@@ -437,7 +398,6 @@ var index = function index(widgetParams) {
|
|
|
437
398
|
},
|
|
438
399
|
dispose: function dispose() {
|
|
439
400
|
var _this5 = this;
|
|
440
|
-
|
|
441
401
|
localWidgets.forEach(function (widget) {
|
|
442
402
|
if (widget.dispose) {
|
|
443
403
|
// The dispose function is always called once the instance is started
|
|
@@ -484,13 +444,11 @@ var index = function index(widgetParams) {
|
|
|
484
444
|
}
|
|
485
445
|
};
|
|
486
446
|
};
|
|
487
|
-
|
|
488
447
|
export default index;
|
|
489
|
-
|
|
490
448
|
function storeRenderState(_ref7) {
|
|
491
449
|
var renderState = _ref7.renderState,
|
|
492
|
-
|
|
493
|
-
|
|
450
|
+
instantSearchInstance = _ref7.instantSearchInstance,
|
|
451
|
+
parent = _ref7.parent;
|
|
494
452
|
var parentIndexName = parent ? parent.getIndexId() : instantSearchInstance.mainIndex.getIndexId();
|
|
495
453
|
instantSearchInstance.renderState = _objectSpread(_objectSpread({}, instantSearchInstance.renderState), {}, _defineProperty({}, parentIndexName, _objectSpread(_objectSpread({}, instantSearchInstance.renderState[parentIndexName]), renderState)));
|
|
496
454
|
}
|
package/es/widgets/index.d.ts
CHANGED
|
@@ -3,7 +3,8 @@ export { default as breadcrumb } from './breadcrumb/breadcrumb';
|
|
|
3
3
|
export { default as clearRefinements } from './clear-refinements/clear-refinements';
|
|
4
4
|
export { default as configure } from './configure/configure';
|
|
5
5
|
export { default as currentRefinements } from './current-refinements/current-refinements';
|
|
6
|
-
|
|
6
|
+
/** @deprecated answers is no longer supported */
|
|
7
|
+
export declare const EXPERIMENTAL_answers: import("./answers/answers").AnswersWidget;
|
|
7
8
|
export { default as EXPERIMENTAL_configureRelatedItems } from './configure-related-items/configure-related-items';
|
|
8
9
|
import dynamicWidgets from './dynamic-widgets/dynamic-widgets';
|
|
9
10
|
export { dynamicWidgets };
|
package/es/widgets/index.js
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
|
+
import { deprecate } from "../lib/utils/index.js";
|
|
1
2
|
export { default as analytics } from "./analytics/analytics.js";
|
|
2
3
|
export { default as breadcrumb } from "./breadcrumb/breadcrumb.js";
|
|
3
4
|
export { default as clearRefinements } from "./clear-refinements/clear-refinements.js";
|
|
4
5
|
export { default as configure } from "./configure/configure.js";
|
|
5
6
|
export { default as currentRefinements } from "./current-refinements/current-refinements.js";
|
|
6
|
-
|
|
7
|
+
import answers from "./answers/answers.js";
|
|
8
|
+
/** @deprecated answers is no longer supported */
|
|
9
|
+
export var EXPERIMENTAL_answers = deprecate(answers, 'answers is no longer supported');
|
|
7
10
|
export { default as EXPERIMENTAL_configureRelatedItems } from "./configure-related-items/configure-related-items.js";
|
|
8
11
|
import dynamicWidgets from "./dynamic-widgets/dynamic-widgets.js";
|
|
9
12
|
export { dynamicWidgets };
|
|
10
|
-
import { deprecate } from "../lib/utils/index.js";
|
|
11
13
|
/** @deprecated use dynamicWidgets */
|
|
12
|
-
|
|
13
14
|
export var EXPERIMENTAL_dynamicWidgets = deprecate(dynamicWidgets, 'use dynamicWidgets');
|
|
14
15
|
export { default as geoSearch } from "./geo-search/geo-search.js";
|
|
15
16
|
export { default as hierarchicalMenu } from "./hierarchical-menu/hierarchical-menu.js";
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
2
|
-
|
|
3
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
4
|
-
|
|
1
|
+
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; }
|
|
2
|
+
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; }
|
|
5
3
|
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; }
|
|
6
4
|
|
|
7
5
|
import { h, render } from 'preact';
|
|
@@ -18,24 +16,22 @@ var withUsage = createDocumentationMessageGenerator({
|
|
|
18
16
|
});
|
|
19
17
|
var suit = component('InfiniteHits');
|
|
20
18
|
var InfiniteHitsWithInsightsListener = withInsightsListener(InfiniteHits);
|
|
21
|
-
|
|
22
19
|
var renderer = function renderer(_ref) {
|
|
23
20
|
var containerNode = _ref.containerNode,
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
21
|
+
cssClasses = _ref.cssClasses,
|
|
22
|
+
renderState = _ref.renderState,
|
|
23
|
+
templates = _ref.templates,
|
|
24
|
+
hasShowPrevious = _ref.showPrevious;
|
|
28
25
|
return function (_ref2, isFirstRendering) {
|
|
29
26
|
var hits = _ref2.hits,
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
27
|
+
results = _ref2.results,
|
|
28
|
+
showMore = _ref2.showMore,
|
|
29
|
+
showPrevious = _ref2.showPrevious,
|
|
30
|
+
isFirstPage = _ref2.isFirstPage,
|
|
31
|
+
isLastPage = _ref2.isLastPage,
|
|
32
|
+
instantSearchInstance = _ref2.instantSearchInstance,
|
|
33
|
+
insights = _ref2.insights,
|
|
34
|
+
bindEvent = _ref2.bindEvent;
|
|
39
35
|
if (isFirstRendering) {
|
|
40
36
|
renderState.templateProps = prepareTemplateProps({
|
|
41
37
|
defaultTemplates: defaultTemplates,
|
|
@@ -44,7 +40,6 @@ var renderer = function renderer(_ref) {
|
|
|
44
40
|
});
|
|
45
41
|
return;
|
|
46
42
|
}
|
|
47
|
-
|
|
48
43
|
render(h(InfiniteHitsWithInsightsListener, {
|
|
49
44
|
cssClasses: cssClasses,
|
|
50
45
|
hits: hits,
|
|
@@ -63,23 +58,20 @@ var renderer = function renderer(_ref) {
|
|
|
63
58
|
}), containerNode);
|
|
64
59
|
};
|
|
65
60
|
};
|
|
66
|
-
|
|
67
61
|
var infiniteHits = function infiniteHits(widgetParams) {
|
|
68
62
|
var _ref3 = widgetParams || {},
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
63
|
+
container = _ref3.container,
|
|
64
|
+
escapeHTML = _ref3.escapeHTML,
|
|
65
|
+
transformItems = _ref3.transformItems,
|
|
66
|
+
_ref3$templates = _ref3.templates,
|
|
67
|
+
templates = _ref3$templates === void 0 ? {} : _ref3$templates,
|
|
68
|
+
_ref3$cssClasses = _ref3.cssClasses,
|
|
69
|
+
userCssClasses = _ref3$cssClasses === void 0 ? {} : _ref3$cssClasses,
|
|
70
|
+
showPrevious = _ref3.showPrevious,
|
|
71
|
+
cache = _ref3.cache;
|
|
79
72
|
if (!container) {
|
|
80
73
|
throw new Error(withUsage('The `container` option is required.'));
|
|
81
74
|
}
|
|
82
|
-
|
|
83
75
|
var containerNode = getContainerNode(container);
|
|
84
76
|
var cssClasses = {
|
|
85
77
|
root: cx(suit(), userCssClasses.root),
|
|
@@ -126,5 +118,4 @@ var infiniteHits = function infiniteHits(widgetParams) {
|
|
|
126
118
|
$$widgetType: 'ais.infiniteHits'
|
|
127
119
|
});
|
|
128
120
|
};
|
|
129
|
-
|
|
130
121
|
export default infiniteHits;
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
|
|
1
2
|
import { h } from 'preact';
|
|
2
3
|
import { formatNumber } from "../../lib/formatNumber.js";
|
|
3
4
|
import { cx } from '@algolia/ui-components-shared';
|
|
4
5
|
var defaultTemplates = {
|
|
5
6
|
item: function item(_ref) {
|
|
6
7
|
var cssClasses = _ref.cssClasses,
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
url = _ref.url,
|
|
9
|
+
label = _ref.label,
|
|
10
|
+
count = _ref.count;
|
|
10
11
|
return h("a", {
|
|
11
12
|
className: cx(cssClasses.link),
|
|
12
13
|
href: url
|
package/es/widgets/menu/menu.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
2
|
-
|
|
3
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
4
|
-
|
|
1
|
+
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; }
|
|
2
|
+
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; }
|
|
5
3
|
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; }
|
|
6
4
|
|
|
7
5
|
import { h, render } from 'preact';
|
|
@@ -16,22 +14,20 @@ var withUsage = createDocumentationMessageGenerator({
|
|
|
16
14
|
name: 'menu'
|
|
17
15
|
});
|
|
18
16
|
var suit = component('Menu');
|
|
19
|
-
|
|
20
17
|
var renderer = function renderer(_ref) {
|
|
21
18
|
var containerNode = _ref.containerNode,
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
19
|
+
cssClasses = _ref.cssClasses,
|
|
20
|
+
renderState = _ref.renderState,
|
|
21
|
+
templates = _ref.templates,
|
|
22
|
+
showMore = _ref.showMore;
|
|
26
23
|
return function (_ref2, isFirstRendering) {
|
|
27
24
|
var refine = _ref2.refine,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
25
|
+
items = _ref2.items,
|
|
26
|
+
createURL = _ref2.createURL,
|
|
27
|
+
instantSearchInstance = _ref2.instantSearchInstance,
|
|
28
|
+
isShowingMore = _ref2.isShowingMore,
|
|
29
|
+
toggleShowMore = _ref2.toggleShowMore,
|
|
30
|
+
canToggleShowMore = _ref2.canToggleShowMore;
|
|
35
31
|
if (isFirstRendering) {
|
|
36
32
|
renderState.templateProps = prepareTemplateProps({
|
|
37
33
|
defaultTemplates: defaultTemplates,
|
|
@@ -40,7 +36,6 @@ var renderer = function renderer(_ref) {
|
|
|
40
36
|
});
|
|
41
37
|
return;
|
|
42
38
|
}
|
|
43
|
-
|
|
44
39
|
var facetValues = items.map(function (facetValue) {
|
|
45
40
|
return _objectSpread(_objectSpread({}, facetValue), {}, {
|
|
46
41
|
url: createURL(facetValue.value)
|
|
@@ -59,25 +54,22 @@ var renderer = function renderer(_ref) {
|
|
|
59
54
|
}), containerNode);
|
|
60
55
|
};
|
|
61
56
|
};
|
|
62
|
-
|
|
63
57
|
var menu = function menu(widgetParams) {
|
|
64
58
|
var _ref3 = widgetParams || {},
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
59
|
+
container = _ref3.container,
|
|
60
|
+
attribute = _ref3.attribute,
|
|
61
|
+
sortBy = _ref3.sortBy,
|
|
62
|
+
limit = _ref3.limit,
|
|
63
|
+
showMore = _ref3.showMore,
|
|
64
|
+
showMoreLimit = _ref3.showMoreLimit,
|
|
65
|
+
_ref3$cssClasses = _ref3.cssClasses,
|
|
66
|
+
userCssClasses = _ref3$cssClasses === void 0 ? {} : _ref3$cssClasses,
|
|
67
|
+
_ref3$templates = _ref3.templates,
|
|
68
|
+
templates = _ref3$templates === void 0 ? {} : _ref3$templates,
|
|
69
|
+
transformItems = _ref3.transformItems;
|
|
77
70
|
if (!container) {
|
|
78
71
|
throw new Error(withUsage('The `container` option is required.'));
|
|
79
72
|
}
|
|
80
|
-
|
|
81
73
|
var containerNode = getContainerNode(container);
|
|
82
74
|
var cssClasses = {
|
|
83
75
|
root: cx(suit(), userCssClasses.root),
|
|
@@ -132,5 +124,4 @@ var menu = function menu(widgetParams) {
|
|
|
132
124
|
$$widgetType: 'ais.menu'
|
|
133
125
|
});
|
|
134
126
|
};
|
|
135
|
-
|
|
136
127
|
export default menu;
|