@getlupa/client 1.11.1 → 1.11.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.
@@ -7316,7 +7316,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
7316
7316
  top: false,
7317
7317
  bottom: true
7318
7318
  },
7319
- sizes: [10, 20, 25, 50]
7319
+ sizes: [10, 20, 25]
7320
7320
  },
7321
7321
  pageSelection: {
7322
7322
  position: {
@@ -7642,38 +7642,39 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
7642
7642
  const seed = [];
7643
7643
  return filter.terms.reduce((a, c2) => [...a, { key, value: c2, type: "hierarchy" }], seed);
7644
7644
  };
7645
- const unfoldRangeFilter = (key, filter) => {
7645
+ const unfoldRangeFilter = (key, filter, price = {}) => {
7646
+ var _a;
7646
7647
  const gt = filter.gte || filter.gt;
7647
7648
  const lt = filter.lte || filter.lt;
7648
- if (key.includes(CURRENCY_KEY_INDICATOR)) {
7649
+ if (key.includes(CURRENCY_KEY_INDICATOR) || ((_a = price == null ? void 0 : price.keys) == null ? void 0 : _a.includes(key))) {
7649
7650
  return [
7650
7651
  {
7651
7652
  key,
7652
- value: formatPriceSummary([gt, lt]),
7653
+ value: formatPriceSummary([gt, lt], price.currency, price.separator),
7653
7654
  type: "range"
7654
7655
  }
7655
7656
  ];
7656
7657
  }
7657
7658
  return [{ key, value: `${gt} - ${lt}`, type: "range" }];
7658
7659
  };
7659
- const unfoldFilter = (key, filter) => {
7660
+ const unfoldFilter = (key, filter, price = {}) => {
7660
7661
  if (Array.isArray(filter)) {
7661
7662
  return unfoldTermFilter(key, filter);
7662
7663
  }
7663
7664
  if (filter.gte) {
7664
- return unfoldRangeFilter(key, filter);
7665
+ return unfoldRangeFilter(key, filter, price);
7665
7666
  }
7666
7667
  if (filter.terms) {
7667
7668
  return unfoldHierarchyFilter(key, filter);
7668
7669
  }
7669
7670
  return [];
7670
7671
  };
7671
- const unfoldFilters = (filters) => {
7672
+ const unfoldFilters = (filters, price = {}) => {
7672
7673
  if (!filters) {
7673
7674
  return [];
7674
7675
  }
7675
7676
  const seed = [];
7676
- return Object.entries(filters).reduce((a, c2) => [...a, ...unfoldFilter(...c2)], seed);
7677
+ return Object.entries(filters).reduce((a, c2) => [...a, ...unfoldFilter(...c2, price)], seed);
7677
7678
  };
7678
7679
  const getLabeledFilters = (filters, facets) => {
7679
7680
  return filters.map((f2) => {
@@ -8446,7 +8447,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
8446
8447
  };
8447
8448
  });
8448
8449
  const _hoisted_1$1e = { id: "lupa-search-box-input-container" };
8449
- const _hoisted_2$P = { class: "lupa-input-clear" };
8450
+ const _hoisted_2$Q = { class: "lupa-input-clear" };
8450
8451
  const _hoisted_3$A = { id: "lupa-search-box-input" };
8451
8452
  const _hoisted_4$s = ["value"];
8452
8453
  const _hoisted_5$h = ["aria-label", "placeholder"];
@@ -8536,7 +8537,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
8536
8537
  __expose({ focus });
8537
8538
  return (_ctx, _cache) => {
8538
8539
  return openBlock(), createElementBlock("div", _hoisted_1$1e, [
8539
- createBaseVNode("div", _hoisted_2$P, [
8540
+ createBaseVNode("div", _hoisted_2$Q, [
8540
8541
  createBaseVNode("div", {
8541
8542
  class: normalizeClass(["lupa-input-clear-content", { "lupa-input-clear-filled": inputValue.value }]),
8542
8543
  onClick: clear2
@@ -8610,7 +8611,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
8610
8611
  }
8611
8612
  });
8612
8613
  const _hoisted_1$1d = { class: "lupa-search-box-history-item" };
8613
- const _hoisted_2$O = { class: "lupa-search-box-history-item-content" };
8614
+ const _hoisted_2$P = { class: "lupa-search-box-history-item-content" };
8614
8615
  const _sfc_main$1k = /* @__PURE__ */ defineComponent({
8615
8616
  __name: "SearchBoxHistoryItem",
8616
8617
  props: {
@@ -8628,7 +8629,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
8628
8629
  };
8629
8630
  return (_ctx, _cache) => {
8630
8631
  return openBlock(), createElementBlock("div", _hoisted_1$1d, [
8631
- createBaseVNode("div", _hoisted_2$O, [
8632
+ createBaseVNode("div", _hoisted_2$P, [
8632
8633
  createBaseVNode("div", {
8633
8634
  class: normalizeClass(["lupa-search-box-history-item-text", { "lupa-search-box-history-item-highlighted": _ctx.highlighted }]),
8634
8635
  onClick: click2
@@ -8718,7 +8719,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
8718
8719
  }
8719
8720
  });
8720
8721
  const _hoisted_1$1a = ["innerHTML"];
8721
- const _hoisted_2$N = {
8722
+ const _hoisted_2$O = {
8722
8723
  key: 1,
8723
8724
  "data-cy": "lupa-suggestion-value",
8724
8725
  class: "lupa-suggestion-value"
@@ -8772,7 +8773,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
8772
8773
  class: "lupa-suggestion-value",
8773
8774
  "data-cy": "lupa-suggestion-value",
8774
8775
  innerHTML: _ctx.suggestion.displayHighlight
8775
- }, null, 8, _hoisted_1$1a)) : (openBlock(), createElementBlock("div", _hoisted_2$N, toDisplayString(_ctx.suggestion.display), 1)),
8776
+ }, null, 8, _hoisted_1$1a)) : (openBlock(), createElementBlock("div", _hoisted_2$O, toDisplayString(_ctx.suggestion.display), 1)),
8776
8777
  _ctx.suggestion.facet ? (openBlock(), createElementBlock("div", _hoisted_3$z, [
8777
8778
  createBaseVNode("span", _hoisted_4$r, toDisplayString(facetLabel.value), 1),
8778
8779
  createBaseVNode("span", _hoisted_5$g, toDisplayString(_ctx.suggestion.facet.title), 1)
@@ -9164,7 +9165,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
9164
9165
  }
9165
9166
  });
9166
9167
  const _hoisted_1$17 = ["innerHTML"];
9167
- const _hoisted_2$M = {
9168
+ const _hoisted_2$N = {
9168
9169
  key: 1,
9169
9170
  class: "lupa-search-box-product-title"
9170
9171
  };
@@ -9188,14 +9189,14 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
9188
9189
  key: 0,
9189
9190
  class: "lupa-search-box-product-title",
9190
9191
  innerHTML: title.value
9191
- }, null, 8, _hoisted_1$17)) : (openBlock(), createElementBlock("div", _hoisted_2$M, [
9192
+ }, null, 8, _hoisted_1$17)) : (openBlock(), createElementBlock("div", _hoisted_2$N, [
9192
9193
  createBaseVNode("strong", null, toDisplayString(title.value), 1)
9193
9194
  ]));
9194
9195
  };
9195
9196
  }
9196
9197
  });
9197
9198
  const _hoisted_1$16 = ["innerHTML"];
9198
- const _hoisted_2$L = {
9199
+ const _hoisted_2$M = {
9199
9200
  key: 1,
9200
9201
  class: "lupa-search-box-product-description"
9201
9202
  };
@@ -9219,7 +9220,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
9219
9220
  key: 0,
9220
9221
  class: "lupa-search-box-product-description",
9221
9222
  innerHTML: description.value
9222
- }, null, 8, _hoisted_1$16)) : (openBlock(), createElementBlock("div", _hoisted_2$L, toDisplayString(description.value), 1));
9223
+ }, null, 8, _hoisted_1$16)) : (openBlock(), createElementBlock("div", _hoisted_2$M, toDisplayString(description.value), 1));
9223
9224
  };
9224
9225
  }
9225
9226
  });
