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
package/cjs/lib/createHelpers.js
CHANGED
|
@@ -4,17 +4,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = hoganHelpers;
|
|
7
|
-
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
var
|
|
11
|
-
|
|
12
|
-
function
|
|
13
|
-
|
|
14
|
-
function
|
|
15
|
-
|
|
16
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
17
|
-
|
|
7
|
+
var _helpers = require("../helpers");
|
|
8
|
+
var _formatNumber2 = require("./formatNumber");
|
|
9
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
10
|
+
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; }
|
|
11
|
+
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; }
|
|
12
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
13
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
14
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
18
15
|
function hoganHelpers(_ref) {
|
|
19
16
|
var numberLocale = _ref.numberLocale;
|
|
20
17
|
return {
|
|
@@ -24,7 +21,7 @@ function hoganHelpers(_ref) {
|
|
|
24
21
|
highlight: function highlight(options, render) {
|
|
25
22
|
try {
|
|
26
23
|
var highlightOptions = JSON.parse(options);
|
|
27
|
-
return render((0,
|
|
24
|
+
return render((0, _helpers.highlight)(_objectSpread(_objectSpread({}, highlightOptions), {}, {
|
|
28
25
|
hit: this
|
|
29
26
|
})));
|
|
30
27
|
} catch (error) {
|
|
@@ -34,7 +31,7 @@ function hoganHelpers(_ref) {
|
|
|
34
31
|
reverseHighlight: function reverseHighlight(options, render) {
|
|
35
32
|
try {
|
|
36
33
|
var reverseHighlightOptions = JSON.parse(options);
|
|
37
|
-
return render((0,
|
|
34
|
+
return render((0, _helpers.reverseHighlight)(_objectSpread(_objectSpread({}, reverseHighlightOptions), {}, {
|
|
38
35
|
hit: this
|
|
39
36
|
})));
|
|
40
37
|
} catch (error) {
|
|
@@ -44,7 +41,7 @@ function hoganHelpers(_ref) {
|
|
|
44
41
|
snippet: function snippet(options, render) {
|
|
45
42
|
try {
|
|
46
43
|
var snippetOptions = JSON.parse(options);
|
|
47
|
-
return render((0,
|
|
44
|
+
return render((0, _helpers.snippet)(_objectSpread(_objectSpread({}, snippetOptions), {}, {
|
|
48
45
|
hit: this
|
|
49
46
|
})));
|
|
50
47
|
} catch (error) {
|
|
@@ -54,7 +51,7 @@ function hoganHelpers(_ref) {
|
|
|
54
51
|
reverseSnippet: function reverseSnippet(options, render) {
|
|
55
52
|
try {
|
|
56
53
|
var reverseSnippetOptions = JSON.parse(options);
|
|
57
|
-
return render((0,
|
|
54
|
+
return render((0, _helpers.reverseSnippet)(_objectSpread(_objectSpread({}, reverseSnippetOptions), {}, {
|
|
58
55
|
hit: this
|
|
59
56
|
})));
|
|
60
57
|
} catch (error) {
|
|
@@ -64,10 +61,9 @@ function hoganHelpers(_ref) {
|
|
|
64
61
|
insights: function insights(options, render) {
|
|
65
62
|
try {
|
|
66
63
|
var _JSON$parse = JSON.parse(options),
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
return render((0, _index.insights)(method, _objectSpread({
|
|
64
|
+
method = _JSON$parse.method,
|
|
65
|
+
payload = _JSON$parse.payload;
|
|
66
|
+
return render((0, _helpers.insights)(method, _objectSpread({
|
|
71
67
|
objectIDs: [this.objectID]
|
|
72
68
|
}, payload)));
|
|
73
69
|
} catch (error) {
|
package/cjs/lib/formatNumber.js
CHANGED
|
@@ -9,7 +9,5 @@ Object.defineProperty(exports, "createInfiniteHitsSessionStorageCache", {
|
|
|
9
9
|
return _sessionStorage.default;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
-
|
|
13
|
-
var _sessionStorage = _interopRequireDefault(require("./sessionStorage.js"));
|
|
14
|
-
|
|
12
|
+
var _sessionStorage = _interopRequireDefault(require("./sessionStorage"));
|
|
15
13
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -4,69 +4,61 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = createInfiniteHitsSessionStorageCache;
|
|
7
|
-
|
|
8
|
-
var
|
|
9
|
-
|
|
7
|
+
var _utils = require("../utils");
|
|
8
|
+
var _excluded = ["page"];
|
|
10
9
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
11
|
-
|
|
12
10
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
13
|
-
|
|
14
11
|
function getStateWithoutPage(state) {
|
|
15
12
|
var _ref = state || {},
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
13
|
+
page = _ref.page,
|
|
14
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
19
15
|
return rest;
|
|
20
16
|
}
|
|
21
|
-
|
|
22
17
|
var KEY = 'ais.infiniteHits';
|
|
23
|
-
|
|
24
18
|
function createInfiniteHitsSessionStorageCache() {
|
|
25
19
|
return {
|
|
26
20
|
read: function read(_ref2) {
|
|
27
21
|
var state = _ref2.state;
|
|
28
|
-
var sessionStorage = (0,
|
|
22
|
+
var sessionStorage = (0, _utils.safelyRunOnBrowser)(function (_ref3) {
|
|
29
23
|
var window = _ref3.window;
|
|
30
24
|
return window.sessionStorage;
|
|
31
25
|
});
|
|
32
|
-
|
|
33
26
|
if (!sessionStorage) {
|
|
34
27
|
return null;
|
|
35
28
|
}
|
|
36
|
-
|
|
37
29
|
try {
|
|
38
|
-
var cache = JSON.parse(
|
|
30
|
+
var cache = JSON.parse(
|
|
31
|
+
// @ts-expect-error JSON.parse() requires a string, but it actually accepts null, too.
|
|
39
32
|
sessionStorage.getItem(KEY));
|
|
40
|
-
return cache && (0,
|
|
33
|
+
return cache && (0, _utils.isEqual)(cache.state, getStateWithoutPage(state)) ? cache.hits : null;
|
|
41
34
|
} catch (error) {
|
|
42
35
|
if (error instanceof SyntaxError) {
|
|
43
36
|
try {
|
|
44
37
|
sessionStorage.removeItem(KEY);
|
|
45
|
-
} catch (err) {
|
|
38
|
+
} catch (err) {
|
|
39
|
+
// do nothing
|
|
46
40
|
}
|
|
47
41
|
}
|
|
48
|
-
|
|
49
42
|
return null;
|
|
50
43
|
}
|
|
51
44
|
},
|
|
52
45
|
write: function write(_ref4) {
|
|
53
46
|
var state = _ref4.state,
|
|
54
|
-
|
|
55
|
-
var sessionStorage = (0,
|
|
47
|
+
hits = _ref4.hits;
|
|
48
|
+
var sessionStorage = (0, _utils.safelyRunOnBrowser)(function (_ref5) {
|
|
56
49
|
var window = _ref5.window;
|
|
57
50
|
return window.sessionStorage;
|
|
58
51
|
});
|
|
59
|
-
|
|
60
52
|
if (!sessionStorage) {
|
|
61
53
|
return;
|
|
62
54
|
}
|
|
63
|
-
|
|
64
55
|
try {
|
|
65
56
|
sessionStorage.setItem(KEY, JSON.stringify({
|
|
66
57
|
state: getStateWithoutPage(state),
|
|
67
58
|
hits: hits
|
|
68
59
|
}));
|
|
69
|
-
} catch (error) {
|
|
60
|
+
} catch (error) {
|
|
61
|
+
// do nothing
|
|
70
62
|
}
|
|
71
63
|
}
|
|
72
64
|
};
|
|
@@ -5,62 +5,50 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = withInsights;
|
|
7
7
|
exports.inferPayload = void 0;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
function
|
|
12
|
-
|
|
13
|
-
function
|
|
14
|
-
|
|
15
|
-
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; }
|
|
16
|
-
|
|
8
|
+
var _utils = require("../utils");
|
|
9
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
10
|
+
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; }
|
|
11
|
+
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; }
|
|
12
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
13
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
14
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
17
15
|
var getSelectedHits = function getSelectedHits(hits, selectedObjectIDs) {
|
|
18
16
|
return selectedObjectIDs.map(function (objectID) {
|
|
19
|
-
var hit = (0,
|
|
17
|
+
var hit = (0, _utils.find)(hits, function (h) {
|
|
20
18
|
return h.objectID === objectID;
|
|
21
19
|
});
|
|
22
|
-
|
|
23
20
|
if (typeof hit === 'undefined') {
|
|
24
21
|
throw new Error("Could not find objectID \"".concat(objectID, "\" passed to `clickedObjectIDsAfterSearch` in the returned hits. This is necessary to infer the absolute position and the query ID."));
|
|
25
22
|
}
|
|
26
|
-
|
|
27
23
|
return hit;
|
|
28
24
|
});
|
|
29
25
|
};
|
|
30
|
-
|
|
31
26
|
var getQueryID = function getQueryID(selectedHits) {
|
|
32
|
-
var queryIDs = (0,
|
|
27
|
+
var queryIDs = (0, _utils.uniq)(selectedHits.map(function (hit) {
|
|
33
28
|
return hit.__queryID;
|
|
34
29
|
}));
|
|
35
|
-
|
|
36
30
|
if (queryIDs.length > 1) {
|
|
37
31
|
throw new Error('Insights currently allows a single `queryID`. The `objectIDs` provided map to multiple `queryID`s.');
|
|
38
32
|
}
|
|
39
|
-
|
|
40
33
|
var queryID = queryIDs[0];
|
|
41
|
-
|
|
42
34
|
if (typeof queryID !== 'string') {
|
|
43
35
|
throw new Error("Could not infer `queryID`. Ensure InstantSearch `clickAnalytics: true` was added with the Configure widget.\n\nSee: https://alg.li/lNiZZ7");
|
|
44
36
|
}
|
|
45
|
-
|
|
46
37
|
return queryID;
|
|
47
38
|
};
|
|
48
|
-
|
|
49
39
|
var getPositions = function getPositions(selectedHits) {
|
|
50
40
|
return selectedHits.map(function (hit) {
|
|
51
41
|
return hit.__position;
|
|
52
42
|
});
|
|
53
43
|
};
|
|
54
|
-
|
|
55
44
|
var inferPayload = function inferPayload(_ref) {
|
|
56
45
|
var method = _ref.method,
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
46
|
+
results = _ref.results,
|
|
47
|
+
hits = _ref.hits,
|
|
48
|
+
objectIDs = _ref.objectIDs;
|
|
60
49
|
var index = results.index;
|
|
61
50
|
var selectedHits = getSelectedHits(hits, objectIDs);
|
|
62
51
|
var queryID = getQueryID(selectedHits);
|
|
63
|
-
|
|
64
52
|
switch (method) {
|
|
65
53
|
case 'clickedObjectIDsAfterSearch':
|
|
66
54
|
{
|
|
@@ -72,41 +60,33 @@ var inferPayload = function inferPayload(_ref) {
|
|
|
72
60
|
positions: positions
|
|
73
61
|
};
|
|
74
62
|
}
|
|
75
|
-
|
|
76
63
|
case 'convertedObjectIDsAfterSearch':
|
|
77
64
|
return {
|
|
78
65
|
index: index,
|
|
79
66
|
queryID: queryID,
|
|
80
67
|
objectIDs: objectIDs
|
|
81
68
|
};
|
|
82
|
-
|
|
83
69
|
default:
|
|
84
70
|
throw new Error("Unsupported method passed to insights: \"".concat(method, "\"."));
|
|
85
71
|
}
|
|
86
72
|
};
|
|
87
|
-
|
|
88
73
|
exports.inferPayload = inferPayload;
|
|
89
|
-
|
|
90
74
|
var wrapInsightsClient = function wrapInsightsClient(aa, results, hits) {
|
|
91
75
|
return function (method) {
|
|
92
76
|
for (var _len = arguments.length, payloads = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
93
77
|
payloads[_key - 1] = arguments[_key];
|
|
94
78
|
}
|
|
95
|
-
|
|
96
79
|
var payload = payloads[0];
|
|
97
|
-
process.env.NODE_ENV === 'development' ? (0,
|
|
98
|
-
|
|
80
|
+
process.env.NODE_ENV === 'development' ? (0, _utils.warning)(false, "`insights` function has been deprecated. It is still supported in 4.x releases, but not further. It is replaced by the `insights` middleware.\n\nFor more information, visit https://www.algolia.com/doc/guides/getting-insights-and-analytics/search-analytics/click-through-and-conversions/how-to/send-click-and-conversion-events-with-instantsearch/js/") : void 0;
|
|
99
81
|
if (!aa) {
|
|
100
|
-
var withInstantSearchUsage = (0,
|
|
82
|
+
var withInstantSearchUsage = (0, _utils.createDocumentationMessageGenerator)({
|
|
101
83
|
name: 'instantsearch'
|
|
102
84
|
});
|
|
103
85
|
throw new Error(withInstantSearchUsage('The `insightsClient` option has not been provided to `instantsearch`.'));
|
|
104
86
|
}
|
|
105
|
-
|
|
106
87
|
if (!Array.isArray(payload.objectIDs)) {
|
|
107
88
|
throw new TypeError('Expected `objectIDs` to be an array.');
|
|
108
89
|
}
|
|
109
|
-
|
|
110
90
|
var inferredPayload = inferPayload({
|
|
111
91
|
method: method,
|
|
112
92
|
results: results,
|
|
@@ -116,26 +96,23 @@ var wrapInsightsClient = function wrapInsightsClient(aa, results, hits) {
|
|
|
116
96
|
aa(method, _objectSpread(_objectSpread({}, inferredPayload), payload));
|
|
117
97
|
};
|
|
118
98
|
};
|
|
99
|
+
|
|
119
100
|
/**
|
|
120
101
|
* @deprecated This function will be still supported in 4.x releases, but not further. It is replaced by the `insights` middleware. For more information, visit https://www.algolia.com/doc/guides/getting-insights-and-analytics/search-analytics/click-through-and-conversions/how-to/send-click-and-conversion-events-with-instantsearch/js/
|
|
121
102
|
* It passes `insights` to `HitsWithInsightsListener` and `InfiniteHitsWithInsightsListener`.
|
|
122
103
|
*/
|
|
123
|
-
|
|
124
|
-
|
|
125
104
|
function withInsights(connector) {
|
|
126
105
|
return function (renderFn, unmountFn) {
|
|
127
106
|
return connector(function (renderOptions, isFirstRender) {
|
|
128
107
|
var results = renderOptions.results,
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
108
|
+
hits = renderOptions.hits,
|
|
109
|
+
instantSearchInstance = renderOptions.instantSearchInstance;
|
|
132
110
|
if (results && hits && instantSearchInstance) {
|
|
133
111
|
var insights = wrapInsightsClient(instantSearchInstance.insightsClient, results, hits);
|
|
134
112
|
return renderFn(_objectSpread(_objectSpread({}, renderOptions), {}, {
|
|
135
113
|
insights: insights
|
|
136
114
|
}), isFirstRender);
|
|
137
115
|
}
|
|
138
|
-
|
|
139
116
|
return renderFn(renderOptions, isFirstRender);
|
|
140
117
|
}, unmountFn);
|
|
141
118
|
};
|
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _typeof(obj) { "@babel/helpers - typeof";
|
|
4
|
-
|
|
3
|
+
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); }
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
|
-
Object.defineProperty(exports, "
|
|
7
|
+
Object.defineProperty(exports, "inferInsightsPayload", {
|
|
9
8
|
enumerable: true,
|
|
10
9
|
get: function get() {
|
|
11
|
-
return _client.
|
|
10
|
+
return _client.inferPayload;
|
|
12
11
|
}
|
|
13
12
|
});
|
|
14
|
-
Object.defineProperty(exports, "
|
|
13
|
+
Object.defineProperty(exports, "withInsights", {
|
|
15
14
|
enumerable: true,
|
|
16
15
|
get: function get() {
|
|
17
|
-
return _client.
|
|
16
|
+
return _client.default;
|
|
18
17
|
}
|
|
19
18
|
});
|
|
20
19
|
Object.defineProperty(exports, "withInsightsListener", {
|
|
@@ -23,13 +22,8 @@ Object.defineProperty(exports, "withInsightsListener", {
|
|
|
23
22
|
return _listener.default;
|
|
24
23
|
}
|
|
25
24
|
});
|
|
26
|
-
|
|
27
|
-
var
|
|
28
|
-
|
|
29
|
-
var _listener = _interopRequireDefault(require("./listener.js"));
|
|
30
|
-
|
|
25
|
+
var _client = _interopRequireWildcard(require("./client"));
|
|
26
|
+
var _listener = _interopRequireDefault(require("./listener"));
|
|
31
27
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
32
|
-
|
|
33
|
-
function
|
|
34
|
-
|
|
35
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
28
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
29
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -4,41 +4,30 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _preact = require("preact");
|
|
9
|
-
|
|
10
|
-
var
|
|
11
|
-
|
|
12
|
-
var _insights = require("../../helpers/insights.js");
|
|
13
|
-
|
|
8
|
+
var _utils = require("../utils");
|
|
9
|
+
var _insights = require("../../helpers/insights");
|
|
14
10
|
var findInsightsTarget = function findInsightsTarget(startElement, endElement, validator) {
|
|
15
11
|
var element = startElement;
|
|
16
|
-
|
|
17
12
|
while (element && !validator(element)) {
|
|
18
13
|
if (element === endElement) {
|
|
19
14
|
return null;
|
|
20
15
|
}
|
|
21
|
-
|
|
22
16
|
element = element.parentElement;
|
|
23
17
|
}
|
|
24
|
-
|
|
25
18
|
return element;
|
|
26
19
|
};
|
|
27
|
-
|
|
28
20
|
var parseInsightsEvent = function parseInsightsEvent(element) {
|
|
29
21
|
var serializedPayload = element.getAttribute('data-insights-event');
|
|
30
|
-
|
|
31
22
|
if (typeof serializedPayload !== 'string') {
|
|
32
23
|
throw new Error('The insights middleware expects `data-insights-event` to be a base64-encoded JSON string.');
|
|
33
24
|
}
|
|
34
|
-
|
|
35
25
|
try {
|
|
36
|
-
return (0,
|
|
26
|
+
return (0, _utils.deserializePayload)(serializedPayload);
|
|
37
27
|
} catch (error) {
|
|
38
28
|
throw new Error('The insights middleware was unable to parse `data-insights-event`.');
|
|
39
29
|
}
|
|
40
30
|
};
|
|
41
|
-
|
|
42
31
|
var insightsListener = function insightsListener(BaseComponent) {
|
|
43
32
|
function WithInsightsListener(props) {
|
|
44
33
|
var handleClick = function handleClick(event) {
|
|
@@ -47,36 +36,30 @@ var insightsListener = function insightsListener(BaseComponent) {
|
|
|
47
36
|
var targetWithEvent = findInsightsTarget(event.target, event.currentTarget, function (element) {
|
|
48
37
|
return element.hasAttribute('data-insights-event');
|
|
49
38
|
});
|
|
50
|
-
|
|
51
39
|
if (targetWithEvent) {
|
|
52
40
|
var payload = parseInsightsEvent(targetWithEvent);
|
|
53
41
|
payload.forEach(function (single) {
|
|
54
42
|
return props.sendEvent(single);
|
|
55
43
|
});
|
|
56
44
|
}
|
|
57
|
-
}
|
|
58
|
-
|
|
45
|
+
}
|
|
59
46
|
|
|
47
|
+
// old way, e.g. instantsearch.insights("clickedObjectIDsAfterSearch", { .. })
|
|
60
48
|
var insightsTarget = findInsightsTarget(event.target, event.currentTarget, function (element) {
|
|
61
49
|
return (0, _insights.hasDataAttributes)(element);
|
|
62
50
|
});
|
|
63
|
-
|
|
64
51
|
if (insightsTarget) {
|
|
65
52
|
var _readDataAttributes = (0, _insights.readDataAttributes)(insightsTarget),
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
53
|
+
method = _readDataAttributes.method,
|
|
54
|
+
_payload = _readDataAttributes.payload;
|
|
69
55
|
props.insights(method, _payload);
|
|
70
56
|
}
|
|
71
57
|
};
|
|
72
|
-
|
|
73
58
|
return (0, _preact.h)("div", {
|
|
74
59
|
onClick: handleClick
|
|
75
60
|
}, (0, _preact.h)(BaseComponent, props));
|
|
76
61
|
}
|
|
77
|
-
|
|
78
62
|
return WithInsightsListener;
|
|
79
63
|
};
|
|
80
|
-
|
|
81
64
|
var _default = insightsListener;
|
|
82
65
|
exports.default = _default;
|