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