@@ -9272,7 +9273,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
9272
9273
  }
9273
9274
  });
9274
9275
  const _hoisted_1$13 = ["innerHTML"];
9275
- const _hoisted_2$K = { key: 0 };
9276
+ const _hoisted_2$L = { key: 0 };
9276
9277
  const _hoisted_3$y = { key: 1 };
9277
9278
  const _hoisted_4$q = { class: "lupa-search-box-custom-label" };
9278
9279
  const _hoisted_5$f = { class: "lupa-search-box-custom-text" };
@@ -9306,7 +9307,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
9306
9307
  key: 1,
9307
9308
  class: [className.value, "lupa-search-box-product-custom"]
9308
9309
  }, toHandlers(_ctx.options.action ? { click: handleClick } : {}, true)), [
9309
- !label.value ? (openBlock(), createElementBlock("div", _hoisted_2$K, toDisplayString(text.value), 1)) : (openBlock(), createElementBlock("div", _hoisted_3$y, [
9310
+ !label.value ? (openBlock(), createElementBlock("div", _hoisted_2$L, toDisplayString(text.value), 1)) : (openBlock(), createElementBlock("div", _hoisted_3$y, [
9310
9311
  createBaseVNode("div", _hoisted_4$q, toDisplayString(label.value), 1),
9311
9312
  createBaseVNode("div", _hoisted_5$f, toDisplayString(text.value), 1)
9312
9313
  ]))
@@ -9393,13 +9394,33 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
9393
9394
  const isMobileSidebarVisible = ref(false);
9394
9395
  const optionsStore = useOptionsStore();
9395
9396
  const paramsStore = useParamsStore();
9397
+ const { searchResultOptions } = storeToRefs(optionsStore);
9396
9398
  const facets = computed(() => searchResult.value.facets);
9397
9399
  const filters = computed(() => searchResult.value.filters);
9398
9400
  const currentQueryText = computed(() => searchResult.value.searchText);
9399
9401
  const totalItems = computed(() => searchResult.value.total);
9400
9402
  const hasResults = computed(() => totalItems.value > 0);
9403
+ const priceKeys = computed(() => {
9404
+ var _a, _b;
9405
+ return (_b = (_a = searchResultOptions.value) == null ? void 0 : _a.priceKeys) != null ? _b : [];
9406
+ });
9407
+ const currency = computed(() => {
9408
+ var _a, _b, _c;
9409
+ return (_c = (_b = (_a = searchResultOptions.value) == null ? void 0 : _a.labels) == null ? void 0 : _b.currency) != null ? _c : "";
9410
+ });
9411
+ const priceSeparator = computed(() => {
9412
+ var _a, _b, _c;
9413
+ return (_c = (_b = (_a = searchResultOptions.value) == null ? void 0 : _a.labels) == null ? void 0 : _b.priceSeparator) != null ? _c : "";
9414
+ });
9401
9415
  const labeledFilters = computed(
9402
- () => getLabeledFilters(unfoldFilters(filters.value), facets.value)
9416
+ () => getLabeledFilters(
9417
+ unfoldFilters(filters.value, {
9418
+ keys: priceKeys.value,
9419
+ currency: currency.value,
9420
+ separator: priceSeparator.value
9421
+ }),
9422
+ facets.value
9423
+ )
9403
9424
  );
9404
9425
  const displayFilters = computed(() => {
9405
9426
  var _a, _b;
@@ -9534,7 +9555,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
9534
9555
  };
9535
9556
  });
9536
9557
  const _hoisted_1$11 = { class: "lupa-search-box-add-to-cart-wrapper" };
9537
- const _hoisted_2$J = { class: "lupa-search-box-product-addtocart" };
9558
+ const _hoisted_2$K = { class: "lupa-search-box-product-addtocart" };
9538
9559
  const _hoisted_3$x = ["onClick", "disabled"];
9539
9560
  const _sfc_main$16 = /* @__PURE__ */ defineComponent({
9540
9561
  __name: "SearchBoxProductAddToCart",
@@ -9564,7 +9585,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
9564
9585
  });
9565
9586
  return (_ctx, _cache) => {
9566
9587
  return openBlock(), createElementBlock("div", _hoisted_1$11, [
9567
- createBaseVNode("div", _hoisted_2$J, [
9588
+ createBaseVNode("div", _hoisted_2$K, [
9568
9589
  createBaseVNode("button", {
9569
9590
  onClick: withModifiers(handleClick, ["stop", "prevent"]),
9570
9591
  class: normalizeClass(loading.value ? "lupa-add-to-cart-loading" : "lupa-add-to-cart"),
@@ -9666,7 +9687,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
9666
9687
  }
9667
9688
  }));
9668
9689
  const _hoisted_1$$ = { class: "lupa-badge-title" };
9669
- const _hoisted_2$I = ["src"];
9690
+ const _hoisted_2$J = ["src"];
9670
9691
  const _hoisted_3$w = { key: 1 };
9671
9692
  const _hoisted_4$p = {
9672
9693
  key: 0,
@@ -9709,7 +9730,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
9709
9730
  image.value ? (openBlock(), createElementBlock("img", {
9710
9731
  key: 0,
9711
9732
  src: image.value
9712
- }, null, 8, _hoisted_2$I)) : createCommentVNode("", true),
9733
+ }, null, 8, _hoisted_2$J)) : createCommentVNode("", true),
9713
9734
  hasTitleText.value && showTitle.value ? (openBlock(), createElementBlock("span", _hoisted_3$w, toDisplayString(_ctx.badge.titleText), 1)) : createCommentVNode("", true)
9714
9735
  ]),
9715
9736
  hasAdditionalText.value ? (openBlock(), createElementBlock("span", _hoisted_4$p, toDisplayString(_ctx.badge.additionalText), 1)) : createCommentVNode("", true)
@@ -9808,7 +9829,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
9808
9829
  }
9809
9830
  });
9810
9831
  const _hoisted_1$X = { class: "lupa-image-badges" };
9811
- const _hoisted_2$H = ["src"];
9832
+ const _hoisted_2$I = ["src"];
9812
9833
  const _sfc_main$10 = /* @__PURE__ */ defineComponent({
9813
9834
  __name: "ImageBadge",
9814
9835
  props: {
@@ -9837,7 +9858,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
9837
9858
  }, [
9838
9859
  createBaseVNode("img", {
9839
9860
  src: getImageUrl(item)
9840
- }, null, 8, _hoisted_2$H)
9861
+ }, null, 8, _hoisted_2$I)
9841
9862
  ]);
