@getlupa/client 0.6.0-alpha-20 → 0.6.0-alpha-23
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/cjs/components/product-list/CategoryDescription.vue.d.ts +0 -1
- package/dist/cjs/components/search-results/filters/MobileFilterSidebar.vue.d.ts +1 -1
- package/dist/cjs/components/search-results/products/SearchResultsMobileToggle.vue.d.ts +1 -1
- package/dist/cjs/components/search-results/products/SearchResultsProducts.vue.d.ts +8 -0
- package/dist/cjs/constants/development/searchResultsDev.example.const.d.ts +2 -0
- package/dist/cjs/constants/global.const.d.ts +1 -0
- package/dist/cjs/index.min.js +120 -47
- package/dist/cjs/store/modules/searchResult.d.ts +6 -0
- package/dist/cjs/types/search-results/SearchResultsOptions.d.ts +2 -0
- package/dist/cjs/utils/scroll.utils.d.ts +2 -0
- package/dist/es/components/product-list/CategoryDescription.vue.d.ts +0 -1
- package/dist/es/components/search-results/filters/MobileFilterSidebar.vue.d.ts +1 -1
- package/dist/es/components/search-results/products/SearchResultsMobileToggle.vue.d.ts +1 -1
- package/dist/es/components/search-results/products/SearchResultsProducts.vue.d.ts +8 -0
- package/dist/es/constants/development/searchResultsDev.example.const.d.ts +2 -0
- package/dist/es/constants/global.const.d.ts +1 -0
- package/dist/es/index.min.js +120 -47
- package/dist/es/store/modules/searchResult.d.ts +6 -0
- package/dist/es/types/search-results/SearchResultsOptions.d.ts +2 -0
- package/dist/es/utils/scroll.utils.d.ts +2 -0
- package/dist/iife/components/product-list/CategoryDescription.vue.d.ts +0 -1
- package/dist/iife/components/search-results/filters/MobileFilterSidebar.vue.d.ts +1 -1
- package/dist/iife/components/search-results/products/SearchResultsMobileToggle.vue.d.ts +1 -1
- package/dist/iife/components/search-results/products/SearchResultsProducts.vue.d.ts +8 -0
- package/dist/iife/constants/development/searchResultsDev.example.const.d.ts +2 -0
- package/dist/iife/constants/global.const.d.ts +1 -0
- package/dist/iife/index.min.js +1 -1
- package/dist/iife/store/modules/searchResult.d.ts +6 -0
- package/dist/iife/types/search-results/SearchResultsOptions.d.ts +2 -0
- package/dist/iife/utils/scroll.utils.d.ts +2 -0
- package/dist/style.css +1 -1
- package/package.json +1 -1
|
@@ -2,7 +2,6 @@ import Vue from "vue";
|
|
|
2
2
|
import { ProductListOptions } from "@/types/product-list/ProductListOptions";
|
|
3
3
|
export default class CategoryDescription extends Vue {
|
|
4
4
|
options: ProductListOptions;
|
|
5
|
-
get title(): string | undefined;
|
|
6
5
|
get description(): string | undefined;
|
|
7
6
|
get overviewVisible(): boolean;
|
|
8
7
|
}
|
|
@@ -2,7 +2,7 @@ import { SearchResultsFilterOptions } from "@/types/search-results/SearchResults
|
|
|
2
2
|
import Vue from "vue";
|
|
3
3
|
export default class MobileFilterSidebar extends Vue {
|
|
4
4
|
options: SearchResultsFilterOptions;
|
|
5
|
-
|
|
5
|
+
setSidebarState: ({ visible, }: {
|
|
6
6
|
visible: boolean;
|
|
7
7
|
}) => void;
|
|
8
8
|
isMobileSidebarVisible: boolean;
|
|
@@ -3,7 +3,7 @@ export default class SearchResultsMobileToggle extends Vue {
|
|
|
3
3
|
label: string;
|
|
4
4
|
showFilterCount: boolean;
|
|
5
5
|
currentFilterCount: number;
|
|
6
|
-
|
|
6
|
+
setSidebarState: ({ visible, }: {
|
|
7
7
|
visible: boolean;
|
|
8
8
|
}) => void;
|
|
9
9
|
handleMobileToggle(): void;
|
|
@@ -8,6 +8,7 @@ export default class SearchResultsProducts extends Vue {
|
|
|
8
8
|
loading: boolean;
|
|
9
9
|
hasResults: boolean;
|
|
10
10
|
currentQueryText: string;
|
|
11
|
+
isPageEmpty: boolean;
|
|
11
12
|
isMobileSidebarVisible: boolean;
|
|
12
13
|
productCardOptions(): SearchResultsProductCardOptions;
|
|
13
14
|
get similarQueriesLabels(): SearchResultsSimilarQueriesLabels;
|
|
@@ -21,4 +22,11 @@ export default class SearchResultsProducts extends Vue {
|
|
|
21
22
|
page: number;
|
|
22
23
|
get columnSize(): string;
|
|
23
24
|
getProductKey(index: string, product: Document): string;
|
|
25
|
+
appendParams: ({ params, }: {
|
|
26
|
+
params: {
|
|
27
|
+
name: string;
|
|
28
|
+
value: string;
|
|
29
|
+
}[];
|
|
30
|
+
}) => void;
|
|
31
|
+
goToFirstPage(): void;
|
|
24
32
|
}
|
|
@@ -13,6 +13,8 @@ export declare const SEARCH_RESULTS_CONFIGURATION: {
|
|
|
13
13
|
priceSeparator: string;
|
|
14
14
|
showMore: string;
|
|
15
15
|
emptyResults: string;
|
|
16
|
+
noItemsInPage: string;
|
|
17
|
+
backToFirstPage: string;
|
|
16
18
|
mobileFilterButton: string;
|
|
17
19
|
htmlTitleTemplate: string;
|
|
18
20
|
noResultsSuggestion: string;
|
|
@@ -11,4 +11,5 @@ export declare const XL_MIN_WIDTH = 1199;
|
|
|
11
11
|
export declare const MAX_FACET_VALUES = 5000;
|
|
12
12
|
export declare const CURRENCY_KEY_INDICATOR = "price";
|
|
13
13
|
export declare const DEFAULT_PAGE_SIZE = 12;
|
|
14
|
+
export declare const DEFAULT_PAGE_SIZE_SELECTION: number[];
|
|
14
15
|
export declare const LUPA_ROUTING_EVENT = "lupaRedirect";
|
package/dist/cjs/index.min.js
CHANGED
|
@@ -11919,6 +11919,7 @@ const XL_MIN_WIDTH = 1199;
|
|
|
11919
11919
|
const MAX_FACET_VALUES = 5000;
|
|
11920
11920
|
const CURRENCY_KEY_INDICATOR = "price";
|
|
11921
11921
|
const DEFAULT_PAGE_SIZE = 12;
|
|
11922
|
+
const DEFAULT_PAGE_SIZE_SELECTION = [12, 24, 36, 60];
|
|
11922
11923
|
const LUPA_ROUTING_EVENT = "lupaRedirect";
|
|
11923
11924
|
|
|
11924
11925
|
const formatRange = (filter) => {
|
|
@@ -15759,6 +15760,17 @@ const scrollTo = (elementId) => {
|
|
|
15759
15760
|
top: el.offsetTop,
|
|
15760
15761
|
behavior: "smooth",
|
|
15761
15762
|
});
|
|
15763
|
+
};
|
|
15764
|
+
const disableBodyScroll = () => {
|
|
15765
|
+
const scrollY = window.scrollY;
|
|
15766
|
+
document.body.style.position = "fixed";
|
|
15767
|
+
document.body.style.top = `-${scrollY}px`;
|
|
15768
|
+
};
|
|
15769
|
+
const enableBodyScroll = () => {
|
|
15770
|
+
const scrollY = document.body.style.top;
|
|
15771
|
+
document.body.style.position = "";
|
|
15772
|
+
document.body.style.top = "";
|
|
15773
|
+
window.scrollTo(0, parseInt(scrollY || "0") * -1);
|
|
15762
15774
|
};
|
|
15763
15775
|
|
|
15764
15776
|
const searchResult$g = namespace("searchResult");
|
|
@@ -16277,15 +16289,15 @@ let MobileFilterSidebar = class MobileFilterSidebar extends Vue$1 {
|
|
|
16277
16289
|
return !((_b = (_a = this.options.currentFilters) === null || _a === void 0 ? void 0 : _a.mobileSidebar) === null || _b === void 0 ? void 0 : _b.activeFiltersExpanded);
|
|
16278
16290
|
}
|
|
16279
16291
|
handleMobileToggle() {
|
|
16280
|
-
this.
|
|
16292
|
+
this.setSidebarState({ visible: false });
|
|
16281
16293
|
}
|
|
16282
16294
|
};
|
|
16283
16295
|
__decorate([
|
|
16284
16296
|
Prop()
|
|
16285
16297
|
], MobileFilterSidebar.prototype, "options", void 0);
|
|
16286
16298
|
__decorate([
|
|
16287
|
-
searchResult$f.
|
|
16288
|
-
], MobileFilterSidebar.prototype, "
|
|
16299
|
+
searchResult$f.Action("setSidebarState")
|
|
16300
|
+
], MobileFilterSidebar.prototype, "setSidebarState", void 0);
|
|
16289
16301
|
__decorate([
|
|
16290
16302
|
searchResult$f.State((state) => state.isMobileSidebarVisible)
|
|
16291
16303
|
], MobileFilterSidebar.prototype, "isMobileSidebarVisible", void 0);
|
|
@@ -16312,35 +16324,47 @@ var __vue_render__$C = function () {
|
|
|
16312
16324
|
var _c = _vm._self._c || _h;
|
|
16313
16325
|
return _vm.isMobileSidebarVisible
|
|
16314
16326
|
? _c("div", { staticClass: "lupa-mobile-filter-sidebar" }, [
|
|
16315
|
-
_c("div", {
|
|
16316
|
-
|
|
16317
|
-
|
|
16318
|
-
|
|
16319
|
-
|
|
16320
|
-
|
|
16321
|
-
|
|
16322
|
-
|
|
16327
|
+
_c("div", {
|
|
16328
|
+
staticClass: "lupa-sidebar-close",
|
|
16329
|
+
on: {
|
|
16330
|
+
click: function ($event) {
|
|
16331
|
+
$event.stopPropagation();
|
|
16332
|
+
return _vm.handleMobileToggle.apply(null, arguments)
|
|
16333
|
+
},
|
|
16334
|
+
},
|
|
16335
|
+
}),
|
|
16336
|
+
_vm._v(" "),
|
|
16337
|
+
_c("div", { staticClass: "lupa-mobile-sidebar-content" }, [
|
|
16338
|
+
_c("div", { staticClass: "lupa-sidebar-top" }, [
|
|
16339
|
+
_c("div", { staticClass: "lupa-sidebar-title" }, [
|
|
16340
|
+
_vm._v("\n " + _vm._s(_vm.sidebarTitle) + "\n "),
|
|
16341
|
+
_vm.isFilterCountVisible
|
|
16342
|
+
? _c("span", { staticClass: "lupa-sidebar-filter-count" }, [
|
|
16343
|
+
_vm._v(_vm._s(_vm.currentFilterCount)),
|
|
16344
|
+
])
|
|
16345
|
+
: _vm._e(),
|
|
16346
|
+
]),
|
|
16347
|
+
_vm._v(" "),
|
|
16348
|
+
_c("div", {
|
|
16349
|
+
staticClass: "lupa-filter-toggle-mobile",
|
|
16350
|
+
on: { click: _vm.handleMobileToggle },
|
|
16351
|
+
}),
|
|
16323
16352
|
]),
|
|
16324
16353
|
_vm._v(" "),
|
|
16325
|
-
_c(
|
|
16326
|
-
|
|
16327
|
-
|
|
16328
|
-
|
|
16354
|
+
_c(
|
|
16355
|
+
"div",
|
|
16356
|
+
{ staticClass: "lupa-sidebar-filter-options" },
|
|
16357
|
+
[
|
|
16358
|
+
_c("SearchResultsFilters", {
|
|
16359
|
+
attrs: {
|
|
16360
|
+
options: _vm.options,
|
|
16361
|
+
expandable: _vm.isActiveFiltersExpanded,
|
|
16362
|
+
},
|
|
16363
|
+
}),
|
|
16364
|
+
],
|
|
16365
|
+
1
|
|
16366
|
+
),
|
|
16329
16367
|
]),
|
|
16330
|
-
_vm._v(" "),
|
|
16331
|
-
_c(
|
|
16332
|
-
"div",
|
|
16333
|
-
{ staticClass: "lupa-sidebar-filter-options" },
|
|
16334
|
-
[
|
|
16335
|
-
_c("SearchResultsFilters", {
|
|
16336
|
-
attrs: {
|
|
16337
|
-
options: _vm.options,
|
|
16338
|
-
expandable: _vm.isActiveFiltersExpanded,
|
|
16339
|
-
},
|
|
16340
|
-
}),
|
|
16341
|
-
],
|
|
16342
|
-
1
|
|
16343
|
-
),
|
|
16344
16368
|
])
|
|
16345
16369
|
: _vm._e()
|
|
16346
16370
|
};
|
|
@@ -19105,7 +19129,7 @@ __vue_render__$f._withStripped = true;
|
|
|
19105
19129
|
const searchResult$8 = namespace("searchResult");
|
|
19106
19130
|
let SearchResultsMobileToggle = class SearchResultsMobileToggle extends Vue$1 {
|
|
19107
19131
|
handleMobileToggle() {
|
|
19108
|
-
this.
|
|
19132
|
+
this.setSidebarState({ visible: true });
|
|
19109
19133
|
}
|
|
19110
19134
|
};
|
|
19111
19135
|
__decorate([
|
|
@@ -19118,8 +19142,8 @@ __decorate([
|
|
|
19118
19142
|
searchResult$8.Getter("currentFilterCount")
|
|
19119
19143
|
], SearchResultsMobileToggle.prototype, "currentFilterCount", void 0);
|
|
19120
19144
|
__decorate([
|
|
19121
|
-
searchResult$8.
|
|
19122
|
-
], SearchResultsMobileToggle.prototype, "
|
|
19145
|
+
searchResult$8.Action("setSidebarState")
|
|
19146
|
+
], SearchResultsMobileToggle.prototype, "setSidebarState", void 0);
|
|
19123
19147
|
SearchResultsMobileToggle = __decorate([
|
|
19124
19148
|
Component({
|
|
19125
19149
|
name: "searchResultsMobileToggle",
|
|
@@ -19818,6 +19842,11 @@ let SearchResultsProducts = class SearchResultsProducts extends Vue$1 {
|
|
|
19818
19842
|
getProductKey(index, product) {
|
|
19819
19843
|
return getProductKey(index, product, this.options.idKey);
|
|
19820
19844
|
}
|
|
19845
|
+
goToFirstPage() {
|
|
19846
|
+
this.appendParams({
|
|
19847
|
+
params: [{ name: QUERY_PARAMS.PAGE, value: "1" }],
|
|
19848
|
+
});
|
|
19849
|
+
}
|
|
19821
19850
|
};
|
|
19822
19851
|
__decorate([
|
|
19823
19852
|
Prop()
|
|
@@ -19831,6 +19860,9 @@ __decorate([
|
|
|
19831
19860
|
__decorate([
|
|
19832
19861
|
searchResult$4.Getter("currentQueryText")
|
|
19833
19862
|
], SearchResultsProducts.prototype, "currentQueryText", void 0);
|
|
19863
|
+
__decorate([
|
|
19864
|
+
searchResult$4.Getter("isPageEmpty")
|
|
19865
|
+
], SearchResultsProducts.prototype, "isPageEmpty", void 0);
|
|
19834
19866
|
__decorate([
|
|
19835
19867
|
searchResult$4.State((state) => state.isMobileSidebarVisible)
|
|
19836
19868
|
], SearchResultsProducts.prototype, "isMobileSidebarVisible", void 0);
|
|
@@ -19849,6 +19881,9 @@ __decorate([
|
|
|
19849
19881
|
__decorate([
|
|
19850
19882
|
params$2.Getter("page")
|
|
19851
19883
|
], SearchResultsProducts.prototype, "page", void 0);
|
|
19884
|
+
__decorate([
|
|
19885
|
+
params$2.Action("appendParams")
|
|
19886
|
+
], SearchResultsProducts.prototype, "appendParams", void 0);
|
|
19852
19887
|
SearchResultsProducts = __decorate([
|
|
19853
19888
|
Component({
|
|
19854
19889
|
name: "searchResultsProducts",
|
|
@@ -19875,10 +19910,7 @@ var __vue_render__$8 = function () {
|
|
|
19875
19910
|
var _c = _vm._self._c || _h;
|
|
19876
19911
|
return _c(
|
|
19877
19912
|
"div",
|
|
19878
|
-
{
|
|
19879
|
-
style: { display: _vm.isMobileSidebarVisible ? "none" : "block" },
|
|
19880
|
-
attrs: { id: "lupa-search-results-products" },
|
|
19881
|
-
},
|
|
19913
|
+
{ attrs: { id: "lupa-search-results-products" } },
|
|
19882
19914
|
[
|
|
19883
19915
|
_vm.loading && !_vm.isMobileSidebarVisible
|
|
19884
19916
|
? _c("spinner", { staticClass: "lupa-loader" })
|
|
@@ -19946,6 +19978,38 @@ var __vue_render__$8 = function () {
|
|
|
19946
19978
|
1
|
|
19947
19979
|
),
|
|
19948
19980
|
_vm._v(" "),
|
|
19981
|
+
_vm.isPageEmpty && _vm.options.labels.noItemsInPage
|
|
19982
|
+
? _c(
|
|
19983
|
+
"div",
|
|
19984
|
+
{
|
|
19985
|
+
staticClass: "lupa-empty-results",
|
|
19986
|
+
attrs: { "data-cy": "lupa-no-results-in-page" },
|
|
19987
|
+
},
|
|
19988
|
+
[
|
|
19989
|
+
_vm._v(
|
|
19990
|
+
"\n " +
|
|
19991
|
+
_vm._s(_vm.options.labels.noItemsInPage) +
|
|
19992
|
+
"\n "
|
|
19993
|
+
),
|
|
19994
|
+
_vm.options.labels.backToFirstPage
|
|
19995
|
+
? _c(
|
|
19996
|
+
"span",
|
|
19997
|
+
{
|
|
19998
|
+
staticClass: "lupa-empty-page-action",
|
|
19999
|
+
on: { click: _vm.goToFirstPage },
|
|
20000
|
+
},
|
|
20001
|
+
[
|
|
20002
|
+
_vm._v(
|
|
20003
|
+
"\n " +
|
|
20004
|
+
_vm._s(_vm.options.labels.backToFirstPage)
|
|
20005
|
+
),
|
|
20006
|
+
]
|
|
20007
|
+
)
|
|
20008
|
+
: _vm._e(),
|
|
20009
|
+
]
|
|
20010
|
+
)
|
|
20011
|
+
: _vm._e(),
|
|
20012
|
+
_vm._v(" "),
|
|
19949
20013
|
_c("SearchResultsToolbar", {
|
|
19950
20014
|
staticClass: "lupa-toolbar-bottom",
|
|
19951
20015
|
attrs: { options: _vm.options, "pagination-location": "bottom" },
|
|
@@ -20755,17 +20819,13 @@ __vue_render__$3._withStripped = true;
|
|
|
20755
20819
|
);
|
|
20756
20820
|
|
|
20757
20821
|
let CategoryDescription = class CategoryDescription extends Vue$1 {
|
|
20758
|
-
get title() {
|
|
20759
|
-
var _a, _b;
|
|
20760
|
-
return (_b = (_a = this.options.categories) === null || _a === void 0 ? void 0 : _a.current) === null || _b === void 0 ? void 0 : _b.title;
|
|
20761
|
-
}
|
|
20762
20822
|
get description() {
|
|
20763
20823
|
var _a, _b;
|
|
20764
20824
|
return (_b = (_a = this.options.categories) === null || _a === void 0 ? void 0 : _a.current) === null || _b === void 0 ? void 0 : _b.description;
|
|
20765
20825
|
}
|
|
20766
20826
|
get overviewVisible() {
|
|
20767
20827
|
var _a, _b;
|
|
20768
|
-
return Boolean((_b = (_a = this.options.categories) === null || _a === void 0 ? void 0 : _a.current) === null || _b === void 0 ? void 0 : _b.
|
|
20828
|
+
return Boolean((_b = (_a = this.options.categories) === null || _a === void 0 ? void 0 : _a.current) === null || _b === void 0 ? void 0 : _b.description);
|
|
20769
20829
|
}
|
|
20770
20830
|
};
|
|
20771
20831
|
__decorate([
|
|
@@ -20791,10 +20851,6 @@ var __vue_render__$2 = function () {
|
|
|
20791
20851
|
var _c = _vm._self._c || _h;
|
|
20792
20852
|
return _vm.overviewVisible
|
|
20793
20853
|
? _c("div", { staticClass: "lupa-category-overview" }, [
|
|
20794
|
-
_c("div", { staticClass: "lupa-category-title" }, [
|
|
20795
|
-
_vm._v(_vm._s(_vm.title)),
|
|
20796
|
-
]),
|
|
20797
|
-
_vm._v(" "),
|
|
20798
20854
|
_c("div", {
|
|
20799
20855
|
staticClass: "lupa-category-description",
|
|
20800
20856
|
domProps: { innerHTML: _vm._s(_vm.description) },
|
|
@@ -21662,6 +21718,20 @@ let SearchResultModule = class SearchResultModule extends VuexModule {
|
|
|
21662
21718
|
return "xl";
|
|
21663
21719
|
}
|
|
21664
21720
|
}
|
|
21721
|
+
get isPageEmpty() {
|
|
21722
|
+
var _a;
|
|
21723
|
+
return (this.hasResults && ((_a = this.searchResult.offset) !== null && _a !== void 0 ? _a : 0) >= this.totalItems);
|
|
21724
|
+
}
|
|
21725
|
+
setSidebarState({ visible }) {
|
|
21726
|
+
// Disable body scroll when sidebar is open and preserve scroll position when scrolling is closed
|
|
21727
|
+
if (visible) {
|
|
21728
|
+
disableBodyScroll();
|
|
21729
|
+
}
|
|
21730
|
+
else {
|
|
21731
|
+
enableBodyScroll();
|
|
21732
|
+
}
|
|
21733
|
+
return { visible };
|
|
21734
|
+
}
|
|
21665
21735
|
setSidebarVisibility({ visible }) {
|
|
21666
21736
|
this.isMobileSidebarVisible = visible;
|
|
21667
21737
|
}
|
|
@@ -21741,6 +21811,9 @@ let SearchResultModule = class SearchResultModule extends VuexModule {
|
|
|
21741
21811
|
return loading || false;
|
|
21742
21812
|
}
|
|
21743
21813
|
};
|
|
21814
|
+
__decorate([
|
|
21815
|
+
Action({ commit: "setSidebarVisibility" })
|
|
21816
|
+
], SearchResultModule.prototype, "setSidebarState", null);
|
|
21744
21817
|
__decorate([
|
|
21745
21818
|
Mutation
|
|
21746
21819
|
], SearchResultModule.prototype, "setSidebarVisibility", null);
|
|
@@ -21974,8 +22047,8 @@ let OptionsModule = class OptionsModule extends VuexModule {
|
|
|
21974
22047
|
return (_b = (_a = this.currentResolutionPageSizes) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : DEFAULT_PAGE_SIZE;
|
|
21975
22048
|
}
|
|
21976
22049
|
get currentResolutionPageSizes() {
|
|
21977
|
-
var _a, _b, _c;
|
|
21978
|
-
const pageSizes = (_c = (_b = (_a = this.searchResultOptions) === null || _a === void 0 ? void 0 : _a.pagination) === null || _b === void 0 ? void 0 : _b.sizeSelection) === null || _c === void 0 ? void 0 : _c.sizes;
|
|
22050
|
+
var _a, _b, _c, _d;
|
|
22051
|
+
const pageSizes = (_d = (_c = (_b = (_a = this.searchResultOptions) === null || _a === void 0 ? void 0 : _a.pagination) === null || _b === void 0 ? void 0 : _b.sizeSelection) === null || _c === void 0 ? void 0 : _c.sizes) !== null && _d !== void 0 ? _d : DEFAULT_PAGE_SIZE_SELECTION;
|
|
21979
22052
|
if (Array.isArray(pageSizes)) {
|
|
21980
22053
|
return pageSizes;
|
|
21981
22054
|
}
|
|
@@ -26,6 +26,12 @@ export default class SearchResultModule extends VuexModule {
|
|
|
26
26
|
get itemRange(): number[];
|
|
27
27
|
get isMobileWidth(): boolean;
|
|
28
28
|
get currentScreenWidth(): ScreenSize;
|
|
29
|
+
get isPageEmpty(): boolean;
|
|
30
|
+
setSidebarState({ visible }: {
|
|
31
|
+
visible: boolean;
|
|
32
|
+
}): {
|
|
33
|
+
visible: boolean;
|
|
34
|
+
};
|
|
29
35
|
setSidebarVisibility({ visible }: {
|
|
30
36
|
visible: boolean;
|
|
31
37
|
}): void;
|
|
@@ -39,6 +39,8 @@ export declare type SearchResultsOptionLabels = SearchResultsPaginationLabels &
|
|
|
39
39
|
mobileFilterButton: string;
|
|
40
40
|
htmlTitleTemplate: string;
|
|
41
41
|
outOfStock?: string;
|
|
42
|
+
noItemsInPage?: string;
|
|
43
|
+
backToFirstPage?: string;
|
|
42
44
|
};
|
|
43
45
|
export declare type SearchResultsAdditionalPanels = {
|
|
44
46
|
additionalPanels?: SearchResultsAdditionalPanelOptions[];
|
|
@@ -2,7 +2,6 @@ import Vue from "vue";
|
|
|
2
2
|
import { ProductListOptions } from "@/types/product-list/ProductListOptions";
|
|
3
3
|
export default class CategoryDescription extends Vue {
|
|
4
4
|
options: ProductListOptions;
|
|
5
|
-
get title(): string | undefined;
|
|
6
5
|
get description(): string | undefined;
|
|
7
6
|
get overviewVisible(): boolean;
|
|
8
7
|
}
|
|
@@ -2,7 +2,7 @@ import { SearchResultsFilterOptions } from "@/types/search-results/SearchResults
|
|
|
2
2
|
import Vue from "vue";
|
|
3
3
|
export default class MobileFilterSidebar extends Vue {
|
|
4
4
|
options: SearchResultsFilterOptions;
|
|
5
|
-
|
|
5
|
+
setSidebarState: ({ visible, }: {
|
|
6
6
|
visible: boolean;
|
|
7
7
|
}) => void;
|
|
8
8
|
isMobileSidebarVisible: boolean;
|
|
@@ -3,7 +3,7 @@ export default class SearchResultsMobileToggle extends Vue {
|
|
|
3
3
|
label: string;
|
|
4
4
|
showFilterCount: boolean;
|
|
5
5
|
currentFilterCount: number;
|
|
6
|
-
|
|
6
|
+
setSidebarState: ({ visible, }: {
|
|
7
7
|
visible: boolean;
|
|
8
8
|
}) => void;
|
|
9
9
|
handleMobileToggle(): void;
|
|
@@ -8,6 +8,7 @@ export default class SearchResultsProducts extends Vue {
|
|
|
8
8
|
loading: boolean;
|
|
9
9
|
hasResults: boolean;
|
|
10
10
|
currentQueryText: string;
|
|
11
|
+
isPageEmpty: boolean;
|
|
11
12
|
isMobileSidebarVisible: boolean;
|
|
12
13
|
productCardOptions(): SearchResultsProductCardOptions;
|
|
13
14
|
get similarQueriesLabels(): SearchResultsSimilarQueriesLabels;
|
|
@@ -21,4 +22,11 @@ export default class SearchResultsProducts extends Vue {
|
|
|
21
22
|
page: number;
|
|
22
23
|
get columnSize(): string;
|
|
23
24
|
getProductKey(index: string, product: Document): string;
|
|
25
|
+
appendParams: ({ params, }: {
|
|
26
|
+
params: {
|
|
27
|
+
name: string;
|
|
28
|
+
value: string;
|
|
29
|
+
}[];
|
|
30
|
+
}) => void;
|
|
31
|
+
goToFirstPage(): void;
|
|
24
32
|
}
|
|
@@ -13,6 +13,8 @@ export declare const SEARCH_RESULTS_CONFIGURATION: {
|
|
|
13
13
|
priceSeparator: string;
|
|
14
14
|
showMore: string;
|
|
15
15
|
emptyResults: string;
|
|
16
|
+
noItemsInPage: string;
|
|
17
|
+
backToFirstPage: string;
|
|
16
18
|
mobileFilterButton: string;
|
|
17
19
|
htmlTitleTemplate: string;
|
|
18
20
|
noResultsSuggestion: string;
|
|
@@ -11,4 +11,5 @@ export declare const XL_MIN_WIDTH = 1199;
|
|
|
11
11
|
export declare const MAX_FACET_VALUES = 5000;
|
|
12
12
|
export declare const CURRENCY_KEY_INDICATOR = "price";
|
|
13
13
|
export declare const DEFAULT_PAGE_SIZE = 12;
|
|
14
|
+
export declare const DEFAULT_PAGE_SIZE_SELECTION: number[];
|
|
14
15
|
export declare const LUPA_ROUTING_EVENT = "lupaRedirect";
|