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,14 +1,13 @@
|
|
|
1
1
|
export function createDocumentationLink(_ref) {
|
|
2
2
|
var name = _ref.name,
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
_ref$connector = _ref.connector,
|
|
4
|
+
connector = _ref$connector === void 0 ? false : _ref$connector;
|
|
5
5
|
return ['https://www.algolia.com/doc/api-reference/widgets/', name, '/js/', connector ? '#connector' : ''].join('');
|
|
6
6
|
}
|
|
7
7
|
export function createDocumentationMessageGenerator() {
|
|
8
8
|
for (var _len = arguments.length, widgets = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
9
9
|
widgets[_key] = arguments[_key];
|
|
10
10
|
}
|
|
11
|
-
|
|
12
11
|
var links = widgets.map(function (widget) {
|
|
13
12
|
return createDocumentationLink(widget);
|
|
14
13
|
}).join(', ');
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
function
|
|
2
|
-
|
|
3
|
-
function
|
|
4
|
-
|
|
5
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
6
|
-
|
|
7
|
-
function
|
|
8
|
-
|
|
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 _objectDestructuringEmpty(obj) { if (obj == null) throw new TypeError("Cannot destructure " + obj); }
|
|
3
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
4
|
+
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; }
|
|
5
|
+
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; }
|
|
6
|
+
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; }
|
|
7
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
8
|
+
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
9
|
import { escape } from "./escape-html.js";
|
|
10
10
|
import { isPlainObject } from "./isPlainObject.js";
|
|
11
11
|
export var TAG_PLACEHOLDER = {
|
|
@@ -16,47 +16,38 @@ export var TAG_REPLACEMENT = {
|
|
|
16
16
|
highlightPreTag: '<mark>',
|
|
17
17
|
highlightPostTag: '</mark>'
|
|
18
18
|
};
|
|
19
|
-
|
|
20
19
|
function replaceTagsAndEscape(value) {
|
|
21
20
|
return escape(value).replace(new RegExp(TAG_PLACEHOLDER.highlightPreTag, 'g'), TAG_REPLACEMENT.highlightPreTag).replace(new RegExp(TAG_PLACEHOLDER.highlightPostTag, 'g'), TAG_REPLACEMENT.highlightPostTag);
|
|
22
21
|
}
|
|
23
|
-
|
|
24
22
|
function recursiveEscape(input) {
|
|
25
23
|
if (isPlainObject(input) && typeof input.value !== 'string') {
|
|
26
24
|
return Object.keys(input).reduce(function (acc, key) {
|
|
27
25
|
return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, recursiveEscape(input[key])));
|
|
28
26
|
}, {});
|
|
29
27
|
}
|
|
30
|
-
|
|
31
28
|
if (Array.isArray(input)) {
|
|
32
29
|
return input.map(recursiveEscape);
|
|
33
30
|
}
|
|
34
|
-
|
|
35
31
|
return _objectSpread(_objectSpread({}, input), {}, {
|
|
36
32
|
value: replaceTagsAndEscape(input.value)
|
|
37
33
|
});
|
|
38
34
|
}
|
|
39
|
-
|
|
40
35
|
export function escapeHits(hits) {
|
|
41
36
|
if (hits.__escaped === undefined) {
|
|
42
37
|
// We don't override the value on hit because it will mutate the raw results
|
|
43
38
|
// instead we make a shallow copy and we assign the escaped values on it.
|
|
44
39
|
hits = hits.map(function (_ref) {
|
|
45
|
-
var hit = _extends({}, _ref);
|
|
46
|
-
|
|
40
|
+
var hit = _extends({}, (_objectDestructuringEmpty(_ref), _ref));
|
|
47
41
|
if (hit._highlightResult) {
|
|
48
42
|
hit._highlightResult = recursiveEscape(hit._highlightResult);
|
|
49
43
|
}
|
|
50
|
-
|
|
51
44
|
if (hit._snippetResult) {
|
|
52
45
|
hit._snippetResult = recursiveEscape(hit._snippetResult);
|
|
53
46
|
}
|
|
54
|
-
|
|
55
47
|
return hit;
|
|
56
48
|
});
|
|
57
49
|
hits.__escaped = true;
|
|
58
50
|
}
|
|
59
|
-
|
|
60
51
|
return hits;
|
|
61
52
|
}
|
|
62
53
|
export function escapeFacets(facetHits) {
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* This implementation is taken from Lodash implementation.
|
|
3
3
|
* See: https://github.com/lodash/lodash/blob/4.17.11-npm/escape.js
|
|
4
4
|
*/
|
|
5
|
+
|
|
5
6
|
// Used to map characters to HTML entities.
|
|
6
7
|
var htmlEntities = {
|
|
7
8
|
'&': '&',
|
|
@@ -9,41 +10,44 @@ var htmlEntities = {
|
|
|
9
10
|
'>': '>',
|
|
10
11
|
'"': '"',
|
|
11
12
|
"'": '''
|
|
12
|
-
};
|
|
13
|
+
};
|
|
13
14
|
|
|
15
|
+
// Used to match HTML entities and HTML characters.
|
|
14
16
|
var regexUnescapedHtml = /[&<>"']/g;
|
|
15
17
|
var regexHasUnescapedHtml = RegExp(regexUnescapedHtml.source);
|
|
18
|
+
|
|
16
19
|
/**
|
|
17
20
|
* Converts the characters "&", "<", ">", '"', and "'" in `string` to their
|
|
18
21
|
* corresponding HTML entities.
|
|
19
22
|
*/
|
|
20
|
-
|
|
21
23
|
export function escape(value) {
|
|
22
24
|
return value && regexHasUnescapedHtml.test(value) ? value.replace(regexUnescapedHtml, function (character) {
|
|
23
25
|
return htmlEntities[character];
|
|
24
26
|
}) : value;
|
|
25
27
|
}
|
|
28
|
+
|
|
26
29
|
/**
|
|
27
30
|
* This implementation is taken from Lodash implementation.
|
|
28
31
|
* See: https://github.com/lodash/lodash/blob/4.17.11-npm/unescape.js
|
|
29
32
|
*/
|
|
30
|
-
// Used to map HTML entities to characters.
|
|
31
33
|
|
|
34
|
+
// Used to map HTML entities to characters.
|
|
32
35
|
var htmlCharacters = {
|
|
33
36
|
'&': '&',
|
|
34
37
|
'<': '<',
|
|
35
38
|
'>': '>',
|
|
36
39
|
'"': '"',
|
|
37
40
|
''': "'"
|
|
38
|
-
};
|
|
41
|
+
};
|
|
39
42
|
|
|
43
|
+
// Used to match HTML entities and HTML characters.
|
|
40
44
|
var regexEscapedHtml = /&(amp|quot|lt|gt|#39);/g;
|
|
41
45
|
var regexHasEscapedHtml = RegExp(regexEscapedHtml.source);
|
|
46
|
+
|
|
42
47
|
/**
|
|
43
48
|
* Converts the HTML entities "&", "<", ">", '"', and "'" in `string` to their
|
|
44
49
|
* characters.
|
|
45
50
|
*/
|
|
46
|
-
|
|
47
51
|
export function unescape(value) {
|
|
48
52
|
return value && regexHasEscapedHtml.test(value) ? value.replace(regexEscapedHtml, function (character) {
|
|
49
53
|
return htmlCharacters[character];
|
|
@@ -2,13 +2,11 @@ export function unescapeFacetValue(value) {
|
|
|
2
2
|
if (typeof value === 'string') {
|
|
3
3
|
return value.replace(/^\\-/, '-');
|
|
4
4
|
}
|
|
5
|
-
|
|
6
5
|
return value;
|
|
7
6
|
}
|
|
8
7
|
export function escapeFacetValue(value) {
|
|
9
8
|
if (typeof value === 'number' && value < 0 || typeof value === 'string') {
|
|
10
9
|
return String(value).replace(/^-/, '\\-');
|
|
11
10
|
}
|
|
12
|
-
|
|
13
11
|
return value;
|
|
14
12
|
}
|
package/es/lib/utils/find.js
CHANGED
|
@@ -6,14 +6,12 @@
|
|
|
6
6
|
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find
|
|
7
7
|
export function find(items, predicate) {
|
|
8
8
|
var value;
|
|
9
|
-
|
|
10
9
|
for (var i = 0; i < items.length; i++) {
|
|
11
|
-
value = items[i];
|
|
12
|
-
|
|
10
|
+
value = items[i];
|
|
11
|
+
// inlined for performance: if (Call(predicate, thisArg, [value, i, list])) {
|
|
13
12
|
if (predicate(value, i, items)) {
|
|
14
13
|
return value;
|
|
15
14
|
}
|
|
16
15
|
}
|
|
17
|
-
|
|
18
16
|
return undefined;
|
|
19
17
|
}
|
|
@@ -1,48 +1,38 @@
|
|
|
1
1
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
-
|
|
3
2
|
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."); }
|
|
4
|
-
|
|
5
3
|
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); }
|
|
6
|
-
|
|
7
|
-
function
|
|
8
|
-
|
|
9
|
-
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; }
|
|
10
|
-
|
|
4
|
+
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; }
|
|
5
|
+
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; } }
|
|
11
6
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
12
|
-
|
|
13
7
|
var latLngRegExp = /^(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)$/;
|
|
14
8
|
export function aroundLatLngToPosition(value) {
|
|
15
|
-
var pattern = value.match(latLngRegExp);
|
|
16
|
-
// throw an error due to the wrong format. So throw an error should be safe.
|
|
9
|
+
var pattern = value.match(latLngRegExp);
|
|
17
10
|
|
|
11
|
+
// Since the value provided is the one send with the request, the API should
|
|
12
|
+
// throw an error due to the wrong format. So throw an error should be safe.
|
|
18
13
|
if (!pattern) {
|
|
19
14
|
throw new Error("Invalid value for \"aroundLatLng\" parameter: \"".concat(value, "\""));
|
|
20
15
|
}
|
|
21
|
-
|
|
22
16
|
return {
|
|
23
17
|
lat: parseFloat(pattern[1]),
|
|
24
18
|
lng: parseFloat(pattern[2])
|
|
25
19
|
};
|
|
26
20
|
}
|
|
27
|
-
|
|
28
21
|
function insideBoundingBoxArrayToBoundingBox(value) {
|
|
29
22
|
var _value = _slicedToArray(value, 1),
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
23
|
+
_value$ = _value[0],
|
|
24
|
+
_value$2 = _value$ === void 0 ? [undefined, undefined, undefined, undefined] : _value$,
|
|
25
|
+
_value$3 = _slicedToArray(_value$2, 4),
|
|
26
|
+
neLat = _value$3[0],
|
|
27
|
+
neLng = _value$3[1],
|
|
28
|
+
swLat = _value$3[2],
|
|
29
|
+
swLng = _value$3[3];
|
|
30
|
+
|
|
31
|
+
// Since the value provided is the one send with the request, the API should
|
|
39
32
|
// throw an error due to the wrong format. So throw an error should be safe.
|
|
40
|
-
|
|
41
|
-
|
|
42
33
|
if (!neLat || !neLng || !swLat || !swLng) {
|
|
43
34
|
throw new Error("Invalid value for \"insideBoundingBox\" parameter: [".concat(value, "]"));
|
|
44
35
|
}
|
|
45
|
-
|
|
46
36
|
return {
|
|
47
37
|
northEast: {
|
|
48
38
|
lat: neLat,
|
|
@@ -54,21 +44,19 @@ function insideBoundingBoxArrayToBoundingBox(value) {
|
|
|
54
44
|
}
|
|
55
45
|
};
|
|
56
46
|
}
|
|
57
|
-
|
|
58
47
|
function insideBoundingBoxStringToBoundingBox(value) {
|
|
59
48
|
var _value$split$map = value.split(',').map(parseFloat),
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
// throw an error due to the wrong format. So throw an error should be safe.
|
|
66
|
-
|
|
49
|
+
_value$split$map2 = _slicedToArray(_value$split$map, 4),
|
|
50
|
+
neLat = _value$split$map2[0],
|
|
51
|
+
neLng = _value$split$map2[1],
|
|
52
|
+
swLat = _value$split$map2[2],
|
|
53
|
+
swLng = _value$split$map2[3];
|
|
67
54
|
|
|
55
|
+
// Since the value provided is the one send with the request, the API should
|
|
56
|
+
// throw an error due to the wrong format. So throw an error should be safe.
|
|
68
57
|
if (!neLat || !neLng || !swLat || !swLng) {
|
|
69
58
|
throw new Error("Invalid value for \"insideBoundingBox\" parameter: \"".concat(value, "\""));
|
|
70
59
|
}
|
|
71
|
-
|
|
72
60
|
return {
|
|
73
61
|
northEast: {
|
|
74
62
|
lat: neLat,
|
|
@@ -80,11 +68,9 @@ function insideBoundingBoxStringToBoundingBox(value) {
|
|
|
80
68
|
}
|
|
81
69
|
};
|
|
82
70
|
}
|
|
83
|
-
|
|
84
71
|
export function insideBoundingBoxToBoundingBox(value) {
|
|
85
72
|
if (Array.isArray(value)) {
|
|
86
73
|
return insideBoundingBoxArrayToBoundingBox(value);
|
|
87
74
|
}
|
|
88
|
-
|
|
89
75
|
return insideBoundingBoxStringToBoundingBox(value);
|
|
90
76
|
}
|
|
@@ -3,8 +3,8 @@ export function getAppIdAndApiKey(searchClient) {
|
|
|
3
3
|
if (searchClient.transporter) {
|
|
4
4
|
// searchClient v4
|
|
5
5
|
var _searchClient$transpo = searchClient.transporter,
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
headers = _searchClient$transpo.headers,
|
|
7
|
+
queryParameters = _searchClient$transpo.queryParameters;
|
|
8
8
|
var APP_ID = 'x-algolia-application-id';
|
|
9
9
|
var API_KEY = 'x-algolia-api-key';
|
|
10
10
|
var appId = headers[APP_ID] || queryParameters[APP_ID];
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { isDomElement } from "./isDomElement.js";
|
|
2
|
+
|
|
2
3
|
/**
|
|
3
4
|
* Return the container. If it's a string, it is considered a
|
|
4
5
|
* css selector and retrieves the first matching element. Otherwise
|
|
@@ -8,20 +9,15 @@ import { isDomElement } from "./isDomElement.js";
|
|
|
8
9
|
* @return {HTMLElement} Container node
|
|
9
10
|
* @throws Error when the type is not correct
|
|
10
11
|
*/
|
|
11
|
-
|
|
12
12
|
export function getContainerNode(selectorOrHTMLElement) {
|
|
13
13
|
var isSelectorString = typeof selectorOrHTMLElement === 'string';
|
|
14
14
|
var domElement = isSelectorString ? document.querySelector(selectorOrHTMLElement) : selectorOrHTMLElement;
|
|
15
|
-
|
|
16
15
|
if (!isDomElement(domElement)) {
|
|
17
16
|
var errorMessage = 'Container must be `string` or `HTMLElement`.';
|
|
18
|
-
|
|
19
17
|
if (isSelectorString) {
|
|
20
18
|
errorMessage += " Unable to find ".concat(selectorOrHTMLElement);
|
|
21
19
|
}
|
|
22
|
-
|
|
23
20
|
throw new Error(errorMessage);
|
|
24
21
|
}
|
|
25
|
-
|
|
26
22
|
return domElement;
|
|
27
23
|
}
|
|
@@ -2,14 +2,11 @@ import { unescape } from "./escape-html.js";
|
|
|
2
2
|
var hasAlphanumeric = new RegExp(/\w/i);
|
|
3
3
|
export function getHighlightFromSiblings(parts, i) {
|
|
4
4
|
var _parts, _parts2;
|
|
5
|
-
|
|
6
5
|
var current = parts[i];
|
|
7
6
|
var isNextHighlighted = ((_parts = parts[i + 1]) === null || _parts === void 0 ? void 0 : _parts.isHighlighted) || true;
|
|
8
7
|
var isPreviousHighlighted = ((_parts2 = parts[i - 1]) === null || _parts2 === void 0 ? void 0 : _parts2.isHighlighted) || true;
|
|
9
|
-
|
|
10
8
|
if (!hasAlphanumeric.test(unescape(current.value)) && isPreviousHighlighted === isNextHighlighted) {
|
|
11
9
|
return isPreviousHighlighted;
|
|
12
10
|
}
|
|
13
|
-
|
|
14
11
|
return current.isHighlighted;
|
|
15
12
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { TAG_REPLACEMENT } from "./escape-highlight.js";
|
|
2
2
|
export function getHighlightedParts(highlightedValue) {
|
|
3
3
|
var highlightPostTag = TAG_REPLACEMENT.highlightPostTag,
|
|
4
|
-
|
|
4
|
+
highlightPreTag = TAG_REPLACEMENT.highlightPreTag;
|
|
5
5
|
var splitByPreTag = highlightedValue.split(highlightPreTag);
|
|
6
6
|
var firstValue = splitByPreTag.shift();
|
|
7
7
|
var elements = !firstValue ? [] : [{
|
|
@@ -14,7 +14,6 @@ export function getHighlightedParts(highlightedValue) {
|
|
|
14
14
|
value: splitByPostTag[0],
|
|
15
15
|
isHighlighted: true
|
|
16
16
|
});
|
|
17
|
-
|
|
18
17
|
if (splitByPostTag[1] !== '') {
|
|
19
18
|
elements.push({
|
|
20
19
|
value: splitByPostTag[1],
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { find } from "./find.js";
|
|
2
2
|
import { unescapeFacetValue, escapeFacetValue } from "./escapeFacetValue.js";
|
|
3
|
-
|
|
4
3
|
function getRefinement(state, type, attribute, name) {
|
|
5
4
|
var resultsFacets = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [];
|
|
6
5
|
var res = {
|
|
@@ -13,60 +12,49 @@ function getRefinement(state, type, attribute, name) {
|
|
|
13
12
|
return resultsFacet.name === attribute;
|
|
14
13
|
});
|
|
15
14
|
var count;
|
|
16
|
-
|
|
17
15
|
if (type === 'hierarchical') {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
return function (refinementKey) {
|
|
24
|
-
return facetData[refinementKey];
|
|
25
|
-
};
|
|
16
|
+
var facetDeclaration = state.getHierarchicalFacetByName(attribute);
|
|
17
|
+
var nameParts = name.split(facetDeclaration.separator);
|
|
18
|
+
var getFacetRefinement = function getFacetRefinement(facetData) {
|
|
19
|
+
return function (refinementKey) {
|
|
20
|
+
return facetData[refinementKey];
|
|
26
21
|
};
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
count = facet && facet.count;
|
|
39
|
-
})();
|
|
22
|
+
};
|
|
23
|
+
var _loop = function _loop(i) {
|
|
24
|
+
facet = facet && facet.data && find(Object.keys(facet.data).map(getFacetRefinement(facet.data)), function (refinement) {
|
|
25
|
+
return refinement.name === nameParts[i];
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
for (var i = 0; facet !== undefined && i < nameParts.length; ++i) {
|
|
29
|
+
_loop(i);
|
|
30
|
+
}
|
|
31
|
+
count = facet && facet.count;
|
|
40
32
|
} else {
|
|
41
33
|
count = facet && facet.data && facet.data[res.name];
|
|
42
34
|
}
|
|
43
|
-
|
|
44
35
|
if (count !== undefined) {
|
|
45
36
|
res.count = count;
|
|
46
37
|
}
|
|
47
|
-
|
|
48
38
|
if (facet && facet.exhaustive !== undefined) {
|
|
49
39
|
res.exhaustive = facet.exhaustive;
|
|
50
40
|
}
|
|
51
|
-
|
|
52
41
|
return res;
|
|
53
42
|
}
|
|
54
|
-
|
|
55
43
|
export function getRefinements(results, state) {
|
|
56
44
|
var includesQuery = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
57
45
|
var refinements = [];
|
|
58
46
|
var _state$facetsRefineme = state.facetsRefinements,
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
47
|
+
facetsRefinements = _state$facetsRefineme === void 0 ? {} : _state$facetsRefineme,
|
|
48
|
+
_state$facetsExcludes = state.facetsExcludes,
|
|
49
|
+
facetsExcludes = _state$facetsExcludes === void 0 ? {} : _state$facetsExcludes,
|
|
50
|
+
_state$disjunctiveFac = state.disjunctiveFacetsRefinements,
|
|
51
|
+
disjunctiveFacetsRefinements = _state$disjunctiveFac === void 0 ? {} : _state$disjunctiveFac,
|
|
52
|
+
_state$hierarchicalFa = state.hierarchicalFacetsRefinements,
|
|
53
|
+
hierarchicalFacetsRefinements = _state$hierarchicalFa === void 0 ? {} : _state$hierarchicalFa,
|
|
54
|
+
_state$numericRefinem = state.numericRefinements,
|
|
55
|
+
numericRefinements = _state$numericRefinem === void 0 ? {} : _state$numericRefinem,
|
|
56
|
+
_state$tagRefinements = state.tagRefinements,
|
|
57
|
+
tagRefinements = _state$tagRefinements === void 0 ? [] : _state$tagRefinements;
|
|
70
58
|
Object.keys(facetsRefinements).forEach(function (attribute) {
|
|
71
59
|
var refinementNames = facetsRefinements[attribute];
|
|
72
60
|
refinementNames.forEach(function (refinementName) {
|
|
@@ -87,7 +75,8 @@ export function getRefinements(results, state) {
|
|
|
87
75
|
Object.keys(disjunctiveFacetsRefinements).forEach(function (attribute) {
|
|
88
76
|
var refinementNames = disjunctiveFacetsRefinements[attribute];
|
|
89
77
|
refinementNames.forEach(function (refinementName) {
|
|
90
|
-
refinements.push(getRefinement(state, 'disjunctive', attribute,
|
|
78
|
+
refinements.push(getRefinement(state, 'disjunctive', attribute,
|
|
79
|
+
// We unescape any disjunctive refined values with `unescapeFacetValue` because
|
|
91
80
|
// they can be escaped on negative numeric values with `escapeFacetValue`.
|
|
92
81
|
unescapeFacetValue(refinementName), results.disjunctiveFacets));
|
|
93
82
|
});
|
|
@@ -122,7 +111,6 @@ export function getRefinements(results, state) {
|
|
|
122
111
|
name: refinementName
|
|
123
112
|
});
|
|
124
113
|
});
|
|
125
|
-
|
|
126
114
|
if (includesQuery && state.query && state.query.trim()) {
|
|
127
115
|
refinements.push({
|
|
128
116
|
attribute: 'query',
|
|
@@ -131,6 +119,5 @@ export function getRefinements(results, state) {
|
|
|
131
119
|
query: state.query
|
|
132
120
|
});
|
|
133
121
|
}
|
|
134
|
-
|
|
135
122
|
return refinements;
|
|
136
123
|
}
|
|
@@ -1,23 +1,18 @@
|
|
|
1
1
|
export function getWidgetAttribute(widget, initOptions) {
|
|
2
2
|
var _widget$getWidgetRend;
|
|
3
|
-
|
|
4
3
|
var renderState = (_widget$getWidgetRend = widget.getWidgetRenderState) === null || _widget$getWidgetRend === void 0 ? void 0 : _widget$getWidgetRend.call(widget, initOptions);
|
|
5
4
|
var attribute = null;
|
|
6
|
-
|
|
7
5
|
if (renderState && renderState.widgetParams) {
|
|
8
6
|
// casting as widgetParams is checked just before
|
|
9
7
|
var widgetParams = renderState.widgetParams;
|
|
10
|
-
|
|
11
8
|
if (widgetParams.attribute) {
|
|
12
9
|
attribute = widgetParams.attribute;
|
|
13
10
|
} else if (Array.isArray(widgetParams.attributes)) {
|
|
14
11
|
attribute = widgetParams.attributes[0];
|
|
15
12
|
}
|
|
16
13
|
}
|
|
17
|
-
|
|
18
14
|
if (typeof attribute !== 'string') {
|
|
19
15
|
throw new Error("Could not find the attribute of the widget:\n\n".concat(JSON.stringify(widget), "\n\nPlease check whether the widget's getWidgetRenderState returns widgetParams.attribute correctly."));
|
|
20
16
|
}
|
|
21
|
-
|
|
22
17
|
return attribute;
|
|
23
18
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
function
|
|
2
|
-
|
|
3
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
4
|
-
|
|
5
|
-
function
|
|
6
|
-
|
|
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 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; }
|
|
3
|
+
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; }
|
|
4
|
+
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; }
|
|
5
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
6
|
+
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); }
|
|
7
7
|
export function addAbsolutePosition(hits, page, hitsPerPage) {
|
|
8
8
|
return hits.map(function (hit, idx) {
|
|
9
9
|
return _objectSpread(_objectSpread({}, hit), {}, {
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
function
|
|
2
|
-
|
|
3
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
4
|
-
|
|
5
|
-
function
|
|
6
|
-
|
|
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 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; }
|
|
3
|
+
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; }
|
|
4
|
+
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; }
|
|
5
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
6
|
+
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); }
|
|
7
7
|
export function addQueryID(hits, queryID) {
|
|
8
8
|
if (!queryID) {
|
|
9
9
|
return hits;
|
|
10
10
|
}
|
|
11
|
-
|
|
12
11
|
return hits.map(function (hit) {
|
|
13
12
|
return _objectSpread(_objectSpread({}, hit), {}, {
|
|
14
13
|
__queryID: queryID
|
package/es/lib/utils/isEqual.js
CHANGED
|
@@ -1,31 +1,27 @@
|
|
|
1
1
|
function isPrimitive(obj) {
|
|
2
2
|
return obj !== Object(obj);
|
|
3
3
|
}
|
|
4
|
-
|
|
5
4
|
export function isEqual(first, second) {
|
|
6
5
|
if (first === second) {
|
|
7
6
|
return true;
|
|
8
7
|
}
|
|
9
|
-
|
|
10
8
|
if (isPrimitive(first) || isPrimitive(second) || typeof first === 'function' || typeof second === 'function') {
|
|
11
9
|
return first === second;
|
|
12
10
|
}
|
|
13
|
-
|
|
14
11
|
if (Object.keys(first).length !== Object.keys(second).length) {
|
|
15
12
|
return false;
|
|
16
13
|
}
|
|
17
14
|
|
|
15
|
+
// @TODO avoid for..of because of the large polyfill
|
|
16
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
18
17
|
for (var _i = 0, _Object$keys = Object.keys(first); _i < _Object$keys.length; _i++) {
|
|
19
18
|
var key = _Object$keys[_i];
|
|
20
|
-
|
|
21
19
|
if (!(key in second)) {
|
|
22
20
|
return false;
|
|
23
21
|
}
|
|
24
|
-
|
|
25
22
|
if (!isEqual(first[key], second[key])) {
|
|
26
23
|
return false;
|
|
27
24
|
}
|
|
28
25
|
}
|
|
29
|
-
|
|
30
26
|
return true;
|
|
31
27
|
}
|