9842
9863
  }), 128))
9843
9864
  ]);
@@ -9929,7 +9950,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
9929
9950
  }
9930
9951
  }));
9931
9952
  const _hoisted_1$V = ["href"];
9932
- const _hoisted_2$G = { class: "lupa-search-box-product-image-section" };
9953
+ const _hoisted_2$H = { class: "lupa-search-box-product-image-section" };
9933
9954
  const _hoisted_3$v = { class: "lupa-search-box-product-details-section" };
9934
9955
  const _hoisted_4$o = {
9935
9956
  key: 0,
@@ -9994,7 +10015,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
9994
10015
  "data-cy": "lupa-search-box-product",
9995
10016
  onClick: handleClick
9996
10017
  }), [
9997
- createBaseVNode("div", _hoisted_2$G, [
10018
+ createBaseVNode("div", _hoisted_2$H, [
9998
10019
  (openBlock(true), createElementBlock(Fragment, null, renderList(imageElements.value, (element) => {
9999
10020
  return openBlock(), createBlock(_sfc_main$15, {
10000
10021
  class: "lupa-search-box-product-element",
@@ -10353,7 +10374,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
10353
10374
  key: 0,
10354
10375
  id: "lupa-search-box-panel"
10355
10376
  };
10356
- const _hoisted_2$F = ["data-cy"];
10377
+ const _hoisted_2$G = ["data-cy"];
10357
10378
  const _hoisted_3$u = {
10358
10379
  key: 0,
10359
10380
  class: "lupa-panel-title lupa-panel-title-top-results"
@@ -10561,7 +10582,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
10561
10582
  key: "0"
10562
10583
  } : void 0
10563
10584
  ]), 1064, ["panel", "options", "debounce", "inputValue", "labels"])) : createCommentVNode("", true)
10564
- ], 10, _hoisted_2$F);
10585
+ ], 10, _hoisted_2$G);
10565
10586
  }), 128))
