@getlupa/client 0.6.0-alpha-10 → 0.6.0-alpha-13

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.
@@ -21,6 +21,7 @@ export default class SearchResultsToolbar extends Vue {
21
21
  get displayPageSelect(): boolean;
22
22
  get searchSummaryLabel(): string;
23
23
  get showMobileFilterCount(): boolean;
24
+ currentResolutionPageSizes: number[];
24
25
  removeAllFilters: () => {
25
26
  params: QueryParams;
26
27
  };
@@ -22147,7 +22147,7 @@ var getPageUrl = function getPageUrl(pathnameOverride) {
22147
22147
 
22148
22148
  var history$3 = namespace("history");
22149
22149
  var tracking$5 = namespace("tracking");
22150
- var options$b = namespace("options");
22150
+ var options$c = namespace("options");
22151
22151
 
22152
22152
  var SearchBoxProduct = /*#__PURE__*/function (_Vue) {
22153
22153
  _inherits(SearchBoxProduct, _Vue);
@@ -22245,7 +22245,7 @@ __decorate([Prop({
22245
22245
  default: false
22246
22246
  })], SearchBoxProduct.prototype, "highlighted", void 0);
22247
22247
 
22248
- __decorate([options$b.Getter("boxRoutingBehavior")], SearchBoxProduct.prototype, "boxRoutingBehavior", void 0);
22248
+ __decorate([options$c.Getter("boxRoutingBehavior")], SearchBoxProduct.prototype, "boxRoutingBehavior", void 0);
22249
22249
 
22250
22250
  __decorate([tracking$5.Action("track")], SearchBoxProduct.prototype, "trackClick", void 0);
22251
22251
 
@@ -23676,7 +23676,7 @@ var defaultSuggestedValue = {
23676
23676
  var history$1 = namespace("history");
23677
23677
  var params$d = namespace("params");
23678
23678
  var searchBox$2 = namespace("searchBox");
23679
- var options$a = namespace("options");
23679
+ var options$b = namespace("options");
23680
23680
  var tracking$4 = namespace("tracking");
23681
23681
 
23682
23682
  var SearchBox = /*#__PURE__*/function (_Vue) {
@@ -23961,7 +23961,7 @@ __decorate([tracking$4.Action("track")], SearchBox.prototype, "trackClick", void
23961
23961
 
23962
23962
  __decorate([params$d.Action("setSearchResultsLink")], SearchBox.prototype, "setSearchResultsLink", void 0);
23963
23963
 
23964
- __decorate([options$a.Mutation("setSearchBoxOptions")], SearchBox.prototype, "setSearchBoxOptions", void 0);
23964
+ __decorate([options$b.Mutation("setSearchBoxOptions")], SearchBox.prototype, "setSearchBoxOptions", void 0);
23965
23965
 
23966
23966
  __decorate([params$d.Action("goToResults")], SearchBox.prototype, "goToResults", void 0);
23967
23967
 
@@ -25611,7 +25611,7 @@ var toggleHierarchyParam = function toggleHierarchyParam() {
25611
25611
 
25612
25612
  var searchResult$h = namespace("searchResult");
25613
25613
  var params$c = namespace("params");
25614
- var options$9 = namespace("options");
25614
+ var options$a = namespace("options");
25615
25615
 
25616
25616
  var CurrentFilters = /*#__PURE__*/function (_Vue) {
25617
25617
  _inherits(CurrentFilters, _Vue);
@@ -25688,7 +25688,7 @@ __decorate([searchResult$h.Getter("displayFilters")], CurrentFilters.prototype,
25688
25688
 
25689
25689
  __decorate([searchResult$h.Getter("currentFilterCount")], CurrentFilters.prototype, "currentFilterCount", void 0);
25690
25690
 
25691
- __decorate([options$9.Getter("initialFilters")], CurrentFilters.prototype, "initialFilters", void 0);
25691
+ __decorate([options$a.Getter("initialFilters")], CurrentFilters.prototype, "initialFilters", void 0);
25692
25692
 
25693
25693
  __decorate([params$c.Action("removeParams")], CurrentFilters.prototype, "removeParams", void 0);
25694
25694
 
@@ -28623,7 +28623,7 @@ var _typeof = _typeof$2.exports.default;
28623
28623
 
28624
28624
  var VueSlider = /*@__PURE__*/getDefaultExportFromCjs(vueSliderComponent_umd_min.exports);
28625
28625
 
28626
- var options$8 = namespace("options");
28626
+ var options$9 = namespace("options");
28627
28627
 
28628
28628
  var TermFacet = /*#__PURE__*/function (_Vue) {
28629
28629
  _inherits(TermFacet, _Vue);
@@ -28830,7 +28830,7 @@ __decorate([Prop({
28830
28830
  }
28831
28831
  })], TermFacet.prototype, "currentFilters", void 0);
28832
28832
 
28833
- __decorate([options$8.State(function (s) {
28833
+ __decorate([options$9.State(function (s) {
28834
28834
  return s.searchResultOptions;
28835
28835
  })], TermFacet.prototype, "searchResultOptions", void 0);
28836
28836
 
@@ -29946,7 +29946,7 @@ var __vue_component__$F = /*#__PURE__*/normalizeComponent({
29946
29946
  staticRenderFns: __vue_staticRenderFns__$F
29947
29947
  }, __vue_inject_styles__$F, __vue_script__$F, __vue_scope_id__$F, __vue_is_functional_template__$F, __vue_module_identifier__$F, false, undefined, undefined, undefined);
29948
29948
 
29949
- var options$7 = namespace("options");
29949
+ var options$8 = namespace("options");
29950
29950
 
29951
29951
  var CategoryFilter = /*#__PURE__*/function (_Vue) {
29952
29952
  _inherits(CategoryFilter, _Vue);
@@ -30082,9 +30082,9 @@ var CategoryFilter = /*#__PURE__*/function (_Vue) {
30082
30082
 
30083
30083
  __decorate([Prop()], CategoryFilter.prototype, "options", void 0);
30084
30084
 
30085
- __decorate([options$7.Getter("envOptions")], CategoryFilter.prototype, "envOptions", void 0);
30085
+ __decorate([options$8.Getter("envOptions")], CategoryFilter.prototype, "envOptions", void 0);
30086
30086
 
30087
- __decorate([options$7.State(function (o) {
30087
+ __decorate([options$8.State(function (o) {
30088
30088
  return o.searchResultOptions;
30089
30089
  })], CategoryFilter.prototype, "searchResultOptions", void 0);
30090
30090
 
@@ -31073,7 +31073,7 @@ var __vue_component__$w = /*#__PURE__*/normalizeComponent({
31073
31073
  staticRenderFns: __vue_staticRenderFns__$w
31074
31074
  }, __vue_inject_styles__$w, __vue_script__$w, __vue_scope_id__$w, __vue_is_functional_template__$w, __vue_module_identifier__$w, false, undefined, undefined, undefined);
31075
31075
 
31076
- var options$6 = namespace("options");
31076
+ var options$7 = namespace("options");
31077
31077
 
31078
31078
  var SearchResultsProductTitle = /*#__PURE__*/function (_Vue) {
31079
31079
  _inherits(SearchResultsProductTitle, _Vue);
@@ -31126,7 +31126,7 @@ __decorate([Prop({
31126
31126
  default: ""
31127
31127
  })], SearchResultsProductTitle.prototype, "link", void 0);
31128
31128
 
31129
- __decorate([options$6.State(function (o) {
31129
+ __decorate([options$7.State(function (o) {
31130
31130
  return o.searchResultOptions;
31131
31131
  })], SearchResultsProductTitle.prototype, "searchResultOptions", void 0);
31132
31132
 
@@ -32037,7 +32037,7 @@ var __vue_component__$n = /*#__PURE__*/normalizeComponent({
32037
32037
  var tracking$3 = namespace("tracking");
32038
32038
  var params$9 = namespace("params");
32039
32039
  var searchResult$c = namespace("searchResult");
32040
- var options$5 = namespace("options");
32040
+ var options$6 = namespace("options");
32041
32041
 
32042
32042
  var SearchResultsProductCard = /*#__PURE__*/function (_Vue) {
32043
32043
  _inherits(SearchResultsProductCard, _Vue);
@@ -32087,7 +32087,9 @@ var SearchResultsProductCard = /*#__PURE__*/function (_Vue) {
32087
32087
  }, {
32088
32088
  key: "labels",
32089
32089
  get: function get() {
32090
- return this.options.labels;
32090
+ var _a;
32091
+
32092
+ return (_a = this.options.labels) !== null && _a !== void 0 ? _a : {};
32091
32093
  }
32092
32094
  }, {
32093
32095
  key: "link",
@@ -32208,7 +32210,7 @@ __decorate([searchResult$c.State(function (state) {
32208
32210
  return state.layout;
32209
32211
  })], SearchResultsProductCard.prototype, "layout", void 0);
32210
32212
 
32211
- __decorate([options$5.Getter("searchResultsRoutingBehavior")], SearchResultsProductCard.prototype, "searchResultsRoutingBehavior", void 0);
32213
+ __decorate([options$6.Getter("searchResultsRoutingBehavior")], SearchResultsProductCard.prototype, "searchResultsRoutingBehavior", void 0);
32212
32214
 
32213
32215
  __decorate([params$9.Getter("query")], SearchResultsProductCard.prototype, "query", void 0);
32214
32216
 
@@ -32257,7 +32259,7 @@ var __vue_render__$m = function __vue_render__() {
32257
32259
  on: {
32258
32260
  click: _vm.handleNavigation
32259
32261
  }
32260
- }, _vm._l(_vm.imageElements, function (element) {
32262
+ }, [_vm._l(_vm.imageElements, function (element) {
32261
32263
  return _c("SearchResultsProductCardElement", {
32262
32264
  key: element.key,
32263
32265
  staticClass: "lupa-search-results-product-element",
@@ -32269,7 +32271,9 @@ var __vue_render__$m = function __vue_render__() {
32269
32271
  link: _vm.link
32270
32272
  }
32271
32273
  });
32272
- }), 1), _vm._v(" "), _c("div", {
32274
+ }), _vm._v(" "), _vm.labels.outOfStock && !_vm.isInStock ? _c("div", {
32275
+ staticClass: "lupa-out-of-stock"
32276
+ }, [_vm._v("\n " + _vm._s(_vm.labels.outOfStock) + "\n ")]) : _vm._e()], 2), _vm._v(" "), _c("div", {
32273
32277
  staticClass: "lupa-search-result-product-details-section"
32274
32278
  }, _vm._l(_vm.detailElements, function (element) {
32275
32279
  return _c("SearchResultsProductCardElement", {
@@ -32511,7 +32515,7 @@ var track = function track(queryKey) {
32511
32515
  };
32512
32516
 
32513
32517
  var params$8 = namespace("params");
32514
- var options$4 = namespace("options");
32518
+ var options$5 = namespace("options");
32515
32519
 
32516
32520
  var AdditionalPanels$1 = /*#__PURE__*/function (_Vue) {
32517
32521
  _inherits(AdditionalPanels, _Vue);
@@ -32626,7 +32630,7 @@ __decorate([Prop({
32626
32630
 
32627
32631
  __decorate([params$8.Getter("query")], AdditionalPanels$1.prototype, "query", void 0);
32628
32632
 
32629
- __decorate([options$4.State(function (o) {
32633
+ __decorate([options$5.State(function (o) {
32630
32634
  return o.searchResultOptions;
32631
32635
  })], AdditionalPanels$1.prototype, "searchResultOptions", void 0);
32632
32636
 
@@ -33311,7 +33315,7 @@ var __vue_component__$h = /*#__PURE__*/normalizeComponent({
33311
33315
  }, __vue_inject_styles__$h, __vue_script__$h, __vue_scope_id__$h, __vue_is_functional_template__$h, __vue_module_identifier__$h, false, undefined, undefined, undefined);
33312
33316
 
33313
33317
  var searchResult$a = namespace("searchResult");
33314
- var options$3 = namespace("options");
33318
+ var options$4 = namespace("options");
33315
33319
 
33316
33320
  var SearchResultsLayoutSelection = /*#__PURE__*/function (_Vue) {
33317
33321
  _inherits(SearchResultsLayoutSelection, _Vue);
@@ -33338,7 +33342,7 @@ __decorate([searchResult$a.State(function (state) {
33338
33342
  return state.layout;
33339
33343
  })], SearchResultsLayoutSelection.prototype, "layout", void 0);
33340
33344
 
33341
- __decorate([options$3.Getter("classMap")], SearchResultsLayoutSelection.prototype, "classMap", void 0);
33345
+ __decorate([options$4.Getter("classMap")], SearchResultsLayoutSelection.prototype, "classMap", void 0);
33342
33346
 
33343
33347
  __decorate([searchResult$a.Action("setLayout")], SearchResultsLayoutSelection.prototype, "setLayout", void 0);
33344
33348
 
@@ -33592,6 +33596,7 @@ var __vue_component__$e = /*#__PURE__*/normalizeComponent({
33592
33596
 
33593
33597
  var searchResult$7 = namespace("searchResult");
33594
33598
  var params$4 = namespace("params");
33599
+ var options$3 = namespace("options");
33595
33600
 
33596
33601
  var SearchResultsToolbar = /*#__PURE__*/function (_Vue) {
33597
33602
  _inherits(SearchResultsToolbar, _Vue);
@@ -33668,11 +33673,10 @@ var SearchResultsToolbar = /*#__PURE__*/function (_Vue) {
33668
33673
  }, {
33669
33674
  key: "paginationOptions",
33670
33675
  get: function get() {
33671
- var pageSize = this.options.pagination.sizeSelection;
33672
33676
  var pageSelect = this.options.pagination.pageSelection;
33673
- var r = {
33677
+ return {
33674
33678
  pageSize: {
33675
- sizes: pageSize.sizes,
33679
+ sizes: this.currentResolutionPageSizes,
33676
33680
  selectedSize: this.limit
33677
33681
  },
33678
33682
  pageSelect: {
@@ -33683,7 +33687,6 @@ var SearchResultsToolbar = /*#__PURE__*/function (_Vue) {
33683
33687
  },
33684
33688
  labels: this.options.labels
33685
33689
  };
33686
- return r;
33687
33690
  }
33688
33691
  }, {
33689
33692
  key: "displayPageSelect",
@@ -33732,6 +33735,8 @@ __decorate([searchResult$7.State(function (state) {
33732
33735
  return state.searchResult;
33733
33736
  })], SearchResultsToolbar.prototype, "searchResult", void 0);
33734
33737
 
33738
+ __decorate([options$3.Getter("currentResolutionPageSizes")], SearchResultsToolbar.prototype, "currentResolutionPageSizes", void 0);
33739
+
33735
33740
  __decorate([params$4.Action("removeAllFilters")], SearchResultsToolbar.prototype, "removeAllFilters", void 0);
33736
33741
 
33737
33742
  SearchResultsToolbar = __decorate([Component({
@@ -34715,7 +34720,10 @@ var __vue_render__$5 = function __vue_render__() {
34715
34720
  var _c = _vm._self._c || _h;
34716
34721
 
34717
34722
  return _c("div", {
34718
- staticClass: "lupa-category-top-mobile-filters"
34723
+ staticClass: "lupa-category-top-mobile-filters",
34724
+ class: {
34725
+ "lupa-has-back-button": _vm.hasBackButton
34726
+ }
34719
34727
  }, [_c("div", {
34720
34728
  staticClass: "lupa-top-mobile-filter-wrapper"
34721
34729
  }, [_vm.hasBackButton ? _c("div", {
@@ -34820,13 +34828,11 @@ var SearchResults = /*#__PURE__*/function (_Vue) {
34820
34828
  }, {
34821
34829
  key: "handleMounted",
34822
34830
  value: function handleMounted() {
34823
- var _a, _b, _c;
34824
-
34825
34831
  this.handleResize();
34826
34832
  var params = new URLSearchParams(window.location.search);
34827
34833
  this.handleUrlChange(params);
34828
34834
  this.addParams(parseParams(params));
34829
- this.setDefaultLimit((_c = (_b = (_a = this.options.pagination) === null || _a === void 0 ? void 0 : _a.sizeSelection) === null || _b === void 0 ? void 0 : _b.sizes) === null || _c === void 0 ? void 0 : _c[0]);
34835
+ this.setDefaultLimit(this.defaultSearchResultPageSize);
34830
34836
  }
34831
34837
  }, {
34832
34838
  key: "handleParamsChange",
@@ -36423,8 +36429,6 @@ var setDocumentTitle = function setDocumentTitle(template) {
36423
36429
  document.title = addParamsToLabel(template, textToInsert);
36424
36430
  };
36425
36431
 
36426
- var MOBILE_WIDTH = 767;
36427
-
36428
36432
  var SearchResultModule = /*#__PURE__*/function (_VuexModule) {
36429
36433
  _inherits(SearchResultModule, _VuexModule);
36430
36434
 
@@ -36521,7 +36525,24 @@ var SearchResultModule = /*#__PURE__*/function (_VuexModule) {
36521
36525
  }, {
36522
36526
  key: "isMobileWidth",
36523
36527
  get: function get() {
36524
- return this.screenWidth < MOBILE_WIDTH;
36528
+ return this.currentScreenWidth === "sm" || this.currentScreenWidth === "xs";
36529
+ }
36530
+ }, {
36531
+ key: "currentScreenWidth",
36532
+ get: function get() {
36533
+ var width = this.screenWidth;
36534
+
36535
+ if (width <= S_MIN_WIDTH) {
36536
+ return "xs";
36537
+ } else if (width > S_MIN_WIDTH && width <= MD_MIN_WIDTH) {
36538
+ return "sm";
36539
+ } else if (width > MD_MIN_WIDTH && width <= L_MIN_WIDTH) {
36540
+ return "md";
36541
+ } else if (width > L_MIN_WIDTH && width <= XL_MIN_WIDTH) {
36542
+ return "l";
36543
+ } else {
36544
+ return "xl";
36545
+ }
36525
36546
  }
36526
36547
  }, {
36527
36548
  key: "setSidebarVisibility",
@@ -36986,9 +37007,39 @@ var OptionsModule = /*#__PURE__*/function (_VuexModule) {
36986
37007
  }, {
36987
37008
  key: "defaultSearchResultPageSize",
36988
37009
  get: function get() {
36989
- var _a, _b, _c, _d, _e;
37010
+ var _a, _b;
37011
+
37012
+ return (_b = (_a = this.currentResolutionPageSizes) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : DEFAULT_PAGE_SIZE;
37013
+ }
37014
+ }, {
37015
+ key: "currentResolutionPageSizes",
37016
+ get: function get() {
37017
+ var _a, _b, _c;
37018
+
37019
+ var 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;
37020
+
37021
+ if (Array.isArray(pageSizes)) {
37022
+ return pageSizes;
37023
+ }
37024
+
37025
+ var screenSize = this.context.rootGetters["searchResult/currentScreenWidth"];
37026
+
37027
+ switch (screenSize) {
37028
+ case "xs":
37029
+ return pageSizes.xs;
37030
+
37031
+ case "sm":
37032
+ return pageSizes.sm;
36990
37033
 
36991
- return (_e = (_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 ? void 0 : _d[0]) !== null && _e !== void 0 ? _e : DEFAULT_PAGE_SIZE;
37034
+ case "md":
37035
+ return pageSizes.md;
37036
+
37037
+ case "l":
37038
+ return pageSizes.l;
37039
+
37040
+ case "xl":
37041
+ return pageSizes.xl;
37042
+ }
36992
37043
  }
36993
37044
  }, {
36994
37045
  key: "setSearchBoxOptions",
@@ -13,6 +13,7 @@ export default class OptionsModule extends VuexModule {
13
13
  get boxRoutingBehavior(): RoutingBehavior;
14
14
  get searchResultsRoutingBehavior(): RoutingBehavior;
15
15
  get defaultSearchResultPageSize(): number;
16
+ get currentResolutionPageSizes(): number[];
16
17
  setSearchBoxOptions({ options }: {
17
18
  options: SearchBoxOptions;
18
19
  }): void;
@@ -1,3 +1,4 @@
1
+ import { ScreenSize } from "@/types/General";
1
2
  import { LabeledFilter } from "@/types/search-results/Filters";
2
3
  import { ResultsLayout } from "@/types/search-results/ResultsLayout";
3
4
  import { ProductGrid } from "@/types/search-results/SearchResultsOptions";
@@ -23,6 +24,7 @@ export default class SearchResultModule extends VuexModule {
23
24
  get hasAnyFilter(): boolean;
24
25
  get itemRange(): number[];
25
26
  get isMobileWidth(): boolean;
27
+ get currentScreenWidth(): ScreenSize;
26
28
  setSidebarVisibility({ visible }: {
27
29
  visible: boolean;
28
30
  }): void;
@@ -16,3 +16,4 @@ export declare type TrackingOptions = {
16
16
  };
17
17
  export declare type Environment = SdkEnvironment;
18
18
  export declare type SortDirection = "asc" | "desc";
19
+ export declare type ScreenSize = "xs" | "sm" | "md" | "l" | "xl";
@@ -37,6 +37,7 @@ export declare type SearchResultsOptionLabels = SearchResultsPaginationLabels &
37
37
  emptyResults: string;
38
38
  mobileFilterButton: string;
39
39
  htmlTitleTemplate: string;
40
+ outOfStock?: string;
40
41
  };
41
42
  export declare type SearchResultsAdditionalPanels = {
42
43
  additionalPanels?: SearchResultsAdditionalPanelOptions[];
@@ -69,9 +70,17 @@ export declare type SearchResultsPaginationLabels = {
69
70
  pageSize: string;
70
71
  showMore: string;
71
72
  };
73
+ export declare type ResponsiveSearchResultPageSizes = {
74
+ xs: number[];
75
+ sm: number[];
76
+ md: number[];
77
+ l: number[];
78
+ xl: number[];
79
+ };
80
+ export declare type SearchResultPageSizes = number[] | ResponsiveSearchResultPageSizes;
72
81
  export declare type SearchResultsPagination = {
73
82
  sizeSelection: {
74
- sizes: number[];
83
+ sizes: SearchResultPageSizes;
75
84
  position: SearchResultsPaginationPosition;
76
85
  };
77
86
  pageSelection: {
@@ -21,6 +21,7 @@ export default class SearchResultsToolbar extends Vue {
21
21
  get displayPageSelect(): boolean;
22
22
  get searchSummaryLabel(): string;
23
23
  get showMobileFilterCount(): boolean;
24
+ currentResolutionPageSizes: number[];
24
25
  removeAllFilters: () => {
25
26
  params: QueryParams;
26
27
  };