@getlupa/vue 0.8.2 → 0.8.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/dist/lupaSearch.js
CHANGED
|
@@ -1522,6 +1522,7 @@ const DEFAULT_PAGE_SIZE = 12;
|
|
|
1522
1522
|
const DEFAULT_PAGE_SIZE_SELECTION = [12, 24, 36, 60];
|
|
1523
1523
|
const LUPA_ROUTING_EVENT = "lupaRedirect";
|
|
1524
1524
|
const RATING_STAR_HTML = "☆";
|
|
1525
|
+
const RESULT_ROOT_SELECTOR = "#lupa-search-results";
|
|
1525
1526
|
const production = "https://api.lupasearch.com/v1/";
|
|
1526
1527
|
const staging = "https://api.staging.lupasearch.com/v1/";
|
|
1527
1528
|
const Env$1 = {
|
|
@@ -3976,22 +3977,21 @@ var ResultsLayoutEnum = /* @__PURE__ */ ((ResultsLayoutEnum2) => {
|
|
|
3976
3977
|
ResultsLayoutEnum2["LIST"] = "List";
|
|
3977
3978
|
return ResultsLayoutEnum2;
|
|
3978
3979
|
})(ResultsLayoutEnum || {});
|
|
3979
|
-
const RESULT_ROOT_ID = "lupa-search-results";
|
|
3980
3980
|
const SHADOW_ROOT_ID = "lupa-shadow-id";
|
|
3981
3981
|
const CONTAINER_ROOT_ID = "lupa-search-container";
|
|
3982
|
-
const scrollToSearchResults = (timeout = 500) => {
|
|
3982
|
+
const scrollToSearchResults = (timeout = 500, containerSelector) => {
|
|
3983
3983
|
if (timeout) {
|
|
3984
|
-
setTimeout(() => scrollTo(
|
|
3984
|
+
setTimeout(() => scrollTo(containerSelector != null ? containerSelector : RESULT_ROOT_SELECTOR), timeout);
|
|
3985
3985
|
} else {
|
|
3986
|
-
scrollTo(
|
|
3986
|
+
scrollTo(RESULT_ROOT_SELECTOR);
|
|
3987
3987
|
}
|
|
3988
3988
|
};
|
|
3989
|
-
const scrollTo = (
|
|
3989
|
+
const scrollTo = (elementSelector) => {
|
|
3990
3990
|
var _a, _b;
|
|
3991
|
-
let el = document.
|
|
3991
|
+
let el = document.querySelector(elementSelector);
|
|
3992
3992
|
const shadowRoot = (_a = document.getElementById(SHADOW_ROOT_ID)) == null ? void 0 : _a.shadowRoot;
|
|
3993
3993
|
if (!el) {
|
|
3994
|
-
el = (_b = shadowRoot == null ? void 0 : shadowRoot.getElementById(
|
|
3994
|
+
el = (_b = shadowRoot == null ? void 0 : shadowRoot.getElementById(elementSelector)) != null ? _b : null;
|
|
3995
3995
|
}
|
|
3996
3996
|
if (!el) {
|
|
3997
3997
|
return;
|
|
@@ -7376,8 +7376,10 @@ const _sfc_main$M = /* @__PURE__ */ vue.defineComponent({
|
|
|
7376
7376
|
const props = __props;
|
|
7377
7377
|
const paramStore = useParamsStore();
|
|
7378
7378
|
const searchResultStore = useSearchResultStore();
|
|
7379
|
+
const optionsStore = useOptionsStore();
|
|
7379
7380
|
const { filters } = storeToRefs(paramStore);
|
|
7380
7381
|
const { facets } = storeToRefs(searchResultStore);
|
|
7382
|
+
const { searchResultOptions } = storeToRefs(optionsStore);
|
|
7381
7383
|
vue.computed(() => {
|
|
7382
7384
|
var _a;
|
|
7383
7385
|
return (_a = facets.value) == null ? void 0 : _a.filter((f2) => {
|
|
@@ -7392,6 +7394,14 @@ const _sfc_main$M = /* @__PURE__ */ vue.defineComponent({
|
|
|
7392
7394
|
return !((_a2 = props.options.promotedFacets) == null ? void 0 : _a2.includes(f2.key));
|
|
7393
7395
|
});
|
|
7394
7396
|
});
|
|
7397
|
+
const scrollToResultsOptions = vue.computed(() => {
|
|
7398
|
+
var _a, _b, _c, _d, _e, _f;
|
|
7399
|
+
return {
|
|
7400
|
+
enabled: ((_a = searchResultOptions.value.scrollToResults) == null ? void 0 : _a.enabled) === void 0 ? true : (_b = searchResultOptions.value.scrollToResults) == null ? void 0 : _b.enabled,
|
|
7401
|
+
container: (_d = (_c = searchResultOptions.value.scrollToResults) == null ? void 0 : _c.scrollToContainerSelector) != null ? _d : RESULT_ROOT_SELECTOR,
|
|
7402
|
+
timeout: (_f = (_e = searchResultOptions.value.scrollToResults) == null ? void 0 : _e.timeout) != null ? _f : 500
|
|
7403
|
+
};
|
|
7404
|
+
});
|
|
7395
7405
|
const handleFacetSelect = (facetAction) => {
|
|
7396
7406
|
switch (facetAction.type) {
|
|
7397
7407
|
case "terms":
|
|
@@ -7404,7 +7414,12 @@ const _sfc_main$M = /* @__PURE__ */ vue.defineComponent({
|
|
|
7404
7414
|
toggleHierarchyFilter(paramStore.appendParams, facetAction, filters.value);
|
|
7405
7415
|
break;
|
|
7406
7416
|
}
|
|
7407
|
-
|
|
7417
|
+
if (scrollToResultsOptions.value.enabled) {
|
|
7418
|
+
scrollToSearchResults(
|
|
7419
|
+
scrollToResultsOptions.value.timeout,
|
|
7420
|
+
scrollToResultsOptions.value.container
|
|
7421
|
+
);
|
|
7422
|
+
}
|
|
7408
7423
|
};
|
|
7409
7424
|
const clear = (facet) => {
|
|
7410
7425
|
const param = getFacetKey(facet.key, facet.type);
|
|
@@ -7716,7 +7731,9 @@ const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
|
|
|
7716
7731
|
});
|
|
7717
7732
|
const paramStore = useParamsStore();
|
|
7718
7733
|
const screenStore = useScreenStore();
|
|
7734
|
+
const optionsStore = useOptionsStore();
|
|
7719
7735
|
const { isMobileWidth } = storeToRefs(screenStore);
|
|
7736
|
+
const { searchResultOptions } = storeToRefs(optionsStore);
|
|
7720
7737
|
const pageOptionsCount = vue.computed(() => {
|
|
7721
7738
|
return isMobileWidth.value ? props.options.displayMobile : props.options.display;
|
|
7722
7739
|
});
|
|
@@ -7750,12 +7767,25 @@ const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
|
|
|
7750
7767
|
const showPagination = vue.computed(() => {
|
|
7751
7768
|
return pages.value.length > 1;
|
|
7752
7769
|
});
|
|
7770
|
+
const scrollToResultsOptions = vue.computed(() => {
|
|
7771
|
+
var _a, _b, _c, _d, _e, _f;
|
|
7772
|
+
return {
|
|
7773
|
+
enabled: ((_a = searchResultOptions.value.scrollToResults) == null ? void 0 : _a.enabled) === void 0 ? true : (_b = searchResultOptions.value.scrollToResults) == null ? void 0 : _b.enabled,
|
|
7774
|
+
container: (_d = (_c = searchResultOptions.value.scrollToResults) == null ? void 0 : _c.scrollToContainerSelector) != null ? _d : RESULT_ROOT_SELECTOR,
|
|
7775
|
+
timeout: (_f = (_e = searchResultOptions.value.scrollToResults) == null ? void 0 : _e.timeout) != null ? _f : 500
|
|
7776
|
+
};
|
|
7777
|
+
});
|
|
7753
7778
|
const handlePageChange = (page) => {
|
|
7754
7779
|
if (page > 0) {
|
|
7755
7780
|
paramStore.appendParams({
|
|
7756
7781
|
params: [{ name: QUERY_PARAMS.PAGE, value: page.toString() }]
|
|
7757
7782
|
});
|
|
7758
|
-
|
|
7783
|
+
if (scrollToResultsOptions.value.enabled) {
|
|
7784
|
+
scrollToSearchResults(
|
|
7785
|
+
scrollToResultsOptions.value.timeout,
|
|
7786
|
+
scrollToResultsOptions.value.container
|
|
7787
|
+
);
|
|
7788
|
+
}
|
|
7759
7789
|
}
|
|
7760
7790
|
};
|
|
7761
7791
|
return (_ctx, _cache) => {
|
package/dist/lupaSearch.mjs
CHANGED
|
@@ -1520,6 +1520,7 @@ const DEFAULT_PAGE_SIZE = 12;
|
|
|
1520
1520
|
const DEFAULT_PAGE_SIZE_SELECTION = [12, 24, 36, 60];
|
|
1521
1521
|
const LUPA_ROUTING_EVENT = "lupaRedirect";
|
|
1522
1522
|
const RATING_STAR_HTML = "☆";
|
|
1523
|
+
const RESULT_ROOT_SELECTOR = "#lupa-search-results";
|
|
1523
1524
|
const production = "https://api.lupasearch.com/v1/";
|
|
1524
1525
|
const staging = "https://api.staging.lupasearch.com/v1/";
|
|
1525
1526
|
const Env$1 = {
|
|
@@ -3974,22 +3975,21 @@ var ResultsLayoutEnum = /* @__PURE__ */ ((ResultsLayoutEnum2) => {
|
|
|
3974
3975
|
ResultsLayoutEnum2["LIST"] = "List";
|
|
3975
3976
|
return ResultsLayoutEnum2;
|
|
3976
3977
|
})(ResultsLayoutEnum || {});
|
|
3977
|
-
const RESULT_ROOT_ID = "lupa-search-results";
|
|
3978
3978
|
const SHADOW_ROOT_ID = "lupa-shadow-id";
|
|
3979
3979
|
const CONTAINER_ROOT_ID = "lupa-search-container";
|
|
3980
|
-
const scrollToSearchResults = (timeout = 500) => {
|
|
3980
|
+
const scrollToSearchResults = (timeout = 500, containerSelector) => {
|
|
3981
3981
|
if (timeout) {
|
|
3982
|
-
setTimeout(() => scrollTo(
|
|
3982
|
+
setTimeout(() => scrollTo(containerSelector != null ? containerSelector : RESULT_ROOT_SELECTOR), timeout);
|
|
3983
3983
|
} else {
|
|
3984
|
-
scrollTo(
|
|
3984
|
+
scrollTo(RESULT_ROOT_SELECTOR);
|
|
3985
3985
|
}
|
|
3986
3986
|
};
|
|
3987
|
-
const scrollTo = (
|
|
3987
|
+
const scrollTo = (elementSelector) => {
|
|
3988
3988
|
var _a, _b;
|
|
3989
|
-
let el = document.
|
|
3989
|
+
let el = document.querySelector(elementSelector);
|
|
3990
3990
|
const shadowRoot = (_a = document.getElementById(SHADOW_ROOT_ID)) == null ? void 0 : _a.shadowRoot;
|
|
3991
3991
|
if (!el) {
|
|
3992
|
-
el = (_b = shadowRoot == null ? void 0 : shadowRoot.getElementById(
|
|
3992
|
+
el = (_b = shadowRoot == null ? void 0 : shadowRoot.getElementById(elementSelector)) != null ? _b : null;
|
|
3993
3993
|
}
|
|
3994
3994
|
if (!el) {
|
|
3995
3995
|
return;
|
|
@@ -7374,8 +7374,10 @@ const _sfc_main$M = /* @__PURE__ */ defineComponent({
|
|
|
7374
7374
|
const props = __props;
|
|
7375
7375
|
const paramStore = useParamsStore();
|
|
7376
7376
|
const searchResultStore = useSearchResultStore();
|
|
7377
|
+
const optionsStore = useOptionsStore();
|
|
7377
7378
|
const { filters } = storeToRefs(paramStore);
|
|
7378
7379
|
const { facets } = storeToRefs(searchResultStore);
|
|
7380
|
+
const { searchResultOptions } = storeToRefs(optionsStore);
|
|
7379
7381
|
computed(() => {
|
|
7380
7382
|
var _a;
|
|
7381
7383
|
return (_a = facets.value) == null ? void 0 : _a.filter((f2) => {
|
|
@@ -7390,6 +7392,14 @@ const _sfc_main$M = /* @__PURE__ */ defineComponent({
|
|
|
7390
7392
|
return !((_a2 = props.options.promotedFacets) == null ? void 0 : _a2.includes(f2.key));
|
|
7391
7393
|
});
|
|
7392
7394
|
});
|
|
7395
|
+
const scrollToResultsOptions = computed(() => {
|
|
7396
|
+
var _a, _b, _c, _d, _e, _f;
|
|
7397
|
+
return {
|
|
7398
|
+
enabled: ((_a = searchResultOptions.value.scrollToResults) == null ? void 0 : _a.enabled) === void 0 ? true : (_b = searchResultOptions.value.scrollToResults) == null ? void 0 : _b.enabled,
|
|
7399
|
+
container: (_d = (_c = searchResultOptions.value.scrollToResults) == null ? void 0 : _c.scrollToContainerSelector) != null ? _d : RESULT_ROOT_SELECTOR,
|
|
7400
|
+
timeout: (_f = (_e = searchResultOptions.value.scrollToResults) == null ? void 0 : _e.timeout) != null ? _f : 500
|
|
7401
|
+
};
|
|
7402
|
+
});
|
|
7393
7403
|
const handleFacetSelect = (facetAction) => {
|
|
7394
7404
|
switch (facetAction.type) {
|
|
7395
7405
|
case "terms":
|
|
@@ -7402,7 +7412,12 @@ const _sfc_main$M = /* @__PURE__ */ defineComponent({
|
|
|
7402
7412
|
toggleHierarchyFilter(paramStore.appendParams, facetAction, filters.value);
|
|
7403
7413
|
break;
|
|
7404
7414
|
}
|
|
7405
|
-
|
|
7415
|
+
if (scrollToResultsOptions.value.enabled) {
|
|
7416
|
+
scrollToSearchResults(
|
|
7417
|
+
scrollToResultsOptions.value.timeout,
|
|
7418
|
+
scrollToResultsOptions.value.container
|
|
7419
|
+
);
|
|
7420
|
+
}
|
|
7406
7421
|
};
|
|
7407
7422
|
const clear = (facet) => {
|
|
7408
7423
|
const param = getFacetKey(facet.key, facet.type);
|
|
@@ -7714,7 +7729,9 @@ const _sfc_main$F = /* @__PURE__ */ defineComponent({
|
|
|
7714
7729
|
});
|
|
7715
7730
|
const paramStore = useParamsStore();
|
|
7716
7731
|
const screenStore = useScreenStore();
|
|
7732
|
+
const optionsStore = useOptionsStore();
|
|
7717
7733
|
const { isMobileWidth } = storeToRefs(screenStore);
|
|
7734
|
+
const { searchResultOptions } = storeToRefs(optionsStore);
|
|
7718
7735
|
const pageOptionsCount = computed(() => {
|
|
7719
7736
|
return isMobileWidth.value ? props.options.displayMobile : props.options.display;
|
|
7720
7737
|
});
|
|
@@ -7748,12 +7765,25 @@ const _sfc_main$F = /* @__PURE__ */ defineComponent({
|
|
|
7748
7765
|
const showPagination = computed(() => {
|
|
7749
7766
|
return pages.value.length > 1;
|
|
7750
7767
|
});
|
|
7768
|
+
const scrollToResultsOptions = computed(() => {
|
|
7769
|
+
var _a, _b, _c, _d, _e, _f;
|
|
7770
|
+
return {
|
|
7771
|
+
enabled: ((_a = searchResultOptions.value.scrollToResults) == null ? void 0 : _a.enabled) === void 0 ? true : (_b = searchResultOptions.value.scrollToResults) == null ? void 0 : _b.enabled,
|
|
7772
|
+
container: (_d = (_c = searchResultOptions.value.scrollToResults) == null ? void 0 : _c.scrollToContainerSelector) != null ? _d : RESULT_ROOT_SELECTOR,
|
|
7773
|
+
timeout: (_f = (_e = searchResultOptions.value.scrollToResults) == null ? void 0 : _e.timeout) != null ? _f : 500
|
|
7774
|
+
};
|
|
7775
|
+
});
|
|
7751
7776
|
const handlePageChange = (page) => {
|
|
7752
7777
|
if (page > 0) {
|
|
7753
7778
|
paramStore.appendParams({
|
|
7754
7779
|
params: [{ name: QUERY_PARAMS.PAGE, value: page.toString() }]
|
|
7755
7780
|
});
|
|
7756
|
-
|
|
7781
|
+
if (scrollToResultsOptions.value.enabled) {
|
|
7782
|
+
scrollToSearchResults(
|
|
7783
|
+
scrollToResultsOptions.value.timeout,
|
|
7784
|
+
scrollToResultsOptions.value.container
|
|
7785
|
+
);
|
|
7786
|
+
}
|
|
7757
7787
|
}
|
|
7758
7788
|
};
|
|
7759
7789
|
return (_ctx, _cache) => {
|
|
@@ -15,3 +15,4 @@ export declare const DEFAULT_PAGE_SIZE_SELECTION: number[];
|
|
|
15
15
|
export declare const LUPA_ROUTING_EVENT = "lupaRedirect";
|
|
16
16
|
export declare const DEFAULT_CONTAINER_STYLE = "containerStyle.css";
|
|
17
17
|
export declare const RATING_STAR_HTML = "☆";
|
|
18
|
+
export declare const RESULT_ROOT_SELECTOR = "#lupa-search-results";
|
package/dist/src/index.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ import type { SearchContainerOptions, SearchContainerConfigOptions } from './typ
|
|
|
10
10
|
import type { SearchResultBadgeType, SearchResultBadgeElement, BadgeGenerateSeed, BadgeGenerateOptions, BadgeOptions } from './types/search-results/BadgeOptions';
|
|
11
11
|
import { BadgeType } from './types/search-results/BadgeOptions';
|
|
12
12
|
import type { RoutingBehavior } from './types/search-results/RoutingBehavior';
|
|
13
|
-
import type { SearchResultsOptions, FacetStyle, SearchResultEventCallbacks, CallbackContext, SortCallbackContext, ResultCallbackContext, FacetFilterQuery, SearchResultsFilterOptions, ResultFacetOptions, DynamicData, SsrOptions } from './types/search-results/SearchResultsOptions';
|
|
13
|
+
import type { SearchResultsOptions, FacetStyle, SearchResultEventCallbacks, CallbackContext, SortCallbackContext, ResultCallbackContext, FacetFilterQuery, SearchResultsFilterOptions, ResultFacetOptions, DynamicData, SsrOptions, ScrollToResultsOptions } from './types/search-results/SearchResultsOptions';
|
|
14
14
|
import type { AnchorPosition } from './types/search-results/SearchResultsProductCardOptions';
|
|
15
15
|
import type { SortOptions, SearchResultsSortOptions } from './types/search-results/SearchResultsSort';
|
|
16
16
|
import SearchBox from './components/search-box/SearchBox.vue';
|
|
@@ -29,4 +29,4 @@ declare const LupaSearch: {
|
|
|
29
29
|
install: (app: any) => void;
|
|
30
30
|
};
|
|
31
31
|
export { SearchBox, SearchResults, ProductList, Recommendations, SearchContainer, ChatContainer, DocumentElementType, SearchBoxPanelType, BadgeType, setupTracking, LupaSearch, initPinia, getInitialSearchResults };
|
|
32
|
-
export type { TrackingOptions, SearchBoxOptions, SearchResultsOptions, ProductListOptions, SdkOptions, FacetStyle, Environment, RoutingBehavior, AnchorPosition, SortDirection, DocumentElement, ImageDocumentElement, TitleDocumentElement, DescriptionDocumentElement, CustomDocumentElement, PriceElement, RegularPriceDocumentElement, RatingElement, AddToCartElement, CustomHtmlElement, SortOptions, SearchResultsSortOptions, SearchResultEventCallbacks, CallbackContext, SortCallbackContext, ResultCallbackContext, FacetFilterQuery, CategoryFilterOptions, SearchResultsFilterOptions, SearchResultBadgeType, SearchResultBadgeElement, ResultFacetOptions, BadgeGenerateSeed, BadgeGenerateOptions, BadgeOptions, SearchContainerOptions, SearchContainerConfigOptions, SingleStarRatingElement, DynamicData, ProductRecommendationOptions, RecommendationABTestingOptions, SsrOptions, ChatOptions, ChatSettings, SearchBoxEventCallbacks, SearchBoxResultCallbackContext, QueryParams, SearchBoxResultsNavigateContext, RedirectionOptions };
|
|
32
|
+
export type { TrackingOptions, SearchBoxOptions, SearchResultsOptions, ProductListOptions, SdkOptions, FacetStyle, Environment, RoutingBehavior, AnchorPosition, SortDirection, DocumentElement, ImageDocumentElement, TitleDocumentElement, DescriptionDocumentElement, CustomDocumentElement, PriceElement, RegularPriceDocumentElement, RatingElement, AddToCartElement, CustomHtmlElement, SortOptions, SearchResultsSortOptions, SearchResultEventCallbacks, CallbackContext, SortCallbackContext, ResultCallbackContext, FacetFilterQuery, CategoryFilterOptions, SearchResultsFilterOptions, SearchResultBadgeType, SearchResultBadgeElement, ResultFacetOptions, BadgeGenerateSeed, BadgeGenerateOptions, BadgeOptions, SearchContainerOptions, SearchContainerConfigOptions, SingleStarRatingElement, DynamicData, ProductRecommendationOptions, RecommendationABTestingOptions, SsrOptions, ChatOptions, ChatSettings, SearchBoxEventCallbacks, SearchBoxResultCallbackContext, QueryParams, SearchBoxResultsNavigateContext, RedirectionOptions, ScrollToResultsOptions };
|
|
@@ -14,6 +14,12 @@ export type SearchResultsOptions = SearchResultsProductOptions & SearchResultsAd
|
|
|
14
14
|
dynamicData?: DynamicData;
|
|
15
15
|
ssr?: SsrOptions;
|
|
16
16
|
redirections?: RedirectionOptions;
|
|
17
|
+
scrollToResults?: ScrollToResultsOptions;
|
|
18
|
+
};
|
|
19
|
+
export type ScrollToResultsOptions = {
|
|
20
|
+
enabled?: boolean;
|
|
21
|
+
scrollToContainerSelector?: string;
|
|
22
|
+
timeout?: number;
|
|
17
23
|
};
|
|
18
24
|
export type SsrOptions = {
|
|
19
25
|
baseUrl?: string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const scrollToSearchResults: (timeout?: number) => void;
|
|
2
|
-
export declare const scrollTo: (
|
|
1
|
+
export declare const scrollToSearchResults: (timeout?: number, containerSelector?: string) => void;
|
|
2
|
+
export declare const scrollTo: (elementSelector: string) => void;
|
|
3
3
|
export declare const disableBodyScroll: () => void;
|
|
4
4
|
export declare const enableBodyScroll: () => void;
|