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
|
@@ -1,32 +1,24 @@
|
|
|
1
|
+
var _excluded = ["name", "escapedValue", "path"];
|
|
2
|
+
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); }
|
|
1
3
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
2
|
-
|
|
3
4
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
4
|
-
|
|
5
5
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
6
|
-
|
|
7
6
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
8
|
-
|
|
9
7
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
10
|
-
|
|
11
|
-
function
|
|
12
|
-
|
|
13
|
-
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
14
|
-
|
|
8
|
+
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; }
|
|
9
|
+
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; } }
|
|
15
10
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
16
|
-
|
|
17
|
-
function
|
|
18
|
-
|
|
19
|
-
function
|
|
20
|
-
|
|
21
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
22
|
-
|
|
11
|
+
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; }
|
|
12
|
+
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; }
|
|
13
|
+
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; }
|
|
14
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
15
|
+
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
16
|
import { checkRendering, createDocumentationMessageGenerator, createSendEventForFacet, noop } from "../../lib/utils/index.js";
|
|
24
17
|
var withUsage = createDocumentationMessageGenerator({
|
|
25
18
|
name: 'menu',
|
|
26
19
|
connector: true
|
|
27
20
|
});
|
|
28
21
|
var DEFAULT_SORT = ['isRefined', 'name:asc'];
|
|
29
|
-
|
|
30
22
|
/**
|
|
31
23
|
* **Menu** connector provides the logic to build a widget that will give the user the ability to choose a single value for a specific facet. The typical usage of menu is for navigation in categories.
|
|
32
24
|
*
|
|
@@ -41,55 +33,45 @@ var connectMenu = function connectMenu(renderFn) {
|
|
|
41
33
|
checkRendering(renderFn, withUsage());
|
|
42
34
|
return function (widgetParams) {
|
|
43
35
|
var _ref = widgetParams || {},
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
36
|
+
attribute = _ref.attribute,
|
|
37
|
+
_ref$limit = _ref.limit,
|
|
38
|
+
limit = _ref$limit === void 0 ? 10 : _ref$limit,
|
|
39
|
+
_ref$showMore = _ref.showMore,
|
|
40
|
+
showMore = _ref$showMore === void 0 ? false : _ref$showMore,
|
|
41
|
+
_ref$showMoreLimit = _ref.showMoreLimit,
|
|
42
|
+
showMoreLimit = _ref$showMoreLimit === void 0 ? 20 : _ref$showMoreLimit,
|
|
43
|
+
_ref$sortBy = _ref.sortBy,
|
|
44
|
+
sortBy = _ref$sortBy === void 0 ? DEFAULT_SORT : _ref$sortBy,
|
|
45
|
+
_ref$transformItems = _ref.transformItems,
|
|
46
|
+
transformItems = _ref$transformItems === void 0 ? function (items) {
|
|
47
|
+
return items;
|
|
48
|
+
} : _ref$transformItems;
|
|
58
49
|
if (!attribute) {
|
|
59
50
|
throw new Error(withUsage('The `attribute` option is required.'));
|
|
60
51
|
}
|
|
61
|
-
|
|
62
52
|
if (showMore === true && showMoreLimit <= limit) {
|
|
63
53
|
throw new Error(withUsage('The `showMoreLimit` option must be greater than `limit`.'));
|
|
64
54
|
}
|
|
65
|
-
|
|
66
55
|
var sendEvent;
|
|
67
|
-
|
|
68
56
|
var _createURL;
|
|
57
|
+
var _refine;
|
|
69
58
|
|
|
70
|
-
|
|
59
|
+
// Provide the same function to the `renderFn` so that way the user
|
|
71
60
|
// has to only bind it once when `isFirstRendering` for instance
|
|
72
|
-
|
|
73
|
-
|
|
74
61
|
var isShowingMore = false;
|
|
75
|
-
|
|
76
62
|
var toggleShowMore = function toggleShowMore() {};
|
|
77
|
-
|
|
78
63
|
function createToggleShowMore(renderOptions, widget) {
|
|
79
64
|
return function () {
|
|
80
65
|
isShowingMore = !isShowingMore;
|
|
81
66
|
widget.render(renderOptions);
|
|
82
67
|
};
|
|
83
68
|
}
|
|
84
|
-
|
|
85
69
|
function cachedToggleShowMore() {
|
|
86
70
|
toggleShowMore();
|
|
87
71
|
}
|
|
88
|
-
|
|
89
72
|
function getLimit() {
|
|
90
73
|
return isShowingMore ? showMoreLimit : limit;
|
|
91
74
|
}
|
|
92
|
-
|
|
93
75
|
return {
|
|
94
76
|
$$type: 'ais.menu',
|
|
95
77
|
init: function init(initOptions) {
|
|
@@ -116,12 +98,11 @@ var connectMenu = function connectMenu(renderFn) {
|
|
|
116
98
|
},
|
|
117
99
|
getWidgetRenderState: function getWidgetRenderState(renderOptions) {
|
|
118
100
|
var results = renderOptions.results,
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
101
|
+
createURL = renderOptions.createURL,
|
|
102
|
+
instantSearchInstance = renderOptions.instantSearchInstance,
|
|
103
|
+
helper = renderOptions.helper;
|
|
122
104
|
var items = [];
|
|
123
105
|
var canToggleShowMore = false;
|
|
124
|
-
|
|
125
106
|
if (!sendEvent) {
|
|
126
107
|
sendEvent = createSendEventForFacet({
|
|
127
108
|
instantSearchInstance: instantSearchInstance,
|
|
@@ -130,28 +111,23 @@ var connectMenu = function connectMenu(renderFn) {
|
|
|
130
111
|
widgetType: this.$$type
|
|
131
112
|
});
|
|
132
113
|
}
|
|
133
|
-
|
|
134
114
|
if (!_createURL) {
|
|
135
115
|
_createURL = function _createURL(facetValue) {
|
|
136
116
|
return createURL(helper.state.resetPage().toggleFacetRefinement(attribute, facetValue));
|
|
137
117
|
};
|
|
138
118
|
}
|
|
139
|
-
|
|
140
119
|
if (!_refine) {
|
|
141
120
|
_refine = function _refine(facetValue) {
|
|
142
121
|
var _helper$getHierarchic = helper.getHierarchicalFacetBreadcrumb(attribute),
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
122
|
+
_helper$getHierarchic2 = _slicedToArray(_helper$getHierarchic, 1),
|
|
123
|
+
refinedItem = _helper$getHierarchic2[0];
|
|
146
124
|
sendEvent('click', facetValue ? facetValue : refinedItem);
|
|
147
125
|
helper.toggleFacetRefinement(attribute, facetValue ? facetValue : refinedItem).search();
|
|
148
126
|
};
|
|
149
127
|
}
|
|
150
|
-
|
|
151
128
|
if (renderOptions.results) {
|
|
152
129
|
toggleShowMore = createToggleShowMore(renderOptions, this);
|
|
153
130
|
}
|
|
154
|
-
|
|
155
131
|
if (results) {
|
|
156
132
|
var facetValues = results.getFacetValues(attribute, {
|
|
157
133
|
sortBy: sortBy,
|
|
@@ -161,10 +137,9 @@ var connectMenu = function connectMenu(renderFn) {
|
|
|
161
137
|
canToggleShowMore = showMore && (isShowingMore || facetItems.length > getLimit());
|
|
162
138
|
items = transformItems(facetItems.slice(0, getLimit()).map(function (_ref3) {
|
|
163
139
|
var label = _ref3.name,
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
140
|
+
value = _ref3.escapedValue,
|
|
141
|
+
path = _ref3.path,
|
|
142
|
+
item = _objectWithoutProperties(_ref3, _excluded);
|
|
168
143
|
return _objectSpread(_objectSpread({}, item), {}, {
|
|
169
144
|
label: label,
|
|
170
145
|
value: value
|
|
@@ -173,7 +148,6 @@ var connectMenu = function connectMenu(renderFn) {
|
|
|
173
148
|
results: results
|
|
174
149
|
});
|
|
175
150
|
}
|
|
176
|
-
|
|
177
151
|
return {
|
|
178
152
|
items: items,
|
|
179
153
|
createURL: _createURL,
|
|
@@ -188,15 +162,12 @@ var connectMenu = function connectMenu(renderFn) {
|
|
|
188
162
|
},
|
|
189
163
|
getWidgetUiState: function getWidgetUiState(uiState, _ref4) {
|
|
190
164
|
var searchParameters = _ref4.searchParameters;
|
|
191
|
-
|
|
192
165
|
var _searchParameters$get = searchParameters.getHierarchicalFacetBreadcrumb(attribute),
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
166
|
+
_searchParameters$get2 = _slicedToArray(_searchParameters$get, 1),
|
|
167
|
+
value = _searchParameters$get2[0];
|
|
196
168
|
if (!value) {
|
|
197
169
|
return uiState;
|
|
198
170
|
}
|
|
199
|
-
|
|
200
171
|
return _objectSpread(_objectSpread({}, uiState), {}, {
|
|
201
172
|
menu: _objectSpread(_objectSpread({}, uiState.menu), {}, _defineProperty({}, attribute, value))
|
|
202
173
|
});
|
|
@@ -211,17 +182,14 @@ var connectMenu = function connectMenu(renderFn) {
|
|
|
211
182
|
var currentMaxValuesPerFacet = withFacetConfiguration.maxValuesPerFacet || 0;
|
|
212
183
|
var nextMaxValuesPerFacet = Math.max(currentMaxValuesPerFacet, showMore ? showMoreLimit : limit);
|
|
213
184
|
var withMaxValuesPerFacet = withFacetConfiguration.setQueryParameter('maxValuesPerFacet', nextMaxValuesPerFacet);
|
|
214
|
-
|
|
215
185
|
if (!value) {
|
|
216
186
|
return withMaxValuesPerFacet.setQueryParameters({
|
|
217
187
|
hierarchicalFacetsRefinements: _objectSpread(_objectSpread({}, withMaxValuesPerFacet.hierarchicalFacetsRefinements), {}, _defineProperty({}, attribute, []))
|
|
218
188
|
});
|
|
219
189
|
}
|
|
220
|
-
|
|
221
190
|
return withMaxValuesPerFacet.addHierarchicalFacetRefinement(attribute, value);
|
|
222
191
|
}
|
|
223
192
|
};
|
|
224
193
|
};
|
|
225
194
|
};
|
|
226
|
-
|
|
227
195
|
export default connectMenu;
|
|
@@ -1,30 +1,22 @@
|
|
|
1
|
-
function
|
|
2
|
-
|
|
1
|
+
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); }
|
|
2
|
+
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; } } }; }
|
|
3
3
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
4
|
-
|
|
5
4
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
6
|
-
|
|
7
5
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
8
|
-
|
|
9
|
-
function
|
|
10
|
-
|
|
11
|
-
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; }
|
|
12
|
-
|
|
6
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
7
|
+
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; } }
|
|
13
8
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
14
|
-
|
|
15
|
-
function
|
|
16
|
-
|
|
17
|
-
function
|
|
18
|
-
|
|
19
|
-
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; }
|
|
20
|
-
|
|
9
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
10
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
11
|
+
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; }
|
|
12
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
13
|
+
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
14
|
import { checkRendering, createDocumentationMessageGenerator, isFiniteNumber, noop } from "../../lib/utils/index.js";
|
|
22
15
|
var withUsage = createDocumentationMessageGenerator({
|
|
23
16
|
name: 'numeric-menu',
|
|
24
17
|
connector: true
|
|
25
18
|
});
|
|
26
19
|
var $$type = 'ais.numericMenu';
|
|
27
|
-
|
|
28
20
|
var createSendEvent = function createSendEvent(_ref) {
|
|
29
21
|
var instantSearchInstance = _ref.instantSearchInstance;
|
|
30
22
|
return function () {
|
|
@@ -34,34 +26,30 @@ var createSendEvent = function createSendEvent(_ref) {
|
|
|
34
26
|
}
|
|
35
27
|
};
|
|
36
28
|
};
|
|
37
|
-
|
|
38
29
|
var connectNumericMenu = function connectNumericMenu(renderFn) {
|
|
39
30
|
var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
|
|
40
31
|
checkRendering(renderFn, withUsage());
|
|
41
32
|
return function (widgetParams) {
|
|
42
33
|
var _ref2 = widgetParams || {},
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
34
|
+
_ref2$attribute = _ref2.attribute,
|
|
35
|
+
attribute = _ref2$attribute === void 0 ? '' : _ref2$attribute,
|
|
36
|
+
_ref2$items = _ref2.items,
|
|
37
|
+
items = _ref2$items === void 0 ? [] : _ref2$items,
|
|
38
|
+
_ref2$transformItems = _ref2.transformItems,
|
|
39
|
+
transformItems = _ref2$transformItems === void 0 ? function (item) {
|
|
40
|
+
return item;
|
|
41
|
+
} : _ref2$transformItems;
|
|
52
42
|
if (attribute === '') {
|
|
53
43
|
throw new Error(withUsage('The `attribute` option is required.'));
|
|
54
44
|
}
|
|
55
|
-
|
|
56
45
|
if (!items || items.length === 0) {
|
|
57
46
|
throw new Error(withUsage('The `items` option expects an array of objects.'));
|
|
58
47
|
}
|
|
59
|
-
|
|
60
48
|
var prepareItems = function prepareItems(state) {
|
|
61
49
|
return items.map(function (_ref3) {
|
|
62
50
|
var start = _ref3.start,
|
|
63
|
-
|
|
64
|
-
|
|
51
|
+
end = _ref3.end,
|
|
52
|
+
label = _ref3.label;
|
|
65
53
|
return {
|
|
66
54
|
label: label,
|
|
67
55
|
value: encodeURI(JSON.stringify({
|
|
@@ -76,7 +64,6 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
|
|
|
76
64
|
};
|
|
77
65
|
});
|
|
78
66
|
};
|
|
79
|
-
|
|
80
67
|
var connectorState = {};
|
|
81
68
|
return {
|
|
82
69
|
$$type: $$type,
|
|
@@ -101,20 +88,16 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
|
|
|
101
88
|
var searchParameters = _ref5.searchParameters;
|
|
102
89
|
var values = searchParameters.getNumericRefinements(attribute);
|
|
103
90
|
var equal = values['='] && values['='][0];
|
|
104
|
-
|
|
105
91
|
if (equal || equal === 0) {
|
|
106
92
|
return _objectSpread(_objectSpread({}, uiState), {}, {
|
|
107
93
|
numericMenu: _objectSpread(_objectSpread({}, uiState.numericMenu), {}, _defineProperty({}, attribute, "".concat(values['='])))
|
|
108
94
|
});
|
|
109
95
|
}
|
|
110
|
-
|
|
111
96
|
var min = values['>='] && values['>='][0] || '';
|
|
112
97
|
var max = values['<='] && values['<='][0] || '';
|
|
113
|
-
|
|
114
98
|
if (min === '' && max === '') {
|
|
115
99
|
return uiState;
|
|
116
100
|
}
|
|
117
|
-
|
|
118
101
|
return _objectSpread(_objectSpread({}, uiState), {}, {
|
|
119
102
|
numericMenu: _objectSpread(_objectSpread({}, uiState.numericMenu), {}, _defineProperty({}, attribute, "".concat(min, ":").concat(max)))
|
|
120
103
|
});
|
|
@@ -123,24 +106,19 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
|
|
|
123
106
|
var uiState = _ref6.uiState;
|
|
124
107
|
var value = uiState.numericMenu && uiState.numericMenu[attribute];
|
|
125
108
|
var withoutRefinements = searchParameters.clearRefinements(attribute);
|
|
126
|
-
|
|
127
109
|
if (!value) {
|
|
128
110
|
return withoutRefinements.setQueryParameters({
|
|
129
111
|
numericRefinements: _objectSpread(_objectSpread({}, withoutRefinements.numericRefinements), {}, _defineProperty({}, attribute, {}))
|
|
130
112
|
});
|
|
131
113
|
}
|
|
132
|
-
|
|
133
114
|
var isExact = value.indexOf(':') === -1;
|
|
134
|
-
|
|
135
115
|
if (isExact) {
|
|
136
116
|
return withoutRefinements.addNumericRefinement(attribute, '=', Number(value));
|
|
137
117
|
}
|
|
138
|
-
|
|
139
118
|
var _value$split$map = value.split(':').map(parseFloat),
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
119
|
+
_value$split$map2 = _slicedToArray(_value$split$map, 2),
|
|
120
|
+
min = _value$split$map2[0],
|
|
121
|
+
max = _value$split$map2[1];
|
|
144
122
|
var withMinRefinement = isFiniteNumber(min) ? withoutRefinements.addNumericRefinement(attribute, '>=', min) : withoutRefinements;
|
|
145
123
|
var withMaxRefinement = isFiniteNumber(max) ? withMinRefinement.addNumericRefinement(attribute, '<=', max) : withMinRefinement;
|
|
146
124
|
return withMaxRefinement;
|
|
@@ -152,11 +130,10 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
|
|
|
152
130
|
},
|
|
153
131
|
getWidgetRenderState: function getWidgetRenderState(_ref7) {
|
|
154
132
|
var results = _ref7.results,
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
133
|
+
state = _ref7.state,
|
|
134
|
+
instantSearchInstance = _ref7.instantSearchInstance,
|
|
135
|
+
helper = _ref7.helper,
|
|
136
|
+
createURL = _ref7.createURL;
|
|
160
137
|
if (!connectorState.refine) {
|
|
161
138
|
connectorState.refine = function (facetValue) {
|
|
162
139
|
var refinedState = getRefinedState(helper.state, attribute, facetValue);
|
|
@@ -164,7 +141,6 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
|
|
|
164
141
|
helper.setState(refinedState).search();
|
|
165
142
|
};
|
|
166
143
|
}
|
|
167
|
-
|
|
168
144
|
if (!connectorState.createURL) {
|
|
169
145
|
connectorState.createURL = function (newState) {
|
|
170
146
|
return function (facetValue) {
|
|
@@ -172,24 +148,21 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
|
|
|
172
148
|
};
|
|
173
149
|
};
|
|
174
150
|
}
|
|
175
|
-
|
|
176
151
|
if (!connectorState.sendEvent) {
|
|
177
152
|
connectorState.sendEvent = createSendEvent({
|
|
178
153
|
instantSearchInstance: instantSearchInstance
|
|
179
154
|
});
|
|
180
155
|
}
|
|
181
|
-
|
|
182
156
|
var hasNoResults = results ? results.nbHits === 0 : true;
|
|
183
157
|
var preparedItems = prepareItems(state);
|
|
184
158
|
var allIsSelected = true;
|
|
185
|
-
|
|
159
|
+
// @TODO avoid for..of for polyfill reasons
|
|
160
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
186
161
|
var _iterator = _createForOfIteratorHelper(preparedItems),
|
|
187
|
-
|
|
188
|
-
|
|
162
|
+
_step;
|
|
189
163
|
try {
|
|
190
164
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
191
165
|
var item = _step.value;
|
|
192
|
-
|
|
193
166
|
if (item.isRefined && decodeURI(item.value) !== '{}') {
|
|
194
167
|
allIsSelected = false;
|
|
195
168
|
break;
|
|
@@ -200,7 +173,6 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
|
|
|
200
173
|
} finally {
|
|
201
174
|
_iterator.f();
|
|
202
175
|
}
|
|
203
|
-
|
|
204
176
|
return {
|
|
205
177
|
createURL: connectorState.createURL(state),
|
|
206
178
|
items: transformItems(preparedItems, {
|
|
@@ -216,11 +188,9 @@ var connectNumericMenu = function connectNumericMenu(renderFn) {
|
|
|
216
188
|
};
|
|
217
189
|
};
|
|
218
190
|
};
|
|
219
|
-
|
|
220
191
|
function isRefined(state, attribute, option) {
|
|
221
192
|
// @TODO: same as another spot, why is this mixing arrays & elements?
|
|
222
193
|
var currentRefinements = state.getNumericRefinements(attribute);
|
|
223
|
-
|
|
224
194
|
if (option.start !== undefined && option.end !== undefined) {
|
|
225
195
|
if (option.start === option.end) {
|
|
226
196
|
return hasNumericRefinement(currentRefinements, '=', option.start);
|
|
@@ -228,79 +198,62 @@ function isRefined(state, attribute, option) {
|
|
|
228
198
|
return hasNumericRefinement(currentRefinements, '>=', option.start) && hasNumericRefinement(currentRefinements, '<=', option.end);
|
|
229
199
|
}
|
|
230
200
|
}
|
|
231
|
-
|
|
232
201
|
if (option.start !== undefined) {
|
|
233
202
|
return hasNumericRefinement(currentRefinements, '>=', option.start);
|
|
234
203
|
}
|
|
235
|
-
|
|
236
204
|
if (option.end !== undefined) {
|
|
237
205
|
return hasNumericRefinement(currentRefinements, '<=', option.end);
|
|
238
206
|
}
|
|
239
|
-
|
|
240
207
|
if (option.start === undefined && option.end === undefined) {
|
|
241
208
|
return Object.keys(currentRefinements).every(function (operator) {
|
|
242
209
|
return (currentRefinements[operator] || []).length === 0;
|
|
243
210
|
});
|
|
244
211
|
}
|
|
245
|
-
|
|
246
212
|
return false;
|
|
247
213
|
}
|
|
248
|
-
|
|
249
214
|
function getRefinedState(state, attribute, facetValue) {
|
|
250
215
|
var resolvedState = state;
|
|
251
|
-
var refinedOption = JSON.parse(decodeURI(facetValue));
|
|
216
|
+
var refinedOption = JSON.parse(decodeURI(facetValue));
|
|
252
217
|
|
|
218
|
+
// @TODO: why is array / element mixed here & hasRefinements; seems wrong?
|
|
253
219
|
var currentRefinements = resolvedState.getNumericRefinements(attribute);
|
|
254
|
-
|
|
255
220
|
if (refinedOption.start === undefined && refinedOption.end === undefined) {
|
|
256
221
|
return resolvedState.removeNumericRefinement(attribute);
|
|
257
222
|
}
|
|
258
|
-
|
|
259
223
|
if (!isRefined(resolvedState, attribute, refinedOption)) {
|
|
260
224
|
resolvedState = resolvedState.removeNumericRefinement(attribute);
|
|
261
225
|
}
|
|
262
|
-
|
|
263
226
|
if (refinedOption.start !== undefined && refinedOption.end !== undefined) {
|
|
264
227
|
if (refinedOption.start > refinedOption.end) {
|
|
265
228
|
throw new Error('option.start should be > to option.end');
|
|
266
229
|
}
|
|
267
|
-
|
|
268
230
|
if (refinedOption.start === refinedOption.end) {
|
|
269
231
|
if (hasNumericRefinement(currentRefinements, '=', refinedOption.start)) {
|
|
270
232
|
resolvedState = resolvedState.removeNumericRefinement(attribute, '=', refinedOption.start);
|
|
271
233
|
} else {
|
|
272
234
|
resolvedState = resolvedState.addNumericRefinement(attribute, '=', refinedOption.start);
|
|
273
235
|
}
|
|
274
|
-
|
|
275
236
|
return resolvedState;
|
|
276
237
|
}
|
|
277
238
|
}
|
|
278
|
-
|
|
279
239
|
if (refinedOption.start !== undefined) {
|
|
280
240
|
if (hasNumericRefinement(currentRefinements, '>=', refinedOption.start)) {
|
|
281
241
|
resolvedState = resolvedState.removeNumericRefinement(attribute, '>=', refinedOption.start);
|
|
282
242
|
}
|
|
283
|
-
|
|
284
243
|
resolvedState = resolvedState.addNumericRefinement(attribute, '>=', refinedOption.start);
|
|
285
244
|
}
|
|
286
|
-
|
|
287
245
|
if (refinedOption.end !== undefined) {
|
|
288
246
|
if (hasNumericRefinement(currentRefinements, '<=', refinedOption.end)) {
|
|
289
247
|
resolvedState = resolvedState.removeNumericRefinement(attribute, '<=', refinedOption.end);
|
|
290
248
|
}
|
|
291
|
-
|
|
292
249
|
resolvedState = resolvedState.addNumericRefinement(attribute, '<=', refinedOption.end);
|
|
293
250
|
}
|
|
294
|
-
|
|
295
251
|
if (typeof resolvedState.page === 'number') {
|
|
296
252
|
resolvedState.page = 0;
|
|
297
253
|
}
|
|
298
|
-
|
|
299
254
|
return resolvedState;
|
|
300
255
|
}
|
|
301
|
-
|
|
302
256
|
function hasNumericRefinement(currentRefinements, operator, value) {
|
|
303
257
|
return currentRefinements[operator] !== undefined && currentRefinements[operator].includes(value);
|
|
304
258
|
}
|
|
305
|
-
|
|
306
259
|
export default connectNumericMenu;
|
|
@@ -1,43 +1,34 @@
|
|
|
1
|
+
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); }
|
|
1
2
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
2
|
-
|
|
3
|
-
function
|
|
4
|
-
|
|
5
|
-
function
|
|
6
|
-
|
|
7
|
-
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; }
|
|
8
|
-
|
|
3
|
+
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); } }
|
|
4
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
5
|
+
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; }
|
|
6
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
7
|
+
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); }
|
|
9
8
|
import { range } from "../../lib/utils/index.js";
|
|
10
|
-
|
|
11
9
|
var Paginator = /*#__PURE__*/function () {
|
|
12
10
|
function Paginator(params) {
|
|
13
11
|
_classCallCheck(this, Paginator);
|
|
14
|
-
|
|
15
12
|
_defineProperty(this, "currentPage", void 0);
|
|
16
|
-
|
|
17
13
|
_defineProperty(this, "total", void 0);
|
|
18
|
-
|
|
19
14
|
_defineProperty(this, "padding", void 0);
|
|
20
|
-
|
|
21
15
|
this.currentPage = params.currentPage;
|
|
22
16
|
this.total = params.total;
|
|
23
17
|
this.padding = params.padding;
|
|
24
18
|
}
|
|
25
|
-
|
|
26
19
|
_createClass(Paginator, [{
|
|
27
20
|
key: "pages",
|
|
28
21
|
value: function pages() {
|
|
29
22
|
var total = this.total,
|
|
30
|
-
|
|
31
|
-
|
|
23
|
+
currentPage = this.currentPage,
|
|
24
|
+
padding = this.padding;
|
|
32
25
|
if (total === 0) return [0];
|
|
33
26
|
var totalDisplayedPages = this.nbPagesDisplayed(padding, total);
|
|
34
|
-
|
|
35
27
|
if (totalDisplayedPages === total) {
|
|
36
28
|
return range({
|
|
37
29
|
end: total
|
|
38
30
|
});
|
|
39
31
|
}
|
|
40
|
-
|
|
41
32
|
var paddingLeft = this.calculatePaddingLeft(currentPage, padding, total, totalDisplayedPages);
|
|
42
33
|
var paddingRight = totalDisplayedPages - paddingLeft;
|
|
43
34
|
var first = currentPage - paddingLeft;
|
|
@@ -58,11 +49,9 @@ var Paginator = /*#__PURE__*/function () {
|
|
|
58
49
|
if (current <= padding) {
|
|
59
50
|
return current;
|
|
60
51
|
}
|
|
61
|
-
|
|
62
52
|
if (current >= total - padding) {
|
|
63
53
|
return totalDisplayedPages - (total - current);
|
|
64
54
|
}
|
|
65
|
-
|
|
66
55
|
return padding;
|
|
67
56
|
}
|
|
68
57
|
}, {
|
|
@@ -76,8 +65,6 @@ var Paginator = /*#__PURE__*/function () {
|
|
|
76
65
|
return this.currentPage === 0;
|
|
77
66
|
}
|
|
78
67
|
}]);
|
|
79
|
-
|
|
80
68
|
return Paginator;
|
|
81
69
|
}();
|
|
82
|
-
|
|
83
70
|
export default Paginator;
|