instantsearch.js 4.49.0 → 4.49.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/cjs/components/Answers/Answers.js +6 -16
- package/cjs/components/Breadcrumb/Breadcrumb.js +5 -12
- package/cjs/components/ClearRefinements/ClearRefinements.js +4 -11
- package/cjs/components/CurrentRefinements/CurrentRefinements.js +5 -12
- package/cjs/components/GeoSearchControls/GeoSearchButton.js +4 -6
- package/cjs/components/GeoSearchControls/GeoSearchControls.js +11 -20
- package/cjs/components/GeoSearchControls/GeoSearchToggle.js +4 -6
- package/cjs/components/Highlight/Highlight.js +3 -11
- package/cjs/components/Hits/Hits.js +8 -20
- package/cjs/components/InfiniteHits/InfiniteHits.js +13 -25
- package/cjs/components/InternalHighlight/InternalHighlight.js +0 -3
- package/cjs/components/MenuSelect/MenuSelect.js +9 -19
- package/cjs/components/Pagination/Pagination.js +10 -17
- package/cjs/components/Panel/Panel.js +7 -26
- package/cjs/components/PoweredBy/PoweredBy.js +4 -5
- package/cjs/components/QueryRuleCustomData/QueryRuleCustomData.js +2 -6
- package/cjs/components/RangeInput/RangeInput.js +16 -48
- package/cjs/components/RefinementList/RefinementList.js +19 -73
- package/cjs/components/RefinementList/RefinementListItem.js +8 -14
- package/cjs/components/RelevantSort/RelevantSort.js +4 -8
- package/cjs/components/ReverseHighlight/ReverseHighlight.js +3 -11
- package/cjs/components/ReverseSnippet/ReverseSnippet.js +3 -11
- package/cjs/components/SearchBox/SearchBox.js +25 -69
- package/cjs/components/Selector/Selector.js +3 -6
- package/cjs/components/Slider/Pit.js +3 -10
- package/cjs/components/Slider/Rheostat.js +63 -131
- package/cjs/components/Slider/Slider.js +28 -65
- package/cjs/components/Snippet/Snippet.js +3 -11
- package/cjs/components/Stats/Stats.js +7 -20
- package/cjs/components/Template/Template.js +8 -37
- package/cjs/components/ToggleRefinement/ToggleRefinement.js +4 -10
- package/cjs/components/VoiceSearch/VoiceSearch.js +8 -15
- package/cjs/connectors/answers/connectAnswers.js +21 -36
- package/cjs/connectors/autocomplete/connectAutocomplete.js +8 -25
- package/cjs/connectors/breadcrumb/connectBreadcrumb.js +17 -48
- package/cjs/connectors/clear-refinements/connectClearRefinements.js +27 -45
- package/cjs/connectors/configure/connectConfigure.js +6 -20
- package/cjs/connectors/configure-related-items/connectConfigureRelatedItems.js +11 -36
- package/cjs/connectors/current-refinements/connectCurrentRefinements.js +18 -57
- package/cjs/connectors/dynamic-widgets/connectDynamicWidgets.js +17 -37
- package/cjs/connectors/geo-search/connectGeoSearch.js +17 -47
- package/cjs/connectors/hierarchical-menu/connectHierarchicalMenu.js +38 -74
- package/cjs/connectors/hits/connectHits.js +10 -26
- package/cjs/connectors/hits/connectHitsWithInsights.js +0 -4
- package/cjs/connectors/hits-per-page/connectHitsPerPage.js +15 -38
- package/cjs/connectors/index.js +62 -96
- package/cjs/connectors/infinite-hits/connectInfiniteHits.js +26 -62
- package/cjs/connectors/infinite-hits/connectInfiniteHitsWithInsights.js +0 -4
- package/cjs/connectors/menu/connectMenu.js +28 -66
- package/cjs/connectors/numeric-menu/connectNumericMenu.js +24 -78
- package/cjs/connectors/pagination/Paginator.js +3 -20
- package/cjs/connectors/pagination/connectPagination.js +8 -25
- package/cjs/connectors/powered-by/connectPoweredBy.js +4 -13
- package/cjs/connectors/query-rules/connectQueryRules.js +32 -56
- package/cjs/connectors/range/connectRange.js +41 -101
- package/cjs/connectors/rating-menu/connectRatingMenu.js +23 -79
- package/cjs/connectors/refinement-list/connectRefinementList.js +37 -70
- package/cjs/connectors/relevant-sort/connectRelevantSort.js +4 -14
- package/cjs/connectors/search-box/connectSearchBox.js +7 -23
- package/cjs/connectors/sort-by/connectSortBy.js +11 -21
- package/cjs/connectors/stats/connectStats.js +4 -11
- package/cjs/connectors/toggle-refinement/connectToggleRefinement.js +29 -63
- package/cjs/connectors/voice-search/connectVoiceSearch.js +13 -35
- package/cjs/helpers/components/Highlight.js +4 -12
- package/cjs/helpers/components/ReverseHighlight.js +7 -19
- package/cjs/helpers/components/ReverseSnippet.js +7 -19
- package/cjs/helpers/components/Snippet.js +4 -12
- package/cjs/helpers/components/index.js +0 -8
- package/cjs/helpers/get-insights-anonymous-user-token.js +7 -12
- package/cjs/helpers/highlight.js +10 -16
- package/cjs/helpers/index.js +17 -31
- package/cjs/helpers/insights.js +5 -17
- package/cjs/helpers/reverseHighlight.js +10 -16
- package/cjs/helpers/reverseSnippet.js +10 -16
- package/cjs/helpers/snippet.js +10 -16
- package/cjs/index.js +3 -18
- package/cjs/lib/InstantSearch.js +79 -180
- package/cjs/lib/createHelpers.js +4 -11
- package/cjs/lib/formatNumber.js +0 -1
- package/cjs/lib/infiniteHitsCache/index.js +0 -2
- package/cjs/lib/infiniteHitsCache/sessionStorage.js +9 -18
- package/cjs/lib/insights/client.js +8 -34
- package/cjs/lib/insights/index.js +7 -13
- package/cjs/lib/insights/listener.js +4 -20
- package/cjs/lib/routers/history.js +63 -102
- package/cjs/lib/routers/index.js +0 -2
- package/cjs/lib/stateMappings/index.js +0 -3
- package/cjs/lib/stateMappings/simple.js +6 -13
- package/cjs/lib/stateMappings/singleIndex.js +1 -7
- package/cjs/lib/suit.js +2 -5
- package/cjs/lib/templating/index.js +0 -4
- package/cjs/lib/templating/prepareTemplateProps.js +8 -19
- package/cjs/lib/templating/renderTemplate.js +9 -24
- package/cjs/lib/utils/capitalize.js +0 -1
- package/cjs/lib/utils/checkIndexUiState.js +15 -43
- package/cjs/lib/utils/checkRendering.js +0 -2
- package/cjs/lib/utils/clearRefinements.js +2 -9
- package/cjs/lib/utils/concatHighlightedParts.js +1 -3
- package/cjs/lib/utils/createConcurrentSafePromise.js +0 -3
- package/cjs/lib/utils/createSendEventForFacet.js +7 -14
- package/cjs/lib/utils/createSendEventForHits.js +9 -33
- package/cjs/lib/utils/debounce.js +0 -3
- package/cjs/lib/utils/defer.js +0 -11
- package/cjs/lib/utils/detect-insights-client.js +0 -2
- package/cjs/lib/utils/documentation.js +2 -5
- package/cjs/lib/utils/escape-highlight.js +5 -22
- package/cjs/lib/utils/escape-html.js +9 -7
- package/cjs/lib/utils/escapeFacetValue.js +1 -5
- package/cjs/lib/utils/find.js +2 -5
- package/cjs/lib/utils/findIndex.js +0 -3
- package/cjs/lib/utils/geo-search.js +14 -34
- package/cjs/lib/utils/getAppIdAndApiKey.js +2 -3
- package/cjs/lib/utils/getContainerNode.js +0 -6
- package/cjs/lib/utils/getHighlightFromSiblings.js +0 -6
- package/cjs/lib/utils/getHighlightedParts.js +1 -4
- package/cjs/lib/utils/getObjectType.js +0 -1
- package/cjs/lib/utils/getPropertyByPath.js +0 -1
- package/cjs/lib/utils/getRefinements.js +13 -26
- package/cjs/lib/utils/getWidgetAttribute.js +0 -6
- package/cjs/lib/utils/hits-absolute-position.js +2 -6
- package/cjs/lib/utils/hits-query-id.js +2 -7
- package/cjs/lib/utils/index.js +0 -92
- package/cjs/lib/utils/isDomElement.js +0 -1
- package/cjs/lib/utils/isEqual.js +0 -8
- package/cjs/lib/utils/isFacetRefined.js +0 -1
- package/cjs/lib/utils/isFiniteNumber.js +0 -1
- package/cjs/lib/utils/isIndexWidget.js +0 -1
- package/cjs/lib/utils/isPlainObject.js +3 -11
- package/cjs/lib/utils/isSpecialClick.js +0 -1
- package/cjs/lib/utils/logger.js +3 -13
- package/cjs/lib/utils/mergeSearchParameters.js +16 -40
- package/cjs/lib/utils/noop.js +0 -1
- package/cjs/lib/utils/range.js +8 -14
- package/cjs/lib/utils/render-args.js +0 -2
- package/cjs/lib/utils/resolveSearchParameters.js +0 -3
- package/cjs/lib/utils/reverseHighlightedParts.js +2 -8
- package/cjs/lib/utils/safelyRunOnBrowser.js +7 -9
- package/cjs/lib/utils/serializer.js +1 -3
- package/cjs/lib/utils/setIndexHelperState.js +0 -5
- package/cjs/lib/utils/toArray.js +0 -1
- package/cjs/lib/utils/typedObject.js +0 -1
- package/cjs/lib/utils/uniq.js +0 -1
- package/cjs/lib/version.js +1 -1
- package/cjs/lib/voiceSearchHelper/index.js +8 -36
- package/cjs/middlewares/createInsightsMiddleware.js +15 -44
- package/cjs/middlewares/createMetadataMiddleware.js +4 -12
- package/cjs/middlewares/createRouterMiddleware.js +8 -19
- package/cjs/middlewares/index.js +0 -6
- package/cjs/types/algoliasearch.js +0 -2
- package/cjs/types/index.js +0 -28
- package/cjs/widgets/analytics/analytics.js +12 -47
- package/cjs/widgets/answers/answers.js +19 -39
- package/cjs/widgets/breadcrumb/breadcrumb.js +18 -38
- package/cjs/widgets/clear-refinements/clear-refinements.js +15 -35
- package/cjs/widgets/configure/configure.js +2 -10
- package/cjs/widgets/configure-related-items/configure-related-items.js +2 -10
- package/cjs/widgets/current-refinements/current-refinements.js +12 -30
- package/cjs/widgets/dynamic-widgets/dynamic-widgets.js +6 -25
- package/cjs/widgets/geo-search/GeoSearchRenderer.js +41 -68
- package/cjs/widgets/geo-search/createHTMLMarker.js +30 -60
- package/cjs/widgets/geo-search/defaultTemplates.js +0 -3
- package/cjs/widgets/geo-search/geo-search.js +27 -59
- package/cjs/widgets/hierarchical-menu/defaultTemplates.js +4 -7
- package/cjs/widgets/hierarchical-menu/hierarchical-menu.js +28 -47
- package/cjs/widgets/hits/hits.js +16 -37
- package/cjs/widgets/hits-per-page/hits-per-page.js +13 -31
- package/cjs/widgets/index/index.js +49 -95
- package/cjs/widgets/index.js +12 -50
- package/cjs/widgets/infinite-hits/infinite-hits.js +23 -44
- package/cjs/widgets/menu/defaultTemplates.js +3 -6
- package/cjs/widgets/menu/menu.js +23 -43
- package/cjs/widgets/menu-select/defaultTemplates.js +1 -3
- package/cjs/widgets/menu-select/menu-select.js +18 -38
- package/cjs/widgets/numeric-menu/defaultTemplates.js +3 -4
- package/cjs/widgets/numeric-menu/numeric-menu.js +17 -37
- package/cjs/widgets/pagination/pagination.js +32 -53
- package/cjs/widgets/panel/panel.js +20 -48
- package/cjs/widgets/places/places.js +16 -33
- package/cjs/widgets/powered-by/powered-by.js +10 -27
- package/cjs/widgets/query-rule-context/query-rule-context.js +2 -13
- package/cjs/widgets/query-rule-custom-data/query-rule-custom-data.js +14 -32
- package/cjs/widgets/range-input/range-input.js +23 -50
- package/cjs/widgets/range-slider/range-slider.js +28 -53
- package/cjs/widgets/rating-menu/defaultTemplates.js +8 -14
- package/cjs/widgets/rating-menu/rating-menu.js +17 -38
- package/cjs/widgets/refinement-list/defaultTemplates.js +5 -8
- package/cjs/widgets/refinement-list/refinement-list.js +39 -60
- package/cjs/widgets/relevant-sort/relevant-sort.js +10 -29
- package/cjs/widgets/search-box/defaultTemplates.js +0 -5
- package/cjs/widgets/search-box/search-box.js +31 -49
- package/cjs/widgets/sort-by/sort-by.js +11 -29
- package/cjs/widgets/stats/defaultTemplates.js +0 -1
- package/cjs/widgets/stats/stats.js +27 -57
- package/cjs/widgets/toggle-refinement/toggle-refinement.js +16 -36
- package/cjs/widgets/voice-search/defaultTemplates.js +4 -14
- package/cjs/widgets/voice-search/voice-search.js +17 -36
- package/dist/instantsearch.development.d.ts +8 -6
- package/dist/instantsearch.development.js +1725 -3087
- package/dist/instantsearch.development.js.map +1 -1
- package/dist/instantsearch.production.d.ts +8 -6
- package/dist/instantsearch.production.min.d.ts +8 -6
- package/dist/instantsearch.production.min.js +2 -2
- package/dist/instantsearch.production.min.js.map +1 -1
- package/es/components/Answers/Answers.js +6 -11
- package/es/components/Breadcrumb/Breadcrumb.js +5 -7
- package/es/components/ClearRefinements/ClearRefinements.js +4 -6
- package/es/components/CurrentRefinements/CurrentRefinements.js +7 -10
- package/es/components/GeoSearchControls/GeoSearchButton.js +6 -6
- package/es/components/GeoSearchControls/GeoSearchControls.js +11 -13
- package/es/components/GeoSearchControls/GeoSearchToggle.js +6 -6
- package/es/components/Highlight/Highlight.js +3 -7
- package/es/components/Hits/Hits.js +8 -15
- package/es/components/InfiniteHits/InfiniteHits.js +13 -20
- package/es/components/MenuSelect/MenuSelect.js +9 -13
- package/es/components/Pagination/Pagination.js +12 -15
- package/es/components/Panel/Panel.js +7 -20
- package/es/components/PoweredBy/PoweredBy.js +6 -5
- package/es/components/QueryRuleCustomData/QueryRuleCustomData.js +4 -4
- package/es/components/RangeInput/RangeInput.js +16 -43
- package/es/components/RefinementList/RefinementList.js +19 -64
- package/es/components/RefinementList/RefinementListItem.js +8 -10
- package/es/components/RelevantSort/RelevantSort.js +6 -6
- package/es/components/ReverseHighlight/ReverseHighlight.js +3 -7
- package/es/components/ReverseSnippet/ReverseSnippet.js +3 -7
- package/es/components/SearchBox/SearchBox.js +25 -63
- package/es/components/Selector/Selector.js +5 -5
- package/es/components/Slider/Pit.js +3 -7
- package/es/components/Slider/Rheostat.js +64 -129
- package/es/components/Slider/Slider.js +28 -58
- package/es/components/Snippet/Snippet.js +3 -7
- package/es/components/Stats/Stats.js +7 -15
- package/es/components/Template/Template.js +8 -32
- package/es/components/ToggleRefinement/ToggleRefinement.js +4 -6
- package/es/components/VoiceSearch/VoiceSearch.js +10 -13
- package/es/connectors/answers/connectAnswers.js +21 -35
- package/es/connectors/autocomplete/connectAutocomplete.js +8 -23
- package/es/connectors/breadcrumb/connectBreadcrumb.js +17 -46
- package/es/connectors/clear-refinements/connectClearRefinements.js +27 -43
- package/es/connectors/configure/connectConfigure.js +7 -16
- package/es/connectors/configure-related-items/connectConfigureRelatedItems.js +11 -31
- package/es/connectors/current-refinements/connectCurrentRefinements.js +18 -55
- package/es/connectors/dynamic-widgets/connectDynamicWidgets.js +17 -35
- package/es/connectors/geo-search/connectGeoSearch.js +17 -45
- package/es/connectors/hierarchical-menu/connectHierarchicalMenu.js +38 -72
- package/es/connectors/hits/connectHits.js +10 -24
- package/es/connectors/hits-per-page/connectHitsPerPage.js +15 -36
- package/es/connectors/index.d.ts +2 -1
- package/es/connectors/index.js +6 -3
- package/es/connectors/infinite-hits/connectInfiniteHits.js +26 -60
- package/es/connectors/menu/connectMenu.js +28 -64
- package/es/connectors/numeric-menu/connectNumericMenu.js +24 -76
- package/es/connectors/pagination/Paginator.js +3 -19
- package/es/connectors/pagination/connectPagination.js +8 -21
- package/es/connectors/powered-by/connectPoweredBy.js +4 -11
- package/es/connectors/query-rules/connectQueryRules.js +32 -54
- package/es/connectors/range/connectRange.js +41 -99
- package/es/connectors/rating-menu/connectRatingMenu.js +23 -77
- package/es/connectors/refinement-list/connectRefinementList.js +37 -68
- package/es/connectors/relevant-sort/connectRelevantSort.js +4 -13
- package/es/connectors/search-box/connectSearchBox.js +7 -21
- package/es/connectors/sort-by/connectSortBy.js +11 -19
- package/es/connectors/stats/connectStats.js +4 -9
- package/es/connectors/toggle-refinement/connectToggleRefinement.js +29 -61
- package/es/connectors/voice-search/connectVoiceSearch.js +13 -31
- package/es/helpers/components/Highlight.js +4 -8
- package/es/helpers/components/ReverseHighlight.js +7 -15
- package/es/helpers/components/ReverseSnippet.js +7 -15
- package/es/helpers/components/Snippet.js +4 -8
- package/es/helpers/get-insights-anonymous-user-token.js +5 -7
- package/es/helpers/highlight.js +9 -11
- package/es/helpers/insights.js +3 -10
- package/es/helpers/reverseHighlight.js +9 -11
- package/es/helpers/reverseSnippet.js +9 -11
- package/es/helpers/snippet.js +9 -11
- package/es/index.js +0 -2
- package/es/lib/InstantSearch.js +79 -170
- package/es/lib/createHelpers.js +4 -8
- package/es/lib/infiniteHitsCache/sessionStorage.js +9 -16
- package/es/lib/insights/client.js +8 -32
- package/es/lib/insights/listener.js +6 -18
- package/es/lib/routers/history.js +63 -99
- package/es/lib/stateMappings/simple.js +6 -12
- package/es/lib/stateMappings/singleIndex.js +1 -6
- package/es/lib/suit.js +2 -3
- package/es/lib/templating/prepareTemplateProps.js +8 -18
- package/es/lib/templating/renderTemplate.js +9 -20
- package/es/lib/utils/checkIndexUiState.js +18 -40
- package/es/lib/utils/clearRefinements.js +2 -8
- package/es/lib/utils/concatHighlightedParts.js +1 -1
- package/es/lib/utils/createConcurrentSafePromise.js +0 -2
- package/es/lib/utils/createSendEventForFacet.js +7 -12
- package/es/lib/utils/createSendEventForHits.js +8 -30
- package/es/lib/utils/debounce.js +0 -2
- package/es/lib/utils/defer.js +0 -10
- package/es/lib/utils/documentation.js +2 -3
- package/es/lib/utils/escape-highlight.js +3 -16
- package/es/lib/utils/escape-html.js +9 -5
- package/es/lib/utils/escapeFacetValue.js +0 -2
- package/es/lib/utils/find.js +2 -4
- package/es/lib/utils/findIndex.js +0 -2
- package/es/lib/utils/geo-search.js +14 -32
- package/es/lib/utils/getAppIdAndApiKey.js +2 -2
- package/es/lib/utils/getContainerNode.js +1 -5
- package/es/lib/utils/getHighlightFromSiblings.js +0 -3
- package/es/lib/utils/getHighlightedParts.js +1 -2
- package/es/lib/utils/getRefinements.js +13 -24
- package/es/lib/utils/getWidgetAttribute.js +0 -5
- package/es/lib/utils/hits-absolute-position.js +2 -5
- package/es/lib/utils/hits-query-id.js +2 -6
- package/es/lib/utils/isEqual.js +0 -7
- package/es/lib/utils/isPlainObject.js +3 -10
- package/es/lib/utils/logger.js +2 -12
- package/es/lib/utils/mergeSearchParameters.js +16 -37
- package/es/lib/utils/range.js +8 -13
- package/es/lib/utils/resolveSearchParameters.js +0 -2
- package/es/lib/utils/reverseHighlightedParts.js +2 -6
- package/es/lib/utils/safelyRunOnBrowser.js +7 -8
- package/es/lib/utils/setIndexHelperState.js +0 -2
- package/es/lib/version.d.ts +1 -1
- package/es/lib/version.js +1 -1
- package/es/lib/voiceSearchHelper/index.js +8 -35
- package/es/middlewares/createInsightsMiddleware.js +15 -41
- package/es/middlewares/createMetadataMiddleware.js +3 -9
- package/es/middlewares/createRouterMiddleware.js +8 -13
- package/es/types/index.js +9 -5
- package/es/widgets/analytics/analytics.js +12 -45
- package/es/widgets/answers/answers.js +19 -28
- package/es/widgets/breadcrumb/breadcrumb.js +18 -27
- package/es/widgets/clear-refinements/clear-refinements.js +15 -24
- package/es/widgets/configure/configure.js +3 -6
- package/es/widgets/configure-related-items/configure-related-items.js +2 -7
- package/es/widgets/current-refinements/current-refinements.js +12 -21
- package/es/widgets/dynamic-widgets/dynamic-widgets.js +6 -20
- package/es/widgets/geo-search/GeoSearchRenderer.js +41 -63
- package/es/widgets/geo-search/createHTMLMarker.js +30 -59
- package/es/widgets/geo-search/defaultTemplates.js +2 -2
- package/es/widgets/geo-search/geo-search.js +27 -49
- package/es/widgets/hierarchical-menu/defaultTemplates.js +5 -4
- package/es/widgets/hierarchical-menu/hierarchical-menu.js +28 -36
- package/es/widgets/hits/hits.js +16 -25
- package/es/widgets/hits-per-page/hits-per-page.js +13 -22
- package/es/widgets/index/index.js +49 -91
- package/es/widgets/index.d.ts +2 -1
- package/es/widgets/index.js +4 -3
- package/es/widgets/infinite-hits/infinite-hits.js +23 -32
- package/es/widgets/menu/defaultTemplates.js +4 -3
- package/es/widgets/menu/menu.js +23 -32
- package/es/widgets/menu-select/defaultTemplates.js +1 -1
- package/es/widgets/menu-select/menu-select.js +18 -27
- package/es/widgets/numeric-menu/defaultTemplates.js +4 -3
- package/es/widgets/numeric-menu/numeric-menu.js +17 -26
- package/es/widgets/pagination/pagination.js +32 -44
- package/es/widgets/panel/panel.js +20 -40
- package/es/widgets/places/places.js +16 -32
- package/es/widgets/powered-by/powered-by.js +10 -18
- package/es/widgets/query-rule-context/query-rule-context.js +2 -9
- package/es/widgets/query-rule-custom-data/query-rule-custom-data.js +13 -22
- package/es/widgets/range-input/range-input.js +23 -40
- package/es/widgets/range-slider/range-slider.js +28 -44
- package/es/widgets/rating-menu/defaultTemplates.js +9 -12
- package/es/widgets/rating-menu/rating-menu.js +17 -27
- package/es/widgets/refinement-list/defaultTemplates.js +6 -5
- package/es/widgets/refinement-list/refinement-list.js +39 -48
- package/es/widgets/relevant-sort/relevant-sort.js +10 -19
- package/es/widgets/search-box/defaultTemplates.js +1 -4
- package/es/widgets/search-box/search-box.js +31 -39
- package/es/widgets/sort-by/sort-by.js +11 -20
- package/es/widgets/stats/stats.js +26 -45
- package/es/widgets/toggle-refinement/toggle-refinement.js +16 -25
- package/es/widgets/voice-search/defaultTemplates.js +5 -13
- package/es/widgets/voice-search/voice-search.js +17 -26
- package/package.json +20 -119
- package/scripts/transforms/__testfixtures__/addWidget-to-addWidgets/imported.input.js +0 -1
- package/scripts/transforms/__testfixtures__/addWidget-to-addWidgets/imported.output.js +0 -1
- package/CHANGELOG.md +0 -3684
|
@@ -4,37 +4,23 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _index = require("../../lib/utils/index.js");
|
|
9
|
-
|
|
10
8
|
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; }
|
|
11
|
-
|
|
12
9
|
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; }
|
|
13
|
-
|
|
14
10
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
15
|
-
|
|
16
11
|
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."); }
|
|
17
|
-
|
|
18
12
|
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); }
|
|
19
|
-
|
|
20
13
|
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; }
|
|
21
|
-
|
|
22
|
-
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; }
|
|
23
|
-
|
|
14
|
+
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; }
|
|
24
15
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
25
|
-
|
|
26
|
-
function
|
|
27
|
-
|
|
28
|
-
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; }
|
|
29
|
-
|
|
16
|
+
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; }
|
|
17
|
+
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; }
|
|
30
18
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
31
|
-
|
|
32
19
|
var withUsage = (0, _index.createDocumentationMessageGenerator)({
|
|
33
20
|
name: 'menu',
|
|
34
21
|
connector: true
|
|
35
22
|
});
|
|
36
23
|
var DEFAULT_SORT = ['isRefined', 'name:asc'];
|
|
37
|
-
|
|
38
24
|
/**
|
|
39
25
|
* **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.
|
|
40
26
|
*
|
|
@@ -49,55 +35,45 @@ var connectMenu = function connectMenu(renderFn) {
|
|
|
49
35
|
(0, _index.checkRendering)(renderFn, withUsage());
|
|
50
36
|
return function (widgetParams) {
|
|
51
37
|
var _ref = widgetParams || {},
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
38
|
+
attribute = _ref.attribute,
|
|
39
|
+
_ref$limit = _ref.limit,
|
|
40
|
+
limit = _ref$limit === void 0 ? 10 : _ref$limit,
|
|
41
|
+
_ref$showMore = _ref.showMore,
|
|
42
|
+
showMore = _ref$showMore === void 0 ? false : _ref$showMore,
|
|
43
|
+
_ref$showMoreLimit = _ref.showMoreLimit,
|
|
44
|
+
showMoreLimit = _ref$showMoreLimit === void 0 ? 20 : _ref$showMoreLimit,
|
|
45
|
+
_ref$sortBy = _ref.sortBy,
|
|
46
|
+
sortBy = _ref$sortBy === void 0 ? DEFAULT_SORT : _ref$sortBy,
|
|
47
|
+
_ref$transformItems = _ref.transformItems,
|
|
48
|
+
transformItems = _ref$transformItems === void 0 ? function (items) {
|
|
49
|
+
return items;
|
|
50
|
+
} : _ref$transformItems;
|
|
66
51
|
if (!attribute) {
|
|
67
52
|
throw new Error(withUsage('The `attribute` option is required.'));
|
|
68
53
|
}
|
|
69
|
-
|
|
70
54
|
if (showMore === true && showMoreLimit <= limit) {
|
|
71
55
|
throw new Error(withUsage('The `showMoreLimit` option must be greater than `limit`.'));
|
|
72
56
|
}
|
|
73
|
-
|
|
74
57
|
var sendEvent;
|
|
75
|
-
|
|
76
58
|
var _createURL;
|
|
59
|
+
var _refine;
|
|
77
60
|
|
|
78
|
-
|
|
61
|
+
// Provide the same function to the `renderFn` so that way the user
|
|
79
62
|
// has to only bind it once when `isFirstRendering` for instance
|
|
80
|
-
|
|
81
|
-
|
|
82
63
|
var isShowingMore = false;
|
|
83
|
-
|
|
84
64
|
var toggleShowMore = function toggleShowMore() {};
|
|
85
|
-
|
|
86
65
|
function createToggleShowMore(renderOptions, widget) {
|
|
87
66
|
return function () {
|
|
88
67
|
isShowingMore = !isShowingMore;
|
|
89
68
|
widget.render(renderOptions);
|
|
90
69
|
};
|
|
91
70
|
}
|
|
92
|
-
|
|
93
71
|
function cachedToggleShowMore() {
|
|
94
72
|
toggleShowMore();
|
|
95
73
|
}
|
|
96
|
-
|
|
97
74
|
function getLimit() {
|
|
98
75
|
return isShowingMore ? showMoreLimit : limit;
|
|
99
76
|
}
|
|
100
|
-
|
|
101
77
|
return {
|
|
102
78
|
$$type: 'ais.menu',
|
|
103
79
|
init: function init(initOptions) {
|
|
@@ -124,12 +100,11 @@ var connectMenu = function connectMenu(renderFn) {
|
|
|
124
100
|
},
|
|
125
101
|
getWidgetRenderState: function getWidgetRenderState(renderOptions) {
|
|
126
102
|
var results = renderOptions.results,
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
103
|
+
createURL = renderOptions.createURL,
|
|
104
|
+
instantSearchInstance = renderOptions.instantSearchInstance,
|
|
105
|
+
helper = renderOptions.helper;
|
|
130
106
|
var items = [];
|
|
131
107
|
var canToggleShowMore = false;
|
|
132
|
-
|
|
133
108
|
if (!sendEvent) {
|
|
134
109
|
sendEvent = (0, _index.createSendEventForFacet)({
|
|
135
110
|
instantSearchInstance: instantSearchInstance,
|
|
@@ -138,28 +113,23 @@ var connectMenu = function connectMenu(renderFn) {
|
|
|
138
113
|
widgetType: this.$$type
|
|
139
114
|
});
|
|
140
115
|
}
|
|
141
|
-
|
|
142
116
|
if (!_createURL) {
|
|
143
117
|
_createURL = function _createURL(facetValue) {
|
|
144
118
|
return createURL(helper.state.resetPage().toggleFacetRefinement(attribute, facetValue));
|
|
145
119
|
};
|
|
146
120
|
}
|
|
147
|
-
|
|
148
121
|
if (!_refine) {
|
|
149
122
|
_refine = function _refine(facetValue) {
|
|
150
123
|
var _helper$getHierarchic = helper.getHierarchicalFacetBreadcrumb(attribute),
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
124
|
+
_helper$getHierarchic2 = _slicedToArray(_helper$getHierarchic, 1),
|
|
125
|
+
refinedItem = _helper$getHierarchic2[0];
|
|
154
126
|
sendEvent('click', facetValue ? facetValue : refinedItem);
|
|
155
127
|
helper.toggleFacetRefinement(attribute, facetValue ? facetValue : refinedItem).search();
|
|
156
128
|
};
|
|
157
129
|
}
|
|
158
|
-
|
|
159
130
|
if (renderOptions.results) {
|
|
160
131
|
toggleShowMore = createToggleShowMore(renderOptions, this);
|
|
161
132
|
}
|
|
162
|
-
|
|
163
133
|
if (results) {
|
|
164
134
|
var facetValues = results.getFacetValues(attribute, {
|
|
165
135
|
sortBy: sortBy,
|
|
@@ -169,10 +139,9 @@ var connectMenu = function connectMenu(renderFn) {
|
|
|
169
139
|
canToggleShowMore = showMore && (isShowingMore || facetItems.length > getLimit());
|
|
170
140
|
items = transformItems(facetItems.slice(0, getLimit()).map(function (_ref3) {
|
|
171
141
|
var label = _ref3.name,
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
142
|
+
value = _ref3.escapedValue,
|
|
143
|
+
path = _ref3.path,
|
|
144
|
+
item = _objectWithoutProperties(_ref3, ["name", "escapedValue", "path"]);
|
|
176
145
|
return _objectSpread(_objectSpread({}, item), {}, {
|
|
177
146
|
label: label,
|
|
178
147
|
value: value
|
|
@@ -181,7 +150,6 @@ var connectMenu = function connectMenu(renderFn) {
|
|
|
181
150
|
results: results
|
|
182
151
|
});
|
|
183
152
|
}
|
|
184
|
-
|
|
185
153
|
return {
|
|
186
154
|
items: items,
|
|
187
155
|
createURL: _createURL,
|
|
@@ -196,15 +164,12 @@ var connectMenu = function connectMenu(renderFn) {
|
|
|
196
164
|
},
|
|
197
165
|
getWidgetUiState: function getWidgetUiState(uiState, _ref4) {
|
|
198
166
|
var searchParameters = _ref4.searchParameters;
|
|
199
|
-
|
|
200
167
|
var _searchParameters$get = searchParameters.getHierarchicalFacetBreadcrumb(attribute),
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
168
|
+
_searchParameters$get2 = _slicedToArray(_searchParameters$get, 1),
|
|
169
|
+
value = _searchParameters$get2[0];
|
|
204
170
|
if (!value) {
|
|
205
171
|
return uiState;
|
|
206
172
|
}
|
|
207
|
-
|
|
208
173
|
return _objectSpread(_objectSpread({}, uiState), {}, {
|
|
209
174
|
menu: _objectSpread(_objectSpread({}, uiState.menu), {}, _defineProperty({}, attribute, value))
|
|
210
175
|
});
|
|
@@ -219,18 +184,15 @@ var connectMenu = function connectMenu(renderFn) {
|
|
|
219
184
|
var currentMaxValuesPerFacet = withFacetConfiguration.maxValuesPerFacet || 0;
|
|
220
185
|
var nextMaxValuesPerFacet = Math.max(currentMaxValuesPerFacet, showMore ? showMoreLimit : limit);
|
|
221
186
|
var withMaxValuesPerFacet = withFacetConfiguration.setQueryParameter('maxValuesPerFacet', nextMaxValuesPerFacet);
|
|
222
|
-
|
|
223
187
|
if (!value) {
|
|
224
188
|
return withMaxValuesPerFacet.setQueryParameters({
|
|
225
189
|
hierarchicalFacetsRefinements: _objectSpread(_objectSpread({}, withMaxValuesPerFacet.hierarchicalFacetsRefinements), {}, _defineProperty({}, attribute, []))
|
|
226
190
|
});
|
|
227
191
|
}
|
|
228
|
-
|
|
229
192
|
return withMaxValuesPerFacet.addHierarchicalFacetRefinement(attribute, value);
|
|
230
193
|
}
|
|
231
194
|
};
|
|
232
195
|
};
|
|
233
196
|
};
|
|
234
|
-
|
|
235
197
|
var _default = connectMenu;
|
|
236
198
|
exports.default = _default;
|
|
@@ -4,35 +4,22 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _index = require("../../lib/utils/index.js");
|
|
9
|
-
|
|
10
|
-
function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
11
|
-
|
|
8
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
12
9
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
13
|
-
|
|
14
10
|
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."); }
|
|
15
|
-
|
|
16
11
|
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); }
|
|
17
|
-
|
|
18
12
|
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; }
|
|
19
|
-
|
|
20
|
-
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; }
|
|
21
|
-
|
|
13
|
+
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; }
|
|
22
14
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
23
|
-
|
|
24
|
-
function
|
|
25
|
-
|
|
26
|
-
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; }
|
|
27
|
-
|
|
15
|
+
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; }
|
|
16
|
+
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; }
|
|
28
17
|
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; }
|
|
29
|
-
|
|
30
18
|
var withUsage = (0, _index.createDocumentationMessageGenerator)({
|
|
31
19
|
name: 'numeric-menu',
|
|
32
20
|
connector: true
|
|
33
21
|
});
|
|
34
22
|
var $$type = 'ais.numericMenu';
|
|
35
|
-
|
|
36
23
|
var createSendEvent = function createSendEvent(_ref) {
|
|
37
24
|
var instantSearchInstance = _ref.instantSearchInstance;
|
|
38
25
|
return function () {
|
|
@@ -42,34 +29,30 @@ var createSendEvent = function createSendEvent(_ref) {
|
|
|
42
29
|
}
|
|
43
30
|
};
|
|
44
31
|
};
|
|
45
|
-
|
|
46
32
|
var connectNumericMenu = function connectNumericMenu(renderFn) {
|
|
47
33
|
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _index.noop;
|
|
48
34
|
(0, _index.checkRendering)(renderFn, withUsage());
|
|
49
35
|
return function (widgetParams) {
|
|
50
36
|
var _ref2 = widgetParams || {},
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
37
|
+
_ref2$attribute = _ref2.attribute,
|
|
38
|
+
attribute = _ref2$attribute === void 0 ? '' : _ref2$attribute,
|
|
39
|
+
_ref2$items = _ref2.items,
|
|
40
|
+
items = _ref2$items === void 0 ? [] : _ref2$items,
|
|
41
|
+
_ref2$transformItems = _ref2.transformItems,
|
|
42
|
+
transformItems = _ref2$transformItems === void 0 ? function (item) {
|
|
43
|
+
return item;
|
|
44
|
+
} : _ref2$transformItems;
|
|
60
45
|
if (attribute === '') {
|
|
61
46
|
throw new Error(withUsage('The `attribute` option is required.'));
|
|
62
47
|
}
|
|
63
|
-
|
|
64
48
|
if (!items || items.length === 0) {
|
|
65
49
|
throw new Error(withUsage('The `items` option expects an array of objects.'));
|
|
66
50
|
}
|
|
67
|
-
|
|
68
51
|
var prepareItems = function prepareItems(state) {
|
|
69
52
|
return items.map(function (_ref3) {
|
|
70
53
|
var start = _ref3.start,
|
|
71
|
-
|
|
72
|
-
|
|
54
|
+
end = _ref3.end,
|
|
55
|
+
label = _ref3.label;
|
|
73
56
|
return {
|
|
74
57
|
label: label,
|
|
75
58
|
value: encodeURI(JSON.stringify({
|
|
@@ -84,7 +67,6 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
|
|
|
84
67
|
};
|
|
85
68
|
});
|
|
86
69
|
};
|
|
87
|
-
|
|
88
70
|
var connectorState = {};
|
|
89
71
|
return {
|
|
90
72
|
$$type: $$type,
|
|
@@ -109,20 +91,16 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
|
|
|
109
91
|
var searchParameters = _ref5.searchParameters;
|
|
110
92
|
var values = searchParameters.getNumericRefinements(attribute);
|
|
111
93
|
var equal = values['='] && values['='][0];
|
|
112
|
-
|
|
113
94
|
if (equal || equal === 0) {
|
|
114
95
|
return _objectSpread(_objectSpread({}, uiState), {}, {
|
|
115
96
|
numericMenu: _objectSpread(_objectSpread({}, uiState.numericMenu), {}, _defineProperty({}, attribute, "".concat(values['='])))
|
|
116
97
|
});
|
|
117
98
|
}
|
|
118
|
-
|
|
119
99
|
var min = values['>='] && values['>='][0] || '';
|
|
120
100
|
var max = values['<='] && values['<='][0] || '';
|
|
121
|
-
|
|
122
101
|
if (min === '' && max === '') {
|
|
123
102
|
return uiState;
|
|
124
103
|
}
|
|
125
|
-
|
|
126
104
|
return _objectSpread(_objectSpread({}, uiState), {}, {
|
|
127
105
|
numericMenu: _objectSpread(_objectSpread({}, uiState.numericMenu), {}, _defineProperty({}, attribute, "".concat(min, ":").concat(max)))
|
|
128
106
|
});
|
|
@@ -131,24 +109,19 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
|
|
|
131
109
|
var uiState = _ref6.uiState;
|
|
132
110
|
var value = uiState.numericMenu && uiState.numericMenu[attribute];
|
|
133
111
|
var withoutRefinements = searchParameters.clearRefinements(attribute);
|
|
134
|
-
|
|
135
112
|
if (!value) {
|
|
136
113
|
return withoutRefinements.setQueryParameters({
|
|
137
114
|
numericRefinements: _objectSpread(_objectSpread({}, withoutRefinements.numericRefinements), {}, _defineProperty({}, attribute, {}))
|
|
138
115
|
});
|
|
139
116
|
}
|
|
140
|
-
|
|
141
117
|
var isExact = value.indexOf(':') === -1;
|
|
142
|
-
|
|
143
118
|
if (isExact) {
|
|
144
119
|
return withoutRefinements.addNumericRefinement(attribute, '=', Number(value));
|
|
145
120
|
}
|
|
146
|
-
|
|
147
121
|
var _value$split$map = value.split(':').map(parseFloat),
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
122
|
+
_value$split$map2 = _slicedToArray(_value$split$map, 2),
|
|
123
|
+
min = _value$split$map2[0],
|
|
124
|
+
max = _value$split$map2[1];
|
|
152
125
|
var withMinRefinement = (0, _index.isFiniteNumber)(min) ? withoutRefinements.addNumericRefinement(attribute, '>=', min) : withoutRefinements;
|
|
153
126
|
var withMaxRefinement = (0, _index.isFiniteNumber)(max) ? withMinRefinement.addNumericRefinement(attribute, '<=', max) : withMinRefinement;
|
|
154
127
|
return withMaxRefinement;
|
|
@@ -160,11 +133,10 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
|
|
|
160
133
|
},
|
|
161
134
|
getWidgetRenderState: function getWidgetRenderState(_ref7) {
|
|
162
135
|
var results = _ref7.results,
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
136
|
+
state = _ref7.state,
|
|
137
|
+
instantSearchInstance = _ref7.instantSearchInstance,
|
|
138
|
+
helper = _ref7.helper,
|
|
139
|
+
createURL = _ref7.createURL;
|
|
168
140
|
if (!connectorState.refine) {
|
|
169
141
|
connectorState.refine = function (facetValue) {
|
|
170
142
|
var refinedState = getRefinedState(helper.state, attribute, facetValue);
|
|
@@ -172,7 +144,6 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
|
|
|
172
144
|
helper.setState(refinedState).search();
|
|
173
145
|
};
|
|
174
146
|
}
|
|
175
|
-
|
|
176
147
|
if (!connectorState.createURL) {
|
|
177
148
|
connectorState.createURL = function (newState) {
|
|
178
149
|
return function (facetValue) {
|
|
@@ -180,24 +151,19 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
|
|
|
180
151
|
};
|
|
181
152
|
};
|
|
182
153
|
}
|
|
183
|
-
|
|
184
154
|
if (!connectorState.sendEvent) {
|
|
185
155
|
connectorState.sendEvent = createSendEvent({
|
|
186
156
|
instantSearchInstance: instantSearchInstance
|
|
187
157
|
});
|
|
188
158
|
}
|
|
189
|
-
|
|
190
159
|
var hasNoResults = results ? results.nbHits === 0 : true;
|
|
191
160
|
var preparedItems = prepareItems(state);
|
|
192
161
|
var allIsSelected = true;
|
|
193
|
-
|
|
194
162
|
var _iterator = _createForOfIteratorHelper(preparedItems),
|
|
195
|
-
|
|
196
|
-
|
|
163
|
+
_step;
|
|
197
164
|
try {
|
|
198
165
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
199
166
|
var item = _step.value;
|
|
200
|
-
|
|
201
167
|
if (item.isRefined && decodeURI(item.value) !== '{}') {
|
|
202
168
|
allIsSelected = false;
|
|
203
169
|
break;
|
|
@@ -208,7 +174,6 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
|
|
|
208
174
|
} finally {
|
|
209
175
|
_iterator.f();
|
|
210
176
|
}
|
|
211
|
-
|
|
212
177
|
return {
|
|
213
178
|
createURL: connectorState.createURL(state),
|
|
214
179
|
items: transformItems(preparedItems, {
|
|
@@ -224,11 +189,9 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
|
|
|
224
189
|
};
|
|
225
190
|
};
|
|
226
191
|
};
|
|
227
|
-
|
|
228
192
|
function isRefined(state, attribute, option) {
|
|
229
193
|
// @TODO: same as another spot, why is this mixing arrays & elements?
|
|
230
194
|
var currentRefinements = state.getNumericRefinements(attribute);
|
|
231
|
-
|
|
232
195
|
if (option.start !== undefined && option.end !== undefined) {
|
|
233
196
|
if (option.start === option.end) {
|
|
234
197
|
return hasNumericRefinement(currentRefinements, '=', option.start);
|
|
@@ -236,80 +199,63 @@ function isRefined(state, attribute, option) {
|
|
|
236
199
|
return hasNumericRefinement(currentRefinements, '>=', option.start) && hasNumericRefinement(currentRefinements, '<=', option.end);
|
|
237
200
|
}
|
|
238
201
|
}
|
|
239
|
-
|
|
240
202
|
if (option.start !== undefined) {
|
|
241
203
|
return hasNumericRefinement(currentRefinements, '>=', option.start);
|
|
242
204
|
}
|
|
243
|
-
|
|
244
205
|
if (option.end !== undefined) {
|
|
245
206
|
return hasNumericRefinement(currentRefinements, '<=', option.end);
|
|
246
207
|
}
|
|
247
|
-
|
|
248
208
|
if (option.start === undefined && option.end === undefined) {
|
|
249
209
|
return Object.keys(currentRefinements).every(function (operator) {
|
|
250
210
|
return (currentRefinements[operator] || []).length === 0;
|
|
251
211
|
});
|
|
252
212
|
}
|
|
253
|
-
|
|
254
213
|
return false;
|
|
255
214
|
}
|
|
256
|
-
|
|
257
215
|
function getRefinedState(state, attribute, facetValue) {
|
|
258
216
|
var resolvedState = state;
|
|
259
|
-
var refinedOption = JSON.parse(decodeURI(facetValue));
|
|
217
|
+
var refinedOption = JSON.parse(decodeURI(facetValue));
|
|
260
218
|
|
|
219
|
+
// @TODO: why is array / element mixed here & hasRefinements; seems wrong?
|
|
261
220
|
var currentRefinements = resolvedState.getNumericRefinements(attribute);
|
|
262
|
-
|
|
263
221
|
if (refinedOption.start === undefined && refinedOption.end === undefined) {
|
|
264
222
|
return resolvedState.removeNumericRefinement(attribute);
|
|
265
223
|
}
|
|
266
|
-
|
|
267
224
|
if (!isRefined(resolvedState, attribute, refinedOption)) {
|
|
268
225
|
resolvedState = resolvedState.removeNumericRefinement(attribute);
|
|
269
226
|
}
|
|
270
|
-
|
|
271
227
|
if (refinedOption.start !== undefined && refinedOption.end !== undefined) {
|
|
272
228
|
if (refinedOption.start > refinedOption.end) {
|
|
273
229
|
throw new Error('option.start should be > to option.end');
|
|
274
230
|
}
|
|
275
|
-
|
|
276
231
|
if (refinedOption.start === refinedOption.end) {
|
|
277
232
|
if (hasNumericRefinement(currentRefinements, '=', refinedOption.start)) {
|
|
278
233
|
resolvedState = resolvedState.removeNumericRefinement(attribute, '=', refinedOption.start);
|
|
279
234
|
} else {
|
|
280
235
|
resolvedState = resolvedState.addNumericRefinement(attribute, '=', refinedOption.start);
|
|
281
236
|
}
|
|
282
|
-
|
|
283
237
|
return resolvedState;
|
|
284
238
|
}
|
|
285
239
|
}
|
|
286
|
-
|
|
287
240
|
if (refinedOption.start !== undefined) {
|
|
288
241
|
if (hasNumericRefinement(currentRefinements, '>=', refinedOption.start)) {
|
|
289
242
|
resolvedState = resolvedState.removeNumericRefinement(attribute, '>=', refinedOption.start);
|
|
290
243
|
}
|
|
291
|
-
|
|
292
244
|
resolvedState = resolvedState.addNumericRefinement(attribute, '>=', refinedOption.start);
|
|
293
245
|
}
|
|
294
|
-
|
|
295
246
|
if (refinedOption.end !== undefined) {
|
|
296
247
|
if (hasNumericRefinement(currentRefinements, '<=', refinedOption.end)) {
|
|
297
248
|
resolvedState = resolvedState.removeNumericRefinement(attribute, '<=', refinedOption.end);
|
|
298
249
|
}
|
|
299
|
-
|
|
300
250
|
resolvedState = resolvedState.addNumericRefinement(attribute, '<=', refinedOption.end);
|
|
301
251
|
}
|
|
302
|
-
|
|
303
252
|
if (typeof resolvedState.page === 'number') {
|
|
304
253
|
resolvedState.page = 0;
|
|
305
254
|
}
|
|
306
|
-
|
|
307
255
|
return resolvedState;
|
|
308
256
|
}
|
|
309
|
-
|
|
310
257
|
function hasNumericRefinement(currentRefinements, operator, value) {
|
|
311
258
|
return currentRefinements[operator] !== undefined && currentRefinements[operator].includes(value);
|
|
312
259
|
}
|
|
313
|
-
|
|
314
260
|
var _default = connectNumericMenu;
|
|
315
261
|
exports.default = _default;
|
|
@@ -4,47 +4,34 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _index = require("../../lib/utils/index.js");
|
|
9
|
-
|
|
10
8
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
11
|
-
|
|
12
9
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
13
|
-
|
|
14
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
15
|
-
|
|
10
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
16
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; }
|
|
17
|
-
|
|
18
12
|
var Paginator = /*#__PURE__*/function () {
|
|
19
13
|
function Paginator(params) {
|
|
20
14
|
_classCallCheck(this, Paginator);
|
|
21
|
-
|
|
22
15
|
_defineProperty(this, "currentPage", void 0);
|
|
23
|
-
|
|
24
16
|
_defineProperty(this, "total", void 0);
|
|
25
|
-
|
|
26
17
|
_defineProperty(this, "padding", void 0);
|
|
27
|
-
|
|
28
18
|
this.currentPage = params.currentPage;
|
|
29
19
|
this.total = params.total;
|
|
30
20
|
this.padding = params.padding;
|
|
31
21
|
}
|
|
32
|
-
|
|
33
22
|
_createClass(Paginator, [{
|
|
34
23
|
key: "pages",
|
|
35
24
|
value: function pages() {
|
|
36
25
|
var total = this.total,
|
|
37
|
-
|
|
38
|
-
|
|
26
|
+
currentPage = this.currentPage,
|
|
27
|
+
padding = this.padding;
|
|
39
28
|
if (total === 0) return [0];
|
|
40
29
|
var totalDisplayedPages = this.nbPagesDisplayed(padding, total);
|
|
41
|
-
|
|
42
30
|
if (totalDisplayedPages === total) {
|
|
43
31
|
return (0, _index.range)({
|
|
44
32
|
end: total
|
|
45
33
|
});
|
|
46
34
|
}
|
|
47
|
-
|
|
48
35
|
var paddingLeft = this.calculatePaddingLeft(currentPage, padding, total, totalDisplayedPages);
|
|
49
36
|
var paddingRight = totalDisplayedPages - paddingLeft;
|
|
50
37
|
var first = currentPage - paddingLeft;
|
|
@@ -65,11 +52,9 @@ var Paginator = /*#__PURE__*/function () {
|
|
|
65
52
|
if (current <= padding) {
|
|
66
53
|
return current;
|
|
67
54
|
}
|
|
68
|
-
|
|
69
55
|
if (current >= total - padding) {
|
|
70
56
|
return totalDisplayedPages - (total - current);
|
|
71
57
|
}
|
|
72
|
-
|
|
73
58
|
return padding;
|
|
74
59
|
}
|
|
75
60
|
}, {
|
|
@@ -83,9 +68,7 @@ var Paginator = /*#__PURE__*/function () {
|
|
|
83
68
|
return this.currentPage === 0;
|
|
84
69
|
}
|
|
85
70
|
}]);
|
|
86
|
-
|
|
87
71
|
return Paginator;
|
|
88
72
|
}();
|
|
89
|
-
|
|
90
73
|
var _default = Paginator;
|
|
91
74
|
exports.default = _default;
|