instantsearch.js 4.49.1 → 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 +4 -15
- 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 +1722 -3088
- 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 +2 -10
- 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 -3693
|
@@ -1,39 +1,25 @@
|
|
|
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 { escapeHits, TAG_PLACEHOLDER, checkRendering, createDocumentationMessageGenerator, isEqual, addAbsolutePosition, addQueryID, noop, createSendEventForHits, createBindEventForHits } from "../../lib/utils/index.js";
|
|
24
13
|
var withUsage = createDocumentationMessageGenerator({
|
|
25
14
|
name: 'infinite-hits',
|
|
26
15
|
connector: true
|
|
27
16
|
});
|
|
28
|
-
|
|
29
17
|
function getStateWithoutPage(state) {
|
|
30
18
|
var _ref = state || {},
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
19
|
+
page = _ref.page,
|
|
20
|
+
rest = _objectWithoutProperties(_ref, ["page"]);
|
|
34
21
|
return rest;
|
|
35
22
|
}
|
|
36
|
-
|
|
37
23
|
function getInMemoryCache() {
|
|
38
24
|
var cachedHits = null;
|
|
39
25
|
var cachedState = null;
|
|
@@ -44,13 +30,12 @@ function getInMemoryCache() {
|
|
|
44
30
|
},
|
|
45
31
|
write: function write(_ref3) {
|
|
46
32
|
var state = _ref3.state,
|
|
47
|
-
|
|
33
|
+
hits = _ref3.hits;
|
|
48
34
|
cachedState = getStateWithoutPage(state);
|
|
49
35
|
cachedHits = hits;
|
|
50
36
|
}
|
|
51
37
|
};
|
|
52
38
|
}
|
|
53
|
-
|
|
54
39
|
function extractHitsFromCachedHits(cachedHits) {
|
|
55
40
|
return Object.keys(cachedHits).map(Number).sort(function (a, b) {
|
|
56
41
|
return a - b;
|
|
@@ -58,51 +43,46 @@ function extractHitsFromCachedHits(cachedHits) {
|
|
|
58
43
|
return acc.concat(cachedHits[page]);
|
|
59
44
|
}, []);
|
|
60
45
|
}
|
|
61
|
-
|
|
62
46
|
var connectInfiniteHits = function connectInfiniteHits(renderFn) {
|
|
63
47
|
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
|
|
64
|
-
checkRendering(renderFn, withUsage());
|
|
48
|
+
checkRendering(renderFn, withUsage());
|
|
49
|
+
|
|
50
|
+
// @TODO: this should be a generic, but a Connector can not yet be generic itself
|
|
65
51
|
|
|
66
52
|
return function (widgetParams) {
|
|
67
53
|
var _ref4 = widgetParams || {},
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
54
|
+
_ref4$escapeHTML = _ref4.escapeHTML,
|
|
55
|
+
escapeHTML = _ref4$escapeHTML === void 0 ? true : _ref4$escapeHTML,
|
|
56
|
+
_ref4$transformItems = _ref4.transformItems,
|
|
57
|
+
transformItems = _ref4$transformItems === void 0 ? function (items) {
|
|
58
|
+
return items;
|
|
59
|
+
} : _ref4$transformItems,
|
|
60
|
+
_ref4$cache = _ref4.cache,
|
|
61
|
+
cache = _ref4$cache === void 0 ? getInMemoryCache() : _ref4$cache;
|
|
77
62
|
var showPrevious;
|
|
78
63
|
var showMore;
|
|
79
64
|
var sendEvent;
|
|
80
65
|
var bindEvent;
|
|
81
|
-
|
|
82
66
|
var getFirstReceivedPage = function getFirstReceivedPage(state, cachedHits) {
|
|
83
67
|
var _state$page = state.page,
|
|
84
|
-
|
|
68
|
+
page = _state$page === void 0 ? 0 : _state$page;
|
|
85
69
|
var pages = Object.keys(cachedHits).map(Number);
|
|
86
|
-
|
|
87
70
|
if (pages.length === 0) {
|
|
88
71
|
return page;
|
|
89
72
|
} else {
|
|
90
73
|
return Math.min.apply(Math, [page].concat(_toConsumableArray(pages)));
|
|
91
74
|
}
|
|
92
75
|
};
|
|
93
|
-
|
|
94
76
|
var getLastReceivedPage = function getLastReceivedPage(state, cachedHits) {
|
|
95
77
|
var _state$page2 = state.page,
|
|
96
|
-
|
|
78
|
+
page = _state$page2 === void 0 ? 0 : _state$page2;
|
|
97
79
|
var pages = Object.keys(cachedHits).map(Number);
|
|
98
|
-
|
|
99
80
|
if (pages.length === 0) {
|
|
100
81
|
return page;
|
|
101
82
|
} else {
|
|
102
83
|
return Math.max.apply(Math, [page].concat(_toConsumableArray(pages)));
|
|
103
84
|
}
|
|
104
85
|
};
|
|
105
|
-
|
|
106
86
|
var getShowPrevious = function getShowPrevious(helper) {
|
|
107
87
|
return function () {
|
|
108
88
|
// Using the helper's `overrideStateWithoutTriggeringChangeEvent` method
|
|
@@ -114,7 +94,6 @@ var connectInfiniteHits = function connectInfiniteHits(renderFn) {
|
|
|
114
94
|
})).searchWithoutTriggeringOnStateChange();
|
|
115
95
|
};
|
|
116
96
|
};
|
|
117
|
-
|
|
118
97
|
var getShowMore = function getShowMore(helper) {
|
|
119
98
|
return function () {
|
|
120
99
|
helper.setPage(getLastReceivedPage(helper.state, cache.read({
|
|
@@ -122,7 +101,6 @@ var connectInfiniteHits = function connectInfiniteHits(renderFn) {
|
|
|
122
101
|
}) || {}) + 1).search();
|
|
123
102
|
};
|
|
124
103
|
};
|
|
125
|
-
|
|
126
104
|
return {
|
|
127
105
|
$$type: 'ais.infiniteHits',
|
|
128
106
|
init: function init(initOptions) {
|
|
@@ -145,15 +123,14 @@ var connectInfiniteHits = function connectInfiniteHits(renderFn) {
|
|
|
145
123
|
},
|
|
146
124
|
getWidgetRenderState: function getWidgetRenderState(_ref5) {
|
|
147
125
|
var results = _ref5.results,
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
126
|
+
helper = _ref5.helper,
|
|
127
|
+
state = _ref5.state,
|
|
128
|
+
instantSearchInstance = _ref5.instantSearchInstance;
|
|
151
129
|
var isFirstPage;
|
|
152
130
|
var currentPageHits = [];
|
|
153
131
|
var cachedHits = cache.read({
|
|
154
132
|
state: state
|
|
155
133
|
}) || {};
|
|
156
|
-
|
|
157
134
|
if (!results) {
|
|
158
135
|
showPrevious = getShowPrevious(helper);
|
|
159
136
|
showMore = getShowMore(helper);
|
|
@@ -169,18 +146,15 @@ var connectInfiniteHits = function connectInfiniteHits(renderFn) {
|
|
|
169
146
|
isFirstPage = state.page === undefined || getFirstReceivedPage(state, cachedHits) === 0;
|
|
170
147
|
} else {
|
|
171
148
|
var _state$page3 = state.page,
|
|
172
|
-
|
|
173
|
-
|
|
149
|
+
_page = _state$page3 === void 0 ? 0 : _state$page3;
|
|
174
150
|
if (escapeHTML && results.hits.length > 0) {
|
|
175
151
|
results.hits = escapeHits(results.hits);
|
|
176
152
|
}
|
|
177
|
-
|
|
178
153
|
var hitsWithAbsolutePosition = addAbsolutePosition(results.hits, results.page, results.hitsPerPage);
|
|
179
154
|
var hitsWithAbsolutePositionAndQueryID = addQueryID(hitsWithAbsolutePosition, results.queryID);
|
|
180
155
|
var transformedHits = transformItems(hitsWithAbsolutePositionAndQueryID, {
|
|
181
156
|
results: results
|
|
182
157
|
});
|
|
183
|
-
|
|
184
158
|
if (cachedHits[_page] === undefined && !results.__isArtificial) {
|
|
185
159
|
cachedHits[_page] = transformedHits;
|
|
186
160
|
cache.write({
|
|
@@ -188,11 +162,9 @@ var connectInfiniteHits = function connectInfiniteHits(renderFn) {
|
|
|
188
162
|
hits: cachedHits
|
|
189
163
|
});
|
|
190
164
|
}
|
|
191
|
-
|
|
192
165
|
currentPageHits = transformedHits;
|
|
193
166
|
isFirstPage = getFirstReceivedPage(state, cachedHits) === 0;
|
|
194
167
|
}
|
|
195
|
-
|
|
196
168
|
var hits = extractHitsFromCachedHits(cachedHits);
|
|
197
169
|
var isLastPage = results ? results.nbPages <= getLastReceivedPage(state, cachedHits) + 1 : true;
|
|
198
170
|
return {
|
|
@@ -212,11 +184,9 @@ var connectInfiniteHits = function connectInfiniteHits(renderFn) {
|
|
|
212
184
|
var state = _ref6.state;
|
|
213
185
|
unmountFn();
|
|
214
186
|
var stateWithoutPage = state.setQueryParameter('page', undefined);
|
|
215
|
-
|
|
216
187
|
if (!escapeHTML) {
|
|
217
188
|
return stateWithoutPage;
|
|
218
189
|
}
|
|
219
|
-
|
|
220
190
|
return stateWithoutPage.setQueryParameters(Object.keys(TAG_PLACEHOLDER).reduce(function (acc, key) {
|
|
221
191
|
return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, undefined));
|
|
222
192
|
}, {}));
|
|
@@ -224,13 +194,11 @@ var connectInfiniteHits = function connectInfiniteHits(renderFn) {
|
|
|
224
194
|
getWidgetUiState: function getWidgetUiState(uiState, _ref7) {
|
|
225
195
|
var searchParameters = _ref7.searchParameters;
|
|
226
196
|
var page = searchParameters.page || 0;
|
|
227
|
-
|
|
228
197
|
if (!page) {
|
|
229
198
|
// return without adding `page` to uiState
|
|
230
199
|
// because we don't want `page=1` in the URL
|
|
231
200
|
return uiState;
|
|
232
201
|
}
|
|
233
|
-
|
|
234
202
|
return _objectSpread(_objectSpread({}, uiState), {}, {
|
|
235
203
|
// The page in the UI state is incremented by one
|
|
236
204
|
// to expose the user value (not `0`).
|
|
@@ -240,18 +208,16 @@ var connectInfiniteHits = function connectInfiniteHits(renderFn) {
|
|
|
240
208
|
getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref8) {
|
|
241
209
|
var uiState = _ref8.uiState;
|
|
242
210
|
var widgetSearchParameters = searchParameters;
|
|
243
|
-
|
|
244
211
|
if (escapeHTML) {
|
|
245
212
|
widgetSearchParameters = searchParameters.setQueryParameters(TAG_PLACEHOLDER);
|
|
246
|
-
}
|
|
247
|
-
// to get to the actual parameter value from the UI state.
|
|
248
|
-
|
|
213
|
+
}
|
|
249
214
|
|
|
215
|
+
// The page in the search parameters is decremented by one
|
|
216
|
+
// to get to the actual parameter value from the UI state.
|
|
250
217
|
var page = uiState.page ? uiState.page - 1 : 0;
|
|
251
218
|
return widgetSearchParameters.setQueryParameter('page', page);
|
|
252
219
|
}
|
|
253
220
|
};
|
|
254
221
|
};
|
|
255
222
|
};
|
|
256
|
-
|
|
257
223
|
export default connectInfiniteHits;
|
|
@@ -1,32 +1,20 @@
|
|
|
1
1
|
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; }
|
|
2
|
-
|
|
3
2
|
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; }
|
|
4
|
-
|
|
5
3
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
6
|
-
|
|
7
4
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
8
|
-
|
|
9
5
|
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); }
|
|
10
|
-
|
|
11
6
|
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; }
|
|
12
|
-
|
|
13
|
-
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
14
|
-
|
|
7
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
15
8
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
16
|
-
|
|
17
|
-
function
|
|
18
|
-
|
|
19
|
-
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; }
|
|
20
|
-
|
|
9
|
+
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; }
|
|
10
|
+
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; }
|
|
21
11
|
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; }
|
|
22
|
-
|
|
23
12
|
import { checkRendering, createDocumentationMessageGenerator, createSendEventForFacet, noop } from "../../lib/utils/index.js";
|
|
24
13
|
var withUsage = createDocumentationMessageGenerator({
|
|
25
14
|
name: 'menu',
|
|
26
15
|
connector: true
|
|
27
16
|
});
|
|
28
17
|
var DEFAULT_SORT = ['isRefined', 'name:asc'];
|
|
29
|
-
|
|
30
18
|
/**
|
|
31
19
|
* **Menu** connector provides the logic to build a widget that will give the user the ability to choose a single value for a specific facet. The typical usage of menu is for navigation in categories.
|
|
32
20
|
*
|
|
@@ -41,55 +29,45 @@ var connectMenu = function connectMenu(renderFn) {
|
|
|
41
29
|
checkRendering(renderFn, withUsage());
|
|
42
30
|
return function (widgetParams) {
|
|
43
31
|
var _ref = widgetParams || {},
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
32
|
+
attribute = _ref.attribute,
|
|
33
|
+
_ref$limit = _ref.limit,
|
|
34
|
+
limit = _ref$limit === void 0 ? 10 : _ref$limit,
|
|
35
|
+
_ref$showMore = _ref.showMore,
|
|
36
|
+
showMore = _ref$showMore === void 0 ? false : _ref$showMore,
|
|
37
|
+
_ref$showMoreLimit = _ref.showMoreLimit,
|
|
38
|
+
showMoreLimit = _ref$showMoreLimit === void 0 ? 20 : _ref$showMoreLimit,
|
|
39
|
+
_ref$sortBy = _ref.sortBy,
|
|
40
|
+
sortBy = _ref$sortBy === void 0 ? DEFAULT_SORT : _ref$sortBy,
|
|
41
|
+
_ref$transformItems = _ref.transformItems,
|
|
42
|
+
transformItems = _ref$transformItems === void 0 ? function (items) {
|
|
43
|
+
return items;
|
|
44
|
+
} : _ref$transformItems;
|
|
58
45
|
if (!attribute) {
|
|
59
46
|
throw new Error(withUsage('The `attribute` option is required.'));
|
|
60
47
|
}
|
|
61
|
-
|
|
62
48
|
if (showMore === true && showMoreLimit <= limit) {
|
|
63
49
|
throw new Error(withUsage('The `showMoreLimit` option must be greater than `limit`.'));
|
|
64
50
|
}
|
|
65
|
-
|
|
66
51
|
var sendEvent;
|
|
67
|
-
|
|
68
52
|
var _createURL;
|
|
53
|
+
var _refine;
|
|
69
54
|
|
|
70
|
-
|
|
55
|
+
// Provide the same function to the `renderFn` so that way the user
|
|
71
56
|
// has to only bind it once when `isFirstRendering` for instance
|
|
72
|
-
|
|
73
|
-
|
|
74
57
|
var isShowingMore = false;
|
|
75
|
-
|
|
76
58
|
var toggleShowMore = function toggleShowMore() {};
|
|
77
|
-
|
|
78
59
|
function createToggleShowMore(renderOptions, widget) {
|
|
79
60
|
return function () {
|
|
80
61
|
isShowingMore = !isShowingMore;
|
|
81
62
|
widget.render(renderOptions);
|
|
82
63
|
};
|
|
83
64
|
}
|
|
84
|
-
|
|
85
65
|
function cachedToggleShowMore() {
|
|
86
66
|
toggleShowMore();
|
|
87
67
|
}
|
|
88
|
-
|
|
89
68
|
function getLimit() {
|
|
90
69
|
return isShowingMore ? showMoreLimit : limit;
|
|
91
70
|
}
|
|
92
|
-
|
|
93
71
|
return {
|
|
94
72
|
$$type: 'ais.menu',
|
|
95
73
|
init: function init(initOptions) {
|
|
@@ -116,12 +94,11 @@ var connectMenu = function connectMenu(renderFn) {
|
|
|
116
94
|
},
|
|
117
95
|
getWidgetRenderState: function getWidgetRenderState(renderOptions) {
|
|
118
96
|
var results = renderOptions.results,
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
97
|
+
createURL = renderOptions.createURL,
|
|
98
|
+
instantSearchInstance = renderOptions.instantSearchInstance,
|
|
99
|
+
helper = renderOptions.helper;
|
|
122
100
|
var items = [];
|
|
123
101
|
var canToggleShowMore = false;
|
|
124
|
-
|
|
125
102
|
if (!sendEvent) {
|
|
126
103
|
sendEvent = createSendEventForFacet({
|
|
127
104
|
instantSearchInstance: instantSearchInstance,
|
|
@@ -130,28 +107,23 @@ var connectMenu = function connectMenu(renderFn) {
|
|
|
130
107
|
widgetType: this.$$type
|
|
131
108
|
});
|
|
132
109
|
}
|
|
133
|
-
|
|
134
110
|
if (!_createURL) {
|
|
135
111
|
_createURL = function _createURL(facetValue) {
|
|
136
112
|
return createURL(helper.state.resetPage().toggleFacetRefinement(attribute, facetValue));
|
|
137
113
|
};
|
|
138
114
|
}
|
|
139
|
-
|
|
140
115
|
if (!_refine) {
|
|
141
116
|
_refine = function _refine(facetValue) {
|
|
142
117
|
var _helper$getHierarchic = helper.getHierarchicalFacetBreadcrumb(attribute),
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
118
|
+
_helper$getHierarchic2 = _slicedToArray(_helper$getHierarchic, 1),
|
|
119
|
+
refinedItem = _helper$getHierarchic2[0];
|
|
146
120
|
sendEvent('click', facetValue ? facetValue : refinedItem);
|
|
147
121
|
helper.toggleFacetRefinement(attribute, facetValue ? facetValue : refinedItem).search();
|
|
148
122
|
};
|
|
149
123
|
}
|
|
150
|
-
|
|
151
124
|
if (renderOptions.results) {
|
|
152
125
|
toggleShowMore = createToggleShowMore(renderOptions, this);
|
|
153
126
|
}
|
|
154
|
-
|
|
155
127
|
if (results) {
|
|
156
128
|
var facetValues = results.getFacetValues(attribute, {
|
|
157
129
|
sortBy: sortBy,
|
|
@@ -161,10 +133,9 @@ var connectMenu = function connectMenu(renderFn) {
|
|
|
161
133
|
canToggleShowMore = showMore && (isShowingMore || facetItems.length > getLimit());
|
|
162
134
|
items = transformItems(facetItems.slice(0, getLimit()).map(function (_ref3) {
|
|
163
135
|
var label = _ref3.name,
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
136
|
+
value = _ref3.escapedValue,
|
|
137
|
+
path = _ref3.path,
|
|
138
|
+
item = _objectWithoutProperties(_ref3, ["name", "escapedValue", "path"]);
|
|
168
139
|
return _objectSpread(_objectSpread({}, item), {}, {
|
|
169
140
|
label: label,
|
|
170
141
|
value: value
|
|
@@ -173,7 +144,6 @@ var connectMenu = function connectMenu(renderFn) {
|
|
|
173
144
|
results: results
|
|
174
145
|
});
|
|
175
146
|
}
|
|
176
|
-
|
|
177
147
|
return {
|
|
178
148
|
items: items,
|
|
179
149
|
createURL: _createURL,
|
|
@@ -188,15 +158,12 @@ var connectMenu = function connectMenu(renderFn) {
|
|
|
188
158
|
},
|
|
189
159
|
getWidgetUiState: function getWidgetUiState(uiState, _ref4) {
|
|
190
160
|
var searchParameters = _ref4.searchParameters;
|
|
191
|
-
|
|
192
161
|
var _searchParameters$get = searchParameters.getHierarchicalFacetBreadcrumb(attribute),
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
162
|
+
_searchParameters$get2 = _slicedToArray(_searchParameters$get, 1),
|
|
163
|
+
value = _searchParameters$get2[0];
|
|
196
164
|
if (!value) {
|
|
197
165
|
return uiState;
|
|
198
166
|
}
|
|
199
|
-
|
|
200
167
|
return _objectSpread(_objectSpread({}, uiState), {}, {
|
|
201
168
|
menu: _objectSpread(_objectSpread({}, uiState.menu), {}, _defineProperty({}, attribute, value))
|
|
202
169
|
});
|
|
@@ -211,17 +178,14 @@ var connectMenu = function connectMenu(renderFn) {
|
|
|
211
178
|
var currentMaxValuesPerFacet = withFacetConfiguration.maxValuesPerFacet || 0;
|
|
212
179
|
var nextMaxValuesPerFacet = Math.max(currentMaxValuesPerFacet, showMore ? showMoreLimit : limit);
|
|
213
180
|
var withMaxValuesPerFacet = withFacetConfiguration.setQueryParameter('maxValuesPerFacet', nextMaxValuesPerFacet);
|
|
214
|
-
|
|
215
181
|
if (!value) {
|
|
216
182
|
return withMaxValuesPerFacet.setQueryParameters({
|
|
217
183
|
hierarchicalFacetsRefinements: _objectSpread(_objectSpread({}, withMaxValuesPerFacet.hierarchicalFacetsRefinements), {}, _defineProperty({}, attribute, []))
|
|
218
184
|
});
|
|
219
185
|
}
|
|
220
|
-
|
|
221
186
|
return withMaxValuesPerFacet.addHierarchicalFacetRefinement(attribute, value);
|
|
222
187
|
}
|
|
223
188
|
};
|
|
224
189
|
};
|
|
225
190
|
};
|
|
226
|
-
|
|
227
191
|
export default connectMenu;
|