10566
10587
  ], 4),
10567
10588
  !unref(hasAnyResults) && _ctx.options.showNoResultsPanel ? (openBlock(), createBlock(_sfc_main$1i, {
@@ -10601,7 +10622,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
10601
10622
  elements.forEach((e) => e == null ? void 0 : e.removeEventListener(BIND_EVENT, event));
10602
10623
  };
10603
10624
  const _hoisted_1$S = { id: "lupa-search-box" };
10604
- const _hoisted_2$E = { class: "lupa-search-box-wrapper" };
10625
+ const _hoisted_2$F = { class: "lupa-search-box-wrapper" };
10605
10626
  const _sfc_main$V = /* @__PURE__ */ defineComponent({
10606
10627
  __name: "SearchBox",
10607
10628
  props: {
@@ -10848,7 +10869,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
10848
10869
  return (_ctx, _cache) => {
10849
10870
  var _a2;
10850
10871
  return openBlock(), createElementBlock("div", _hoisted_1$S, [
10851
- createBaseVNode("div", _hoisted_2$E, [
10872
+ createBaseVNode("div", _hoisted_2$F, [
10852
10873
  createVNode(_sfc_main$1m, {
10853
10874
  options: inputOptions.value,
10854
10875
  suggestedValue: suggestedValue.value,
@@ -10952,7 +10973,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
10952
10973
  key: 0,
10953
10974
  id: "lupa-search-results-did-you-mean"
10954
10975
  };
10955
- const _hoisted_2$D = {
10976
+ const _hoisted_2$E = {
10956
10977
  key: 0,
10957
10978
  "data-cy": "suggested-search-text-label"
10958
10979
  };
@@ -10994,7 +11015,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
10994
11015
  };
10995
11016
  return (_ctx, _cache) => {
10996
11017
  return unref(searchResult).suggestedSearchText || didYouMeanValue.value ? (openBlock(), createElementBlock("div", _hoisted_1$R, [
10997
- unref(searchResult).suggestedSearchText ? (openBlock(), createElementBlock("div", _hoisted_2$D, [
11018
+ unref(searchResult).suggestedSearchText ? (openBlock(), createElementBlock("div", _hoisted_2$E, [
10998
11019
  (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.labels.noResultsSuggestion.split(" "), (label, index) => {
10999
11020
  return openBlock(), createElementBlock("span", { key: index }, [
11000
11021
  createBaseVNode("span", {
@@ -11023,7 +11044,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
11023
11044
  key: 0,
11024
11045
  class: "lupa-search-results-summary"
11025
11046
  };
11026
- const _hoisted_2$C = ["innerHTML"];
11047
+ const _hoisted_2$D = ["innerHTML"];
11027
11048
  const _sfc_main$T = /* @__PURE__ */ defineComponent({
11028
11049
  __name: "SearchResultsSummary",
11029
11050
  props: {
@@ -11040,7 +11061,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
11040
11061
  });
11041
11062
  return (_ctx, _cache) => {
11042
11063
  return unref(totalItems) > 0 ? (openBlock(), createElementBlock("div", _hoisted_1$Q, [
11043
- createBaseVNode("div", { innerHTML: summaryLabel.value }, null, 8, _hoisted_2$C),
11064
+ createBaseVNode("div", { innerHTML: summaryLabel.value }, null, 8, _hoisted_2$D),
11044
11065
  _ctx.clearable ? (openBlock(), createElementBlock("span", {
11045
11066
  key: 0,
11046
11067
  class: "lupa-filter-clear",
@@ -11056,7 +11077,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
11056
11077
  class: "lupa-result-page-title",
11057
11078
  "data-cy": "lupa-result-page-title"
11058
11079
  };
11059
- const _hoisted_2$B = { key: 0 };
11080
+ const _hoisted_2$C = { key: 0 };
11060
11081
  const _hoisted_3$s = {
11061
11082
  key: 1,
11062
11083
  class: "lupa-results-total-count"
@@ -11095,12 +11116,16 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
11095
11116
  var _a, _b;
11096
11117
  return (_b = (_a = props.options.labels) == null ? void 0 : _a.itemCount) != null ? _b : "";
11097
11118
  });
11119
+ const searchResultsCountLabel = computed(() => {
11120
+ var _a, _b;
11121
+ return (_b = (_a = props.options.labels) == null ? void 0 : _a.searchResultsCount) != null ? _b : "";
11122
+ });
11098
11123
  return (_ctx, _cache) => {
11099
11124
  return openBlock(), createElementBlock("div", null, [
11100
11125
  showSearchTitle.value ? (openBlock(), createElementBlock("h1", _hoisted_1$P, [
11101
11126
  createTextVNode(toDisplayString(_ctx.options.labels.searchResults), 1),
11102
- queryText.value ? (openBlock(), createElementBlock("span", _hoisted_2$B, "'" + toDisplayString(queryText.value) + "'", 1)) : createCommentVNode("", true),
11103
- showProductCount.value ? (openBlock(), createElementBlock("span", _hoisted_3$s, "(" + toDisplayString(unref(totalItems)) + ")", 1)) : createCommentVNode("", true)
11127
+ queryText.value ? (openBlock(), createElementBlock("span", _hoisted_2$C, "'" + toDisplayString(queryText.value) + "'", 1)) : createCommentVNode("", true),
11128
+ showProductCount.value ? (openBlock(), createElementBlock("span", _hoisted_3$s, "(" + toDisplayString(searchResultsCountLabel.value) + toDisplayString(unref(totalItems)) + ")", 1)) : createCommentVNode("", true)
11104
11129
  ])) : createCommentVNode("", true),
11105
11130
  _ctx.showSummary ? (openBlock(), createBlock(_sfc_main$T, {
11106
11131
  key: 1,
@@ -11116,7 +11141,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
11116
11141
  }
11117
11142
  });
11118
11143
  const _hoisted_1$O = { class: "lupa-search-result-filter-value" };
11119
- const _hoisted_2$A = {
11144
+ const _hoisted_2$B = {
11120
11145
  class: "lupa-current-filter-label",
11121
11146
  "data-cy": "lupa-current-filter-label"
11122
11147
  };
@@ -11141,14 +11166,14 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
11141
11166
  class: "lupa-current-filter-action",
11142
11167
  onClick: handleClick
11143
11168
  }, "⨉"),
11144
- createBaseVNode("div", _hoisted_2$A, toDisplayString(_ctx.filter.label) + ": ", 1),
11169
+ createBaseVNode("div", _hoisted_2$B, toDisplayString(_ctx.filter.label) + ": ", 1),
11145
11170
  createBaseVNode("div", _hoisted_3$r, toDisplayString(_ctx.filter.value), 1)
11146
11171
  ]);
11147
11172
  };
11148
11173
  }
11149
11174
  });
11150
11175
  const _hoisted_1$N = { class: "lupa-filter-title-text" };
11151
- const _hoisted_2$z = {
11176
+ const _hoisted_2$A = {
11152
11177
  key: 0,
11153
11178
  class: "lupa-filter-count"
11154
11179
  };
@@ -11220,7 +11245,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
11220
11245
  }, [
11221
11246
  createBaseVNode("div", _hoisted_1$N, [
11222
11247
  createTextVNode(toDisplayString((_c = (_b = (_a = _ctx.options) == null ? void 0 : _a.labels) == null ? void 0 : _b.title) != null ? _c : "") + " ", 1),
11223
- _ctx.expandable ? (openBlock(), createElementBlock("span", _hoisted_2$z, " (" + toDisplayString(unref(currentFilterCount)) + ") ", 1)) : createCommentVNode("", true)
11248
+ _ctx.expandable ? (openBlock(), createElementBlock("span", _hoisted_2$A, " (" + toDisplayString(unref(currentFilterCount)) + ") ", 1)) : createCommentVNode("", true)
11224
11249
  ]),
11225
11250
  _ctx.expandable ? (openBlock(), createElementBlock("div", {
11226
11251
  key: 0,
@@ -11294,7 +11319,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
11294
11319
  class: "lupa-category-filter",
11295
11320
  "data-cy": "lupa-category-filter"
11296
11321
  };
11297
- const _hoisted_2$y = { class: "lupa-category-back" };
11322
+ const _hoisted_2$z = { class: "lupa-category-back" };
11298
11323
  const _hoisted_3$p = ["href"];
11299
11324
  const _hoisted_4$j = ["href"];
11300
11325
  const _hoisted_5$d = { class: "lupa-child-category-list" };
@@ -11385,7 +11410,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
11385
11410
  __expose({ fetch: fetch2 });
11386
11411
  return (_ctx, _cache) => {
11387
11412
  return openBlock(), createElementBlock("div", _hoisted_1$L, [
11388
- createBaseVNode("div", _hoisted_2$y, [
11413
+ createBaseVNode("div", _hoisted_2$z, [
11389
11414
  hasBackButton.value ? (openBlock(), createElementBlock("a", {
11390
11415
  key: 0,
11391
11416
  "data-cy": "lupa-category-back",
@@ -11420,7 +11445,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
11420
11445
  class: "lupa-search-result-facet-term-values",
11421
11446
  "data-cy": "lupa-search-result-facet-term-values"
11422
11447
  };
11423
- const _hoisted_2$x = ["placeholder"];
11448
+ const _hoisted_2$y = ["placeholder"];
11424
11449
  const _hoisted_3$o = { class: "lupa-terms-list" };
11425
11450
  const _hoisted_4$i = ["onClick"];
11426
11451
  const _hoisted_5$c = { class: "lupa-term-checkbox-wrapper" };
@@ -11508,7 +11533,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
11508
11533
  "data-cy": "lupa-term-filter",
11509
11534
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => termFilter.value = $event),
11510
11535
  placeholder: _ctx.options.labels.facetFilter
11511
- }, null, 8, _hoisted_2$x)), [
11536
+ }, null, 8, _hoisted_2$y)), [
11512
11537
  [vModelText, termFilter.value]
11513
11538
  ]) : createCommentVNode("", true),
11514
11539
  createBaseVNode("div", _hoisted_3$o, [
@@ -12520,7 +12545,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
12520
12545
  return openBlock(), createElementBlock("div", mergeProps(e.sliderProps, { ref: "slider" }), null, 16);
12521
12546
  }, m.__file = "src/Slider.vue";
12522
12547
  const _hoisted_1$J = { class: "lupa-search-result-facet-stats-values" };
12523
- const _hoisted_2$w = {
12548
+ const _hoisted_2$x = {
12524
12549
  key: 0,
12525
12550
  class: "lupa-stats-facet-summary"
12526
12551
  };
@@ -12580,6 +12605,10 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
12580
12605
  var _a;
12581
12606
  return (_a = searchResultOptions.value) == null ? void 0 : _a.labels.currency;
12582
12607
  });
12608
+ const priceKeys = computed(() => {
12609
+ var _a, _b;
12610
+ return (_b = (_a = searchResultOptions.value) == null ? void 0 : _a.priceKeys) != null ? _b : [];
12611
+ });
12583
12612
  const isSliderVisible = computed(() => {
12584
12613
  var _a, _b;
12585
12614
  return Boolean((_b = (_a = props.options.stats) == null ? void 0 : _a.slider) != null ? _b : true);
@@ -12643,8 +12672,8 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
12643
12672
  }
12644
12673
  });
12645
12674
  const isPrice = computed(() => {
12646
- var _a;
12647
- return (_a = facetValue.value.key) == null ? void 0 : _a.includes(CURRENCY_KEY_INDICATOR);
12675
+ var _a, _b, _c;
12676
+ return ((_b = (_a = facetValue.value) == null ? void 0 : _a.key) == null ? void 0 : _b.includes(CURRENCY_KEY_INDICATOR)) || ((_c = priceKeys.value) == null ? void 0 : _c.includes(facetValue.value.key));
12648
12677
  });
12649
12678
  const facetMin = computed(() => {
12650
12679
  return Math.floor(facetValue.value.min);
@@ -12717,7 +12746,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
12717
12746
  };
12718
12747
  return (_ctx, _cache) => {
12719
12748
  return openBlock(), createElementBlock("div", _hoisted_1$J, [
12720
- !isInputVisible.value ? (openBlock(), createElementBlock("div", _hoisted_2$w, toDisplayString(statsSummary.value), 1)) : (openBlock(), createElementBlock("div", _hoisted_3$n, [
12749
+ !isInputVisible.value ? (openBlock(), createElementBlock("div", _hoisted_2$x, toDisplayString(statsSummary.value), 1)) : (openBlock(), createElementBlock("div", _hoisted_3$n, [
12721
12750
  createBaseVNode("div", null, [
12722
12751
  rangeLabelFrom.value ? (openBlock(), createElementBlock("div", _hoisted_4$h, toDisplayString(rangeLabelFrom.value), 1)) : createCommentVNode("", true),
12723
12752
  createBaseVNode("div", _hoisted_5$b, [
@@ -12784,7 +12813,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
12784
12813
  }
12785
12814
  });
12786
12815
  const _hoisted_1$I = { class: "lupa-term-checkbox-wrapper" };
12787
- const _hoisted_2$v = { class: "lupa-term-checkbox-label" };
12816
+ const _hoisted_2$w = { class: "lupa-term-checkbox-label" };
12788
12817
  const _hoisted_3$m = { class: "lupa-term-label" };
12789
12818
  const _hoisted_4$g = {
12790
12819
  key: 0,
@@ -12845,7 +12874,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
12845
12874
  class: normalizeClass(["lupa-term-checkbox", { checked: isChecked.value }])
12846
12875
  }, null, 2)
12847
12876
  ]),
12848
- createBaseVNode("div", _hoisted_2$v, [
12877
+ createBaseVNode("div", _hoisted_2$w, [
12849
12878
  createBaseVNode("span", _hoisted_3$m, toDisplayString(_ctx.item.title) + toDisplayString(" "), 1),
12850
12879
  _ctx.options.showDocumentCount ? (openBlock(), createElementBlock("span", _hoisted_4$g, "(" + toDisplayString(_ctx.item.count) + ")", 1)) : createCommentVNode("", true)
12851
12880
  ])
@@ -12870,7 +12899,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
12870
12899
  class: "lupa-search-result-facet-term-values lupa-search-result-facet-hierarchy-values",
12871
12900
  "data-cy": "lupa-search-result-facet-term-values"
12872
12901
  };
12873
- const _hoisted_2$u = { key: 0 };
12902
+ const _hoisted_2$v = { key: 0 };
12874
12903
  const _hoisted_3$l = ["placeholder"];
12875
12904
  const _sfc_main$K = /* @__PURE__ */ defineComponent({
12876
12905
  __name: "HierarchyFacet",
@@ -12923,7 +12952,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
12923
12952
  };
12924
12953
  return (_ctx, _cache) => {
12925
12954
  return openBlock(), createElementBlock("div", _hoisted_1$H, [
12926
- isFilterable.value ? (openBlock(), createElementBlock("div", _hoisted_2$u, [
12955
+ isFilterable.value ? (openBlock(), createElementBlock("div", _hoisted_2$v, [
12927
12956
  withDirectives(createBaseVNode("input", {
12928
12957
  class: "lupa-term-filter",
12929
12958
  "data-cy": "lupa-term-filter",
@@ -12955,7 +12984,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
12955
12984
  }
12956
12985
  });
12957
12986
  const _hoisted_1$G = { class: "lupa-facet-label-text" };
12958
- const _hoisted_2$t = {
12987
+ const _hoisted_2$u = {
12959
12988
  key: 0,
12960
12989
  class: "lupa-facet-content",
12961
12990
  "data-cy": "lupa-facet-content"
@@ -13084,7 +13113,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
13084
13113
  class: normalizeClass(["lupa-facet-label-caret", isOpen.value && "open"])
13085
13114
  }, null, 2)
13086
13115
  ], 2),
13087
- isOpen.value ? (openBlock(), createElementBlock("div", _hoisted_2$t, [
13116
+ isOpen.value ? (openBlock(), createElementBlock("div", _hoisted_2$u, [
13088
13117
  (openBlock(), createBlock(resolveDynamicComponent(facetType.value), {
13089
13118
  facet: facet.value,
13090
13119
  currentFilters: currentFilters.value[facet.value.key],
@@ -13103,7 +13132,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
13103
13132
  }
13104
13133
  }));
13105
13134
  const _hoisted_1$F = { class: "lupa-search-result-facet-section" };
13106
- const _hoisted_2$s = {
13135
+ const _hoisted_2$t = {
13107
13136
  key: 0,
13108
13137
  class: "lupa-facets-title"
13109
13138
  };
@@ -13142,7 +13171,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
13142
13171
  return (_ctx, _cache) => {
13143
13172
  var _a;
13144
13173
  return openBlock(), createElementBlock("div", _hoisted_1$F, [
13145
- _ctx.options.labels.title ? (openBlock(), createElementBlock("div", _hoisted_2$s, toDisplayString(_ctx.options.labels.title), 1)) : createCommentVNode("", true),
13174
+ _ctx.options.labels.title ? (openBlock(), createElementBlock("div", _hoisted_2$t, toDisplayString(_ctx.options.labels.title), 1)) : createCommentVNode("", true),
13146
13175
  createBaseVNode("div", {
13147
13176
  class: normalizeClass(["lupa-search-result-facet-list", "lupa-" + ((_a = _ctx.facetStyle) != null ? _a : "")])
13148
13177
  }, [
@@ -13189,6 +13218,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
13189
13218
  }
13190
13219
  });
13191
13220
  const _hoisted_1$D = { class: "lupa-search-result-facets" };
13221
+ const _hoisted_2$s = { class: "lupa-facets-filter-button-wrapper" };
13192
13222
  const _sfc_main$G = /* @__PURE__ */ defineComponent({
13193
13223
  __name: "Facets",
13194
13224
  props: {
@@ -13283,11 +13313,13 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
13283
13313
  onSelect: handleFacetSelect,
13284
13314
  onClear: clear2
13285
13315
  }, null, 8, ["options", "facets", "currentFilters", "facetStyle", "clearable"])) : createCommentVNode("", true),
13286
- showFilterButton.value ? (openBlock(), createBlock(_sfc_main$H, {
13287
- key: 1,
13288
- options: _ctx.options,
13289
- onFilter: filter
13290
- }, null, 8, ["options"])) : createCommentVNode("", true)
13316
+ createBaseVNode("div", _hoisted_2$s, [
13317
+ showFilterButton.value ? (openBlock(), createBlock(_sfc_main$H, {
13318
+ key: 0,
13319
+ options: _ctx.options,
13320
+ onFilter: filter
13321
+ }, null, 8, ["options"])) : createCommentVNode("", true)
13322
+ ])
13291
13323
  ]);
13292
13324
  };
13293
13325
  }
@@ -14307,7 +14339,8 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
14307
14339
  item: {},
14308
14340
  options: {}
14309
14341
  },
14310
- setup(__props) {
14342
+ emits: ["productEvent"],
14343
+ setup(__props, { emit: emit2 }) {
14311
14344
  const props = __props;
14312
14345
  const text = computed(() => {
14313
14346
  return props.options.html(props.item);
@@ -14319,6 +14352,9 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
14319
14352
  if (!props.options.action) {
14320
14353
  return;
14321
14354
  }
14355
+ if (props.options.reportEventOnClick) {
14356
+ emit2("productEvent", { type: props.options.reportEventOnClick });
14357
+ }
14322
14358
  yield props.options.action(props.item);
14323
14359
  });
14324
14360
  return (_ctx, _cache) => {
@@ -14631,7 +14667,8 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
14631
14667
  key: element.key,
14632
14668
  labels: labels.value,
14633
14669
  inStock: isInStock.value,
14634
- link: link.value
14670
+ link: link.value,
14671
+ onProductEvent: handleProductEvent
14635
14672
  }, null, 8, ["item", "element", "labels", "inStock", "link"]);
14636
14673
  }), 128)),
14637
14674
  createVNode(_sfc_main$$, {
@@ -14960,7 +14997,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
14960
14997
  "data-cy": "lupa-products"
14961
14998
  };
14962
14999
  const _hoisted_3$6 = {
14963
- key: 0,
15000
+ key: 1,
14964
15001
  class: "lupa-empty-results",
14965
15002
  "data-cy": "lupa-no-results-in-page"
14966
15003
  };
@@ -15030,6 +15067,10 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
15030
15067
  var _a;
15031
15068
  return currentFilterToolbarVisible.value ? (_a = props.options.filters) == null ? void 0 : _a.currentFilters : void 0;
15032
15069
  });
15070
+ const currentFilterPositionDesktop = computed(() => {
15071
+ var _a, _b, _c;
15072
+ return ((_c = (_b = (_a = props.options.filters) == null ? void 0 : _a.currentFilters) == null ? void 0 : _b.desktopToolbar) == null ? void 0 : _c.position) || "pageTop";
15073
+ });
15033
15074
  const currentFiltersClass = computed(() => {
15034
15075
  var _a, _b, _c, _d, _e, _f, _g, _h, _i;
15035
15076
  if (!currentFilterToolbarVisible.value) {
@@ -15091,7 +15132,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
15091
15132
  "pagination-location": "top",
15092
15133
  onFilter: filter
15093
15134
  }, null, 8, ["options"])) : createCommentVNode("", true),
15094
- currentFilterOptions.value ? (openBlock(), createBlock(_sfc_main$Q, {
15135
+ currentFilterOptions.value && currentFilterPositionDesktop.value === "pageTop" ? (openBlock(), createBlock(_sfc_main$Q, {
15095
15136
  key: 2,
15096
15137
  class: normalizeClass(currentFiltersClass.value),
15097
15138
  "data-cy": "lupa-search-result-filters-mobile-toolbar",
@@ -15110,6 +15151,13 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
15110
15151
  options: _ctx.options,
15111
15152
  "pagination-location": "top"
15112
15153
  }, null, 8, ["options"]),
15154
+ currentFilterOptions.value && currentFilterPositionDesktop.value === "resultsTop" ? (openBlock(), createBlock(_sfc_main$Q, {
15155
+ key: 0,
15156
+ class: normalizeClass(currentFiltersClass.value),
15157
+ "data-cy": "lupa-search-result-filters-mobile-toolbar",
15158
+ options: currentFilterOptions.value,
15159
+ expandable: !desktopFiltersExpanded.value
15160
+ }, null, 8, ["class", "options", "expandable"])) : createCommentVNode("", true),
15113
15161
  createBaseVNode("div", _hoisted_2$b, [
15114
15162
  _ctx.$slots.productCard ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(unref(searchResult).items, (product, index) => {
15115
15163
  return renderSlot(_ctx.$slots, "productCard", {