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,43 +1,32 @@
|
|
|
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
|
import { checkRendering, createDocumentationMessageGenerator, warning, getRefinements, isEqual, noop } from "../../lib/utils/index.js";
|
|
20
11
|
var withUsage = createDocumentationMessageGenerator({
|
|
21
12
|
name: 'query-rules',
|
|
22
13
|
connector: true
|
|
23
14
|
});
|
|
24
|
-
|
|
25
15
|
function hasStateRefinements(state) {
|
|
26
16
|
return [state.disjunctiveFacetsRefinements, state.facetsRefinements, state.hierarchicalFacetsRefinements, state.numericRefinements].some(function (refinement) {
|
|
27
17
|
return Boolean(refinement && Object.keys(refinement).length > 0);
|
|
28
18
|
});
|
|
29
|
-
}
|
|
30
|
-
// See https://www.algolia.com/doc/guides/managing-results/refine-results/merchandising-and-promoting/in-depth/implementing-query-rules/#context
|
|
31
|
-
|
|
19
|
+
}
|
|
32
20
|
|
|
21
|
+
// A context rule must consist only of alphanumeric characters, hyphens, and underscores.
|
|
22
|
+
// See https://www.algolia.com/doc/guides/managing-results/refine-results/merchandising-and-promoting/in-depth/implementing-query-rules/#context
|
|
33
23
|
function escapeRuleContext(ruleName) {
|
|
34
24
|
return ruleName.replace(/[^a-z0-9-_]+/gi, '_');
|
|
35
25
|
}
|
|
36
|
-
|
|
37
26
|
function getRuleContextsFromTrackedFilters(_ref) {
|
|
38
27
|
var helper = _ref.helper,
|
|
39
|
-
|
|
40
|
-
|
|
28
|
+
sharedHelperState = _ref.sharedHelperState,
|
|
29
|
+
trackedFilters = _ref.trackedFilters;
|
|
41
30
|
var ruleContexts = Object.keys(trackedFilters).reduce(function (facets, facetName) {
|
|
42
31
|
var facetRefinements = getRefinements(helper.lastResults || {}, sharedHelperState, true).filter(function (refinement) {
|
|
43
32
|
return refinement.attribute === facetName;
|
|
@@ -54,12 +43,11 @@ function getRuleContextsFromTrackedFilters(_ref) {
|
|
|
54
43
|
}, []);
|
|
55
44
|
return ruleContexts;
|
|
56
45
|
}
|
|
57
|
-
|
|
58
46
|
function applyRuleContexts(event) {
|
|
59
47
|
var helper = this.helper,
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
48
|
+
initialRuleContexts = this.initialRuleContexts,
|
|
49
|
+
trackedFilters = this.trackedFilters,
|
|
50
|
+
transformRuleContexts = this.transformRuleContexts;
|
|
63
51
|
var sharedHelperState = event.state;
|
|
64
52
|
var previousRuleContexts = sharedHelperState.ruleContexts || [];
|
|
65
53
|
var newRuleContexts = getRuleContextsFromTrackedFilters({
|
|
@@ -70,46 +58,44 @@ function applyRuleContexts(event) {
|
|
|
70
58
|
var nextRuleContexts = [].concat(_toConsumableArray(initialRuleContexts), _toConsumableArray(newRuleContexts));
|
|
71
59
|
process.env.NODE_ENV === 'development' ? warning(nextRuleContexts.length <= 10, "\nThe maximum number of `ruleContexts` is 10. They have been sliced to that limit.\nConsider using `transformRuleContexts` to minimize the number of rules sent to Algolia.\n") : void 0;
|
|
72
60
|
var ruleContexts = transformRuleContexts(nextRuleContexts).slice(0, 10);
|
|
73
|
-
|
|
74
61
|
if (!isEqual(previousRuleContexts, ruleContexts)) {
|
|
75
62
|
helper.overrideStateWithoutTriggeringChangeEvent(_objectSpread(_objectSpread({}, sharedHelperState), {}, {
|
|
76
63
|
ruleContexts: ruleContexts
|
|
77
64
|
}));
|
|
78
65
|
}
|
|
79
66
|
}
|
|
80
|
-
|
|
81
67
|
var connectQueryRules = function connectQueryRules(_render) {
|
|
82
68
|
var unmount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
|
|
83
69
|
checkRendering(_render, withUsage());
|
|
84
70
|
return function (widgetParams) {
|
|
85
71
|
var _ref2 = widgetParams || {},
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
72
|
+
_ref2$trackedFilters = _ref2.trackedFilters,
|
|
73
|
+
trackedFilters = _ref2$trackedFilters === void 0 ? {} : _ref2$trackedFilters,
|
|
74
|
+
_ref2$transformRuleCo = _ref2.transformRuleContexts,
|
|
75
|
+
transformRuleContexts = _ref2$transformRuleCo === void 0 ? function (rules) {
|
|
76
|
+
return rules;
|
|
77
|
+
} : _ref2$transformRuleCo,
|
|
78
|
+
_ref2$transformItems = _ref2.transformItems,
|
|
79
|
+
transformItems = _ref2$transformItems === void 0 ? function (items) {
|
|
80
|
+
return items;
|
|
81
|
+
} : _ref2$transformItems;
|
|
97
82
|
Object.keys(trackedFilters).forEach(function (facetName) {
|
|
98
83
|
if (typeof trackedFilters[facetName] !== 'function') {
|
|
99
84
|
throw new Error(withUsage("'The \"".concat(facetName, "\" filter value in the `trackedFilters` option expects a function.")));
|
|
100
85
|
}
|
|
101
86
|
});
|
|
102
|
-
var hasTrackedFilters = Object.keys(trackedFilters).length > 0;
|
|
103
|
-
// so that we do not override them with the rules created from `trackedFilters`.
|
|
87
|
+
var hasTrackedFilters = Object.keys(trackedFilters).length > 0;
|
|
104
88
|
|
|
89
|
+
// We store the initial rule contexts applied before creating the widget
|
|
90
|
+
// so that we do not override them with the rules created from `trackedFilters`.
|
|
105
91
|
var initialRuleContexts = [];
|
|
106
92
|
var onHelperChange;
|
|
107
93
|
return {
|
|
108
94
|
$$type: 'ais.queryRules',
|
|
109
95
|
init: function init(initOptions) {
|
|
110
96
|
var helper = initOptions.helper,
|
|
111
|
-
|
|
112
|
-
|
|
97
|
+
state = initOptions.state,
|
|
98
|
+
instantSearchInstance = initOptions.instantSearchInstance;
|
|
113
99
|
initialRuleContexts = state.ruleContexts || [];
|
|
114
100
|
onHelperChange = applyRuleContexts.bind({
|
|
115
101
|
helper: helper,
|
|
@@ -117,7 +103,6 @@ var connectQueryRules = function connectQueryRules(_render) {
|
|
|
117
103
|
trackedFilters: trackedFilters,
|
|
118
104
|
transformRuleContexts: transformRuleContexts
|
|
119
105
|
});
|
|
120
|
-
|
|
121
106
|
if (hasTrackedFilters) {
|
|
122
107
|
// We need to apply the `ruleContexts` based on the `trackedFilters`
|
|
123
108
|
// before the helper changes state in some cases:
|
|
@@ -127,31 +112,27 @@ var connectQueryRules = function connectQueryRules(_render) {
|
|
|
127
112
|
onHelperChange({
|
|
128
113
|
state: state
|
|
129
114
|
});
|
|
130
|
-
}
|
|
131
|
-
// any `ruleContexts` needed based on the `trackedFilters`.
|
|
132
|
-
|
|
115
|
+
}
|
|
133
116
|
|
|
117
|
+
// We track every change in the helper to override its state and add
|
|
118
|
+
// any `ruleContexts` needed based on the `trackedFilters`.
|
|
134
119
|
helper.on('change', onHelperChange);
|
|
135
120
|
}
|
|
136
|
-
|
|
137
121
|
_render(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {
|
|
138
122
|
instantSearchInstance: instantSearchInstance
|
|
139
123
|
}), true);
|
|
140
124
|
},
|
|
141
125
|
render: function render(renderOptions) {
|
|
142
126
|
var instantSearchInstance = renderOptions.instantSearchInstance;
|
|
143
|
-
|
|
144
127
|
_render(_objectSpread(_objectSpread({}, this.getWidgetRenderState(renderOptions)), {}, {
|
|
145
128
|
instantSearchInstance: instantSearchInstance
|
|
146
129
|
}), false);
|
|
147
130
|
},
|
|
148
131
|
getWidgetRenderState: function getWidgetRenderState(_ref3) {
|
|
149
132
|
var results = _ref3.results;
|
|
150
|
-
|
|
151
133
|
var _ref4 = results || {},
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
134
|
+
_ref4$userData = _ref4.userData,
|
|
135
|
+
userData = _ref4$userData === void 0 ? [] : _ref4$userData;
|
|
155
136
|
var items = transformItems(userData, {
|
|
156
137
|
results: results
|
|
157
138
|
});
|
|
@@ -167,18 +148,15 @@ var connectQueryRules = function connectQueryRules(_render) {
|
|
|
167
148
|
},
|
|
168
149
|
dispose: function dispose(_ref5) {
|
|
169
150
|
var helper = _ref5.helper,
|
|
170
|
-
|
|
151
|
+
state = _ref5.state;
|
|
171
152
|
unmount();
|
|
172
|
-
|
|
173
153
|
if (hasTrackedFilters) {
|
|
174
154
|
helper.removeListener('change', onHelperChange);
|
|
175
155
|
return state.setQueryParameter('ruleContexts', initialRuleContexts);
|
|
176
156
|
}
|
|
177
|
-
|
|
178
157
|
return state;
|
|
179
158
|
}
|
|
180
159
|
};
|
|
181
160
|
};
|
|
182
161
|
};
|
|
183
|
-
|
|
184
162
|
export default connectQueryRules;
|
|
@@ -1,21 +1,12 @@
|
|
|
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 _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
8
|
-
|
|
9
5
|
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."); }
|
|
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
7
|
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; }
|
|
14
|
-
|
|
15
|
-
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; }
|
|
16
|
-
|
|
8
|
+
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; }
|
|
17
9
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
18
|
-
|
|
19
10
|
import { checkRendering, createDocumentationMessageGenerator, isFiniteNumber, find, noop } from "../../lib/utils/index.js";
|
|
20
11
|
var withUsage = createDocumentationMessageGenerator({
|
|
21
12
|
name: 'range-input',
|
|
@@ -25,17 +16,17 @@ var withUsage = createDocumentationMessageGenerator({
|
|
|
25
16
|
connector: true
|
|
26
17
|
});
|
|
27
18
|
var $$type = 'ais.range';
|
|
28
|
-
|
|
29
19
|
function toPrecision(_ref) {
|
|
30
20
|
var min = _ref.min,
|
|
31
|
-
|
|
32
|
-
|
|
21
|
+
max = _ref.max,
|
|
22
|
+
precision = _ref.precision;
|
|
33
23
|
var pow = Math.pow(10, precision);
|
|
34
24
|
return {
|
|
35
25
|
min: min ? Math.floor(min * pow) / pow : min,
|
|
36
26
|
max: max ? Math.ceil(max * pow) / pow : max
|
|
37
27
|
};
|
|
38
28
|
}
|
|
29
|
+
|
|
39
30
|
/**
|
|
40
31
|
* **Range** connector provides the logic to create custom widget that will let
|
|
41
32
|
* the user refine results using a numeric range.
|
|
@@ -43,32 +34,26 @@ function toPrecision(_ref) {
|
|
|
43
34
|
* This connectors provides a `refine()` function that accepts bounds. It will also provide
|
|
44
35
|
* information about the min and max bounds for the current result set.
|
|
45
36
|
*/
|
|
46
|
-
|
|
47
|
-
|
|
48
37
|
var connectRange = function connectRange(renderFn) {
|
|
49
38
|
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
|
|
50
39
|
checkRendering(renderFn, withUsage());
|
|
51
40
|
return function (widgetParams) {
|
|
52
41
|
var _ref2 = widgetParams || {},
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
42
|
+
_ref2$attribute = _ref2.attribute,
|
|
43
|
+
attribute = _ref2$attribute === void 0 ? '' : _ref2$attribute,
|
|
44
|
+
minBound = _ref2.min,
|
|
45
|
+
maxBound = _ref2.max,
|
|
46
|
+
_ref2$precision = _ref2.precision,
|
|
47
|
+
precision = _ref2$precision === void 0 ? 0 : _ref2$precision;
|
|
60
48
|
if (!attribute) {
|
|
61
49
|
throw new Error(withUsage('The `attribute` option is required.'));
|
|
62
50
|
}
|
|
63
|
-
|
|
64
51
|
if (isFiniteNumber(minBound) && isFiniteNumber(maxBound) && minBound > maxBound) {
|
|
65
52
|
throw new Error(withUsage("The `max` option can't be lower than `min`."));
|
|
66
53
|
}
|
|
67
|
-
|
|
68
54
|
var formatToNumber = function formatToNumber(v) {
|
|
69
55
|
return Number(Number(v).toFixed(precision));
|
|
70
56
|
};
|
|
71
|
-
|
|
72
57
|
var rangeFormatter = {
|
|
73
58
|
from: function from(v) {
|
|
74
59
|
return v.toLocaleString();
|
|
@@ -76,34 +61,29 @@ var connectRange = function connectRange(renderFn) {
|
|
|
76
61
|
to: function to(v) {
|
|
77
62
|
return formatToNumber(v).toLocaleString();
|
|
78
63
|
}
|
|
79
|
-
};
|
|
64
|
+
};
|
|
80
65
|
|
|
66
|
+
// eslint-disable-next-line complexity
|
|
81
67
|
var getRefinedState = function getRefinedState(helper, currentRange, nextMin, nextMax) {
|
|
82
68
|
var resolvedState = helper.state;
|
|
83
69
|
var currentRangeMin = currentRange.min,
|
|
84
|
-
|
|
85
|
-
|
|
70
|
+
currentRangeMax = currentRange.max;
|
|
86
71
|
var _ref3 = resolvedState.getNumericRefinement(attribute, '>=') || [],
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
72
|
+
_ref4 = _slicedToArray(_ref3, 1),
|
|
73
|
+
min = _ref4[0];
|
|
90
74
|
var _ref5 = resolvedState.getNumericRefinement(attribute, '<=') || [],
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
75
|
+
_ref6 = _slicedToArray(_ref5, 1),
|
|
76
|
+
max = _ref6[0];
|
|
94
77
|
var isResetMin = nextMin === undefined || nextMin === '';
|
|
95
78
|
var isResetMax = nextMax === undefined || nextMax === '';
|
|
96
|
-
|
|
97
79
|
var _toPrecision = toPrecision({
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
80
|
+
min: !isResetMin ? parseFloat(nextMin) : undefined,
|
|
81
|
+
max: !isResetMax ? parseFloat(nextMax) : undefined,
|
|
82
|
+
precision: precision
|
|
83
|
+
}),
|
|
84
|
+
nextMinAsNumber = _toPrecision.min,
|
|
85
|
+
nextMaxAsNumber = _toPrecision.max;
|
|
105
86
|
var newNextMin;
|
|
106
|
-
|
|
107
87
|
if (!isFiniteNumber(minBound) && currentRangeMin === nextMinAsNumber) {
|
|
108
88
|
newNextMin = undefined;
|
|
109
89
|
} else if (isFiniteNumber(minBound) && isResetMin) {
|
|
@@ -111,9 +91,7 @@ var connectRange = function connectRange(renderFn) {
|
|
|
111
91
|
} else {
|
|
112
92
|
newNextMin = nextMinAsNumber;
|
|
113
93
|
}
|
|
114
|
-
|
|
115
94
|
var newNextMax;
|
|
116
|
-
|
|
117
95
|
if (!isFiniteNumber(maxBound) && currentRangeMax === nextMaxAsNumber) {
|
|
118
96
|
newNextMax = undefined;
|
|
119
97
|
} else if (isFiniteNumber(maxBound) && isResetMax) {
|
|
@@ -121,7 +99,6 @@ var connectRange = function connectRange(renderFn) {
|
|
|
121
99
|
} else {
|
|
122
100
|
newNextMax = nextMaxAsNumber;
|
|
123
101
|
}
|
|
124
|
-
|
|
125
102
|
var isResetNewNextMin = newNextMin === undefined;
|
|
126
103
|
var isGreaterThanCurrentRange = isFiniteNumber(currentRangeMin) && currentRangeMin <= newNextMin;
|
|
127
104
|
var isMinValid = isResetNewNextMin || isFiniteNumber(newNextMin) && (!isFiniteNumber(currentRangeMin) || isGreaterThanCurrentRange);
|
|
@@ -130,24 +107,18 @@ var connectRange = function connectRange(renderFn) {
|
|
|
130
107
|
var isMaxValid = isResetNewNextMax || isFiniteNumber(newNextMax) && (!isFiniteNumber(currentRangeMax) || isLowerThanRange);
|
|
131
108
|
var hasMinChange = min !== newNextMin;
|
|
132
109
|
var hasMaxChange = max !== newNextMax;
|
|
133
|
-
|
|
134
110
|
if ((hasMinChange || hasMaxChange) && isMinValid && isMaxValid) {
|
|
135
111
|
resolvedState = resolvedState.removeNumericRefinement(attribute);
|
|
136
|
-
|
|
137
112
|
if (isFiniteNumber(newNextMin)) {
|
|
138
113
|
resolvedState = resolvedState.addNumericRefinement(attribute, '>=', newNextMin);
|
|
139
114
|
}
|
|
140
|
-
|
|
141
115
|
if (isFiniteNumber(newNextMax)) {
|
|
142
116
|
resolvedState = resolvedState.addNumericRefinement(attribute, '<=', newNextMax);
|
|
143
117
|
}
|
|
144
|
-
|
|
145
118
|
return resolvedState.resetPage();
|
|
146
119
|
}
|
|
147
|
-
|
|
148
120
|
return null;
|
|
149
121
|
};
|
|
150
|
-
|
|
151
122
|
var createSendEvent = function createSendEvent(instantSearchInstance) {
|
|
152
123
|
return function () {
|
|
153
124
|
if (arguments.length === 1) {
|
|
@@ -156,10 +127,8 @@ var connectRange = function connectRange(renderFn) {
|
|
|
156
127
|
}
|
|
157
128
|
};
|
|
158
129
|
};
|
|
159
|
-
|
|
160
130
|
function _getCurrentRange(stats) {
|
|
161
131
|
var min;
|
|
162
|
-
|
|
163
132
|
if (isFiniteNumber(minBound)) {
|
|
164
133
|
min = minBound;
|
|
165
134
|
} else if (isFiniteNumber(stats.min)) {
|
|
@@ -167,9 +136,7 @@ var connectRange = function connectRange(renderFn) {
|
|
|
167
136
|
} else {
|
|
168
137
|
min = 0;
|
|
169
138
|
}
|
|
170
|
-
|
|
171
139
|
var max;
|
|
172
|
-
|
|
173
140
|
if (isFiniteNumber(maxBound)) {
|
|
174
141
|
max = maxBound;
|
|
175
142
|
} else if (isFiniteNumber(stats.max)) {
|
|
@@ -177,43 +144,35 @@ var connectRange = function connectRange(renderFn) {
|
|
|
177
144
|
} else {
|
|
178
145
|
max = 0;
|
|
179
146
|
}
|
|
180
|
-
|
|
181
147
|
return toPrecision({
|
|
182
148
|
min: min,
|
|
183
149
|
max: max,
|
|
184
150
|
precision: precision
|
|
185
151
|
});
|
|
186
152
|
}
|
|
187
|
-
|
|
188
153
|
function _getCurrentRefinement(helper) {
|
|
189
154
|
var _ref7 = helper.getNumericRefinement(attribute, '>=') || [],
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
155
|
+
_ref8 = _slicedToArray(_ref7, 1),
|
|
156
|
+
minValue = _ref8[0];
|
|
193
157
|
var _ref9 = helper.getNumericRefinement(attribute, '<=') || [],
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
158
|
+
_ref10 = _slicedToArray(_ref9, 1),
|
|
159
|
+
maxValue = _ref10[0];
|
|
197
160
|
var min = isFiniteNumber(minValue) ? minValue : -Infinity;
|
|
198
161
|
var max = isFiniteNumber(maxValue) ? maxValue : Infinity;
|
|
199
162
|
return [min, max];
|
|
200
163
|
}
|
|
201
|
-
|
|
202
164
|
function _refine(helper, currentRange) {
|
|
203
165
|
return function () {
|
|
204
166
|
var _ref11 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [undefined, undefined],
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
167
|
+
_ref12 = _slicedToArray(_ref11, 2),
|
|
168
|
+
nextMin = _ref12[0],
|
|
169
|
+
nextMax = _ref12[1];
|
|
209
170
|
var refinedState = getRefinedState(helper, currentRange, nextMin, nextMax);
|
|
210
|
-
|
|
211
171
|
if (refinedState) {
|
|
212
172
|
helper.setState(refinedState).search();
|
|
213
173
|
}
|
|
214
174
|
};
|
|
215
175
|
}
|
|
216
|
-
|
|
217
176
|
return {
|
|
218
177
|
$$type: $$type,
|
|
219
178
|
init: function init(initOptions) {
|
|
@@ -233,8 +192,8 @@ var connectRange = function connectRange(renderFn) {
|
|
|
233
192
|
},
|
|
234
193
|
getWidgetRenderState: function getWidgetRenderState(_ref13) {
|
|
235
194
|
var results = _ref13.results,
|
|
236
|
-
|
|
237
|
-
|
|
195
|
+
helper = _ref13.helper,
|
|
196
|
+
instantSearchInstance = _ref13.instantSearchInstance;
|
|
238
197
|
var facetsFromResults = results && results.disjunctiveFacets || [];
|
|
239
198
|
var facet = find(facetsFromResults, function (facetResult) {
|
|
240
199
|
return facetResult.name === attribute;
|
|
@@ -243,13 +202,9 @@ var connectRange = function connectRange(renderFn) {
|
|
|
243
202
|
min: undefined,
|
|
244
203
|
max: undefined
|
|
245
204
|
};
|
|
246
|
-
|
|
247
205
|
var currentRange = _getCurrentRange(stats);
|
|
248
|
-
|
|
249
206
|
var start = _getCurrentRefinement(helper);
|
|
250
|
-
|
|
251
207
|
var refine;
|
|
252
|
-
|
|
253
208
|
if (!results) {
|
|
254
209
|
// On first render pass an empty range
|
|
255
210
|
// to be able to bypass the validation
|
|
@@ -261,7 +216,6 @@ var connectRange = function connectRange(renderFn) {
|
|
|
261
216
|
} else {
|
|
262
217
|
refine = _refine(helper, currentRange);
|
|
263
218
|
}
|
|
264
|
-
|
|
265
219
|
return {
|
|
266
220
|
refine: refine,
|
|
267
221
|
canRefine: currentRange.min !== currentRange.max,
|
|
@@ -281,17 +235,14 @@ var connectRange = function connectRange(renderFn) {
|
|
|
281
235
|
},
|
|
282
236
|
getWidgetUiState: function getWidgetUiState(uiState, _ref15) {
|
|
283
237
|
var searchParameters = _ref15.searchParameters;
|
|
284
|
-
|
|
285
238
|
var _searchParameters$get = searchParameters.getNumericRefinements(attribute),
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
239
|
+
_searchParameters$get2 = _searchParameters$get['>='],
|
|
240
|
+
min = _searchParameters$get2 === void 0 ? [] : _searchParameters$get2,
|
|
241
|
+
_searchParameters$get3 = _searchParameters$get['<='],
|
|
242
|
+
max = _searchParameters$get3 === void 0 ? [] : _searchParameters$get3;
|
|
291
243
|
if (min.length === 0 && max.length === 0) {
|
|
292
244
|
return uiState;
|
|
293
245
|
}
|
|
294
|
-
|
|
295
246
|
return _objectSpread(_objectSpread({}, uiState), {}, {
|
|
296
247
|
range: _objectSpread(_objectSpread({}, uiState.range), {}, _defineProperty({}, attribute, "".concat(min, ":").concat(max)))
|
|
297
248
|
});
|
|
@@ -301,40 +252,31 @@ var connectRange = function connectRange(renderFn) {
|
|
|
301
252
|
var widgetSearchParameters = searchParameters.addDisjunctiveFacet(attribute).setQueryParameters({
|
|
302
253
|
numericRefinements: _objectSpread(_objectSpread({}, searchParameters.numericRefinements), {}, _defineProperty({}, attribute, {}))
|
|
303
254
|
});
|
|
304
|
-
|
|
305
255
|
if (isFiniteNumber(minBound)) {
|
|
306
256
|
widgetSearchParameters = widgetSearchParameters.addNumericRefinement(attribute, '>=', minBound);
|
|
307
257
|
}
|
|
308
|
-
|
|
309
258
|
if (isFiniteNumber(maxBound)) {
|
|
310
259
|
widgetSearchParameters = widgetSearchParameters.addNumericRefinement(attribute, '<=', maxBound);
|
|
311
260
|
}
|
|
312
|
-
|
|
313
261
|
var value = uiState.range && uiState.range[attribute];
|
|
314
|
-
|
|
315
262
|
if (!value || value.indexOf(':') === -1) {
|
|
316
263
|
return widgetSearchParameters;
|
|
317
264
|
}
|
|
318
|
-
|
|
319
265
|
var _value$split$map = value.split(':').map(parseFloat),
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
266
|
+
_value$split$map2 = _slicedToArray(_value$split$map, 2),
|
|
267
|
+
lowerBound = _value$split$map2[0],
|
|
268
|
+
upperBound = _value$split$map2[1];
|
|
324
269
|
if (isFiniteNumber(lowerBound) && (!isFiniteNumber(minBound) || minBound < lowerBound)) {
|
|
325
270
|
widgetSearchParameters = widgetSearchParameters.removeNumericRefinement(attribute, '>=');
|
|
326
271
|
widgetSearchParameters = widgetSearchParameters.addNumericRefinement(attribute, '>=', lowerBound);
|
|
327
272
|
}
|
|
328
|
-
|
|
329
273
|
if (isFiniteNumber(upperBound) && (!isFiniteNumber(maxBound) || upperBound < maxBound)) {
|
|
330
274
|
widgetSearchParameters = widgetSearchParameters.removeNumericRefinement(attribute, '<=');
|
|
331
275
|
widgetSearchParameters = widgetSearchParameters.addNumericRefinement(attribute, '<=', upperBound);
|
|
332
276
|
}
|
|
333
|
-
|
|
334
277
|
return widgetSearchParameters;
|
|
335
278
|
}
|
|
336
279
|
};
|
|
337
280
|
};
|
|
338
281
|
};
|
|
339
|
-
|
|
340
282
|
export default connectRange;
|